@jupyterlab/settingeditor 3.3.0-alpha.17 → 3.3.0-alpha.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.
@@ -7,7 +7,7 @@ import { Message } from '@lumino/messaging';
7
7
  import { ISignal } from '@lumino/signaling';
8
8
  import { Widget } from '@lumino/widgets';
9
9
  import { RawEditor } from './raweditor';
10
- import { SettingEditor } from './settingeditor';
10
+ import { JsonSettingEditor } from './jsonsettingeditor';
11
11
  /**
12
12
  * An individual plugin settings editor.
13
13
  */
@@ -34,8 +34,8 @@ export declare class PluginEditor extends Widget {
34
34
  /**
35
35
  * The plugin editor layout state.
36
36
  */
37
- get state(): SettingEditor.IPluginLayout;
38
- set state(state: SettingEditor.IPluginLayout);
37
+ get state(): JsonSettingEditor.IPluginLayout;
38
+ set state(state: JsonSettingEditor.IPluginLayout);
39
39
  /**
40
40
  * A signal that emits when editor layout state changes and needs to be saved.
41
41
  */
@@ -2,7 +2,7 @@
2
2
  | Copyright (c) Jupyter Development Team.
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
- import { Dialog, showDialog } from '@jupyterlab/apputils';
5
+ import { Dialog, showDialog, showErrorMessage } from '@jupyterlab/apputils';
6
6
  import { nullTranslator } from '@jupyterlab/translation';
7
7
  import { JSONExt } from '@lumino/coreutils';
8
8
  import { Signal } from '@lumino/signaling';
@@ -155,11 +155,7 @@ var Private;
155
155
  translator = translator || nullTranslator;
156
156
  const trans = translator.load('jupyterlab');
157
157
  console.error(`Saving setting editor value failed: ${reason.message}`);
158
- void showDialog({
159
- title: trans.__('Your changes were not saved.'),
160
- body: reason.message,
161
- buttons: [Dialog.okButton({ label: trans.__('Ok') })]
162
- });
158
+ void showErrorMessage(trans.__('Your changes were not saved.'), reason);
163
159
  }
164
160
  Private.onSaveError = onSaveError;
165
161
  })(Private || (Private = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"plugineditor.js","sourceRoot":"","sources":["../src/plugineditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugineditor.js","sourceRoot":"","sources":["../src/plugineditor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { ReactWidget } from '@jupyterlab/apputils';
1
3
  import { ISettingRegistry } from '@jupyterlab/settingregistry';
2
4
  import { ITranslator } from '@jupyterlab/translation';
3
5
  import { Message } from '@lumino/messaging';
4
6
  import { ISignal } from '@lumino/signaling';
5
- import { Widget } from '@lumino/widgets';
6
7
  /**
7
8
  * A list of plugins with editable settings.
8
9
  */
9
- export declare class PluginList extends Widget {
10
+ export declare class PluginList extends ReactWidget {
10
11
  /**
11
12
  * Create a new plugin list.
12
13
  */
@@ -23,30 +24,16 @@ export declare class PluginList extends Widget {
23
24
  * The selection value of the plugin list.
24
25
  */
25
26
  get scrollTop(): number | undefined;
27
+ get hasErrors(): boolean;
26
28
  /**
27
29
  * The selection value of the plugin list.
28
30
  */
29
31
  get selection(): string;
30
32
  set selection(selection: string);
31
- /**
32
- * Handle the DOM events for the widget.
33
- *
34
- * @param event - The DOM event sent to the widget.
35
- *
36
- * #### Notes
37
- * This method implements the DOM `EventListener` interface and is
38
- * called in response to events on the plugin list's node. It should
39
- * not be called directly by user code.
40
- */
41
- handleEvent(event: Event): void;
42
- /**
43
- * Handle `'after-attach'` messages.
44
- */
45
- protected onAfterAttach(msg: Message): void;
46
- /**
47
- * Handle `before-detach` messages for the widget.
48
- */
49
- protected onBeforeDetach(msg: Message): void;
33
+ get filter(): (item: ISettingRegistry.IPlugin) => boolean;
34
+ set filter(filter: (item: ISettingRegistry.IPlugin) => boolean);
35
+ protected updateModifiedPlugins(): Promise<void>;
36
+ get handleSelectSignal(): ISignal<this, string>;
50
37
  /**
51
38
  * Handle `'update-request'` messages.
52
39
  */
@@ -57,9 +44,29 @@ export declare class PluginList extends Widget {
57
44
  * @param event - The DOM event sent to the widget
58
45
  */
59
46
  private _evtMousedown;
47
+ /**
48
+ * Check the plugin for a rendering hint's value.
49
+ *
50
+ * #### Notes
51
+ * The order of priority for overridden hints is as follows, from most
52
+ * important to least:
53
+ * 1. Data set by the end user in a settings file.
54
+ * 2. Data set by the plugin author as a schema default.
55
+ * 3. Data set by the plugin author as a top-level key of the schema.
56
+ */
57
+ getHint(key: string, registry: ISettingRegistry, plugin: ISettingRegistry.IPlugin): string;
58
+ setFilter(filter: (item: string) => boolean): void;
59
+ setError(id: string, error: boolean): void;
60
+ mapPlugins(plugin: ISettingRegistry.IPlugin): JSX.Element;
61
+ render(): JSX.Element;
60
62
  protected translator: ITranslator;
61
63
  private _changed;
62
- private _confirm;
64
+ private _errors;
65
+ private _filter;
66
+ private _handleSelectSignal;
67
+ private _modifiedPlugins;
68
+ private _allPlugins;
69
+ private _confirm?;
63
70
  private _scrollTop;
64
71
  private _selection;
65
72
  }
@@ -74,19 +81,27 @@ export declare namespace PluginList {
74
81
  /**
75
82
  * A function that allows for asynchronously confirming a selection.
76
83
  *
77
- * #### Notest
84
+ * #### Notes
78
85
  * If the promise returned by the function resolves, then the selection will
79
86
  * succeed and emit an event. If the promise rejects, the selection is not
80
87
  * made.
81
88
  */
82
- confirm: () => Promise<void>;
89
+ confirm?: (id: string) => Promise<void>;
83
90
  /**
84
91
  * The setting registry for the plugin list.
85
92
  */
86
93
  registry: ISettingRegistry;
94
+ /**
95
+ * List of plugins to skip
96
+ */
97
+ toSkip?: string[];
87
98
  /**
88
99
  * The setting registry for the plugin list.
89
100
  */
90
101
  translator?: ITranslator;
91
102
  }
103
+ /**
104
+ * Sort a list of plugins by title and ID.
105
+ */
106
+ function sortPlugins(registry: ISettingRegistry): ISettingRegistry.IPlugin[];
92
107
  }
package/lib/pluginlist.js CHANGED
@@ -2,22 +2,39 @@
2
2
  | Copyright (c) Jupyter Development Team.
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
+ import { FilterBox, ReactWidget } from '@jupyterlab/apputils';
5
6
  import { nullTranslator } from '@jupyterlab/translation';
6
7
  import { classes, LabIcon, settingsIcon } from '@jupyterlab/ui-components';
7
8
  import { Signal } from '@lumino/signaling';
8
- import { Widget } from '@lumino/widgets';
9
- import * as React from 'react';
10
- import * as ReactDOM from 'react-dom';
9
+ import React from 'react';
10
+ /**
11
+ * The JupyterLab plugin schema key for the setting editor
12
+ * icon class of a plugin.
13
+ */
14
+ const ICON_KEY = 'jupyter.lab.setting-icon';
15
+ /**
16
+ * The JupyterLab plugin schema key for the setting editor
17
+ * icon class of a plugin.
18
+ */
19
+ const ICON_CLASS_KEY = 'jupyter.lab.setting-icon-class';
20
+ /**
21
+ * The JupyterLab plugin schema key for the setting editor
22
+ * icon label of a plugin.
23
+ */
24
+ const ICON_LABEL_KEY = 'jupyter.lab.setting-icon-label';
11
25
  /**
12
26
  * A list of plugins with editable settings.
13
27
  */
14
- export class PluginList extends Widget {
28
+ export class PluginList extends ReactWidget {
15
29
  /**
16
30
  * Create a new plugin list.
17
31
  */
18
32
  constructor(options) {
19
33
  super();
20
34
  this._changed = new Signal(this);
35
+ this._handleSelectSignal = new Signal(this);
36
+ this._modifiedPlugins = [];
37
+ this._allPlugins = [];
21
38
  this._scrollTop = 0;
22
39
  this._selection = '';
23
40
  this.registry = options.registry;
@@ -27,6 +44,29 @@ export class PluginList extends Widget {
27
44
  this.registry.pluginChanged.connect(() => {
28
45
  this.update();
29
46
  }, this);
47
+ this.mapPlugins = this.mapPlugins.bind(this);
48
+ this._filter = (item) => true;
49
+ this.setFilter = this.setFilter.bind(this);
50
+ this.setError = this.setError.bind(this);
51
+ this._evtMousedown = this._evtMousedown.bind(this);
52
+ this._allPlugins = PluginList.sortPlugins(this.registry).filter(plugin => {
53
+ var _a, _b;
54
+ const { schema } = plugin;
55
+ const deprecated = schema['jupyter.lab.setting-deprecated'] === true;
56
+ const editable = Object.keys(schema.properties || {}).length > 0;
57
+ const extensible = schema.additionalProperties !== false;
58
+ // Filters out a couple of plugins that take too long to load in the new settings editor.
59
+ const correctEditor =
60
+ // If this is the json settings editor, anything is fine
61
+ this._confirm ||
62
+ // If this is the new settings editor, remove context menu / main menu settings.
63
+ (!this._confirm && !((_a = options.toSkip) !== null && _a !== void 0 ? _a : []).includes(plugin.id));
64
+ return (!deprecated &&
65
+ correctEditor &&
66
+ (editable || extensible) && ((_b = this._filter) === null || _b === void 0 ? void 0 : _b.call(this, plugin)));
67
+ });
68
+ this._errors = {};
69
+ this.selection = this._allPlugins[0].id;
30
70
  }
31
71
  /**
32
72
  * A signal emitted when a list user interaction happens.
@@ -41,6 +81,14 @@ export class PluginList extends Widget {
41
81
  var _a;
42
82
  return (_a = this.node.querySelector('ul')) === null || _a === void 0 ? void 0 : _a.scrollTop;
43
83
  }
84
+ get hasErrors() {
85
+ for (const id in this._errors) {
86
+ if (this._errors[id]) {
87
+ return true;
88
+ }
89
+ }
90
+ return false;
91
+ }
44
92
  /**
45
93
  * The selection value of the plugin list.
46
94
  */
@@ -48,56 +96,49 @@ export class PluginList extends Widget {
48
96
  return this._selection;
49
97
  }
50
98
  set selection(selection) {
51
- if (this._selection === selection) {
52
- return;
53
- }
54
99
  this._selection = selection;
55
100
  this.update();
56
101
  }
57
- /**
58
- * Handle the DOM events for the widget.
59
- *
60
- * @param event - The DOM event sent to the widget.
61
- *
62
- * #### Notes
63
- * This method implements the DOM `EventListener` interface and is
64
- * called in response to events on the plugin list's node. It should
65
- * not be called directly by user code.
66
- */
67
- handleEvent(event) {
68
- switch (event.type) {
69
- case 'mousedown':
70
- this._evtMousedown(event);
71
- break;
72
- default:
73
- break;
74
- }
102
+ get filter() {
103
+ return this._filter;
75
104
  }
76
- /**
77
- * Handle `'after-attach'` messages.
78
- */
79
- onAfterAttach(msg) {
80
- this.node.addEventListener('mousedown', this);
81
- this.update();
105
+ set filter(filter) {
106
+ this._filter = filter;
82
107
  }
83
- /**
84
- * Handle `before-detach` messages for the widget.
85
- */
86
- onBeforeDetach(msg) {
87
- this.node.removeEventListener('mousedown', this);
108
+ async updateModifiedPlugins() {
109
+ const modifiedPlugins = [];
110
+ for (const plugin of this._allPlugins) {
111
+ const settings = (await this.registry.load(plugin.id));
112
+ if (settings.isModified) {
113
+ modifiedPlugins.push(plugin);
114
+ }
115
+ }
116
+ if (this._modifiedPlugins.length !== modifiedPlugins.length) {
117
+ this._modifiedPlugins = modifiedPlugins;
118
+ this.update();
119
+ return;
120
+ }
121
+ for (const plugin of modifiedPlugins) {
122
+ if (!this._modifiedPlugins.find(p => p.id === plugin.id)) {
123
+ this._modifiedPlugins = modifiedPlugins;
124
+ this.update();
125
+ return;
126
+ }
127
+ }
128
+ }
129
+ get handleSelectSignal() {
130
+ return this._handleSelectSignal;
88
131
  }
89
132
  /**
90
133
  * Handle `'update-request'` messages.
91
134
  */
92
135
  onUpdateRequest(msg) {
93
- const { node, registry } = this;
94
- const selection = this._selection;
95
- const translation = this.translator;
96
- Private.populateList(registry, selection, node, translation);
97
- const ul = node.querySelector('ul');
136
+ void this.updateModifiedPlugins();
137
+ const ul = this.node.querySelector('ul');
98
138
  if (ul && this._scrollTop !== undefined) {
99
139
  ul.scrollTop = this._scrollTop;
100
140
  }
141
+ super.onUpdateRequest(msg);
101
142
  }
102
143
  /**
103
144
  * Handle the `'mousedown'` event for the plugin list.
@@ -105,53 +146,30 @@ export class PluginList extends Widget {
105
146
  * @param event - The DOM event sent to the widget
106
147
  */
107
148
  _evtMousedown(event) {
108
- event.preventDefault();
109
- let target = event.target;
110
- let id = target.getAttribute('data-id');
111
- if (id === this._selection) {
112
- return;
113
- }
114
- if (!id) {
115
- while (!id && target !== this.node) {
116
- target = target.parentElement;
117
- id = target.getAttribute('data-id');
118
- }
119
- }
149
+ const target = event.currentTarget;
150
+ const id = target.getAttribute('data-id');
120
151
  if (!id) {
121
152
  return;
122
153
  }
123
- this._confirm()
124
- .then(() => {
154
+ if (this._confirm) {
155
+ this._confirm(id)
156
+ .then(() => {
157
+ this.selection = id;
158
+ this._changed.emit(undefined);
159
+ this.update();
160
+ })
161
+ .catch(() => {
162
+ /* no op */
163
+ });
164
+ }
165
+ else {
125
166
  this._scrollTop = this.scrollTop;
126
167
  this._selection = id;
168
+ this._handleSelectSignal.emit(id);
127
169
  this._changed.emit(undefined);
128
170
  this.update();
129
- })
130
- .catch(() => {
131
- /* no op */
132
- });
171
+ }
133
172
  }
134
- }
135
- /**
136
- * A namespace for private module data.
137
- */
138
- var Private;
139
- (function (Private) {
140
- /**
141
- * The JupyterLab plugin schema key for the setting editor
142
- * icon class of a plugin.
143
- */
144
- const ICON_KEY = 'jupyter.lab.setting-icon';
145
- /**
146
- * The JupyterLab plugin schema key for the setting editor
147
- * icon class of a plugin.
148
- */
149
- const ICON_CLASS_KEY = 'jupyter.lab.setting-icon-class';
150
- /**
151
- * The JupyterLab plugin schema key for the setting editor
152
- * icon label of a plugin.
153
- */
154
- const ICON_LABEL_KEY = 'jupyter.lab.setting-icon-label';
155
173
  /**
156
174
  * Check the plugin for a rendering hint's value.
157
175
  *
@@ -162,7 +180,7 @@ var Private;
162
180
  * 2. Data set by the plugin author as a schema default.
163
181
  * 3. Data set by the plugin author as a top-level key of the schema.
164
182
  */
165
- function getHint(key, registry, plugin) {
183
+ getHint(key, registry, plugin) {
166
184
  // First, give priority to checking if the hint exists in the user data.
167
185
  let hint = plugin.data.user[key];
168
186
  // Second, check to see if the hint exists in composite data, which folds
@@ -181,39 +199,61 @@ var Private;
181
199
  }
182
200
  return typeof hint === 'string' ? hint : '';
183
201
  }
184
- /**
185
- * Populate the plugin list.
186
- */
187
- function populateList(registry, selection, node, translator) {
188
- translator = translator || nullTranslator;
189
- const trans = translator.load('jupyterlab');
190
- const plugins = sortPlugins(registry).filter(plugin => {
191
- const { schema } = plugin;
192
- const deprecated = schema['jupyter.lab.setting-deprecated'] === true;
193
- const editable = Object.keys(schema.properties || {}).length > 0;
194
- const extensible = schema.additionalProperties !== false;
195
- return !deprecated && (editable || extensible);
196
- });
197
- const items = plugins.map(plugin => {
198
- const { id, schema, version } = plugin;
199
- const title = typeof schema.title === 'string'
200
- ? trans._p('schema', schema.title)
201
- : id;
202
- const description = typeof schema.description === 'string'
203
- ? trans._p('schema', schema.description)
204
- : '';
205
- const itemTitle = `${description}\n${id}\n${version}`;
206
- const icon = getHint(ICON_KEY, registry, plugin);
207
- const iconClass = getHint(ICON_CLASS_KEY, registry, plugin);
208
- const iconTitle = getHint(ICON_LABEL_KEY, registry, plugin);
209
- return (React.createElement("li", { className: id === selection ? 'jp-mod-selected' : '', "data-id": id, key: id, title: itemTitle },
210
- React.createElement(LabIcon.resolveReact, { icon: icon || (iconClass ? undefined : settingsIcon), iconClass: classes(iconClass, 'jp-Icon'), title: iconTitle, tag: "span", stylesheet: "settingsEditor" }),
211
- React.createElement("span", null, title)));
212
- });
213
- ReactDOM.unmountComponentAtNode(node);
214
- ReactDOM.render(React.createElement("ul", null, items), node);
202
+ setFilter(filter) {
203
+ this._filter = (value) => {
204
+ var _a, _b;
205
+ return filter((_b = (_a = value.schema.title) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '');
206
+ };
207
+ this.update();
215
208
  }
216
- Private.populateList = populateList;
209
+ setError(id, error) {
210
+ if (this._errors[id] !== error) {
211
+ this._errors[id] = error;
212
+ this.update();
213
+ }
214
+ else {
215
+ this._errors[id] = error;
216
+ }
217
+ }
218
+ mapPlugins(plugin) {
219
+ const { id, schema, version } = plugin;
220
+ const trans = this.translator.load('jupyterlab');
221
+ const title = typeof schema.title === 'string' ? trans._p('schema', schema.title) : id;
222
+ const description = typeof schema.description === 'string'
223
+ ? trans._p('schema', schema.description)
224
+ : '';
225
+ const itemTitle = `${description}\n${id}\n${version}`;
226
+ const icon = this.getHint(ICON_KEY, this.registry, plugin);
227
+ const iconClass = this.getHint(ICON_CLASS_KEY, this.registry, plugin);
228
+ const iconTitle = this.getHint(ICON_LABEL_KEY, this.registry, plugin);
229
+ return (React.createElement("button", { onClick: this._evtMousedown, className: `${id === this.selection
230
+ ? 'jp-mod-selected jp-PluginList-entry'
231
+ : 'jp-PluginList-entry'} ${this._errors[id] ? 'jp-ErrorPlugin' : ''}`, "data-id": id, key: id, title: itemTitle },
232
+ id === this.selection || this._errors[id] ? (React.createElement("div", { className: "jp-SelectedIndicator" })) : null,
233
+ React.createElement(LabIcon.resolveReact, { icon: icon || (iconClass ? undefined : settingsIcon), iconClass: classes(iconClass, 'jp-Icon'), title: iconTitle, tag: "span", stylesheet: "settingsEditor" }),
234
+ React.createElement("span", null, title)));
235
+ }
236
+ render() {
237
+ const trans = this.translator.load('jupyterlab');
238
+ const modifiedItems = this._modifiedPlugins
239
+ .filter(this._filter)
240
+ .map(this.mapPlugins);
241
+ const otherItems = this._allPlugins
242
+ .filter(plugin => !this._modifiedPlugins.includes(plugin) && this._filter(plugin))
243
+ .map(this.mapPlugins);
244
+ return (React.createElement("div", { className: "jp-PluginList-wrapper" },
245
+ React.createElement(FilterBox, { updateFilter: this.setFilter, useFuzzyFilter: true, placeholder: trans.__('Search…'), forceRefresh: false }),
246
+ modifiedItems.length > 0 && (React.createElement("div", null,
247
+ React.createElement("h1", { className: "jp-PluginList-header" }, trans.__('Modified')),
248
+ React.createElement("ul", null, modifiedItems))),
249
+ React.createElement("h1", { className: "jp-PluginList-header" }, trans.__('Settings')),
250
+ React.createElement("ul", null, otherItems)));
251
+ }
252
+ }
253
+ /**
254
+ * A namespace for `PluginList` statics.
255
+ */
256
+ (function (PluginList) {
217
257
  /**
218
258
  * Sort a list of plugins by title and ID.
219
259
  */
@@ -224,5 +264,6 @@ var Private;
224
264
  return (a.schema.title || a.id).localeCompare(b.schema.title || b.id);
225
265
  });
226
266
  }
227
- })(Private || (Private = {}));
267
+ PluginList.sortPlugins = sortPlugins;
268
+ })(PluginList || (PluginList = {}));
228
269
  //# sourceMappingURL=pluginlist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pluginlist.js","sourceRoot":"","sources":["../src/pluginlist.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pluginlist.js","sourceRoot":"","sources":["../src/pluginlist.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { ILabStatus } from '@jupyterlab/application';
2
+ import { ISettingRegistry } from '@jupyterlab/settingregistry';
3
+ import { IStateDB } from '@jupyterlab/statedb';
4
+ import { ITranslator } from '@jupyterlab/translation';
5
+ import { IFormComponentRegistry } from '@jupyterlab/ui-components';
6
+ import { CommandRegistry } from '@lumino/commands';
7
+ import { Message } from '@lumino/messaging';
8
+ import { ISignal } from '@lumino/signaling';
9
+ import { SplitPanel } from '@lumino/widgets';
10
+ /**
11
+ * Form based interface for editing settings.
12
+ */
13
+ export declare class SettingsEditor extends SplitPanel {
14
+ constructor(options: SettingsEditor.IOptions);
15
+ /**
16
+ * A signal emitted on the start and end of a saving operation.
17
+ */
18
+ get saveStateChanged(): ISignal<this, SettingsEditor.SaveState>;
19
+ /**
20
+ * Set the dirty state status
21
+ *
22
+ * @param dirty New status
23
+ */
24
+ setDirtyState(dirty: boolean): void;
25
+ /**
26
+ * A message handler invoked on a `'close-request'` message.
27
+ *
28
+ * @param msg Widget message
29
+ */
30
+ protected onCloseRequest(msg: Message): void;
31
+ protected translator: ITranslator;
32
+ private _clearDirty;
33
+ private _status;
34
+ private _dirty;
35
+ private _list;
36
+ private _saveStateChange;
37
+ }
38
+ export declare namespace SettingsEditor {
39
+ /**
40
+ * Settings editor save state
41
+ */
42
+ type SaveState = 'started' | 'failed' | 'completed';
43
+ /**
44
+ * Settings editor options
45
+ */
46
+ interface IOptions {
47
+ /**
48
+ * Form component registry
49
+ */
50
+ editorRegistry: IFormComponentRegistry;
51
+ /**
52
+ * The state database key for the editor's state management.
53
+ */
54
+ key: string;
55
+ /**
56
+ * The setting registry the editor modifies.
57
+ */
58
+ registry: ISettingRegistry;
59
+ /**
60
+ * The state database used to store layout.
61
+ */
62
+ state: IStateDB;
63
+ /**
64
+ * Command registry used to open the JSON settings editor.
65
+ */
66
+ commands: CommandRegistry;
67
+ /**
68
+ * Application status
69
+ */
70
+ status: ILabStatus;
71
+ /**
72
+ * List of plugins to skip
73
+ */
74
+ toSkip?: string[];
75
+ /**
76
+ * The application language translator.
77
+ */
78
+ translator?: ITranslator;
79
+ }
80
+ }