@theia/outline-view 1.35.0 → 1.36.0-next.21

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.
@@ -10,20 +10,24 @@ export declare const OUTLINE_WIDGET_FACTORY_ID = "outline-view";
10
10
  */
11
11
  export declare namespace OutlineViewCommands {
12
12
  /**
13
- * Command which collapses all nodes
14
- * from the `outline-view` tree.
13
+ * Command which collapses all nodes from the `outline-view` tree.
15
14
  */
16
15
  const COLLAPSE_ALL: Command;
16
+ /**
17
+ * Command which expands all nodes from the `outline-view` tree.
18
+ */
19
+ const EXPAND_ALL: Command;
17
20
  }
18
21
  export declare class OutlineViewContribution extends AbstractViewContribution<OutlineViewWidget> implements FrontendApplicationContribution, TabBarToolbarContribution {
19
22
  constructor();
20
23
  initializeLayout(app: FrontendApplication): Promise<void>;
21
24
  registerCommands(commands: CommandRegistry): void;
22
- registerToolbarItems(toolbar: TabBarToolbarRegistry): void;
25
+ registerToolbarItems(toolbar: TabBarToolbarRegistry): Promise<void>;
23
26
  /**
24
27
  * Collapse all nodes in the outline view tree.
25
28
  */
26
29
  protected collapseAllItems(): Promise<void>;
30
+ protected expandAllItems(): Promise<void>;
27
31
  /**
28
32
  * Determine if the current widget is the `outline-view`.
29
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"outline-view-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/outline-view-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACpH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAW,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAExD;;GAEG;AACH,yBAAiB,mBAAmB,CAAC;IACjC;;;OAGG;IACI,MAAM,YAAY,EAAE,OAG1B,CAAC;CACL;AAED,qBACa,uBAAwB,SAAQ,wBAAwB,CAAC,iBAAiB,CAAE,YAAW,+BAA+B,EAAE,yBAAyB;;IAiBpJ,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAS1D,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAS1D;;OAEG;cACa,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjD;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,oBAA0C,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;CAM7H"}
1
+ {"version":3,"file":"outline-view-contribution.d.ts","sourceRoot":"","sources":["../../src/browser/outline-view-contribution.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,+BAA+B,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACpH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAW,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,yBAAyB,iBAAiB,CAAC;AAExD;;GAEG;AACH,yBAAiB,mBAAmB,CAAC;IACjC;;OAEG;IACI,MAAM,YAAY,EAAE,OAG1B,CAAC;IAEF;;OAEG;IACI,MAAM,UAAU,EAAE,OAGxB,CAAC;CACL;AAED,qBACa,uBAAwB,SAAQ,wBAAwB,CAAC,iBAAiB,CAAE,YAAW,+BAA+B,EAAE,yBAAyB;;IAiBpJ,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAcpD,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzE;;OAEG;cACa,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;cAQjC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/C;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,oBAA0C,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;CAM7H"}
@@ -39,13 +39,19 @@ exports.OUTLINE_WIDGET_FACTORY_ID = 'outline-view';
39
39
  var OutlineViewCommands;
40
40
  (function (OutlineViewCommands) {
41
41
  /**
42
- * Command which collapses all nodes
43
- * from the `outline-view` tree.
42
+ * Command which collapses all nodes from the `outline-view` tree.
44
43
  */
45
44
  OutlineViewCommands.COLLAPSE_ALL = {
46
45
  id: 'outlineView.collapse.all',
47
46
  iconClass: (0, widgets_1.codicon)('collapse-all')
48
47
  };
48
+ /**
49
+ * Command which expands all nodes from the `outline-view` tree.
50
+ */
51
+ OutlineViewCommands.EXPAND_ALL = {
52
+ id: 'outlineView.expand.all',
53
+ iconClass: (0, widgets_1.codicon)('expand-all')
54
+ };
49
55
  })(OutlineViewCommands = exports.OutlineViewCommands || (exports.OutlineViewCommands = {}));
50
56
  let OutlineViewContribution = class OutlineViewContribution extends view_contribution_1.AbstractViewContribution {
51
57
  constructor() {
@@ -68,17 +74,32 @@ let OutlineViewContribution = class OutlineViewContribution extends view_contrib
68
74
  registerCommands(commands) {
69
75
  super.registerCommands(commands);
70
76
  commands.registerCommand(OutlineViewCommands.COLLAPSE_ALL, {
71
- isEnabled: widget => this.withWidget(widget, () => true),
72
- isVisible: widget => this.withWidget(widget, () => true),
77
+ isEnabled: w => this.withWidget(w, () => true),
78
+ isVisible: w => this.withWidget(w, widget => !widget.model.areNodesCollapsed()),
73
79
  execute: () => this.collapseAllItems()
74
80
  });
81
+ commands.registerCommand(OutlineViewCommands.EXPAND_ALL, {
82
+ isEnabled: w => this.withWidget(w, () => true),
83
+ isVisible: w => this.withWidget(w, widget => widget.model.areNodesCollapsed()),
84
+ execute: () => this.expandAllItems()
85
+ });
75
86
  }
76
- registerToolbarItems(toolbar) {
87
+ async registerToolbarItems(toolbar) {
88
+ const widget = await this.widget;
89
+ const onDidChange = widget.onDidUpdate;
77
90
  toolbar.registerItem({
78
91
  id: OutlineViewCommands.COLLAPSE_ALL.id,
79
92
  command: OutlineViewCommands.COLLAPSE_ALL.id,
80
93
  tooltip: nls_1.nls.localizeByDefault('Collapse All'),
81
- priority: 0
94
+ priority: 0,
95
+ onDidChange
96
+ });
97
+ toolbar.registerItem({
98
+ id: OutlineViewCommands.EXPAND_ALL.id,
99
+ command: OutlineViewCommands.EXPAND_ALL.id,
100
+ tooltip: nls_1.nls.localizeByDefault('Expand All'),
101
+ priority: 0,
102
+ onDidChange
82
103
  });
83
104
  }
84
105
  /**
@@ -91,6 +112,10 @@ let OutlineViewContribution = class OutlineViewContribution extends view_contrib
91
112
  model.collapseAll(root);
92
113
  }
93
114
  }
115
+ async expandAllItems() {
116
+ const { model } = await this.widget;
117
+ model.expandAll(model.root);
118
+ }
94
119
  /**
95
120
  * Determine if the current widget is the `outline-view`.
96
121
  */
@@ -1 +1 @@
1
- {"version":3,"file":"outline-view-contribution.js","sourceRoot":"","sources":["../../src/browser/outline-view-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outline-view-contribution.js","sourceRoot":"","sources":["../../src/browser/outline-view-contribution.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,7 @@ export declare class OutlineViewTreeModel extends TreeModelImpl {
14
14
  * allow for the `onOpenNode` event to still fire on a double-click event.
15
15
  */
16
16
  openNode(raw?: TreeNode | undefined): void;
17
+ expandAll(raw?: TreeNode): void;
18
+ areNodesCollapsed(): boolean;
17
19
  }
18
20
  //# sourceMappingURL=outline-view-tree-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outline-view-tree-model.d.ts","sourceRoot":"","sources":["../../src/browser/outline-view-tree-model.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEzG,qBACa,oBAAqB,SAAQ,aAAa;IAEnD;;;;;OAKG;cACgB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAI7D,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/E;;;;OAIG;IACM,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;CAMtD"}
1
+ {"version":3,"file":"outline-view-tree-model.d.ts","sourceRoot":"","sources":["../../src/browser/outline-view-tree-model.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEzG,qBACa,oBAAqB,SAAQ,aAAa;IAEnD;;;;;OAKG;cACgB,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAI7D,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ/E;;;;OAIG;IACM,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IAOnD,SAAS,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI;IAa/B,iBAAiB,IAAI,OAAO;CAW/B"}
@@ -52,6 +52,28 @@ let OutlineViewTreeModel = class OutlineViewTreeModel extends browser_1.TreeMode
52
52
  this.onOpenNodeEmitter.fire(node);
53
53
  }
54
54
  }
55
+ expandAll(raw) {
56
+ if (browser_1.CompositeTreeNode.is(raw)) {
57
+ for (const child of raw.children) {
58
+ if (browser_1.ExpandableTreeNode.is(child)) {
59
+ this.expandAll(child);
60
+ }
61
+ }
62
+ }
63
+ if (browser_1.ExpandableTreeNode.is(raw)) {
64
+ this.expandNode(raw);
65
+ }
66
+ }
67
+ areNodesCollapsed() {
68
+ if (browser_1.CompositeTreeNode.is(this.root)) {
69
+ for (const child of this.root.children) {
70
+ if (!browser_1.ExpandableTreeNode.isCollapsed(child)) {
71
+ return false;
72
+ }
73
+ }
74
+ }
75
+ return true;
76
+ }
55
77
  };
56
78
  OutlineViewTreeModel = __decorate([
57
79
  (0, inversify_1.injectable)()
@@ -1 +1 @@
1
- {"version":3,"file":"outline-view-tree-model.js","sourceRoot":"","sources":["../../src/browser/outline-view-tree-model.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;AAEhF,4DAA0D;AAC1D,qDAAyG;AAGzG,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,uBAAa;IAEnD;;;;;OAKG;IACgB,eAAe,CAAC,IAAkC;QACjE,QAAQ;IACZ,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAC,GAAiC;QACxD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,2BAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACM,QAAQ,CAAC,GAA0B;QACxC,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC;IACL,CAAC;CACJ,CAAA;AA/BY,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CA+BhC;AA/BY,oDAAoB"}
1
+ {"version":3,"file":"outline-view-tree-model.js","sourceRoot":"","sources":["../../src/browser/outline-view-tree-model.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;AAEhF,4DAA0D;AAC1D,qDAAyG;AAGzG,IAAa,oBAAoB,GAAjC,MAAa,oBAAqB,SAAQ,uBAAa;IAEnD;;;;;OAKG;IACgB,eAAe,CAAC,IAAkC;QACjE,QAAQ;IACZ,CAAC;IAEQ,KAAK,CAAC,WAAW,CAAC,GAAiC;QACxD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,2BAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACM,QAAQ,CAAC,GAA0B;QACxC,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrC;IACL,CAAC;IAED,SAAS,CAAC,GAAc;QACpB,IAAI,2BAAiB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YAC3B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAC9B,IAAI,4BAAkB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;iBACzB;aACJ;SACJ;QACD,IAAI,4BAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SACxB;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,2BAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpC,IAAI,CAAC,4BAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;oBACxC,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ,CAAA;AAxDY,oBAAoB;IADhC,IAAA,sBAAU,GAAE;GACA,oBAAoB,CAwDhC;AAxDY,oDAAoB"}
@@ -2,7 +2,7 @@
2
2
  import { TreeWidget, TreeNode, NodeProps, SelectableTreeNode, CompositeTreeNode, TreeProps, ContextMenuRenderer, TreeModel, ExpandableTreeNode } from '@theia/core/lib/browser';
3
3
  import { OutlineViewTreeModel } from './outline-view-tree-model';
4
4
  import { Message } from '@theia/core/shared/@phosphor/messaging';
5
- import { Emitter } from '@theia/core';
5
+ import { Emitter, Event } from '@theia/core';
6
6
  import * as React from '@theia/core/shared/react';
7
7
  import { Range } from '@theia/core/shared/vscode-languageserver-protocol';
8
8
  /**
@@ -39,7 +39,10 @@ export declare class OutlineViewWidget extends TreeWidget {
39
39
  readonly model: OutlineViewTreeModel;
40
40
  static LABEL: string;
41
41
  readonly onDidChangeOpenStateEmitter: Emitter<boolean>;
42
+ protected readonly onDidUpdateEmitter: Emitter<void>;
43
+ readonly onDidUpdate: Event<void>;
42
44
  constructor(treeProps: TreeProps, model: OutlineViewTreeModel, contextMenuRenderer: ContextMenuRenderer);
45
+ protected init(): void;
43
46
  /**
44
47
  * Set the outline tree with the list of `OutlineSymbolInformationNode`.
45
48
  * @param roots the list of `OutlineSymbolInformationNode`.
@@ -1 +1 @@
1
- {"version":3,"file":"outline-view-widget.d.ts","sourceRoot":"","sources":["../../src/browser/outline-view-widget.tsx"],"names":[],"mappings":";AAiBA,OAAO,EACH,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAErB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAmC,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAI1E;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;IAC3G;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,yBAAiB,4BAA4B,CAAC;IAC1C;;;;;;;;;OASG;IACH,SAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,4BAA4B,CAEvE;IAED,SAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAEhE;CACJ;AAED,oBAAY,wBAAwB,GAAG,MAAM,iBAAiB,CAAC;AAC/D,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E,qBACa,iBAAkB,SAAQ,UAAU;aAQO,KAAK,EAAE,oBAAoB;IAN/E,MAAM,CAAC,KAAK,SAAoC;IAEhD,QAAQ,CAAC,2BAA2B,mBAA0B;gBAGvC,SAAS,EAAE,SAAS,EACS,KAAK,EAAE,oBAAoB,EAC9C,mBAAmB,EAAE,mBAAmB;IAYzE;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,4BAA4B,EAAE,GAAG,IAAI;IAOlE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,iBAAiB;IAU1D;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;cAcxC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;cAK/B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKzC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;cAOnD,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAQ/H;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;cAOzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,kBAAkB;cAIxD,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;cAO7C,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;cAQzC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ;CAOhF"}
1
+ {"version":3,"file":"outline-view-widget.d.ts","sourceRoot":"","sources":["../../src/browser/outline-view-widget.tsx"],"names":[],"mappings":";AAiBA,OAAO,EACH,UAAU,EACV,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAErB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,wCAAwC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAmC,MAAM,aAAa,CAAC;AAC9E,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAI1E;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;IAC3G;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,yBAAiB,4BAA4B,CAAC;IAC1C;;;;;;;;;OASG;IACH,SAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,4BAA4B,CAEvE;IAED,SAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAEhE;CACJ;AAED,oBAAY,wBAAwB,GAAG,MAAM,iBAAiB,CAAC;AAC/D,eAAO,MAAM,wBAAwB,eAAqC,CAAC;AAE3E,qBACa,iBAAkB,SAAQ,UAAU;aAWO,KAAK,EAAE,oBAAoB;IAT/E,MAAM,CAAC,KAAK,SAAoC;IAEhD,QAAQ,CAAC,2BAA2B,mBAA0B;IAE9D,SAAS,CAAC,QAAQ,CAAC,kBAAkB,gBAAuB;IAC5D,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAiC;gBAG3C,SAAS,EAAE,SAAS,EACS,KAAK,EAAE,oBAAoB,EAC9C,mBAAmB,EAAE,mBAAmB;cAatD,IAAI,IAAI,IAAI;IAK/B;;;OAGG;IACI,cAAc,CAAC,KAAK,EAAE,4BAA4B,EAAE,GAAG,IAAI;IAOlE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,iBAAiB;IAU1D;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE;cAcxC,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;cAK/B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKzC,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;cAOnD,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAQ/H;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS;cAOzC,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,IAAI,kBAAkB;cAIxD,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;cAO7C,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;cAQzC,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ;CAOhF"}
@@ -67,6 +67,8 @@ let OutlineViewWidget = OutlineViewWidget_1 = class OutlineViewWidget extends br
67
67
  super(treeProps, model, contextMenuRenderer);
68
68
  this.model = model;
69
69
  this.onDidChangeOpenStateEmitter = new core_1.Emitter();
70
+ this.onDidUpdateEmitter = new core_1.Emitter();
71
+ this.onDidUpdate = this.onDidUpdateEmitter.event;
70
72
  this.id = 'outline-view';
71
73
  this.title.label = OutlineViewWidget_1.LABEL;
72
74
  this.title.caption = OutlineViewWidget_1.LABEL;
@@ -74,6 +76,10 @@ let OutlineViewWidget = OutlineViewWidget_1 = class OutlineViewWidget extends br
74
76
  this.title.iconClass = (0, browser_1.codicon)('symbol-class');
75
77
  this.addClass('theia-outline-view');
76
78
  }
79
+ init() {
80
+ super.init();
81
+ this.toDispose.push(this.model.onExpansionChanged(() => this.onDidUpdateEmitter.fire()));
82
+ }
77
83
  /**
78
84
  * Set the outline tree with the list of `OutlineSymbolInformationNode`.
79
85
  * @param roots the list of `OutlineSymbolInformationNode`.
@@ -169,6 +175,12 @@ let OutlineViewWidget = OutlineViewWidget_1 = class OutlineViewWidget extends br
169
175
  }
170
176
  };
171
177
  OutlineViewWidget.LABEL = nls_1.nls.localizeByDefault('Outline');
178
+ __decorate([
179
+ (0, inversify_1.postConstruct)(),
180
+ __metadata("design:type", Function),
181
+ __metadata("design:paramtypes", []),
182
+ __metadata("design:returntype", void 0)
183
+ ], OutlineViewWidget.prototype, "init", null);
172
184
  OutlineViewWidget = OutlineViewWidget_1 = __decorate([
173
185
  (0, inversify_1.injectable)(),
174
186
  __param(0, (0, inversify_1.inject)(browser_1.TreeProps)),
@@ -1 +1 @@
1
- {"version":3,"file":"outline-view-widget.js","sourceRoot":"","sources":["../../src/browser/outline-view-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outline-view-widget.js","sourceRoot":"","sources":["../../src/browser/outline-view-widget.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@theia/outline-view",
3
- "version": "1.35.0",
3
+ "version": "1.36.0-next.21+be025fcc0",
4
4
  "description": "Theia - Outline View Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.35.0"
6
+ "@theia/core": "1.36.0-next.21+be025fcc0"
7
7
  },
8
8
  "publishConfig": {
9
9
  "access": "public"
@@ -43,5 +43,5 @@
43
43
  "nyc": {
44
44
  "extends": "../../configs/nyc.json"
45
45
  },
46
- "gitHead": "5b1e4f9b913cf1b0d27acd4bc435cb2570f164d8"
46
+ "gitHead": "be025fcc0dc20d3ee81bd882eac4d6c398093d33"
47
47
  }
@@ -32,13 +32,20 @@ export const OUTLINE_WIDGET_FACTORY_ID = 'outline-view';
32
32
  */
33
33
  export namespace OutlineViewCommands {
34
34
  /**
35
- * Command which collapses all nodes
36
- * from the `outline-view` tree.
35
+ * Command which collapses all nodes from the `outline-view` tree.
37
36
  */
38
37
  export const COLLAPSE_ALL: Command = {
39
38
  id: 'outlineView.collapse.all',
40
39
  iconClass: codicon('collapse-all')
41
40
  };
41
+
42
+ /**
43
+ * Command which expands all nodes from the `outline-view` tree.
44
+ */
45
+ export const EXPAND_ALL: Command = {
46
+ id: 'outlineView.expand.all',
47
+ iconClass: codicon('expand-all')
48
+ };
42
49
  }
43
50
 
44
51
  @injectable()
@@ -66,18 +73,33 @@ export class OutlineViewContribution extends AbstractViewContribution<OutlineVie
66
73
  override registerCommands(commands: CommandRegistry): void {
67
74
  super.registerCommands(commands);
68
75
  commands.registerCommand(OutlineViewCommands.COLLAPSE_ALL, {
69
- isEnabled: widget => this.withWidget(widget, () => true),
70
- isVisible: widget => this.withWidget(widget, () => true),
76
+ isEnabled: w => this.withWidget(w, () => true),
77
+ isVisible: w => this.withWidget(w, widget => !widget.model.areNodesCollapsed()),
71
78
  execute: () => this.collapseAllItems()
72
79
  });
80
+ commands.registerCommand(OutlineViewCommands.EXPAND_ALL, {
81
+ isEnabled: w => this.withWidget(w, () => true),
82
+ isVisible: w => this.withWidget(w, widget => widget.model.areNodesCollapsed()),
83
+ execute: () => this.expandAllItems()
84
+ });
73
85
  }
74
86
 
75
- registerToolbarItems(toolbar: TabBarToolbarRegistry): void {
87
+ async registerToolbarItems(toolbar: TabBarToolbarRegistry): Promise<void> {
88
+ const widget = await this.widget;
89
+ const onDidChange = widget.onDidUpdate;
76
90
  toolbar.registerItem({
77
91
  id: OutlineViewCommands.COLLAPSE_ALL.id,
78
92
  command: OutlineViewCommands.COLLAPSE_ALL.id,
79
93
  tooltip: nls.localizeByDefault('Collapse All'),
80
- priority: 0
94
+ priority: 0,
95
+ onDidChange
96
+ });
97
+ toolbar.registerItem({
98
+ id: OutlineViewCommands.EXPAND_ALL.id,
99
+ command: OutlineViewCommands.EXPAND_ALL.id,
100
+ tooltip: nls.localizeByDefault('Expand All'),
101
+ priority: 0,
102
+ onDidChange
81
103
  });
82
104
  }
83
105
 
@@ -92,6 +114,11 @@ export class OutlineViewContribution extends AbstractViewContribution<OutlineVie
92
114
  }
93
115
  }
94
116
 
117
+ protected async expandAllItems(): Promise<void> {
118
+ const { model } = await this.widget;
119
+ model.expandAll(model.root);
120
+ }
121
+
95
122
  /**
96
123
  * Determine if the current widget is the `outline-view`.
97
124
  */
@@ -49,4 +49,29 @@ export class OutlineViewTreeModel extends TreeModelImpl {
49
49
  this.onOpenNodeEmitter.fire(node);
50
50
  }
51
51
  }
52
+
53
+ expandAll(raw?: TreeNode): void {
54
+ if (CompositeTreeNode.is(raw)) {
55
+ for (const child of raw.children) {
56
+ if (ExpandableTreeNode.is(child)) {
57
+ this.expandAll(child);
58
+ }
59
+ }
60
+ }
61
+ if (ExpandableTreeNode.is(raw)) {
62
+ this.expandNode(raw);
63
+ }
64
+ }
65
+
66
+ areNodesCollapsed(): boolean {
67
+ if (CompositeTreeNode.is(this.root)) {
68
+ for (const child of this.root.children) {
69
+ if (!ExpandableTreeNode.isCollapsed(child)) {
70
+ return false;
71
+ }
72
+ }
73
+ }
74
+ return true;
75
+ }
76
+
52
77
  }
@@ -14,7 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { injectable, inject } from '@theia/core/shared/inversify';
17
+ import { injectable, inject, postConstruct } from '@theia/core/shared/inversify';
18
18
  import {
19
19
  TreeWidget,
20
20
  TreeNode,
@@ -29,7 +29,7 @@ import {
29
29
  } from '@theia/core/lib/browser';
30
30
  import { OutlineViewTreeModel } from './outline-view-tree-model';
31
31
  import { Message } from '@theia/core/shared/@phosphor/messaging';
32
- import { Emitter, isObject, Mutable, UriSelection } from '@theia/core';
32
+ import { Emitter, Event, isObject, Mutable, UriSelection } from '@theia/core';
33
33
  import * as React from '@theia/core/shared/react';
34
34
  import { Range } from '@theia/core/shared/vscode-languageserver-protocol';
35
35
  import URI from '@theia/core/lib/common/uri';
@@ -78,6 +78,9 @@ export class OutlineViewWidget extends TreeWidget {
78
78
 
79
79
  readonly onDidChangeOpenStateEmitter = new Emitter<boolean>();
80
80
 
81
+ protected readonly onDidUpdateEmitter = new Emitter<void>();
82
+ readonly onDidUpdate: Event<void> = this.onDidUpdateEmitter.event;
83
+
81
84
  constructor(
82
85
  @inject(TreeProps) treeProps: TreeProps,
83
86
  @inject(OutlineViewTreeModel) override readonly model: OutlineViewTreeModel,
@@ -93,6 +96,12 @@ export class OutlineViewWidget extends TreeWidget {
93
96
  this.addClass('theia-outline-view');
94
97
  }
95
98
 
99
+ @postConstruct()
100
+ protected override init(): void {
101
+ super.init();
102
+ this.toDispose.push(this.model.onExpansionChanged(() => this.onDidUpdateEmitter.fire()));
103
+ }
104
+
96
105
  /**
97
106
  * Set the outline tree with the list of `OutlineSymbolInformationNode`.
98
107
  * @param roots the list of `OutlineSymbolInformationNode`.