Refactor vscode extension

This commit is contained in:
Adolfo Ochagavía 2018-10-07 22:44:25 +02:00
parent e4fdfd1501
commit 69de7e2fd7
14 changed files with 518 additions and 415 deletions

View file

@ -0,0 +1,14 @@
import { TextEditor } from "vscode";
import { TextDocumentIdentifier } from "vscode-languageclient";
import { Server } from "../server";
import { Decoration } from "../highlighting";
export async function handle(editor: TextEditor | undefined) {
if (!Server.config.highlightingOn || !editor || editor.document.languageId != 'rust') return
let params: TextDocumentIdentifier = {
uri: editor.document.uri.toString()
}
let decorations = await Server.client.sendRequest<Decoration[]>("m/decorationsRequest", params)
Server.highlighter.setHighlights(editor, decorations)
}

View file

@ -0,0 +1,19 @@
import * as vscode from 'vscode';
import { syntaxTreeUri, TextDocumentContentProvider } from '../commands/syntaxTree';
export function createHandler(textDocumentContentProvider: TextDocumentContentProvider) {
return (event: vscode.TextDocumentChangeEvent) => {
let 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)
}