如何在 VSCode 中实现 "Go To Definition" 扩展

How to implement "Go To Definition" extension in VSCode

必须实施 vscode-languageserver::IConnection 中的哪个方法才能提供 "Go To Definition" 多个文件的功能?

我正在研究 Language Server Node Example 和 vscode "API documentation",但我没有找到任何信息。

我认为你必须创建一个 class 实现 DefinitionProvider 然后使用 registerDefinitionProvider.

注册它

看看 here and here 的例子。

以下代码片段说明了如何使用 vscode-laguageserver.

实现 "Go To Definition"
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 }
    });
});