aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/main.ts
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-02-24 11:32:15 +0000
committerAleksey Kladov <[email protected]>2020-02-24 11:32:15 +0000
commitb12cbd60628b6061649c3d41bc8d7022c75aa362 (patch)
tree276c350d7a3d36564d1bcd6a70bb3abb57fe00e9 /editors/code/src/main.ts
parent1d1c1b0d85547d31775f9e0f3b5516c4b38fed9f (diff)
Don't break onEnter if rust-analyzer fails to start
closes #3253
Diffstat (limited to 'editors/code/src/main.ts')
-rw-r--r--editors/code/src/main.ts23
1 files changed, 23 insertions, 0 deletions
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts
index 7b3bb6302..424ff1ac3 100644
--- a/editors/code/src/main.ts
+++ b/editors/code/src/main.ts
@@ -12,6 +12,26 @@ import { log } from './util';
12let ctx: Ctx | undefined; 12let ctx: Ctx | undefined;
13 13
14export async function activate(context: vscode.ExtensionContext) { 14export async function activate(context: vscode.ExtensionContext) {
15 // Register a "dumb" onEnter command for the case where server fails to
16 // start.
17 //
18 // FIXME: refactor command registration code such that commands are
19 // **always** registered, even if the server does not start. Use API like
20 // this perhaps?
21 //
22 // ```TypeScript
23 // registerCommand(
24 // factory: (Ctx) => ((Ctx) => any),
25 // fallback: () => any = () => vscode.window.showErrorMessage(
26 // "rust-analyzer is not available"
27 // ),
28 // )
29 const defaultOnEnter = vscode.commands.registerCommand(
30 'rust-analyzer.onEnter',
31 () => vscode.commands.executeCommand('default:type', { text: '\n' }),
32 );
33 context.subscriptions.push(defaultOnEnter);
34
15 const config = new Config(context); 35 const config = new Config(context);
16 36
17 const serverPath = await ensureServerBinary(config.serverSource); 37 const serverPath = await ensureServerBinary(config.serverSource);
@@ -54,7 +74,10 @@ export async function activate(context: vscode.ExtensionContext) {
54 ctx.registerCommand('syntaxTree', commands.syntaxTree); 74 ctx.registerCommand('syntaxTree', commands.syntaxTree);
55 ctx.registerCommand('expandMacro', commands.expandMacro); 75 ctx.registerCommand('expandMacro', commands.expandMacro);
56 ctx.registerCommand('run', commands.run); 76 ctx.registerCommand('run', commands.run);
77
78 defaultOnEnter.dispose();
57 ctx.registerCommand('onEnter', commands.onEnter); 79 ctx.registerCommand('onEnter', commands.onEnter);
80
58 ctx.registerCommand('ssr', commands.ssr); 81 ctx.registerCommand('ssr', commands.ssr);
59 ctx.registerCommand('serverVersion', commands.serverVersion); 82 ctx.registerCommand('serverVersion', commands.serverVersion);
60 83