]> git.lizzy.rs Git - rust.git/blobdiff - editors/code/src/commands/on_enter.ts
Add boolean literals to package.json
[rust.git] / editors / code / src / commands / on_enter.ts
index ac582b4230343c78223f84c2f9c00dcd56d25020..a7871c31eed0bde9d209833eb2e9ff82b06df673 100644 (file)
@@ -1,28 +1,28 @@
 import * as vscode from 'vscode';
-import * as lc from 'vscode-languageclient';
+import * as ra from '../rust-analyzer-api';
 
-import { applySourceChange, SourceChange } from '../source_change';
 import { Cmd, Ctx } from '../ctx';
+import { applySnippetWorkspaceEdit } from '.';
 
 async function handleKeypress(ctx: Ctx) {
     const editor = ctx.activeRustEditor;
     const client = ctx.client;
-    if (!editor) return false;
-    if (!client) return false;
 
-    const request: lc.TextDocumentPositionParams = {
+    if (!editor || !client) return false;
+
+    const change = await client.sendRequest(ra.onEnter, {
         textDocument: { uri: editor.document.uri.toString() },
         position: client.code2ProtocolConverter.asPosition(
             editor.selection.active,
         ),
-    };
-    const change = await client.sendRequest<undefined | SourceChange>(
-        'rust-analyzer/onEnter',
-        request,
-    );
+    }).catch(_error => {
+        // client.logFailedRequest(OnEnterRequest.type, error);
+        return null;
+    });
     if (!change) return false;
 
-    await applySourceChange(ctx, change);
+    const workspaceEdit = client.protocol2CodeConverter.asWorkspaceEdit(change);
+    await applySnippetWorkspaceEdit(workspaceEdit);
     return true;
 }