@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.
Files changed (87) hide show
  1. package/lib/browser/folders-preferences-provider.js +2 -2
  2. package/lib/browser/folders-preferences-provider.js.map +1 -1
  3. package/lib/browser/frontend-preference-storage.js +2 -3
  4. package/lib/browser/frontend-preference-storage.js.map +1 -1
  5. package/lib/browser/preference-bindings.js +2 -3
  6. package/lib/browser/preference-bindings.js.map +1 -1
  7. package/lib/browser/preference-frontend-module.js +1 -2
  8. package/lib/browser/preference-frontend-module.js.map +1 -1
  9. package/lib/browser/preference-transaction-manager.js +6 -10
  10. package/lib/browser/preference-transaction-manager.js.map +1 -1
  11. package/lib/browser/preference-tree-model.js +5 -8
  12. package/lib/browser/preference-tree-model.js.map +1 -1
  13. package/lib/browser/preferences-contribution.d.ts.map +1 -1
  14. package/lib/browser/preferences-contribution.js +2 -4
  15. package/lib/browser/preferences-contribution.js.map +1 -1
  16. package/lib/browser/preferences-json-schema-contribution.d.ts +0 -1
  17. package/lib/browser/preferences-json-schema-contribution.d.ts.map +1 -1
  18. package/lib/browser/util/preference-tree-generator.d.ts +0 -1
  19. package/lib/browser/util/preference-tree-generator.d.ts.map +1 -1
  20. package/lib/browser/util/preference-tree-generator.js +7 -12
  21. package/lib/browser/util/preference-tree-generator.js.map +1 -1
  22. package/lib/browser/util/preference-types.d.ts.map +1 -1
  23. package/lib/browser/views/components/preference-array-input.js +5 -6
  24. package/lib/browser/views/components/preference-array-input.js.map +1 -1
  25. package/lib/browser/views/components/preference-boolean-input.js +4 -3
  26. package/lib/browser/views/components/preference-boolean-input.js.map +1 -1
  27. package/lib/browser/views/components/preference-file-input.js +5 -6
  28. package/lib/browser/views/components/preference-file-input.js.map +1 -1
  29. package/lib/browser/views/components/preference-json-input.js +3 -2
  30. package/lib/browser/views/components/preference-json-input.js.map +1 -1
  31. package/lib/browser/views/components/preference-markdown-renderer.js +1 -2
  32. package/lib/browser/views/components/preference-markdown-renderer.js.map +1 -1
  33. package/lib/browser/views/components/preference-node-renderer-creator.js +3 -2
  34. package/lib/browser/views/components/preference-node-renderer-creator.js.map +1 -1
  35. package/lib/browser/views/components/preference-node-renderer.d.ts +2 -3
  36. package/lib/browser/views/components/preference-node-renderer.d.ts.map +1 -1
  37. package/lib/browser/views/components/preference-node-renderer.js +31 -15
  38. package/lib/browser/views/components/preference-node-renderer.js.map +1 -1
  39. package/lib/browser/views/components/preference-null-input.js +3 -2
  40. package/lib/browser/views/components/preference-null-input.js.map +1 -1
  41. package/lib/browser/views/components/preference-number-input.js +7 -8
  42. package/lib/browser/views/components/preference-number-input.js.map +1 -1
  43. package/lib/browser/views/components/preference-select-input.d.ts +0 -1
  44. package/lib/browser/views/components/preference-select-input.d.ts.map +1 -1
  45. package/lib/browser/views/components/preference-select-input.js +7 -7
  46. package/lib/browser/views/components/preference-select-input.js.map +1 -1
  47. package/lib/browser/views/components/preference-string-input.js +7 -8
  48. package/lib/browser/views/components/preference-string-input.js.map +1 -1
  49. package/lib/browser/views/preference-editor-widget.d.ts +0 -1
  50. package/lib/browser/views/preference-editor-widget.d.ts.map +1 -1
  51. package/lib/browser/views/preference-editor-widget.js +14 -18
  52. package/lib/browser/views/preference-editor-widget.js.map +1 -1
  53. package/lib/browser/views/preference-scope-tabbar-widget.d.ts.map +1 -1
  54. package/lib/browser/views/preference-scope-tabbar-widget.js +5 -5
  55. package/lib/browser/views/preference-scope-tabbar-widget.js.map +1 -1
  56. package/lib/browser/views/preference-searchbar-widget.d.ts +0 -1
  57. package/lib/browser/views/preference-searchbar-widget.d.ts.map +1 -1
  58. package/lib/browser/views/preference-searchbar-widget.js +7 -7
  59. package/lib/browser/views/preference-searchbar-widget.js.map +1 -1
  60. package/lib/browser/views/preference-tree-widget.d.ts +0 -1
  61. package/lib/browser/views/preference-tree-widget.d.ts.map +1 -1
  62. package/lib/browser/views/preference-tree-widget.js +4 -4
  63. package/lib/browser/views/preference-tree-widget.js.map +1 -1
  64. package/lib/browser/views/preference-widget-bindings.js +2 -3
  65. package/lib/browser/views/preference-widget-bindings.js.map +1 -1
  66. package/lib/browser/views/preference-widget.js +10 -9
  67. package/lib/browser/views/preference-widget.js.map +1 -1
  68. package/lib/browser/workspace-file-preference-provider.js +1 -2
  69. package/lib/browser/workspace-file-preference-provider.js.map +1 -1
  70. package/lib/browser/workspace-preference-provider.js +2 -4
  71. package/lib/browser/workspace-preference-provider.js.map +1 -1
  72. package/lib/common/abstract-resource-preference-provider.js +1 -1
  73. package/lib/common/abstract-resource-preference-provider.js.map +1 -1
  74. package/lib/node/backend-preference-storage.d.ts +0 -1
  75. package/lib/node/backend-preference-storage.d.ts.map +1 -1
  76. package/lib/node/preference-bindings.js +1 -2
  77. package/lib/node/preference-bindings.js.map +1 -1
  78. package/lib/node/preference-cli-contribution.d.ts +0 -1
  79. package/lib/node/preference-cli-contribution.d.ts.map +1 -1
  80. package/package.json +9 -9
  81. package/src/browser/style/index.css +45 -74
  82. package/src/browser/views/components/preference-array-input.ts +1 -1
  83. package/src/browser/views/components/preference-boolean-input.ts +1 -1
  84. package/src/browser/views/components/preference-node-renderer.ts +33 -10
  85. package/src/browser/views/components/preference-number-input.ts +3 -3
  86. package/src/browser/views/components/preference-select-input.ts +1 -1
  87. 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, PreferenceUtils } from '@theia/core/lib/common';
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 isModifiedFromDefault = false;
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(knownCurrentValue?: JSONValue): void {
294
- const wasModified = this.isModifiedFromDefault;
293
+ protected updateModificationStatus(): void {
294
+ const wasSet = this.isSet;
295
295
  const { inspection } = this;
296
- const valueInCurrentScope = knownCurrentValue ?? Preference.getValueInScope(inspection, this.scopeTracker.currentScope.scope);
297
- this.isModifiedFromDefault = valueInCurrentScope !== undefined && !PreferenceUtils.deepEqual(valueInCurrentScope, this.getDefaultValue());
298
- if (wasModified !== this.isModifiedFromDefault) {
299
- this.gutter.classList.toggle('theia-mod-item-modified', this.isModifiedFromDefault);
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.isModifiedFromDefault ? nls.localizeByDefault('Also modified in') : nls.localizeByDefault('Modified in')) + ': ';
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 && !PreferenceUtils.deepEqual(valueInOtherScope, this.getDefaultValue())) {
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(newValue);
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(this.getValue());
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(newValue);
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
  }