VS Code条件片段

4
我希望在特定语言的 VS Code IntelliSense 中有一些条件列出的代码片段。我考虑创建一个扩展程序,拦截 CompletionItems 列表,并根据语言ID和我将为扩展程序贡献的设置/配置,删除不符合我的条件的任何代码片段。我正在寻找最简单的解决方案来实现这一点,但如果需要语言服务器,那就这样吧。如果我可以动态加载特定语言ID的代码片段文件,那就更好了。我只需要从 API 更熟悉的人那里得到一个起点。我甚至还没有找到如何检索 CompletionList 来开始拦截——我搜索了 API 文档,但除了其对象定义之外什么都没找到。
1个回答

2
自VSCode 1.14起,您无法使用有条件的用户代码片段,但是扩展可以有条件地提供代码片段。尝试创建一个CompletionItemProvider,该提供程序返回具有其kind设置为CompletionItemKind.Snippet的完成项。在VSCode代码库中的JsDocCompletionProvider是此模式的一个示例。当光标周围的区域匹配正则表达式时,它仅返回jsdoc片段。

更新了 jsDocCompletionProvider 的链接:https://github.com/microsoft/vscode/blob/94c9ea46838a9a619aeafb7e8afd1170c967bb55/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts - alexbea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接