@@ -1985,10 +1985,10 @@ export class SettingsExtensionToggleRenderer extends AbstractSettingRenderer imp
1985
1985
}
1986
1986
}
1987
1987
1988
- export class SettingTreeRenderers {
1988
+ export class SettingTreeRenderers extends Disposable {
1989
1989
readonly onDidClickOverrideElement : Event < ISettingOverrideClickEvent > ;
1990
1990
1991
- private readonly _onDidChangeSetting = new Emitter < ISettingChangeEvent > ( ) ;
1991
+ private readonly _onDidChangeSetting = this . _register ( new Emitter < ISettingChangeEvent > ( ) ) ;
1992
1992
readonly onDidChangeSetting : Event < ISettingChangeEvent > ;
1993
1993
1994
1994
readonly onDidOpenSettings : Event < string > ;
@@ -2012,6 +2012,7 @@ export class SettingTreeRenderers {
2012
2012
@IUserDataProfilesService private readonly _userDataProfilesService : IUserDataProfilesService ,
2013
2013
@IUserDataSyncEnablementService private readonly _userDataSyncEnablementService : IUserDataSyncEnablementService ,
2014
2014
) {
2015
+ super ( ) ;
2015
2016
this . settingActions = [
2016
2017
new Action ( 'settings.resetSetting' , localize ( 'resetSettingLabel' , "Reset Setting" ) , undefined , undefined , async context => {
2017
2018
if ( context instanceof SettingsTreeSettingElement ) {
@@ -2117,6 +2118,20 @@ export class SettingTreeRenderers {
2117
2118
const settingElement = this . getSettingDOMElementForDOMElement ( element ) ;
2118
2119
return settingElement && settingElement . getAttribute ( AbstractSettingRenderer . SETTING_ID_ATTR ) ;
2119
2120
}
2121
+
2122
+ override dispose ( ) : void {
2123
+ super . dispose ( ) ;
2124
+ this . settingActions . forEach ( action => {
2125
+ if ( isDisposable ( action ) ) {
2126
+ action . dispose ( ) ;
2127
+ }
2128
+ } ) ;
2129
+ this . allRenderers . forEach ( renderer => {
2130
+ if ( isDisposable ( renderer ) ) {
2131
+ renderer . dispose ( ) ;
2132
+ }
2133
+ } ) ;
2134
+ }
2120
2135
}
2121
2136
2122
2137
/**
0 commit comments