|
6 | 6 | import { getErrorMessage } from 'vs/base/common/errors';
|
7 | 7 | import { Emitter } from 'vs/base/common/event';
|
8 | 8 | import { parse } from 'vs/base/common/json';
|
9 |
| -import { Disposable } from 'vs/base/common/lifecycle'; |
| 9 | +import { Disposable, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle'; |
10 | 10 | import * as network from 'vs/base/common/network';
|
11 | 11 | import { URI } from 'vs/base/common/uri';
|
12 | 12 | import { CoreEditingCommands } from 'vs/editor/browser/coreCommands';
|
@@ -67,8 +67,6 @@ export class PreferencesService extends Disposable implements IPreferencesServic
|
67 | 67 | private readonly _requestedDefaultSettings = new ResourceSet();
|
68 | 68 |
|
69 | 69 | private _settingsGroups: ISettingsGroup[] | undefined = undefined;
|
70 |
| - private _defaultSettings: DefaultSettings | undefined = undefined; |
71 |
| - |
72 | 70 |
|
73 | 71 | constructor(
|
74 | 72 | @IEditorService private readonly editorService: IEditorService,
|
@@ -441,14 +439,14 @@ export class PreferencesService extends Disposable implements IPreferencesServic
|
441 | 439 |
|
442 | 440 | private getDefaultSettings(target: ConfigurationTarget): DefaultSettings {
|
443 | 441 | if (target === ConfigurationTarget.WORKSPACE) {
|
444 |
| - this._defaultWorkspaceSettingsContentModel ??= this._register(new DefaultSettings(this.getMostCommonlyUsedSettings(), target)); |
| 442 | + this._defaultWorkspaceSettingsContentModel ??= this._register(new DefaultSettings(this.getMostCommonlyUsedSettings(), target, this.configurationService)); |
445 | 443 | return this._defaultWorkspaceSettingsContentModel;
|
446 | 444 | }
|
447 | 445 | if (target === ConfigurationTarget.WORKSPACE_FOLDER) {
|
448 |
| - this._defaultFolderSettingsContentModel ??= this._register(new DefaultSettings(this.getMostCommonlyUsedSettings(), target)); |
| 446 | + this._defaultFolderSettingsContentModel ??= this._register(new DefaultSettings(this.getMostCommonlyUsedSettings(), target, this.configurationService)); |
449 | 447 | return this._defaultFolderSettingsContentModel;
|
450 | 448 | }
|
451 |
| - this._defaultUserSettingsContentModel ??= this._register(new DefaultSettings(this.getMostCommonlyUsedSettings(), target)); |
| 449 | + this._defaultUserSettingsContentModel ??= this._register(new DefaultSettings(this.getMostCommonlyUsedSettings(), target, this.configurationService)); |
452 | 450 | return this._defaultUserSettingsContentModel;
|
453 | 451 | }
|
454 | 452 |
|
@@ -594,16 +592,15 @@ export class PreferencesService extends Disposable implements IPreferencesServic
|
594 | 592 | return position;
|
595 | 593 | }
|
596 | 594 |
|
597 |
| - private get defaultSettings(): DefaultSettings { |
598 |
| - if (!this._defaultSettings) { |
599 |
| - this._defaultSettings = new DefaultSettings([], ConfigurationTarget.USER); |
600 |
| - } |
601 |
| - return this._defaultSettings; |
602 |
| - } |
603 |
| - |
604 | 595 | getSetting(settingId: string): ISetting | undefined {
|
605 | 596 | if (!this._settingsGroups) {
|
606 |
| - this._settingsGroups = this.defaultSettings.getSettingsGroups(); |
| 597 | + const defaultSettings = this.getDefaultSettings(ConfigurationTarget.USER); |
| 598 | + const defaultsChangedDisposable: MutableDisposable<IDisposable> = this._register(new MutableDisposable()); |
| 599 | + defaultsChangedDisposable.value = defaultSettings.onDidChange(() => { |
| 600 | + this._settingsGroups = undefined; |
| 601 | + defaultsChangedDisposable.clear(); |
| 602 | + }); |
| 603 | + this._settingsGroups = defaultSettings.getSettingsGroups(); |
607 | 604 | }
|
608 | 605 |
|
609 | 606 | for (const group of this._settingsGroups) {
|
@@ -632,11 +629,10 @@ export class PreferencesService extends Disposable implements IPreferencesServic
|
632 | 629 |
|
633 | 630 | const openSettingsOptions: IOpenSettingsOptions = {};
|
634 | 631 | const settingInfo = uri.path.split('/').filter(part => !!part);
|
635 |
| - if ((settingInfo.length === 0) || !this.getSetting(settingInfo[0])) { |
636 |
| - return false; |
| 632 | + if ((settingInfo.length > 0) && this.getSetting(settingInfo[0])) { |
| 633 | + openSettingsOptions.query = settingInfo[0]; |
637 | 634 | }
|
638 | 635 |
|
639 |
| - openSettingsOptions.query = settingInfo[0]; |
640 | 636 | this.openSettings(openSettingsOptions);
|
641 | 637 | return true;
|
642 | 638 | }
|
|
0 commit comments