我正在为Visual Studio代码中的一种自定义语言编写扩展。通过tmLanguage文件可以很好地进行语法检测。我正在尝试如何添加intellisense并转到symbol支持,这两种方法我都找不到明确的文档,也没有参考文件可供参考。
当我选择自定义语言打开一个文件并选择go to symbol时,我得到以下错误:不幸的是,我们没有该文件的符号信息。
是否有任何文档,或者您能否提供一些如何入门的提示,或者我们是否知道这些选项不适用于自定义语言?
发布于 2016-01-15 23:02:11
@Wosi是正确的,但他提到了API预览。自11月发布以来,您需要实现一个WorkspaceSymbolProvider
(https://code.visualstudio.com/docs/extensionAPI/vscode-api#WorkspaceSymbolProvider)来实现这一点。
你可以找到我们是怎么做的,TypeScript here和this是如何注册这个特性的。基本上提供了一个provideWorkspaceSymbols
函数,它在给定搜索字符串的情况下返回一个符号列表。
发布于 2016-01-15 21:48:48
转到工作区中的任何符号:实现WorkspaceSymbolProvider
并将其注册到扩展模块的main.js中,如下所示
function registerSupports(modeID, host, client) {
vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider(client, modeID));
}
转到符号(在当前光标位置):实现一个DefinitionProvider
并将其注册到扩展的main.js中,如下所示
function registerSupports(modeID, host, client) {
vscode.languages.registerDefinitionProvider(modeID, new DeclarationSupport(client));
}
IntelliSense:实现CompletionItemProvider
并将其注册到扩展模块的main.js中,如下所示
function registerSupports(modeID, host, client) {
vscode.languages.registerCompletionItemProvider(modeID, new SuggestSupport(client), '.');
}
https://stackoverflow.com/questions/34640625
复制相似问题