From e53ccb6e99bb0e92ebea19f150c8fbf9b6958634 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 30 Dec 2019 14:42:59 +0100 Subject: Start new ctx module --- editors/code/src/commands/analyzer_status.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'editors/code/src/commands/analyzer_status.ts') diff --git a/editors/code/src/commands/analyzer_status.ts b/editors/code/src/commands/analyzer_status.ts index 5840e8fc0..6e92c50ef 100644 --- a/editors/code/src/commands/analyzer_status.ts +++ b/editors/code/src/commands/analyzer_status.ts @@ -1,19 +1,19 @@ import * as vscode from 'vscode'; -import { Server } from '../server'; +import { Ctx } from '../ctx'; // Shows status of rust-analyzer (for debugging) -export function makeCommand(context: vscode.ExtensionContext) { +export function analyzerStatus(ctx: Ctx) { let poller: NodeJS.Timer | null = null; - const tdcp = new TextDocumentContentProvider(); + const tdcp = new TextDocumentContentProvider(ctx); - context.subscriptions.push( + ctx.pushCleanup( vscode.workspace.registerTextDocumentContentProvider( 'rust-analyzer-status', tdcp, ), ); - context.subscriptions.push({ + ctx.pushCleanup({ dispose() { if (poller != null) { clearInterval(poller); @@ -39,9 +39,16 @@ export function makeCommand(context: vscode.ExtensionContext) { class TextDocumentContentProvider implements vscode.TextDocumentContentProvider { + uri = vscode.Uri.parse('rust-analyzer-status://status'); eventEmitter = new vscode.EventEmitter(); + ctx: Ctx + + constructor(ctx: Ctx) { + this.ctx = ctx + } + provideTextDocumentContent( _uri: vscode.Uri, ): vscode.ProviderResult { @@ -49,7 +56,7 @@ class TextDocumentContentProvider if (editor == null) { return ''; } - return Server.client.sendRequest( + return this.ctx.client.sendRequest( 'rust-analyzer/analyzerStatus', null, ); -- cgit v1.2.3