Skip to content

Commit 299dfeb

Browse files
committed
Merged PR 476434: Correct CompletionTriggerKind on '@' Trigger Character
'@' is not a valid trigger character for C#/HTML, so whenever user types '@', Razor would pass to Roslyn 'undefined' for the trigger character with trigger kind being 'Invoked' to get the completion list for when user types '@'. With recent improvements to Razor, the trigger kind that is now being passed when user types '@' is 'TriggerCharacter', which will result in an exception. Set the trigger kind to be 'Invoked' if user types '@' to align with previous behavior. Related work items: #1828754
1 parent edf4f18 commit 299dfeb

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/razor/src/Completion/RazorCompletionItemProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export class RazorCompletionItemProvider
3131
// "@" is not a valid trigger character for C# / HTML and therefore we need to translate
3232
// it into a non-trigger invocation.
3333
const modifiedTriggerCharacter = context.triggerCharacter === '@' ? undefined : context.triggerCharacter;
34+
const triggerKind = context.triggerCharacter === '@' ? CompletionTriggerKind.Invoked : getTriggerKind(context.triggerKind);
3435

3536
let completions: vscode.CompletionList | vscode.CompletionItem[];
3637

@@ -42,7 +43,7 @@ export class RazorCompletionItemProvider
4243
if (language === LanguageKind.CSharp) {
4344
const params: CompletionParams = {
4445
context: {
45-
triggerKind: getTriggerKind(context.triggerKind),
46+
triggerKind: triggerKind,
4647
triggerCharacter: modifiedTriggerCharacter
4748
},
4849
textDocument: {

0 commit comments

Comments
 (0)