@theia/core 1.65.0-next.19 → 1.65.0-next.39
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 +24 -7
- 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 +7 -6
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +3 -2
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.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 +3 -2
- 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/widgets/widget.js +4 -4
- package/lib/browser/widgets/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/lib/node/backend-application.js +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 +7 -6
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +5 -5
- 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 +3 -2
- 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/widgets/widget.ts +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/src/node/backend-application.ts +1 -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
|
@@ -14,21 +14,18 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { PreferenceItem } from '../../common/preferences/preference-schema';
|
|
18
17
|
import { JSONObject, JSONValue } from '../../../shared/@lumino/coreutils';
|
|
19
|
-
import { PreferenceSchemaProvider } from './preference-contribution';
|
|
20
|
-
import { PreferenceLanguageOverrideService } from './preference-language-override-service';
|
|
21
18
|
import { inject, injectable } from '../../../shared/inversify';
|
|
22
19
|
import { IJSONSchema, JsonType } from '../../common/json-schema';
|
|
23
20
|
import { deepClone, unreachable } from '../../common';
|
|
24
|
-
import {
|
|
21
|
+
import { PreferenceLanguageOverrideService } from '../../common/preferences/preference-language-override-service';
|
|
22
|
+
import { PreferenceSchemaService, PreferenceScope, PreferenceUtils, PreferenceDataProperty } from '../../common/preferences';
|
|
25
23
|
|
|
26
24
|
export interface PreferenceValidator<T> {
|
|
27
25
|
name: string;
|
|
28
26
|
validate(value: unknown): T;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
export interface ValidatablePreference extends IJSONSchema, Pick<PreferenceItem, 'defaultValue'> { }
|
|
32
29
|
export type ValueValidator = (value: JSONValue) => JSONValue;
|
|
33
30
|
|
|
34
31
|
export interface PreferenceValidationResult<T extends JSONValue> {
|
|
@@ -37,11 +34,11 @@ export interface PreferenceValidationResult<T extends JSONValue> {
|
|
|
37
34
|
messages: string[];
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
type ValidatablePreferenceTuple =
|
|
37
|
+
type ValidatablePreferenceTuple = IJSONSchema & ({ items: IJSONSchema[] } | { prefixItems: IJSONSchema[] });
|
|
41
38
|
|
|
42
39
|
@injectable()
|
|
43
40
|
export class PreferenceValidationService {
|
|
44
|
-
@inject(
|
|
41
|
+
@inject(PreferenceSchemaService) protected readonly schemaService: PreferenceSchemaService;
|
|
45
42
|
@inject(PreferenceLanguageOverrideService) protected readonly languageOverrideService: PreferenceLanguageOverrideService;
|
|
46
43
|
|
|
47
44
|
validateOptions(options: Record<string, JSONValue>): Record<string, JSONValue> {
|
|
@@ -71,30 +68,30 @@ export class PreferenceValidationService {
|
|
|
71
68
|
return this.validateBySchema(preferenceName, value, schema);
|
|
72
69
|
}
|
|
73
70
|
|
|
74
|
-
validateBySchema(key: string, value: JSONValue, schema:
|
|
71
|
+
validateBySchema(key: string, value: JSONValue, schema: IJSONSchema | undefined): JSONValue {
|
|
75
72
|
try {
|
|
76
73
|
if (!schema) {
|
|
77
74
|
console.warn('Request to validate preference with no schema registered:', key);
|
|
78
75
|
return value;
|
|
79
76
|
}
|
|
80
77
|
if (schema.const !== undefined) {
|
|
81
|
-
return this.validateConst(key, value, schema as
|
|
78
|
+
return this.validateConst(key, value, schema as IJSONSchema & { const: JSONValue });
|
|
82
79
|
}
|
|
83
80
|
if (Array.isArray(schema.enum)) {
|
|
84
|
-
return this.validateEnum(key, value, schema as
|
|
81
|
+
return this.validateEnum(key, value, schema as IJSONSchema & { enum: JSONValue[] });
|
|
85
82
|
}
|
|
86
83
|
if (Array.isArray(schema.anyOf)) {
|
|
87
|
-
return this.validateAnyOf(key, value, schema as
|
|
84
|
+
return this.validateAnyOf(key, value, schema as IJSONSchema & { anyOf: IJSONSchema[] });
|
|
88
85
|
}
|
|
89
86
|
if (Array.isArray(schema.oneOf)) {
|
|
90
|
-
return this.validateOneOf(key, value, schema as
|
|
87
|
+
return this.validateOneOf(key, value, schema as IJSONSchema & { oneOf: IJSONSchema[] });
|
|
91
88
|
}
|
|
92
89
|
if (schema.type === undefined) {
|
|
93
90
|
console.warn('Request to validate preference with no type information:', key);
|
|
94
91
|
return value;
|
|
95
92
|
}
|
|
96
93
|
if (Array.isArray(schema.type)) {
|
|
97
|
-
return this.validateMultiple(key, value, schema as
|
|
94
|
+
return this.validateMultiple(key, value, schema as IJSONSchema & { type: JsonType[] });
|
|
98
95
|
}
|
|
99
96
|
switch (schema.type) {
|
|
100
97
|
case 'array':
|
|
@@ -120,8 +117,8 @@ export class PreferenceValidationService {
|
|
|
120
117
|
}
|
|
121
118
|
}
|
|
122
119
|
|
|
123
|
-
protected getSchema(name: string):
|
|
124
|
-
const combinedSchema = this.
|
|
120
|
+
protected getSchema(name: string): IJSONSchema | undefined {
|
|
121
|
+
const combinedSchema = this.schemaService.getJSONSchema(PreferenceScope.Folder).properties!;
|
|
125
122
|
if (combinedSchema[name]) {
|
|
126
123
|
return combinedSchema[name];
|
|
127
124
|
}
|
|
@@ -129,35 +126,35 @@ export class PreferenceValidationService {
|
|
|
129
126
|
return baseName !== undefined ? combinedSchema[baseName] : undefined;
|
|
130
127
|
}
|
|
131
128
|
|
|
132
|
-
protected validateMultiple(key: string, value: JSONValue, schema:
|
|
133
|
-
const validation:
|
|
129
|
+
protected validateMultiple(key: string, value: JSONValue, schema: IJSONSchema & { type: JsonType[] }): JSONValue {
|
|
130
|
+
const validation: IJSONSchema = deepClone(schema);
|
|
134
131
|
const candidate = this.mapValidators(key, value, (function* (this: PreferenceValidationService): Iterable<ValueValidator> {
|
|
135
132
|
for (const type of schema.type) {
|
|
136
133
|
validation.type = type as JsonType;
|
|
137
134
|
yield toValidate => this.validateBySchema(key, toValidate, validation);
|
|
138
135
|
}
|
|
139
136
|
}).bind(this)());
|
|
140
|
-
if (candidate !== value && (schema.default !== undefined || schema.
|
|
137
|
+
if (candidate !== value && (schema.default !== undefined || schema.default !== undefined)) {
|
|
141
138
|
const configuredDefault = this.getDefaultFromSchema(schema);
|
|
142
|
-
return this.validateMultiple(key, configuredDefault, { ...schema, default: undefined
|
|
139
|
+
return this.validateMultiple(key, configuredDefault, { ...schema, default: undefined });
|
|
143
140
|
}
|
|
144
141
|
return candidate;
|
|
145
142
|
}
|
|
146
143
|
|
|
147
|
-
protected validateAnyOf(key: string, value: JSONValue, schema:
|
|
144
|
+
protected validateAnyOf(key: string, value: JSONValue, schema: IJSONSchema & { anyOf: IJSONSchema[] }): JSONValue {
|
|
148
145
|
const candidate = this.mapValidators(key, value, (function* (this: PreferenceValidationService): Iterable<ValueValidator> {
|
|
149
146
|
for (const option of schema.anyOf) {
|
|
150
147
|
yield toValidate => this.validateBySchema(key, toValidate, option);
|
|
151
148
|
}
|
|
152
149
|
}).bind(this)());
|
|
153
|
-
if (candidate !== value && (schema.default !== undefined
|
|
150
|
+
if (candidate !== value && (schema.default !== undefined)) {
|
|
154
151
|
const configuredDefault = this.getDefaultFromSchema(schema);
|
|
155
|
-
return this.validateAnyOf(key, configuredDefault, { ...schema, default: undefined
|
|
152
|
+
return this.validateAnyOf(key, configuredDefault, { ...schema, default: undefined });
|
|
156
153
|
}
|
|
157
154
|
return candidate;
|
|
158
155
|
}
|
|
159
156
|
|
|
160
|
-
protected validateOneOf(key: string, value: JSONValue, schema:
|
|
157
|
+
protected validateOneOf(key: string, value: JSONValue, schema: IJSONSchema & { oneOf: IJSONSchema[] }): JSONValue {
|
|
161
158
|
let passed = false;
|
|
162
159
|
for (const subSchema of schema.oneOf) {
|
|
163
160
|
const validValue = this.validateBySchema(key, value, subSchema);
|
|
@@ -171,9 +168,9 @@ export class PreferenceValidationService {
|
|
|
171
168
|
if (passed) {
|
|
172
169
|
return value;
|
|
173
170
|
}
|
|
174
|
-
if (schema.default !== undefined
|
|
171
|
+
if (schema.default !== undefined) {
|
|
175
172
|
const configuredDefault = this.getDefaultFromSchema(schema);
|
|
176
|
-
return this.validateOneOf(key, configuredDefault, { ...schema, default: undefined
|
|
173
|
+
return this.validateOneOf(key, configuredDefault, { ...schema, default: undefined });
|
|
177
174
|
}
|
|
178
175
|
console.log(`While validating ${key}, failed to find a valid value or default value. Using configured value ${value}.`);
|
|
179
176
|
return value;
|
|
@@ -190,7 +187,7 @@ export class PreferenceValidationService {
|
|
|
190
187
|
}
|
|
191
188
|
return candidates[0];
|
|
192
189
|
}
|
|
193
|
-
protected validateArray(key: string, value: JSONValue, schema:
|
|
190
|
+
protected validateArray(key: string, value: JSONValue, schema: IJSONSchema): JSONValue[] {
|
|
194
191
|
const candidate = Array.isArray(value) ? value : this.getDefaultFromSchema(schema);
|
|
195
192
|
if (!Array.isArray(candidate)) {
|
|
196
193
|
return [];
|
|
@@ -211,11 +208,11 @@ export class PreferenceValidationService {
|
|
|
211
208
|
const defaultValue = this.getDefaultFromSchema(schema);
|
|
212
209
|
const maybeCandidate = Array.isArray(value) ? value : defaultValue;
|
|
213
210
|
// If we find that the provided value is not valid, we immediately bail and try the default value instead.
|
|
214
|
-
const shouldTryDefault = Array.isArray(schema.
|
|
211
|
+
const shouldTryDefault = Array.isArray(schema.default) && !PreferenceUtils.deepEqual(defaultValue, maybeCandidate);
|
|
215
212
|
const tryDefault = () => this.validateTuple(key, defaultValue, schema);
|
|
216
213
|
const candidate = Array.isArray(maybeCandidate) ? maybeCandidate : [];
|
|
217
214
|
// Only `prefixItems` is officially part of the JSON Schema spec, but `items` as array was part of a draft and was used by VSCode.
|
|
218
|
-
const tuple = (schema.prefixItems ?? schema.items) as Required<
|
|
215
|
+
const tuple = (schema.prefixItems ?? schema.items) as Required<IJSONSchema>['prefixItems'];
|
|
219
216
|
const lengthIsWrong = candidate.length < tuple.length || (candidate.length > tuple.length && !schema.additionalItems);
|
|
220
217
|
if (lengthIsWrong && shouldTryDefault) { return tryDefault(); }
|
|
221
218
|
let valid = true;
|
|
@@ -250,26 +247,26 @@ export class PreferenceValidationService {
|
|
|
250
247
|
return valid ? candidate : validItems;
|
|
251
248
|
}
|
|
252
249
|
|
|
253
|
-
protected validateConst(key: string, value: JSONValue, schema:
|
|
254
|
-
if (
|
|
250
|
+
protected validateConst(key: string, value: JSONValue, schema: IJSONSchema & { const: JSONValue }): JSONValue {
|
|
251
|
+
if (PreferenceUtils.deepEqual(value, schema.const)) {
|
|
255
252
|
return value;
|
|
256
253
|
}
|
|
257
254
|
return schema.const;
|
|
258
255
|
}
|
|
259
256
|
|
|
260
|
-
protected validateEnum(key: string, value: JSONValue, schema:
|
|
257
|
+
protected validateEnum(key: string, value: JSONValue, schema: IJSONSchema & { enum: JSONValue[] }): JSONValue {
|
|
261
258
|
const options = schema.enum;
|
|
262
|
-
if (options.some(option =>
|
|
259
|
+
if (options.some(option => PreferenceUtils.deepEqual(option, value))) {
|
|
263
260
|
return value;
|
|
264
261
|
}
|
|
265
262
|
const configuredDefault = this.getDefaultFromSchema(schema);
|
|
266
|
-
if (options.some(option =>
|
|
263
|
+
if (options.some(option => PreferenceUtils.deepEqual(option, configuredDefault))) {
|
|
267
264
|
return configuredDefault;
|
|
268
265
|
}
|
|
269
266
|
return options[0];
|
|
270
267
|
}
|
|
271
268
|
|
|
272
|
-
protected validateBoolean(key: string, value: JSONValue, schema:
|
|
269
|
+
protected validateBoolean(key: string, value: JSONValue, schema: IJSONSchema): boolean {
|
|
273
270
|
if (value === true || value === false) {
|
|
274
271
|
return value;
|
|
275
272
|
}
|
|
@@ -282,11 +279,11 @@ export class PreferenceValidationService {
|
|
|
282
279
|
return Boolean(this.getDefaultFromSchema(schema));
|
|
283
280
|
}
|
|
284
281
|
|
|
285
|
-
protected validateInteger(key: string, value: JSONValue, schema:
|
|
282
|
+
protected validateInteger(key: string, value: JSONValue, schema: IJSONSchema): number {
|
|
286
283
|
return Math.round(this.validateNumber(key, value, schema));
|
|
287
284
|
}
|
|
288
285
|
|
|
289
|
-
protected validateNumber(key: string, value: JSONValue, schema:
|
|
286
|
+
protected validateNumber(key: string, value: JSONValue, schema: IJSONSchema): number {
|
|
290
287
|
let validated = Number(value);
|
|
291
288
|
if (isNaN(validated)) {
|
|
292
289
|
const configuredDefault = Number(this.getDefaultFromSchema(schema));
|
|
@@ -301,7 +298,7 @@ export class PreferenceValidationService {
|
|
|
301
298
|
return validated;
|
|
302
299
|
}
|
|
303
300
|
|
|
304
|
-
protected validateObject(key: string, value: JSONValue, schema:
|
|
301
|
+
protected validateObject(key: string, value: JSONValue, schema: IJSONSchema): JSONObject {
|
|
305
302
|
if (this.objectMatchesSchema(key, value, schema)) {
|
|
306
303
|
return value;
|
|
307
304
|
}
|
|
@@ -313,7 +310,7 @@ export class PreferenceValidationService {
|
|
|
313
310
|
}
|
|
314
311
|
|
|
315
312
|
// This evaluates most of the fields that commonly appear on PreferenceItem, but it could be improved to evaluate all possible JSON schema specifications.
|
|
316
|
-
protected objectMatchesSchema(key: string, value: JSONValue, schema:
|
|
313
|
+
protected objectMatchesSchema(key: string, value: JSONValue, schema: IJSONSchema): value is JSONObject {
|
|
317
314
|
if (!value || typeof value !== 'object') {
|
|
318
315
|
return false;
|
|
319
316
|
}
|
|
@@ -341,7 +338,7 @@ export class PreferenceValidationService {
|
|
|
341
338
|
return true;
|
|
342
339
|
}
|
|
343
340
|
|
|
344
|
-
protected validateString(key: string, value: JSONValue, schema:
|
|
341
|
+
protected validateString(key: string, value: JSONValue, schema: IJSONSchema): string {
|
|
345
342
|
if (typeof value === 'string') {
|
|
346
343
|
return value;
|
|
347
344
|
}
|
|
@@ -352,7 +349,29 @@ export class PreferenceValidationService {
|
|
|
352
349
|
return (configuredDefault ?? '').toString();
|
|
353
350
|
}
|
|
354
351
|
|
|
355
|
-
protected getDefaultFromSchema(schema:
|
|
356
|
-
return this.
|
|
352
|
+
protected getDefaultFromSchema(schema: IJSONSchema): JSONValue {
|
|
353
|
+
return this.getDefaultValue(schema);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
getDefaultValue(property: PreferenceDataProperty): JSONValue {
|
|
357
|
+
if (property.default !== undefined) {
|
|
358
|
+
return property.default;
|
|
359
|
+
}
|
|
360
|
+
const type = Array.isArray(property.type) ? property.type[0] : property.type;
|
|
361
|
+
switch (type) {
|
|
362
|
+
case 'boolean':
|
|
363
|
+
return false;
|
|
364
|
+
case 'integer':
|
|
365
|
+
case 'number':
|
|
366
|
+
return 0;
|
|
367
|
+
case 'string':
|
|
368
|
+
return '';
|
|
369
|
+
case 'array':
|
|
370
|
+
return [];
|
|
371
|
+
case 'object':
|
|
372
|
+
return {};
|
|
373
|
+
}
|
|
374
|
+
// eslint-disable-next-line no-null/no-null
|
|
375
|
+
return null;
|
|
357
376
|
}
|
|
358
377
|
}
|
|
@@ -17,10 +17,9 @@
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
19
|
import { interfaces } from 'inversify';
|
|
20
|
-
import { PreferenceProvider } from '
|
|
21
|
-
import { PreferenceScope } from '../preference-scope';
|
|
20
|
+
import { PreferenceProviderImpl, PreferenceScope, PreferenceProvider } from '../../../common/preferences';
|
|
22
21
|
|
|
23
|
-
export class MockPreferenceProvider extends
|
|
22
|
+
export class MockPreferenceProvider extends PreferenceProviderImpl {
|
|
24
23
|
readonly prefs: { [p: string]: any } = {};
|
|
25
24
|
|
|
26
25
|
constructor(protected scope: PreferenceScope) {
|
|
@@ -42,8 +41,6 @@ export class MockPreferenceProvider extends PreferenceProvider {
|
|
|
42
41
|
}
|
|
43
42
|
|
|
44
43
|
export function bindMockPreferenceProviders(bind: interfaces.Bind, unbind: interfaces.Unbind): void {
|
|
45
|
-
unbind(PreferenceProvider);
|
|
46
|
-
|
|
47
44
|
bind(PreferenceProvider).toDynamicValue(ctx => new MockPreferenceProvider(PreferenceScope.User)).inSingletonScope().whenTargetNamed(PreferenceScope.User);
|
|
48
45
|
bind(PreferenceProvider).toDynamicValue(ctx => new MockPreferenceProvider(PreferenceScope.Workspace)).inSingletonScope().whenTargetNamed(PreferenceScope.Workspace);
|
|
49
46
|
bind(PreferenceProvider).toDynamicValue(ctx => new MockPreferenceProvider(PreferenceScope.Folder)).inSingletonScope().whenTargetNamed(PreferenceScope.Folder);
|
|
@@ -14,8 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { Emitter } from '../../../common';
|
|
18
|
-
import { PreferenceChange } from '../preference-service';
|
|
17
|
+
import { Emitter, PreferenceChange } from '../../../common';
|
|
19
18
|
|
|
20
19
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
21
20
|
export function createMockPreferenceProxy(preferences: { [p: string]: any }): any {
|
|
@@ -15,11 +15,8 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable } from 'inversify';
|
|
18
|
-
import { Emitter, Event } from '../../../common';
|
|
18
|
+
import { Emitter, Event, OverridePreferenceName, PreferenceChange, PreferenceChanges, PreferenceInspection, PreferenceScope, PreferenceService } from '../../../common';
|
|
19
19
|
import URI from '../../../common/uri';
|
|
20
|
-
import { PreferenceChange, PreferenceChanges, PreferenceInspection, PreferenceService } from '../preference-service';
|
|
21
|
-
import { PreferenceScope } from '../preference-scope';
|
|
22
|
-
import { OverridePreferenceName } from '../preference-language-override-service';
|
|
23
20
|
|
|
24
21
|
@injectable()
|
|
25
22
|
export class MockPreferenceService implements PreferenceService {
|
|
@@ -18,7 +18,7 @@ import { inject, injectable } from 'inversify';
|
|
|
18
18
|
import { KeybindingRegistry } from '../keybinding';
|
|
19
19
|
import { Disposable, Command, CommandRegistry, CancellationToken, nls } from '../../common';
|
|
20
20
|
import { ContextKeyService } from '../context-key-service';
|
|
21
|
-
import { CorePreferences } from '
|
|
21
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
22
22
|
import { QuickAccessContribution, QuickAccessProvider, QuickAccessRegistry } from './quick-access';
|
|
23
23
|
import { filterItems, QuickPickItem, QuickPicks } from './quick-input-service';
|
|
24
24
|
import { KeySequence } from '../keys';
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
18
18
|
import { BackendRequestService, RequestConfiguration, RequestContext, RequestOptions, RequestService, CancellationToken } from '@theia/request';
|
|
19
|
-
import { PreferenceService } from '
|
|
19
|
+
import { PreferenceService } from '../../common';
|
|
20
20
|
|
|
21
21
|
@injectable()
|
|
22
22
|
export abstract class AbstractBrowserRequestService implements RequestService {
|
|
@@ -40,9 +40,9 @@ export abstract class AbstractBrowserRequestService implements RequestService {
|
|
|
40
40
|
});
|
|
41
41
|
this.preferenceService.onPreferencesChanged(e => {
|
|
42
42
|
this.configurePromise.then(() => this.configure({
|
|
43
|
-
proxyUrl: e['http.proxy']?.newValue,
|
|
44
|
-
proxyAuthorization: e['http.proxyAuthorization']?.newValue,
|
|
45
|
-
strictSSL: e['http.proxyStrictSSL']?.newValue
|
|
43
|
+
proxyUrl: e['http.proxy']?.newValue as string,
|
|
44
|
+
proxyAuthorization: e['http.proxyAuthorization']?.newValue as string,
|
|
45
|
+
strictSSL: e['http.proxyStrictSSL']?.newValue as boolean
|
|
46
46
|
}));
|
|
47
47
|
});
|
|
48
48
|
}
|
|
@@ -35,7 +35,7 @@ import { TabBarToolbarRegistry, TabBarToolbarFactory } from './tab-bar-toolbar';
|
|
|
35
35
|
import { ContextKeyService } from '../context-key-service';
|
|
36
36
|
import { Emitter } from '../../common/event';
|
|
37
37
|
import { waitForRevealed, waitForClosed, PINNED_CLASS, UnsafeWidgetUtilities } from '../widgets';
|
|
38
|
-
import { CorePreferences } from '
|
|
38
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
39
39
|
import { BreadcrumbsRendererFactory } from '../breadcrumbs/breadcrumbs-renderer';
|
|
40
40
|
import { Deferred } from '../../common/promise-util';
|
|
41
41
|
import { SaveableService } from '../saveable-service';
|
|
@@ -1399,22 +1399,23 @@ export class ApplicationShell extends Widget {
|
|
|
1399
1399
|
this.toDisposeOnActivationCheck.push(Disposable.create(() => widget.disposed.disconnect(onDispose)));
|
|
1400
1400
|
|
|
1401
1401
|
let start = 0;
|
|
1402
|
-
const step: FrameRequestCallback =
|
|
1402
|
+
const step: FrameRequestCallback = () => {
|
|
1403
1403
|
const activeElement = widget.node.ownerDocument.activeElement;
|
|
1404
1404
|
if (activeElement && widget.node.contains(activeElement)) {
|
|
1405
1405
|
return;
|
|
1406
1406
|
}
|
|
1407
|
+
const now = Date.now();
|
|
1407
1408
|
if (!start) {
|
|
1408
|
-
start =
|
|
1409
|
+
start = now;
|
|
1409
1410
|
}
|
|
1410
|
-
const delta =
|
|
1411
|
+
const delta = now - start;
|
|
1411
1412
|
if (delta < this.activationTimeout) {
|
|
1412
|
-
request =
|
|
1413
|
+
request = setTimeout(step, 0);
|
|
1413
1414
|
} else {
|
|
1414
1415
|
console.warn(`Widget was activated, but did not accept focus after ${this.activationTimeout}ms: ${widget.id}`);
|
|
1415
1416
|
}
|
|
1416
1417
|
};
|
|
1417
|
-
let request =
|
|
1418
|
+
let request = setTimeout(step, 0);
|
|
1418
1419
|
this.toDisposeOnActivationCheck.push(Disposable.create(() => window.cancelAnimationFrame(request)));
|
|
1419
1420
|
}
|
|
1420
1421
|
|
|
@@ -97,11 +97,11 @@ abstract class AbstractToolbarMenuWrapper {
|
|
|
97
97
|
protected renderMenuItem(widget: Widget): React.ReactNode {
|
|
98
98
|
const icon = this.icon || 'ellipsis';
|
|
99
99
|
const contextMatcher: ContextMatcher = this.contextKeyService;
|
|
100
|
+
const className = `${icon} ${ACTION_ITEM}`;
|
|
100
101
|
if (CompoundMenuNode.is(this.menuNode) && !this.menuNode.isEmpty(this.effectiveMenuPath, this.contextKeyService, widget.node)) {
|
|
101
|
-
|
|
102
102
|
return <div key={this.id} className={TabBarToolbar.Styles.TAB_BAR_TOOLBAR_ITEM + ' enabled menu'}>
|
|
103
|
-
<div className={
|
|
104
|
-
title={this.text}
|
|
103
|
+
<div className={className}
|
|
104
|
+
title={this.tooltip || this.text}
|
|
105
105
|
onClick={e => this.executeCommand(e)}
|
|
106
106
|
/>
|
|
107
107
|
<div className={ACTION_ITEM} onClick={event => this.showPopupMenu(widget, this.menuPath!, event, contextMatcher)} >
|
|
@@ -110,8 +110,8 @@ abstract class AbstractToolbarMenuWrapper {
|
|
|
110
110
|
</div>;
|
|
111
111
|
} else {
|
|
112
112
|
return <div key={this.id} className={TabBarToolbar.Styles.TAB_BAR_TOOLBAR_ITEM + ' enabled menu'}>
|
|
113
|
-
<div className={
|
|
114
|
-
title={this.text}
|
|
113
|
+
<div className={className}
|
|
114
|
+
title={this.tooltip || this.text}
|
|
115
115
|
onClick={e => this.executeCommand(e)}
|
|
116
116
|
/>
|
|
117
117
|
</div>;
|
|
@@ -32,7 +32,7 @@ import { BreadcrumbsRenderer, BreadcrumbsRendererFactory } from '../breadcrumbs/
|
|
|
32
32
|
import { NavigatableWidget } from '../navigatable-types';
|
|
33
33
|
import { Drag } from '@lumino/dragdrop';
|
|
34
34
|
import { LOCKED_CLASS, PINNED_CLASS } from '../widgets/widget';
|
|
35
|
-
import { CorePreferences } from '
|
|
35
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
36
36
|
import { HoverService } from '../hover-service';
|
|
37
37
|
import { Root, createRoot } from 'react-dom/client';
|
|
38
38
|
import { SelectComponent } from '../widgets/select-component';
|
|
@@ -18,7 +18,7 @@ import { find, toArray } from '@lumino/algorithm';
|
|
|
18
18
|
import { TabBar, Widget, DockPanel, Title } from '@lumino/widgets';
|
|
19
19
|
import { Signal } from '@lumino/signaling';
|
|
20
20
|
import { Disposable, DisposableCollection } from '../../common/disposable';
|
|
21
|
-
import { CorePreferences } from '
|
|
21
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
22
22
|
import { Emitter, Event, environment } from '../../common';
|
|
23
23
|
import { ToolbarAwareTabBar } from './tab-bars';
|
|
24
24
|
|
|
@@ -21,11 +21,12 @@ import { CommandService } from '../../common';
|
|
|
21
21
|
import { ReactWidget } from '../widgets/react-widget';
|
|
22
22
|
import { FrontendApplicationStateService } from '../frontend-application-state';
|
|
23
23
|
import { LabelParser, LabelIcon } from '../label-parser';
|
|
24
|
-
import { PreferenceService } from '../preferences';
|
|
25
24
|
import { StatusBar, StatusBarEntry, StatusBarAlignment, StatusBarViewEntry } from './status-bar-types';
|
|
26
25
|
import { StatusBarViewModel } from './status-bar-view-model';
|
|
27
26
|
import { HoverService } from '../hover-service';
|
|
28
27
|
import { codicon } from '../widgets';
|
|
28
|
+
import { PreferenceService } from '../../common/preferences';
|
|
29
|
+
import { MarkdownString } from '../../common/markdown-rendering';
|
|
29
30
|
export { StatusBar, StatusBarAlignment, StatusBarEntry };
|
|
30
31
|
|
|
31
32
|
@injectable()
|
|
@@ -122,7 +123,7 @@ export class StatusBarImpl extends ReactWidget implements StatusBar {
|
|
|
122
123
|
content: entry.tooltip!,
|
|
123
124
|
target: e.currentTarget,
|
|
124
125
|
position: 'top',
|
|
125
|
-
interactive: entry.tooltip instanceof HTMLElement,
|
|
126
|
+
interactive: entry.tooltip instanceof HTMLElement || MarkdownString.is(entry.tooltip),
|
|
126
127
|
});
|
|
127
128
|
}
|
|
128
129
|
|
package/src/browser/theming.ts
CHANGED
|
@@ -14,15 +14,16 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { Emitter, Event } from '../common/event';
|
|
18
|
-
import { Disposable } from '../common/disposable';
|
|
19
|
-
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
20
17
|
import { ApplicationProps, DefaultTheme } from '@theia/application-package/lib/application-props';
|
|
21
|
-
import { Theme, ThemeChangeEvent } from '../common/theme';
|
|
22
18
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
19
|
+
import { Disposable } from '../common/disposable';
|
|
20
|
+
import { Emitter, Event } from '../common/event';
|
|
21
|
+
import { PreferenceSchemaService } from '../common/preferences/preference-schema';
|
|
23
22
|
import { Deferred } from '../common/promise-util';
|
|
24
|
-
import {
|
|
23
|
+
import { Theme, ThemeChangeEvent } from '../common/theme';
|
|
24
|
+
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
25
25
|
import debounce = require('lodash.debounce');
|
|
26
|
+
import { PreferenceService } from '../common/preferences';
|
|
26
27
|
|
|
27
28
|
const COLOR_THEME_PREFERENCE_KEY = 'workbench.colorTheme';
|
|
28
29
|
const NO_THEME = { id: 'no-theme', label: 'Not a real theme.', type: 'dark' } as const;
|
|
@@ -32,7 +33,7 @@ export class ThemeService {
|
|
|
32
33
|
static readonly STORAGE_KEY = 'theme';
|
|
33
34
|
|
|
34
35
|
@inject(PreferenceService) protected readonly preferences: PreferenceService;
|
|
35
|
-
@inject(
|
|
36
|
+
@inject(PreferenceSchemaService) protected readonly schemaProvider: PreferenceSchemaService;
|
|
36
37
|
|
|
37
38
|
protected themes: { [id: string]: Theme } = {};
|
|
38
39
|
protected activeTheme: Theme = NO_THEME;
|
|
@@ -18,8 +18,8 @@ import { injectable, inject, optional, postConstruct } from 'inversify';
|
|
|
18
18
|
import * as React from 'react';
|
|
19
19
|
import ReactTooltip from 'react-tooltip';
|
|
20
20
|
import { ReactRenderer, RendererHost } from './widgets/react-renderer';
|
|
21
|
-
import { CorePreferences } from './core-preferences';
|
|
22
21
|
import { generateUuid } from '../common/uuid';
|
|
22
|
+
import { CorePreferences } from '../common/core-preferences';
|
|
23
23
|
|
|
24
24
|
export const TooltipService = Symbol('TooltipService');
|
|
25
25
|
|
|
@@ -41,11 +41,11 @@ import { ElementExt } from '@lumino/domutils';
|
|
|
41
41
|
import { TreeWidgetSelection } from './tree-widget-selection';
|
|
42
42
|
import { MaybePromise } from '../../common/types';
|
|
43
43
|
import { LabelProvider } from '../label-provider';
|
|
44
|
-
import { CorePreferences } from '
|
|
44
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
45
45
|
import { TreeFocusService } from './tree-focus-service';
|
|
46
46
|
import { useEffect } from 'react';
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
47
|
+
import { PREFERENCE_NAME_TREE_INDENT } from '../../common/tree-preference';
|
|
48
|
+
import { PreferenceService, PreferenceChange } from '../../common/preferences';
|
|
49
49
|
|
|
50
50
|
const debounce = require('lodash.debounce');
|
|
51
51
|
|
|
@@ -306,7 +306,7 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
306
306
|
}),
|
|
307
307
|
this.preferenceService.onPreferenceChanged((event: PreferenceChange) => {
|
|
308
308
|
if (event.preferenceName === PREFERENCE_NAME_TREE_INDENT) {
|
|
309
|
-
this.treeIndent = event.newValue;
|
|
309
|
+
this.treeIndent = event.newValue as number;
|
|
310
310
|
this.update();
|
|
311
311
|
}
|
|
312
312
|
})
|
|
@@ -360,17 +360,17 @@ function waitForVisible(widget: Widget, visible: boolean, attached?: boolean): P
|
|
|
360
360
|
if ((typeof attached !== 'boolean' || widget.isAttached === attached) &&
|
|
361
361
|
(widget.isVisible === visible || (widget.node.style.visibility !== 'hidden') === visible)
|
|
362
362
|
) {
|
|
363
|
-
return new Promise(resolve =>
|
|
363
|
+
return new Promise(resolve => setTimeout(() => resolve(), 0));
|
|
364
364
|
}
|
|
365
365
|
return new Promise(resolve => {
|
|
366
|
-
const waitFor = () =>
|
|
366
|
+
const waitFor = () => setTimeout(() => {
|
|
367
367
|
if ((typeof attached !== 'boolean' || widget.isAttached === attached) &&
|
|
368
368
|
(widget.isVisible === visible || (widget.node.style.visibility !== 'hidden') === visible)) {
|
|
369
|
-
|
|
369
|
+
setTimeout(() => resolve(), 0);
|
|
370
370
|
} else {
|
|
371
371
|
waitFor();
|
|
372
372
|
}
|
|
373
|
-
});
|
|
373
|
+
}, 0);
|
|
374
374
|
waitFor();
|
|
375
375
|
});
|
|
376
376
|
}
|
|
@@ -19,8 +19,7 @@ import { WindowService } from './window-service';
|
|
|
19
19
|
import { ExtractableWidget } from '../widgets';
|
|
20
20
|
import { ApplicationShell } from '../shell';
|
|
21
21
|
import { Saveable } from '../saveable';
|
|
22
|
-
import { PreferenceService } from '
|
|
23
|
-
import { Emitter, environment, Event } from '../../common';
|
|
22
|
+
import { Emitter, environment, Event, PreferenceService } from '../../common';
|
|
24
23
|
import { SaveableService } from '../saveable-service';
|
|
25
24
|
|
|
26
25
|
@injectable()
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { Container } from 'inversify';
|
|
18
18
|
import { ContributionProvider } from '../../common';
|
|
19
|
-
import { CorePreferences } from '
|
|
19
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
20
20
|
import { FrontendApplicationContribution } from '../frontend-application-contribution';
|
|
21
21
|
import { DefaultWindowService } from './default-window-service';
|
|
22
22
|
import assert = require('assert');
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { inject, injectable, named } from 'inversify';
|
|
18
18
|
import { Event, Emitter } from '../../common';
|
|
19
|
-
import { CorePreferences } from '
|
|
19
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
20
20
|
import { ContributionProvider } from '../../common/contribution-provider';
|
|
21
21
|
import { FrontendApplicationContribution, OnWillStopAction } from '../frontend-application-contribution';
|
|
22
22
|
import { WindowService } from './window-service';
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import { inject, injectable, named, postConstruct } from 'inversify';
|
|
18
18
|
import { escapeRegExpCharacters } from '../../common/strings';
|
|
19
19
|
import { Emitter, Event } from '../../common/event';
|
|
20
|
-
import { CorePreferences } from '
|
|
20
|
+
import { CorePreferences } from '../../common/core-preferences';
|
|
21
21
|
import { FrontendApplicationConfigProvider } from '../frontend-application-config-provider';
|
|
22
22
|
import { ContributionProvider } from '../../common';
|
|
23
23
|
|