@theia/core 1.65.0-next.19 → 1.65.0-next.28
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/breadcrumbs/breadcrumbs-renderer.d.ts +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/catalog.json +13 -4
- package/lib/browser/common-frontend-contribution.d.ts +2 -3
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +3 -4
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/encoding-registry.d.ts +1 -1
- package/lib/browser/encoding-registry.d.ts.map +1 -1
- package/lib/browser/encoding-registry.js +1 -1
- package/lib/browser/encoding-registry.js.map +1 -1
- package/lib/browser/frontend-application-bindings.d.ts.map +1 -1
- package/lib/browser/frontend-application-bindings.js +10 -17
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +4 -5
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application.d.ts +1 -1
- package/lib/browser/frontend-application.d.ts.map +1 -1
- package/lib/browser/frontend-application.js +1 -1
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/hover-service.d.ts +1 -2
- package/lib/browser/hover-service.d.ts.map +1 -1
- package/lib/browser/hover-service.js +1 -2
- package/lib/browser/hover-service.js.map +1 -1
- package/lib/browser/icon-theme-service.d.ts +3 -2
- package/lib/browser/icon-theme-service.d.ts.map +1 -1
- package/lib/browser/icon-theme-service.js +4 -3
- package/lib/browser/icon-theme-service.js.map +1 -1
- package/lib/browser/index.d.ts +0 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +0 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/keybinding.d.ts +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +1 -1
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +1 -1
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +2 -2
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +2 -3
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/open-with-service.d.ts +1 -1
- package/lib/browser/open-with-service.d.ts.map +1 -1
- package/lib/browser/open-with-service.js +3 -3
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/opener-service.d.ts +1 -2
- package/lib/browser/opener-service.d.ts.map +1 -1
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/preferences/frontend-config-preference-contributions.d.ts +6 -0
- package/lib/browser/preferences/frontend-config-preference-contributions.d.ts.map +1 -0
- package/lib/browser/preferences/frontend-config-preference-contributions.js +60 -0
- package/lib/browser/preferences/frontend-config-preference-contributions.js.map +1 -0
- package/lib/browser/preferences/index.d.ts +0 -5
- package/lib/browser/preferences/index.d.ts.map +1 -1
- package/lib/browser/preferences/index.js +0 -5
- package/lib/browser/preferences/index.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts +0 -96
- package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +14 -355
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +25 -17
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +21 -34
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +57 -80
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts +24 -26
- package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-validation-service.js +40 -20
- package/lib/browser/preferences/preference-validation-service.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.spec.js +10 -6
- package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-provider.d.ts +2 -3
- package/lib/browser/preferences/test/mock-preference-provider.d.ts.map +1 -1
- package/lib/browser/preferences/test/mock-preference-provider.js +5 -7
- package/lib/browser/preferences/test/mock-preference-provider.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/test/mock-preference-proxy.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-service.d.ts +1 -4
- package/lib/browser/preferences/test/mock-preference-service.d.ts.map +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +1 -1
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/request/browser-request-service.d.ts +1 -1
- package/lib/browser/request/browser-request-service.d.ts.map +1 -1
- package/lib/browser/request/browser-request-service.js +2 -2
- package/lib/browser/request/browser-request-service.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +1 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +1 -1
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +1 -1
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/status-bar/status-bar.d.ts +1 -1
- package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
- package/lib/browser/status-bar/status-bar.js +1 -1
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/theming.d.ts +5 -4
- package/lib/browser/theming.d.ts.map +1 -1
- package/lib/browser/theming.js +7 -6
- package/lib/browser/theming.js.map +1 -1
- package/lib/browser/tooltip-service.d.ts +1 -1
- package/lib/browser/tooltip-service.d.ts.map +1 -1
- package/lib/browser/tooltip-service.js +1 -1
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/index.d.ts +0 -1
- package/lib/browser/tree/index.d.ts.map +1 -1
- package/lib/browser/tree/index.js +0 -1
- package/lib/browser/tree/index.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +2 -2
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +3 -3
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +1 -2
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +1 -2
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.d.ts +1 -1
- package/lib/browser/window/default-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-window-service.js +1 -1
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.spec.js +1 -1
- package/lib/browser/window/default-window-service.spec.js.map +1 -1
- package/lib/browser/window/window-title-service.d.ts +1 -1
- package/lib/browser/window/window-title-service.d.ts.map +1 -1
- package/lib/browser/window/window-title-service.js +1 -1
- package/lib/browser/window/window-title-service.js.map +1 -1
- package/lib/{browser → common}/core-preferences.d.ts +2 -1
- package/lib/common/core-preferences.d.ts.map +1 -0
- package/lib/{browser → common}/core-preferences.js +17 -18
- package/lib/common/core-preferences.js.map +1 -0
- package/lib/common/index.d.ts +4 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +4 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/inversify-utils.d.ts +31 -0
- package/lib/common/inversify-utils.d.ts.map +1 -0
- package/lib/common/inversify-utils.js +60 -0
- package/lib/common/inversify-utils.js.map +1 -0
- package/lib/common/json-schema.d.ts +1 -0
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/preferences/defaults-preference-provider.d.ts +21 -0
- package/lib/common/preferences/defaults-preference-provider.d.ts.map +1 -0
- package/lib/common/preferences/defaults-preference-provider.js +99 -0
- package/lib/common/preferences/defaults-preference-provider.js.map +1 -0
- package/lib/common/preferences/index.d.ts +12 -0
- package/lib/common/preferences/index.d.ts.map +1 -0
- package/lib/common/preferences/index.js +30 -0
- package/lib/common/preferences/index.js.map +1 -0
- package/lib/{browser → common}/preferences/injectable-preference-proxy.d.ts +1 -1
- package/lib/common/preferences/injectable-preference-proxy.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/injectable-preference-proxy.js +2 -2
- package/lib/common/preferences/injectable-preference-proxy.js.map +1 -0
- package/lib/common/preferences/preference-configurations.d.ts.map +1 -0
- package/lib/common/preferences/preference-configurations.js.map +1 -0
- package/lib/{browser → common}/preferences/preference-language-override-service.d.ts +4 -13
- package/lib/common/preferences/preference-language-override-service.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-language-override-service.js +14 -30
- package/lib/common/preferences/preference-language-override-service.js.map +1 -0
- package/lib/common/preferences/preference-provider-impl.d.ts +52 -0
- package/lib/common/preferences/preference-provider-impl.d.ts.map +1 -0
- package/lib/{browser/preferences/preference-provider.js → common/preferences/preference-provider-impl.js} +23 -95
- package/lib/common/preferences/preference-provider-impl.js.map +1 -0
- package/lib/{browser → common}/preferences/preference-provider.d.ts +34 -59
- package/lib/common/preferences/preference-provider.d.ts.map +1 -0
- package/lib/common/preferences/preference-provider.js +71 -0
- package/lib/common/preferences/preference-provider.js.map +1 -0
- package/lib/common/preferences/preference-provider.spec.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-provider.spec.js +4 -4
- package/lib/common/preferences/preference-provider.spec.js.map +1 -0
- package/lib/{browser → common}/preferences/preference-proxy.d.ts +2 -2
- package/lib/common/preferences/preference-proxy.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-proxy.js +10 -10
- package/lib/common/preferences/preference-proxy.js.map +1 -0
- package/lib/common/preferences/preference-schema-service.d.ts +55 -0
- package/lib/common/preferences/preference-schema-service.d.ts.map +1 -0
- package/lib/common/preferences/preference-schema-service.js +402 -0
- package/lib/common/preferences/preference-schema-service.js.map +1 -0
- package/lib/common/preferences/preference-schema.d.ts +145 -43
- package/lib/common/preferences/preference-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.js +3 -41
- package/lib/common/preferences/preference-schema.js.map +1 -1
- package/lib/common/preferences/preference-scope.d.ts +4 -1
- package/lib/common/preferences/preference-scope.d.ts.map +1 -1
- package/lib/common/preferences/preference-scope.js +5 -14
- package/lib/common/preferences/preference-scope.js.map +1 -1
- package/lib/{browser → common}/preferences/preference-service.d.ts +9 -10
- package/lib/common/preferences/preference-service.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-service.js +65 -60
- package/lib/common/preferences/preference-service.js.map +1 -0
- package/lib/common/supported-encodings.d.ts.map +1 -0
- package/lib/common/supported-encodings.js.map +1 -0
- package/lib/{browser/tree → common}/tree-preference.d.ts +1 -1
- package/lib/common/tree-preference.d.ts.map +1 -0
- package/lib/{browser/tree → common}/tree-preference.js +3 -5
- package/lib/common/tree-preference.js.map +1 -0
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +2 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +2 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -2
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -2
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +6 -6
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +1 -1
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +1 -1
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/{electron-browser/window → electron-common}/electron-window-preferences.d.ts +2 -1
- package/lib/electron-common/electron-window-preferences.d.ts.map +1 -0
- package/lib/{electron-browser/window → electron-common}/electron-window-preferences.js +7 -7
- package/lib/electron-common/electron-window-preferences.js.map +1 -0
- package/lib/electron-node/window/electron-window-module.d.ts +4 -0
- package/lib/electron-node/window/electron-window-module.d.ts.map +1 -0
- package/lib/{browser/preferences/preference-scope.js → electron-node/window/electron-window-module.js} +7 -5
- package/lib/electron-node/window/electron-window-module.js.map +1 -0
- package/lib/node/backend-application-module.d.ts.map +1 -1
- package/lib/node/backend-application-module.js +13 -0
- package/lib/node/backend-application-module.js.map +1 -1
- package/package.json +6 -5
- package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +1 -1
- package/src/browser/common-frontend-contribution.ts +2 -3
- package/src/browser/encoding-registry.ts +1 -1
- package/src/browser/frontend-application-bindings.ts +8 -13
- package/src/browser/frontend-application-module.ts +4 -4
- package/src/browser/frontend-application.ts +1 -1
- package/src/browser/hover-service.ts +1 -2
- package/src/browser/icon-theme-service.ts +3 -2
- package/src/browser/index.ts +0 -1
- package/src/browser/keybinding.spec.ts +1 -1
- package/src/browser/keybinding.ts +1 -1
- package/src/browser/menu/browser-menu-plugin.ts +4 -4
- package/src/browser/open-with-service.ts +1 -1
- package/src/browser/opener-service.ts +1 -2
- package/src/browser/preferences/frontend-config-preference-contributions.ts +52 -0
- package/src/browser/preferences/index.ts +0 -5
- package/src/browser/preferences/preference-contribution.ts +16 -398
- package/src/browser/preferences/preference-proxy.spec.ts +27 -17
- package/src/browser/preferences/preference-schema-provider.spec.ts +25 -37
- package/src/browser/preferences/preference-service.spec.ts +32 -56
- package/src/browser/preferences/preference-validation-service.spec.ts +27 -19
- package/src/browser/preferences/preference-validation-service.ts +60 -41
- package/src/browser/preferences/test/mock-preference-provider.ts +2 -5
- package/src/browser/preferences/test/mock-preference-proxy.ts +1 -2
- package/src/browser/preferences/test/mock-preference-service.ts +1 -4
- package/src/browser/quick-input/quick-command-service.ts +1 -1
- package/src/browser/request/browser-request-service.ts +4 -4
- package/src/browser/shell/application-shell.ts +1 -1
- package/src/browser/shell/tab-bars.ts +1 -1
- package/src/browser/shell/theia-dock-panel.ts +1 -1
- package/src/browser/status-bar/status-bar.tsx +1 -1
- package/src/browser/theming.ts +7 -6
- package/src/browser/tooltip-service.tsx +1 -1
- package/src/browser/tree/index.ts +0 -1
- package/src/browser/tree/tree-widget.tsx +4 -4
- package/src/browser/window/default-secondary-window-service.ts +1 -2
- package/src/browser/window/default-window-service.spec.ts +1 -1
- package/src/browser/window/default-window-service.ts +1 -1
- package/src/browser/window/window-title-service.ts +1 -1
- package/src/{browser → common}/core-preferences.ts +16 -17
- package/src/common/index.ts +4 -0
- package/src/common/inversify-utils.ts +63 -0
- package/src/common/json-schema.ts +1 -0
- package/src/common/preferences/defaults-preference-provider.ts +91 -0
- package/src/common/preferences/index.ts +27 -0
- package/src/{browser → common}/preferences/injectable-preference-proxy.ts +3 -3
- package/src/{browser → common}/preferences/preference-language-override-service.ts +12 -29
- package/src/common/preferences/preference-provider-impl.ts +165 -0
- package/src/{browser → common}/preferences/preference-provider.spec.ts +6 -5
- package/src/common/preferences/preference-provider.ts +164 -0
- package/src/{browser → common}/preferences/preference-proxy.ts +15 -14
- package/src/common/preferences/preference-schema-service.ts +434 -0
- package/src/common/preferences/preference-schema.ts +156 -64
- package/src/common/preferences/preference-scope.ts +5 -13
- package/src/{browser → common}/preferences/preference-service.ts +71 -65
- package/src/{browser/tree → common}/tree-preference.ts +2 -4
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +2 -1
- package/src/electron-browser/menu/electron-main-menu-factory.ts +2 -2
- package/src/electron-browser/menu/electron-menu-contribution.ts +9 -6
- package/src/electron-browser/window/electron-window-module.ts +1 -1
- package/src/electron-browser/window/electron-window-service.ts +1 -1
- package/src/{electron-browser/window → electron-common}/electron-window-preferences.ts +6 -6
- package/src/{browser/preferences/preference-scope.ts → electron-node/window/electron-window-module.ts} +7 -3
- package/src/node/backend-application-module.ts +28 -1
- package/lib/browser/core-preferences.d.ts.map +0 -1
- package/lib/browser/core-preferences.js.map +0 -1
- package/lib/browser/preferences/injectable-preference-proxy.d.ts.map +0 -1
- package/lib/browser/preferences/injectable-preference-proxy.js.map +0 -1
- package/lib/browser/preferences/preference-configurations.d.ts.map +0 -1
- package/lib/browser/preferences/preference-configurations.js.map +0 -1
- package/lib/browser/preferences/preference-language-override-service.d.ts.map +0 -1
- package/lib/browser/preferences/preference-language-override-service.js.map +0 -1
- package/lib/browser/preferences/preference-provider.d.ts.map +0 -1
- package/lib/browser/preferences/preference-provider.js.map +0 -1
- package/lib/browser/preferences/preference-provider.spec.d.ts.map +0 -1
- package/lib/browser/preferences/preference-provider.spec.js.map +0 -1
- package/lib/browser/preferences/preference-proxy.d.ts.map +0 -1
- package/lib/browser/preferences/preference-proxy.js.map +0 -1
- package/lib/browser/preferences/preference-scope.d.ts +0 -3
- package/lib/browser/preferences/preference-scope.d.ts.map +0 -1
- package/lib/browser/preferences/preference-scope.js.map +0 -1
- package/lib/browser/preferences/preference-service.d.ts.map +0 -1
- package/lib/browser/preferences/preference-service.js.map +0 -1
- package/lib/browser/supported-encodings.d.ts.map +0 -1
- package/lib/browser/supported-encodings.js.map +0 -1
- package/lib/browser/tree/tree-preference.d.ts.map +0 -1
- package/lib/browser/tree/tree-preference.js.map +0 -1
- package/lib/electron-browser/window/electron-window-preferences.d.ts.map +0 -1
- package/lib/electron-browser/window/electron-window-preferences.js.map +0 -1
- package/src/browser/preferences/preference-provider.ts +0 -277
- /package/lib/{browser → common}/preferences/preference-configurations.d.ts +0 -0
- /package/lib/{browser → common}/preferences/preference-configurations.js +0 -0
- /package/lib/{browser → common}/preferences/preference-provider.spec.d.ts +0 -0
- /package/lib/{browser → common}/supported-encodings.d.ts +0 -0
- /package/lib/{browser → common}/supported-encodings.js +0 -0
- /package/src/{browser → common}/preferences/preference-configurations.ts +0 -0
- /package/src/{browser → common}/supported-encodings.ts +0 -0
|
@@ -16,89 +16,181 @@
|
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
|
-
import { JSONValue } from '@lumino/coreutils';
|
|
19
|
+
import { JSONObject, JSONValue } from '@lumino/coreutils';
|
|
20
20
|
import { IJSONSchema } from '../json-schema';
|
|
21
21
|
import { PreferenceScope } from './preference-scope';
|
|
22
|
-
import {
|
|
22
|
+
import { Event } from '../event';
|
|
23
|
+
import { Disposable } from '../disposable';
|
|
23
24
|
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
export const PreferenceContribution = Symbol('PreferenceContribution');
|
|
26
|
+
/**
|
|
27
|
+
* A {@link PreferenceContribution} allows adding additional custom preferences.
|
|
28
|
+
* For this, the {@link PreferenceContribution} has to provide a valid `PrefernceSchema` specifying which preferences
|
|
29
|
+
* are available including their types and description.
|
|
30
|
+
*
|
|
31
|
+
* ### Example usage
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const MyPreferencesSchema: PreferenceSchema = {
|
|
34
|
+
* 'scope': PreferenceScope.Folder,
|
|
35
|
+
* 'properties': {
|
|
36
|
+
* 'myext.decorations.enabled': {
|
|
37
|
+
* 'type': 'boolean',
|
|
38
|
+
* 'description': 'Show file status',
|
|
39
|
+
* 'default': true
|
|
40
|
+
* },
|
|
41
|
+
* // [...]
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* @injectable()
|
|
45
|
+
* export class MyPreferenceContribution implements PreferenceContribution{
|
|
46
|
+
* schema= MyPreferencesSchema;
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export interface PreferenceContribution {
|
|
51
|
+
readonly schema?: PreferenceSchema;
|
|
28
52
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
53
|
+
* Allows to do additional intialisation of the preference schema, for example registering overrides
|
|
54
|
+
* @param service the preference schema service
|
|
31
55
|
*/
|
|
32
|
-
|
|
33
|
-
properties: PreferenceSchemaProperties
|
|
34
|
-
}
|
|
35
|
-
export namespace PreferenceSchema {
|
|
36
|
-
export function is(obj: unknown): obj is PreferenceSchema {
|
|
37
|
-
return isObject<PreferenceSchema>(obj) && PreferenceSchemaProperties.is(obj.properties);
|
|
38
|
-
}
|
|
39
|
-
export function getDefaultScope(schema: PreferenceSchema): PreferenceScope {
|
|
40
|
-
let defaultScope: PreferenceScope = PreferenceScope.Workspace;
|
|
41
|
-
if (!PreferenceScope.is(schema.scope)) {
|
|
42
|
-
defaultScope = PreferenceScope.fromString(<string>schema.scope) || PreferenceScope.Workspace;
|
|
43
|
-
} else {
|
|
44
|
-
defaultScope = schema.scope;
|
|
45
|
-
}
|
|
46
|
-
return defaultScope;
|
|
47
|
-
}
|
|
56
|
+
initSchema?(service: PreferenceSchemaService): Promise<void>
|
|
48
57
|
}
|
|
49
58
|
|
|
50
|
-
export interface
|
|
51
|
-
[name: string]:
|
|
52
|
-
}
|
|
53
|
-
export namespace PreferenceSchemaProperties {
|
|
54
|
-
export function is(obj: unknown): obj is PreferenceSchemaProperties {
|
|
55
|
-
return isObject(obj);
|
|
56
|
-
}
|
|
59
|
+
export interface IndexedAccess<T> {
|
|
60
|
+
[name: string]: T;
|
|
57
61
|
}
|
|
58
62
|
|
|
59
|
-
export interface
|
|
60
|
-
|
|
63
|
+
export interface PreferenceSchema {
|
|
64
|
+
/** The default scope for properties in this schema */
|
|
61
65
|
scope?: PreferenceScope,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
};
|
|
66
|
+
/** Optional title to be used in UI */
|
|
67
|
+
title?: string,
|
|
68
|
+
/** Whether properties in this schema are overridable by default. Defaults to false. */
|
|
69
|
+
defaultOverridable?: boolean;
|
|
70
|
+
properties: IndexedAccess<PreferenceDataProperty>;
|
|
68
71
|
}
|
|
69
72
|
|
|
70
|
-
export interface
|
|
73
|
+
export interface PreferenceDataProperty extends IJSONSchema {
|
|
71
74
|
/**
|
|
72
|
-
*
|
|
75
|
+
* Whether distinct values can be defined for language override identifers. E.g. values valid when editing typescript files vs.
|
|
76
|
+
* when editing Java files
|
|
73
77
|
*/
|
|
74
|
-
defaultValue?: JSONValue;
|
|
75
78
|
overridable?: boolean;
|
|
76
|
-
/** If false, the preference will not be included in the schema or the UI. */
|
|
79
|
+
/** If false, the preference will not be included in the schema or the UI. E.g. OS-Specific prefs */
|
|
77
80
|
included?: boolean;
|
|
78
81
|
/** If true, this item will registered as part of the preference schema, but hidden in the preference editor UI. */
|
|
79
82
|
hidden?: boolean;
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
export interface PreferenceSchemaProperty extends PreferenceItem {
|
|
83
|
-
description?: string;
|
|
84
|
-
markdownDescription?: string;
|
|
85
|
-
scope?: 'application' | 'machine' | 'window' | 'resource' | 'language-overridable' | 'machine-overridable' | PreferenceScope;
|
|
86
|
-
tags?: string[];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export interface PreferenceDataProperty extends PreferenceItem {
|
|
90
|
-
description?: string;
|
|
91
|
-
markdownDescription?: string;
|
|
83
|
+
/** The maximum scope where values for this property can be set. */
|
|
92
84
|
scope?: PreferenceScope;
|
|
85
|
+
/** Metadata intended for custom renderers */
|
|
93
86
|
typeDetails?: any;
|
|
87
|
+
/** Tags can be searched for in the UI */
|
|
88
|
+
tags?: string[]
|
|
94
89
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
90
|
+
|
|
91
|
+
export interface DefaultValueChangedEvent {
|
|
92
|
+
/** The preference key */
|
|
93
|
+
key: string;
|
|
94
|
+
/** The override identifier that the default changed for */
|
|
95
|
+
overrideIdentifier?: string;
|
|
96
|
+
/**
|
|
97
|
+
* When the default for the base property changes, indicates which override identifiers will be affected
|
|
98
|
+
*/
|
|
99
|
+
otherAffectedOverrides: string[];
|
|
100
|
+
oldValue: JSONValue | undefined;
|
|
101
|
+
newValue: JSONValue | undefined;
|
|
104
102
|
}
|
|
103
|
+
|
|
104
|
+
export const PreferenceSchemaService = Symbol('PreferenceSchemaService');
|
|
105
|
+
|
|
106
|
+
export interface PreferenceSchemaService {
|
|
107
|
+
/**
|
|
108
|
+
* Resolves after static contributions have been processed
|
|
109
|
+
*/
|
|
110
|
+
readonly ready: Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Register an override identifier for language specific preferences
|
|
113
|
+
* @param overrideIdentifier The identifier to register
|
|
114
|
+
* @returns A disposable to unregister the identifier
|
|
115
|
+
*/
|
|
116
|
+
registerOverrideIdentifier(overrideIdentifier: string): Disposable;
|
|
117
|
+
readonly overrideIdentifiers: ReadonlySet<string>;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Add a preference schema. It is an error to register the same property in two different schemas
|
|
121
|
+
* @param schema The schema to add
|
|
122
|
+
* @returns A disposable to remove the schema
|
|
123
|
+
*/
|
|
124
|
+
addSchema(schema: PreferenceSchema): Disposable;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The scopes which this preference schema service handles. Any properties that are not applicable within the
|
|
128
|
+
* valid scopes will be ignored
|
|
129
|
+
*/
|
|
130
|
+
readonly validScopes: readonly PreferenceScope[];
|
|
131
|
+
/**
|
|
132
|
+
* Check if a preference is valid in a specific scope
|
|
133
|
+
* @param preferenceName The preference name
|
|
134
|
+
* @param scope The scope to check
|
|
135
|
+
* @returns True if the preference is valid in the given scope
|
|
136
|
+
*/
|
|
137
|
+
isValidInScope(preferenceName: string, scope: PreferenceScope): boolean;
|
|
138
|
+
getSchemaProperty(key: string): PreferenceDataProperty | undefined;
|
|
139
|
+
getSchemaProperties(): ReadonlyMap<string, PreferenceDataProperty>;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Update a property in the schema. The corresponding JSON Schemas, etc. will be updated
|
|
143
|
+
* @param key The property key
|
|
144
|
+
* @param property The updated property
|
|
145
|
+
*/
|
|
146
|
+
updateSchemaProperty(key: string, property: PreferenceDataProperty): void;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Register an override for a preference default value. If multiple overrides are registered for the same value,
|
|
150
|
+
* the last override will be in effect. Removing the last override will make the second-to-last override active, etc.
|
|
151
|
+
* @param key The preference key
|
|
152
|
+
* @param overrideIdentifier The override identifier, undefined for global default
|
|
153
|
+
* @param value The default value
|
|
154
|
+
* @returns A disposable to unregister the override
|
|
155
|
+
*/
|
|
156
|
+
registerOverride(key: string, overrideIdentifier: string | undefined, value: JSONValue): Disposable;
|
|
157
|
+
/**
|
|
158
|
+
* Get the default value for a preference. This is the value a client will see for the given key/override
|
|
159
|
+
* @param key The preference key
|
|
160
|
+
* @param overrideIdentifier The override identifier, undefined for global default
|
|
161
|
+
* @returns The default value or undefined if not found
|
|
162
|
+
*/
|
|
163
|
+
getDefaultValue(key: string, overrideIdentifier: string | undefined): JSONValue | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* Gets the default value for a preference. This method not fall back to the global value if no override is given
|
|
166
|
+
* @param key The preference key
|
|
167
|
+
* @param overrideIdentifier The override identifier, undefined for global default
|
|
168
|
+
* @returns The default value or undefined if not found
|
|
169
|
+
*/
|
|
170
|
+
inspectDefaultValue(key: string, overrideIdentifier: string | undefined): JSONValue | undefined;
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Gets a JSON schema a preference.json file for the given scope.
|
|
174
|
+
* @param scope The scope to generate schema for
|
|
175
|
+
* @returns The JSON schema
|
|
176
|
+
*/
|
|
177
|
+
getJSONSchema(scope: PreferenceScope): IJSONSchema;
|
|
178
|
+
/**
|
|
179
|
+
* Get the collection of all defined default values as JSONObject of the form like in a preferences.json
|
|
180
|
+
*
|
|
181
|
+
* #### Example usage
|
|
182
|
+
* ```json
|
|
183
|
+
* {
|
|
184
|
+
* "my.preference": "a string default",
|
|
185
|
+
* "[typescript]": {
|
|
186
|
+
* "another.preference": 39
|
|
187
|
+
* }
|
|
188
|
+
* }
|
|
189
|
+
*/
|
|
190
|
+
getDefaultValues(): JSONObject;
|
|
191
|
+
|
|
192
|
+
// Public events
|
|
193
|
+
onDidChangeDefaultValue: Event<DefaultValueChangedEvent>;
|
|
194
|
+
onDidChangeSchema: Event<void>;
|
|
195
|
+
}
|
|
196
|
+
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* An array of preference scopes that are valid in a given context, sorted from more general to more specific
|
|
19
|
+
*/
|
|
20
|
+
export const ValidPreferenceScopes = Symbol('ValidPreferenceScopes');
|
|
21
|
+
|
|
17
22
|
export enum PreferenceScope {
|
|
18
23
|
Default,
|
|
19
24
|
User,
|
|
@@ -52,17 +57,4 @@ export namespace PreferenceScope {
|
|
|
52
57
|
}
|
|
53
58
|
return names;
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
export function fromString(strScope: string): PreferenceScope | undefined {
|
|
57
|
-
switch (strScope) {
|
|
58
|
-
case 'application':
|
|
59
|
-
return PreferenceScope.User;
|
|
60
|
-
case 'window':
|
|
61
|
-
return PreferenceScope.Folder;
|
|
62
|
-
case 'resource':
|
|
63
|
-
return PreferenceScope.Folder;
|
|
64
|
-
case 'language-overridable':
|
|
65
|
-
return PreferenceScope.Folder;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
60
|
}
|
|
@@ -16,18 +16,16 @@
|
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
19
|
+
import { JSONExt, JSONValue } from '@lumino/coreutils';
|
|
20
|
+
import { inject, injectable, postConstruct } from 'inversify';
|
|
21
|
+
import { Disposable, DisposableCollection, Emitter, Event, deepFreeze, unreachable } from '../../common';
|
|
21
22
|
import { Deferred } from '../../common/promise-util';
|
|
22
|
-
import { PreferenceProvider, PreferenceProviderDataChange, PreferenceProviderDataChanges, PreferenceResolveResult } from './preference-provider';
|
|
23
|
-
import { PreferenceSchemaProvider } from './preference-contribution';
|
|
24
23
|
import URI from '../../common/uri';
|
|
24
|
+
import { OverridePreferenceName, PreferenceLanguageOverrideService } from './preference-language-override-service';
|
|
25
|
+
import { PreferenceProvider, PreferenceProviderDataChange, PreferenceProviderDataChanges, PreferenceResolveResult, PreferenceUtils } from './preference-provider';
|
|
26
|
+
import { PreferenceSchemaService } from './preference-schema';
|
|
25
27
|
import { PreferenceScope } from './preference-scope';
|
|
26
28
|
import { PreferenceConfigurations } from './preference-configurations';
|
|
27
|
-
import { JSONExt, JSONValue } from '@lumino/coreutils';
|
|
28
|
-
import { OverridePreferenceName, PreferenceLanguageOverrideService } from './preference-language-override-service';
|
|
29
|
-
|
|
30
|
-
export { PreferenceScope };
|
|
31
29
|
|
|
32
30
|
/**
|
|
33
31
|
* Representation of a preference change. A preference value can be set to `undefined` for a specific scope.
|
|
@@ -50,10 +48,10 @@ export class PreferenceChangeImpl implements PreferenceChange {
|
|
|
50
48
|
get preferenceName(): string {
|
|
51
49
|
return this.change.preferenceName;
|
|
52
50
|
}
|
|
53
|
-
get newValue():
|
|
51
|
+
get newValue(): JSONValue | undefined {
|
|
54
52
|
return this.change.newValue;
|
|
55
53
|
}
|
|
56
|
-
get oldValue():
|
|
54
|
+
get oldValue(): JSONValue | undefined {
|
|
57
55
|
return this.change.oldValue;
|
|
58
56
|
}
|
|
59
57
|
get scope(): PreferenceScope {
|
|
@@ -272,7 +270,7 @@ export type PreferenceInspectionScope = keyof Omit<PreferenceInspection<unknown>
|
|
|
272
270
|
* It allows to load them lazily after DI is configured.
|
|
273
271
|
*/
|
|
274
272
|
export const PreferenceProviderProvider = Symbol('PreferenceProviderProvider');
|
|
275
|
-
export type PreferenceProviderProvider = (scope: PreferenceScope, uri?: URI) => PreferenceProvider;
|
|
273
|
+
export type PreferenceProviderProvider = (scope: PreferenceScope, uri?: URI) => PreferenceProvider | undefined;
|
|
276
274
|
|
|
277
275
|
@injectable()
|
|
278
276
|
export class PreferenceServiceImpl implements PreferenceService {
|
|
@@ -285,8 +283,8 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
285
283
|
|
|
286
284
|
protected readonly toDispose = new DisposableCollection(this.onPreferenceChangedEmitter, this.onPreferencesChangedEmitter);
|
|
287
285
|
|
|
288
|
-
@inject(
|
|
289
|
-
protected readonly
|
|
286
|
+
@inject(PreferenceSchemaService)
|
|
287
|
+
protected readonly schemaService: PreferenceSchemaService;
|
|
290
288
|
|
|
291
289
|
@inject(PreferenceProviderProvider)
|
|
292
290
|
protected readonly providerProvider: PreferenceProviderProvider;
|
|
@@ -301,13 +299,17 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
301
299
|
|
|
302
300
|
protected async initializeProviders(): Promise<void> {
|
|
303
301
|
try {
|
|
304
|
-
for (const scope of
|
|
302
|
+
for (const scope of this.schemaService.validScopes) {
|
|
305
303
|
const provider = this.providerProvider(scope);
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
this.
|
|
309
|
-
|
|
310
|
-
|
|
304
|
+
if (provider) {
|
|
305
|
+
this.preferenceProviders.set(scope, provider);
|
|
306
|
+
this.toDispose.push(provider.onDidPreferencesChanged(changes =>
|
|
307
|
+
this.reconcilePreferences(changes)
|
|
308
|
+
));
|
|
309
|
+
await provider.ready;
|
|
310
|
+
} else {
|
|
311
|
+
console.warn(`No preference provider bound for ${PreferenceScope[scope]}`);
|
|
312
|
+
}
|
|
311
313
|
}
|
|
312
314
|
this._ready.resolve();
|
|
313
315
|
this._isReady = true;
|
|
@@ -338,50 +340,44 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
338
340
|
|
|
339
341
|
protected reconcilePreferences(changes: PreferenceProviderDataChanges): void {
|
|
340
342
|
const changesToEmit: PreferenceChanges = {};
|
|
341
|
-
const acceptChange = (change: PreferenceProviderDataChange) =>
|
|
343
|
+
const acceptChange = (change: PreferenceProviderDataChange) => {
|
|
342
344
|
this.getAffectedPreferenceNames(change, preferenceName =>
|
|
343
|
-
changesToEmit[preferenceName] = new PreferenceChangeImpl({ ...change, preferenceName })
|
|
344
|
-
|
|
345
|
+
changesToEmit[preferenceName] = new PreferenceChangeImpl({ ...change, preferenceName }));
|
|
346
|
+
};
|
|
345
347
|
|
|
346
348
|
for (const preferenceName of Object.keys(changes)) {
|
|
349
|
+
|
|
347
350
|
let change = changes[preferenceName];
|
|
351
|
+
const overridden = this.overriddenPreferenceName(change.preferenceName);
|
|
348
352
|
if (change.newValue === undefined) {
|
|
349
|
-
const overridden = this.overriddenPreferenceName(change.preferenceName);
|
|
350
353
|
if (overridden) {
|
|
351
354
|
change = {
|
|
352
355
|
...change, newValue: this.doGet(overridden.preferenceName)
|
|
353
356
|
};
|
|
354
357
|
}
|
|
355
358
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
};
|
|
378
|
-
acceptChange(change);
|
|
379
|
-
}
|
|
359
|
+
|
|
360
|
+
for (const scope of [...this.schemaService.validScopes].reverse()) {
|
|
361
|
+
const provider = this.getProvider(scope);
|
|
362
|
+
if (provider) {
|
|
363
|
+
const value: JSONValue | undefined = provider.get(preferenceName);
|
|
364
|
+
if (scope > change.scope && value !== undefined) {
|
|
365
|
+
// preference defined in a more specific scope
|
|
366
|
+
break;
|
|
367
|
+
} else if (scope === change.scope && (change.newValue !== undefined || scope === PreferenceScope.Default)) {
|
|
368
|
+
// preference is changed into something other than `undefined`
|
|
369
|
+
acceptChange(change);
|
|
370
|
+
break;
|
|
371
|
+
} else if (scope < change.scope && change.newValue === undefined && value !== undefined) {
|
|
372
|
+
// preference is changed to `undefined`, use the value from a more general scope
|
|
373
|
+
change = {
|
|
374
|
+
...change,
|
|
375
|
+
newValue: value,
|
|
376
|
+
scope
|
|
377
|
+
};
|
|
378
|
+
acceptChange(change);
|
|
379
|
+
break;
|
|
380
380
|
}
|
|
381
|
-
} else if (change.newValue === undefined && change.scope === PreferenceScope.Default) {
|
|
382
|
-
// preference is removed
|
|
383
|
-
acceptChange(change);
|
|
384
|
-
break;
|
|
385
381
|
}
|
|
386
382
|
}
|
|
387
383
|
}
|
|
@@ -394,10 +390,22 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
394
390
|
changedPreferenceNames.forEach(preferenceName => this.onPreferenceChangedEmitter.fire(changesToEmit[preferenceName]));
|
|
395
391
|
}
|
|
396
392
|
protected getAffectedPreferenceNames(change: PreferenceProviderDataChange, accept: (affectedPreferenceName: string) => void): void {
|
|
393
|
+
const overridden = this.preferenceOverrideService.overriddenPreferenceName(change.preferenceName);
|
|
397
394
|
accept(change.preferenceName);
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
395
|
+
if (!overridden?.overrideIdentifier) { // changes to overrides never affect other overrides
|
|
396
|
+
const preference = this.schemaService.getSchemaProperty(change.preferenceName);
|
|
397
|
+
if (preference && preference.overridable) {
|
|
398
|
+
|
|
399
|
+
for (const overrideId of this.schemaService.overrideIdentifiers) {
|
|
400
|
+
const overridePreferenceName = this.preferenceOverrideService.overridePreferenceName({
|
|
401
|
+
overrideIdentifier: overrideId,
|
|
402
|
+
preferenceName: change.preferenceName
|
|
403
|
+
});
|
|
404
|
+
|
|
405
|
+
if (!this.doHas(overridePreferenceName)) {
|
|
406
|
+
accept(overridePreferenceName);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
401
409
|
}
|
|
402
410
|
}
|
|
403
411
|
}
|
|
@@ -530,7 +538,7 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
530
538
|
}
|
|
531
539
|
|
|
532
540
|
// Scopes in ascending order of scope breadth.
|
|
533
|
-
const allScopes =
|
|
541
|
+
const allScopes = [...this.schemaService.validScopes].reverse();
|
|
534
542
|
// Get rid of Default scope. We can't set anything there.
|
|
535
543
|
allScopes.pop();
|
|
536
544
|
|
|
@@ -562,15 +570,13 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
562
570
|
}
|
|
563
571
|
protected doResolve<T>(preferenceName: string, defaultValue?: T, resourceUri?: string): PreferenceResolveResult<T> {
|
|
564
572
|
const result: PreferenceResolveResult<T> = {};
|
|
565
|
-
for (const scope of
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
result.value = PreferenceProvider.merge(result.value as any, value as any) as any;
|
|
573
|
-
}
|
|
573
|
+
for (const scope of this.schemaService.validScopes) {
|
|
574
|
+
const provider = this.getProvider(scope);
|
|
575
|
+
if (provider?.canHandleScope(scope)) {
|
|
576
|
+
const { configUri, value } = provider.resolve<T>(preferenceName, resourceUri);
|
|
577
|
+
if (value !== undefined) {
|
|
578
|
+
result.configUri = configUri;
|
|
579
|
+
result.value = PreferenceUtils.merge(result.value as any, value as any) as any;
|
|
574
580
|
}
|
|
575
581
|
}
|
|
576
582
|
}
|
|
@@ -585,7 +591,7 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
585
591
|
if (!provider || !this.configurations.isAnyConfig(sectionName)) {
|
|
586
592
|
return undefined;
|
|
587
593
|
}
|
|
588
|
-
const configUri = provider.getConfigUri(resourceUri, sectionName);
|
|
594
|
+
const configUri = provider.getConfigUri && provider.getConfigUri(resourceUri, sectionName);
|
|
589
595
|
if (configUri) {
|
|
590
596
|
return configUri;
|
|
591
597
|
}
|
|
@@ -15,14 +15,12 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { interfaces } from 'inversify';
|
|
18
|
-
import {
|
|
19
|
-
import { PreferenceProxyFactory } from '
|
|
20
|
-
import { nls } from '../../common/nls';
|
|
18
|
+
import { nls } from './nls';
|
|
19
|
+
import { PreferenceSchema, PreferenceProxy, PreferenceProxyFactory, PreferenceContribution } from './preferences';
|
|
21
20
|
|
|
22
21
|
export const PREFERENCE_NAME_TREE_INDENT = 'workbench.tree.indent';
|
|
23
22
|
|
|
24
23
|
export const treePreferencesSchema: PreferenceSchema = {
|
|
25
|
-
type: 'object',
|
|
26
24
|
properties: {
|
|
27
25
|
[PREFERENCE_NAME_TREE_INDENT]: {
|
|
28
26
|
description: nls.localizeByDefault('Controls tree indentation in pixels.'),
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
20
20
|
import {
|
|
21
|
-
ContextMenuRenderer, ContextMenuAccess, FrontendApplicationContribution, CommonCommands, coordinateFromAnchor,
|
|
21
|
+
ContextMenuRenderer, ContextMenuAccess, FrontendApplicationContribution, CommonCommands, coordinateFromAnchor,
|
|
22
22
|
Anchor
|
|
23
23
|
} from '../../browser';
|
|
24
24
|
import { ElectronMainMenuFactory } from './electron-main-menu-factory';
|
|
@@ -26,6 +26,7 @@ import { ContextMenuContext } from '../../browser/menu/context-menu-context';
|
|
|
26
26
|
import { BrowserContextMenuAccess, BrowserContextMenuRenderer } from '../../browser/menu/browser-context-menu-renderer';
|
|
27
27
|
import { MenuPath, MenuContribution, MenuModelRegistry, CompoundMenuNode } from '../../common/menu';
|
|
28
28
|
import { ContextKeyService, ContextMatcher } from '../../browser/context-key-service';
|
|
29
|
+
import { PreferenceService } from '../../common/preferences';
|
|
29
30
|
|
|
30
31
|
export class ElectronContextMenuAccess extends ContextMenuAccess {
|
|
31
32
|
constructor(readonly menuHandle: Promise<number>) {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
19
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
20
|
-
import { isOSX, MAIN_MENU_BAR, MenuNode, CompoundMenuNode, Group, RenderedMenuNode, CommandMenu, AcceleratorSource, MenuPath } from '../../common';
|
|
21
|
-
import {
|
|
20
|
+
import { isOSX, MAIN_MENU_BAR, MenuNode, CompoundMenuNode, Group, RenderedMenuNode, CommandMenu, AcceleratorSource, MenuPath, PreferenceService } from '../../common';
|
|
21
|
+
import { CommonCommands } from '../../browser';
|
|
22
22
|
import debounce = require('lodash.debounce');
|
|
23
23
|
import { BrowserMainMenuFactory } from '../../browser/menu/browser-menu-plugin';
|
|
24
24
|
import { ContextMatcher } from '../../browser/context-key-service';
|
|
@@ -15,15 +15,18 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
18
|
-
import { Command, CommandContribution, CommandRegistry, isOSX, isWindows, MenuModelRegistry, MenuContribution, Disposable, nls } from '../../common';
|
|
19
18
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
Command, CommandContribution, CommandRegistry, isOSX, isWindows, MenuModelRegistry,
|
|
20
|
+
MenuContribution, Disposable, nls, PreferenceScope, PreferenceService
|
|
21
|
+
} from '../../common';
|
|
22
|
+
import {
|
|
23
|
+
codicon, ConfirmDialog, KeybindingContribution, KeybindingRegistry, Widget,
|
|
24
|
+
FrontendApplication, FrontendApplicationContribution, CommonMenus, CommonCommands, Dialog, Message, ApplicationShell, animationFrame,
|
|
22
25
|
} from '../../browser';
|
|
23
26
|
import { ElectronMainMenuFactory } from './electron-main-menu-factory';
|
|
24
27
|
import { FrontendApplicationStateService, FrontendApplicationState } from '../../browser/frontend-application-state';
|
|
25
28
|
import { FrontendApplicationConfigProvider } from '../../browser/frontend-application-config-provider';
|
|
26
|
-
import { ZoomLevel } from '
|
|
29
|
+
import { ZoomLevel } from '../../electron-common/electron-window-preferences';
|
|
27
30
|
import { BrowserMenuBarContribution } from '../../browser/menu/browser-menu-plugin';
|
|
28
31
|
import { WindowService } from '../../browser/window/window-service';
|
|
29
32
|
import { WindowTitleService } from '../../browser/window/window-title-service';
|
|
@@ -142,7 +145,7 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
142
145
|
protected attachMenuBarVisibilityListener(): void {
|
|
143
146
|
this.preferenceService.onPreferenceChanged(e => {
|
|
144
147
|
if (e.preferenceName === 'window.menuBarVisibility') {
|
|
145
|
-
this.handleFullScreen(e.newValue);
|
|
148
|
+
this.handleFullScreen(e.newValue as string);
|
|
146
149
|
}
|
|
147
150
|
});
|
|
148
151
|
}
|
|
@@ -164,7 +167,7 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
164
167
|
this.preferenceService.onPreferenceChanged(change => {
|
|
165
168
|
if (change.preferenceName === 'window.titleBarStyle') {
|
|
166
169
|
if (this.titleBarStyleChangeFlag && this.titleBarStyle !== change.newValue) {
|
|
167
|
-
window.electronTheiaCore.setTitleBarStyle(change.newValue);
|
|
170
|
+
window.electronTheiaCore.setTitleBarStyle(change.newValue as string);
|
|
168
171
|
this.handleRequiredRestart();
|
|
169
172
|
}
|
|
170
173
|
this.titleBarStyleChangeFlag = true;
|
|
@@ -26,7 +26,7 @@ import { ElectronClipboardService } from '../electron-clipboard-service';
|
|
|
26
26
|
import { ElectronIpcConnectionProvider } from '../messaging/electron-ipc-connection-source';
|
|
27
27
|
import { ElectronFrontendApplicationStateService } from './electron-frontend-application-state';
|
|
28
28
|
import { ElectronSecondaryWindowService } from './electron-secondary-window-service';
|
|
29
|
-
import { bindWindowPreferences } from '
|
|
29
|
+
import { bindWindowPreferences } from '../../electron-common/electron-window-preferences';
|
|
30
30
|
import { ElectronWindowService } from './electron-window-service';
|
|
31
31
|
import { ExternalAppOpenHandler } from './external-app-open-handler';
|
|
32
32
|
import { ElectronUriHandlerContribution } from '../electron-uri-handler';
|
|
@@ -18,7 +18,7 @@ import { injectable, inject, postConstruct } from 'inversify';
|
|
|
18
18
|
import { NewWindowOptions, WindowSearchParams } from '../../common/window';
|
|
19
19
|
import { DefaultWindowService } from '../../browser/window/default-window-service';
|
|
20
20
|
import { ElectronMainWindowService } from '../../electron-common/electron-main-window-service';
|
|
21
|
-
import { ElectronWindowPreferences } from '
|
|
21
|
+
import { ElectronWindowPreferences } from '../../electron-common/electron-window-preferences';
|
|
22
22
|
import { ConnectionCloseService } from '../../common/messaging/connection-management';
|
|
23
23
|
import { FrontendIdProvider } from '../../browser/messaging/frontend-id-provider';
|
|
24
24
|
import { WindowReloadOptions } from '../../browser/window/window-service';
|