1

我期待有一些代碼在VS Code IntelliSense中有條件列出來用於特定語言。我正在考慮創建一個擴展,攔截CompletionItems的列表,並刪除任何不滿足基於語言標識和設置/配置條件的片段,我將爲該擴展做出貢獻。我正在尋找最簡單的解決方案來完成這個任務,但是如果我需要一個語言服務器,那就這麼做吧。如果我可以動態加載特定languageId的片段文件,那就更好了。我只需要一個更熟悉API的人的出發點。我甚至沒有找到如何檢索CompletionList來啓動攔截 - 我搜索了API文檔,但沒有發現任何內容,只是它的對象定義。VS代碼條件片段

回答

0

從VSCode 1.14起,您不能有條件的user snippets,但擴展可以有條件地提供片段。試着創建一個CompletionItemProvider,返回完成項目kind設置爲CompletionItemKind.Snippet

VSCode代碼庫中的JsDocCompletionProvider是此模式的一個示例。當光標周圍的區域與正則表達式匹配時,它僅返回jsdoc片段