简体   繁体   English

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

[英]How to implement “Go To Definition” extension in VSCode

Which method in vscode-languageserver::IConnection has to be implemented to provide functionality "Go To Definition" over multiple files? 必须实现vscode-languageserver::IConnection哪个方法vscode-languageserver::IConnection在多个文件上提供“Go To Definition”功能?

I was studying Language Server Node Example and vscode "API documentation", but I didn't find any info. 我正在学习Language Server Node Example和vscode“API文档”,但我没有找到任何信息。

The following code snippet illustrates how to implement "Go To Definition" using vscode-laguageserver . 以下代码段说明了如何使用vscode-laguageserver实现“转到定义”。

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 }
    });
});

I think you have to create a class implementing the DefinitionProvider and then register it using registerDefinitionProvider . 我认为你必须创建一个实现DefinitionProvider的类,然后使用registerDefinitionProvider注册它。

Take a look here and here for an example. 看看这里这里的例子。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM