@theia/plugin-ext 1.31.0-next.2 → 1.31.0-next.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/lib/common/cache.d.ts +12 -0
  2. package/lib/common/cache.d.ts.map +1 -0
  3. package/lib/common/cache.js +48 -0
  4. package/lib/common/cache.js.map +1 -0
  5. package/lib/common/plugin-api-rpc-model.d.ts +61 -0
  6. package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
  7. package/lib/common/plugin-api-rpc-model.js +6 -1
  8. package/lib/common/plugin-api-rpc-model.js.map +1 -1
  9. package/lib/common/plugin-api-rpc.d.ts +29 -2
  10. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  11. package/lib/common/plugin-api-rpc.js.map +1 -1
  12. package/lib/hosted/browser/hosted-plugin.d.ts +15 -12
  13. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  14. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  15. package/lib/main/browser/languages-main.d.ts +8 -1
  16. package/lib/main/browser/languages-main.d.ts.map +1 -1
  17. package/lib/main/browser/languages-main.js +89 -1
  18. package/lib/main/browser/languages-main.js.map +1 -1
  19. package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
  20. package/lib/main/browser/menus/menus-contribution-handler.js +16 -18
  21. package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
  22. package/lib/main/browser/menus/plugin-menu-command-adapter.js +1 -1
  23. package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
  24. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +2 -2
  25. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
  26. package/lib/main/browser/menus/vscode-theia-menu-mappings.js +16 -16
  27. package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
  28. package/lib/main/browser/terminal-main.d.ts +7 -1
  29. package/lib/main/browser/terminal-main.d.ts.map +1 -1
  30. package/lib/main/browser/terminal-main.js +23 -1
  31. package/lib/main/browser/terminal-main.js.map +1 -1
  32. package/lib/main/browser/view/tree-view-widget.d.ts +43 -3
  33. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  34. package/lib/main/browser/view/tree-view-widget.js +184 -31
  35. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  36. package/lib/plugin/custom-editors.d.ts.map +1 -1
  37. package/lib/plugin/custom-editors.js +2 -29
  38. package/lib/plugin/custom-editors.js.map +1 -1
  39. package/lib/plugin/languages/inlay-hints.d.ts +20 -0
  40. package/lib/plugin/languages/inlay-hints.d.ts.map +1 -0
  41. package/lib/plugin/languages/inlay-hints.js +128 -0
  42. package/lib/plugin/languages/inlay-hints.js.map +1 -0
  43. package/lib/plugin/languages/inline-values.d.ts +11 -0
  44. package/lib/plugin/languages/inline-values.d.ts.map +1 -0
  45. package/lib/plugin/languages/inline-values.js +45 -0
  46. package/lib/plugin/languages/inline-values.js.map +1 -0
  47. package/lib/plugin/languages.d.ts +8 -2
  48. package/lib/plugin/languages.d.ts.map +1 -1
  49. package/lib/plugin/languages.js +40 -0
  50. package/lib/plugin/languages.js.map +1 -1
  51. package/lib/plugin/plugin-context.d.ts.map +1 -1
  52. package/lib/plugin/plugin-context.js +18 -3
  53. package/lib/plugin/plugin-context.js.map +1 -1
  54. package/lib/plugin/terminal-ext.d.ts +11 -1
  55. package/lib/plugin/terminal-ext.d.ts.map +1 -1
  56. package/lib/plugin/terminal-ext.js +44 -0
  57. package/lib/plugin/terminal-ext.js.map +1 -1
  58. package/lib/plugin/tree/tree-views.d.ts +5 -1
  59. package/lib/plugin/tree/tree-views.d.ts.map +1 -1
  60. package/lib/plugin/tree/tree-views.js +28 -1
  61. package/lib/plugin/tree/tree-views.js.map +1 -1
  62. package/lib/plugin/type-converters.d.ts +7 -1
  63. package/lib/plugin/type-converters.d.ts.map +1 -1
  64. package/lib/plugin/type-converters.js +51 -4
  65. package/lib/plugin/type-converters.js.map +1 -1
  66. package/lib/plugin/types-impl.d.ts +60 -2
  67. package/lib/plugin/types-impl.d.ts.map +1 -1
  68. package/lib/plugin/types-impl.js +140 -5
  69. package/lib/plugin/types-impl.js.map +1 -1
  70. package/lib/plugin/types-impl.spec.js +14 -0
  71. package/lib/plugin/types-impl.spec.js.map +1 -1
  72. package/lib/plugin/workspace.js +1 -1
  73. package/lib/plugin/workspace.js.map +1 -1
  74. package/package.json +24 -24
  75. package/src/common/cache.ts +51 -0
  76. package/src/common/plugin-api-rpc-model.ts +68 -0
  77. package/src/common/plugin-api-rpc.ts +36 -2
  78. package/src/hosted/browser/hosted-plugin.ts +9 -9
  79. package/src/main/browser/languages-main.ts +120 -4
  80. package/src/main/browser/menus/menus-contribution-handler.ts +19 -21
  81. package/src/main/browser/menus/plugin-menu-command-adapter.ts +1 -1
  82. package/src/main/browser/menus/vscode-theia-menu-mappings.ts +17 -17
  83. package/src/main/browser/terminal-main.ts +29 -2
  84. package/src/main/browser/view/tree-view-widget.tsx +220 -30
  85. package/src/plugin/custom-editors.ts +1 -33
  86. package/src/plugin/languages/inlay-hints.ts +149 -0
  87. package/src/plugin/languages/inline-values.ts +50 -0
  88. package/src/plugin/languages.ts +57 -1
  89. package/src/plugin/plugin-context.ts +28 -5
  90. package/src/plugin/terminal-ext.ts +54 -2
  91. package/src/plugin/tree/tree-views.ts +40 -2
  92. package/src/plugin/type-converters.ts +47 -5
  93. package/src/plugin/types-impl.spec.ts +16 -0
  94. package/src/plugin/types-impl.ts +152 -4
  95. package/src/plugin/workspace.ts +1 -1
@@ -1,18 +1,21 @@
1
1
  import { interfaces } from '@theia/core/shared/inversify';
2
2
  import { TerminalOptions } from '@theia/plugin';
3
+ import { CancellationToken } from '@theia/core/shared/vscode-languageserver-protocol';
3
4
  import { TerminalWidget } from '@theia/terminal/lib/browser/base/terminal-widget';
4
5
  import { TerminalServiceMain } from '../../common/plugin-api-rpc';
5
6
  import { RPCProtocol } from '../../common/rpc-protocol';
6
7
  import { Disposable } from '@theia/core/lib/common/disposable';
7
8
  import { SerializableEnvironmentVariableCollection } from '@theia/terminal/lib/common/base-terminal-protocol';
9
+ import { TerminalLink, TerminalLinkProvider } from '@theia/terminal/lib/browser/terminal-link-provider';
8
10
  /**
9
11
  * Plugin api service allows working with terminal emulator.
10
12
  */
11
- export declare class TerminalServiceMainImpl implements TerminalServiceMain, Disposable {
13
+ export declare class TerminalServiceMainImpl implements TerminalServiceMain, TerminalLinkProvider, Disposable {
12
14
  private readonly terminals;
13
15
  private readonly shell;
14
16
  private readonly extProxy;
15
17
  private readonly shellTerminalServer;
18
+ private readonly terminalLinkProviders;
16
19
  private readonly toDispose;
17
20
  constructor(rpc: RPCProtocol, container: interfaces.Container);
18
21
  $setEnvironmentVariableCollection(extensionIdentifier: string, persistent: boolean, collection: SerializableEnvironmentVariableCollection | undefined): void;
@@ -34,5 +37,8 @@ export declare class TerminalServiceMainImpl implements TerminalServiceMain, Dis
34
37
  $hideByTerminalId(id: number): void;
35
38
  $disposeByTerminalId(id: number, waitOnExit?: boolean | string): void;
36
39
  $setNameByTerminalId(id: number, name: string): void;
40
+ $registerTerminalLinkProvider(providerId: string): Promise<void>;
41
+ $unregisterTerminalLinkProvider(providerId: string): Promise<void>;
42
+ provideLinks(line: string, terminal: TerminalWidget, cancelationToken?: CancellationToken | undefined): Promise<TerminalLink[]>;
37
43
  }
38
44
  //# sourceMappingURL=terminal-main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-main.d.ts","sourceRoot":"","sources":["../../../src/main/browser/terminal-main.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAElF,OAAO,EAAE,mBAAmB,EAAwC,MAAM,6BAA6B,CAAC;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,UAAU,EAAwB,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,yCAAyC,EAAE,MAAM,mDAAmD,CAAC;AAI9G;;GAEG;AACH,qBAAa,uBAAwB,YAAW,mBAAmB,EAAE,UAAU;IAE3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAE/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;gBAE5C,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS;IAkB7D,iCAAiC,CAAC,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,yCAAyC,GAAG,SAAS,GAAG,IAAI;IAQ5J,OAAO,IAAI,IAAI;IAIf,SAAS,CAAC,qBAAqB,IAAI,IAAI;cAKvB,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BtE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQtC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ/C,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBxG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAW/D,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IAWhD,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAUvB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAO1B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAU3E,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOlD,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOjE,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IAU5D,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASnC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAWrE,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAGvD"}
1
+ {"version":3,"file":"terminal-main.d.ts","sourceRoot":"","sources":["../../../src/main/browser/terminal-main.ts"],"names":[],"mappings":"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"}
@@ -17,16 +17,19 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TerminalServiceMainImpl = void 0;
19
19
  const browser_1 = require("@theia/core/lib/browser");
20
+ const vscode_languageserver_protocol_1 = require("@theia/core/shared/vscode-languageserver-protocol");
20
21
  const terminal_service_1 = require("@theia/terminal/lib/browser/base/terminal-service");
21
22
  const plugin_api_rpc_1 = require("../../common/plugin-api-rpc");
22
23
  const disposable_1 = require("@theia/core/lib/common/disposable");
23
24
  const shell_terminal_protocol_1 = require("@theia/terminal/lib/common/shell-terminal-protocol");
25
+ const terminal_link_provider_1 = require("@theia/terminal/lib/browser/terminal-link-provider");
24
26
  const uri_1 = require("@theia/core/lib/common/uri");
25
27
  /**
26
28
  * Plugin api service allows working with terminal emulator.
27
29
  */
28
30
  class TerminalServiceMainImpl {
29
31
  constructor(rpc, container) {
32
+ this.terminalLinkProviders = [];
30
33
  this.toDispose = new disposable_1.DisposableCollection();
31
34
  this.terminals = container.get(terminal_service_1.TerminalService);
32
35
  this.shell = container.get(browser_1.ApplicationShell);
@@ -43,6 +46,7 @@ class TerminalServiceMainImpl {
43
46
  const serializedCollections = collectionAsArray.map(e => [e[0], [...e[1].map.entries()]]);
44
47
  this.extProxy.$initEnvironmentVariableCollections(serializedCollections);
45
48
  }
49
+ container.bind(terminal_link_provider_1.TerminalLinkProvider).toDynamicValue(() => this);
46
50
  }
47
51
  $setEnvironmentVariableCollection(extensionIdentifier, persistent, collection) {
48
52
  if (collection) {
@@ -79,6 +83,7 @@ class TerminalServiceMainImpl {
79
83
  }));
80
84
  this.toDispose.push(terminal.onData(data => {
81
85
  this.extProxy.$terminalOnInput(terminal.id, data);
86
+ this.extProxy.$terminalStateChanged(terminal.id);
82
87
  }));
83
88
  }
84
89
  $write(id, data) {
@@ -102,12 +107,13 @@ class TerminalServiceMainImpl {
102
107
  title: options.name,
103
108
  shellPath: options.shellPath,
104
109
  shellArgs: options.shellArgs,
105
- cwd: new uri_1.URI(options.cwd),
110
+ cwd: options.cwd ? new uri_1.URI(options.cwd) : undefined,
106
111
  env: options.env,
107
112
  strictEnv: options.strictEnv,
108
113
  destroyTermOnClose: true,
109
114
  useServerTitle: false,
110
115
  attributes: options.attributes,
116
+ hideFromUser: options.hideFromUser,
111
117
  isPseudoTerminal
112
118
  });
113
119
  if (options.message) {
@@ -216,6 +222,22 @@ class TerminalServiceMainImpl {
216
222
  var _a;
217
223
  (_a = this.terminals.getByTerminalId(id)) === null || _a === void 0 ? void 0 : _a.setTitle(name);
218
224
  }
225
+ async $registerTerminalLinkProvider(providerId) {
226
+ this.terminalLinkProviders.push(providerId);
227
+ }
228
+ async $unregisterTerminalLinkProvider(providerId) {
229
+ const index = this.terminalLinkProviders.indexOf(providerId);
230
+ if (index > -1) {
231
+ this.terminalLinkProviders.splice(index, 1);
232
+ }
233
+ }
234
+ async provideLinks(line, terminal, cancelationToken) {
235
+ if (this.terminalLinkProviders.length < 1) {
236
+ return [];
237
+ }
238
+ const links = await this.extProxy.$provideTerminalLinks(line, terminal.id, cancelationToken !== null && cancelationToken !== void 0 ? cancelationToken : vscode_languageserver_protocol_1.CancellationToken.None);
239
+ return links.map(link => (Object.assign(Object.assign({}, link), { handle: () => this.extProxy.$handleTerminalLink(link) })));
240
+ }
219
241
  }
220
242
  exports.TerminalServiceMainImpl = TerminalServiceMainImpl;
221
243
  //# sourceMappingURL=terminal-main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal-main.js","sourceRoot":"","sources":["../../../src/main/browser/terminal-main.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,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;;;AAGhF,qDAAgF;AAGhF,wFAAoF;AACpF,gEAAwG;AAExG,kEAAqF;AAErF,gGAA8F;AAC9F,oDAAiD;AAEjD;;GAEG;AACH,MAAa,uBAAuB;IAShC,YAAY,GAAgB,EAAE,SAA+B;QAF5C,cAAS,GAAG,IAAI,iCAAoB,EAAE,CAAC;QAGpD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,kCAAe,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,0BAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,GAAG,CAAC,kDAAwB,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,iCAAgB,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClG,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE;YAC/C,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,MAAM,qBAAqB,GAA0D,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACjJ,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,qBAAqB,CAAC,CAAC;SAC5E;IACL,CAAC;IAED,iCAAiC,CAAC,mBAA2B,EAAE,UAAmB,EAAE,UAAiE;QACjJ,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,mBAAmB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SACvF;aAAM;YACH,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;SAClE;IACL,CAAC;IAED,OAAO;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAES,qBAAqB;QAC3B,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,eAAe,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAES,KAAK,CAAC,aAAa,CAAC,QAAwB;QAClD,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,GAAG,EAAE;YACrB,IAAI,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/B,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aACzD;QACL,CAAC,CAAC;QACF,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAE7F,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CACjD,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAC3I,GAAG,EAAE,GAAc,CAAC,CACvB,CAAC;QACF,eAAe,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1D,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACvC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,IAAY;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QACD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,OAAwB,EAAE,gBAA0B;QAClF,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC9C,EAAE;gBACF,KAAK,EAAE,OAAO,CAAC,IAAI;gBACnB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,EAAE,IAAI,SAAG,CAAC,OAAO,CAAC,GAAG,CAAC;gBACzB,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,kBAAkB,EAAE,IAAI;gBACxB,cAAc,EAAE,KAAK;gBACrB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,gBAAgB;aACnB,CAAC,CAAC;YACH,IAAI,OAAO,CAAC,OAAO,EAAE;gBACjB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aACvC;YACD,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,QAAQ,CAAC,EAAE,CAAC;SACtB;QAAC,OAAO,KAAK,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,KAAK,CAAC,CAAC;SACjE;IACL,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,IAAY,EAAE,UAAoB;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE;YACV,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;gBACrD,IAAI,IAAI,IAAI,CAAC;aAChB;YACD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,aAAuB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE;YACV,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,IAAI,aAAa,EAAE;gBACf,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;aAC3B;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC1C;IACL,CAAC;IAED,KAAK,CAAC,EAAU;QACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAED,QAAQ,CAAC,EAAU;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,QAAQ,EAAE;YACV,QAAQ,CAAC,OAAO,EAAE,CAAC;SACtB;IACL,CAAC;IAED,QAAQ,CAAC,EAAU,EAAE,IAAY;;QAC7B,MAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,qBAAqB,CAAC,EAAU,EAAE,IAAY,EAAE,UAAoB;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACV,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;gBACrD,IAAI,IAAI,IAAI,CAAC;aAChB;YACD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC3B;IACL,CAAC;IACD,kBAAkB,CAAC,EAAU,EAAE,IAAY;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QACD,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,mBAAmB,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;SACV;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,iBAAiB,CAAC,EAAU,EAAE,aAAuB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACV,MAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,IAAI,aAAa,EAAE;gBACf,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;aAC3B;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC1C;IACL,CAAC;IACD,iBAAiB,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IACD,oBAAoB,CAAC,EAAU,EAAE,UAA6B;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACV,IAAI,UAAU,EAAE;gBACZ,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAChC,OAAO;aACV;YACD,QAAQ,CAAC,OAAO,EAAE,CAAC;SACtB;IACL,CAAC;IAED,oBAAoB,CAAC,EAAU,EAAE,IAAY;;QACzC,MAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,0CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;CACJ;AApND,0DAoNC"}
1
+ {"version":3,"file":"terminal-main.js","sourceRoot":"","sources":["../../../src/main/browser/terminal-main.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,13 @@ import { MessageService } from '@theia/core/lib/common/message-service';
11
11
  import { View } from '../../../common/plugin-protocol';
12
12
  import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
13
13
  import * as markdownit from '@theia/core/shared/markdown-it';
14
+ import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
14
15
  import { LabelParser } from '@theia/core/lib/browser/label-parser';
15
16
  import { AccessibilityInformation } from '@theia/plugin';
16
17
  import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
17
18
  import { DecoratedTreeNode } from '@theia/core/lib/browser/tree/tree-decorator';
18
19
  import { WidgetDecoration } from '@theia/core/lib/browser/widget-decoration';
20
+ import { CancellationToken } from '@theia/core/lib/common';
19
21
  export declare const TREE_NODE_HYPERLINK = "theia-TreeNodeHyperlink";
20
22
  export declare const VIEW_ITEM_CONTEXT_MENU: MenuPath;
21
23
  export declare const VIEW_ITEM_INLINE_MENU: MenuPath;
@@ -28,13 +30,44 @@ export interface TreeViewNode extends SelectableTreeNode, DecoratedTreeNode {
28
30
  command?: Command;
29
31
  resourceUri?: string;
30
32
  themeIcon?: ThemeIcon;
31
- tooltip?: string;
33
+ tooltip?: string | MarkdownString;
32
34
  description?: string | boolean | any;
33
35
  accessibilityInformation?: AccessibilityInformation;
34
36
  }
35
37
  export declare namespace TreeViewNode {
36
38
  function is(arg: TreeNode | undefined): arg is TreeViewNode;
37
39
  }
40
+ export declare class ResolvableTreeViewNode implements TreeViewNode {
41
+ contextValue?: string;
42
+ command?: Command;
43
+ resourceUri?: string;
44
+ themeIcon?: ThemeIcon;
45
+ tooltip?: string | MarkdownString;
46
+ description?: string | boolean | any;
47
+ accessibilityInformation?: AccessibilityInformation;
48
+ selected: boolean;
49
+ focus?: boolean;
50
+ id: string;
51
+ name?: string;
52
+ icon?: string;
53
+ visible?: boolean;
54
+ parent: Readonly<CompositeTreeNode>;
55
+ previousSibling?: TreeNode;
56
+ nextSibling?: TreeNode;
57
+ busy?: number;
58
+ decorationData: WidgetDecoration.Data;
59
+ resolve: ((token: CancellationToken) => Promise<void>);
60
+ private _resolved;
61
+ private resolving;
62
+ constructor(treeViewNode: Partial<TreeViewNode>, resolve: (token: CancellationToken) => Promise<TreeViewItem | undefined>);
63
+ reset(): void;
64
+ get resolved(): boolean;
65
+ }
66
+ export declare class ResolvableCompositeTreeViewNode extends ResolvableTreeViewNode implements CompositeTreeViewNode {
67
+ expanded: boolean;
68
+ children: readonly TreeNode[];
69
+ constructor(treeViewNode: Pick<CompositeTreeViewNode, 'children' | 'expanded'> & Partial<TreeViewNode>, resolve: (token: CancellationToken) => Promise<TreeViewItem | undefined>);
70
+ }
38
71
  export interface CompositeTreeViewNode extends TreeViewNode, ExpandableTreeNode, CompositeTreeNode {
39
72
  description?: string | boolean | any;
40
73
  }
@@ -53,13 +86,18 @@ export declare class PluginTree extends TreeImpl {
53
86
  private _proxy;
54
87
  private _viewInfo;
55
88
  private _isEmpty;
89
+ private _hasTreeItemResolve;
56
90
  set proxy(proxy: TreeViewsExt | undefined);
57
91
  get proxy(): TreeViewsExt | undefined;
92
+ get hasTreeItemResolve(): Promise<boolean>;
58
93
  set viewInfo(viewInfo: View);
59
94
  get isEmpty(): boolean;
60
95
  protected resolveChildren(parent: CompositeTreeNode): Promise<TreeNode[]>;
61
96
  protected fetchChildren(proxy: TreeViewsExt, parent: CompositeTreeNode): Promise<TreeViewItem[]>;
62
97
  protected createTreeNode(item: TreeViewItem, parent: CompositeTreeNode): TreeNode;
98
+ /** Creates a resolvable tree node. If a node already exists, reset it because the underlying TreeViewItem might have been disposed in the backend. */
99
+ protected createResolvableTreeNode(item: TreeViewItem, parent: CompositeTreeNode): TreeNode;
100
+ protected createTreeNodeUpdate(item: TreeViewItem): Partial<TreeViewNode>;
63
101
  protected toDecorationData(item: TreeViewItem): WidgetDecoration.Data;
64
102
  protected toIconClass(item: TreeViewItem): string | undefined;
65
103
  }
@@ -67,9 +105,11 @@ export declare class PluginTreeModel extends TreeModelImpl {
67
105
  protected readonly tree: PluginTree;
68
106
  set proxy(proxy: TreeViewsExt | undefined);
69
107
  get proxy(): TreeViewsExt | undefined;
108
+ get hasTreeItemResolve(): Promise<boolean>;
70
109
  set viewInfo(viewInfo: View);
71
110
  get isTreeEmpty(): boolean;
72
111
  get onDidChangeWelcomeState(): Event<void>;
112
+ doOpenNode(node: TreeNode): void;
73
113
  }
74
114
  export declare class TreeViewWidget extends TreeViewWelcomeWidget {
75
115
  protected _contextSelection: boolean;
@@ -94,9 +134,9 @@ export declare class TreeViewWidget extends TreeViewWelcomeWidget {
94
134
  clearFlag(flag: Widget.Flag): void;
95
135
  handleEnter(event: KeyboardEvent): void;
96
136
  protected tapNode(node?: TreeNode): void;
97
- protected tryExecuteCommand(node?: TreeNode): void;
137
+ protected tryExecuteCommand(node?: TreeNode): Promise<void>;
98
138
  protected tryExecuteCommandMap(commandMap: Map<string, unknown[]>): void;
99
- protected findCommands(node?: TreeNode): Map<string, unknown[]>;
139
+ protected findCommands(node?: TreeNode): Promise<Map<string, unknown[]>>;
100
140
  private _message;
101
141
  get message(): string | undefined;
102
142
  set message(message: string | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"tree-view-widget.d.ts","sourceRoot":"","sources":["../../../../src/main/browser/view/tree-view-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-view-widget.d.ts","sourceRoot":"","sources":["../../../../src/main/browser/view/tree-view-widget.tsx"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
24
24
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.TreeViewWidget = exports.PluginTreeModel = exports.PluginTree = exports.TreeViewWidgetIdentifier = exports.CompositeTreeViewNode = exports.TreeViewNode = exports.VIEW_ITEM_INLINE_MENU = exports.VIEW_ITEM_CONTEXT_MENU = exports.TREE_NODE_HYPERLINK = void 0;
27
+ exports.TreeViewWidget = exports.PluginTreeModel = exports.PluginTree = exports.TreeViewWidgetIdentifier = exports.CompositeTreeViewNode = exports.ResolvableCompositeTreeViewNode = exports.ResolvableTreeViewNode = exports.TreeViewNode = exports.VIEW_ITEM_INLINE_MENU = exports.VIEW_ITEM_CONTEXT_MENU = exports.TREE_NODE_HYPERLINK = void 0;
28
28
  const vscode_uri_1 = require("@theia/core/shared/vscode-uri");
29
29
  const inversify_1 = require("@theia/core/shared/inversify");
30
30
  const plugin_api_rpc_1 = require("../../../common/plugin-api-rpc");
@@ -42,9 +42,12 @@ const markdown_rendering_1 = require("@theia/core/lib/common/markdown-rendering"
42
42
  const label_parser_1 = require("@theia/core/lib/browser/label-parser");
43
43
  const color_registry_1 = require("@theia/core/lib/browser/color-registry");
44
44
  const tree_decorator_1 = require("@theia/core/lib/browser/tree/tree-decorator");
45
+ const common_1 = require("@theia/core/lib/common");
46
+ const types_1 = require("../../../common/types");
47
+ const promise_util_1 = require("@theia/core/lib/common/promise-util");
45
48
  exports.TREE_NODE_HYPERLINK = 'theia-TreeNodeHyperlink';
46
49
  exports.VIEW_ITEM_CONTEXT_MENU = ['view-item-context-menu'];
47
- exports.VIEW_ITEM_INLINE_MENU = ['view-item-inline-menu'];
50
+ exports.VIEW_ITEM_INLINE_MENU = ['view-item-context-menu', 'inline'];
48
51
  var TreeViewNode;
49
52
  (function (TreeViewNode) {
50
53
  function is(arg) {
@@ -52,6 +55,49 @@ var TreeViewNode;
52
55
  }
53
56
  TreeViewNode.is = is;
54
57
  })(TreeViewNode = exports.TreeViewNode || (exports.TreeViewNode = {}));
58
+ class ResolvableTreeViewNode {
59
+ constructor(treeViewNode, resolve) {
60
+ this._resolved = false;
61
+ (0, types_1.mixin)(this, treeViewNode);
62
+ this.resolve = async (token) => {
63
+ var _a, _b;
64
+ if (this.resolving) {
65
+ return this.resolving.promise;
66
+ }
67
+ if (!this._resolved) {
68
+ this.resolving = new promise_util_1.Deferred();
69
+ const resolvedTreeItem = await resolve(token);
70
+ if (resolvedTreeItem) {
71
+ this.command = (_a = this.command) !== null && _a !== void 0 ? _a : resolvedTreeItem.command;
72
+ this.tooltip = (_b = this.tooltip) !== null && _b !== void 0 ? _b : resolvedTreeItem.tooltip;
73
+ }
74
+ this.resolving.resolve();
75
+ this.resolving = undefined;
76
+ }
77
+ if (!token.isCancellationRequested) {
78
+ this._resolved = true;
79
+ }
80
+ };
81
+ }
82
+ reset() {
83
+ this._resolved = false;
84
+ this.resolving = undefined;
85
+ this.command = undefined;
86
+ this.tooltip = undefined;
87
+ }
88
+ get resolved() {
89
+ return this._resolved;
90
+ }
91
+ }
92
+ exports.ResolvableTreeViewNode = ResolvableTreeViewNode;
93
+ class ResolvableCompositeTreeViewNode extends ResolvableTreeViewNode {
94
+ constructor(treeViewNode, resolve) {
95
+ super(treeViewNode, resolve);
96
+ this.expanded = treeViewNode.expanded;
97
+ this.children = treeViewNode.children;
98
+ }
99
+ }
100
+ exports.ResolvableCompositeTreeViewNode = ResolvableCompositeTreeViewNode;
55
101
  var CompositeTreeViewNode;
56
102
  (function (CompositeTreeViewNode) {
57
103
  function is(arg) {
@@ -70,13 +116,23 @@ let PluginTree = class PluginTree extends browser_1.TreeImpl {
70
116
  super(...arguments);
71
117
  this.onDidChangeWelcomeStateEmitter = new event_1.Emitter();
72
118
  this.onDidChangeWelcomeState = this.onDidChangeWelcomeStateEmitter.event;
119
+ this._hasTreeItemResolve = Promise.resolve(false);
73
120
  }
74
121
  set proxy(proxy) {
75
122
  this._proxy = proxy;
123
+ if (proxy) {
124
+ this._hasTreeItemResolve = proxy.$hasResolveTreeItem(this.identifier.id);
125
+ }
126
+ else {
127
+ this._hasTreeItemResolve = Promise.resolve(false);
128
+ }
76
129
  }
77
130
  get proxy() {
78
131
  return this._proxy;
79
132
  }
133
+ get hasTreeItemResolve() {
134
+ return this._hasTreeItemResolve;
135
+ }
80
136
  set viewInfo(viewInfo) {
81
137
  this._viewInfo = viewInfo;
82
138
  }
@@ -88,7 +144,8 @@ let PluginTree = class PluginTree extends browser_1.TreeImpl {
88
144
  return super.resolveChildren(parent);
89
145
  }
90
146
  const children = await this.fetchChildren(this._proxy, parent);
91
- return children.map(value => this.createTreeNode(value, parent));
147
+ const hasResolve = await this.hasTreeItemResolve;
148
+ return children.map(value => hasResolve ? this.createResolvableTreeNode(value, parent) : this.createTreeNode(value, parent));
92
149
  }
93
150
  async fetchChildren(proxy, parent) {
94
151
  try {
@@ -110,22 +167,7 @@ let PluginTree = class PluginTree extends browser_1.TreeImpl {
110
167
  }
111
168
  }
112
169
  createTreeNode(item, parent) {
113
- const decorationData = this.toDecorationData(item);
114
- const icon = this.toIconClass(item);
115
- const resourceUri = item.resourceUri && vscode_uri_1.URI.revive(item.resourceUri).toString();
116
- const themeIcon = item.themeIcon ? item.themeIcon : item.collapsibleState !== plugin_api_rpc_1.TreeViewItemCollapsibleState.None ? { id: 'folder' } : undefined;
117
- const update = {
118
- name: item.label,
119
- decorationData,
120
- icon,
121
- description: item.description,
122
- themeIcon,
123
- resourceUri,
124
- tooltip: item.tooltip,
125
- contextValue: item.contextValue,
126
- command: item.command,
127
- accessibilityInformation: item.accessibilityInformation,
128
- };
170
+ const update = this.createTreeNodeUpdate(item);
129
171
  const node = this.getNode(item.id);
130
172
  if (item.collapsibleState !== undefined && item.collapsibleState !== plugin_api_rpc_1.TreeViewItemCollapsibleState.None) {
131
173
  if (CompositeTreeViewNode.is(node)) {
@@ -152,6 +194,62 @@ let PluginTree = class PluginTree extends browser_1.TreeImpl {
152
194
  command: item.command,
153
195
  }, update);
154
196
  }
197
+ /** Creates a resolvable tree node. If a node already exists, reset it because the underlying TreeViewItem might have been disposed in the backend. */
198
+ createResolvableTreeNode(item, parent) {
199
+ const update = this.createTreeNodeUpdate(item);
200
+ const node = this.getNode(item.id);
201
+ // Node is a composite node that might contain children
202
+ if (item.collapsibleState !== undefined && item.collapsibleState !== plugin_api_rpc_1.TreeViewItemCollapsibleState.None) {
203
+ // Reuse existing composite node and reset it
204
+ if (node instanceof ResolvableCompositeTreeViewNode) {
205
+ node.reset();
206
+ return Object.assign(node, update);
207
+ }
208
+ // Create new composite node
209
+ const compositeNode = Object.assign({
210
+ id: item.id,
211
+ parent,
212
+ visible: true,
213
+ selected: false,
214
+ expanded: plugin_api_rpc_1.TreeViewItemCollapsibleState.Expanded === item.collapsibleState,
215
+ children: [],
216
+ command: item.command
217
+ }, update);
218
+ return new ResolvableCompositeTreeViewNode(compositeNode, async (token) => { var _a; return (_a = this._proxy) === null || _a === void 0 ? void 0 : _a.$resolveTreeItem(this.identifier.id, item.id, token); });
219
+ }
220
+ // Node is a leaf
221
+ // Reuse existing node and reset it.
222
+ if (node instanceof ResolvableTreeViewNode && !browser_1.ExpandableTreeNode.is(node)) {
223
+ node.reset();
224
+ return Object.assign(node, update);
225
+ }
226
+ const treeNode = Object.assign({
227
+ id: item.id,
228
+ parent,
229
+ visible: true,
230
+ selected: false,
231
+ command: item.command,
232
+ }, update);
233
+ return new ResolvableTreeViewNode(treeNode, async (token) => { var _a; return (_a = this._proxy) === null || _a === void 0 ? void 0 : _a.$resolveTreeItem(this.identifier.id, item.id, token); });
234
+ }
235
+ createTreeNodeUpdate(item) {
236
+ const decorationData = this.toDecorationData(item);
237
+ const icon = this.toIconClass(item);
238
+ const resourceUri = item.resourceUri && vscode_uri_1.URI.revive(item.resourceUri).toString();
239
+ const themeIcon = item.themeIcon ? item.themeIcon : item.collapsibleState !== plugin_api_rpc_1.TreeViewItemCollapsibleState.None ? { id: 'folder' } : undefined;
240
+ return {
241
+ name: item.label,
242
+ decorationData,
243
+ icon,
244
+ description: item.description,
245
+ themeIcon,
246
+ resourceUri,
247
+ tooltip: item.tooltip,
248
+ contextValue: item.contextValue,
249
+ command: item.command,
250
+ accessibilityInformation: item.accessibilityInformation,
251
+ };
252
+ }
155
253
  toDecorationData(item) {
156
254
  let decoration = {};
157
255
  if (item.highlights) {
@@ -197,6 +295,9 @@ let PluginTreeModel = class PluginTreeModel extends browser_1.TreeModelImpl {
197
295
  get proxy() {
198
296
  return this.tree.proxy;
199
297
  }
298
+ get hasTreeItemResolve() {
299
+ return this.tree.hasTreeItemResolve;
300
+ }
200
301
  set viewInfo(viewInfo) {
201
302
  this.tree.viewInfo = viewInfo;
202
303
  }
@@ -206,6 +307,12 @@ let PluginTreeModel = class PluginTreeModel extends browser_1.TreeModelImpl {
206
307
  get onDidChangeWelcomeState() {
207
308
  return this.tree.onDidChangeWelcomeState;
208
309
  }
310
+ doOpenNode(node) {
311
+ super.doOpenNode(node);
312
+ if (node instanceof ResolvableTreeViewNode) {
313
+ node.resolve(common_1.CancellationToken.None);
314
+ }
315
+ }
209
316
  };
210
317
  __decorate([
211
318
  (0, inversify_1.inject)(PluginTree),
@@ -230,6 +337,7 @@ let TreeViewWidget = class TreeViewWidget extends browser_1.TreeViewWelcomeWidge
230
337
  this.model.onDidChangeWelcomeState(this.update, this);
231
338
  this.toDispose.push(this.model.onDidChangeWelcomeState(this.update, this));
232
339
  this.toDispose.push(this.onDidChangeVisibilityEmitter);
340
+ this.toDispose.push(this.contextKeyService.onDidChange(() => this.update()));
233
341
  }
234
342
  markdownItPlugin() {
235
343
  this.markdownIt.renderer.rules.text = (tokens, idx) => {
@@ -267,7 +375,37 @@ let TreeViewWidget = class TreeViewWidget extends browser_1.TreeViewWelcomeWidge
267
375
  if (node.accessibilityInformation) {
268
376
  attrs = Object.assign(Object.assign({}, attrs), { 'aria-label': node.accessibilityInformation.label, 'role': node.accessibilityInformation.role });
269
377
  }
270
- if (node.tooltip && markdown_rendering_1.MarkdownString.is(node.tooltip)) {
378
+ const elementRef = React.createRef();
379
+ if (!node.tooltip && node instanceof ResolvableTreeViewNode) {
380
+ let configuredTip = false;
381
+ let source;
382
+ attrs = Object.assign(Object.assign({}, attrs), { 'data-for': this.tooltipService.tooltipId, onMouseLeave: () => source === null || source === void 0 ? void 0 : source.cancel(), onMouseEnter: async () => {
383
+ if (configuredTip) {
384
+ return;
385
+ }
386
+ if (!node.resolved) {
387
+ source = new common_1.CancellationTokenSource();
388
+ const token = source.token;
389
+ await node.resolve(token);
390
+ if (token.isCancellationRequested) {
391
+ return;
392
+ }
393
+ }
394
+ if (elementRef.current) {
395
+ // Set the resolved tooltip. After an HTML element was created data-* properties must be accessed via the dataset
396
+ elementRef.current.dataset.tip = markdown_rendering_1.MarkdownString.is(node.tooltip) ? this.markdownIt.render(node.tooltip.value) : node.tooltip;
397
+ this.tooltipService.update();
398
+ configuredTip = true;
399
+ // Manually fire another mouseenter event to get react-tooltip to update the tooltip content.
400
+ // Without this, the resolved tooltip is only shown after re-entering the tree item with the mouse.
401
+ elementRef.current.dispatchEvent(new MouseEvent('mouseenter'));
402
+ }
403
+ else {
404
+ console.error(`Could not set resolved tooltip for tree node '${node.id}' because its React Ref was not set.`);
405
+ }
406
+ } });
407
+ }
408
+ else if (markdown_rendering_1.MarkdownString.is(node.tooltip)) {
271
409
  // Render markdown in custom tooltip
272
410
  const tooltip = this.markdownIt.render(node.tooltip.value);
273
411
  attrs = Object.assign(Object.assign({}, attrs), { 'data-tip': tooltip, 'data-for': this.tooltipService.tooltipId });
@@ -295,7 +433,7 @@ let TreeViewWidget = class TreeViewWidget extends browser_1.TreeViewWelcomeWidge
295
433
  if (description) {
296
434
  children.push(React.createElement("span", { className: 'theia-tree-view-description' }, description));
297
435
  }
298
- return React.createElement('div', attrs, ...children);
436
+ return React.createElement("div", Object.assign({}, attrs, { ref: elementRef }), ...children);
299
437
  }
300
438
  renderTailDecorations(node, props) {
301
439
  return this.contextKeys.with({ view: this.id, viewItem: node.contextValue }, () => {
@@ -345,26 +483,41 @@ let TreeViewWidget = class TreeViewWidget extends browser_1.TreeViewWelcomeWidge
345
483
  }
346
484
  tapNode(node) {
347
485
  super.tapNode(node);
348
- const commandMap = this.findCommands(node);
349
- if (commandMap.size > 0) {
350
- this.tryExecuteCommandMap(commandMap);
351
- }
352
- else if (node && this.isExpandable(node)) {
353
- this.model.toggleNodeExpansion(node);
354
- }
486
+ this.findCommands(node).then(commandMap => {
487
+ if (commandMap.size > 0) {
488
+ this.tryExecuteCommandMap(commandMap);
489
+ }
490
+ else if (node && this.isExpandable(node)) {
491
+ this.model.toggleNodeExpansion(node);
492
+ }
493
+ });
355
494
  }
356
495
  // execute TreeItem.command if present
357
- tryExecuteCommand(node) {
358
- this.tryExecuteCommandMap(this.findCommands(node));
496
+ async tryExecuteCommand(node) {
497
+ this.tryExecuteCommandMap(await this.findCommands(node));
359
498
  }
360
499
  tryExecuteCommandMap(commandMap) {
361
500
  commandMap.forEach((args, commandId) => {
362
501
  this.commands.executeCommand(commandId, ...args);
363
502
  });
364
503
  }
365
- findCommands(node) {
504
+ async findCommands(node) {
366
505
  const commandMap = new Map();
367
506
  const treeNodes = (node ? [node] : this.model.selectedNodes);
507
+ if (await this.model.hasTreeItemResolve) {
508
+ const cancellationToken = new common_1.CancellationTokenSource().token;
509
+ // Resolve all resolvable nodes that don't have a command and haven't been resolved.
510
+ const allResolved = Promise.all(treeNodes.map(maybeNeedsResolve => {
511
+ if (!maybeNeedsResolve.command && maybeNeedsResolve instanceof ResolvableTreeViewNode && !maybeNeedsResolve.resolved) {
512
+ return maybeNeedsResolve.resolve(cancellationToken).catch(err => {
513
+ console.error(`Failed to resolve tree item '${maybeNeedsResolve.id}'`, err);
514
+ });
515
+ }
516
+ return Promise.resolve(maybeNeedsResolve);
517
+ }));
518
+ // Only need to wait but don't need the values because tree items are resolved in place.
519
+ await allResolved;
520
+ }
368
521
  for (const treeNode of treeNodes) {
369
522
  if (treeNode && treeNode.command) {
370
523
  commandMap.set(treeNode.command.id, treeNode.command.arguments || []);