diff options
| author | bors <bors@rust-lang.org> | 2024-03-29 17:01:51 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-03-29 17:01:51 +0000 |
| commit | f5a9250147f6569d8d89334dc9cca79c0322729f (patch) | |
| tree | f79a9f093d529160ca6c41d66f8f0a16b75f3509 | |
| parent | 9d84142ef22103b76262974301f2cb22c186f0fe (diff) | |
| parent | 34cde2cebc67b0b99b5c738f948497691d0ed5e3 (diff) | |
| download | rust-f5a9250147f6569d8d89334dc9cca79c0322729f.tar.gz rust-f5a9250147f6569d8d89334dc9cca79c0322729f.zip | |
Auto merge of #16975 - HKalbasi:test-explorer, r=HKalbasi
Prompt the user to reload the window when enabling test explorer
| -rw-r--r-- | editors/code/src/config.ts | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index 92a816bfbcb..e676bc0826c 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts @@ -19,7 +19,7 @@ export class Config { configureLang: vscode.Disposable | undefined; readonly rootSection = "rust-analyzer"; - private readonly requiresReloadOpts = [ + private readonly requiresServerReloadOpts = [ "cargo", "procMacro", "serverPath", @@ -27,6 +27,10 @@ export class Config { "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 @@ export class Config { this.configureLanguage(); - const requiresReloadOpt = this.requiresReloadOpts.find((opt) => + const requiresWindowReloadOpt = this.requiresWindowReloadOpts.find((opt) => + event.affectsConfiguration(opt), + ); + + 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 (!requiresReloadOpt) return; + 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) { |
