]> git.lizzy.rs Git - rust.git/blobdiff - editors/code/src/source_change.ts
Add boolean literals to package.json
[rust.git] / editors / code / src / source_change.ts
index a336269baa8bdec26658993a97eb709bb145b090..af8f1df51126aac4d2cdb7971af470174aab3b56 100644 (file)
@@ -1,15 +1,10 @@
 import * as vscode from 'vscode';
 import * as lc from 'vscode-languageclient';
+import * as ra from './rust-analyzer-api';
 
 import { Ctx } from './ctx';
 
-export interface SourceChange {
-    label: string;
-    workspaceEdit: lc.WorkspaceEdit;
-    cursorPosition?: lc.TextDocumentPositionParams;
-}
-
-export async function applySourceChange(ctx: Ctx, change: SourceChange) {
+export async function applySourceChange(ctx: Ctx, change: ra.SourceChange) {
     const client = ctx.client;
     if (!client) return;
 
@@ -42,11 +37,13 @@ export async function applySourceChange(ctx: Ctx, change: SourceChange) {
             toReveal.position,
         );
         const editor = vscode.window.activeTextEditor;
-        if (!editor || editor.document.uri.toString() !== uri.toString()) {
+        if (!editor || !editor.selection.isEmpty) {
             return;
         }
-        if (!editor.selection.isEmpty) {
-            return;
+
+        if (editor.document.uri !== uri) {
+            const doc = await vscode.workspace.openTextDocument(uri);
+            await vscode.window.showTextDocument(doc);
         }
         editor.selection = new vscode.Selection(position, position);
         editor.revealRange(