@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.
- package/lib/common/cache.d.ts +12 -0
- package/lib/common/cache.d.ts.map +1 -0
- package/lib/common/cache.js +48 -0
- package/lib/common/cache.js.map +1 -0
- package/lib/common/plugin-api-rpc-model.d.ts +61 -0
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc-model.js +6 -1
- package/lib/common/plugin-api-rpc-model.js.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +29 -2
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +15 -12
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/main/browser/languages-main.d.ts +8 -1
- package/lib/main/browser/languages-main.d.ts.map +1 -1
- package/lib/main/browser/languages-main.js +89 -1
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +16 -18
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.js +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +2 -2
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js +16 -16
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
- package/lib/main/browser/terminal-main.d.ts +7 -1
- package/lib/main/browser/terminal-main.d.ts.map +1 -1
- package/lib/main/browser/terminal-main.js +23 -1
- package/lib/main/browser/terminal-main.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.d.ts +43 -3
- package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +184 -31
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/plugin/custom-editors.d.ts.map +1 -1
- package/lib/plugin/custom-editors.js +2 -29
- package/lib/plugin/custom-editors.js.map +1 -1
- package/lib/plugin/languages/inlay-hints.d.ts +20 -0
- package/lib/plugin/languages/inlay-hints.d.ts.map +1 -0
- package/lib/plugin/languages/inlay-hints.js +128 -0
- package/lib/plugin/languages/inlay-hints.js.map +1 -0
- package/lib/plugin/languages/inline-values.d.ts +11 -0
- package/lib/plugin/languages/inline-values.d.ts.map +1 -0
- package/lib/plugin/languages/inline-values.js +45 -0
- package/lib/plugin/languages/inline-values.js.map +1 -0
- package/lib/plugin/languages.d.ts +8 -2
- package/lib/plugin/languages.d.ts.map +1 -1
- package/lib/plugin/languages.js +40 -0
- package/lib/plugin/languages.js.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +18 -3
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/terminal-ext.d.ts +11 -1
- package/lib/plugin/terminal-ext.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.js +44 -0
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/tree/tree-views.d.ts +5 -1
- package/lib/plugin/tree/tree-views.d.ts.map +1 -1
- package/lib/plugin/tree/tree-views.js +28 -1
- package/lib/plugin/tree/tree-views.js.map +1 -1
- package/lib/plugin/type-converters.d.ts +7 -1
- package/lib/plugin/type-converters.d.ts.map +1 -1
- package/lib/plugin/type-converters.js +51 -4
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/types-impl.d.ts +60 -2
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +140 -5
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/types-impl.spec.js +14 -0
- package/lib/plugin/types-impl.spec.js.map +1 -1
- package/lib/plugin/workspace.js +1 -1
- package/lib/plugin/workspace.js.map +1 -1
- package/package.json +24 -24
- package/src/common/cache.ts +51 -0
- package/src/common/plugin-api-rpc-model.ts +68 -0
- package/src/common/plugin-api-rpc.ts +36 -2
- package/src/hosted/browser/hosted-plugin.ts +9 -9
- package/src/main/browser/languages-main.ts +120 -4
- package/src/main/browser/menus/menus-contribution-handler.ts +19 -21
- package/src/main/browser/menus/plugin-menu-command-adapter.ts +1 -1
- package/src/main/browser/menus/vscode-theia-menu-mappings.ts +17 -17
- package/src/main/browser/terminal-main.ts +29 -2
- package/src/main/browser/view/tree-view-widget.tsx +220 -30
- package/src/plugin/custom-editors.ts +1 -33
- package/src/plugin/languages/inlay-hints.ts +149 -0
- package/src/plugin/languages/inline-values.ts +50 -0
- package/src/plugin/languages.ts +57 -1
- package/src/plugin/plugin-context.ts +28 -5
- package/src/plugin/terminal-ext.ts +54 -2
- package/src/plugin/tree/tree-views.ts +40 -2
- package/src/plugin/type-converters.ts +47 -5
- package/src/plugin/types-impl.spec.ts +16 -0
- package/src/plugin/types-impl.ts +152 -4
- 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;
|
|
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;
|
|
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":";AAkBA,OAAO,EAAE,YAAY,EAAgC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACxI,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EACH,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EAIR,aAAa,EACb,qBAAqB,EACrB,cAAc,EAEjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAwB,MAAM,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;
|
|
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-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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 || []);
|