如何在 VS CODE 扩展中提供具有“低优先级”的完成项?

Fud*_*dge 6 intellisense visual-studio-code vscode-extensions

我有一个 VS Code 扩展,它为 C# 提供补全项。我想让它们只出现在完成选项的底部,在所有其他选项都用尽之后(而不仅仅是按字典顺序)。

据我所知,API 没有提供执行此操作的方法(尽管我希望被证明是错误的)。所以我想到的一种破解方法是在vscode.CompletionsItem's前面sortText加上~. 问题是由于某种原因,它仅在将我的CompletionItems 与CompletionItem已明确指定字段值的其他 s进行比较时才有效sortText

let completion = {
        label :"Hello World!",
        sortText:~Hello World!"
    }
// That works fine with this one for example:
let explicitCompletion= {
        label :"World!",
        sortText:"World!"
    }
// But will appear before this one, despite having appended '~'
let implicitCompletion= {
        label :"World!",
    }
Run Code Online (Sandbox Code Playgroud)

C# 扩展的所有完成都有一个隐式,sortText因此它不起作用。

另一种不完美的方法是保留insertTextandfilterText但前缀label.

let completion = {
        label :"~Hello World!",
        insertText:Hello World!",
        filterText:Hello World!",
    }
Run Code Online (Sandbox Code Playgroud)

问题是现在~在完成开始时会出现一个烦人的情况。

最后,我怎样才能使我的补全出现在默认的 C# 补全之后,而不会在开始时显示奇怪的前缀。(在示例中,“Hello World!”补全将出现在“World!”之后,而不改变“World!”补全。