Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
704 views
in Technique[技术] by (71.8m points)

visual studio code - vscode ProvideCompletionItems position cannot be updated in real time

I register a languages.registerCompletionItemProvider. Part of the code.

let disposable = vscode.languages.registerCompletionItemProvider(
        'language', new BuildCompletionItemProvider()
    );
context.subscriptions.push(disposable);
export class BuildCompletionItemProvider implements vscode.CompletionItemProvider {
    provideCompletionItems(
        document: vscode.TextDocument, position: vscode.Position,
        token: vscode.CancellationToken): vscode.CompletionItem[] {

        let line = document.lineAt(position);
        let lineText = line.text.substring(0, position.character);
        console.log(`line: ${line.text}
 pos: ${position.character}`);
        return [];
    }
}

I run the extension and slowly enter

aaa
aaaaa

in the mylanguage file.

debug console output:

line: a
 pos: 1
line: aa
 pos: 2
line: aaa
 pos: 3
line: a
 pos: 1
line: aaaaa
 pos: 5

When entering aaaaa in the second line, position will not change in real time.

I guess it is affected by vscode's abc automatic completion.

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...