Auto merge of #16975 - HKalbasi:test-explorer, r=HKalbasi
Prompt the user to reload the window when enabling test explorer
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 92a816b..e676bc0 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -19,7 +19,7 @@
configureLang: vscode.Disposable | undefined;
readonly rootSection = "rust-analyzer";
- private readonly requiresReloadOpts = [
+ private readonly requiresServerReloadOpts = [
"cargo",
"procMacro",
"serverPath",
@@ -27,6 +27,10 @@
"files",
].map((opt) => `${this.rootSection}.${opt}`);
+ private readonly requiresWindowReloadOpts = ["testExplorer"].map(
+ (opt) => `${this.rootSection}.${opt}`,
+ );
+
readonly package: {
version: string;
releaseTag: string | null;
@@ -66,18 +70,31 @@
this.configureLanguage();
- const requiresReloadOpt = this.requiresReloadOpts.find((opt) =>
+ const requiresWindowReloadOpt = this.requiresWindowReloadOpts.find((opt) =>
event.affectsConfiguration(opt),
);
- if (!requiresReloadOpt) return;
+ if (requiresWindowReloadOpt) {
+ const message = `Changing "${requiresWindowReloadOpt}" requires a window reload`;
+ const userResponse = await vscode.window.showInformationMessage(message, "Reload now");
+
+ if (userResponse) {
+ await vscode.commands.executeCommand("workbench.action.reloadWindow");
+ }
+ }
+
+ const requiresServerReloadOpt = this.requiresServerReloadOpts.find((opt) =>
+ event.affectsConfiguration(opt),
+ );
+
+ if (!requiresServerReloadOpt) return;
if (this.restartServerOnConfigChange) {
await vscode.commands.executeCommand("rust-analyzer.restartServer");
return;
}
- const message = `Changing "${requiresReloadOpt}" requires a server restart`;
+ const message = `Changing "${requiresServerReloadOpt}" requires a server restart`;
const userResponse = await vscode.window.showInformationMessage(message, "Restart now");
if (userResponse) {