@opensumi/ide-preferences 2.27.3-rc-1708395495.0 → 2.27.3-rc-1710386185.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/lib/browser/abstract-resource-preference-provider.d.ts +1 -2
  2. package/lib/browser/abstract-resource-preference-provider.d.ts.map +1 -1
  3. package/lib/browser/abstract-resource-preference-provider.js +6 -7
  4. package/lib/browser/abstract-resource-preference-provider.js.map +1 -1
  5. package/lib/browser/folder-file-preference-provider.d.ts +1 -1
  6. package/lib/browser/folder-file-preference-provider.d.ts.map +1 -1
  7. package/lib/browser/folders-preferences-provider.d.ts +1 -1
  8. package/lib/browser/folders-preferences-provider.d.ts.map +1 -1
  9. package/lib/browser/index.d.ts +1 -1
  10. package/lib/browser/index.d.ts.map +1 -1
  11. package/lib/browser/preference-contribution.d.ts +3 -3
  12. package/lib/browser/preference-contribution.d.ts.map +1 -1
  13. package/lib/browser/preference-settings.service.d.ts +19 -6
  14. package/lib/browser/preference-settings.service.d.ts.map +1 -1
  15. package/lib/browser/preference-settings.service.js +55 -83
  16. package/lib/browser/preference-settings.service.js.map +1 -1
  17. package/lib/browser/preferenceItem.view.d.ts +1 -1
  18. package/lib/browser/preferenceItem.view.d.ts.map +1 -1
  19. package/lib/browser/preferences.view.d.ts +0 -3
  20. package/lib/browser/preferences.view.d.ts.map +1 -1
  21. package/lib/browser/preferences.view.js +133 -149
  22. package/lib/browser/preferences.view.js.map +1 -1
  23. package/lib/browser/userstorage/user-storage.contribution.d.ts.map +1 -1
  24. package/lib/browser/userstorage/user-storage.service.d.ts +2 -3
  25. package/lib/browser/userstorage/user-storage.service.d.ts.map +1 -1
  26. package/lib/browser/userstorage/user-storage.service.js.map +1 -1
  27. package/lib/browser/workspace-preference-provider.d.ts +1 -1
  28. package/lib/browser/workspace-preference-provider.d.ts.map +1 -1
  29. package/lib/common/types.d.ts +6 -5
  30. package/lib/common/types.d.ts.map +1 -1
  31. package/package.json +8 -8
  32. package/src/browser/abstract-resource-preference-provider.ts +12 -14
  33. package/src/browser/folder-file-preference-provider.ts +1 -1
  34. package/src/browser/folders-preferences-provider.ts +3 -3
  35. package/src/browser/index.ts +5 -5
  36. package/src/browser/preference-contribution.ts +20 -20
  37. package/src/browser/preference-settings.service.ts +93 -55
  38. package/src/browser/preference-widgets.ts +1 -1
  39. package/src/browser/preferenceItem.view.tsx +8 -8
  40. package/src/browser/preferences.view.tsx +185 -175
  41. package/src/browser/userstorage/user-storage.contribution.ts +1 -1
  42. package/src/browser/userstorage/user-storage.service.ts +6 -7
  43. package/src/browser/workspace-preference-provider.ts +3 -3
  44. package/src/common/types.ts +8 -6
@@ -1,18 +1,18 @@
1
- import { Provider, Injector, Injectable } from '@opensumi/di';
1
+ import { Injectable, Injector, Provider } from '@opensumi/di';
2
2
  import { BrowserModule } from '@opensumi/ide-core-browser';
3
3
  import {
4
- PreferenceScope,
4
+ IPreferenceSettingsService,
5
5
  PreferenceConfigurations,
6
6
  PreferenceProvider,
7
- IPreferenceSettingsService,
7
+ PreferenceScope,
8
8
  } from '@opensumi/ide-core-browser/lib/preferences';
9
9
 
10
10
  import { IUserStorageService, SettingContribution } from '../common';
11
11
 
12
12
  import {
13
+ FolderFilePreferenceProvider,
13
14
  FolderFilePreferenceProviderFactory,
14
15
  FolderFilePreferenceProviderOptions,
15
- FolderFilePreferenceProvider,
16
16
  } from './folder-file-preference-provider';
17
17
  import { FoldersPreferencesProvider } from './folders-preferences-provider';
18
18
  import { PreferenceContribution } from './preference-contribution';
@@ -20,9 +20,9 @@ import { PreferenceSettingsService } from './preference-settings.service';
20
20
  import { UserPreferenceProvider } from './user-preference-provider';
21
21
  import { UserStorageContribution, UserStorageServiceImpl } from './userstorage';
22
22
  import {
23
+ WorkspaceFilePreferenceProvider,
23
24
  WorkspaceFilePreferenceProviderFactory,
24
25
  WorkspaceFilePreferenceProviderOptions,
25
- WorkspaceFilePreferenceProvider,
26
26
  } from './workspace-file-preference-provider';
27
27
  import { WorkspacePreferenceProvider } from './workspace-preference-provider';
28
28
 
@@ -1,38 +1,38 @@
1
1
  import * as jsoncParser from 'jsonc-parser';
2
2
 
3
- import { Autowired, Injectable, INJECTOR_TOKEN, Injector } from '@opensumi/di';
3
+ import { Autowired, INJECTOR_TOKEN, Injectable, Injector } from '@opensumi/di';
4
4
  import {
5
+ COMMON_COMMANDS,
5
6
  ClientAppContribution,
6
- PreferenceSchemaProvider,
7
- URI,
8
- Domain,
7
+ CodeSchemaId,
8
+ Command,
9
9
  CommandContribution,
10
10
  CommandRegistry,
11
- COMMON_COMMANDS,
12
- KeybindingContribution,
13
- KeybindingRegistry,
14
- PreferenceScope,
15
- PreferenceProvider,
16
- WithEventBus,
17
- MaybePromise,
18
- localize,
19
11
  CommandService,
12
+ ContributionProvider,
13
+ Domain,
20
14
  EDITOR_COMMANDS,
21
- JsonSchemaContribution,
15
+ IDisposable,
22
16
  IJSONSchemaRegistry,
23
17
  IPreferenceSettingsService,
24
- ContributionProvider,
25
18
  ISettingGroup,
26
- IDisposable,
19
+ ISettingSection,
20
+ JsonSchemaContribution,
21
+ KeybindingContribution,
22
+ KeybindingRegistry,
23
+ MaybePromise,
24
+ PreferenceProvider,
25
+ PreferenceSchemaProvider,
26
+ PreferenceScope,
27
+ URI,
28
+ WithEventBus,
27
29
  arrays,
28
- Command,
29
30
  getIcon,
30
31
  isString,
31
- ISettingSection,
32
- CodeSchemaId,
32
+ localize,
33
33
  } from '@opensumi/ide-core-browser';
34
- import { MenuContribution, IMenuRegistry, MenuId } from '@opensumi/ide-core-browser/lib/menu/next';
35
- import { ResourceService, IResourceProvider, IResource } from '@opensumi/ide-editor';
34
+ import { IMenuRegistry, MenuContribution, MenuId } from '@opensumi/ide-core-browser/lib/menu/next';
35
+ import { IResource, IResourceProvider, ResourceService } from '@opensumi/ide-editor';
36
36
  import {
37
37
  BrowserEditorContribution,
38
38
  EditorComponentRegistry,
@@ -1,40 +1,40 @@
1
- import { observable, action, computed, makeObservable } from 'mobx';
2
-
3
- import { Injectable, Autowired } from '@opensumi/di';
1
+ import { Autowired, Injectable } from '@opensumi/di';
2
+ import { EventEmitter } from '@opensumi/events';
4
3
  import { IBasicRecycleTreeHandle } from '@opensumi/ide-components';
5
4
  import { IVirtualListHandle } from '@opensumi/ide-components/lib/virtual-list/types';
6
5
  import {
7
- IPreferenceViewDesc,
6
+ CommandService,
7
+ Dispatcher,
8
+ Disposable,
9
+ Emitter,
10
+ Event,
11
+ IDisposable,
8
12
  IPreferenceSettingsService,
13
+ IPreferenceViewDesc,
14
+ IResolvedPreferenceViewDesc,
15
+ IResolvedSettingSection,
9
16
  ISettingGroup,
10
17
  ISettingSection,
11
- PreferenceProviderProvider,
12
- Emitter,
13
- Dispatcher,
14
- Event,
15
- CommandService,
16
- isString,
17
- getIcon,
18
- PreferenceScope,
18
+ MenubarSettingId,
19
19
  PreferenceProvider,
20
+ PreferenceProviderProvider,
20
21
  PreferenceSchemaProvider,
21
- IDisposable,
22
- arrays,
23
- getAvailableLanguages,
22
+ PreferenceScope,
23
+ PreferenceScopeWithLabel,
24
24
  PreferenceService,
25
- replaceLocalizePlaceholder,
26
25
  TerminalSettingsId,
27
- IResolvedPreferenceViewDesc,
28
- IResolvedSettingSection,
29
- Disposable,
30
26
  UserScope,
31
27
  WorkspaceScope,
32
- MenubarSettingId,
28
+ arrays,
29
+ getAvailableLanguages,
30
+ getIcon,
31
+ isString,
32
+ replaceLocalizePlaceholder,
33
33
  } from '@opensumi/ide-core-browser';
34
34
  import { SearchSettingId } from '@opensumi/ide-core-common/lib/settings/search';
35
35
  import { IFileServiceClient } from '@opensumi/ide-file-service';
36
36
 
37
- import { toPreferenceReadableName, PreferenceSettingId, getPreferenceItemLabel, ESectionItemKind } from '../common';
37
+ import { ESectionItemKind, PreferenceSettingId, getPreferenceItemLabel, toPreferenceReadableName } from '../common';
38
38
 
39
39
  import { PREFERENCE_COMMANDS } from './preference-contribution';
40
40
 
@@ -73,36 +73,41 @@ export class PreferenceSettingsService extends Disposable implements IPreference
73
73
  @Autowired(CommandService)
74
74
  protected readonly commandService: CommandService;
75
75
 
76
- private onSettingsGroupsChangeEmitter: Emitter<void> = this.registerDispose(new Emitter());
77
- public readonly onSettingsGroupsChange: Event<void> = this.onSettingsGroupsChangeEmitter.event;
78
-
79
- @observable
80
- public currentSearch = '';
76
+ emitter = this.registerDispose(
77
+ new EventEmitter<{
78
+ currentSearchChange: [void];
79
+ settingsGroupsChange: [void];
80
+ currentSelectIdChange: [string];
81
+ tabListChange: [void];
82
+ tabIndexChange: [];
83
+ currentScopeChange: [];
84
+ settingsSectionsChange: [groupId: string];
85
+ }>(),
86
+ );
87
+
88
+ currentSearch = '';
89
+ tabIndex = 0;
90
+ tabList = [WorkspaceScope, UserScope] as PreferenceScopeWithLabel[];
81
91
 
82
- @observable
83
- currentSelectId = '';
92
+ protected _currentScope: PreferenceScopeWithLabel = this.tabList[0];
84
93
 
85
- @observable
86
- private userBeforeWorkspace = false;
94
+ get currentScope() {
95
+ return this._currentScope.id;
96
+ }
87
97
 
88
- @observable
89
- tabIndex = 0;
98
+ protected _currentSelectId = '';
90
99
 
91
- @computed
92
- get tabList() {
93
- return this.userBeforeWorkspace ? [UserScope, WorkspaceScope] : [WorkspaceScope, UserScope];
100
+ get currentSelectId() {
101
+ return this._currentSelectId;
94
102
  }
95
103
 
96
- @computed
97
- get currentScope() {
98
- const scope = this.tabList[this.tabIndex];
99
- return scope.id;
104
+ set currentSelectId(id: string) {
105
+ this._currentSelectId = id;
106
+ this.emitter.emit('currentSelectIdChange', id);
100
107
  }
101
108
 
102
- @observable
103
109
  settingsGroups: ISettingGroup[] = [];
104
110
 
105
- @observable
106
111
  settingsSections: Map<string, ISettingSection[]> = new Map();
107
112
  private settingsSectionsVersioned: Versionizer<string> = new Versionizer();
108
113
 
@@ -116,7 +121,6 @@ export class PreferenceSettingsService extends Disposable implements IPreference
116
121
 
117
122
  constructor() {
118
123
  super();
119
- makeObservable(this);
120
124
  this.setEnumLabels(
121
125
  'general.language',
122
126
  new Proxy(
@@ -131,42 +135,71 @@ export class PreferenceSettingsService extends Disposable implements IPreference
131
135
  '\r\n': 'CRLF',
132
136
  auto: 'auto',
133
137
  });
134
- this.userBeforeWorkspace = this.preferenceService.get<boolean>('settings.userBeforeWorkspace', false);
135
138
 
136
- this.registerDispose(
139
+ const userBeforeWorkspace = this.preferenceService.get<boolean>('settings.userBeforeWorkspace', false);
140
+ if (userBeforeWorkspace) {
141
+ this.updateTabList(userBeforeWorkspace);
142
+ }
143
+
144
+ this.addDispose([
137
145
  this.preferenceService.onSpecificPreferenceChange('settings.userBeforeWorkspace', (e) => {
138
- this.userBeforeWorkspace = e.newValue;
146
+ this.updateTabList(e.newValue);
139
147
  }),
140
- );
148
+ this.emitter.on('tabListChange', () => {
149
+ this.updateCurrentScope();
150
+ }),
151
+ this.emitter.on('tabIndexChange', () => {
152
+ this.updateCurrentScope();
153
+ }),
154
+ ]);
155
+ }
156
+
157
+ updateTabList(userBeforeWorkspace: boolean) {
158
+ let tabList: PreferenceScopeWithLabel[];
159
+ if (userBeforeWorkspace) {
160
+ tabList = [UserScope, WorkspaceScope];
161
+ } else {
162
+ tabList = [WorkspaceScope, UserScope];
163
+ }
164
+
165
+ this.tabList = tabList;
166
+ this.emitter.emit('tabListChange');
167
+ }
168
+
169
+ protected updateCurrentScope() {
170
+ this._currentScope = this.tabList[this.tabIndex];
171
+ this.emitter.emit('currentScopeChange');
141
172
  }
142
173
 
143
- @action
144
174
  scrollToGroup(groupId: string): void {
145
175
  if (groupId) {
146
176
  this.currentSelectId = ESectionItemKind.Group + groupId;
147
177
  }
148
178
  }
149
- @action
179
+
150
180
  scrollToSection(section: string): void {
151
181
  if (section) {
152
182
  this.currentSelectId = ESectionItemKind.Section + section;
153
183
  }
154
184
  }
155
- @action
185
+
156
186
  scrollToPreference(preferenceId: string): void {
157
187
  if (preferenceId) {
158
188
  this.currentSelectId = ESectionItemKind.Preference + preferenceId;
159
189
  }
160
190
  }
161
191
 
162
- @action.bound
192
+ updateTabIndex(index: number) {
193
+ this.tabIndex = index;
194
+ this.emitter.emit('tabIndexChange');
195
+ }
196
+
163
197
  selectScope(scope: PreferenceScope) {
164
- // 利用副作用强制刷新一下
165
198
  let index = this.tabList.findIndex((v) => v.id === scope);
166
199
  if (index === -1) {
167
200
  index = 0;
168
201
  }
169
- this.tabIndex = index;
202
+ this.updateTabIndex(index);
170
203
  }
171
204
 
172
205
  onDidEnumLabelsChange(id: string) {
@@ -186,13 +219,14 @@ export class PreferenceSettingsService extends Disposable implements IPreference
186
219
  return Array.isArray(v.hiddenInScope) && v.hiddenInScope.includes(scope);
187
220
  }
188
221
 
189
- @action
190
222
  private doSearch(value?: string) {
191
223
  if (value) {
192
224
  this.currentSearch = value;
193
225
  } else {
194
226
  this.currentSearch = '';
195
227
  }
228
+
229
+ this.emitter.emit('currentSearchChange');
196
230
  }
197
231
 
198
232
  openJSON = (scope: PreferenceScope, preferenceId: string) => {
@@ -254,10 +288,10 @@ export class PreferenceSettingsService extends Disposable implements IPreference
254
288
  ...group,
255
289
  title: replaceLocalizePlaceholder(group.title) || group.title,
256
290
  });
257
- this.onSettingsGroupsChangeEmitter.fire();
291
+ this.emitter.emit('settingsGroupsChange');
258
292
  return Disposable.create(() => {
259
293
  disposable.dispose();
260
- this.onSettingsGroupsChangeEmitter.fire();
294
+ this.emitter.emit('settingsGroupsChange');
261
295
  });
262
296
  }
263
297
 
@@ -273,10 +307,12 @@ export class PreferenceSettingsService extends Disposable implements IPreference
273
307
  this.cachedGroupSection.clear();
274
308
  const disposable = addElement(this.settingsSections.get(groupId)!, section);
275
309
  this.settingsSectionsVersioned.increase(groupId);
310
+ this.emitter.emit('settingsSectionsChange', groupId);
276
311
  return {
277
312
  dispose: () => {
278
313
  disposable.dispose();
279
314
  this.settingsSectionsVersioned.increase(groupId);
315
+ this.emitter.emit('settingsSectionsChange', groupId);
280
316
  },
281
317
  };
282
318
  }
@@ -563,6 +599,7 @@ export const defaultSettingSections: {
563
599
  preferences: [
564
600
  { id: 'general.theme', localized: 'preference.general.theme' },
565
601
  { id: 'general.icon', localized: 'preference.general.icon' },
602
+ { id: 'general.productIconTheme', localized: 'preference.general.productIconTheme' },
566
603
  {
567
604
  id: 'general.language',
568
605
  localized: 'preference.general.language',
@@ -648,6 +685,7 @@ export const defaultSettingSections: {
648
685
  { id: 'editor.suggest.details.visible' },
649
686
  // 行内补全
650
687
  { id: 'editor.inlineSuggest.enabled', localized: 'preference.editor.inlineSuggest.enabled' },
688
+ { id: 'editor.inlineSuggest.showToolbar' },
651
689
  {
652
690
  id: 'editor.experimental.stickyScroll.enabled',
653
691
  localized: 'preference.editor.experimental.stickyScroll.enabled',
@@ -10,7 +10,7 @@ import {
10
10
  MenuCommandDesc,
11
11
  MenuId,
12
12
  } from '@opensumi/ide-core-browser/lib/menu/next';
13
- import { CommandRegistry, Disposable, IDisposable, localize, PreferenceScope, URI } from '@opensumi/ide-core-common';
13
+ import { CommandRegistry, Disposable, IDisposable, PreferenceScope, URI, localize } from '@opensumi/ide-core-common';
14
14
  import { IEditor, IEditorDocumentModelService, IEditorFeatureContribution } from '@opensumi/ide-editor/lib/browser';
15
15
  import { IFileServiceClient } from '@opensumi/ide-file-service';
16
16
  import { MarkdownString } from '@opensumi/monaco-editor-core/esm/vs/base/common/htmlContent';
@@ -2,25 +2,25 @@ import cls from 'classnames';
2
2
  import debounce from 'lodash/debounce';
3
3
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
4
4
 
5
- import { Injectable, Autowired } from '@opensumi/di';
5
+ import { Autowired, Injectable } from '@opensumi/di';
6
6
  import { Button, CheckBox, Input, Option, Select, ValidateInput, ValidateMessage } from '@opensumi/ide-components';
7
- import { DefaultMarkedRenderer, linkify, Markdown } from '@opensumi/ide-components/lib/markdown/index';
7
+ import { DefaultMarkedRenderer, Markdown, linkify } from '@opensumi/ide-components/lib/markdown/index';
8
8
  import {
9
9
  DisposableCollection,
10
- getIcon,
10
+ ILogger,
11
+ IOpenerService,
11
12
  IPreferenceSettingsService,
12
- localize,
13
+ IResolvedPreferenceViewDesc,
13
14
  PreferenceItem,
14
15
  PreferenceProvider,
15
16
  PreferenceSchemaProvider,
16
17
  PreferenceScope,
17
18
  PreferenceService,
19
+ formatLocalize,
20
+ getIcon,
21
+ localize,
18
22
  replaceLocalizePlaceholder,
19
23
  useInjectable,
20
- formatLocalize,
21
- ILogger,
22
- IOpenerService,
23
- IResolvedPreferenceViewDesc,
24
24
  } from '@opensumi/ide-core-browser';
25
25
 
26
26
  import { getPreferenceItemLabel, knownPrefIdMappings } from '../common';