在VSCode中如何实现“转到定义”扩展功能

12

vscode-languageserver::IConnection中,哪个方法需要被实现以提供跨多个文件的“转到定义”功能?

我正在学习Language Server Node Example和vscode“API文档”,但我没有找到任何相关信息。

2个回答

8
下面的代码片段演示了如何使用vscode-languageserver实现“转到定义”:
connection.onInitialize((params): InitializeResult => {
  ...
  return {
    capabilities: {
      definitionProvider: true,
      ...
    }
  }
});
    
connection.onDefinition((textDocumentIdentifier: TextDocumentIdentifier): Definition => {
  return Location.create(textDocumentIdentifier.uri, {
    start: { line: 2, character: 5 },
    end: { line: 2, character: 6 }
  });
});

2

我认为您需要创建一个实现DefinitionProvider的类,然后使用registerDefinitionProvider进行注册。

可以参考这里这里的示例。


它们的扩展直接依赖于vscode模块。但是多亏了你,我找到了vscode-languageserver中的连接点。 - zdenek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接