aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/commands
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-12-30 13:42:59 +0000
committerAleksey Kladov <[email protected]>2019-12-30 13:42:59 +0000
commite53ccb6e99bb0e92ebea19f150c8fbf9b6958634 (patch)
treeac0f868655e52002f8a40015d094e0d55effa764 /editors/code/src/commands
parent9cad88dd95773f9ede6233fd7d0f3a076c5cda61 (diff)
Start new ctx module
Diffstat (limited to 'editors/code/src/commands')
-rw-r--r--editors/code/src/commands/analyzer_status.ts19
-rw-r--r--editors/code/src/commands/index.ts2
2 files changed, 14 insertions, 7 deletions
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 @@
1import * as vscode from 'vscode'; 1import * as vscode from 'vscode';
2import { Server } from '../server'; 2import { Ctx } from '../ctx';
3// Shows status of rust-analyzer (for debugging) 3// Shows status of rust-analyzer (for debugging)
4 4
5export function makeCommand(context: vscode.ExtensionContext) { 5export function analyzerStatus(ctx: Ctx) {
6 let poller: NodeJS.Timer | null = null; 6 let poller: NodeJS.Timer | null = null;
7 const tdcp = new TextDocumentContentProvider(); 7 const tdcp = new TextDocumentContentProvider(ctx);
8 8
9 context.subscriptions.push( 9 ctx.pushCleanup(
10 vscode.workspace.registerTextDocumentContentProvider( 10 vscode.workspace.registerTextDocumentContentProvider(
11 'rust-analyzer-status', 11 'rust-analyzer-status',
12 tdcp, 12 tdcp,
13 ), 13 ),
14 ); 14 );
15 15
16 context.subscriptions.push({ 16 ctx.pushCleanup({
17 dispose() { 17 dispose() {
18 if (poller != null) { 18 if (poller != null) {
19 clearInterval(poller); 19 clearInterval(poller);
@@ -39,9 +39,16 @@ export function makeCommand(context: vscode.ExtensionContext) {
39 39
40class TextDocumentContentProvider 40class TextDocumentContentProvider
41 implements vscode.TextDocumentContentProvider { 41 implements vscode.TextDocumentContentProvider {
42
42 uri = vscode.Uri.parse('rust-analyzer-status://status'); 43 uri = vscode.Uri.parse('rust-analyzer-status://status');
43 eventEmitter = new vscode.EventEmitter<vscode.Uri>(); 44 eventEmitter = new vscode.EventEmitter<vscode.Uri>();
44 45
46 ctx: Ctx
47
48 constructor(ctx: Ctx) {
49 this.ctx = ctx
50 }
51
45 provideTextDocumentContent( 52 provideTextDocumentContent(
46 _uri: vscode.Uri, 53 _uri: vscode.Uri,
47 ): vscode.ProviderResult<string> { 54 ): vscode.ProviderResult<string> {
@@ -49,7 +56,7 @@ class TextDocumentContentProvider
49 if (editor == null) { 56 if (editor == null) {
50 return ''; 57 return '';
51 } 58 }
52 return Server.client.sendRequest<string>( 59 return this.ctx.client.sendRequest<string>(
53 'rust-analyzer/analyzerStatus', 60 'rust-analyzer/analyzerStatus',
54 null, 61 null,
55 ); 62 );
diff --git a/editors/code/src/commands/index.ts b/editors/code/src/commands/index.ts
index 13a696758..ec1995396 100644
--- a/editors/code/src/commands/index.ts
+++ b/editors/code/src/commands/index.ts
@@ -1,4 +1,4 @@
1import * as analyzerStatus from './analyzer_status'; 1import { analyzerStatus } from './analyzer_status';
2import * as applySourceChange from './apply_source_change'; 2import * as applySourceChange from './apply_source_change';
3import * as expandMacro from './expand_macro'; 3import * as expandMacro from './expand_macro';
4import * as inlayHints from './inlay_hints'; 4import * as inlayHints from './inlay_hints';