我希望在VS Code IntelliSense中有条件地列出一些特定语言的代码片段。我正在考虑创建一个扩展,拦截 CompletionItems ,并根据languageId和设置/配置删除任何不满足我的条件的代码段,我将为扩展提供这些代码段。我正在寻找最简单的解决方案来实现这一点,但如果我需要一个语言服务器,那么就这样吧。如果我可以为特定的languageId动态加载代码片段文件,那就更好了。我只需要更熟悉API的人提供一个起点。我甚至还没有找到如何找回 CompletionList 为了开始拦截,我搜索了API文档,但只找到了它的对象定义。
CompletionItems
CompletionList
user snippets 但是扩展可以有条件地贡献代码段。尝试创建一个 CompletionItemProvider 返回完成项及其 kind CompletionItemKind.Snippet .
CompletionItemProvider
kind
CompletionItemKind.Snippet
这个 JsDocCompletionProvider
JsDocCompletionProvider