如何将这些代码补全功能添加到我的 VSCode 扩展中?

Xor*_*ist 4 visual-studio-code vscode-extensions

我正在创建 VSCode 扩展来为现有 Lua API 进行代码补全。

我在实现以下目标时遇到了一些麻烦(示例是 JavaScript):

方法信息

参数信息

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

PS 我已经查看了官方扩展示例

Mat*_*ner 6

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

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

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


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

您还可以将扩展实现为直接 VS Code 扩展或使用语言服务器协议(跨编辑器工作)。有关开发语言扩展以及为什么您可能需要考虑语言服务器协议的更多信息,请参阅 VS Code 的语言扩展概述