Visual studio code 如何提供具有';低优先级';在VS代码扩展中?
我有一个VS代码扩展,它为C#提供了完成项。我想让它们只出现在完成选项的底部,在所有其他选项都用尽之后(而不仅仅是按字典顺序) 据我所知,API没有提供这样做的方法(尽管我希望被证明是错误的)。 因此,我想到的一种破解方法是在Visual studio code 如何提供具有';低优先级';在VS代码扩展中?,visual-studio-code,intellisense,vscode-extensions,Visual Studio Code,Intellisense,Vscode Extensions,我有一个VS代码扩展,它为C#提供了完成项。我想让它们只出现在完成选项的底部,在所有其他选项都用尽之后(而不仅仅是按字典顺序) 据我所知,API没有提供这样做的方法(尽管我希望被证明是错误的)。 因此,我想到的一种破解方法是在vscode.CompletionsItem的sortText前面加上~。问题在于,出于某种原因,它仅在将myCompletionItems与其他明确指定了sortText字段值的CompletionItems进行比较时起作用 let completion = {
vscode.CompletionsItem
的sortText
前面加上~
。问题在于,出于某种原因,它仅在将myCompletionItem
s与其他明确指定了sortText
字段值的CompletionItem
s进行比较时起作用
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!",
}
C#扩展的所有补全都有一个隐式的sortText
,因此它不起作用
另一种方法是保留insertText
和filterText
但在标签前面加前缀,这是不完美的
let completion = {
label :"~Hello World!",
insertText:Hello World!",
filterText:Hello World!",
}
问题是现在有一个恼人的~
显示在完成的开始
最后,我如何使我的补全出现在默认的C#补全之后,而不在开始时显示奇怪的前缀。(在本例中,“Hello World!”补全将出现在“World!”之后,而不更改“World!”补全。)