Skip to content

Commit fec4130

Browse files
committed
Remove space as a trigger character
Fixes #1406.
1 parent ad20538 commit fec4130

2 files changed

Lines changed: 7 additions & 7 deletions

File tree

‎src/extension.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export function activate(context: vs.ExtensionContext, isRestart: boolean = fals
198198
activeFileFilters.push(HTML_MODE);
199199
}
200200

201-
const triggerCharacters = ".: =(${'\"/\\".split("");
201+
const triggerCharacters = ".:=(${'\"/\\".split("");
202202
activeFileFilters.forEach((filter) => {
203203
context.subscriptions.push(vs.languages.registerHoverProvider(filter, hoverProvider));
204204
context.subscriptions.push(vs.languages.registerDocumentFormattingEditProvider(filter, formattingEditProvider));

‎src/providers/dart_completion_item_provider.ts‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ export class DartCompletionItemProvider implements CompletionItemProvider {
4949
case "\\":
5050
return line.startsWith("import \"") || line.startsWith("export \"")
5151
|| line.startsWith("import '") || line.startsWith("export '");
52-
// Only trigger on spaces in arg lists, not on the space between parens and braces
53-
// of a function definition (#1256).
54-
case " ":
55-
return line.endsWith(",") || line.endsWith(":");
5652
// Don't trigger for colons if we're in a case statement
5753
case ":":
5854
return !line.startsWith("case");
@@ -174,7 +170,11 @@ export class DartCompletionItemProvider implements CompletionItemProvider {
174170

175171
const completion = new CompletionItem(label, kind);
176172
completion.label = label;
177-
completion.filterText = label.split("(")[0]; // Don't ever include anything after a ( in filtering.
173+
// Always prefix filterText with a space, so completion doesn't filter it out
174+
// if the user types whitespace, eg. in:
175+
// func(foo: bar);
176+
// the colon is the trigger, but we want the list to remain when the user hits space.
177+
completion.filterText = " " + label.split("(")[0]; // Don't ever include anything after a ( in filtering.
178178
completion.kind = kind;
179179
completion.detail = (suggestion.isDeprecated ? "(deprecated) " : "") + detail;
180180
completion.documentation = new MarkdownString(cleanDartdoc(suggestion.docSummary));
@@ -207,7 +207,7 @@ export class DartCompletionItemProvider implements CompletionItemProvider {
207207
// 555 -> 999455
208208
// 10 -> 999990
209209
// 1 -> 999999
210-
completion.sortText = (1000000 - suggestion.relevance).toString();
210+
completion.sortText = (1000000 - suggestion.relevance).toString() + label.trim();
211211
return completion;
212212
}
213213

0 commit comments

Comments
 (0)