如何在VSCode扩展中添加这些代码完成功能?

时间:2019-05-08 00:34:10

标签: visual-studio-code vscode-extensions

我正在创建VSCode扩展,以对现有Lua API进行代码完成。

我在实现以下目标方面有些麻烦(示例是JavaScript):

method information

parameter information

我一直在寻找示例和教程,但并没有提出太多建议。我假设我可能需要在当前光标位置附近进行大量的字符串处理,以获取足够的数据来查找适当的文档(该文档存储在json对象的数组中)。但是目前我不知道如何在输入参数时显示元数据对话框。

P.S。我已经审查了官方extension samples

1 个答案:

答案 0 :(得分:1)

您的屏幕截图显示了VS Code的两个功能:

第一个屏幕截图显示了悬停/快速信息。它用于显示有关用户正在悬停的当前单词的信息。要添加悬停,您的扩展程序应实现并注册HoverProvider

第二张屏幕截图显示参数提示/签名帮助。当用户完成功能调用时,它将向用户显示信息。要添加签名帮助,您的扩展程序应实现并注册SignatureHelpProvider


在两种情况下,如何实现功能完全取决于扩展。大多数语言扩展都维护文件的结构表示形式(例如AST),并使用它来提供悬停和签名帮助信息。

您也可以将扩展程序实现为直接VS Code扩展程序,也可以使用语言服务器协议(跨编辑器使用)。有关开发语言扩展以及为什么要考虑使用语言服务器协议的更多信息,请参见VS Code的Language Extensions Overview