@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.
- package/lib/browser/abstract-resource-preference-provider.d.ts +1 -2
- package/lib/browser/abstract-resource-preference-provider.d.ts.map +1 -1
- package/lib/browser/abstract-resource-preference-provider.js +6 -7
- package/lib/browser/abstract-resource-preference-provider.js.map +1 -1
- package/lib/browser/folder-file-preference-provider.d.ts +1 -1
- package/lib/browser/folder-file-preference-provider.d.ts.map +1 -1
- package/lib/browser/folders-preferences-provider.d.ts +1 -1
- package/lib/browser/folders-preferences-provider.d.ts.map +1 -1
- package/lib/browser/index.d.ts +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/preference-contribution.d.ts +3 -3
- package/lib/browser/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preference-settings.service.d.ts +19 -6
- package/lib/browser/preference-settings.service.d.ts.map +1 -1
- package/lib/browser/preference-settings.service.js +55 -83
- package/lib/browser/preference-settings.service.js.map +1 -1
- package/lib/browser/preferenceItem.view.d.ts +1 -1
- package/lib/browser/preferenceItem.view.d.ts.map +1 -1
- package/lib/browser/preferences.view.d.ts +0 -3
- package/lib/browser/preferences.view.d.ts.map +1 -1
- package/lib/browser/preferences.view.js +133 -149
- package/lib/browser/preferences.view.js.map +1 -1
- package/lib/browser/userstorage/user-storage.contribution.d.ts.map +1 -1
- package/lib/browser/userstorage/user-storage.service.d.ts +2 -3
- package/lib/browser/userstorage/user-storage.service.d.ts.map +1 -1
- package/lib/browser/userstorage/user-storage.service.js.map +1 -1
- package/lib/browser/workspace-preference-provider.d.ts +1 -1
- package/lib/browser/workspace-preference-provider.d.ts.map +1 -1
- package/lib/common/types.d.ts +6 -5
- package/lib/common/types.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/browser/abstract-resource-preference-provider.ts +12 -14
- package/src/browser/folder-file-preference-provider.ts +1 -1
- package/src/browser/folders-preferences-provider.ts +3 -3
- package/src/browser/index.ts +5 -5
- package/src/browser/preference-contribution.ts +20 -20
- package/src/browser/preference-settings.service.ts +93 -55
- package/src/browser/preference-widgets.ts +1 -1
- package/src/browser/preferenceItem.view.tsx +8 -8
- package/src/browser/preferences.view.tsx +185 -175
- package/src/browser/userstorage/user-storage.contribution.ts +1 -1
- package/src/browser/userstorage/user-storage.service.ts +6 -7
- package/src/browser/workspace-preference-provider.ts +3 -3
- package/src/common/types.ts +8 -6
package/src/browser/index.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, Injector, Provider } from '@opensumi/di';
|
|
2
2
|
import { BrowserModule } from '@opensumi/ide-core-browser';
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
IPreferenceSettingsService,
|
|
5
5
|
PreferenceConfigurations,
|
|
6
6
|
PreferenceProvider,
|
|
7
|
-
|
|
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,
|
|
3
|
+
import { Autowired, INJECTOR_TOKEN, Injectable, Injector } from '@opensumi/di';
|
|
4
4
|
import {
|
|
5
|
+
COMMON_COMMANDS,
|
|
5
6
|
ClientAppContribution,
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
15
|
+
IDisposable,
|
|
22
16
|
IJSONSchemaRegistry,
|
|
23
17
|
IPreferenceSettingsService,
|
|
24
|
-
ContributionProvider,
|
|
25
18
|
ISettingGroup,
|
|
26
|
-
|
|
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
|
-
|
|
32
|
-
CodeSchemaId,
|
|
32
|
+
localize,
|
|
33
33
|
} from '@opensumi/ide-core-browser';
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
83
|
-
currentSelectId = '';
|
|
92
|
+
protected _currentScope: PreferenceScopeWithLabel = this.tabList[0];
|
|
84
93
|
|
|
85
|
-
|
|
86
|
-
|
|
94
|
+
get currentScope() {
|
|
95
|
+
return this._currentScope.id;
|
|
96
|
+
}
|
|
87
97
|
|
|
88
|
-
|
|
89
|
-
tabIndex = 0;
|
|
98
|
+
protected _currentSelectId = '';
|
|
90
99
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return this.userBeforeWorkspace ? [UserScope, WorkspaceScope] : [WorkspaceScope, UserScope];
|
|
100
|
+
get currentSelectId() {
|
|
101
|
+
return this._currentSelectId;
|
|
94
102
|
}
|
|
95
103
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
179
|
+
|
|
150
180
|
scrollToSection(section: string): void {
|
|
151
181
|
if (section) {
|
|
152
182
|
this.currentSelectId = ESectionItemKind.Section + section;
|
|
153
183
|
}
|
|
154
184
|
}
|
|
155
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
291
|
+
this.emitter.emit('settingsGroupsChange');
|
|
258
292
|
return Disposable.create(() => {
|
|
259
293
|
disposable.dispose();
|
|
260
|
-
this.
|
|
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,
|
|
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 {
|
|
5
|
+
import { Autowired, Injectable } from '@opensumi/di';
|
|
6
6
|
import { Button, CheckBox, Input, Option, Select, ValidateInput, ValidateMessage } from '@opensumi/ide-components';
|
|
7
|
-
import { DefaultMarkedRenderer,
|
|
7
|
+
import { DefaultMarkedRenderer, Markdown, linkify } from '@opensumi/ide-components/lib/markdown/index';
|
|
8
8
|
import {
|
|
9
9
|
DisposableCollection,
|
|
10
|
-
|
|
10
|
+
ILogger,
|
|
11
|
+
IOpenerService,
|
|
11
12
|
IPreferenceSettingsService,
|
|
12
|
-
|
|
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';
|