@theia/preferences 1.51.0 → 1.53.0-next.18

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 (45) hide show
  1. package/lib/browser/preference-frontend-module.d.ts.map +1 -1
  2. package/lib/browser/preference-frontend-module.js +2 -0
  3. package/lib/browser/preference-frontend-module.js.map +1 -1
  4. package/lib/browser/preference-tree-model.d.ts.map +1 -1
  5. package/lib/browser/preference-tree-model.js +2 -1
  6. package/lib/browser/preference-tree-model.js.map +1 -1
  7. package/lib/browser/util/preference-layout.d.ts +23 -0
  8. package/lib/browser/util/preference-layout.d.ts.map +1 -0
  9. package/lib/browser/util/preference-layout.js +365 -0
  10. package/lib/browser/util/preference-layout.js.map +1 -0
  11. package/lib/browser/util/preference-tree-generator.d.ts +16 -7
  12. package/lib/browser/util/preference-tree-generator.d.ts.map +1 -1
  13. package/lib/browser/util/preference-tree-generator.js +104 -75
  14. package/lib/browser/util/preference-tree-generator.js.map +1 -1
  15. package/lib/browser/util/preference-tree-label-provider.d.ts +2 -2
  16. package/lib/browser/util/preference-tree-label-provider.d.ts.map +1 -1
  17. package/lib/browser/util/preference-tree-label-provider.js +10 -6
  18. package/lib/browser/util/preference-tree-label-provider.js.map +1 -1
  19. package/lib/browser/util/preference-tree-label-provider.spec.js +2 -0
  20. package/lib/browser/util/preference-tree-label-provider.spec.js.map +1 -1
  21. package/lib/browser/util/preference-types.d.ts +8 -2
  22. package/lib/browser/util/preference-types.d.ts.map +1 -1
  23. package/lib/browser/util/preference-types.js +4 -0
  24. package/lib/browser/util/preference-types.js.map +1 -1
  25. package/lib/browser/views/preference-editor-widget.d.ts.map +1 -1
  26. package/lib/browser/views/preference-editor-widget.js +2 -2
  27. package/lib/browser/views/preference-editor-widget.js.map +1 -1
  28. package/lib/browser/views/preference-tree-widget.d.ts +2 -0
  29. package/lib/browser/views/preference-tree-widget.d.ts.map +1 -1
  30. package/lib/browser/views/preference-tree-widget.js +10 -1
  31. package/lib/browser/views/preference-tree-widget.js.map +1 -1
  32. package/lib/browser/views/preference-widget.d.ts.map +1 -1
  33. package/lib/browser/views/preference-widget.js +1 -0
  34. package/lib/browser/views/preference-widget.js.map +1 -1
  35. package/package.json +9 -9
  36. package/src/browser/preference-frontend-module.ts +2 -0
  37. package/src/browser/preference-tree-model.ts +2 -1
  38. package/src/browser/util/preference-layout.ts +377 -0
  39. package/src/browser/util/preference-tree-generator.ts +110 -77
  40. package/src/browser/util/preference-tree-label-provider.spec.ts +2 -0
  41. package/src/browser/util/preference-tree-label-provider.ts +12 -4
  42. package/src/browser/util/preference-types.ts +9 -1
  43. package/src/browser/views/preference-editor-widget.ts +1 -1
  44. package/src/browser/views/preference-tree-widget.tsx +10 -1
  45. package/src/browser/views/preference-widget.tsx +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"preference-tree-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/views/preference-tree-widget.tsx"],"names":[],"mappings":";AAiBA,OAAO,EAEH,QAAQ,EACR,SAAS,EACT,UAAU,EAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,GAAG,QAAQ,0BAA0B,CAAC,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAE/G,qBACa,qBAAsB,SAAQ,UAAU;IACjD,MAAM,CAAC,EAAE,SAAsB;IAE/B,SAAS,CAAC,yBAAyB,EAAE,OAAO,CAAQ;IACpD,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAEzC,SAA+C,KAAK,EAAE,mBAAmB,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAGlD,IAAI,IAAI,IAAI;IAUZ,YAAY,IAAI,IAAI;cAWV,eAAe,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS;cAIvG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAAC,SAAS;cAc3E,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAAC,SAAS;cAOtF,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;CAQxD"}
1
+ {"version":3,"file":"preference-tree-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/views/preference-tree-widget.tsx"],"names":[],"mappings":";AAiBA,OAAO,EAEH,QAAQ,EACR,SAAS,EACT,UAAU,EAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,GAAG,QAAQ,0BAA0B,CAAC,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAC/G,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,qBACa,qBAAsB,SAAQ,UAAU;IACjD,MAAM,CAAC,EAAE,SAAsB;IAE/B,SAAS,CAAC,yBAAyB,EAAE,OAAO,CAAQ;IACpD,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAEzC,SAA+C,KAAK,EAAE,mBAAmB,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAGlD,IAAI,IAAI,IAAI;IAUZ,YAAY,IAAI,IAAI;IAW7B,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,GAAG,OAAO;cAQxC,eAAe,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS;cAIvG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAAC,SAAS;cAc3E,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,GAAG,KAAK,CAAC,SAAS;cAOtF,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;CAQxD"}
@@ -22,6 +22,7 @@ const inversify_1 = require("@theia/core/shared/inversify");
22
22
  const browser_1 = require("@theia/core/lib/browser");
23
23
  const React = require("@theia/core/shared/react");
24
24
  const preference_tree_model_1 = require("../preference-tree-model");
25
+ const preference_types_1 = require("../util/preference-types");
25
26
  let PreferencesTreeWidget = PreferencesTreeWidget_1 = class PreferencesTreeWidget extends browser_1.TreeWidget {
26
27
  constructor() {
27
28
  super(...arguments);
@@ -40,12 +41,20 @@ let PreferencesTreeWidget = PreferencesTreeWidget_1 = class PreferencesTreeWidge
40
41
  this.rows = new Map();
41
42
  let index = 0;
42
43
  for (const [id, nodeRow] of this.model.currentRows.entries()) {
43
- if (nodeRow.visibleChildren > 0 && (browser_1.ExpandableTreeNode.is(nodeRow.node) || browser_1.ExpandableTreeNode.isExpanded(nodeRow.node.parent))) {
44
+ if (nodeRow.visibleChildren > 0 && this.isVisibleNode(nodeRow.node)) {
44
45
  this.rows.set(id, { ...nodeRow, index: index++ });
45
46
  }
46
47
  }
47
48
  this.updateScrollToRow();
48
49
  }
50
+ isVisibleNode(node) {
51
+ if (preference_types_1.Preference.TreeNode.isTopLevel(node)) {
52
+ return true;
53
+ }
54
+ else {
55
+ return browser_1.ExpandableTreeNode.isExpanded(node.parent) && preference_types_1.Preference.TreeNode.is(node.parent) && this.isVisibleNode(node.parent);
56
+ }
57
+ }
49
58
  doRenderNodeRow({ depth, visibleChildren, node, isExpansible }) {
50
59
  return this.renderNode(node, { depth, visibleChildren, isExpansible });
51
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preference-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/views/preference-tree-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preference-tree-widget.js","sourceRoot":"","sources":["../../../src/browser/views/preference-tree-widget.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"preference-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/views/preference-widget.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAW,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAG7C,UAAU,sBAAsB;IAC5B,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC;IACpC,oBAAoB,EAAE,yBAAyB,CAAC;CACnD;AAED,qBACa,iBAAkB,SAAQ,KAAM,YAAW,cAAc;IAClE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,qBAAqB;IACvC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAqC;IAEzB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACnE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAExF,IAAI,YAAY,IAAI,UAAU,CAAC,oBAAoB,CAElD;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI;cAI1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,GAAG,IAAI;cAWzC,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAMxD,SAAS,CAAC,IAAI,IAAI,IAAI;IAsBtB,cAAc,IAAI,IAAI,GAAG,SAAS;IAIlC,UAAU,IAAI,sBAAsB;IAQpC,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;CAKpD"}
1
+ {"version":3,"file":"preference-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/views/preference-widget.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAW,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAG7C,UAAU,sBAAsB;IAC5B,gBAAgB,EAAE,2BAA2B,CAAC;IAC9C,WAAW,EAAE,sBAAsB,CAAC;IACpC,oBAAoB,EAAE,yBAAyB,CAAC;CACnD;AAED,qBACa,iBAAkB,SAAQ,KAAM,YAAW,cAAc;IAClE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,qBAAqB;IACvC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAqC;IAEzB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,0BAA0B,CAAC;IACnE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAExF,IAAI,YAAY,IAAI,UAAU,CAAC,oBAAoB,CAElD;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,GAAG,eAAe,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI;cAI1D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,GAAG,IAAI;cAWzC,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAMxD,SAAS,CAAC,IAAI,IAAI,IAAI;IAuBtB,cAAc,IAAI,IAAI,GAAG,SAAS;IAIlC,UAAU,IAAI,sBAAsB;IAQpC,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;CAKpD"}
@@ -53,6 +53,7 @@ let PreferencesWidget = PreferencesWidget_1 = class PreferencesWidget extends br
53
53
  init() {
54
54
  this.id = PreferencesWidget_1.ID;
55
55
  this.title.label = PreferencesWidget_1.LABEL;
56
+ this.title.caption = PreferencesWidget_1.LABEL;
56
57
  this.title.closable = true;
57
58
  this.addClass('theia-settings-container');
58
59
  this.title.iconClass = (0, browser_1.codicon)('settings');
@@ -1 +1 @@
1
- {"version":3,"file":"preference-widget.js","sourceRoot":"","sources":["../../../src/browser/views/preference-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preference-widget.js","sourceRoot":"","sources":["../../../src/browser/views/preference-widget.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@theia/preferences",
3
- "version": "1.51.0",
3
+ "version": "1.53.0-next.18+c3ffc5fa8",
4
4
  "description": "Theia - Preferences Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.51.0",
7
- "@theia/editor": "1.51.0",
8
- "@theia/filesystem": "1.51.0",
9
- "@theia/monaco": "1.51.0",
6
+ "@theia/core": "1.53.0-next.18+c3ffc5fa8",
7
+ "@theia/editor": "1.53.0-next.18+c3ffc5fa8",
8
+ "@theia/filesystem": "1.53.0-next.18+c3ffc5fa8",
9
+ "@theia/monaco": "1.53.0-next.18+c3ffc5fa8",
10
10
  "@theia/monaco-editor-core": "1.83.101",
11
- "@theia/userstorage": "1.51.0",
12
- "@theia/workspace": "1.51.0",
11
+ "@theia/userstorage": "1.53.0-next.18+c3ffc5fa8",
12
+ "@theia/workspace": "1.53.0-next.18+c3ffc5fa8",
13
13
  "async-mutex": "^0.3.1",
14
14
  "fast-deep-equal": "^3.1.3",
15
15
  "jsonc-parser": "^2.2.0",
@@ -50,10 +50,10 @@
50
50
  "watch": "theiaext watch"
51
51
  },
52
52
  "devDependencies": {
53
- "@theia/ext-scripts": "1.51.0"
53
+ "@theia/ext-scripts": "1.52.0"
54
54
  },
55
55
  "nyc": {
56
56
  "extends": "../../configs/nyc.json"
57
57
  },
58
- "gitHead": "fe70ec5d445d733038564d81357c78aedf5c7e0e"
58
+ "gitHead": "c3ffc5fa81879943e3b3ad3caec3738ed2d0e5f9"
59
59
  }
@@ -32,12 +32,14 @@ import { PreferenceOpenHandler } from './preference-open-handler';
32
32
  import { CliPreferences, CliPreferencesPath } from '../common/cli-preferences';
33
33
  import { ServiceConnectionProvider } from '@theia/core/lib/browser/messaging/service-connection-provider';
34
34
  import { PreferenceFrontendContribution } from './preference-frontend-contribution';
35
+ import { PreferenceLayoutProvider } from './util/preference-layout';
35
36
 
36
37
  export function bindPreferences(bind: interfaces.Bind, unbind: interfaces.Unbind): void {
37
38
  bindPreferenceProviders(bind, unbind);
38
39
  bindPreferencesWidgets(bind);
39
40
 
40
41
  bind(PreferenceTreeGenerator).toSelf().inSingletonScope();
42
+ bind(PreferenceLayoutProvider).toSelf().inSingletonScope();
41
43
 
42
44
  bindViewContribution(bind, PreferencesContribution);
43
45
 
@@ -30,11 +30,12 @@ import {
30
30
  } from '@theia/core/lib/browser';
31
31
  import { Emitter } from '@theia/core';
32
32
  import { PreferencesSearchbarWidget } from './views/preference-searchbar-widget';
33
- import { PreferenceTreeGenerator, COMMONLY_USED_SECTION_PREFIX } from './util/preference-tree-generator';
33
+ import { PreferenceTreeGenerator } from './util/preference-tree-generator';
34
34
  import * as fuzzy from '@theia/core/shared/fuzzy';
35
35
  import { PreferencesScopeTabBar } from './views/preference-scope-tabbar-widget';
36
36
  import { Preference } from './util/preference-types';
37
37
  import { Event } from '@theia/core/lib/common';
38
+ import { COMMONLY_USED_SECTION_PREFIX } from './util/preference-layout';
38
39
 
39
40
  export interface PreferenceTreeNodeProps extends NodeProps {
40
41
  visibleChildren: number;
@@ -0,0 +1,377 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2024 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { nls } from '@theia/core';
18
+ import { injectable } from '@theia/core/shared/inversify';
19
+
20
+ export interface PreferenceLayout {
21
+ id: string;
22
+ label: string;
23
+ children?: PreferenceLayout[];
24
+ settings?: string[];
25
+ }
26
+
27
+ export const COMMONLY_USED_SECTION_PREFIX = 'commonly-used';
28
+
29
+ export const COMMONLY_USED_LAYOUT = {
30
+ id: COMMONLY_USED_SECTION_PREFIX,
31
+ label: nls.localizeByDefault('Commonly Used'),
32
+ settings: [
33
+ 'files.autoSave',
34
+ 'editor.fontSize',
35
+ 'editor.fontFamily',
36
+ 'editor.tabSize',
37
+ 'editor.renderWhitespace',
38
+ 'editor.cursorStyle',
39
+ 'editor.multiCursorModifier',
40
+ 'editor.insertSpaces',
41
+ 'editor.wordWrap',
42
+ 'files.exclude',
43
+ 'files.associations'
44
+ ]
45
+ };
46
+
47
+ export const DEFAULT_LAYOUT: PreferenceLayout[] = [
48
+ {
49
+ id: 'editor',
50
+ label: nls.localizeByDefault('Text Editor'),
51
+ settings: ['editor.*'],
52
+ children: [
53
+ {
54
+ id: 'editor.cursor',
55
+ label: nls.localizeByDefault('Cursor'),
56
+ settings: ['editor.cursor*']
57
+ },
58
+ {
59
+ id: 'editor.find',
60
+ label: nls.localizeByDefault('Find'),
61
+ settings: ['editor.find.*']
62
+ },
63
+ {
64
+ id: 'editor.font',
65
+ label: nls.localizeByDefault('Font'),
66
+ settings: ['editor.font*']
67
+ },
68
+ {
69
+ id: 'editor.format',
70
+ label: nls.localizeByDefault('Formatting'),
71
+ settings: ['editor.format*']
72
+ },
73
+ {
74
+ id: 'editor.diffEditor',
75
+ label: nls.localizeByDefault('Diff Editor'),
76
+ settings: ['diffEditor.*']
77
+ },
78
+ {
79
+ id: 'editor.multiDiffEditor',
80
+ label: nls.localizeByDefault('Multi-File Diff Editor'),
81
+ settings: ['multiDiffEditor.*']
82
+ },
83
+ {
84
+ id: 'editor.minimap',
85
+ label: nls.localizeByDefault('Minimap'),
86
+ settings: ['editor.minimap.*']
87
+ },
88
+ {
89
+ id: 'editor.suggestions',
90
+ label: nls.localizeByDefault('Suggestions'),
91
+ settings: ['editor.*suggest*']
92
+ },
93
+ {
94
+ id: 'editor.files',
95
+ label: nls.localizeByDefault('Files'),
96
+ settings: ['files.*']
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ id: 'workbench',
102
+ label: nls.localizeByDefault('Workbench'),
103
+ settings: ['workbench.*', 'workspace.*'],
104
+ children: [
105
+ {
106
+ id: 'workbench.appearance',
107
+ label: nls.localizeByDefault('Appearance'),
108
+ settings: [
109
+ 'workbench.activityBar.*', 'workbench.*color*', 'workbench.fontAliasing', 'workbench.iconTheme', 'workbench.sidebar.location',
110
+ 'workbench.*.visible', 'workbench.tips.enabled', 'workbench.tree.*', 'workbench.view.*'
111
+ ]
112
+ },
113
+ {
114
+ id: 'workbench.breadcrumbs',
115
+ label: nls.localizeByDefault('Breadcrumbs'),
116
+ settings: ['breadcrumbs.*']
117
+ },
118
+ {
119
+ id: 'workbench.editor',
120
+ label: nls.localizeByDefault('Editor Management'),
121
+ settings: ['workbench.editor.*']
122
+ },
123
+ {
124
+ id: 'workbench.settings',
125
+ label: nls.localizeByDefault('Settings Editor'),
126
+ settings: ['workbench.settings.*']
127
+ },
128
+ {
129
+ id: 'workbench.zenmode',
130
+ label: nls.localizeByDefault('Zen Mode'),
131
+ settings: ['zenmode.*']
132
+ },
133
+ {
134
+ id: 'workbench.screencastmode',
135
+ label: nls.localizeByDefault('Screencast Mode'),
136
+ settings: ['screencastMode.*']
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ id: 'window',
142
+ label: nls.localizeByDefault('Window'),
143
+ settings: ['window.*'],
144
+ children: [
145
+ {
146
+ id: 'window.newWindow',
147
+ label: nls.localizeByDefault('New Window'),
148
+ settings: ['window.*newwindow*']
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ id: 'features',
154
+ label: nls.localizeByDefault('Features'),
155
+ children: [
156
+ {
157
+ id: 'features.accessibilitySignals',
158
+ label: nls.localizeByDefault('Accessibility Signals'),
159
+ settings: ['accessibility.signal*']
160
+ },
161
+ {
162
+ id: 'features.accessibility',
163
+ label: nls.localizeByDefault('Accessibility'),
164
+ settings: ['accessibility.*']
165
+ },
166
+ {
167
+ id: 'features.explorer',
168
+ label: nls.localizeByDefault('Explorer'),
169
+ settings: ['explorer.*', 'outline.*']
170
+ },
171
+ {
172
+ id: 'features.search',
173
+ label: nls.localizeByDefault('Search'),
174
+ settings: ['search.*']
175
+ },
176
+ {
177
+ id: 'features.debug',
178
+ label: nls.localizeByDefault('Debug'),
179
+ settings: ['debug.*', 'launch']
180
+ },
181
+ {
182
+ id: 'features.testing',
183
+ label: nls.localizeByDefault('Testing'),
184
+ settings: ['testing.*']
185
+ },
186
+ {
187
+ id: 'features.scm',
188
+ label: nls.localizeByDefault('Source Control'),
189
+ settings: ['scm.*']
190
+ },
191
+ {
192
+ id: 'features.extensions',
193
+ label: nls.localizeByDefault('Extensions'),
194
+ settings: ['extensions.*']
195
+ },
196
+ {
197
+ id: 'features.terminal',
198
+ label: nls.localizeByDefault('Terminal'),
199
+ settings: ['terminal.*']
200
+ },
201
+ {
202
+ id: 'features.task',
203
+ label: nls.localizeByDefault('Task'),
204
+ settings: ['task.*']
205
+ },
206
+ {
207
+ id: 'features.problems',
208
+ label: nls.localizeByDefault('Problems'),
209
+ settings: ['problems.*']
210
+ },
211
+ {
212
+ id: 'features.output',
213
+ label: nls.localizeByDefault('Output'),
214
+ settings: ['output.*']
215
+ },
216
+ {
217
+ id: 'features.comments',
218
+ label: nls.localizeByDefault('Comments'),
219
+ settings: ['comments.*']
220
+ },
221
+ {
222
+ id: 'features.remote',
223
+ label: nls.localizeByDefault('Remote'),
224
+ settings: ['remote.*']
225
+ },
226
+ {
227
+ id: 'features.timeline',
228
+ label: nls.localizeByDefault('Timeline'),
229
+ settings: ['timeline.*']
230
+ },
231
+ {
232
+ id: 'features.toolbar',
233
+ label: nls.localize('theia/preferences/toolbar', 'Toolbar'),
234
+ settings: ['toolbar.*']
235
+ },
236
+ {
237
+ id: 'features.notebook',
238
+ label: nls.localizeByDefault('Notebook'),
239
+ settings: ['notebook.*', 'interactiveWindow.*']
240
+ },
241
+ {
242
+ id: 'features.mergeEditor',
243
+ label: nls.localizeByDefault('Merge Editor'),
244
+ settings: ['mergeEditor.*']
245
+ },
246
+ {
247
+ id: 'features.chat',
248
+ label: nls.localizeByDefault('Chat'),
249
+ settings: ['chat.*', 'inlineChat.*']
250
+ }
251
+ ]
252
+ },
253
+ {
254
+ id: 'application',
255
+ label: nls.localizeByDefault('Application'),
256
+ children: [
257
+ {
258
+ id: 'application.http',
259
+ label: nls.localizeByDefault('HTTP'),
260
+ settings: ['http.*']
261
+ },
262
+ {
263
+ id: 'application.keyboard',
264
+ label: nls.localizeByDefault('Keyboard'),
265
+ settings: ['keyboard.*']
266
+ },
267
+ {
268
+ id: 'application.update',
269
+ label: nls.localizeByDefault('Update'),
270
+ settings: ['update.*']
271
+ },
272
+ {
273
+ id: 'application.telemetry',
274
+ label: nls.localizeByDefault('Telemetry'),
275
+ settings: ['telemetry.*']
276
+ },
277
+ {
278
+ id: 'application.settingsSync',
279
+ label: nls.localizeByDefault('Settings Sync'),
280
+ settings: ['settingsSync.*']
281
+ },
282
+ {
283
+ id: 'application.experimental',
284
+ label: nls.localizeByDefault('Experimental'),
285
+ settings: ['application.experimental.*']
286
+ },
287
+ {
288
+ id: 'application.other',
289
+ label: nls.localizeByDefault('Other'),
290
+ settings: ['application.*']
291
+ }
292
+ ]
293
+ },
294
+ {
295
+ id: 'security',
296
+ label: nls.localizeByDefault('Security'),
297
+ settings: ['security.*'],
298
+ children: [
299
+ {
300
+ id: 'security.workspace',
301
+ label: nls.localizeByDefault('Workspace'),
302
+ settings: ['security.workspace.*']
303
+ }
304
+ ]
305
+ },
306
+ {
307
+ id: 'extensions',
308
+ label: nls.localizeByDefault('Extensions'),
309
+ children: [
310
+ {
311
+ id: 'extensions.hosted-plugin',
312
+ label: nls.localize('theia/preferences/hostedPlugin', 'Hosted Plugin'),
313
+ settings: ['hosted-plugin.*']
314
+ }
315
+ ]
316
+ }
317
+ ];
318
+
319
+ @injectable()
320
+ export class PreferenceLayoutProvider {
321
+
322
+ getLayout(): PreferenceLayout[] {
323
+ return DEFAULT_LAYOUT;
324
+ }
325
+
326
+ getCommonlyUsedLayout(): PreferenceLayout {
327
+ return COMMONLY_USED_LAYOUT;
328
+ }
329
+
330
+ hasCategory(id: string): boolean {
331
+ return [...this.getLayout(), this.getCommonlyUsedLayout()].some(e => e.id === id);
332
+ }
333
+
334
+ getLayoutForPreference(preferenceId: string): PreferenceLayout | undefined {
335
+ const layout = this.getLayout();
336
+ for (const section of layout) {
337
+ const item = this.findItemInSection(section, preferenceId);
338
+ if (item) {
339
+ return item;
340
+ }
341
+ }
342
+ return undefined;
343
+ }
344
+
345
+ protected findItemInSection(section: PreferenceLayout, preferenceId: string): PreferenceLayout | undefined {
346
+ // First check whether any of its children match the preferenceId.
347
+ if (section.children) {
348
+ for (const child of section.children) {
349
+ const item = this.findItemInSection(child, preferenceId);
350
+ if (item) {
351
+ return item;
352
+ }
353
+ }
354
+ }
355
+ // Then check whether the section itself matches the preferenceId.
356
+ if (section.settings) {
357
+ for (const setting of section.settings) {
358
+ if (this.matchesSetting(preferenceId, setting)) {
359
+ return section;
360
+ }
361
+ }
362
+ }
363
+ return undefined;
364
+ }
365
+
366
+ protected matchesSetting(preferenceId: string, setting: string): boolean {
367
+ if (setting.includes('*')) {
368
+ return this.createRegExp(setting).test(preferenceId);
369
+ }
370
+ return preferenceId === setting;
371
+ }
372
+
373
+ protected createRegExp(setting: string): RegExp {
374
+ return new RegExp(`^${setting.replace(/\./g, '\\.').replace(/\*/g, '.*')}$`);
375
+ }
376
+
377
+ }