diff options
| author | Mikhail Modin <mikhailm1@gmail.com> | 2020-03-15 21:23:18 +0000 |
|---|---|---|
| committer | Mikhail Modin <mikhailm1@gmail.com> | 2020-03-15 21:23:18 +0000 |
| commit | b150965ed7994c679711bc807de301a12f5c7944 (patch) | |
| tree | b8e4e4aed87953ead767861ce5066b8cc950f868 /editors/code/src | |
| parent | 530ff9f57fd27505302d082a6007b49d8b98c8af (diff) | |
| download | rust-b150965ed7994c679711bc807de301a12f5c7944.tar.gz rust-b150965ed7994c679711bc807de301a12f5c7944.zip | |
Swtches to rust SSR query check
Diffstat (limited to 'editors/code/src')
| -rw-r--r-- | editors/code/src/commands/ssr.ts | 16 | ||||
| -rw-r--r-- | editors/code/src/rust-analyzer-api.ts | 3 |
2 files changed, 11 insertions, 8 deletions
diff --git a/editors/code/src/commands/ssr.ts b/editors/code/src/commands/ssr.ts index eee48c69352..6fee051fdf6 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 bd6e3ada083..6ad93715f93 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<InlayHintsParams, Vec<InlayHint>>("inlayHints" export interface SsrParams { - arg: string; + query: string; + parseOnly: boolean; } export const ssr = request<SsrParams, SourceChange>("ssr"); |
