Start new ctx module

This commit is contained in:
Aleksey Kladov 2019-12-30 14:42:59 +01:00
parent 9cad88dd95
commit e53ccb6e99
4 changed files with 63 additions and 20 deletions

View file

@ -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<vscode.Uri>();
ctx: Ctx
constructor(ctx: Ctx) {
this.ctx = ctx
}
provideTextDocumentContent(
_uri: vscode.Uri,
): vscode.ProviderResult<string> {
@ -49,7 +56,7 @@ class TextDocumentContentProvider
if (editor == null) {
return '';
}
return Server.client.sendRequest<string>(
return this.ctx.client.sendRequest<string>(
'rust-analyzer/analyzerStatus',
null,
);

View file

@ -1,4 +1,4 @@
import * as analyzerStatus from './analyzer_status';
import { analyzerStatus } from './analyzer_status';
import * as applySourceChange from './apply_source_change';
import * as expandMacro from './expand_macro';
import * as inlayHints from './inlay_hints';