@@ -10,6 +10,7 @@ import {
1010 CompletionParams ,
1111 CompletionTriggerKind ,
1212 InsertReplaceEdit ,
13+ InsertTextFormat ,
1314 InsertTextMode ,
1415 MarkupContent ,
1516 Position ,
@@ -344,6 +345,7 @@ export class CompletionHandler {
344345 documentation : CompletionHandler . toMarkupContent ( completionItem . documentation ) ,
345346 filterText : completionItem . filterText ,
346347 insertText : CompletionHandler . toLspInsertText ( completionItem . insertText ) ,
348+ insertTextFormat : CompletionHandler . toLspInsertTextFormat ( completionItem . insertText ) ,
347349 insertTextMode : CompletionHandler . toInsertTextMode ( completionItem . keepWhitespace ) ,
348350 kind : completionItem . kind ? completionItem . kind + 1 : completionItem . kind , // VSCode and LSP are off by one
349351 label : CompletionHandler . toLspCompletionItemLabel ( completionItem . label ) ,
@@ -390,6 +392,19 @@ export class CompletionHandler {
390392 return snippetString ?. value ?? < string | undefined > insertText ;
391393 }
392394
395+ private static toLspInsertTextFormat ( insertText ?: string | vscode . SnippetString ) : InsertTextFormat {
396+ return insertText instanceof vscode . SnippetString ? InsertTextFormat . Snippet : InsertTextFormat . PlainText ;
397+ }
398+
399+ private static toInsertTextMode ( keepWhitespace ?: boolean ) : InsertTextMode | undefined {
400+ if ( keepWhitespace === undefined ) {
401+ return undefined ;
402+ }
403+
404+ const insertTextMode : InsertTextMode = keepWhitespace ? InsertTextMode . asIs : InsertTextMode . adjustIndentation ;
405+ return insertTextMode ;
406+ }
407+
393408 private static toLspTextEdit (
394409 newText ?: string ,
395410 range ?: vscode . Range | { inserting : vscode . Range ; replacing : vscode . Range }
@@ -448,13 +463,4 @@ export class CompletionHandler {
448463
449464 return lspPosition ;
450465 }
451-
452- private static toInsertTextMode ( keepWhitespace ?: boolean ) : InsertTextMode | undefined {
453- if ( keepWhitespace === undefined ) {
454- return undefined ;
455- }
456-
457- const insertTextMode : InsertTextMode = keepWhitespace ? InsertTextMode . asIs : InsertTextMode . adjustIndentation ;
458- return insertTextMode ;
459- }
460466}
0 commit comments