@@ -10,6 +10,7 @@ import {
10
10
CompletionParams ,
11
11
CompletionTriggerKind ,
12
12
InsertReplaceEdit ,
13
+ InsertTextFormat ,
13
14
InsertTextMode ,
14
15
MarkupContent ,
15
16
Position ,
@@ -344,6 +345,7 @@ export class CompletionHandler {
344
345
documentation : CompletionHandler . toMarkupContent ( completionItem . documentation ) ,
345
346
filterText : completionItem . filterText ,
346
347
insertText : CompletionHandler . toLspInsertText ( completionItem . insertText ) ,
348
+ insertTextFormat : CompletionHandler . toLspInsertTextFormat ( completionItem . insertText ) ,
347
349
insertTextMode : CompletionHandler . toInsertTextMode ( completionItem . keepWhitespace ) ,
348
350
kind : completionItem . kind ? completionItem . kind + 1 : completionItem . kind , // VSCode and LSP are off by one
349
351
label : CompletionHandler . toLspCompletionItemLabel ( completionItem . label ) ,
@@ -390,6 +392,19 @@ export class CompletionHandler {
390
392
return snippetString ?. value ?? < string | undefined > insertText ;
391
393
}
392
394
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
+
393
408
private static toLspTextEdit (
394
409
newText ?: string ,
395
410
range ?: vscode . Range | { inserting : vscode . Range ; replacing : vscode . Range }
@@ -448,13 +463,4 @@ export class CompletionHandler {
448
463
449
464
return lspPosition ;
450
465
}
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
- }
460
466
}
0 commit comments