Skip to content

Commit 6c7dc4c

Browse files
authored
Merge pull request #7274 from dotnet/dev/alexgav/FixLspSnippets
Fixing snippets in new LSP completion
2 parents 82b097e + 93a2e2c commit 6c7dc4c

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

src/razor/src/completion/completionHandler.ts

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)