@theia/plugin-ext 1.18.0-next.de7b81be → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +642 -0
- package/README.md +5 -0
- package/lib/common/connection.d.ts +1 -2
- package/lib/common/connection.d.ts.map +1 -1
- package/lib/common/connection.js.map +1 -1
- package/lib/common/plugin-api-rpc-model.d.ts +4 -0
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc-model.js.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +30 -10
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +21 -1
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-protocol.d.ts +2 -1
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-protocol.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +5 -6
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +19 -13
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.d.ts.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.js +1 -0
- package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.js +14 -38
- package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-localization-service.d.ts +37 -0
- package/lib/hosted/node/hosted-plugin-localization-service.d.ts.map +1 -0
- package/lib/hosted/node/hosted-plugin-localization-service.js +197 -0
- package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -0
- package/lib/hosted/node/hosted-plugin-process.d.ts +2 -2
- package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +5 -7
- package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -0
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
- package/lib/hosted/node/plugin-manifest-loader.d.ts +1 -1
- package/lib/hosted/node/plugin-manifest-loader.d.ts.map +1 -1
- package/lib/hosted/node/plugin-manifest-loader.js +4 -52
- package/lib/hosted/node/plugin-manifest-loader.js.map +1 -1
- package/lib/hosted/node/plugin-service.d.ts +3 -6
- package/lib/hosted/node/plugin-service.d.ts.map +1 -1
- package/lib/hosted/node/plugin-service.js +7 -40
- package/lib/hosted/node/plugin-service.js.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.d.ts +1 -1
- package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +2 -1
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/main/browser/callhierarchy/callhierarchy-type-converters.d.ts.map +1 -1
- package/lib/main/browser/callhierarchy/callhierarchy-type-converters.js +6 -2
- package/lib/main/browser/callhierarchy/callhierarchy-type-converters.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +1 -2
- package/lib/main/browser/custom-editors/custom-editor-opener.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.js +2 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js +1 -2
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/debug/debug-main.js +1 -1
- package/lib/main/browser/debug/debug-main.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts +1 -1
- package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts.map +1 -1
- package/lib/main/browser/debug/plugin-debug-adapter-contribution.js +2 -2
- package/lib/main/browser/debug/plugin-debug-adapter-contribution.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-service.d.ts +8 -0
- package/lib/main/browser/debug/plugin-debug-service.d.ts.map +1 -1
- package/lib/main/browser/debug/plugin-debug-service.js +15 -0
- package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-factory.d.ts +2 -2
- package/lib/main/browser/debug/plugin-debug-session-factory.d.ts.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-factory.js.map +1 -1
- package/lib/main/browser/dialogs/modal-notification.d.ts +3 -3
- package/lib/main/browser/dialogs/modal-notification.d.ts.map +1 -1
- package/lib/main/browser/dialogs/modal-notification.js +17 -6
- package/lib/main/browser/dialogs/modal-notification.js.map +1 -1
- package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
- package/lib/main/browser/editors-and-documents-main.js +3 -4
- package/lib/main/browser/editors-and-documents-main.js.map +1 -1
- package/lib/main/browser/languages-main.js +1 -1
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/message-registry-main.js +1 -1
- package/lib/main/browser/message-registry-main.js.map +1 -1
- package/lib/main/browser/quick-open-main.d.ts +1 -1
- package/lib/main/browser/quick-open-main.d.ts.map +1 -1
- package/lib/main/browser/quick-open-main.js.map +1 -1
- package/lib/main/browser/tasks-main.d.ts.map +1 -1
- package/lib/main/browser/tasks-main.js +6 -0
- package/lib/main/browser/tasks-main.js.map +1 -1
- package/lib/main/browser/timeline-main.d.ts.map +1 -1
- package/lib/main/browser/timeline-main.js +1 -1
- package/lib/main/browser/timeline-main.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.d.ts +3 -2
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +63 -23
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.d.ts +2 -0
- package/lib/main/browser/view/plugin-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.js +3 -1
- package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.d.ts +3 -7
- package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +26 -39
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/main/browser/webview/webview-frontend-security-warnings.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-frontend-security-warnings.js +8 -5
- package/lib/main/browser/webview/webview-frontend-security-warnings.js.map +1 -1
- package/lib/main/browser/webview/webview-preferences.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-preferences.js +3 -2
- package/lib/main/browser/webview/webview-preferences.js.map +1 -1
- package/lib/main/browser/webview/webview.d.ts +1 -1
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +1 -1
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/plugin/comments.d.ts.map +1 -1
- package/lib/plugin/comments.js +2 -3
- package/lib/plugin/comments.js.map +1 -1
- package/lib/plugin/custom-editors.d.ts +1 -2
- package/lib/plugin/custom-editors.d.ts.map +1 -1
- package/lib/plugin/custom-editors.js +2 -3
- package/lib/plugin/custom-editors.js.map +1 -1
- package/lib/plugin/decorations.d.ts.map +1 -1
- package/lib/plugin/decorations.js +2 -3
- package/lib/plugin/decorations.js.map +1 -1
- package/lib/plugin/document-data.d.ts.map +1 -1
- package/lib/plugin/document-data.js +1 -1
- package/lib/plugin/document-data.js.map +1 -1
- package/lib/plugin/documents.d.ts.map +1 -1
- package/lib/plugin/documents.js +1 -2
- package/lib/plugin/documents.js.map +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.js +2 -3
- package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
- package/lib/plugin/file-system-ext-impl.d.ts.map +1 -1
- package/lib/plugin/file-system-ext-impl.js +12 -13
- package/lib/plugin/file-system-ext-impl.js.map +1 -1
- package/lib/plugin/known-commands.spec.js +1 -2
- package/lib/plugin/known-commands.spec.js.map +1 -1
- package/lib/plugin/languages/call-hierarchy.d.ts +1 -1
- package/lib/plugin/languages/call-hierarchy.d.ts.map +1 -1
- package/lib/plugin/languages/call-hierarchy.js +8 -3
- package/lib/plugin/languages/call-hierarchy.js.map +1 -1
- package/lib/plugin/languages/rename.d.ts +1 -2
- package/lib/plugin/languages/rename.d.ts.map +1 -1
- package/lib/plugin/languages/rename.js.map +1 -1
- package/lib/plugin/languages.d.ts +1 -1
- package/lib/plugin/languages.d.ts.map +1 -1
- package/lib/plugin/languages.js.map +1 -1
- package/lib/plugin/message-registry.d.ts.map +1 -1
- package/lib/plugin/message-registry.js +3 -0
- package/lib/plugin/message-registry.js.map +1 -1
- package/lib/plugin/node/debug/debug.d.ts +4 -3
- package/lib/plugin/node/debug/debug.d.ts.map +1 -1
- package/lib/plugin/node/debug/debug.js +34 -15
- package/lib/plugin/node/debug/debug.js.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts +3 -3
- package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-session.js.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts +6 -4
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.js +23 -13
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.js.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +8 -3
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-manager.d.ts +2 -0
- package/lib/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/plugin/plugin-manager.js +24 -3
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/plugin-storage.d.ts +4 -0
- package/lib/plugin/plugin-storage.d.ts.map +1 -1
- package/lib/plugin/plugin-storage.js +6 -1
- package/lib/plugin/plugin-storage.js.map +1 -1
- package/lib/plugin/preference-registry.spec.js.map +1 -1
- package/lib/plugin/quick-open.d.ts +1 -1
- package/lib/plugin/quick-open.d.ts.map +1 -1
- package/lib/plugin/quick-open.js +11 -6
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/tasks/tasks.d.ts +1 -3
- package/lib/plugin/tasks/tasks.d.ts.map +1 -1
- package/lib/plugin/tasks/tasks.js +3 -17
- package/lib/plugin/tasks/tasks.js.map +1 -1
- package/lib/plugin/timeline.d.ts.map +1 -1
- package/lib/plugin/timeline.js +1 -2
- package/lib/plugin/timeline.js.map +1 -1
- package/lib/plugin/type-converters.d.ts.map +1 -1
- package/lib/plugin/type-converters.js +12 -10
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/types-impl.d.ts +52 -0
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +79 -1
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/webviews.d.ts +1 -2
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js.map +1 -1
- package/package.json +31 -27
- package/src/common/connection.ts +1 -2
- package/src/common/plugin-api-rpc-model.ts +4 -0
- package/src/common/plugin-api-rpc.ts +31 -9
- package/src/common/plugin-protocol.ts +2 -1
- package/src/hosted/browser/hosted-plugin.ts +19 -12
- package/src/hosted/browser/worker/debug-stub.ts +1 -0
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +13 -40
- package/src/hosted/node/hosted-plugin-localization-service.ts +201 -0
- package/src/hosted/node/hosted-plugin-process.ts +4 -6
- package/src/hosted/node/plugin-ext-hosted-backend-module.ts +2 -0
- package/src/hosted/node/plugin-manifest-loader.ts +4 -56
- package/src/hosted/node/plugin-service.ts +7 -40
- package/src/hosted/node/scanners/scanner-theia.ts +3 -2
- package/src/main/browser/callhierarchy/callhierarchy-type-converters.ts +6 -2
- package/src/main/browser/custom-editors/custom-editor-opener.tsx +3 -3
- package/src/main/browser/custom-editors/custom-editors-main.ts +1 -2
- package/src/main/browser/debug/debug-main.ts +1 -1
- package/src/main/browser/debug/plugin-debug-adapter-contribution.ts +3 -3
- package/src/main/browser/debug/plugin-debug-service.ts +23 -0
- package/src/main/browser/debug/plugin-debug-session-factory.ts +3 -3
- package/src/main/browser/dialogs/modal-notification.ts +18 -7
- package/src/main/browser/dialogs/style/modal-notification.css +17 -2
- package/src/main/browser/editors-and-documents-main.ts +1 -2
- package/src/main/browser/languages-main.ts +1 -1
- package/src/main/browser/message-registry-main.ts +1 -1
- package/src/main/browser/quick-open-main.ts +1 -1
- package/src/main/browser/style/tree.css +4 -0
- package/src/main/browser/tasks-main.ts +7 -0
- package/src/main/browser/timeline-main.ts +1 -2
- package/src/main/browser/view/plugin-view-registry.ts +67 -25
- package/src/main/browser/view/plugin-view-widget.ts +7 -2
- package/src/main/browser/view/tree-view-widget.tsx +43 -65
- package/src/main/browser/webview/pre/host.js +20 -12
- package/src/main/browser/webview/pre/main.js +0 -1
- package/src/main/browser/webview/webview-frontend-security-warnings.ts +8 -7
- package/src/main/browser/webview/webview-preferences.ts +3 -2
- package/src/main/browser/webview/webview.ts +1 -1
- package/src/plugin/comments.ts +1 -2
- package/src/plugin/custom-editors.ts +2 -4
- package/src/plugin/decorations.ts +1 -2
- package/src/plugin/document-data.ts +1 -2
- package/src/plugin/documents.ts +1 -2
- package/src/plugin/file-system-event-service-ext-impl.ts +1 -2
- package/src/plugin/file-system-ext-impl.ts +1 -2
- package/src/plugin/known-commands.spec.ts +1 -2
- package/src/plugin/languages/call-hierarchy.ts +14 -5
- package/src/plugin/languages/rename.ts +1 -2
- package/src/plugin/languages.ts +3 -1
- package/src/plugin/message-registry.ts +3 -1
- package/src/plugin/node/debug/debug.ts +40 -19
- package/src/plugin/node/debug/plugin-debug-adapter-session.ts +3 -3
- package/src/plugin/node/debug/plugin-debug-adapter-starter.ts +24 -14
- package/src/plugin/plugin-context.ts +21 -10
- package/src/plugin/plugin-manager.ts +26 -4
- package/src/plugin/plugin-storage.ts +7 -2
- package/src/plugin/preference-registry.spec.ts +1 -2
- package/src/plugin/quick-open.ts +14 -10
- package/src/plugin/tasks/tasks.ts +4 -18
- package/src/plugin/timeline.ts +1 -2
- package/src/plugin/type-converters.ts +14 -12
- package/src/plugin/types-impl.ts +74 -0
- package/src/plugin/webviews.ts +1 -2
|
@@ -14,68 +14,16 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
|
|
17
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
-
|
|
19
17
|
import * as path from 'path';
|
|
20
18
|
import * as fs from '@theia/core/shared/fs-extra';
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const [manifest, translations] = await Promise.all([
|
|
26
|
-
fs.readJson(path.join(pluginPath, 'package.json')),
|
|
27
|
-
loadTranslations(pluginPath, locale)
|
|
28
|
-
]);
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
export async function loadManifest(pluginPath: string): Promise<any> {
|
|
22
|
+
const manifest = await fs.readJson(path.join(pluginPath, 'package.json'));
|
|
29
23
|
// translate vscode builtins, as they are published with a prefix. See https://github.com/theia-ide/vscode-builtin-extensions/blob/master/src/republish.js#L50
|
|
30
24
|
const built_prefix = '@theia/vscode-builtin-';
|
|
31
25
|
if (manifest && manifest.name && manifest.name.startsWith(built_prefix)) {
|
|
32
26
|
manifest.name = manifest.name.substr(built_prefix.length);
|
|
33
27
|
}
|
|
34
|
-
return manifest
|
|
35
|
-
localize(manifest, translations) :
|
|
36
|
-
manifest;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
async function loadTranslations(pluginPath: string, locale?: string): Promise<any> {
|
|
40
|
-
try {
|
|
41
|
-
const localizedPluginPath = path.join(pluginPath, `package.nls.${locale}.json`);
|
|
42
|
-
if (await fs.pathExists(localizedPluginPath)) {
|
|
43
|
-
return await fs.readJson(localizedPluginPath);
|
|
44
|
-
} else {
|
|
45
|
-
return await fs.readJson(path.join(pluginPath, 'package.nls.json'));
|
|
46
|
-
}
|
|
47
|
-
} catch (e) {
|
|
48
|
-
if (e.code !== 'ENOENT') {
|
|
49
|
-
throw e;
|
|
50
|
-
}
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
function localize(value: any, translations: {
|
|
56
|
-
[key: string]: string
|
|
57
|
-
}): any {
|
|
58
|
-
if (typeof value === 'string') {
|
|
59
|
-
const match = NLS_REGEX.exec(value);
|
|
60
|
-
return match && translations[match[1]] || value;
|
|
61
|
-
}
|
|
62
|
-
if (Array.isArray(value)) {
|
|
63
|
-
const result = [];
|
|
64
|
-
for (const item of value) {
|
|
65
|
-
result.push(localize(item, translations));
|
|
66
|
-
}
|
|
67
|
-
return result;
|
|
68
|
-
}
|
|
69
|
-
if (value === null) {
|
|
70
|
-
return value;
|
|
71
|
-
}
|
|
72
|
-
if (typeof value === 'object') {
|
|
73
|
-
const result: { [key: string]: any } = {};
|
|
74
|
-
// eslint-disable-next-line guard-for-in
|
|
75
|
-
for (const propertyName in value) {
|
|
76
|
-
result[propertyName] = localize(value[propertyName], translations);
|
|
77
|
-
}
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
return value;
|
|
28
|
+
return manifest;
|
|
81
29
|
}
|
|
@@ -16,13 +16,11 @@
|
|
|
16
16
|
import { injectable, inject, named, postConstruct } from '@theia/core/shared/inversify';
|
|
17
17
|
import { HostedPluginServer, HostedPluginClient, PluginDeployer, GetDeployedPluginsParams, DeployedPlugin } from '../../common/plugin-protocol';
|
|
18
18
|
import { HostedPluginSupport } from './hosted-plugin';
|
|
19
|
-
import { ILogger, Disposable } from '@theia/core';
|
|
20
|
-
import { ContributionProvider } from '@theia/core';
|
|
19
|
+
import { ILogger, Disposable, ContributionProvider } from '@theia/core';
|
|
21
20
|
import { ExtPluginApiProvider, ExtPluginApi } from '../../common/plugin-ext-api-contribution';
|
|
22
21
|
import { HostedPluginDeployerHandler } from './hosted-plugin-deployer-handler';
|
|
23
22
|
import { PluginDeployerImpl } from '../../main/node/plugin-deployer-impl';
|
|
24
|
-
import {
|
|
25
|
-
import { loadManifest } from './plugin-manifest-loader';
|
|
23
|
+
import { HostedPluginLocalizationService } from './hosted-plugin-localization-service';
|
|
26
24
|
|
|
27
25
|
@injectable()
|
|
28
26
|
export class HostedPluginServerImpl implements HostedPluginServer {
|
|
@@ -35,8 +33,8 @@ export class HostedPluginServerImpl implements HostedPluginServer {
|
|
|
35
33
|
@inject(PluginDeployer)
|
|
36
34
|
protected readonly pluginDeployer: PluginDeployerImpl;
|
|
37
35
|
|
|
38
|
-
@inject(
|
|
39
|
-
protected readonly
|
|
36
|
+
@inject(HostedPluginLocalizationService)
|
|
37
|
+
protected readonly localizationService: HostedPluginLocalizationService;
|
|
40
38
|
|
|
41
39
|
@inject(ContributionProvider)
|
|
42
40
|
@named(Symbol.for(ExtPluginApiProvider))
|
|
@@ -90,8 +88,7 @@ export class HostedPluginServerImpl implements HostedPluginServer {
|
|
|
90
88
|
if (!pluginIds.length) {
|
|
91
89
|
return [];
|
|
92
90
|
}
|
|
93
|
-
const
|
|
94
|
-
const plugins = [];
|
|
91
|
+
const plugins: DeployedPlugin[] = [];
|
|
95
92
|
let extraDeployedPlugins: Map<string, DeployedPlugin> | undefined;
|
|
96
93
|
for (const pluginId of pluginIds) {
|
|
97
94
|
let plugin = this.deployerHandler.getDeployedPlugin(pluginId);
|
|
@@ -105,10 +102,10 @@ export class HostedPluginServerImpl implements HostedPluginServer {
|
|
|
105
102
|
plugin = extraDeployedPlugins.get(pluginId);
|
|
106
103
|
}
|
|
107
104
|
if (plugin) {
|
|
108
|
-
plugins.push(
|
|
105
|
+
plugins.push(plugin);
|
|
109
106
|
}
|
|
110
107
|
}
|
|
111
|
-
return plugins;
|
|
108
|
+
return Promise.all(plugins.map(plugin => this.localizationService.localizePlugin(plugin)));
|
|
112
109
|
}
|
|
113
110
|
|
|
114
111
|
onMessage(pluginHostId: string, message: string): Promise<void> {
|
|
@@ -119,34 +116,4 @@ export class HostedPluginServerImpl implements HostedPluginServer {
|
|
|
119
116
|
getExtPluginAPI(): Promise<ExtPluginApi[]> {
|
|
120
117
|
return Promise.resolve(this.extPluginAPIContributions.getContributions().map(p => p.provideApi()));
|
|
121
118
|
}
|
|
122
|
-
|
|
123
|
-
protected async localizePlugin(plugin: DeployedPlugin, locale: string): Promise<DeployedPlugin> {
|
|
124
|
-
const packagePath = plugin.metadata.model.packagePath;
|
|
125
|
-
const translatedManifest = await loadManifest(packagePath, locale);
|
|
126
|
-
this.mergeContributes(plugin.contributes, translatedManifest.contributes);
|
|
127
|
-
return plugin;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
|
-
protected mergeContributes(main: any, other: any): void {
|
|
132
|
-
if (main && other) {
|
|
133
|
-
if (Array.isArray(main) && Array.isArray(other)) {
|
|
134
|
-
for (let i = 0; i < main.length && i < other.length; i++) {
|
|
135
|
-
if (typeof main[i] === 'object' && typeof other[i] === 'object') {
|
|
136
|
-
this.mergeContributes(main[i], other[i]);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
} else {
|
|
140
|
-
for (const [key, value] of Object.entries(main)) {
|
|
141
|
-
if (key in other) {
|
|
142
|
-
if (typeof value === 'string') {
|
|
143
|
-
main[key] = other[key];
|
|
144
|
-
} else if (typeof value === 'object' && typeof other[key] === 'object') {
|
|
145
|
-
this.mergeContributes(main[key], other[key]);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
119
|
}
|
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
ProblemPatternContribution,
|
|
74
74
|
TaskDefinition
|
|
75
75
|
} from '@theia/task/lib/common/task-protocol';
|
|
76
|
-
import { ColorDefinition } from '@theia/core/lib/
|
|
76
|
+
import { ColorDefinition } from '@theia/core/lib/common/color';
|
|
77
77
|
import { ResourceLabelFormatter } from '@theia/core/lib/common/label-protocol';
|
|
78
78
|
import { PluginUriFactory } from './plugin-uri-factory';
|
|
79
79
|
|
|
@@ -217,7 +217,7 @@ export class TheiaPluginScanner implements PluginScanner {
|
|
|
217
217
|
|
|
218
218
|
for (const location of Object.keys(viewsContainers)) {
|
|
219
219
|
const containers = this.readViewsContainers(viewsContainers[location], rawPlugin);
|
|
220
|
-
const loc = location === 'activitybar' ? 'left' : location;
|
|
220
|
+
const loc = location === 'activitybar' ? 'left' : location === 'panel' ? 'bottom' : location;
|
|
221
221
|
if (contributions.viewsContainers[loc]) {
|
|
222
222
|
contributions.viewsContainers[loc] = contributions.viewsContainers[loc].concat(containers);
|
|
223
223
|
} else {
|
|
@@ -381,6 +381,7 @@ export class TheiaPluginScanner implements PluginScanner {
|
|
|
381
381
|
throw new Error(`Could not read json file '${packageTranslation.path}'.`);
|
|
382
382
|
}
|
|
383
383
|
translation.id = packageTranslation.id;
|
|
384
|
+
translation.path = packageTranslation.path;
|
|
384
385
|
return translation;
|
|
385
386
|
}
|
|
386
387
|
|
|
@@ -151,7 +151,9 @@ export function toDefinition(definition: model.CallHierarchyDefinition | undefin
|
|
|
151
151
|
selectionRange: toRange(definition.selectionRange),
|
|
152
152
|
symbolName: definition.name,
|
|
153
153
|
symbolKind: SymbolKindConverter.toSymbolKind(definition.kind),
|
|
154
|
-
containerName: undefined
|
|
154
|
+
containerName: undefined,
|
|
155
|
+
tags: definition.tags,
|
|
156
|
+
data: definition.data,
|
|
155
157
|
};
|
|
156
158
|
}
|
|
157
159
|
|
|
@@ -161,7 +163,9 @@ export function fromDefinition(definition: CallHierarchyDefinition): model.CallH
|
|
|
161
163
|
range: fromRange(definition.location.range),
|
|
162
164
|
selectionRange: fromRange(definition.selectionRange),
|
|
163
165
|
name: definition.symbolName,
|
|
164
|
-
kind: SymbolKindConverter.fromSymbolKind(definition.symbolKind)
|
|
166
|
+
kind: SymbolKindConverter.fromSymbolKind(definition.symbolKind),
|
|
167
|
+
tags: definition.tags,
|
|
168
|
+
data: definition.data,
|
|
165
169
|
};
|
|
166
170
|
}
|
|
167
171
|
|
|
@@ -17,9 +17,8 @@
|
|
|
17
17
|
import { inject } from '@theia/core/shared/inversify';
|
|
18
18
|
import URI from '@theia/core/lib/common/uri';
|
|
19
19
|
import { ApplicationShell, OpenerOptions, OpenHandler, Widget, WidgetManager } from '@theia/core/lib/browser';
|
|
20
|
-
import { CustomEditorPriority, CustomEditorSelector } from '../../../common';
|
|
20
|
+
import { CustomEditor, CustomEditorPriority, CustomEditorSelector } from '../../../common';
|
|
21
21
|
import * as glob from './glob';
|
|
22
|
-
import { CustomEditor } from '../../../common';
|
|
23
22
|
import { CustomEditorWidget } from './custom-editor-widget';
|
|
24
23
|
import { v4 } from 'uuid';
|
|
25
24
|
import { Emitter } from '@theia/core';
|
|
@@ -56,7 +55,8 @@ export class CustomEditorOpener implements OpenHandler {
|
|
|
56
55
|
switch (this.editor.priority) {
|
|
57
56
|
case CustomEditorPriority.default: return 500;
|
|
58
57
|
case CustomEditorPriority.builtin: return 400;
|
|
59
|
-
|
|
58
|
+
/** `option` should not open the custom-editor by default. */
|
|
59
|
+
case CustomEditorPriority.option: return 1;
|
|
60
60
|
default: return 200;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
// some code copied and modified from https://github.com/microsoft/vscode/blob/53eac52308c4611000a171cc7bf1214293473c78/src/vs/workbench/api/browser/mainThreadCustomEditors.ts
|
|
21
21
|
|
|
22
22
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
23
|
-
import { MAIN_RPC_CONTEXT, CustomEditorsMain, CustomEditorsExt, CustomTextEditorCapabilities } from '../../../common/plugin-api-rpc';
|
|
23
|
+
import { MAIN_RPC_CONTEXT, CustomEditorsMain, CustomEditorsExt, CustomTextEditorCapabilities, EditorPosition } from '../../../common/plugin-api-rpc';
|
|
24
24
|
import { RPCProtocol } from '../../../common/rpc-protocol';
|
|
25
25
|
import { HostedPluginSupport } from '../../../hosted/browser/hosted-plugin';
|
|
26
26
|
import { PluginCustomEditorRegistry } from './plugin-custom-editor-registry';
|
|
@@ -43,7 +43,6 @@ import { ApplicationShell, DefaultUriLabelProviderContribution, Saveable, SaveOp
|
|
|
43
43
|
import { WebviewOptions, WebviewPanelOptions, ViewColumn } from '@theia/plugin';
|
|
44
44
|
import { WebviewWidgetIdentifier } from '../webview/webview';
|
|
45
45
|
import { EditorPreferences } from '@theia/editor/lib/browser';
|
|
46
|
-
import { EditorPosition } from '../../../common/plugin-api-rpc';
|
|
47
46
|
|
|
48
47
|
const enum CustomEditorModelType {
|
|
49
48
|
Custom,
|
|
@@ -38,7 +38,7 @@ import { DebugProtocol } from 'vscode-debugprotocol';
|
|
|
38
38
|
import { DebugConfigurationManager } from '@theia/debug/lib/browser/debug-configuration-manager';
|
|
39
39
|
import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
|
|
40
40
|
import { MessageClient } from '@theia/core/lib/common/message-service-protocol';
|
|
41
|
-
import { OutputChannelManager } from '@theia/output/lib/
|
|
41
|
+
import { OutputChannelManager } from '@theia/output/lib/browser/output-channel';
|
|
42
42
|
import { DebugPreferences } from '@theia/debug/lib/browser/debug-preferences';
|
|
43
43
|
import { PluginDebugAdapterContribution } from './plugin-debug-adapter-contribution';
|
|
44
44
|
import { PluginDebugSessionContributionRegistrator, PluginDebugSessionContributionRegistry } from './plugin-debug-session-contribution-registry';
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
|
|
17
|
-
import { DebugExt
|
|
17
|
+
import { DebugExt } from '../../../common/plugin-api-rpc';
|
|
18
18
|
import { DebugConfiguration } from '@theia/debug/lib/common/debug-configuration';
|
|
19
19
|
import { MaybePromise } from '@theia/core/lib/common/types';
|
|
20
20
|
import { DebuggerDescription } from '@theia/debug/lib/common/debug-service';
|
|
@@ -37,8 +37,8 @@ export class PluginDebugAdapterContribution {
|
|
|
37
37
|
return this.description.label;
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
async provideDebugConfigurations(workspaceFolderUri: string | undefined): Promise<DebugConfiguration[]> {
|
|
41
|
-
return this.debugExt.$provideDebugConfigurations(this.type, workspaceFolderUri);
|
|
40
|
+
async provideDebugConfigurations(workspaceFolderUri: string | undefined, dynamic: boolean = false): Promise<DebugConfiguration[]> {
|
|
41
|
+
return this.debugExt.$provideDebugConfigurations(this.type, workspaceFolderUri, dynamic);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
async resolveDebugConfiguration(config: DebugConfiguration, workspaceFolderUri: string | undefined): Promise<DebugConfiguration | undefined> {
|
|
@@ -25,6 +25,7 @@ import { WorkspaceService } from '@theia/workspace/lib/browser';
|
|
|
25
25
|
import { DebuggerContribution } from '../../../common/plugin-protocol';
|
|
26
26
|
import { DebugRequestTypes } from '@theia/debug/lib/browser/debug-session-connection';
|
|
27
27
|
import * as theia from '@theia/plugin';
|
|
28
|
+
|
|
28
29
|
/**
|
|
29
30
|
* Debug adapter contribution registrator.
|
|
30
31
|
*/
|
|
@@ -111,6 +112,28 @@ export class PluginDebugService implements DebugService, PluginDebugAdapterContr
|
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
114
|
|
|
115
|
+
async provideDynamicDebugConfigurations(): Promise<{ type: string, configurations: DebugConfiguration[] }[]> {
|
|
116
|
+
const result: Promise<{ type: string, configurations: theia.DebugConfiguration[] }>[] = [];
|
|
117
|
+
|
|
118
|
+
for (const [type, contributor] of this.contributors.entries()) {
|
|
119
|
+
const typeConfigurations = this.resolveDynamicConfigurationsForType(type, contributor);
|
|
120
|
+
result.push(typeConfigurations);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return Promise.all(result);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
protected async resolveDynamicConfigurationsForType(
|
|
127
|
+
type: string,
|
|
128
|
+
contributor: PluginDebugAdapterContribution): Promise<{ type: string, configurations: DebugConfiguration[] }> {
|
|
129
|
+
|
|
130
|
+
const configurations = await contributor.provideDebugConfigurations(undefined, true);
|
|
131
|
+
for (const configuration of configurations) {
|
|
132
|
+
configuration.dynamic = true;
|
|
133
|
+
}
|
|
134
|
+
return { type, configurations };
|
|
135
|
+
}
|
|
136
|
+
|
|
114
137
|
async resolveDebugConfiguration(config: DebugConfiguration, workspaceFolderUri: string | undefined): Promise<DebugConfiguration> {
|
|
115
138
|
let resolved = config;
|
|
116
139
|
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
|
|
17
|
-
import { DefaultDebugSessionFactory
|
|
17
|
+
import { DefaultDebugSessionFactory } from '@theia/debug/lib/browser/debug-session-contribution';
|
|
18
18
|
import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
|
|
19
19
|
import { EditorManager } from '@theia/editor/lib/browser/editor-manager';
|
|
20
20
|
import { BreakpointManager } from '@theia/debug/lib/browser/breakpoint/breakpoint-manager';
|
|
21
21
|
import { LabelProvider } from '@theia/core/lib/browser/label-provider';
|
|
22
22
|
import { MessageClient } from '@theia/core/lib/common/message-service-protocol';
|
|
23
|
-
import { OutputChannelManager } from '@theia/output/lib/
|
|
23
|
+
import { OutputChannelManager } from '@theia/output/lib/browser/output-channel';
|
|
24
24
|
import { DebugPreferences } from '@theia/debug/lib/browser/debug-preferences';
|
|
25
25
|
import { DebugSessionOptions } from '@theia/debug/lib/browser/debug-session-options';
|
|
26
26
|
import { DebugSession } from '@theia/debug/lib/browser/debug-session';
|
|
@@ -30,7 +30,7 @@ import { TerminalWidgetOptions, TerminalWidget } from '@theia/terminal/lib/brows
|
|
|
30
30
|
import { TerminalOptionsExt } from '../../../common/plugin-api-rpc';
|
|
31
31
|
import { FileService } from '@theia/filesystem/lib/browser/file-service';
|
|
32
32
|
import { DebugContribution } from '@theia/debug/lib/browser/debug-contribution';
|
|
33
|
-
import { ContributionProvider } from '@theia/core';
|
|
33
|
+
import { ContributionProvider } from '@theia/core/lib/common/contribution-provider';
|
|
34
34
|
|
|
35
35
|
export class PluginDebugSession extends DebugSession {
|
|
36
36
|
constructor(
|
|
@@ -18,7 +18,8 @@ import { Message } from '@theia/core/shared/@phosphor/messaging';
|
|
|
18
18
|
import { codiconArray, Key } from '@theia/core/lib/browser';
|
|
19
19
|
import { AbstractDialog } from '@theia/core/lib/browser/dialogs';
|
|
20
20
|
import '../../../../src/main/browser/dialogs/style/modal-notification.css';
|
|
21
|
-
import { MainMessageItem } from '../../../common/plugin-api-rpc';
|
|
21
|
+
import { MainMessageItem, MainMessageOptions } from '../../../common/plugin-api-rpc';
|
|
22
|
+
import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
|
|
22
23
|
|
|
23
24
|
export enum MessageType {
|
|
24
25
|
Error = 'error',
|
|
@@ -29,6 +30,7 @@ export enum MessageType {
|
|
|
29
30
|
const NOTIFICATION = 'modal-Notification';
|
|
30
31
|
const ICON = 'icon';
|
|
31
32
|
const TEXT = 'text';
|
|
33
|
+
const DETAIL = 'detail';
|
|
32
34
|
|
|
33
35
|
@injectable()
|
|
34
36
|
export class ModalNotification extends AbstractDialog<string | undefined> {
|
|
@@ -36,7 +38,7 @@ export class ModalNotification extends AbstractDialog<string | undefined> {
|
|
|
36
38
|
protected actionTitle: string | undefined;
|
|
37
39
|
|
|
38
40
|
constructor() {
|
|
39
|
-
super({ title:
|
|
41
|
+
super({ title: FrontendApplicationConfigProvider.get().applicationName });
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
protected onCloseRequest(msg: Message): void {
|
|
@@ -48,12 +50,12 @@ export class ModalNotification extends AbstractDialog<string | undefined> {
|
|
|
48
50
|
return this.actionTitle;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
showDialog(messageType: MessageType, text: string, actions: MainMessageItem[]): Promise<string | undefined> {
|
|
52
|
-
this.contentNode.appendChild(this.createMessageNode(messageType, text, actions));
|
|
53
|
+
showDialog(messageType: MessageType, text: string, options: MainMessageOptions, actions: MainMessageItem[]): Promise<string | undefined> {
|
|
54
|
+
this.contentNode.appendChild(this.createMessageNode(messageType, text, options, actions));
|
|
53
55
|
return this.open();
|
|
54
56
|
}
|
|
55
57
|
|
|
56
|
-
protected createMessageNode(messageType: MessageType, text: string, actions: MainMessageItem[]): HTMLElement {
|
|
58
|
+
protected createMessageNode(messageType: MessageType, text: string, options: MainMessageOptions, actions: MainMessageItem[]): HTMLElement {
|
|
57
59
|
const messageNode = document.createElement('div');
|
|
58
60
|
messageNode.classList.add(NOTIFICATION);
|
|
59
61
|
|
|
@@ -67,6 +69,13 @@ export class ModalNotification extends AbstractDialog<string | undefined> {
|
|
|
67
69
|
const textElement = textContainer.appendChild(document.createElement('p'));
|
|
68
70
|
textElement.textContent = text;
|
|
69
71
|
|
|
72
|
+
if (options.detail) {
|
|
73
|
+
const detailContainer = textContainer.appendChild(document.createElement('div'));
|
|
74
|
+
detailContainer.classList.add(DETAIL);
|
|
75
|
+
const detailElement = detailContainer.appendChild(document.createElement('p'));
|
|
76
|
+
detailElement.textContent = options.detail;
|
|
77
|
+
}
|
|
78
|
+
|
|
70
79
|
actions.forEach((action: MainMessageItem) => {
|
|
71
80
|
const button = this.createButton(action.title);
|
|
72
81
|
button.classList.add('main');
|
|
@@ -79,8 +88,10 @@ export class ModalNotification extends AbstractDialog<string | undefined> {
|
|
|
79
88
|
},
|
|
80
89
|
'click');
|
|
81
90
|
});
|
|
82
|
-
if (
|
|
83
|
-
this.
|
|
91
|
+
if (actions.length <= 0) {
|
|
92
|
+
this.appendAcceptButton();
|
|
93
|
+
} else if (!actions.some(action => action.isCloseAffordance === true)) {
|
|
94
|
+
this.appendCloseButton('Close');
|
|
84
95
|
}
|
|
85
96
|
|
|
86
97
|
return messageNode;
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
order: 1;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
.modal-Notification .icon .
|
|
45
|
+
.modal-Notification .icon .codicon {
|
|
46
46
|
line-height: inherit;
|
|
47
47
|
vertical-align: middle;
|
|
48
|
-
font-size:
|
|
48
|
+
font-size: calc(var(--theia-ui-padding)*5);
|
|
49
49
|
color: var(--theia-editorInfo-foreground);
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -106,3 +106,18 @@
|
|
|
106
106
|
.modal-Notification .buttons > button:hover {
|
|
107
107
|
background-color: var(--theia-button-hoverBackground);
|
|
108
108
|
}
|
|
109
|
+
|
|
110
|
+
.modal-Notification .detail {
|
|
111
|
+
align-self: center;
|
|
112
|
+
order: 3;
|
|
113
|
+
flex: 1 100%;
|
|
114
|
+
color: var(--theia-descriptionForeground);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.modal-Notification .detail > p {
|
|
118
|
+
margin: calc(var(--theia-ui-padding) * 2) 0px 0px 0px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.modal-Notification .text {
|
|
122
|
+
padding: calc(var(--theia-ui-padding)*1.5);
|
|
123
|
+
}
|
|
@@ -29,8 +29,7 @@ import { EditorModelService } from './text-editor-model-service';
|
|
|
29
29
|
import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
|
|
30
30
|
import { MonacoEditor } from '@theia/monaco/lib/browser/monaco-editor';
|
|
31
31
|
import { TextEditorMain } from './text-editor-main';
|
|
32
|
-
import { Emitter } from '@theia/core';
|
|
33
|
-
import { DisposableCollection } from '@theia/core';
|
|
32
|
+
import { DisposableCollection, Emitter } from '@theia/core';
|
|
34
33
|
import { EditorManager, EditorWidget } from '@theia/editor/lib/browser';
|
|
35
34
|
|
|
36
35
|
export class EditorsAndDocumentsMain implements Disposable {
|
|
@@ -774,7 +774,7 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
774
774
|
selector: language,
|
|
775
775
|
getRootDefinition: (uri: DocumentUri, position: Position, cancellationToken: CancellationToken) =>
|
|
776
776
|
this.proxy.$provideRootDefinition(handle, toUriComponents(uri), fromPosition(position), cancellationToken)
|
|
777
|
-
.then(def => toDefinition(def)),
|
|
777
|
+
.then(def => Array.isArray(def) ? def.map(item => toDefinition(item)) : toDefinition(def)),
|
|
778
778
|
getCallers: (definition: Definition, cancellationToken: CancellationToken) => this.proxy.$provideCallers(handle, fromDefinition(definition), cancellationToken)
|
|
779
779
|
.then(result => {
|
|
780
780
|
if (!result) {
|
|
@@ -40,7 +40,7 @@ export class MessageRegistryMainImpl implements MessageRegistryMain {
|
|
|
40
40
|
type === MainMessageType.Warning ? MessageType.Warning :
|
|
41
41
|
MessageType.Info;
|
|
42
42
|
const modalNotification = new ModalNotification();
|
|
43
|
-
return modalNotification.showDialog(messageType, message, actions);
|
|
43
|
+
return modalNotification.showDialog(messageType, message, options, actions);
|
|
44
44
|
}
|
|
45
45
|
switch (type) {
|
|
46
46
|
case MainMessageType.Info:
|
|
@@ -194,7 +194,7 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
194
194
|
|
|
195
195
|
private sessions = new Map<number, QuickInputSession>();
|
|
196
196
|
|
|
197
|
-
$createOrUpdate<T extends theia.QuickPickItem>(params: TransferQuickInput
|
|
197
|
+
$createOrUpdate<T extends theia.QuickPickItem>(params: TransferQuickInput): Promise<void> {
|
|
198
198
|
const sessionId = params.id;
|
|
199
199
|
let session = this.sessions.get(sessionId);
|
|
200
200
|
if (!session) {
|
|
@@ -97,6 +97,13 @@ export class TasksMainImpl implements TasksMain, Disposable {
|
|
|
97
97
|
this.proxy.$onDidEndTaskProcess(event.code, event.taskId);
|
|
98
98
|
}
|
|
99
99
|
}));
|
|
100
|
+
|
|
101
|
+
// Inform proxy about running tasks form previous session
|
|
102
|
+
this.$taskExecutions().then(executions => {
|
|
103
|
+
if (executions.length > 0) {
|
|
104
|
+
this.proxy.$initLoadedTasks(executions);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
100
107
|
}
|
|
101
108
|
|
|
102
109
|
dispose(): void {
|
|
@@ -14,12 +14,11 @@
|
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
17
|
-
import { TimelineMain } from '../../common/plugin-api-rpc';
|
|
17
|
+
import { MAIN_RPC_CONTEXT, TimelineExt, TimelineMain } from '../../common/plugin-api-rpc';
|
|
18
18
|
import { RPCProtocol } from '../../common/rpc-protocol';
|
|
19
19
|
import { TimelineService } from '@theia/timeline/lib/browser/timeline-service';
|
|
20
20
|
import { Emitter } from '@theia/core/lib/common';
|
|
21
21
|
import { URI } from '@theia/core/shared/vscode-uri';
|
|
22
|
-
import { MAIN_RPC_CONTEXT, TimelineExt } from '../../common/plugin-api-rpc';
|
|
23
22
|
import {
|
|
24
23
|
InternalTimelineOptions,
|
|
25
24
|
Timeline,
|