From d1721021ef6c5c2c361319c6ae06de7c330ea71e Mon Sep 17 00:00:00 2001 From: veetaha Date: Wed, 25 Mar 2020 21:00:04 +0200 Subject: vscode: refactor analyzer status --- editors/code/src/commands/analyzer_status.ts | 31 ++++++++++------------------ 1 file changed, 11 insertions(+), 20 deletions(-) (limited to 'editors/code') diff --git a/editors/code/src/commands/analyzer_status.ts b/editors/code/src/commands/analyzer_status.ts index 1c6ea399b..09daa3402 100644 --- a/editors/code/src/commands/analyzer_status.ts +++ b/editors/code/src/commands/analyzer_status.ts @@ -5,7 +5,7 @@ import { Ctx, Cmd } from '../ctx'; // Shows status of rust-analyzer (for debugging) export function analyzerStatus(ctx: Ctx): Cmd { - let poller: NodeJS.Timer | null = null; + let poller: NodeJS.Timer | undefined = undefined; const tdcp = new TextDocumentContentProvider(ctx); ctx.pushCleanup( @@ -17,41 +17,32 @@ export function analyzerStatus(ctx: Ctx): Cmd { ctx.pushCleanup({ dispose() { - if (poller != null) { + if (poller !== undefined) { clearInterval(poller); } }, }); - return async function handle() { - if (poller == null) { + return async () => { + if (poller === undefined) { poller = setInterval(() => tdcp.eventEmitter.fire(tdcp.uri), 1000); } const document = await vscode.workspace.openTextDocument(tdcp.uri); - return vscode.window.showTextDocument( - document, - vscode.ViewColumn.Two, - true, - ); + return vscode.window.showTextDocument(document, vscode.ViewColumn.Two, true); }; } -class TextDocumentContentProvider - implements vscode.TextDocumentContentProvider { - uri = vscode.Uri.parse('rust-analyzer-status://status'); - eventEmitter = new vscode.EventEmitter(); +class TextDocumentContentProvider implements vscode.TextDocumentContentProvider { + readonly uri = vscode.Uri.parse('rust-analyzer-status://status'); + readonly eventEmitter = new vscode.EventEmitter(); constructor(private readonly ctx: Ctx) { } - provideTextDocumentContent( - _uri: vscode.Uri, - ): vscode.ProviderResult { - const editor = vscode.window.activeTextEditor; - const client = this.ctx.client; - if (!editor || !client) return ''; + provideTextDocumentContent(_uri: vscode.Uri): vscode.ProviderResult { + if (!vscode.window.activeTextEditor) return ''; - return client.sendRequest(ra.analyzerStatus, null); + return this.ctx.client.sendRequest(ra.analyzerStatus, null); } get onDidChange(): vscode.Event { -- cgit v1.2.3