]> git.lizzy.rs Git - rust.git/commitdiff
Move joinLines to the new Ctx
authorAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 30 Dec 2019 14:50:15 +0000 (15:50 +0100)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 30 Dec 2019 18:07:59 +0000 (19:07 +0100)
editors/code/src/commands/index.ts
editors/code/src/commands/join_lines.ts
editors/code/src/main.ts

index 9d9b9c5754994360a550f99483a1d908b96d3d26..8090c7e5b2089e3b92b11b4a07e268d8ae45815c 100644 (file)
@@ -2,10 +2,10 @@ import { Ctx, Cmd } from '../ctx'
 
 import { analyzerStatus } from './analyzer_status';
 import { matchingBrace } from './matching_brace';
+import { joinLines } from './join_lines';
 import * as applySourceChange from './apply_source_change';
 import * as expandMacro from './expand_macro';
 import * as inlayHints from './inlay_hints';
-import * as joinLines from './join_lines';
 import * as onEnter from './on_enter';
 import * as parentModule from './parent_module';
 import * as runnables from './runnables';
index 134ddc80164daf6e387c97bb265464ee3bb151f5..7952fb0c006ceba7691aaedbd38857908a25ceaf 100644 (file)
@@ -1,29 +1,29 @@
-import * as vscode from 'vscode';
-
 import { Range, TextDocumentIdentifier } from 'vscode-languageclient';
-import { Server } from '../server';
+import { Ctx, Cmd } from '../ctx';
 import {
     handle as applySourceChange,
     SourceChange,
 } from './apply_source_change';
 
+export function joinLines(ctx: Ctx): Cmd {
+    return async () => {
+        const editor = ctx.activeRustEditor;
+        if (!editor) {
+            return;
+        }
+        const request: JoinLinesParams = {
+            range: ctx.client.code2ProtocolConverter.asRange(editor.selection),
+            textDocument: { uri: editor.document.uri.toString() },
+        };
+        const change = await ctx.client.sendRequest<SourceChange>(
+            'rust-analyzer/joinLines',
+            request,
+        );
+        await applySourceChange(change);
+    }
+}
+
 interface JoinLinesParams {
     textDocument: TextDocumentIdentifier;
     range: Range;
 }
-
-export async function handle() {
-    const editor = vscode.window.activeTextEditor;
-    if (editor == null || editor.document.languageId !== 'rust') {
-        return;
-    }
-    const request: JoinLinesParams = {
-        range: Server.client.code2ProtocolConverter.asRange(editor.selection),
-        textDocument: { uri: editor.document.uri.toString() },
-    };
-    const change = await Server.client.sendRequest<SourceChange>(
-        'rust-analyzer/joinLines',
-        request,
-    );
-    await applySourceChange(change);
-}
index a4149a0599900debe59db2b20fe76300abf1aed3..95beb2d8fbab52210949b291f11f953c0fc6f0fd 100644 (file)
@@ -18,6 +18,7 @@ export async function activate(context: vscode.ExtensionContext) {
     ctx.registerCommand('analyzerStatus', commands.analyzerStatus);
     ctx.registerCommand('collectGarbage', commands.collectGarbage);
     ctx.registerCommand('matchingBrace', commands.matchingBrace);
+    ctx.registerCommand('joinLines', commands.joinLines);
 
     function disposeOnDeactivation(disposable: vscode.Disposable) {
         context.subscriptions.push(disposable);
@@ -56,7 +57,6 @@ export async function activate(context: vscode.ExtensionContext) {
     }
 
     // Commands are requests from vscode to the language server
-    registerCommand('rust-analyzer.joinLines', commands.joinLines.handle);
     registerCommand('rust-analyzer.parentModule', commands.parentModule.handle);
     registerCommand('rust-analyzer.run', commands.runnables.handle);
     // Unlike the above this does not send requests to the language server