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

问题描述 投票:0回答:1

我正在尝试使用

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

如果我将完成项的

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

根据 Vscode

CompletionItem
类文档,看起来我需要使用属性
InsertText
代替或补充
Label
:

选择此完成时应插入文档中的字符串或片段。当错误时,使用

label

问题:

就我而言,即使我将

InsertText
设置为非虚假值,VSCode 仍会插入
Label
属性的值。

什么可能导致这种行为?这是 Omnisharp 中的错误,还是有另一个我不知道的配置,我必须设置它来强制 VSCode 插入

InsertText
的值而不是
Label
的值?

visual-studio-code autocomplete completionhandler omnisharp
1个回答
0
投票

我发现了:我也在使用

ComplitionItem.TextEdit
属性。它导致设置的
ComplitionItem.InsertText
属性被忽略。根据文档
ComplitionItem.TextEdit

已弃用 - 使用

CompletionItem.InsertText
CompletionItem.Range
代替。

© www.soinside.com 2019 - 2024. All rights reserved.