diff options
| author | Aleksey Kladov <aleksey.kladov@gmail.com> | 2020-02-17 14:03:33 +0100 |
|---|---|---|
| committer | Aleksey Kladov <aleksey.kladov@gmail.com> | 2020-02-17 14:03:33 +0100 |
| commit | ee4e41cbea8ef3758ccebd9ffb35c5290aebfceb (patch) | |
| tree | 7b377257a1f0e64611a31270b3dfd25d12acd96f /editors/code/src/main.ts | |
| parent | 6167101302bcc2d7f1a345e0ee44e1411056b4b3 (diff) | |
| download | rust-ee4e41cbea8ef3758ccebd9ffb35c5290aebfceb.tar.gz rust-ee4e41cbea8ef3758ccebd9ffb35c5290aebfceb.zip | |
Push IO and error handling up
Diffstat (limited to 'editors/code/src/main.ts')
| -rw-r--r-- | editors/code/src/main.ts | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index 0bf2c4829bb..ece4883bd69 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -5,18 +5,27 @@ import { activateInlayHints } from './inlay_hints'; import { activateStatusDisplay } from './status_display'; import { Ctx } from './ctx'; import { activateHighlighting } from './highlighting'; +import { ensureServerBinary } from './installation/server'; let ctx: Ctx | undefined; export async function activate(context: vscode.ExtensionContext) { ctx = new Ctx(context); + const serverPath = await ensureServerBinary(ctx.config.serverSource); + if (serverPath == null) { + throw new Error( + "Rust Analyzer Language Server is not available. " + + "Please, ensure its [proper installation](https://github.com/rust-analyzer/rust-analyzer/tree/master/docs/user#vs-code)." + ); + } + // Note: we try to start the server before we activate type hints so that it // registers its `onDidChangeDocument` handler before us. // // This a horribly, horribly wrong way to deal with this problem. try { - await ctx.startServer(); + await ctx.startServer(serverPath); } catch (e) { vscode.window.showErrorMessage(e.message); } |
