在 Omnisharp VSSCode 中使用 CompletionItem.InsertText 而不是 CompletionItem.Label 自动完成?

Autocompletion using CompletionItem.InsertText instead of CompletionItem.Label in Omnisharp VSSCode?

提问人:bookofproofs 提问时间:11/6/2023 最后编辑:bookofproofs 更新时间:11/6/2023 访问量:26

问:

我正在尝试使用 nuget 包为具有自动完成服务的 VSCode 编写扩展。我想在用户选择完成项时插入代码片段。OmniSharp.Extensions.LanguageServer

如果我将完成项的属性设置为我的代码段的文本,它就会起作用。但是,我的标签现在在完成列表中看起来很丑陋,因为它们必须包含换行符和制表符。所以我正在寻找另一种解决方案。Label

根据 Vscode CompletionItem 类文档,看起来我需要使用该属性而不是或补充:InsertTextLabel

选择此完成时应插入到文档中的字符串或代码段。当伪造时,使用 。label

问题:

就我而言,即使我将 设置为不是虚假的东西,VSCode 仍然会插入属性的值。InsertTextLabel

什么可能导致这种行为?这是 Omnisharp 中的错误,还是有其他我不知道的配置,我必须设置这些配置来强制 VSCode 插入 的值而不是 的值?InsertTextLabel

visual-studio-code 自动完成 完成处理程序 omnisharp

评论


答:

0赞 bookofproofs 11/6/2023 #1

我想通了:我也在使用该物业。它导致 set 属性被忽略。根据文档,是ComplitionItem.TextEditComplitionItem.InsertTextComplitionItem.TextEdit

deprecated - 改用 and。CompletionItem.InsertTextCompletionItem.Range