Skip to content

Commit 23116af

Browse files
authored
fix: setting config not working when deleting property (#309)
1 parent 3370b0f commit 23116af

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

src/controller/settings.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ import {
99
PanelService,
1010
SettingsService,
1111
} from 'mo/services';
12-
import { SettingsEvent, BuiltInSettingsTab } from 'mo/model/settings';
12+
import {
13+
SettingsEvent,
14+
BuiltInSettingsTab,
15+
initialEditorSetting,
16+
initialWorkbenchSetting,
17+
} from 'mo/model/settings';
1318

1419
export interface ISettingsController {}
1520

@@ -37,6 +42,11 @@ export class SettingsController
3742
const config = this.settingsService.normalizeFlatObject(
3843
tab.data?.value || ''
3944
);
45+
config.editor = { ...initialEditorSetting, ...config.editor };
46+
config.workbench = {
47+
...initialWorkbenchSetting,
48+
...config.workbench,
49+
};
4050
this.settingsService.update(config);
4151
}
4252
});

src/model/settings.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ export enum SettingsEvent {
1717
OnChange = 'settings.onchange',
1818
}
1919

20-
const initialWorkbenchSetting = {
20+
export const initialWorkbenchSetting = {
2121
colorTheme: 'Default Dark+',
2222
};
2323

24-
const initialEditorSetting: IEditorSettings = {
24+
export const initialEditorSetting: IEditorSettings = {
2525
renderWhitespace: 'none',
2626
tabSize: 4,
2727
fontSize: 14,
@@ -47,8 +47,8 @@ export class SettingsModel implements ISettings {
4747
editor: IEditorSettings;
4848

4949
constructor(
50-
workbench: IWorkbenchSettings = initialWorkbenchSetting,
51-
editor: IEditorSettings = initialEditorSetting
50+
workbench: IWorkbenchSettings = { ...initialWorkbenchSetting },
51+
editor: IEditorSettings = { ...initialEditorSetting }
5252
) {
5353
this.workbench = workbench;
5454
this.editor = editor;

0 commit comments

Comments
 (0)