aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/commands/server_version.ts
diff options
context:
space:
mode:
Diffstat (limited to 'editors/code/src/commands/server_version.ts')
-rw-r--r--editors/code/src/commands/server_version.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/editors/code/src/commands/server_version.ts b/editors/code/src/commands/server_version.ts
new file mode 100644
index 000000000..421301b42
--- /dev/null
+++ b/editors/code/src/commands/server_version.ts
@@ -0,0 +1,21 @@
1import * as vscode from 'vscode';
2import { ensureServerBinary } from '../installation/server';
3import { Ctx, Cmd } from '../ctx';
4import { spawnSync } from 'child_process';
5
6export function serverVersion(ctx: Ctx): Cmd {
7 return async () => {
8 const binaryPath = await ensureServerBinary(ctx.config.serverSource);
9
10 if (binaryPath == null) {
11 throw new Error(
12 "Rust Analyzer Language Server is not available. " +
13 "Please, ensure its [proper installation](https://rust-analyzer.github.io/manual.html#installation)."
14 );
15 }
16
17 const version = spawnSync(binaryPath, ["--version"], { encoding: "utf8" }).stdout;
18 vscode.window.showInformationMessage('rust-analyzer version : ' + version);
19 };
20}
21