]> git.lizzy.rs Git - rust.git/commitdiff
Move all commands to ctx
authorAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 30 Dec 2019 19:07:04 +0000 (20:07 +0100)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 30 Dec 2019 19:07:04 +0000 (20:07 +0100)
editors/code/src/commands/index.ts
editors/code/src/commands/runnables.ts
editors/code/src/main.ts

index 9f4636e5278669334a911bf64ab5e832600b1396..4a2e8e4db20dff3cb9c7521d43a10ebd9fbca4d5 100644 (file)
@@ -1,3 +1,6 @@
+import * as vscode from 'vscode';
+import * as lc from 'vscode-languageclient';
+
 import { Ctx, Cmd } from '../ctx';
 
 import { analyzerStatus } from './analyzer_status';
@@ -16,6 +19,17 @@ function collectGarbage(ctx: Ctx): Cmd {
     };
 }
 
+function showReferences(ctx: Ctx): Cmd {
+    return (uri: string, position: lc.Position, locations: lc.Location[]) => {
+        vscode.commands.executeCommand(
+            'editor.action.showReferences',
+            vscode.Uri.parse(uri),
+            ctx.client.protocol2CodeConverter.asPosition(position),
+            locations.map(ctx.client.protocol2CodeConverter.asLocation),
+        );
+    };
+}
+
 export {
     analyzerStatus,
     expandMacro,
@@ -27,5 +41,6 @@ export {
     inlayHints,
     collectGarbage,
     run,
-    runSingle
+    runSingle,
+    showReferences,
 };
index c4be21a0cc2ed2350a26dd3c870538a20068bb97..8cd86c21e1d71ba078ae4d8ae29f9b1ea57e713b 100644 (file)
@@ -8,7 +8,7 @@ export function run(ctx: Ctx): Cmd {
 
     return async () => {
         const editor = ctx.activeRustEditor;
-        if (!editor) return
+        if (!editor) return;
 
         const textDocument: lc.TextDocumentIdentifier = {
             uri: editor.document.uri.toString(),
@@ -43,13 +43,13 @@ export function run(ctx: Ctx): Cmd {
         prevRunnable = item;
         const task = createTask(item.runnable);
         return await vscode.tasks.executeTask(task);
-    }
+    };
 }
 
 export function runSingle(ctx: Ctx): Cmd {
     return async (runnable: Runnable) => {
         const editor = ctx.activeRustEditor;
-        if (!editor) return
+        if (!editor) return;
 
         const task = createTask(runnable);
         task.group = vscode.TaskGroup.Build;
@@ -60,7 +60,7 @@ export function runSingle(ctx: Ctx): Cmd {
         };
 
         return vscode.tasks.executeTask(task);
-    }
+    };
 }
 
 interface RunnablesParams {
index 7ad5e6934aa869b4974ff88017c77302868a631f..4a3e1ab7c4c0313200432f34316b133b366b9376 100644 (file)
@@ -13,6 +13,8 @@ let ctx!: Ctx;
 
 export async function activate(context: vscode.ExtensionContext) {
     ctx = new Ctx(context);
+
+    // Commands which invokes manually via command pallet, shortcut, etc.
     ctx.registerCommand('analyzerStatus', commands.analyzerStatus);
     ctx.registerCommand('collectGarbage', commands.collectGarbage);
     ctx.registerCommand('matchingBrace', commands.matchingBrace);
@@ -21,28 +23,15 @@ export async function activate(context: vscode.ExtensionContext) {
     ctx.registerCommand('syntaxTree', commands.syntaxTree);
     ctx.registerCommand('expandMacro', commands.expandMacro);
     ctx.registerCommand('run', commands.run);
-    ctx.registerCommand('runSingle', commands.runSingle); // Internal action for lenses
+
+    // Internal commands which are invoked by the server.
+    ctx.registerCommand('runSingle', commands.runSingle);
+    ctx.registerCommand('showReferences', commands.showReferences);
 
     function disposeOnDeactivation(disposable: vscode.Disposable) {
         context.subscriptions.push(disposable);
     }
 
-    function registerCommand(name: string, f: any) {
-        disposeOnDeactivation(vscode.commands.registerCommand(name, f));
-    }
-
-    registerCommand(
-        'rust-analyzer.showReferences',
-        (uri: string, position: lc.Position, locations: lc.Location[]) => {
-            vscode.commands.executeCommand(
-                'editor.action.showReferences',
-                vscode.Uri.parse(uri),
-                Server.client.protocol2CodeConverter.asPosition(position),
-                locations.map(Server.client.protocol2CodeConverter.asLocation),
-            );
-        },
-    );
-
     if (Server.config.enableEnhancedTyping) {
         ctx.overrideCommand('type', commands.onEnter);
     }