@theia/preferences 1.68.0-next.9 → 1.69.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/folders-preferences-provider.js +2 -2
- package/lib/browser/folders-preferences-provider.js.map +1 -1
- package/lib/browser/frontend-preference-storage.js +2 -3
- package/lib/browser/frontend-preference-storage.js.map +1 -1
- package/lib/browser/preference-bindings.js +2 -3
- package/lib/browser/preference-bindings.js.map +1 -1
- package/lib/browser/preference-frontend-module.js +1 -2
- package/lib/browser/preference-frontend-module.js.map +1 -1
- package/lib/browser/preference-transaction-manager.js +6 -10
- package/lib/browser/preference-transaction-manager.js.map +1 -1
- package/lib/browser/preference-tree-model.js +5 -8
- package/lib/browser/preference-tree-model.js.map +1 -1
- package/lib/browser/preferences-contribution.d.ts.map +1 -1
- package/lib/browser/preferences-contribution.js +2 -4
- package/lib/browser/preferences-contribution.js.map +1 -1
- package/lib/browser/preferences-json-schema-contribution.d.ts +0 -1
- package/lib/browser/preferences-json-schema-contribution.d.ts.map +1 -1
- package/lib/browser/util/preference-tree-generator.d.ts +0 -1
- package/lib/browser/util/preference-tree-generator.d.ts.map +1 -1
- package/lib/browser/util/preference-tree-generator.js +7 -12
- package/lib/browser/util/preference-tree-generator.js.map +1 -1
- package/lib/browser/util/preference-types.d.ts.map +1 -1
- package/lib/browser/views/components/preference-array-input.js +5 -6
- package/lib/browser/views/components/preference-array-input.js.map +1 -1
- package/lib/browser/views/components/preference-boolean-input.js +4 -3
- package/lib/browser/views/components/preference-boolean-input.js.map +1 -1
- package/lib/browser/views/components/preference-file-input.js +5 -6
- package/lib/browser/views/components/preference-file-input.js.map +1 -1
- package/lib/browser/views/components/preference-json-input.js +3 -2
- package/lib/browser/views/components/preference-json-input.js.map +1 -1
- package/lib/browser/views/components/preference-markdown-renderer.js +1 -2
- package/lib/browser/views/components/preference-markdown-renderer.js.map +1 -1
- package/lib/browser/views/components/preference-node-renderer-creator.js +3 -2
- package/lib/browser/views/components/preference-node-renderer-creator.js.map +1 -1
- package/lib/browser/views/components/preference-node-renderer.d.ts +2 -3
- package/lib/browser/views/components/preference-node-renderer.d.ts.map +1 -1
- package/lib/browser/views/components/preference-node-renderer.js +31 -15
- package/lib/browser/views/components/preference-node-renderer.js.map +1 -1
- package/lib/browser/views/components/preference-null-input.js +3 -2
- package/lib/browser/views/components/preference-null-input.js.map +1 -1
- package/lib/browser/views/components/preference-number-input.js +7 -8
- package/lib/browser/views/components/preference-number-input.js.map +1 -1
- package/lib/browser/views/components/preference-select-input.d.ts +0 -1
- package/lib/browser/views/components/preference-select-input.d.ts.map +1 -1
- package/lib/browser/views/components/preference-select-input.js +7 -7
- package/lib/browser/views/components/preference-select-input.js.map +1 -1
- package/lib/browser/views/components/preference-string-input.js +7 -8
- package/lib/browser/views/components/preference-string-input.js.map +1 -1
- package/lib/browser/views/preference-editor-widget.d.ts +0 -1
- package/lib/browser/views/preference-editor-widget.d.ts.map +1 -1
- package/lib/browser/views/preference-editor-widget.js +14 -18
- package/lib/browser/views/preference-editor-widget.js.map +1 -1
- package/lib/browser/views/preference-scope-tabbar-widget.d.ts.map +1 -1
- package/lib/browser/views/preference-scope-tabbar-widget.js +5 -5
- package/lib/browser/views/preference-scope-tabbar-widget.js.map +1 -1
- package/lib/browser/views/preference-searchbar-widget.d.ts +0 -1
- package/lib/browser/views/preference-searchbar-widget.d.ts.map +1 -1
- package/lib/browser/views/preference-searchbar-widget.js +7 -7
- package/lib/browser/views/preference-searchbar-widget.js.map +1 -1
- package/lib/browser/views/preference-tree-widget.d.ts +0 -1
- package/lib/browser/views/preference-tree-widget.d.ts.map +1 -1
- package/lib/browser/views/preference-tree-widget.js +4 -4
- package/lib/browser/views/preference-tree-widget.js.map +1 -1
- package/lib/browser/views/preference-widget-bindings.js +2 -3
- package/lib/browser/views/preference-widget-bindings.js.map +1 -1
- package/lib/browser/views/preference-widget.js +10 -9
- package/lib/browser/views/preference-widget.js.map +1 -1
- package/lib/browser/workspace-file-preference-provider.js +1 -2
- package/lib/browser/workspace-file-preference-provider.js.map +1 -1
- package/lib/browser/workspace-preference-provider.js +2 -4
- package/lib/browser/workspace-preference-provider.js.map +1 -1
- package/lib/common/abstract-resource-preference-provider.js +1 -1
- package/lib/common/abstract-resource-preference-provider.js.map +1 -1
- package/lib/node/backend-preference-storage.d.ts +0 -1
- package/lib/node/backend-preference-storage.d.ts.map +1 -1
- package/lib/node/preference-bindings.js +1 -2
- package/lib/node/preference-bindings.js.map +1 -1
- package/lib/node/preference-cli-contribution.d.ts +0 -1
- package/lib/node/preference-cli-contribution.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/browser/style/index.css +45 -74
- package/src/browser/views/components/preference-array-input.ts +1 -1
- package/src/browser/views/components/preference-boolean-input.ts +1 -1
- package/src/browser/views/components/preference-node-renderer.ts +33 -10
- package/src/browser/views/components/preference-number-input.ts +3 -3
- package/src/browser/views/components/preference-select-input.ts +1 -1
- package/src/browser/views/components/preference-string-input.ts +3 -3
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
import { Preference, PreferenceMenus } from '../../util/preference-types';
|
|
22
22
|
import { PreferenceTreeLabelProvider } from '../../util/preference-tree-label-provider';
|
|
23
23
|
import { PreferencesScopeTabBar } from '../preference-scope-tabbar-widget';
|
|
24
|
-
import { Disposable, nls, PreferenceDataProperty, PreferenceInspection, PreferenceScope, PreferenceService
|
|
24
|
+
import { Disposable, nls, PreferenceDataProperty, PreferenceInspection, PreferenceScope, PreferenceService } from '@theia/core/lib/common';
|
|
25
25
|
import { JSONValue } from '@theia/core/shared/@lumino/coreutils';
|
|
26
26
|
import debounce = require('@theia/core/shared/lodash.debounce');
|
|
27
27
|
import { PreferenceTreeModel } from '../../preference-tree-model';
|
|
@@ -168,7 +168,7 @@ export abstract class PreferenceLeafNodeRenderer<ValueType extends JSONValue, In
|
|
|
168
168
|
protected gutter: HTMLDivElement;
|
|
169
169
|
protected interactable: InteractableType;
|
|
170
170
|
protected inspection: PreferenceInspection<ValueType> | undefined;
|
|
171
|
-
protected
|
|
171
|
+
protected isSet = false;
|
|
172
172
|
|
|
173
173
|
get schema(): PreferenceDataProperty {
|
|
174
174
|
return this.preferenceNode.preference.data;
|
|
@@ -290,13 +290,13 @@ export abstract class PreferenceLeafNodeRenderer<ValueType extends JSONValue, In
|
|
|
290
290
|
this.gutter.classList.remove('show-cog');
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
protected updateModificationStatus(
|
|
294
|
-
const
|
|
293
|
+
protected updateModificationStatus(): void {
|
|
294
|
+
const wasSet = this.isSet;
|
|
295
295
|
const { inspection } = this;
|
|
296
|
-
const valueInCurrentScope =
|
|
297
|
-
this.
|
|
298
|
-
if (
|
|
299
|
-
this.gutter.classList.toggle('theia-mod-item-modified', this.
|
|
296
|
+
const valueInCurrentScope = Preference.getValueInScope(inspection, this.scopeTracker.currentScope.scope);
|
|
297
|
+
this.isSet = valueInCurrentScope !== undefined;
|
|
298
|
+
if (wasSet !== this.isSet) {
|
|
299
|
+
this.gutter.classList.toggle('theia-mod-item-modified', this.isSet);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
|
|
@@ -308,6 +308,29 @@ export abstract class PreferenceLeafNodeRenderer<ValueType extends JSONValue, In
|
|
|
308
308
|
nameWrapper.classList.add('preference-leaf-headline-name');
|
|
309
309
|
nameWrapper.textContent = name;
|
|
310
310
|
headlineWrapper.appendChild(nameWrapper);
|
|
311
|
+
|
|
312
|
+
const tags = this.schema.tags;
|
|
313
|
+
if (tags && tags.length > 0) {
|
|
314
|
+
const tagsWrapper = document.createElement('span');
|
|
315
|
+
tagsWrapper.classList.add('preference-leaf-headline-tags');
|
|
316
|
+
const PREVIEW_INDICATOR_DESCRIPTION = nls.localizeByDefault(
|
|
317
|
+
'Preview setting: this setting controls a new feature that is still under refinement yet ready to use. Feedback is welcome.');
|
|
318
|
+
const EXPERIMENTAL_INDICATOR_DESCRIPTION = nls.localizeByDefault(
|
|
319
|
+
'Experimental setting: this setting controls a new feature that is actively being developed and may be unstable. It is subject to change or removal.');
|
|
320
|
+
|
|
321
|
+
tags.forEach(tag => {
|
|
322
|
+
const tagElement = document.createElement('span');
|
|
323
|
+
const isExperimentalSetting = tag === 'experimental';
|
|
324
|
+
const isPreviewSetting = tag === 'preview';
|
|
325
|
+
tagElement.classList.add('preference-tag');
|
|
326
|
+
tagElement.textContent = isExperimentalSetting ? nls.localizeByDefault('Experimental') :
|
|
327
|
+
isPreviewSetting ? nls.localizeByDefault('Preview') : tag;
|
|
328
|
+
tagElement.title = isExperimentalSetting ? EXPERIMENTAL_INDICATOR_DESCRIPTION :
|
|
329
|
+
isPreviewSetting ? PREVIEW_INDICATOR_DESCRIPTION : tag;
|
|
330
|
+
tagsWrapper.appendChild(tagElement);
|
|
331
|
+
});
|
|
332
|
+
headlineWrapper.appendChild(tagsWrapper);
|
|
333
|
+
}
|
|
311
334
|
}
|
|
312
335
|
const prefix = this.labelProvider.getPrefix(this.preferenceNode, filtered);
|
|
313
336
|
const currentFirstChild = headlineWrapper.children[0];
|
|
@@ -394,7 +417,7 @@ export abstract class PreferenceLeafNodeRenderer<ValueType extends JSONValue, In
|
|
|
394
417
|
}
|
|
395
418
|
|
|
396
419
|
protected getModifiedMessagePrefix(): string {
|
|
397
|
-
return (this.
|
|
420
|
+
return (this.isSet ? nls.localizeByDefault('Also modified in') : nls.localizeByDefault('Modified in')) + ': ';
|
|
398
421
|
}
|
|
399
422
|
|
|
400
423
|
protected addEventHandlerToModifiedScope(scope: PreferenceScope, scopeWrapper: HTMLElement): void {
|
|
@@ -421,7 +444,7 @@ export abstract class PreferenceLeafNodeRenderer<ValueType extends JSONValue, In
|
|
|
421
444
|
for (const otherScope of [PreferenceScope.User, PreferenceScope.Workspace]) {
|
|
422
445
|
if (otherScope !== currentScopeInView) {
|
|
423
446
|
const valueInOtherScope = Preference.getValueInScope(inspection, otherScope);
|
|
424
|
-
if (valueInOtherScope !== undefined
|
|
447
|
+
if (valueInOtherScope !== undefined) {
|
|
425
448
|
modifiedScopes.push(otherScope);
|
|
426
449
|
}
|
|
427
450
|
}
|
|
@@ -86,11 +86,11 @@ export class PreferenceNumberInputRenderer extends PreferenceLeafNodeRenderer<nu
|
|
|
86
86
|
const { value } = this.interactable;
|
|
87
87
|
const currentValue = value.length ? Number(value) : NaN;
|
|
88
88
|
this.updateInspection();
|
|
89
|
-
const newValue = this.getValue()
|
|
90
|
-
this.updateModificationStatus(
|
|
89
|
+
const newValue = this.getValue();
|
|
90
|
+
this.updateModificationStatus();
|
|
91
91
|
if (newValue !== currentValue) {
|
|
92
92
|
if (document.activeElement !== this.interactable) {
|
|
93
|
-
this.interactable.value = newValue.toString();
|
|
93
|
+
this.interactable.value = (newValue ?? this.getDefaultValue()).toString();
|
|
94
94
|
} else {
|
|
95
95
|
this.handleUserInteraction(); // give priority to the value of the input if it is focused.
|
|
96
96
|
}
|
|
@@ -88,7 +88,7 @@ export class PreferenceSelectInputRenderer extends PreferenceLeafNodeRenderer<JS
|
|
|
88
88
|
this.updateInspection();
|
|
89
89
|
this.updateSelectOptions();
|
|
90
90
|
const newValue = this.getDataValue();
|
|
91
|
-
this.updateModificationStatus(
|
|
91
|
+
this.updateModificationStatus();
|
|
92
92
|
if (document.activeElement !== this.interactable && this.selectComponent.current) {
|
|
93
93
|
this.selectComponent.current.value = newValue;
|
|
94
94
|
}
|
|
@@ -40,11 +40,11 @@ export class PreferenceStringInputRenderer extends PreferenceLeafNodeRenderer<st
|
|
|
40
40
|
protected doHandleValueChange(): void {
|
|
41
41
|
const currentValue = this.interactable.value;
|
|
42
42
|
this.updateInspection();
|
|
43
|
-
const newValue = this.getValue()
|
|
44
|
-
this.updateModificationStatus(
|
|
43
|
+
const newValue = this.getValue();
|
|
44
|
+
this.updateModificationStatus();
|
|
45
45
|
if (newValue !== currentValue) {
|
|
46
46
|
if (document.activeElement !== this.interactable) {
|
|
47
|
-
this.interactable.value = newValue;
|
|
47
|
+
this.interactable.value = newValue ?? this.getDefaultValue();
|
|
48
48
|
} else {
|
|
49
49
|
this.handleUserInteraction(); // give priority to the value of the input if it is focused.
|
|
50
50
|
}
|