From b150965ed7994c679711bc807de301a12f5c7944 Mon Sep 17 00:00:00 2001 From: Mikhail Modin Date: Sun, 15 Mar 2020 21:23:18 +0000 Subject: Swtches to rust SSR query check --- editors/code/src/commands/ssr.ts | 16 +++++++++------- editors/code/src/rust-analyzer-api.ts | 3 ++- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'editors/code/src') diff --git a/editors/code/src/commands/ssr.ts b/editors/code/src/commands/ssr.ts index eee48c693..6fee051fd 100644 --- a/editors/code/src/commands/ssr.ts +++ b/editors/code/src/commands/ssr.ts @@ -10,20 +10,22 @@ export function ssr(ctx: Ctx): Cmd { if (!client) return; const options: vscode.InputBoxOptions = { - placeHolder: "foo($a:expr, $b:expr) ==>> bar($a, foo($b))", - prompt: "Enter request", - validateInput: (x: string) => { - if (x.includes('==>>')) { - return null; + value: "() ==>> ()", + prompt: "EnteR request, for example 'Foo($a:expr) ==> Foo::new($a)' ", + validateInput: async (x: string) => { + try { + await client.sendRequest(ra.ssr, { query: x, parseOnly: true }); + } catch (e) { + return e.toString(); } - return "Enter request: pattern ==>> template"; + return null; } }; const request = await vscode.window.showInputBox(options); if (!request) return; - const change = await client.sendRequest(ra.ssr, { arg: request }); + const change = await client.sendRequest(ra.ssr, { query: request, parseOnly: false }); await applySourceChange(ctx, change); }; diff --git a/editors/code/src/rust-analyzer-api.ts b/editors/code/src/rust-analyzer-api.ts index bd6e3ada0..6ad93715f 100644 --- a/editors/code/src/rust-analyzer-api.ts +++ b/editors/code/src/rust-analyzer-api.ts @@ -108,7 +108,8 @@ export const inlayHints = request>("inlayHints" export interface SsrParams { - arg: string; + query: string; + parseOnly: boolean; } export const ssr = request("ssr"); -- cgit v1.2.3