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

时间:2016-02-16 08:43:33

标签: typescript visual-studio-code vscode-extensions language-server-protocol

必须在Language Server Node Example中实施哪种方法才能在多个文件上提供“转到定义”功能?

我正在研究zend_extension=/usr/lib64/php/modules/xdebug.so xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 和vscode“API文档”,但我没有找到任何信息。

2 个答案:

答案 0 :(得分:4)

以下代码段说明了如何使用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 }
    });
});

答案 1 :(得分:1)

我认为你必须创建一个实现registerDefinitionProvider的类,然后使用chmod -R 777 extensions/ 注册它。

查看herehere作为示例。