Skip to content

Commit 707e8b6

Browse files
authored
Fix restartLS command disposal (#18993)
1 parent 4e20c2b commit 707e8b6

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/client/activation/node/manager.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,21 @@ export class NodeLanguageServerManager implements ILanguageServerManager {
3535

3636
private started = false;
3737

38+
private static commandDispose: IDisposable;
39+
3840
constructor(
3941
private readonly serviceContainer: IServiceContainer,
4042
private readonly analysisOptions: ILanguageServerAnalysisOptions,
4143
private readonly languageServerProxy: ILanguageServerProxy,
4244
commandManager: ICommandManager,
4345
private readonly extensions: IExtensions,
4446
) {
45-
this.disposables.push(
46-
commandManager.registerCommand(Commands.RestartLS, () => {
47-
this.restartLanguageServer().ignoreErrors();
48-
}),
49-
);
47+
if (NodeLanguageServerManager.commandDispose) {
48+
NodeLanguageServerManager.commandDispose.dispose();
49+
}
50+
NodeLanguageServerManager.commandDispose = commandManager.registerCommand(Commands.RestartLS, () => {
51+
this.restartLanguageServer().ignoreErrors();
52+
});
5053
}
5154

5255
private static versionTelemetryProps(instance: NodeLanguageServerManager) {
@@ -59,6 +62,7 @@ export class NodeLanguageServerManager implements ILanguageServerManager {
5962
if (this.languageProxy) {
6063
this.languageProxy.dispose();
6164
}
65+
NodeLanguageServerManager.commandDispose.dispose();
6266
this.disposables.forEach((d) => d.dispose());
6367
}
6468

0 commit comments

Comments
 (0)