Skip to content

Completion list is filtered on leading whitespace #66860

@DanTup

Description

@DanTup

Given a language that takes named args with colons:

myFunc(foo: 1);

It seems sensible to set : as a trigger character to open completion. This works fine:

context.subscriptions.push(vscode.languages.registerCompletionItemProvider("markdown", {
    provideCompletionItems(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, context: vscode.CompletionContext): vscode.CompletionItem[] {
        return [
            new vscode.CompletionItem("test"),
        ];
    }
}, ":"));

screenshot 2019-01-21 at 6 32 47 pm

However, if you type a space (as shown above, to have whitespace between : and the value), the completion list gets filtered and disappears. While it's possible to set <space> as a trigger character, that results in the completion provider being called a lot (for example on every space inside comments) which then need to be filtered out by the extension.

Is it reasonable to ignore leading whitespace when filtering the completion list to simplify things? It seems almost certain that no provider is ever going to return completion items with leading spaces expecting them to be precisely filtered?

Metadata

Metadata

Assignees

Labels

*dev-questionVS Code Extension Development Question

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions