@theia/editor 1.58.3 → 1.59.0-next.72

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.
@@ -1 +1 @@
1
- {"version":3,"file":"editor-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/editor-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8DAA8D,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAuB/D,wBAoDG"}
1
+ {"version":3,"file":"editor-frontend-module.d.ts","sourceRoot":"","sources":["../../src/browser/editor-frontend-module.ts"],"names":[],"mappings":"AAgBA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,8DAA8D,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAuB/D,wBAsDG"}
@@ -45,6 +45,7 @@ exports.default = new inversify_1.ContainerModule(bind => {
45
45
  bind(browser_1.WidgetFactory).toService(editor_widget_factory_1.EditorWidgetFactory);
46
46
  bind(editor_manager_1.EditorManager).toSelf().inSingletonScope();
47
47
  bind(browser_1.OpenHandler).toService(editor_manager_1.EditorManager);
48
+ (0, common_1.bindContributionProvider)(bind, editor_manager_1.EditorSelectionResolver);
48
49
  bind(editor_command_1.EditorCommandContribution).toSelf().inSingletonScope();
49
50
  bind(common_1.CommandContribution).toService(editor_command_1.EditorCommandContribution);
50
51
  bind(editor_menu_1.EditorMenuContribution).toSelf().inSingletonScope();
@@ -1 +1 @@
1
- {"version":3,"file":"editor-frontend-module.js","sourceRoot":"","sources":["../../src/browser/editor-frontend-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-frontend-module.js","sourceRoot":"","sources":["../../src/browser/editor-frontend-module.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import URI from '@theia/core/lib/common/uri';
2
- import { RecursivePartial, Emitter, Event, MaybePromise, CommandService } from '@theia/core/lib/common';
2
+ import { RecursivePartial, Emitter, Event, MaybePromise, CommandService, ContributionProvider, Disposable } from '@theia/core/lib/common';
3
3
  import { WidgetOpenerOptions, NavigatableWidgetOpenHandler, NavigatableWidgetOptions, PreferenceService } from '@theia/core/lib/browser';
4
4
  import { EditorWidget } from './editor-widget';
5
5
  import { Range, Position, Location, TextEditor } from './editor';
@@ -12,6 +12,11 @@ export interface EditorOpenerOptions extends WidgetOpenerOptions {
12
12
  preview?: boolean;
13
13
  counter?: number;
14
14
  }
15
+ export declare const EditorSelectionResolver: unique symbol;
16
+ export interface EditorSelectionResolver {
17
+ priority?: number;
18
+ resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
19
+ }
15
20
  export declare class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
16
21
  readonly id: string;
17
22
  readonly label: string;
@@ -28,7 +33,17 @@ export declare class EditorManager extends NavigatableWidgetOpenHandler<EditorWi
28
33
  readonly onCurrentEditorChanged: Event<EditorWidget | undefined>;
29
34
  protected readonly commands: CommandService;
30
35
  protected readonly preferenceService: PreferenceService;
36
+ protected readonly resolverContributions: ContributionProvider<EditorSelectionResolver>;
37
+ protected selectionResolvers: EditorSelectionResolver[];
31
38
  protected init(): void;
39
+ /**
40
+ * Registers a dynamic selection resolver.
41
+ * The resolver is added to the sorted list of selection resolvers and can later be disposed to remove it.
42
+ *
43
+ * @param resolver The selection resolver to register.
44
+ * @returns A Disposable that unregisters the resolver when disposed.
45
+ */
46
+ registerSelectionResolver(resolver: EditorSelectionResolver): Disposable;
32
47
  getByUri(uri: URI, options?: EditorOpenerOptions): Promise<EditorWidget | undefined>;
33
48
  getOrCreateByUri(uri: URI, options?: EditorOpenerOptions): Promise<EditorWidget>;
34
49
  protected tryGetPendingWidget(uri: URI, options?: EditorOpenerOptions): MaybePromise<EditorWidget> | undefined;
@@ -61,7 +76,8 @@ export declare class EditorManager extends NavigatableWidgetOpenHandler<EditorWi
61
76
  * To modify direction, pass options with `{widgetOptions: {mode: ...}}`
62
77
  */
63
78
  openToSide(uri: URI, options?: EditorOpenerOptions): Promise<EditorWidget>;
64
- protected revealSelection(widget: EditorWidget, input?: EditorOpenerOptions, uri?: URI): void;
79
+ protected revealSelection(widget: EditorWidget, input?: EditorOpenerOptions, uri?: URI): Promise<void>;
80
+ protected resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
65
81
  protected getSelection(widget: EditorWidget, selection: RecursivePartial<Range>): Range | Position | undefined;
66
82
  protected removeFromCounter(widget: EditorWidget): void;
67
83
  protected extractIdFromWidget(widget: EditorWidget): WidgetId;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-manager.d.ts","sourceRoot":"","sources":["../../src/browser/editor-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-manager.d.ts","sourceRoot":"","sources":["../../src/browser/editor-manager.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ActiveEditorAccess = exports.CurrentEditorAccess = exports.EditorAccess = exports.EditorManager = void 0;
18
+ exports.ActiveEditorAccess = exports.CurrentEditorAccess = exports.EditorAccess = exports.EditorManager = exports.EditorSelectionResolver = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("@theia/core/shared/inversify");
21
21
  const common_1 = require("@theia/core/lib/common");
@@ -23,6 +23,7 @@ const browser_1 = require("@theia/core/lib/browser");
23
23
  const editor_widget_1 = require("./editor-widget");
24
24
  const editor_1 = require("./editor");
25
25
  const editor_widget_factory_1 = require("./editor-widget-factory");
26
+ exports.EditorSelectionResolver = Symbol('EditorSelectionResolver');
26
27
  let EditorManager = class EditorManager extends browser_1.NavigatableWidgetOpenHandler {
27
28
  constructor() {
28
29
  super(...arguments);
@@ -39,10 +40,12 @@ let EditorManager = class EditorManager extends browser_1.NavigatableWidgetOpenH
39
40
  * Emit when the current editor is changed.
40
41
  */
41
42
  this.onCurrentEditorChanged = this.onCurrentEditorChangedEmitter.event;
43
+ this.selectionResolvers = [];
42
44
  this.recentlyVisibleIds = [];
43
45
  }
44
46
  init() {
45
47
  super.init();
48
+ this.selectionResolvers = common_1.Prioritizeable.prioritizeAllSync(this.resolverContributions.getContributions(), resolver => { var _a; return (_a = resolver.priority) !== null && _a !== void 0 ? _a : 0; }).map(p => p.value);
46
49
  this.shell.onDidChangeActiveWidget(() => this.updateActiveEditor());
47
50
  this.shell.onDidChangeCurrentWidget(() => this.updateCurrentEditor());
48
51
  this.shell.onDidDoubleClickMainArea(() => this.commands.executeCommand(browser_1.CommonCommands.NEW_UNTITLED_TEXT_FILE.id));
@@ -67,6 +70,25 @@ let EditorManager = class EditorManager extends browser_1.NavigatableWidgetOpenH
67
70
  }
68
71
  this.updateCurrentEditor();
69
72
  }
73
+ /**
74
+ * Registers a dynamic selection resolver.
75
+ * The resolver is added to the sorted list of selection resolvers and can later be disposed to remove it.
76
+ *
77
+ * @param resolver The selection resolver to register.
78
+ * @returns A Disposable that unregisters the resolver when disposed.
79
+ */
80
+ registerSelectionResolver(resolver) {
81
+ this.selectionResolvers.push(resolver);
82
+ this.selectionResolvers.sort((a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); });
83
+ return {
84
+ dispose: () => {
85
+ const index = this.selectionResolvers.indexOf(resolver);
86
+ if (index !== -1) {
87
+ this.selectionResolvers.splice(index, 1);
88
+ }
89
+ }
90
+ };
91
+ }
70
92
  getByUri(uri, options) {
71
93
  return this.getWidget(uri, options);
72
94
  }
@@ -75,29 +97,29 @@ let EditorManager = class EditorManager extends browser_1.NavigatableWidgetOpenH
75
97
  }
76
98
  tryGetPendingWidget(uri, options) {
77
99
  const editorPromise = super.tryGetPendingWidget(uri, options);
78
- if (editorPromise) {
79
- // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
80
- if (!(editorPromise instanceof browser_1.Widget)) {
81
- editorPromise.then(editor => this.revealSelection(editor, options, uri));
82
- }
83
- else {
84
- this.revealSelection(editorPromise, options, uri);
85
- }
100
+ if (!editorPromise) {
101
+ return editorPromise;
102
+ }
103
+ // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
104
+ if (!(editorPromise instanceof browser_1.Widget)) {
105
+ return editorPromise.then(editor => this.revealSelection(editor, options, uri)).then(() => editorPromise);
106
+ }
107
+ else {
108
+ return this.revealSelection(editorPromise, options, uri).then(() => editorPromise);
86
109
  }
87
- return editorPromise;
88
110
  }
89
111
  async getWidget(uri, options) {
90
112
  const editor = await super.getWidget(uri, options);
91
113
  if (editor) {
92
114
  // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
93
- this.revealSelection(editor, options, uri);
115
+ await this.revealSelection(editor, options, uri);
94
116
  }
95
117
  return editor;
96
118
  }
97
119
  async getOrCreateWidget(uri, options) {
98
120
  const editor = await super.getOrCreateWidget(uri, options);
99
121
  // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
100
- this.revealSelection(editor, options, uri);
122
+ await this.revealSelection(editor, options, uri);
101
123
  return editor;
102
124
  }
103
125
  get recentlyVisible() {
@@ -205,13 +227,17 @@ let EditorManager = class EditorManager extends browser_1.NavigatableWidgetOpenH
205
227
  const splitOptions = { widgetOptions: { mode: 'split-right' }, ...options, counter };
206
228
  return this.open(uri, splitOptions);
207
229
  }
208
- revealSelection(widget, input, uri) {
230
+ async revealSelection(widget, input, uri) {
209
231
  let inputSelection = input === null || input === void 0 ? void 0 : input.selection;
232
+ if (!inputSelection) {
233
+ inputSelection = await this.resolveSelection(widget, input !== null && input !== void 0 ? input : {}, uri);
234
+ }
235
+ // this logic could be moved into a 'EditorSelectionResolver'
210
236
  if (!inputSelection && uri) {
237
+ // support file:///some/file.js#73,84
238
+ // support file:///some/file.js#L73
211
239
  const match = /^L?(\d+)(?:,(\d+))?/.exec(uri.fragment);
212
240
  if (match) {
213
- // support file:///some/file.js#73,84
214
- // support file:///some/file.js#L73
215
241
  inputSelection = {
216
242
  start: {
217
243
  line: parseInt(match[1]) - 1,
@@ -221,22 +247,36 @@ let EditorManager = class EditorManager extends browser_1.NavigatableWidgetOpenH
221
247
  }
222
248
  }
223
249
  if (inputSelection) {
224
- const editor = widget.editor;
225
250
  const selection = this.getSelection(widget, inputSelection);
251
+ const editor = widget.editor;
226
252
  if (editor_1.Position.is(selection)) {
227
253
  editor.cursor = selection;
228
254
  editor.revealPosition(selection);
229
255
  }
230
256
  else if (editor_1.Range.is(selection)) {
231
257
  editor.cursor = selection.end;
232
- editor.selection = {
233
- ...selection,
234
- direction: 'ltr'
235
- };
258
+ editor.selection = { ...selection, direction: 'ltr' };
236
259
  editor.revealRange(selection);
237
260
  }
238
261
  }
239
262
  }
263
+ async resolveSelection(widget, options, uri) {
264
+ if (options.selection) {
265
+ return options.selection;
266
+ }
267
+ for (const resolver of this.selectionResolvers) {
268
+ try {
269
+ const selection = await resolver.resolveSelection(widget, options, uri);
270
+ if (selection) {
271
+ return selection;
272
+ }
273
+ }
274
+ catch (error) {
275
+ console.error(error);
276
+ }
277
+ }
278
+ return undefined;
279
+ }
240
280
  getSelection(widget, selection) {
241
281
  const { start, end } = selection;
242
282
  if (editor_1.Position.is(start)) {
@@ -326,6 +366,11 @@ tslib_1.__decorate([
326
366
  (0, inversify_1.inject)(browser_1.PreferenceService),
327
367
  tslib_1.__metadata("design:type", Object)
328
368
  ], EditorManager.prototype, "preferenceService", void 0);
369
+ tslib_1.__decorate([
370
+ (0, inversify_1.inject)(common_1.ContributionProvider),
371
+ (0, inversify_1.named)(exports.EditorSelectionResolver),
372
+ tslib_1.__metadata("design:type", Object)
373
+ ], EditorManager.prototype, "resolverContributions", void 0);
329
374
  tslib_1.__decorate([
330
375
  (0, inversify_1.postConstruct)(),
331
376
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"editor-manager.js","sourceRoot":"","sources":["../../src/browser/editor-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor-manager.js","sourceRoot":"","sources":["../../src/browser/editor-manager.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,4DAAwF;AAExF,mDAA+J;AAC/J,qDAEiC;AACjC,mDAA+C;AAC/C,qCAAiE;AACjE,mEAA8D;AAajD,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAOlE,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,sCAA0C;IAAtE;;QAEM,OAAE,GAAG,2CAAmB,CAAC,EAAE,CAAC;QAE5B,UAAK,GAAG,YAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEnC,mBAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE3C,iCAA4B,GAAG,IAAI,gBAAO,EAA4B,CAAC;QAC1F;;WAEG;QACM,0BAAqB,GAAoC,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC;QAEvF,kCAA6B,GAAG,IAAI,gBAAO,EAA4B,CAAC;QAC3F;;WAEG;QACM,2BAAsB,GAAoC,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC;QAOlG,uBAAkB,GAA8B,EAAE,CAAC;QAkG1C,uBAAkB,GAAa,EAAE,CAAC;IAmPzD,CAAC;IAlVsB,IAAI;QACnB,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,IAAI,CAAC,kBAAkB,GAAG,uBAAc,CAAC,iBAAiB,CACtD,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,EAC7C,QAAQ,CAAC,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,QAAQ,mCAAI,CAAC,CAAA,EAAA,CACrC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,GAAG,EAAE,CACrC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAc,CAAC,sBAAsB,CAAC,EAAE,CAAC,CACzE,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACpB,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE;gBAC9B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACnB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;gBACzB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAC/B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACI,yBAAyB,CAAC,QAAiC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,CAAC,CAAC,QAAQ,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,QAAQ,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;QAC9E,OAAO;YACH,OAAO,EAAE,GAAG,EAAE;gBACV,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC;YACL,CAAC;SACJ,CAAC;IACN,CAAC;IAEQ,QAAQ,CAAC,GAAQ,EAAE,OAA6B;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAEQ,gBAAgB,CAAC,GAAQ,EAAE,OAA6B;QAC7D,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEkB,mBAAmB,CAAC,GAAQ,EAAE,OAA6B;QAC1E,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,aAAa,CAAC;QACzB,CAAC;QAED,+GAA+G;QAC/G,IAAI,CAAC,CAAC,aAAa,YAAY,gBAAM,CAAC,EAAE,CAAC;YACrC,OAAO,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;QAC9G,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;QACvF,CAAC;IAEL,CAAC;IAEkB,KAAK,CAAC,SAAS,CAAC,GAAQ,EAAE,OAA6B;QACtE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,MAAM,EAAE,CAAC;YACT,+GAA+G;YAC/G,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEkB,KAAK,CAAC,iBAAiB,CAAC,GAAQ,EAAE,OAA6B;QAC9E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3D,+GAA+G;QAC/G,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD,IAAc,eAAe;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,CAAC;IAC9D,CAAC;IACS,kBAAkB,CAAC,MAAoB;QAC7C,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IACS,qBAAqB,CAAC,MAAoB;QAChD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAGD;;;OAGG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACS,eAAe,CAAC,MAAgC;QACtD,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;YAC5B,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;IACS,kBAAkB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACvC,IAAI,MAAM,YAAY,4BAAY,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAGD;;;OAGG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IACS,gBAAgB,CAAC,OAAiC;QACxD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjE,CAAC;IACS,mBAAmB;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACxC,IAAI,MAAM,YAAY,4BAAY,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/G,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,SAAS,CAAC,GAAQ,EAAE,OAA6B;QAC7C,IAAI,IAAA,2BAAiB,EAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/D,OAAO,gCAAsB,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEQ,IAAI,CAAC,GAAQ,EAAE,OAA6B;;QACjD,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,SAAS,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC,CAAC;YAChF,0DAA0D;YAC1D,IAAI,MAAA,gBAAgB,CAAC,UAAU,CAAC,IAAI,0CAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,kDAAkD;YAClD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC3G,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAChC,IAAI,KAAK,CAAC,KAAK,YAAY,4BAAY,EAAE,CAAC;wBACtC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBAC1E,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;4BAChC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;wBACxD,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;YACD,uIAAuI;YACvI,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACxB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;YACL,CAAC;YACD,qBAAqB;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,GAAQ,EAAE,OAA6B;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAwB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;QAC1G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,eAAe,CAAC,MAAoB,EAAE,KAA2B,EAAE,GAAS;QACxF,IAAI,cAAc,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;QACtC,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,6DAA6D;QAC7D,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE,CAAC;YACzB,qCAAqC;YACrC,mCAAmC;YACnC,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,KAAK,EAAE,CAAC;gBACR,cAAc,GAAG;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;wBAC5B,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBACnD;iBACJ,CAAC;YACN,CAAC;QACL,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,IAAI,iBAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC1B,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,cAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;gBAC9B,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBACtD,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,MAAoB,EAAE,OAA4B,EAAE,GAAS;QAC1F,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBACxE,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,SAAS,CAAC;gBACrB,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAES,YAAY,CAAC,MAAoB,EAAE,SAAkC;QAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC;QACjC,IAAI,iBAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,iBAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACnJ,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjJ,OAAO;YACH,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE;SAClD,CAAC;IACN,CAAC;IAES,iBAAiB,CAAC,MAAoB;QAC5C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACtB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;oBACtD,GAAG,GAAG,WAAW,CAAC,EAAG,CAAC;gBAC1B,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IAES,mBAAmB,CAAC,MAAoB;QAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;IACvB,CAAC;IAES,qBAAqB,CAAC,MAAoB;;QAChD,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,QAAQ,CAAC;YACjE,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;IACL,CAAC;IAES,mBAAmB,CAAC,GAAQ;;QAClC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,MAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,gBAAgB,CAAC,GAAQ;;QAC/B,MAAM,gBAAgB,GAAG,2CAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,kCAAkC,GAAG,MAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,0CAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnJ,OAAO,kCAAkC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IACvH,CAAC;IAES,wBAAwB,CAAC,GAAQ;;QACvC,OAAO,MAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAEkB,mBAAmB,CAAC,GAAQ,EAAE,OAA6B;;QAC1E,MAAM,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnE,kBAAkB,CAAC,OAAO,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC;IAC9B,CAAC;CACJ,CAAA;AA9WY,sCAAa;AAoBqB;IAA1C,IAAA,kBAAM,EAAC,uBAAc,CAAC;;+CAA6C;AACtB;IAA7C,IAAA,kBAAM,EAAC,2BAAiB,CAAC;;wDAAyD;AAGhE;IADlB,IAAA,kBAAM,EAAC,6BAAoB,CAAC;IAAE,IAAA,iBAAK,EAAC,+BAAuB,CAAC;;4DAC2B;AAIrE;IADlB,IAAA,yBAAa,GAAE;;;;yCAmCf;wBA9DQ,aAAa;IADzB,IAAA,sBAAU,GAAE;GACA,aAAa,CA8WzB;AAED;;GAEG;AAEI,IAAe,YAAY,GAA3B,MAAe,YAAY;IAK9B;;OAEG;IACH,IAAI,GAAG;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;YAC/B,OAAO;gBACH,KAAK;gBACL,GAAG;aACN,CAAC;QACN,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,YAAY,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;CAOJ,CAAA;AA3DqB,oCAAY;AAGX;IADlB,IAAA,kBAAM,EAAC,aAAa,CAAC;sCACY,aAAa;mDAAC;uBAH9B,YAAY;IADjC,IAAA,sBAAU,GAAE;GACS,YAAY,CA2DjC;AAED;;GAEG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,YAAY;IAEvC,YAAY;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC5C,CAAC;CAEJ,CAAA;AANY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CAM/B;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,YAAY;IAEtC,YAAY;QAClB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;IAC3C,CAAC;CAEJ,CAAA;AANY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CAM9B;AAED,WAAiB,YAAY;IACZ,oBAAO,GAAG,uBAAuB,CAAC;IAClC,mBAAM,GAAG,sBAAsB,CAAC;AACjD,CAAC,EAHgB,YAAY,4BAAZ,YAAY,QAG5B"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@theia/editor",
3
- "version": "1.58.3",
3
+ "version": "1.59.0-next.72+f41d8efcd",
4
4
  "description": "Theia - Editor Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.58.3",
7
- "@theia/variable-resolver": "1.58.3",
6
+ "@theia/core": "1.59.0-next.72+f41d8efcd",
7
+ "@theia/variable-resolver": "1.59.0-next.72+f41d8efcd",
8
8
  "tslib": "^2.6.2"
9
9
  },
10
10
  "publishConfig": {
@@ -41,10 +41,10 @@
41
41
  "watch": "theiaext watch"
42
42
  },
43
43
  "devDependencies": {
44
- "@theia/ext-scripts": "1.58.3"
44
+ "@theia/ext-scripts": "1.58.0"
45
45
  },
46
46
  "nyc": {
47
47
  "extends": "../../configs/nyc.json"
48
48
  },
49
- "gitHead": "ca70c15332f91e0f61b12cd147b5ff8326e2e6d2"
49
+ "gitHead": "f41d8efcd4abb79167b74bf476eafc7857e97306"
50
50
  }
@@ -18,10 +18,10 @@ import '../../src/browser/style/index.css';
18
18
  import '../../src/browser/language-status/editor-language-status.css';
19
19
 
20
20
  import { ContainerModule } from '@theia/core/shared/inversify';
21
- import { CommandContribution, MenuContribution } from '@theia/core/lib/common';
21
+ import { bindContributionProvider, CommandContribution, MenuContribution } from '@theia/core/lib/common';
22
22
  import { OpenHandler, WidgetFactory, FrontendApplicationContribution, KeybindingContribution, WidgetStatusBarContribution } from '@theia/core/lib/browser';
23
23
  import { VariableContribution } from '@theia/variable-resolver/lib/browser';
24
- import { EditorManager, EditorAccess, ActiveEditorAccess, CurrentEditorAccess } from './editor-manager';
24
+ import { EditorManager, EditorAccess, ActiveEditorAccess, CurrentEditorAccess, EditorSelectionResolver } from './editor-manager';
25
25
  import { EditorContribution } from './editor-contribution';
26
26
  import { EditorMenuContribution } from './editor-menu';
27
27
  import { EditorCommandContribution } from './editor-command';
@@ -49,6 +49,8 @@ export default new ContainerModule(bind => {
49
49
  bind(EditorManager).toSelf().inSingletonScope();
50
50
  bind(OpenHandler).toService(EditorManager);
51
51
 
52
+ bindContributionProvider(bind, EditorSelectionResolver);
53
+
52
54
  bind(EditorCommandContribution).toSelf().inSingletonScope();
53
55
  bind(CommandContribution).toService(EditorCommandContribution);
54
56
 
@@ -14,12 +14,11 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { injectable, postConstruct, inject } from '@theia/core/shared/inversify';
17
+ import { injectable, postConstruct, inject, named } from '@theia/core/shared/inversify';
18
18
  import URI from '@theia/core/lib/common/uri';
19
- import { RecursivePartial, Emitter, Event, MaybePromise, CommandService, nls } from '@theia/core/lib/common';
19
+ import { RecursivePartial, Emitter, Event, MaybePromise, CommandService, nls, ContributionProvider, Prioritizeable, Disposable } from '@theia/core/lib/common';
20
20
  import {
21
- WidgetOpenerOptions, NavigatableWidgetOpenHandler, NavigatableWidgetOptions, Widget, PreferenceService, CommonCommands, getDefaultHandler,
22
- defaultHandlerPriority
21
+ WidgetOpenerOptions, NavigatableWidgetOpenHandler, NavigatableWidgetOptions, Widget, PreferenceService, CommonCommands, getDefaultHandler, defaultHandlerPriority
23
22
  } from '@theia/core/lib/browser';
24
23
  import { EditorWidget } from './editor-widget';
25
24
  import { Range, Position, Location, TextEditor } from './editor';
@@ -33,7 +32,13 @@ export interface WidgetId {
33
32
  export interface EditorOpenerOptions extends WidgetOpenerOptions {
34
33
  selection?: RecursivePartial<Range>;
35
34
  preview?: boolean;
36
- counter?: number
35
+ counter?: number;
36
+ }
37
+
38
+ export const EditorSelectionResolver = Symbol('EditorSelectionResolver');
39
+ export interface EditorSelectionResolver {
40
+ priority?: number;
41
+ resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined>;
37
42
  }
38
43
 
39
44
  @injectable()
@@ -60,9 +65,19 @@ export class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
60
65
  @inject(CommandService) protected readonly commands: CommandService;
61
66
  @inject(PreferenceService) protected readonly preferenceService: PreferenceService;
62
67
 
68
+ @inject(ContributionProvider) @named(EditorSelectionResolver)
69
+ protected readonly resolverContributions: ContributionProvider<EditorSelectionResolver>;
70
+ protected selectionResolvers: EditorSelectionResolver[] = [];
71
+
63
72
  @postConstruct()
64
73
  protected override init(): void {
65
74
  super.init();
75
+
76
+ this.selectionResolvers = Prioritizeable.prioritizeAllSync(
77
+ this.resolverContributions.getContributions(),
78
+ resolver => resolver.priority ?? 0
79
+ ).map(p => p.value);
80
+
66
81
  this.shell.onDidChangeActiveWidget(() => this.updateActiveEditor());
67
82
  this.shell.onDidChangeCurrentWidget(() => this.updateCurrentEditor());
68
83
  this.shell.onDidDoubleClickMainArea(() =>
@@ -91,6 +106,26 @@ export class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
91
106
  this.updateCurrentEditor();
92
107
  }
93
108
 
109
+ /**
110
+ * Registers a dynamic selection resolver.
111
+ * The resolver is added to the sorted list of selection resolvers and can later be disposed to remove it.
112
+ *
113
+ * @param resolver The selection resolver to register.
114
+ * @returns A Disposable that unregisters the resolver when disposed.
115
+ */
116
+ public registerSelectionResolver(resolver: EditorSelectionResolver): Disposable {
117
+ this.selectionResolvers.push(resolver);
118
+ this.selectionResolvers.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
119
+ return {
120
+ dispose: () => {
121
+ const index = this.selectionResolvers.indexOf(resolver);
122
+ if (index !== -1) {
123
+ this.selectionResolvers.splice(index, 1);
124
+ }
125
+ }
126
+ };
127
+ }
128
+
94
129
  override getByUri(uri: URI, options?: EditorOpenerOptions): Promise<EditorWidget | undefined> {
95
130
  return this.getWidget(uri, options);
96
131
  }
@@ -101,22 +136,24 @@ export class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
101
136
 
102
137
  protected override tryGetPendingWidget(uri: URI, options?: EditorOpenerOptions): MaybePromise<EditorWidget> | undefined {
103
138
  const editorPromise = super.tryGetPendingWidget(uri, options);
104
- if (editorPromise) {
105
- // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
106
- if (!(editorPromise instanceof Widget)) {
107
- editorPromise.then(editor => this.revealSelection(editor, options, uri));
108
- } else {
109
- this.revealSelection(editorPromise, options, uri);
110
- }
139
+ if (!editorPromise) {
140
+ return editorPromise;
111
141
  }
112
- return editorPromise;
142
+
143
+ // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
144
+ if (!(editorPromise instanceof Widget)) {
145
+ return editorPromise.then(editor => this.revealSelection(editor, options, uri)).then(() => editorPromise);
146
+ } else {
147
+ return this.revealSelection(editorPromise, options, uri).then(() => editorPromise);
148
+ }
149
+
113
150
  }
114
151
 
115
152
  protected override async getWidget(uri: URI, options?: EditorOpenerOptions): Promise<EditorWidget | undefined> {
116
153
  const editor = await super.getWidget(uri, options);
117
154
  if (editor) {
118
155
  // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
119
- this.revealSelection(editor, options, uri);
156
+ await this.revealSelection(editor, options, uri);
120
157
  }
121
158
  return editor;
122
159
  }
@@ -124,7 +161,7 @@ export class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
124
161
  protected override async getOrCreateWidget(uri: URI, options?: EditorOpenerOptions): Promise<EditorWidget> {
125
162
  const editor = await super.getOrCreateWidget(uri, options);
126
163
  // Reveal selection before attachment to manage nav stack. (https://github.com/eclipse-theia/theia/issues/8955)
127
- this.revealSelection(editor, options, uri);
164
+ await this.revealSelection(editor, options, uri);
128
165
  return editor;
129
166
  }
130
167
 
@@ -240,13 +277,17 @@ export class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
240
277
  return this.open(uri, splitOptions);
241
278
  }
242
279
 
243
- protected revealSelection(widget: EditorWidget, input?: EditorOpenerOptions, uri?: URI): void {
280
+ protected async revealSelection(widget: EditorWidget, input?: EditorOpenerOptions, uri?: URI): Promise<void> {
244
281
  let inputSelection = input?.selection;
282
+ if (!inputSelection) {
283
+ inputSelection = await this.resolveSelection(widget, input ?? {}, uri);
284
+ }
285
+ // this logic could be moved into a 'EditorSelectionResolver'
245
286
  if (!inputSelection && uri) {
287
+ // support file:///some/file.js#73,84
288
+ // support file:///some/file.js#L73
246
289
  const match = /^L?(\d+)(?:,(\d+))?/.exec(uri.fragment);
247
290
  if (match) {
248
- // support file:///some/file.js#73,84
249
- // support file:///some/file.js#L73
250
291
  inputSelection = {
251
292
  start: {
252
293
  line: parseInt(match[1]) - 1,
@@ -256,22 +297,36 @@ export class EditorManager extends NavigatableWidgetOpenHandler<EditorWidget> {
256
297
  }
257
298
  }
258
299
  if (inputSelection) {
259
- const editor = widget.editor;
260
300
  const selection = this.getSelection(widget, inputSelection);
301
+ const editor = widget.editor;
261
302
  if (Position.is(selection)) {
262
303
  editor.cursor = selection;
263
304
  editor.revealPosition(selection);
264
305
  } else if (Range.is(selection)) {
265
306
  editor.cursor = selection.end;
266
- editor.selection = {
267
- ...selection,
268
- direction: 'ltr'
269
- };
307
+ editor.selection = { ...selection, direction: 'ltr' };
270
308
  editor.revealRange(selection);
271
309
  }
272
310
  }
273
311
  }
274
312
 
313
+ protected async resolveSelection(widget: EditorWidget, options: EditorOpenerOptions, uri?: URI): Promise<RecursivePartial<Range> | undefined> {
314
+ if (options.selection) {
315
+ return options.selection;
316
+ }
317
+ for (const resolver of this.selectionResolvers) {
318
+ try {
319
+ const selection = await resolver.resolveSelection(widget, options, uri);
320
+ if (selection) {
321
+ return selection;
322
+ }
323
+ } catch (error) {
324
+ console.error(error);
325
+ }
326
+ }
327
+ return undefined;
328
+ }
329
+
275
330
  protected getSelection(widget: EditorWidget, selection: RecursivePartial<Range>): Range | Position | undefined {
276
331
  const { start, end } = selection;
277
332
  if (Position.is(start)) {