]> git.lizzy.rs Git - rust.git/blob - editors/code/src/events/change_text_document.ts
2e998e889ba17db5e22a59ad805e7e2eca1c702b
[rust.git] / editors / code / src / events / change_text_document.ts
1 import * as vscode from 'vscode';
2
3 import {
4     SyntaxTreeContentProvider,
5     syntaxTreeUri,
6 } from '../commands/syntaxTree';
7
8 export function createHandler(syntaxTreeProvider: SyntaxTreeContentProvider) {
9     return (event: vscode.TextDocumentChangeEvent) => {
10         const doc = event.document;
11         if (doc.languageId !== 'rust') {
12             return;
13         }
14         afterLs(() => {
15             syntaxTreeProvider.eventEmitter.fire(syntaxTreeUri);
16         });
17     };
18 }
19
20 // We need to order this after LS updates, but there's no API for that.
21 // Hence, good old setTimeout.
22 function afterLs(f: () => any) {
23     setTimeout(f, 10);
24 }