aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/events/change_text_document.ts
blob: b3000e026182c87771ad92fe8167bf65e808fd43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import * as vscode from 'vscode';

import { syntaxTreeUri, TextDocumentContentProvider } from '../commands/syntaxTree';

export function createHandler(textDocumentContentProvider: TextDocumentContentProvider) {
    return (event: vscode.TextDocumentChangeEvent) => {
        const doc = event.document;
        if (doc.languageId !== 'rust') { return; }
        afterLs(() => {
            textDocumentContentProvider.eventEmitter.fire(syntaxTreeUri);
        });
    };
}

// We need to order this after LS updates, but there's no API for that.
// Hence, good old setTimeout.
function afterLs(f: () => any) {
    setTimeout(f, 10);
}