From 2008f9e0b97a28833ba666694b9f4ce40833ac23 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 30 Dec 2019 12:25:55 +0100 Subject: Simplify --- editors/code/src/commands/analyzer_status.ts | 61 +++++++++++++--------------- 1 file changed, 29 insertions(+), 32 deletions(-) (limited to 'editors') diff --git a/editors/code/src/commands/analyzer_status.ts b/editors/code/src/commands/analyzer_status.ts index 2777ced24..5840e8fc0 100644 --- a/editors/code/src/commands/analyzer_status.ts +++ b/editors/code/src/commands/analyzer_status.ts @@ -1,41 +1,15 @@ import * as vscode from 'vscode'; import { Server } from '../server'; - -const statusUri = vscode.Uri.parse('rust-analyzer-status://status'); - -export class TextDocumentContentProvider - implements vscode.TextDocumentContentProvider { - public eventEmitter = new vscode.EventEmitter(); - public syntaxTree: string = 'Not available'; - - public provideTextDocumentContent( - _uri: vscode.Uri, - ): vscode.ProviderResult { - const editor = vscode.window.activeTextEditor; - if (editor == null) { - return ''; - } - return Server.client.sendRequest( - 'rust-analyzer/analyzerStatus', - null, - ); - } - - get onDidChange(): vscode.Event { - return this.eventEmitter.event; - } -} - -let poller: NodeJS.Timer | null = null; - // Shows status of rust-analyzer (for debugging) export function makeCommand(context: vscode.ExtensionContext) { - const textDocumentContentProvider = new TextDocumentContentProvider(); + let poller: NodeJS.Timer | null = null; + const tdcp = new TextDocumentContentProvider(); + context.subscriptions.push( vscode.workspace.registerTextDocumentContentProvider( 'rust-analyzer-status', - textDocumentContentProvider, + tdcp, ), ); @@ -50,11 +24,11 @@ export function makeCommand(context: vscode.ExtensionContext) { return async function handle() { if (poller == null) { poller = setInterval( - () => textDocumentContentProvider.eventEmitter.fire(statusUri), + () => tdcp.eventEmitter.fire(tdcp.uri), 1000, ); } - const document = await vscode.workspace.openTextDocument(statusUri); + const document = await vscode.workspace.openTextDocument(tdcp.uri); return vscode.window.showTextDocument( document, vscode.ViewColumn.Two, @@ -62,3 +36,26 @@ export function makeCommand(context: vscode.ExtensionContext) { ); }; } + +class TextDocumentContentProvider + implements vscode.TextDocumentContentProvider { + uri = vscode.Uri.parse('rust-analyzer-status://status'); + eventEmitter = new vscode.EventEmitter(); + + provideTextDocumentContent( + _uri: vscode.Uri, + ): vscode.ProviderResult { + const editor = vscode.window.activeTextEditor; + if (editor == null) { + return ''; + } + return Server.client.sendRequest( + 'rust-analyzer/analyzerStatus', + null, + ); + } + + get onDidChange(): vscode.Event { + return this.eventEmitter.event; + } +} -- cgit v1.2.3