Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #18359 - Daanoz:support-initializeStopped, r=Veykril
feat: support initializeStopped setting See #18356 Add option to start rust-analyzer in "stopped" state when the extension activates.
bors 2024-10-21
parent 546da8a · parent 928ea2e · commit b0b5d38
-rw-r--r--editors/code/package.json5
-rw-r--r--editors/code/src/config.ts4
-rw-r--r--editors/code/src/main.ts9
3 files changed, 17 insertions, 1 deletions
diff --git a/editors/code/package.json b/editors/code/package.json
index 70bb5f2447..e55eceff78 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -349,6 +349,11 @@
"markdownDescription": "Whether to show the test explorer.",
"default": false,
"type": "boolean"
+ },
+ "rust-analyzer.initializeStopped": {
+ "markdownDescription": "Do not start rust-analyzer server when the extension is activated.",
+ "default": false,
+ "type": "boolean"
}
}
},
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index abb4099f9f..67bc72f1e1 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -330,6 +330,10 @@ export class Config {
get statusBarClickAction() {
return this.get<string>("statusBar.clickAction");
}
+
+ get initializeStopped() {
+ return this.get<boolean>("initializeStopped");
+ }
}
export function prepareVSCodeConfig<T>(resp: T): T {
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts
index 0ddc5619e9..fdf43f66f9 100644
--- a/editors/code/src/main.ts
+++ b/editors/code/src/main.ts
@@ -107,7 +107,14 @@ async function activateServer(ctx: Ctx): Promise<RustAnalyzerExtensionApi> {
initializeDebugSessionTrackingAndRebuild(ctx);
}
- await ctx.start();
+ if (ctx.config.initializeStopped) {
+ ctx.setServerStatus({
+ health: "stopped",
+ });
+ } else {
+ await ctx.start();
+ }
+
return ctx;
}