@theia/plugin-ext 1.66.0-next.0 → 1.66.0-next.12
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/plugin-api-rpc.d.ts +95 -89
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +1 -0
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/main/browser/main-context.js +1 -1
- package/lib/main/browser/main-context.js.map +1 -1
- package/lib/main/browser/status-bar-message-registry-main.d.ts +4 -2
- package/lib/main/browser/status-bar-message-registry-main.d.ts.map +1 -1
- package/lib/main/browser/status-bar-message-registry-main.js +5 -2
- package/lib/main/browser/status-bar-message-registry-main.js.map +1 -1
- package/lib/plugin/plugin-context.js +1 -1
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/status-bar/status-bar-item.d.ts +6 -1
- package/lib/plugin/status-bar/status-bar-item.d.ts.map +1 -1
- package/lib/plugin/status-bar/status-bar-item.js +68 -46
- package/lib/plugin/status-bar/status-bar-item.js.map +1 -1
- package/lib/plugin/status-bar-message-registry.d.ts +7 -4
- package/lib/plugin/status-bar-message-registry.d.ts.map +1 -1
- package/lib/plugin/status-bar-message-registry.js +18 -4
- package/lib/plugin/status-bar-message-registry.js.map +1 -1
- package/package.json +29 -29
- package/src/common/plugin-api-rpc.ts +11 -5
- package/src/main/browser/main-context.ts +1 -1
- package/src/main/browser/status-bar-message-registry-main.ts +9 -4
- package/src/plugin/plugin-context.ts +2 -2
- package/src/plugin/status-bar/status-bar-item.ts +81 -55
- package/src/plugin/status-bar-message-registry.ts +19 -5
|
@@ -6,9 +6,10 @@ const coreutils_1 = require("@theia/core/shared/@lumino/coreutils");
|
|
|
6
6
|
const markdown_string_1 = require("../markdown-string");
|
|
7
7
|
const disposable_1 = require("@theia/core/lib/common/disposable");
|
|
8
8
|
class StatusBarItemImpl {
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(proxy, commandRegistry, alignment = types_impl_1.StatusBarAlignment.Left, priority = 0, id = StatusBarItemImpl.nextId(), onDispose) {
|
|
10
10
|
this.commandRegistry = commandRegistry;
|
|
11
|
-
this.
|
|
11
|
+
this.onDispose = onDispose;
|
|
12
|
+
this._proxy = proxy;
|
|
12
13
|
this._alignment = alignment;
|
|
13
14
|
this._priority = priority;
|
|
14
15
|
this._id = id;
|
|
@@ -31,6 +32,16 @@ class StatusBarItemImpl {
|
|
|
31
32
|
get tooltip() {
|
|
32
33
|
return this._tooltip;
|
|
33
34
|
}
|
|
35
|
+
get tooltip2() {
|
|
36
|
+
if (typeof this._tooltip2 === 'function') {
|
|
37
|
+
const getTooltip = this._tooltip2.bind(this);
|
|
38
|
+
return (token) => Promise.resolve(getTooltip(token)).then(res => {
|
|
39
|
+
this.processTooltip(res);
|
|
40
|
+
return res;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return this._tooltip2;
|
|
44
|
+
}
|
|
34
45
|
get color() {
|
|
35
46
|
return this._color;
|
|
36
47
|
}
|
|
@@ -51,49 +62,13 @@ class StatusBarItemImpl {
|
|
|
51
62
|
this._text = text;
|
|
52
63
|
this.update();
|
|
53
64
|
}
|
|
65
|
+
set tooltip2(tooltip) {
|
|
66
|
+
this.processTooltip(tooltip);
|
|
67
|
+
this._tooltip2 = tooltip;
|
|
68
|
+
this.update();
|
|
69
|
+
}
|
|
54
70
|
set tooltip(tooltip) {
|
|
55
|
-
|
|
56
|
-
const markdownTooltip = tooltip;
|
|
57
|
-
const content = markdownTooltip.value;
|
|
58
|
-
// Find all command links in the markdown content
|
|
59
|
-
const regex = /\[([^\]]+)\]\(command:([^?\s\)]+)(?:\?([^\s\)]+))?([^\)]*)\)/g;
|
|
60
|
-
let match;
|
|
61
|
-
let updatedContent = content;
|
|
62
|
-
while ((match = regex.exec(content)) !== null) {
|
|
63
|
-
const linkText = match[1];
|
|
64
|
-
const commandId = match[2];
|
|
65
|
-
const argsEncoded = match[3]; // This captures the encoded arguments
|
|
66
|
-
const tooltipPart = match[4] || ''; // This captures any tooltip or additional content after the command and args
|
|
67
|
-
let args = [];
|
|
68
|
-
if (argsEncoded) {
|
|
69
|
-
try {
|
|
70
|
-
const decoded = decodeURIComponent(argsEncoded);
|
|
71
|
-
args = JSON.parse(decoded);
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
console.error('Failed to parse command arguments:', e);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const safeCommand = this.commandRegistry.converter.toSafeCommand({
|
|
78
|
-
command: commandId,
|
|
79
|
-
title: linkText,
|
|
80
|
-
arguments: Array.isArray(args) ? args : [args]
|
|
81
|
-
}, new disposable_1.DisposableCollection());
|
|
82
|
-
if (safeCommand === null || safeCommand === void 0 ? void 0 : safeCommand.id) {
|
|
83
|
-
let newArgsPart = '';
|
|
84
|
-
if (safeCommand.arguments && safeCommand.arguments.length > 0) {
|
|
85
|
-
newArgsPart = `?${encodeURIComponent(JSON.stringify(safeCommand.arguments))}`;
|
|
86
|
-
}
|
|
87
|
-
const argsPart = argsEncoded ? `?${argsEncoded}` : '';
|
|
88
|
-
const originalLink = `[${linkText}](command:${commandId}${argsPart}${tooltipPart})`;
|
|
89
|
-
const safeLink = `[${linkText}](command:${safeCommand.id}${newArgsPart}${tooltipPart})`;
|
|
90
|
-
updatedContent = updatedContent.replace(originalLink, safeLink);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (updatedContent !== content) {
|
|
94
|
-
markdownTooltip.value = updatedContent;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
71
|
+
this.processTooltip(tooltip);
|
|
97
72
|
this._tooltip = tooltip;
|
|
98
73
|
this.update();
|
|
99
74
|
}
|
|
@@ -129,6 +104,50 @@ class StatusBarItemImpl {
|
|
|
129
104
|
this._proxy.$dispose(this.id);
|
|
130
105
|
this._isVisible = false;
|
|
131
106
|
}
|
|
107
|
+
processTooltip(tooltip) {
|
|
108
|
+
if (!markdown_string_1.MarkdownString.isMarkdownString(tooltip)) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const content = tooltip.value;
|
|
112
|
+
// Find all command links in the markdown content
|
|
113
|
+
const regex = /\[([^\]]+)\]\(command:([^?\s\)]+)(?:\?([^\s\)]+))?([^\)]*)\)/g;
|
|
114
|
+
let match;
|
|
115
|
+
let updatedContent = content;
|
|
116
|
+
while ((match = regex.exec(content)) !== null) {
|
|
117
|
+
const linkText = match[1];
|
|
118
|
+
const commandId = match[2];
|
|
119
|
+
const argsEncoded = match[3]; // This captures the encoded arguments
|
|
120
|
+
const tooltipPart = match[4] || ''; // This captures any tooltip or additional content after the command and args
|
|
121
|
+
let args = [];
|
|
122
|
+
if (argsEncoded) {
|
|
123
|
+
try {
|
|
124
|
+
const decoded = decodeURIComponent(argsEncoded);
|
|
125
|
+
args = JSON.parse(decoded);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
console.error('Failed to parse command arguments:', e);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const safeCommand = this.commandRegistry.converter.toSafeCommand({
|
|
132
|
+
command: commandId,
|
|
133
|
+
title: linkText,
|
|
134
|
+
arguments: Array.isArray(args) ? args : [args]
|
|
135
|
+
}, new disposable_1.DisposableCollection());
|
|
136
|
+
if (safeCommand === null || safeCommand === void 0 ? void 0 : safeCommand.id) {
|
|
137
|
+
let newArgsPart = '';
|
|
138
|
+
if (safeCommand.arguments && safeCommand.arguments.length > 0) {
|
|
139
|
+
newArgsPart = `?${encodeURIComponent(JSON.stringify(safeCommand.arguments))}`;
|
|
140
|
+
}
|
|
141
|
+
const argsPart = argsEncoded ? `?${argsEncoded}` : '';
|
|
142
|
+
const originalLink = `[${linkText}](command:${commandId}${argsPart}${tooltipPart})`;
|
|
143
|
+
const safeLink = `[${linkText}](command:${safeCommand.id}${newArgsPart}${tooltipPart})`;
|
|
144
|
+
updatedContent = updatedContent.replace(originalLink, safeLink);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (updatedContent !== content) {
|
|
148
|
+
tooltip.value = updatedContent;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
132
151
|
update() {
|
|
133
152
|
if (!this._isVisible) {
|
|
134
153
|
return;
|
|
@@ -138,7 +157,7 @@ class StatusBarItemImpl {
|
|
|
138
157
|
}
|
|
139
158
|
// Defer the update so that multiple changes to setters don't cause a redraw each
|
|
140
159
|
this._timeoutHandle = setTimeout(() => {
|
|
141
|
-
var _a;
|
|
160
|
+
var _a, _b;
|
|
142
161
|
this._timeoutHandle = undefined;
|
|
143
162
|
const commandId = typeof this.command === 'object' ? this.command.command : this.command;
|
|
144
163
|
const args = typeof this.command === 'object' ? this.command.arguments : undefined;
|
|
@@ -147,11 +166,14 @@ class StatusBarItemImpl {
|
|
|
147
166
|
// If an error or warning background color is set, set the corresponding foreground color
|
|
148
167
|
color = StatusBarItemImpl.BACKGROUND_COLORS.get(this.backgroundColor.id);
|
|
149
168
|
}
|
|
169
|
+
const tooltip = typeof this._tooltip2 === 'function' ? true : (_a = this._tooltip2) !== null && _a !== void 0 ? _a : this.tooltip;
|
|
150
170
|
// Set to status bar
|
|
151
|
-
this._proxy.$setMessage(this.id, this.name, this.text, this.priority, this.alignment, typeof color === 'string' ? color : color === null || color === void 0 ? void 0 : color.id, (
|
|
171
|
+
this._proxy.$setMessage(this.id, this.name, this.text, this.priority, this.alignment, typeof color === 'string' ? color : color === null || color === void 0 ? void 0 : color.id, (_b = this.backgroundColor) === null || _b === void 0 ? void 0 : _b.id, tooltip, commandId, this.accessibilityInformation, args);
|
|
152
172
|
}, 0);
|
|
153
173
|
}
|
|
154
174
|
dispose() {
|
|
175
|
+
var _a;
|
|
176
|
+
(_a = this.onDispose) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
155
177
|
this.hide();
|
|
156
178
|
}
|
|
157
179
|
static nextId() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar-item.js","sourceRoot":"","sources":["../../../src/plugin/status-bar/status-bar-item.ts"],"names":[],"mappings":";;;AAgBA,8CAA+D;AAE/D,oEAA4D;AAE5D,wDAAoD;AACpD,kEAAyE;AAEzE,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"status-bar-item.js","sourceRoot":"","sources":["../../../src/plugin/status-bar/status-bar-item.ts"],"names":[],"mappings":";;;AAgBA,8CAA+D;AAE/D,oEAA4D;AAE5D,wDAAoD;AACpD,kEAAyE;AAEzE,MAAa,iBAAiB;IA2B1B,YAAY,KAAmC,EAC1B,eAAoC,EACrD,YAAgC,+BAAkB,CAAC,IAAI,EACvD,WAAmB,CAAC,EACpB,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,EACvB,SAAsB;QAJb,oBAAe,GAAf,eAAe,CAAqB;QAI7C,cAAS,GAAT,SAAS,CAAa;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,QAAQ;QACf,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,CAAC,KAA8B,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACrF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO,GAAG,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,wBAAwB;QAC/B,OAAO,IAAI,CAAC,yBAAyB,CAAC;IAC1C,CAAC;IAED,IAAW,IAAI,CAAC,IAAwB;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,IAAI,CAAC,IAAY;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,QAAQ,CAAC,OAA8I;QAC9J,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,OAAO,CAAC,OAAkD;QACjE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,KAAK,CAAC,KAAsC;QACnD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,eAAe,CAAC,eAAuC;QAC9D,IAAI,eAAe,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAC5C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,OAAO,CAAC,OAA+B;QAC9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,IAAW,wBAAwB,CAAC,WAA2C;QAC3E,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAEM,IAAI;QACP,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEO,cAAc,CAAC,OAA8I;QACjK,IAAI,CAAC,gCAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO;QACX,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,iDAAiD;QACjD,MAAM,KAAK,GAAG,+DAA+D,CAAC;QAC9E,IAAI,KAAK,CAAC;QACV,IAAI,cAAc,GAAG,OAAO,CAAC;QAE7B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,sCAAsC;YACpE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,6EAA6E;YAEjH,IAAI,IAAI,GAAc,EAAE,CAAC;YACzB,IAAI,WAAW,EAAE,CAAC;gBACd,IAAI,CAAC;oBACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBAChD,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;YACL,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,aAAa,CAC5D;gBACI,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aACjD,EACD,IAAI,iCAAoB,EAAE,CAC7B,CAAC;YAEF,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,EAAE,CAAC;gBAClB,IAAI,WAAW,GAAG,EAAE,CAAC;gBACrB,IAAI,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5D,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAClF,CAAC;gBAED,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,MAAM,YAAY,GAAG,IAAI,QAAQ,aAAa,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,CAAC;gBACpF,MAAM,QAAQ,GAAG,IAAI,QAAQ,aAAa,WAAW,CAAC,EAAE,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC;gBACxF,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAED,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC;QACnC,CAAC;IACL,CAAC;IAEO,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QACD,iFAAiF;QACjF,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAEhC,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YACzF,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAEnF,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,yFAAyF;gBACzF,KAAK,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,SAAS,mCAAI,IAAI,CAAC,OAAO,CAAC;YAE7F,oBAAoB;YACpB,IAAI,CAAC,MAAM,CAAC,WAAW,CACnB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,EAC7C,MAAA,IAAI,CAAC,eAAe,0CAAE,EAAE,EACxB,OAAO,EACP,SAAS,EACT,IAAI,CAAC,wBAAwB,EAC7B,IAAI,CAAC,CAAC;QACd,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAEM,OAAO;;QACV,MAAA,IAAI,CAAC,SAAS,oDAAI,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,MAAM;QACT,OAAO,iBAAiB,CAAC,SAAS,GAAG,GAAG,GAAG,gBAAI,CAAC,KAAK,EAAE,CAAC;IAC5D,CAAC;;AAvPL,8CAyPC;AAvPG,6EAA6E;AAC9D,mCAAiB,GAAG,IAAI,GAAG,CAAiB;IACvD,CAAC,+BAA+B,EAAE,+BAA+B,CAAC;IAClE,CAAC,iCAAiC,EAAE,iCAAiC,CAAC;CACzE,CAAC,CAAC;AAkPI,2BAAS,GAAG,wBAAwB,CAAC"}
|
|
@@ -26,22 +26,25 @@
|
|
|
26
26
|
/// <reference types="@theia/plugin/src/theia.proposed.textSearchProvider" />
|
|
27
27
|
/// <reference types="@theia/plugin/src/theia.proposed.timeline" />
|
|
28
28
|
import { Disposable, StatusBarAlignment } from './types-impl';
|
|
29
|
-
import { StatusBarItem } from '@theia/plugin';
|
|
30
|
-
import { StatusBarMessageRegistryMain } from '../common/plugin-api-rpc';
|
|
29
|
+
import { CancellationToken, ProviderResult, StatusBarItem } from '@theia/plugin';
|
|
30
|
+
import { StatusBarMessageRegistryMain, StatusBarMessageRegistryExt } from '../common/plugin-api-rpc';
|
|
31
31
|
import { RPCProtocol } from '../common/rpc-protocol';
|
|
32
32
|
import { CommandRegistryImpl } from './command-registry';
|
|
33
|
-
|
|
33
|
+
import { MarkdownString } from '../common/plugin-api-rpc-model';
|
|
34
|
+
export declare class StatusBarMessageRegistryExtImpl implements StatusBarMessageRegistryExt {
|
|
34
35
|
readonly commandRegistry: CommandRegistryImpl;
|
|
36
|
+
private readonly items;
|
|
35
37
|
proxy: StatusBarMessageRegistryMain;
|
|
36
38
|
protected readonly statusMessage: StatusBarMessage;
|
|
37
39
|
constructor(rpc: RPCProtocol, commandRegistry: CommandRegistryImpl);
|
|
40
|
+
$getMessage(id: string, cancellation: CancellationToken): ProviderResult<string | MarkdownString>;
|
|
38
41
|
setStatusBarMessage(text: string, timeoutOrThenable?: number | PromiseLike<any>): Disposable;
|
|
39
42
|
createStatusBarItem(alignment?: StatusBarAlignment, priority?: number, id?: string): StatusBarItem;
|
|
40
43
|
}
|
|
41
44
|
declare class StatusBarMessage {
|
|
42
45
|
private _item;
|
|
43
46
|
private _messages;
|
|
44
|
-
constructor(statusBar:
|
|
47
|
+
constructor(statusBar: StatusBarMessageRegistryExtImpl);
|
|
45
48
|
dispose(): void;
|
|
46
49
|
setMessage(message: string): Disposable;
|
|
47
50
|
private _update;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar-message-registry.d.ts","sourceRoot":"","sources":["../../src/plugin/status-bar-message-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"status-bar-message-registry.d.ts","sourceRoot":"","sources":["../../src/plugin/status-bar-message-registry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EACwB,4BAA4B,EACvD,2BAA2B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOhE,qBAAa,+BAAgC,YAAW,2BAA2B;IAOjD,QAAQ,CAAC,eAAe,EAAE,mBAAmB;IAN3E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwC;IAE9D,KAAK,EAAE,4BAA4B,CAAC;IAEpC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;gBAEvC,GAAG,EAAE,WAAW,EAAW,eAAe,EAAE,mBAAmB;IAK3E,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,GAAG,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC;IAWjG,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU;IAkB5F,mBAAmB,CAAC,SAAS,CAAC,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,aAAa;CAMrG;AAGD,cAAM,gBAAgB;IAElB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAA6B;gBAElC,SAAS,EAAE,+BAA+B;IAItD,OAAO,IAAI,IAAI;IAKf,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAcvC,OAAO,CAAC,OAAO;CAQlB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.StatusBarMessageRegistryExtImpl = void 0;
|
|
4
4
|
// *****************************************************************************
|
|
5
5
|
// Copyright (C) 2018 Red Hat, Inc. and others.
|
|
6
6
|
//
|
|
@@ -23,12 +23,24 @@ const status_bar_item_1 = require("./status-bar/status-bar-item");
|
|
|
23
23
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
24
24
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
25
25
|
*--------------------------------------------------------------------------------------------*/
|
|
26
|
-
class
|
|
26
|
+
class StatusBarMessageRegistryExtImpl {
|
|
27
27
|
constructor(rpc, commandRegistry) {
|
|
28
28
|
this.commandRegistry = commandRegistry;
|
|
29
|
+
this.items = new Map();
|
|
29
30
|
this.proxy = rpc.getProxy(plugin_api_rpc_1.PLUGIN_RPC_CONTEXT.STATUS_BAR_MESSAGE_REGISTRY_MAIN);
|
|
30
31
|
this.statusMessage = new StatusBarMessage(this);
|
|
31
32
|
}
|
|
33
|
+
$getMessage(id, cancellation) {
|
|
34
|
+
var _a;
|
|
35
|
+
const item = this.items.get(id);
|
|
36
|
+
if (!item) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
if (typeof item.tooltip2 === 'function') {
|
|
40
|
+
return item.tooltip2(cancellation);
|
|
41
|
+
}
|
|
42
|
+
return (_a = item.tooltip2) !== null && _a !== void 0 ? _a : item.tooltip;
|
|
43
|
+
}
|
|
32
44
|
// copied from https://github.com/Microsoft/vscode/blob/6c8f02b41db9ae5c4d15df767d47755e5c73b9d5/src/vs/workbench/api/node/extHostStatusBar.ts#L174
|
|
33
45
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
46
|
setStatusBarMessage(text, timeoutOrThenable) {
|
|
@@ -47,10 +59,12 @@ class StatusBarMessageRegistryExt {
|
|
|
47
59
|
});
|
|
48
60
|
}
|
|
49
61
|
createStatusBarItem(alignment, priority, id) {
|
|
50
|
-
|
|
62
|
+
const item = new status_bar_item_1.StatusBarItemImpl(this.proxy, this.commandRegistry, alignment, priority, id, () => this.items.delete(item.id));
|
|
63
|
+
this.items.set(item.id, item);
|
|
64
|
+
return item;
|
|
51
65
|
}
|
|
52
66
|
}
|
|
53
|
-
exports.
|
|
67
|
+
exports.StatusBarMessageRegistryExtImpl = StatusBarMessageRegistryExtImpl;
|
|
54
68
|
// copied from https://github.com/Microsoft/vscode/blob/6c8f02b41db9ae5c4d15df767d47755e5c73b9d5/src/vs/workbench/api/node/extHostStatusBar.ts#L122
|
|
55
69
|
class StatusBarMessage {
|
|
56
70
|
constructor(statusBar) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-bar-message-registry.js","sourceRoot":"","sources":["../../src/plugin/status-bar-message-registry.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,gFAAgF;AAChF,gFAAgF;AAChF,6CAA8D;AAE9D,
|
|
1
|
+
{"version":3,"file":"status-bar-message-registry.js","sourceRoot":"","sources":["../../src/plugin/status-bar-message-registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,38 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/plugin-ext",
|
|
3
|
-
"version": "1.66.0-next.
|
|
3
|
+
"version": "1.66.0-next.12+b31bdedfc",
|
|
4
4
|
"description": "Theia - Plugin Extension",
|
|
5
5
|
"main": "lib/common/index.js",
|
|
6
6
|
"typings": "lib/common/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@theia/ai-mcp": "1.66.0-next.
|
|
9
|
-
"@theia/bulk-edit": "1.66.0-next.
|
|
10
|
-
"@theia/callhierarchy": "1.66.0-next.
|
|
11
|
-
"@theia/console": "1.66.0-next.
|
|
12
|
-
"@theia/core": "1.66.0-next.
|
|
13
|
-
"@theia/debug": "1.66.0-next.
|
|
14
|
-
"@theia/editor": "1.66.0-next.
|
|
15
|
-
"@theia/editor-preview": "1.66.0-next.
|
|
16
|
-
"@theia/file-search": "1.66.0-next.
|
|
17
|
-
"@theia/filesystem": "1.66.0-next.
|
|
18
|
-
"@theia/markers": "1.66.0-next.
|
|
19
|
-
"@theia/messages": "1.66.0-next.
|
|
20
|
-
"@theia/monaco": "1.66.0-next.
|
|
8
|
+
"@theia/ai-mcp": "1.66.0-next.12+b31bdedfc",
|
|
9
|
+
"@theia/bulk-edit": "1.66.0-next.12+b31bdedfc",
|
|
10
|
+
"@theia/callhierarchy": "1.66.0-next.12+b31bdedfc",
|
|
11
|
+
"@theia/console": "1.66.0-next.12+b31bdedfc",
|
|
12
|
+
"@theia/core": "1.66.0-next.12+b31bdedfc",
|
|
13
|
+
"@theia/debug": "1.66.0-next.12+b31bdedfc",
|
|
14
|
+
"@theia/editor": "1.66.0-next.12+b31bdedfc",
|
|
15
|
+
"@theia/editor-preview": "1.66.0-next.12+b31bdedfc",
|
|
16
|
+
"@theia/file-search": "1.66.0-next.12+b31bdedfc",
|
|
17
|
+
"@theia/filesystem": "1.66.0-next.12+b31bdedfc",
|
|
18
|
+
"@theia/markers": "1.66.0-next.12+b31bdedfc",
|
|
19
|
+
"@theia/messages": "1.66.0-next.12+b31bdedfc",
|
|
20
|
+
"@theia/monaco": "1.66.0-next.12+b31bdedfc",
|
|
21
21
|
"@theia/monaco-editor-core": "1.96.302",
|
|
22
|
-
"@theia/navigator": "1.66.0-next.
|
|
23
|
-
"@theia/notebook": "1.66.0-next.
|
|
24
|
-
"@theia/output": "1.66.0-next.
|
|
25
|
-
"@theia/plugin": "1.66.0-next.
|
|
26
|
-
"@theia/preferences": "1.66.0-next.
|
|
27
|
-
"@theia/scm": "1.66.0-next.
|
|
28
|
-
"@theia/search-in-workspace": "1.66.0-next.
|
|
29
|
-
"@theia/task": "1.66.0-next.
|
|
30
|
-
"@theia/terminal": "1.66.0-next.
|
|
31
|
-
"@theia/test": "1.66.0-next.
|
|
32
|
-
"@theia/timeline": "1.66.0-next.
|
|
33
|
-
"@theia/typehierarchy": "1.66.0-next.
|
|
34
|
-
"@theia/variable-resolver": "1.66.0-next.
|
|
35
|
-
"@theia/workspace": "1.66.0-next.
|
|
22
|
+
"@theia/navigator": "1.66.0-next.12+b31bdedfc",
|
|
23
|
+
"@theia/notebook": "1.66.0-next.12+b31bdedfc",
|
|
24
|
+
"@theia/output": "1.66.0-next.12+b31bdedfc",
|
|
25
|
+
"@theia/plugin": "1.66.0-next.12+b31bdedfc",
|
|
26
|
+
"@theia/preferences": "1.66.0-next.12+b31bdedfc",
|
|
27
|
+
"@theia/scm": "1.66.0-next.12+b31bdedfc",
|
|
28
|
+
"@theia/search-in-workspace": "1.66.0-next.12+b31bdedfc",
|
|
29
|
+
"@theia/task": "1.66.0-next.12+b31bdedfc",
|
|
30
|
+
"@theia/terminal": "1.66.0-next.12+b31bdedfc",
|
|
31
|
+
"@theia/test": "1.66.0-next.12+b31bdedfc",
|
|
32
|
+
"@theia/timeline": "1.66.0-next.12+b31bdedfc",
|
|
33
|
+
"@theia/typehierarchy": "1.66.0-next.12+b31bdedfc",
|
|
34
|
+
"@theia/variable-resolver": "1.66.0-next.12+b31bdedfc",
|
|
35
|
+
"@theia/workspace": "1.66.0-next.12+b31bdedfc",
|
|
36
36
|
"@types/mime": "^2.0.1",
|
|
37
37
|
"@vscode/debugprotocol": "^1.51.0",
|
|
38
38
|
"@vscode/proxy-agent": "^0.13.2",
|
|
@@ -99,5 +99,5 @@
|
|
|
99
99
|
"nyc": {
|
|
100
100
|
"extends": "../../configs/nyc.json"
|
|
101
101
|
},
|
|
102
|
-
"gitHead": "
|
|
102
|
+
"gitHead": "b31bdedfcceb7a9f9a14259633b5280596013b41"
|
|
103
103
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
|
-
import { createProxyIdentifier,
|
|
19
|
+
import { createProxyIdentifier, RPCProtocol } from './rpc-protocol';
|
|
20
20
|
import * as theia from '@theia/plugin';
|
|
21
21
|
import { PluginLifecycle, PluginModel, PluginMetadata, PluginPackage, IconUrl, PluginJsonValidationContribution } from './plugin-protocol';
|
|
22
22
|
import { QueryParameters } from './env';
|
|
@@ -513,13 +513,18 @@ export interface StatusBarMessageRegistryMain {
|
|
|
513
513
|
alignment: theia.StatusBarAlignment,
|
|
514
514
|
color: string | undefined,
|
|
515
515
|
backgroundColor: string | undefined,
|
|
516
|
-
tooltip
|
|
516
|
+
/** Value true indicates that the tooltip can be retrieved asynchronously */
|
|
517
|
+
tooltip: string | theia.MarkdownString | true | undefined,
|
|
517
518
|
command: string | undefined,
|
|
518
519
|
accessibilityInformation: theia.AccessibilityInformation,
|
|
519
520
|
args: any[] | undefined): PromiseLike<void>;
|
|
520
521
|
$dispose(id: string): void;
|
|
521
522
|
}
|
|
522
523
|
|
|
524
|
+
export interface StatusBarMessageRegistryExt {
|
|
525
|
+
$getMessage(id: string, cancellation: CancellationToken): theia.ProviderResult<string | MarkdownString>;
|
|
526
|
+
}
|
|
527
|
+
|
|
523
528
|
export interface QuickOpenExt {
|
|
524
529
|
$onItemSelected(handle: number): void;
|
|
525
530
|
$validateInput(input: string): Promise<string | { content: string; severity: Severity; } | null | undefined>;
|
|
@@ -2314,7 +2319,7 @@ export const PLUGIN_RPC_CONTEXT = {
|
|
|
2314
2319
|
QUICK_OPEN_MAIN: createProxyIdentifier<QuickOpenMain>('QuickOpenMain'),
|
|
2315
2320
|
DIALOGS_MAIN: createProxyIdentifier<DialogsMain>('DialogsMain'),
|
|
2316
2321
|
WORKSPACE_MAIN: createProxyIdentifier<WorkspaceMain>('WorkspaceMain'),
|
|
2317
|
-
MESSAGE_REGISTRY_MAIN:
|
|
2322
|
+
MESSAGE_REGISTRY_MAIN: createProxyIdentifier<MessageRegistryMain>('MessageRegistryMain'),
|
|
2318
2323
|
TEXT_EDITORS_MAIN: createProxyIdentifier<TextEditorsMain>('TextEditorsMain'),
|
|
2319
2324
|
DOCUMENTS_MAIN: createProxyIdentifier<DocumentsMain>('DocumentsMain'),
|
|
2320
2325
|
NOTEBOOKS_MAIN: createProxyIdentifier<NotebooksMain>('NotebooksMain'),
|
|
@@ -2323,13 +2328,13 @@ export const PLUGIN_RPC_CONTEXT = {
|
|
|
2323
2328
|
NOTEBOOK_DOCUMENTS_AND_EDITORS_MAIN: createProxyIdentifier<NotebookDocumentsAndEditorsMain>('NotebooksAndEditorsMain'),
|
|
2324
2329
|
NOTEBOOK_RENDERERS_MAIN: createProxyIdentifier<NotebookRenderersMain>('NotebookRenderersMain'),
|
|
2325
2330
|
NOTEBOOK_KERNELS_MAIN: createProxyIdentifier<NotebookKernelsMain>('NotebookKernelsMain'),
|
|
2326
|
-
STATUS_BAR_MESSAGE_REGISTRY_MAIN:
|
|
2331
|
+
STATUS_BAR_MESSAGE_REGISTRY_MAIN: createProxyIdentifier<StatusBarMessageRegistryMain>('StatusBarMessageRegistryMain'),
|
|
2327
2332
|
ENV_MAIN: createProxyIdentifier<EnvMain>('EnvMain'),
|
|
2328
2333
|
NOTIFICATION_MAIN: createProxyIdentifier<NotificationMain>('NotificationMain'),
|
|
2329
2334
|
TERMINAL_MAIN: createProxyIdentifier<TerminalServiceMain>('TerminalServiceMain'),
|
|
2330
2335
|
TREE_VIEWS_MAIN: createProxyIdentifier<TreeViewsMain>('TreeViewsMain'),
|
|
2331
2336
|
PREFERENCE_REGISTRY_MAIN: createProxyIdentifier<PreferenceRegistryMain>('PreferenceRegistryMain'),
|
|
2332
|
-
OUTPUT_CHANNEL_REGISTRY_MAIN:
|
|
2337
|
+
OUTPUT_CHANNEL_REGISTRY_MAIN: createProxyIdentifier<OutputChannelRegistryMain>('OutputChannelRegistryMain'),
|
|
2333
2338
|
LANGUAGES_MAIN: createProxyIdentifier<LanguagesMain>('LanguagesMain'),
|
|
2334
2339
|
CONNECTION_MAIN: createProxyIdentifier<ConnectionMain>('ConnectionMain'),
|
|
2335
2340
|
WEBVIEWS_MAIN: createProxyIdentifier<WebviewsMain>('WebviewsMain'),
|
|
@@ -2390,6 +2395,7 @@ export const MAIN_RPC_CONTEXT = {
|
|
|
2390
2395
|
SECRETS_EXT: createProxyIdentifier<SecretsExt>('SecretsExt'),
|
|
2391
2396
|
DECORATIONS_EXT: createProxyIdentifier<DecorationsExt>('DecorationsExt'),
|
|
2392
2397
|
LABEL_SERVICE_EXT: createProxyIdentifier<LabelServiceExt>('LabelServiceExt'),
|
|
2398
|
+
STATUS_BAR_MESSAGE_REGISTRY_EXT: createProxyIdentifier<StatusBarMessageRegistryExt>('StatusBarMessageRegistryExt'),
|
|
2393
2399
|
TIMELINE_EXT: createProxyIdentifier<TimelineExt>('TimeLineExt'),
|
|
2394
2400
|
THEMING_EXT: createProxyIdentifier<ThemingExt>('ThemingExt'),
|
|
2395
2401
|
COMMENTS_EXT: createProxyIdentifier<CommentsExt>('CommentsExt'),
|
|
@@ -123,7 +123,7 @@ export function setUpPluginApi(rpc: RPCProtocol, container: interfaces.Container
|
|
|
123
123
|
// start listening only after all clients are subscribed to events
|
|
124
124
|
editorsAndDocuments.listen();
|
|
125
125
|
|
|
126
|
-
const statusBarMessageRegistryMain = new StatusBarMessageRegistryMainImpl(container);
|
|
126
|
+
const statusBarMessageRegistryMain = new StatusBarMessageRegistryMainImpl(container, rpc);
|
|
127
127
|
rpc.set(PLUGIN_RPC_CONTEXT.STATUS_BAR_MESSAGE_REGISTRY_MAIN, statusBarMessageRegistryMain);
|
|
128
128
|
|
|
129
129
|
const envMain = new EnvMainImpl(rpc, container);
|
|
@@ -16,23 +16,27 @@
|
|
|
16
16
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
17
17
|
import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable';
|
|
18
18
|
import * as types from '../../plugin/types-impl';
|
|
19
|
-
import { StatusBarMessageRegistryMain } from '../../common/plugin-api-rpc';
|
|
19
|
+
import { StatusBarMessageRegistryMain, StatusBarMessageRegistryExt, MAIN_RPC_CONTEXT } from '../../common/plugin-api-rpc';
|
|
20
20
|
import { StatusBar, StatusBarAlignment, StatusBarEntry } from '@theia/core/lib/browser/status-bar/status-bar';
|
|
21
21
|
import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
|
|
22
22
|
import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
|
|
23
|
+
import { RPCProtocol } from '../../common/rpc-protocol';
|
|
24
|
+
import { CancellationToken } from '@theia/core';
|
|
23
25
|
|
|
24
26
|
export class StatusBarMessageRegistryMainImpl implements StatusBarMessageRegistryMain, Disposable {
|
|
25
27
|
private readonly delegate: StatusBar;
|
|
26
28
|
private readonly entries = new Map<string, StatusBarEntry>();
|
|
29
|
+
private readonly proxy: StatusBarMessageRegistryExt;
|
|
27
30
|
private readonly toDispose = new DisposableCollection(
|
|
28
31
|
Disposable.create(() => { /* mark as not disposed */ })
|
|
29
32
|
);
|
|
30
33
|
|
|
31
34
|
protected readonly colorRegistry: ColorRegistry;
|
|
32
35
|
|
|
33
|
-
constructor(container: interfaces.Container) {
|
|
36
|
+
constructor(container: interfaces.Container, rpc: RPCProtocol) {
|
|
34
37
|
this.delegate = container.get(StatusBar);
|
|
35
38
|
this.colorRegistry = container.get(ColorRegistry);
|
|
39
|
+
this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.STATUS_BAR_MESSAGE_REGISTRY_EXT);
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
dispose(): void {
|
|
@@ -46,7 +50,7 @@ export class StatusBarMessageRegistryMainImpl implements StatusBarMessageRegistr
|
|
|
46
50
|
alignment: number,
|
|
47
51
|
color: string | undefined,
|
|
48
52
|
backgroundColor: string | undefined,
|
|
49
|
-
tooltip: string | MarkdownString | undefined,
|
|
53
|
+
tooltip: string | MarkdownString | true | undefined,
|
|
50
54
|
command: string | undefined,
|
|
51
55
|
accessibilityInformation: types.AccessibilityInformation,
|
|
52
56
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -64,7 +68,8 @@ export class StatusBarMessageRegistryMainImpl implements StatusBarMessageRegistr
|
|
|
64
68
|
color: color && (this.colorRegistry.getCurrentColor(color) || color),
|
|
65
69
|
// In contrast to color, the backgroundColor must be a theme color. Thus, do not hand in the plain string if it cannot be resolved.
|
|
66
70
|
backgroundColor: backgroundColor && (this.colorRegistry.getCurrentColor(backgroundColor)),
|
|
67
|
-
tooltip
|
|
71
|
+
// true is used as a serializable sentinel value to indicate that the tooltip can be retrieved asynchronously
|
|
72
|
+
tooltip: tooltip === true ? (token: CancellationToken) => this.proxy.$getMessage(id, token) : tooltip,
|
|
68
73
|
command,
|
|
69
74
|
accessibilityInformation,
|
|
70
75
|
args
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from '../common/plugin-api-rpc';
|
|
34
34
|
import { RPCProtocol } from '../common/rpc-protocol';
|
|
35
35
|
import { MessageRegistryExt } from './message-registry';
|
|
36
|
-
import {
|
|
36
|
+
import { StatusBarMessageRegistryExtImpl } from './status-bar-message-registry';
|
|
37
37
|
import { WindowStateExtImpl } from './window-state';
|
|
38
38
|
import { WorkspaceExtImpl } from './workspace';
|
|
39
39
|
import { EnvExtImpl } from './env';
|
|
@@ -335,7 +335,7 @@ export function createAPIFactory(
|
|
|
335
335
|
const notebookRenderers = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_RENDERERS_EXT, new NotebookRenderersExtImpl(rpc, notebooksExt));
|
|
336
336
|
const notebookKernels = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_KERNELS_EXT, new NotebookKernelsExtImpl(rpc, notebooksExt, commandRegistry, webviewExt, workspaceExt));
|
|
337
337
|
const notebookDocuments = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_DOCUMENTS_EXT, new NotebookDocumentsExtImpl(notebooksExt));
|
|
338
|
-
const statusBarMessageRegistryExt = new
|
|
338
|
+
const statusBarMessageRegistryExt = rpc.set(MAIN_RPC_CONTEXT.STATUS_BAR_MESSAGE_REGISTRY_EXT, new StatusBarMessageRegistryExtImpl(rpc, commandRegistry));
|
|
339
339
|
const terminalExt = rpc.set(MAIN_RPC_CONTEXT.TERMINAL_EXT, new TerminalServiceExtImpl(rpc));
|
|
340
340
|
const outputChannelRegistryExt = rpc.set(MAIN_RPC_CONTEXT.OUTPUT_CHANNEL_REGISTRY_EXT, new OutputChannelRegistryExtImpl(rpc));
|
|
341
341
|
const treeViewsExt = rpc.set(MAIN_RPC_CONTEXT.TREE_VIEWS_EXT, new TreeViewsExtImpl(rpc, commandRegistry));
|