@opensumi/ide-outline 2.22.10 → 2.23.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.
@@ -26,7 +26,7 @@ const OutlineNode = ({ item, defaultLeftPadding = 8, leftPadding = 8, onClick, o
26
26
  }
27
27
  }
28
28
  };
29
- const paddingLeft = `${defaultLeftPadding + (item.depth || 0) * (leftPadding || 0) + (!outline_node_define_1.OutlineCompositeTreeNode.is(item) ? 16 : 0)}px`;
29
+ const paddingLeft = `${defaultLeftPadding + (item.depth || 0) * (leftPadding || 0) + (!outline_node_define_1.OutlineCompositeTreeNode.is(item) ? 12 : 0)}px`;
30
30
  const editorNodeStyle = {
31
31
  color: decoration ? decoration.color : '',
32
32
  height: exports.OUTLINE_TREE_NODE_HEIGHT,
@@ -1 +1 @@
1
- {"version":3,"file":"outline.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/outline.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,sBAAsB,EAAsB,MAAM,2BAA2B,CAAC;AAQvF,qBACa,mBAAoB,YAAW,sBAAsB,EAAE,yBAAyB,EAAE,mBAAmB;IAEhH,OAAO,CAAC,iBAAiB,CAAqB;IAG9C,OAAO,CAAC,kBAAkB,CAAqB;IAG/C,OAAO,CAAC,uBAAuB,CAAsB;IAGrD,UAAU,EAAE,kBAAkB,CAAC;IAE/B,WAAW;IAYX,gBAAgB,CAAC,QAAQ,EAAE,eAAe;IA6D1C,oBAAoB,CAAC,QAAQ,EAAE,eAAe;CAoC/C"}
1
+ {"version":3,"file":"outline.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/outline.contribution.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,sBAAsB,EAAsB,MAAM,2BAA2B,CAAC;AAQvF,qBACa,mBAAoB,YAAW,sBAAsB,EAAE,yBAAyB,EAAE,mBAAmB;IAEhH,OAAO,CAAC,iBAAiB,CAAqB;IAG9C,OAAO,CAAC,kBAAkB,CAAqB;IAG/C,OAAO,CAAC,uBAAuB,CAAsB;IAGrD,UAAU,EAAE,kBAAkB,CAAC;IAE/B,WAAW;IAYX,gBAAgB,CAAC,QAAQ,EAAE,eAAe;IA4D1C,oBAAoB,CAAC,QAAQ,EAAE,eAAe;CAoC/C"}
@@ -34,7 +34,6 @@ let OutlineContribution = class OutlineContribution {
34
34
  registry.registerCommand({
35
35
  id: ide_core_browser_1.OUTLINE_COMMANDS.OUTLINE_FOLLOW_CURSOR.id,
36
36
  iconClass: (0, ide_core_browser_2.getIcon)('follow-cursor'),
37
- toogleIconClass: (0, ide_core_browser_2.getIcon)('follow-cursor', { fill: true }),
38
37
  label: (0, ide_core_browser_1.localize)('outline.follow.cursor'),
39
38
  }, {
40
39
  execute: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"outline.contribution.js","sourceRoot":"","sources":["../../src/browser/outline.contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outline.contribution.js","sourceRoot":"","sources":["../../src/browser/outline.contribution.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,12 @@ export declare const OutlinePanel: ({ viewState }: React.PropsWithChildren<{
8
8
  }>) => JSX.Element;
9
9
  interface IOutlineTreeViewProps {
10
10
  height: number;
11
+ loading: boolean;
11
12
  model?: OutlineTreeModel;
12
13
  onDidTreeReady(handle: IRecycleTreeHandle): void;
13
14
  onItemClick(ev: MouseEvent, item: OutlineTreeNode | OutlineCompositeTreeNode, type: TreeNodeType): void;
14
15
  onTwistierClick(ev: MouseEvent, item: OutlineTreeNode | OutlineCompositeTreeNode): void;
15
16
  }
16
- export declare const OutlineTreeView: React.MemoExoticComponent<({ height, model, onItemClick, onTwistierClick, onDidTreeReady }: IOutlineTreeViewProps) => JSX.Element>;
17
+ export declare const OutlineTreeView: React.MemoExoticComponent<({ height, model, onItemClick, onTwistierClick, onDidTreeReady, loading }: IOutlineTreeViewProps) => JSX.Element>;
17
18
  export {};
18
19
  //# sourceMappingURL=outline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/browser/outline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAGjB,UAAU,EAKX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAe,kBAAkB,EAA0B,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKvD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,eAAO,MAAM,YAAY;eAAkD,SAAS;kBAsFnF,CAAC;AAEF,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,wBAAwB,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACxG,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,wBAAwB,GAAG,IAAI,CAAC;CACzF;AAED,eAAO,MAAM,eAAe,8FACwC,qBAAqB,iBAqCxF,CAAC"}
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../src/browser/outline.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EACZ,iBAAiB,EAGjB,UAAU,EAKX,MAAM,OAAO,CAAC;AAEf,OAAO,EAAe,kBAAkB,EAA0B,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAMvD,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,eAAO,MAAM,YAAY;eAAkD,SAAS;kBA2GnF,CAAC;AAEF,UAAU,qBAAqB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjD,WAAW,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,wBAAwB,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACxG,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,wBAAwB,GAAG,IAAI,CAAC;CACzF;AAED,eAAO,MAAM,eAAe,uGACiD,qBAAqB,iBAyCjG,CAAC"}
@@ -2,20 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OutlineTreeView = exports.OutlinePanel = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
5
6
  const react_1 = tslib_1.__importStar(require("react"));
6
7
  const ide_components_1 = require("@opensumi/ide-components");
7
8
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
+ const progress_bar_1 = require("@opensumi/ide-core-browser/lib/progress/progress-bar");
8
10
  const react_hooks_1 = require("@opensumi/ide-core-browser/lib/react-hooks");
9
11
  const outline_node_1 = require("./outline-node");
10
12
  const outline_module_less_1 = tslib_1.__importDefault(require("./outline.module.less"));
11
13
  const outline_model_service_1 = require("./services/outline-model.service");
12
14
  const OutlinePanel = ({ viewState }) => {
13
- const [model, setModel] = (0, react_1.useState)();
14
15
  const { height } = viewState;
15
16
  const wrapperRef = (0, react_1.createRef)();
16
17
  const outlineModelService = (0, react_hooks_1.useInjectable)(outline_model_service_1.OutlineModelService);
18
+ const [model, setModel] = (0, react_1.useState)(undefined);
17
19
  const handleTreeReady = (0, react_1.useCallback)((handle) => {
18
- outlineModelService.handleTreeHandler(Object.assign(Object.assign({}, handle), { getModel: () => outlineModelService.treeModel, hasDirectFocus: () => wrapperRef.current === document.activeElement }));
20
+ outlineModelService.handleTreeHandler(Object.assign(Object.assign({}, handle), { hasDirectFocus: () => wrapperRef.current === document.activeElement }));
19
21
  }, [outlineModelService, wrapperRef.current]);
20
22
  const handleItemClicked = (0, react_1.useCallback)((ev, item, type) => {
21
23
  // 阻止点击事件冒泡
@@ -61,16 +63,29 @@ const OutlinePanel = ({ viewState }) => {
61
63
  outlineModelService.handleTreeBlur();
62
64
  };
63
65
  }, [wrapperRef.current]);
66
+ const [loadingState, setLoadingState] = react_1.default.useState(false);
67
+ const loading = react_1.default.useMemo(() => loadingState, [loadingState]);
68
+ (0, react_1.useEffect)(() => {
69
+ const disposable1 = outlineModelService.onLoadingStateChange((0, debounce_1.default)((current) => {
70
+ setLoadingState((previous) => (previous !== current ? current : previous));
71
+ }, 16 * 5, {
72
+ leading: true,
73
+ }));
74
+ return () => {
75
+ disposable1.dispose();
76
+ };
77
+ }, [setLoadingState]);
64
78
  return (react_1.default.createElement("div", { className: outline_module_less_1.default.outline_container, tabIndex: -1, ref: wrapperRef, onClick: handleOuterClick },
65
- react_1.default.createElement(exports.OutlineTreeView, { height: height, model: model, onItemClick: handleItemClicked, onTwistierClick: handleTwistierClicked, onDidTreeReady: handleTreeReady })));
79
+ react_1.default.createElement(progress_bar_1.Progress, { loading: loading }),
80
+ react_1.default.createElement(exports.OutlineTreeView, { loading: loading, height: height, model: model, onItemClick: handleItemClicked, onTwistierClick: handleTwistierClicked, onDidTreeReady: handleTreeReady })));
66
81
  };
67
82
  exports.OutlinePanel = OutlinePanel;
68
- exports.OutlineTreeView = (0, react_1.memo)(({ height, model, onItemClick, onTwistierClick, onDidTreeReady }) => {
83
+ exports.OutlineTreeView = (0, react_1.memo)(({ height, model, onItemClick, onTwistierClick, onDidTreeReady, loading }) => {
69
84
  const outlineModelService = (0, react_hooks_1.useInjectable)(outline_model_service_1.OutlineModelService);
70
85
  const { decorationService, commandService } = outlineModelService;
71
86
  const renderTreeNode = (0, react_1.useCallback)((props) => (react_1.default.createElement(outline_node_1.OutlineNode, { item: props.item, itemType: props.itemType, decorationService: decorationService, commandService: commandService, decorations: outlineModelService.decorations.getDecorations(props.item), onClick: onItemClick, onTwistierClick: onTwistierClick, defaultLeftPadding: 8, leftPadding: 8 })), [model]);
72
87
  if (!model) {
73
- return react_1.default.createElement("span", { className: outline_module_less_1.default.outline_empty_text }, (0, ide_core_browser_1.localize)('outline.noinfo'));
88
+ return (react_1.default.createElement("span", { className: outline_module_less_1.default.outline_empty_text }, loading ? (0, ide_core_browser_1.localize)('common.loading') : (0, ide_core_browser_1.localize)('outline.nomodel')));
74
89
  }
75
90
  else {
76
91
  return (react_1.default.createElement(ide_components_1.RecycleTree, { height: height, itemHeight: outline_node_1.OUTLINE_TREE_NODE_HEIGHT, onReady: onDidTreeReady, model: model, placeholder: () => react_1.default.createElement("span", { className: outline_module_less_1.default.outline_empty_text }, (0, ide_core_browser_1.localize)('outline.noinfo')) }, renderTreeNode));
@@ -1 +1 @@
1
- {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/browser/outline.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outline.js","sourceRoot":"","sources":["../../src/browser/outline.tsx"],"names":[],"mappings":"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"}
@@ -2,20 +2,30 @@ import { WithEventBus, URI, Event } from '@opensumi/ide-core-browser';
2
2
  import { IResource, IEditorGroup } from '@opensumi/ide-editor';
3
3
  import { EditorActiveResourceStateChangedEvent, EditorSelectionChangeEvent } from '@opensumi/ide-editor/lib/browser';
4
4
  import { DocumentSymbolChangedEvent } from '@opensumi/ide-editor/lib/browser/breadcrumb/document-symbol';
5
+ import { ViewCollapseChangedEvent } from '@opensumi/ide-main-layout';
5
6
  export type OpenedEditorData = IEditorGroup | IResource;
6
7
  export interface OpenedEditorEvent {
7
8
  group: IEditorGroup;
8
9
  resource: IResource;
9
10
  }
10
11
  export declare class OutlineEventService extends WithEventBus {
11
- private _onDidChange;
12
+ private _onDidDocumentSymbolChange;
12
13
  private _onDidSelectionChange;
13
- private _onDidActiveChange;
14
+ private _onDidEditorActiveResourceStateChange;
15
+ private _onDidViewCollapseChange;
16
+ /**
17
+ * on did document symbol changed
18
+ */
14
19
  get onDidChange(): Event<URI | null>;
20
+ /**
21
+ * on did editor active resource state changed
22
+ */
15
23
  get onDidActiveChange(): Event<URI | null>;
16
24
  get onDidSelectionChange(): Event<URI | null>;
25
+ get onDidViewCollapseChange(): Event<boolean>;
17
26
  onEditorActiveResourceStateChangedEvent(e: EditorActiveResourceStateChangedEvent): void;
18
27
  onEditorSelectionChangeEvent(e: EditorSelectionChangeEvent): void;
19
28
  onDocumentSymbolChange(e: DocumentSymbolChangedEvent): void;
29
+ onViewCollapseChangedEvent(e: ViewCollapseChangedEvent): void;
20
30
  }
21
31
  //# sourceMappingURL=outline-event.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outline-event.service.d.ts","sourceRoot":"","sources":["../../../src/browser/services/outline-event.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAW,GAAG,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,qCAAqC,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AAEzG,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AACxD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,kBAAkB,CAAsC;IAEhE,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAEnC;IAED,IAAI,iBAAiB,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAEzC;IAED,IAAI,oBAAoB,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAE5C;IAGD,uCAAuC,CAAC,CAAC,EAAE,qCAAqC;IAKhF,4BAA4B,CAAC,CAAC,EAAE,0BAA0B;IAK1D,sBAAsB,CAAC,CAAC,EAAE,0BAA0B;CAGrD"}
1
+ {"version":3,"file":"outline-event.service.d.ts","sourceRoot":"","sources":["../../../src/browser/services/outline-event.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,YAAY,EAAW,GAAG,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,qCAAqC,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACrH,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AACzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,SAAS,CAAC;AACxD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,0BAA0B,CAAsC;IACxE,OAAO,CAAC,qBAAqB,CAAsC;IAEnE,OAAO,CAAC,qCAAqC,CAAsC;IACnF,OAAO,CAAC,wBAAwB,CAAmC;IAEnE;;OAEG;IACH,IAAI,WAAW,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAEnC;IACD;;OAEG;IACH,IAAI,iBAAiB,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAEzC;IAED,IAAI,oBAAoB,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAE5C;IACD,IAAI,uBAAuB,IAAI,KAAK,CAAC,OAAO,CAAC,CAE5C;IAGD,uCAAuC,CAAC,CAAC,EAAE,qCAAqC;IAKhF,4BAA4B,CAAC,CAAC,EAAE,0BAA0B;IAK1D,sBAAsB,CAAC,CAAC,EAAE,0BAA0B;IAKpD,0BAA0B,CAAC,CAAC,EAAE,wBAAwB;CAKvD"}
@@ -6,30 +6,47 @@ const di_1 = require("@opensumi/di");
6
6
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
7
  const browser_1 = require("@opensumi/ide-editor/lib/browser");
8
8
  const document_symbol_1 = require("@opensumi/ide-editor/lib/browser/breadcrumb/document-symbol");
9
+ const ide_main_layout_1 = require("@opensumi/ide-main-layout");
10
+ const index_1 = require("../../common/index");
9
11
  let OutlineEventService = class OutlineEventService extends ide_core_browser_1.WithEventBus {
10
12
  constructor() {
11
13
  super(...arguments);
12
- this._onDidChange = new ide_core_browser_1.Emitter();
14
+ this._onDidDocumentSymbolChange = new ide_core_browser_1.Emitter();
13
15
  this._onDidSelectionChange = new ide_core_browser_1.Emitter();
14
- this._onDidActiveChange = new ide_core_browser_1.Emitter();
16
+ this._onDidEditorActiveResourceStateChange = new ide_core_browser_1.Emitter();
17
+ this._onDidViewCollapseChange = new ide_core_browser_1.Emitter();
15
18
  }
19
+ /**
20
+ * on did document symbol changed
21
+ */
16
22
  get onDidChange() {
17
- return this._onDidChange.event;
23
+ return this._onDidDocumentSymbolChange.event;
18
24
  }
25
+ /**
26
+ * on did editor active resource state changed
27
+ */
19
28
  get onDidActiveChange() {
20
- return this._onDidActiveChange.event;
29
+ return this._onDidEditorActiveResourceStateChange.event;
21
30
  }
22
31
  get onDidSelectionChange() {
23
32
  return this._onDidSelectionChange.event;
24
33
  }
34
+ get onDidViewCollapseChange() {
35
+ return this._onDidViewCollapseChange.event;
36
+ }
25
37
  onEditorActiveResourceStateChangedEvent(e) {
26
- this._onDidActiveChange.fire(e.payload.editorUri);
38
+ this._onDidEditorActiveResourceStateChange.fire(e.payload.editorUri);
27
39
  }
28
40
  onEditorSelectionChangeEvent(e) {
29
41
  this._onDidSelectionChange.fire(e.payload.editorUri);
30
42
  }
31
43
  onDocumentSymbolChange(e) {
32
- this._onDidChange.fire(e.payload);
44
+ this._onDidDocumentSymbolChange.fire(e.payload);
45
+ }
46
+ onViewCollapseChangedEvent(e) {
47
+ if (e.payload.viewId === index_1.OUTLINE_VIEW_ID) {
48
+ this._onDidViewCollapseChange.fire(e.payload.collapsed);
49
+ }
33
50
  }
34
51
  };
35
52
  tslib_1.__decorate([
@@ -50,6 +67,12 @@ tslib_1.__decorate([
50
67
  tslib_1.__metadata("design:paramtypes", [document_symbol_1.DocumentSymbolChangedEvent]),
51
68
  tslib_1.__metadata("design:returntype", void 0)
52
69
  ], OutlineEventService.prototype, "onDocumentSymbolChange", null);
70
+ tslib_1.__decorate([
71
+ (0, ide_core_browser_1.OnEvent)(ide_main_layout_1.ViewCollapseChangedEvent),
72
+ tslib_1.__metadata("design:type", Function),
73
+ tslib_1.__metadata("design:paramtypes", [ide_main_layout_1.ViewCollapseChangedEvent]),
74
+ tslib_1.__metadata("design:returntype", void 0)
75
+ ], OutlineEventService.prototype, "onViewCollapseChangedEvent", null);
53
76
  OutlineEventService = tslib_1.__decorate([
54
77
  (0, di_1.Injectable)()
55
78
  ], OutlineEventService);
@@ -1 +1 @@
1
- {"version":3,"file":"outline-event.service.js","sourceRoot":"","sources":["../../../src/browser/services/outline-event.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,iEAAwF;AAExF,8DAAqH;AACrH,iGAAyG;AASlG,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,+BAAY;IAA9C;;QACG,iBAAY,GAAwB,IAAI,0BAAO,EAAE,CAAC;QAClD,0BAAqB,GAAwB,IAAI,0BAAO,EAAE,CAAC;QAC3D,uBAAkB,GAAwB,IAAI,0BAAO,EAAE,CAAC;IA4BlE,CAAC;IA1BC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;IACvC,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC1C,CAAC;IAGD,uCAAuC,CAAC,CAAwC;QAC9E,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC;IACrD,CAAC;IAGD,4BAA4B,CAAC,CAA6B;QACxD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAGD,sBAAsB,CAAC,CAA6B;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AAdC;IAAC,IAAA,0BAAO,EAAC,+CAAqC,CAAC;;6CACJ,+CAAqC;;kFAE/E;AAED;IAAC,IAAA,0BAAO,EAAC,oCAA0B,CAAC;;6CACJ,oCAA0B;;uEAEzD;AAED;IAAC,IAAA,0BAAO,EAAC,4CAA0B,CAAC;;6CACV,4CAA0B;;iEAEnD;AA9BU,mBAAmB;IAD/B,IAAA,eAAU,GAAE;GACA,mBAAmB,CA+B/B;AA/BY,kDAAmB"}
1
+ {"version":3,"file":"outline-event.service.js","sourceRoot":"","sources":["../../../src/browser/services/outline-event.service.ts"],"names":[],"mappings":";;;;AAAA,qCAA0C;AAC1C,iEAAwF;AAExF,8DAAqH;AACrH,iGAAyG;AACzG,+DAAqE;AAErE,8CAAqD;AAS9C,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,+BAAY;IAA9C;;QACG,+BAA0B,GAAwB,IAAI,0BAAO,EAAE,CAAC;QAChE,0BAAqB,GAAwB,IAAI,0BAAO,EAAE,CAAC;QAE3D,0CAAqC,GAAwB,IAAI,0BAAO,EAAE,CAAC;QAC3E,6BAAwB,GAAqB,IAAI,0BAAO,EAAE,CAAC;IA2CrE,CAAC;IAzCC;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD;;OAEG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,qCAAqC,CAAC,KAAK,CAAC;IAC1D,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;IAC1C,CAAC;IACD,IAAI,uBAAuB;QACzB,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC7C,CAAC;IAGD,uCAAuC,CAAC,CAAwC;QAC9E,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC;IACxE,CAAC;IAGD,4BAA4B,CAAC,CAA6B;QACxD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAGD,sBAAsB,CAAC,CAA6B;QAClD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAGD,0BAA0B,CAAC,CAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,uBAAe,EAAE;YACxC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SACzD;IACH,CAAC;CACF,CAAA;AArBC;IAAC,IAAA,0BAAO,EAAC,+CAAqC,CAAC;;6CACJ,+CAAqC;;kFAE/E;AAED;IAAC,IAAA,0BAAO,EAAC,oCAA0B,CAAC;;6CACJ,oCAA0B;;uEAEzD;AAED;IAAC,IAAA,0BAAO,EAAC,4CAA0B,CAAC;;6CACV,4CAA0B;;iEAEnD;AAED;IAAC,IAAA,0BAAO,EAAC,0CAAwB,CAAC;;6CACJ,0CAAwB;;qEAIrD;AA/CU,mBAAmB;IAD/B,IAAA,eAAU,GAAE;GACA,mBAAmB,CAgD/B;AAhDY,kDAAmB"}
@@ -12,6 +12,7 @@ export declare class OutlineModelService {
12
12
  private static DEFAULT_REFRESH_DELAY;
13
13
  private static DEFAULT_INIT_TREE_MODEL_DELAY;
14
14
  private readonly injector;
15
+ private readonly logger;
15
16
  private readonly outlineTreeService;
16
17
  private markerManager;
17
18
  decorationService: IOutlineDecorationService;
@@ -22,8 +23,8 @@ export declare class OutlineModelService {
22
23
  private readonly mainLayoutService;
23
24
  private _activeTreeModel;
24
25
  private _allTreeModels;
26
+ private _treeModelDisposeMap;
25
27
  private _whenInitTreeModelReady;
26
- private _whenActiveChangeDeferred;
27
28
  private _whenReady;
28
29
  private _decorations;
29
30
  private _outlineTreeHandle;
@@ -35,6 +36,7 @@ export declare class OutlineModelService {
35
36
  private _selectedNodes;
36
37
  private disposableCollection;
37
38
  private onDidRefreshedEmitter;
39
+ private onLoadingStateChangedEmitter;
38
40
  private onDidUpdateTreeModelEmitter;
39
41
  private _ignoreFollowCursorUpdateEventTimer;
40
42
  private initTreeModelDelayer;
@@ -44,14 +46,16 @@ export declare class OutlineModelService {
44
46
  get flushEventQueuePromise(): Promise<void> | null;
45
47
  get outlineTreeHandle(): IEditorTreeHandle;
46
48
  get decorations(): DecorationsManager;
47
- get treeModel(): OutlineTreeModel;
49
+ get treeModel(): OutlineTreeModel | undefined;
48
50
  get focusedNode(): OutlineCompositeTreeNode | OutlineTreeNode | undefined;
49
51
  get selectedNodes(): (OutlineCompositeTreeNode | OutlineTreeNode)[];
52
+ get onLoadingStateChange(): Event<boolean>;
50
53
  get onDidRefreshed(): Event<void>;
51
54
  get onDidUpdateTreeModel(): Event<OutlineTreeModel | undefined>;
52
- get whenActiveChangeReady(): Promise<void> | undefined;
53
55
  get whenInitTreeModelReady(): Promise<void>;
54
56
  get whenRefreshReady(): Promise<void> | undefined;
57
+ private setTreeModel;
58
+ private doInitTreeModelByCurrentUri;
55
59
  initTreeModelByCurrentUri(uri?: URI | null): Promise<void>;
56
60
  initTreeModel(): Promise<void>;
57
61
  initDecorations(root: any): DecorationsManager;
@@ -74,7 +78,7 @@ export declare class OutlineModelService {
74
78
  * 刷新指定下的所有子节点
75
79
  */
76
80
  refresh(): Promise<void>;
77
- flushEventQueue: () => Promise<any> | undefined;
81
+ flushEventQueue: () => Promise<null[]> | undefined;
78
82
  location: (node: OutlineTreeNode) => Promise<void>;
79
83
  collapseAll: () => Promise<void>;
80
84
  dispose(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"outline-model.service.d.ts","sourceRoot":"","sources":["../../../src/browser/services/outline-model.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outline-model.service.d.ts","sourceRoot":"","sources":["../../../src/browser/services/outline-model.service.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,8 @@ const outline_tree_service_1 = require("./outline-tree.service");
19
19
  const { Path } = ide_core_browser_1.path;
20
20
  let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
21
21
  constructor() {
22
- this._allTreeModels = new Map();
22
+ this._allTreeModels = new ide_core_browser_1.LRUMap(100, 80);
23
+ this._treeModelDisposeMap = new ide_core_browser_1.DisposableMap();
23
24
  this._changeEventDispatchQueue = [];
24
25
  // 装饰器
25
26
  this.selectedDecoration = new ide_components_1.Decoration(outline_node_module_less_1.default.mod_selected); // 选中态
@@ -28,6 +29,7 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
28
29
  this._selectedNodes = [];
29
30
  this.disposableCollection = new ide_core_browser_1.DisposableCollection();
30
31
  this.onDidRefreshedEmitter = new ide_core_browser_1.Emitter();
32
+ this.onLoadingStateChangedEmitter = new ide_core_browser_1.Emitter();
31
33
  this.onDidUpdateTreeModelEmitter = new ide_core_browser_1.Emitter();
32
34
  this._ignoreFollowCursorUpdateEventTimer = 0;
33
35
  // 清空所有节点选中态
@@ -142,7 +144,6 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
142
144
  }
143
145
  };
144
146
  this.flushEventQueue = () => {
145
- let promise;
146
147
  if (!this._changeEventDispatchQueue || this._changeEventDispatchQueue.length === 0) {
147
148
  return;
148
149
  }
@@ -160,9 +161,9 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
160
161
  roots.push(path);
161
162
  }
162
163
  }
163
- promise = (0, ide_core_browser_1.pSeries)(roots.map((path) => async () => {
164
- var _a;
165
- const watcher = (_a = this.treeModel.root) === null || _a === void 0 ? void 0 : _a.watchEvents.get(path);
164
+ const promise = (0, ide_core_browser_1.pSeries)(roots.map((path) => async () => {
165
+ var _a, _b;
166
+ const watcher = (_b = (_a = this.treeModel) === null || _a === void 0 ? void 0 : _a.root) === null || _b === void 0 ? void 0 : _b.watchEvents.get(path);
166
167
  if (watcher && typeof watcher.callback === 'function') {
167
168
  await watcher.callback({ type: ide_components_1.WatchEvent.Changed, path });
168
169
  }
@@ -215,16 +216,15 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
215
216
  get selectedNodes() {
216
217
  return this._selectedNodes;
217
218
  }
219
+ get onLoadingStateChange() {
220
+ return this.onLoadingStateChangedEmitter.event;
221
+ }
218
222
  get onDidRefreshed() {
219
223
  return this.onDidRefreshedEmitter.event;
220
224
  }
221
225
  get onDidUpdateTreeModel() {
222
226
  return this.onDidUpdateTreeModelEmitter.event;
223
227
  }
224
- get whenActiveChangeReady() {
225
- var _a;
226
- return (_a = this._whenActiveChangeDeferred) === null || _a === void 0 ? void 0 : _a.promise;
227
- }
228
228
  get whenInitTreeModelReady() {
229
229
  return this._whenInitTreeModelReady;
230
230
  }
@@ -232,52 +232,62 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
232
232
  var _a;
233
233
  return (_a = this.refreshDeferred) === null || _a === void 0 ? void 0 : _a.promise;
234
234
  }
235
- async initTreeModelByCurrentUri(uri) {
236
- var _a;
237
- await this.outlineTreeService.whenReady;
238
- // 等待上一次刷新完成
239
- await ((_a = this.refreshDeferred) === null || _a === void 0 ? void 0 : _a.promise);
240
- this.outlineTreeService.currentUri = uri;
241
- if (!!uri && this._allTreeModels.has(uri.toString())) {
242
- const treeModelStore = this._allTreeModels.get(uri.toString());
243
- // 初始化节点装饰器
244
- this._activeTreeModel = treeModelStore.treeModel;
245
- this._decorations = treeModelStore.decoration;
246
- this.onDidUpdateTreeModelEmitter.fire(this._activeTreeModel);
247
- }
248
- else if (uri) {
249
- // 根据是否为多工作区创建不同根节点
235
+ setTreeModel(treeModel) {
236
+ this._activeTreeModel = treeModel;
237
+ this.onDidUpdateTreeModelEmitter.fire(this._activeTreeModel);
238
+ }
239
+ async doInitTreeModelByCurrentUri(uri) {
240
+ let treeModel;
241
+ if (uri) {
242
+ // FIXME: 根据是否为多工作区创建不同根节点
250
243
  const root = (await this.outlineTreeService.resolveChildren())[0];
251
244
  if (!root) {
245
+ this.logger.error(`init outline tree model error: cannot resolve ${uri} children`);
252
246
  return;
253
247
  }
254
- const treeModel = this.injector.get(outline_model_1.OutlineTreeModel, [root]);
248
+ treeModel = this.injector.get(outline_model_1.OutlineTreeModel, [root]);
255
249
  await treeModel.ensureReady;
256
- this._activeTreeModel = treeModel;
257
250
  // 初始化节点装饰器
258
251
  const decoration = this.initDecorations(root);
259
- if (uri) {
260
- this._allTreeModels.set(uri === null || uri === void 0 ? void 0 : uri.toString(), {
261
- treeModel,
262
- decoration,
263
- });
252
+ if (this._allTreeModels.has(uri.toString())) {
253
+ this._allTreeModels.delete(uri.toString());
264
254
  }
265
- this.disposableCollection.push(treeModel.onWillUpdate(() => {
255
+ this._allTreeModels.set(uri.toString(), {
256
+ treeModel,
257
+ decoration,
258
+ });
259
+ this.disposableCollection.push(this._allTreeModels.onKeyDidDelete(uri.toString(), ({ key }) => {
260
+ this._treeModelDisposeMap.disposeKey(key);
261
+ }));
262
+ this._treeModelDisposeMap.set(uri.toString(), treeModel.onWillUpdate(() => {
266
263
  if (this.focusedNode) {
267
264
  // 更新树前更新下选中节点
268
- const node = treeModel === null || treeModel === void 0 ? void 0 : treeModel.root.getTreeNodeById(this.focusedNode.id);
265
+ const node = treeModel.root.getTreeNodeById(this.focusedNode.id);
269
266
  this.activeNodeDecoration(node, false);
270
267
  }
271
268
  else if (this.selectedNodes.length !== 0) {
272
269
  // 仅处理一下单选情况
273
- const node = treeModel === null || treeModel === void 0 ? void 0 : treeModel.root.getTreeNodeById(this.selectedNodes[0].id);
270
+ const node = treeModel.root.getTreeNodeById(this.selectedNodes[0].id);
274
271
  this.selectNodeDecoration(node, false);
275
272
  }
276
273
  }));
277
- this.onDidUpdateTreeModelEmitter.fire(treeModel);
274
+ }
275
+ this.setTreeModel(treeModel);
276
+ return treeModel;
277
+ }
278
+ async initTreeModelByCurrentUri(uri) {
279
+ var _a;
280
+ await this.outlineTreeService.whenReady;
281
+ // 等待上一次刷新完成
282
+ await ((_a = this.refreshDeferred) === null || _a === void 0 ? void 0 : _a.promise);
283
+ this.outlineTreeService.currentUri = uri;
284
+ if (uri && this._allTreeModels.has(uri.toString())) {
285
+ const treeModelStore = this._allTreeModels.get(uri.toString());
286
+ this._decorations = treeModelStore.decoration;
287
+ this.setTreeModel(treeModelStore.treeModel);
278
288
  }
279
289
  else {
280
- this.onDidUpdateTreeModelEmitter.fire(undefined);
290
+ await this.doInitTreeModelByCurrentUri(uri);
281
291
  }
282
292
  }
283
293
  async initTreeModel() {
@@ -291,14 +301,12 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
291
301
  }
292
302
  }));
293
303
  this.disposableCollection.push(this.outlineEventService.onDidActiveChange(async () => {
294
- if (!this._whenActiveChangeDeferred) {
295
- this._whenActiveChangeDeferred = new ide_core_browser_1.Deferred();
296
- }
297
304
  if (!this.initTreeModelDelayer.isTriggered()) {
298
305
  this.initTreeModelDelayer.cancel();
299
306
  }
307
+ this.onLoadingStateChangedEmitter.fire(true);
300
308
  this.initTreeModelDelayer.trigger(async () => {
301
- var _a, _b;
309
+ var _a;
302
310
  await this._whenInitTreeModelReady;
303
311
  // 初始化时如果存在还未刷新的执行逻辑时,需要进行清理
304
312
  if (!this.refreshDelayer.isTriggered()) {
@@ -306,8 +314,7 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
306
314
  }
307
315
  const uri = (_a = this.editorService.currentEditor) === null || _a === void 0 ? void 0 : _a.currentUri;
308
316
  this._whenInitTreeModelReady = this.initTreeModelByCurrentUri(uri);
309
- (_b = this._whenActiveChangeDeferred) === null || _b === void 0 ? void 0 : _b.resolve();
310
- this._whenActiveChangeDeferred = null;
317
+ this.onLoadingStateChangedEmitter.fire(false);
311
318
  });
312
319
  }));
313
320
  this.disposableCollection.push(this.outlineEventService.onDidSelectionChange(() => {
@@ -317,10 +324,18 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
317
324
  this.locateSelection(false);
318
325
  }
319
326
  }));
320
- this.disposableCollection.push(this.outlineEventService.onDidChange((url) => {
321
- var _a;
322
- this.outlineTreeService.currentUri = (_a = this.editorService.currentEditor) === null || _a === void 0 ? void 0 : _a.currentUri;
323
- this.refresh();
327
+ this.disposableCollection.push(this.outlineEventService.onDidChange((uri) => {
328
+ var _a, _b;
329
+ if (uri === ((_a = this.editorService.currentEditor) === null || _a === void 0 ? void 0 : _a.currentUri)) {
330
+ // 因为刷新 children 那个函数不能传 currentUri,这里利用一下副作用
331
+ this.outlineTreeService.currentUri = (_b = this.editorService.currentEditor) === null || _b === void 0 ? void 0 : _b.currentUri;
332
+ this.refresh();
333
+ }
334
+ }));
335
+ this.disposableCollection.push(this.outlineEventService.onDidViewCollapseChange((collapsed) => {
336
+ if (!collapsed) {
337
+ this.refresh();
338
+ }
324
339
  }));
325
340
  this.disposableCollection.push(this.outlineTreeService.onDidChange(() => {
326
341
  this.refresh();
@@ -413,15 +428,16 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
413
428
  * 刷新指定下的所有子节点
414
429
  */
415
430
  async refresh() {
416
- var _a, _b, _c, _d, _e, _f, _g;
417
- await this.whenActiveChangeReady;
431
+ var _a, _b, _c, _d, _e;
432
+ this.onLoadingStateChangedEmitter.fire(true);
418
433
  await this.whenInitTreeModelReady;
419
434
  await this.whenRefreshReady;
420
435
  const node = (_a = this.treeModel) === null || _a === void 0 ? void 0 : _a.root;
421
- if ((!node && ((_c = (_b = this.editorService) === null || _b === void 0 ? void 0 : _b.currentEditor) === null || _c === void 0 ? void 0 : _c.currentUri)) || !((_e = (_d = this.editorService) === null || _d === void 0 ? void 0 : _d.currentEditor) === null || _e === void 0 ? void 0 : _e.currentUri)) {
436
+ if (!node || !((_c = (_b = this.editorService) === null || _b === void 0 ? void 0 : _b.currentEditor) === null || _c === void 0 ? void 0 : _c.currentUri)) {
422
437
  // 1. 初次加载时可能还没有初始化Tree,主要原因在于没办法在outline加载时准确把握拿到currentEditor的时机
423
438
  // 2. 当前没有激活的URI时,需要情况当前的Tree
424
- this._whenInitTreeModelReady = this.initTreeModelByCurrentUri((_g = (_f = this.editorService) === null || _f === void 0 ? void 0 : _f.currentEditor) === null || _g === void 0 ? void 0 : _g.currentUri);
439
+ this._whenInitTreeModelReady = this.initTreeModelByCurrentUri((_e = (_d = this.editorService) === null || _d === void 0 ? void 0 : _d.currentEditor) === null || _e === void 0 ? void 0 : _e.currentUri);
440
+ this.onLoadingStateChangedEmitter.fire(false);
425
441
  return;
426
442
  }
427
443
  if (!this.refreshDelayer.isTriggered()) {
@@ -435,14 +451,15 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
435
451
  this.refreshDeferred.resolve();
436
452
  this.refreshDeferred = null;
437
453
  }
454
+ this.onLoadingStateChangedEmitter.fire(false);
438
455
  return;
439
456
  }
440
457
  if (!this.refreshDeferred) {
441
458
  this.refreshDeferred = new ide_core_browser_1.Deferred();
442
459
  }
443
460
  this.outlineTreeService.currentUri = (_b = (_a = this.editorService) === null || _a === void 0 ? void 0 : _a.currentEditor) === null || _b === void 0 ? void 0 : _b.currentUri;
444
- if (!!node.currentUri &&
445
- !!this.outlineTreeService.currentUri &&
461
+ if (node.currentUri &&
462
+ this.outlineTreeService.currentUri &&
446
463
  this.outlineTreeService.currentUri.isEqual(node.currentUri)) {
447
464
  // 刷新前需要更新诊断信息数据
448
465
  this.decorationService.updateDiagnosisInfo(this.outlineTreeService.currentUri);
@@ -452,10 +469,12 @@ let OutlineModelService = OutlineModelService_1 = class OutlineModelService {
452
469
  }
453
470
  (_c = this.refreshDeferred) === null || _c === void 0 ? void 0 : _c.resolve();
454
471
  this.refreshDeferred = null;
472
+ this.onLoadingStateChangedEmitter.fire(false);
455
473
  });
456
474
  }
457
475
  dispose() {
458
476
  this.disposableCollection.dispose();
477
+ this._treeModelDisposeMap.dispose();
459
478
  }
460
479
  };
461
480
  OutlineModelService.DEFAULT_REFRESH_DELAY = 200;
@@ -464,6 +483,10 @@ tslib_1.__decorate([
464
483
  (0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
465
484
  tslib_1.__metadata("design:type", di_1.Injector)
466
485
  ], OutlineModelService.prototype, "injector", void 0);
486
+ tslib_1.__decorate([
487
+ (0, di_1.Autowired)(ide_core_browser_1.ILogger),
488
+ tslib_1.__metadata("design:type", Object)
489
+ ], OutlineModelService.prototype, "logger", void 0);
467
490
  tslib_1.__decorate([
468
491
  (0, di_1.Autowired)(outline_tree_service_1.OutlineTreeService),
469
492
  tslib_1.__metadata("design:type", outline_tree_service_1.OutlineTreeService)