首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visual Studio Code自定义语言IntelliSense和转到symbol

Visual Studio Code自定义语言IntelliSense和转到symbol
EN

Stack Overflow用户
提问于 2016-01-07 02:55:25
回答 2查看 4.9K关注 0票数 5

我正在为Visual Studio代码中的一种自定义语言编写扩展。通过tmLanguage文件可以很好地进行语法检测。我正在尝试如何添加intellisense并转到symbol支持,这两种方法我都找不到明确的文档,也没有参考文件可供参考。

当我选择自定义语言打开一个文件并选择go to symbol时,我得到以下错误:不幸的是,我们没有该文件的符号信息。

是否有任何文档,或者您能否提供一些如何入门的提示,或者我们是否知道这些选项不适用于自定义语言?

EN

回答 2

Stack Overflow用户

发布于 2016-01-15 23:02:11

@Wosi是正确的,但他提到了API预览。自11月发布以来,您需要实现一个WorkspaceSymbolProvider (https://code.visualstudio.com/docs/extensionAPI/vscode-api#WorkspaceSymbolProvider)来实现这一点。

你可以找到我们是怎么做的,TypeScript herethis是如何注册这个特性的。基本上提供了一个provideWorkspaceSymbols函数,它在给定搜索字符串的情况下返回一个符号列表。

票数 4
EN

Stack Overflow用户

发布于 2016-01-15 21:48:48

转到工作区中的任何符号:实现WorkspaceSymbolProvider并将其注册到扩展模块的main.js中,如下所示

代码语言:javascript
运行
复制
function registerSupports(modeID, host, client) {
    vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider(client, modeID));
}

转到符号(在当前光标位置):实现一个DefinitionProvider并将其注册到扩展的main.js中,如下所示

代码语言:javascript
运行
复制
function registerSupports(modeID, host, client) {
    vscode.languages.registerDefinitionProvider(modeID, new DeclarationSupport(client));
}

IntelliSense:实现CompletionItemProvider并将其注册到扩展模块的main.js中,如下所示

代码语言:javascript
运行
复制
function registerSupports(modeID, host, client) {
    vscode.languages.registerCompletionItemProvider(modeID, new SuggestSupport(client), '.');
}

另请参见HelloWorld extensionLanguage server example

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34640625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档