Skip to content

Commit 94cfd18

Browse files
authored
Merge pull request microsoft#187083 from SvanT/main
Dispose `TerminalWordLinkDetector` listeners
2 parents 6c8cdf3 + 6635391 commit 94cfd18

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

src/vs/workbench/contrib/terminalContrib/links/browser/terminal.links.contribution.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class TerminalLinkContribution extends DisposableStore implements ITerminalContr
5454
this._processManager.onProcessReady(() => {
5555
linkManager.setWidgetManager(this._widgetManager);
5656
});
57-
this._linkManager = linkManager;
57+
this._linkManager = this.add(linkManager);
5858

5959
// Attach the link provider(s) to the instance and listen for changes
6060
for (const linkProvider of this._terminalLinkProviderService.linkProviders) {

src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export class TerminalLinkManager extends DisposableStore {
7777
this._setupLinkDetector(TerminalMultiLineLinkDetector.id, this._instantiationService.createInstance(TerminalMultiLineLinkDetector, this._xterm, this._processManager, this._linkResolver));
7878
this._setupLinkDetector(TerminalLocalLinkDetector.id, this._instantiationService.createInstance(TerminalLocalLinkDetector, this._xterm, capabilities, this._processManager, this._linkResolver));
7979
}
80-
this._setupLinkDetector(TerminalWordLinkDetector.id, this._instantiationService.createInstance(TerminalWordLinkDetector, this._xterm));
80+
this._setupLinkDetector(TerminalWordLinkDetector.id, this.add(this._instantiationService.createInstance(TerminalWordLinkDetector, this._xterm)));
8181

8282
// Setup link openers
8383
const localFileOpener = this._instantiationService.createInstance(TerminalLocalFileLinkOpener);

src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import { Disposable } from 'vs/base/common/lifecycle';
67
import { escapeRegExpCharacters } from 'vs/base/common/strings';
78
import { URI } from 'vs/base/common/uri';
89
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
@@ -27,7 +28,7 @@ interface Word {
2728
text: string;
2829
}
2930

30-
export class TerminalWordLinkDetector implements ITerminalLinkDetector {
31+
export class TerminalWordLinkDetector extends Disposable implements ITerminalLinkDetector {
3132
static id = 'word';
3233

3334
// Word links typically search the workspace so it makes sense that their maximum link length is
@@ -41,12 +42,14 @@ export class TerminalWordLinkDetector implements ITerminalLinkDetector {
4142
@IConfigurationService private readonly _configurationService: IConfigurationService,
4243
@IProductService private readonly _productService: IProductService,
4344
) {
45+
super();
46+
4447
this._refreshSeparatorCodes();
45-
this._configurationService.onDidChangeConfiguration(e => {
48+
this._register(this._configurationService.onDidChangeConfiguration(e => {
4649
if (e.affectsConfiguration(TerminalSettingId.WordSeparators)) {
4750
this._refreshSeparatorCodes();
4851
}
49-
});
52+
}));
5053
}
5154

5255
detect(lines: IBufferLine[], startLine: number, endLine: number): ITerminalSimpleLink[] {

0 commit comments

Comments
 (0)