@theia/plugin-ext 1.45.1 → 1.46.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/lib/common/plugin-api-rpc.d.ts +9 -4
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +3 -1
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-ext-api-contribution.d.ts +35 -5
- package/lib/common/plugin-ext-api-contribution.d.ts.map +1 -1
- package/lib/common/plugin-ext-api-contribution.js.map +1 -1
- package/lib/common/plugin-protocol.d.ts +5 -2
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-protocol.js +1 -0
- package/lib/common/plugin-protocol.js.map +1 -1
- package/lib/common/proxy-handler.d.ts +7 -0
- package/lib/common/proxy-handler.d.ts.map +1 -1
- package/lib/common/proxy-handler.js +5 -1
- package/lib/common/proxy-handler.js.map +1 -1
- package/lib/common/rpc-protocol.d.ts +10 -0
- package/lib/common/rpc-protocol.d.ts.map +1 -1
- package/lib/common/rpc-protocol.js +32 -3
- package/lib/common/rpc-protocol.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +16 -74
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +41 -314
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.d.ts +2 -2
- package/lib/hosted/browser/worker/debug-stub.d.ts.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.js +3 -3
- package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
- package/lib/hosted/browser/worker/worker-env-ext.d.ts +1 -2
- package/lib/hosted/browser/worker/worker-env-ext.d.ts.map +1 -1
- package/lib/hosted/browser/worker/worker-env-ext.js +18 -4
- package/lib/hosted/browser/worker/worker-env-ext.js.map +1 -1
- package/lib/hosted/browser/worker/worker-main.js +20 -32
- package/lib/hosted/browser/worker/worker-main.js.map +1 -1
- package/lib/hosted/browser/worker/worker-plugin-module.d.ts +5 -0
- package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -0
- package/lib/hosted/browser/worker/worker-plugin-module.js +71 -0
- package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -0
- package/lib/hosted/common/hosted-plugin.d.ts +97 -0
- package/lib/hosted/common/hosted-plugin.d.ts.map +1 -0
- package/lib/hosted/common/hosted-plugin.js +408 -0
- package/lib/hosted/common/hosted-plugin.js.map +1 -0
- package/lib/hosted/node/hosted-plugin-process.d.ts +1 -1
- package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +2 -2
- 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-host-module.d.ts +5 -0
- package/lib/hosted/node/plugin-host-module.d.ts.map +1 -0
- package/lib/hosted/node/plugin-host-module.js +68 -0
- package/lib/hosted/node/plugin-host-module.js.map +1 -0
- package/lib/hosted/node/plugin-host-rpc.d.ts +93 -7
- package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
- package/lib/hosted/node/plugin-host-rpc.js +202 -53
- package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
- package/lib/hosted/node/plugin-host.js +6 -5
- package/lib/hosted/node/plugin-host.js.map +1 -1
- package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
- package/lib/hosted/node/plugin-reader.js +3 -0
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-service.d.ts +8 -0
- package/lib/hosted/node/plugin-service.d.ts.map +1 -1
- package/lib/hosted/node/plugin-service.js +14 -4
- package/lib/hosted/node/plugin-service.js.map +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.d.ts +17 -3
- package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +48 -19
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/main/browser/authentication-main.d.ts.map +1 -1
- package/lib/main/browser/authentication-main.js +3 -1
- package/lib/main/browser/authentication-main.js.map +1 -1
- package/lib/main/browser/env-main.d.ts +1 -10
- package/lib/main/browser/env-main.d.ts.map +1 -1
- package/lib/main/browser/env-main.js +2 -21
- package/lib/main/browser/env-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 +6 -3
- 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/message-registry-main.d.ts +6 -4
- package/lib/main/browser/message-registry-main.d.ts.map +1 -1
- package/lib/main/browser/message-registry-main.js +7 -19
- package/lib/main/browser/message-registry-main.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +1 -0
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js +23 -22
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js +22 -14
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +2 -1
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.map +1 -1
- package/lib/main/browser/notification-main.d.ts +2 -14
- package/lib/main/browser/notification-main.d.ts.map +1 -1
- package/lib/main/browser/notification-main.js +3 -52
- package/lib/main/browser/notification-main.js.map +1 -1
- package/lib/main/browser/terminal-main.d.ts +1 -1
- package/lib/main/browser/terminal-main.d.ts.map +1 -1
- package/lib/main/browser/terminal-main.js +2 -2
- package/lib/main/browser/terminal-main.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +5 -2
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/webview/webview-context-keys.d.ts +5 -1
- package/lib/main/browser/webview/webview-context-keys.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-context-keys.js +13 -4
- package/lib/main/browser/webview/webview-context-keys.js.map +1 -1
- package/lib/main/browser/webview/webview-widget-factory.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-widget-factory.js +2 -1
- package/lib/main/browser/webview/webview-widget-factory.js.map +1 -1
- package/lib/main/browser/webview/webview.d.ts +1 -0
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +1 -0
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/webviews-main.d.ts.map +1 -1
- package/lib/main/browser/webviews-main.js +7 -2
- package/lib/main/browser/webviews-main.js.map +1 -1
- package/lib/main/common/basic-message-registry-main.d.ts +14 -0
- package/lib/main/common/basic-message-registry-main.d.ts.map +1 -0
- package/lib/main/common/basic-message-registry-main.js +50 -0
- package/lib/main/common/basic-message-registry-main.js.map +1 -0
- package/lib/main/common/basic-notification-main.d.ts +19 -0
- package/lib/main/common/basic-notification-main.d.ts.map +1 -0
- package/lib/main/common/basic-notification-main.js +75 -0
- package/lib/main/common/basic-notification-main.js.map +1 -0
- package/lib/main/common/env-main.d.ts +11 -0
- package/lib/main/common/env-main.d.ts.map +1 -0
- package/lib/main/common/env-main.js +40 -0
- package/lib/main/common/env-main.js.map +1 -0
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +8 -3
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +38 -20
- package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.js +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
- package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
- package/lib/main/node/plugin-deployer-impl.js +5 -1
- package/lib/main/node/plugin-deployer-impl.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.js +1 -1
- package/lib/main/node/plugins-key-value-storage.js.map +1 -1
- package/lib/plugin/clipboard-ext.d.ts +3 -2
- package/lib/plugin/clipboard-ext.d.ts.map +1 -1
- package/lib/plugin/clipboard-ext.js +28 -4
- package/lib/plugin/clipboard-ext.js.map +1 -1
- package/lib/plugin/debug/debug-ext.d.ts +3 -1
- package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
- package/lib/plugin/debug/debug-ext.js +31 -4
- package/lib/plugin/debug/debug-ext.js.map +1 -1
- package/lib/plugin/documents.js +2 -2
- package/lib/plugin/documents.js.map +1 -1
- package/lib/plugin/editors-and-documents.d.ts +1 -2
- package/lib/plugin/editors-and-documents.d.ts.map +1 -1
- package/lib/plugin/editors-and-documents.js +21 -4
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/env.d.ts +6 -2
- package/lib/plugin/env.d.ts.map +1 -1
- package/lib/plugin/env.js +37 -4
- package/lib/plugin/env.js.map +1 -1
- package/lib/plugin/localization-ext.d.ts +3 -2
- package/lib/plugin/localization-ext.d.ts.map +1 -1
- package/lib/plugin/localization-ext.js +30 -4
- package/lib/plugin/localization-ext.js.map +1 -1
- package/lib/plugin/message-registry.d.ts +2 -1
- package/lib/plugin/message-registry.d.ts.map +1 -1
- package/lib/plugin/message-registry.js +28 -4
- package/lib/plugin/message-registry.js.map +1 -1
- package/lib/plugin/node/debug/debug.spec.js +21 -1
- package/lib/plugin/node/debug/debug.spec.js.map +1 -1
- package/lib/plugin/node/env-node-ext.d.ts +1 -6
- package/lib/plugin/node/env-node-ext.d.ts.map +1 -1
- package/lib/plugin/node/env-node-ext.js +18 -10
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/node/plugin-container-module.d.ts +75 -0
- package/lib/plugin/node/plugin-container-module.d.ts.map +1 -0
- package/lib/plugin/node/plugin-container-module.js +115 -0
- package/lib/plugin/node/plugin-container-module.js.map +1 -0
- package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.js +0 -1
- package/lib/plugin/notebook/notebook-kernels.js.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +9 -1
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-manager.d.ts +26 -17
- package/lib/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/plugin/plugin-manager.js +107 -37
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/plugin-storage.d.ts +11 -3
- package/lib/plugin/plugin-storage.d.ts.map +1 -1
- package/lib/plugin/plugin-storage.js +25 -5
- package/lib/plugin/plugin-storage.js.map +1 -1
- package/lib/plugin/preference-registry.d.ts +3 -2
- package/lib/plugin/preference-registry.d.ts.map +1 -1
- package/lib/plugin/preference-registry.js +35 -5
- package/lib/plugin/preference-registry.js.map +1 -1
- package/lib/plugin/preference-registry.spec.js +8 -1
- package/lib/plugin/preference-registry.spec.js.map +1 -1
- package/lib/plugin/quick-open.js +3 -3
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/secrets-ext.d.ts +16 -7
- package/lib/plugin/secrets-ext.d.ts.map +1 -1
- package/lib/plugin/secrets-ext.js +23 -3
- package/lib/plugin/secrets-ext.js.map +1 -1
- package/lib/plugin/terminal-ext.d.ts +1 -1
- package/lib/plugin/terminal-ext.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.js +26 -6
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/types-impl.d.ts +22 -2
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +22 -6
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/webview-views.d.ts.map +1 -1
- package/lib/plugin/webview-views.js +2 -1
- package/lib/plugin/webview-views.js.map +1 -1
- package/lib/plugin/webviews.d.ts +7 -5
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js +46 -12
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/workspace.d.ts +4 -3
- package/lib/plugin/workspace.d.ts.map +1 -1
- package/lib/plugin/workspace.js +40 -6
- package/lib/plugin/workspace.js.map +1 -1
- package/package.json +29 -29
- package/src/common/plugin-api-rpc.ts +10 -6
- package/src/common/plugin-ext-api-contribution.ts +38 -5
- package/src/common/plugin-protocol.ts +7 -2
- package/src/common/proxy-handler.ts +14 -1
- package/src/common/rpc-protocol.ts +41 -3
- package/src/hosted/browser/hosted-plugin.ts +47 -337
- package/src/hosted/browser/worker/debug-stub.ts +4 -3
- package/src/hosted/browser/worker/worker-env-ext.ts +5 -4
- package/src/hosted/browser/worker/worker-main.ts +103 -115
- package/src/hosted/browser/worker/worker-plugin-module.ts +73 -0
- package/src/hosted/common/hosted-plugin.ts +456 -0
- package/src/hosted/node/hosted-plugin-process.ts +4 -4
- package/src/hosted/node/plugin-ext-hosted-backend-module.ts +3 -1
- package/src/hosted/node/plugin-host-module.ts +69 -0
- package/src/hosted/node/plugin-host-rpc.ts +232 -73
- package/src/hosted/node/plugin-host.ts +9 -7
- package/src/hosted/node/plugin-reader.ts +3 -0
- package/src/hosted/node/plugin-service.ts +21 -4
- package/src/hosted/node/scanners/file-plugin-uri-factory.ts +1 -1
- package/src/hosted/node/scanners/scanner-theia.ts +46 -12
- package/src/main/browser/authentication-main.ts +3 -1
- package/src/main/browser/env-main.ts +1 -28
- package/src/main/browser/menus/menus-contribution-handler.ts +8 -3
- package/src/main/browser/menus/plugin-menu-command-adapter.ts +1 -1
- package/src/main/browser/message-registry-main.ts +10 -23
- package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +26 -24
- package/src/main/browser/notebooks/renderers/output-webview-internal.ts +22 -13
- package/src/main/browser/notebooks/renderers/webview-communication.ts +2 -1
- package/src/main/browser/notification-main.ts +4 -64
- package/src/main/browser/terminal-main.ts +2 -2
- package/src/main/browser/view/plugin-view-registry.ts +6 -3
- package/src/main/browser/webview/webview-context-keys.ts +17 -4
- package/src/main/browser/webview/webview-widget-factory.ts +2 -1
- package/src/main/browser/webview/webview.ts +2 -0
- package/src/main/browser/webviews-main.ts +7 -2
- package/src/main/common/basic-message-registry-main.ts +53 -0
- package/src/main/common/basic-notification-main.ts +86 -0
- package/src/main/common/env-main.ts +44 -0
- package/src/main/node/handlers/plugin-theia-directory-handler.ts +38 -16
- package/src/main/node/handlers/plugin-theia-file-handler.ts +1 -1
- package/src/main/node/plugin-deployer-impl.ts +5 -1
- package/src/main/node/plugins-key-value-storage.ts +1 -1
- package/src/plugin/clipboard-ext.ts +9 -3
- package/src/plugin/debug/debug-ext.ts +11 -2
- package/src/plugin/documents.ts +2 -2
- package/src/plugin/editors-and-documents.ts +5 -3
- package/src/plugin/env.ts +19 -3
- package/src/plugin/localization-ext.ts +8 -3
- package/src/plugin/message-registry.ts +7 -2
- package/src/plugin/node/debug/debug.spec.ts +5 -1
- package/src/plugin/node/env-node-ext.ts +5 -10
- package/src/plugin/node/plugin-container-module.ts +165 -0
- package/src/plugin/notebook/notebook-kernels.ts +0 -1
- package/src/plugin/plugin-context.ts +11 -2
- package/src/plugin/plugin-manager.ts +99 -45
- package/src/plugin/plugin-storage.ts +22 -4
- package/src/plugin/preference-registry.spec.ts +6 -1
- package/src/plugin/preference-registry.ts +11 -5
- package/src/plugin/quick-open.ts +3 -3
- package/src/plugin/secrets-ext.ts +25 -5
- package/src/plugin/terminal-ext.ts +5 -3
- package/src/plugin/types-impl.ts +30 -2
- package/src/plugin/webview-views.ts +2 -1
- package/src/plugin/webviews.ts +22 -13
- package/src/plugin/workspace.ts +14 -4
package/src/plugin/types-impl.ts
CHANGED
|
@@ -1593,6 +1593,30 @@ export class DocumentHighlight {
|
|
|
1593
1593
|
}
|
|
1594
1594
|
}
|
|
1595
1595
|
|
|
1596
|
+
@es5ClassCompat
|
|
1597
|
+
export class MultiDocumentHighlight {
|
|
1598
|
+
|
|
1599
|
+
/**
|
|
1600
|
+
* The URI of the document containing the highlights.
|
|
1601
|
+
*/
|
|
1602
|
+
uri: URI;
|
|
1603
|
+
|
|
1604
|
+
/**
|
|
1605
|
+
* The highlights for the document.
|
|
1606
|
+
*/
|
|
1607
|
+
highlights: DocumentHighlight[];
|
|
1608
|
+
|
|
1609
|
+
/**
|
|
1610
|
+
* Creates a new instance of MultiDocumentHighlight.
|
|
1611
|
+
* @param uri The URI of the document containing the highlights.
|
|
1612
|
+
* @param highlights The highlights for the document.
|
|
1613
|
+
*/
|
|
1614
|
+
constructor(uri: URI, highlights: DocumentHighlight[]) {
|
|
1615
|
+
this.uri = uri;
|
|
1616
|
+
this.highlights = highlights;
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
|
|
1596
1620
|
export type Definition = Location | Location[];
|
|
1597
1621
|
|
|
1598
1622
|
@es5ClassCompat
|
|
@@ -3673,15 +3697,19 @@ export enum EditSessionIdentityMatch {
|
|
|
3673
3697
|
// #endregion
|
|
3674
3698
|
|
|
3675
3699
|
// #region terminalQuickFixProvider
|
|
3676
|
-
export class
|
|
3700
|
+
export class TerminalQuickFixTerminalCommand {
|
|
3677
3701
|
/**
|
|
3678
3702
|
* The terminal command to run
|
|
3679
3703
|
*/
|
|
3680
3704
|
terminalCommand: string;
|
|
3705
|
+
/**
|
|
3706
|
+
* Whether the command should be executed or just inserted (default)
|
|
3707
|
+
*/
|
|
3708
|
+
shouldExecute?: boolean;
|
|
3681
3709
|
/**
|
|
3682
3710
|
* @stubbed
|
|
3683
3711
|
*/
|
|
3684
|
-
constructor(terminalCommand: string) { }
|
|
3712
|
+
constructor(terminalCommand: string, shouldExecute?: boolean) { }
|
|
3685
3713
|
}
|
|
3686
3714
|
export class TerminalQuickFixOpener {
|
|
3687
3715
|
/**
|
|
@@ -27,6 +27,7 @@ import { WebviewImpl, WebviewsExtImpl } from './webviews';
|
|
|
27
27
|
import { WebviewViewProvider } from '@theia/plugin';
|
|
28
28
|
import { Emitter, Event } from '@theia/core/lib/common/event';
|
|
29
29
|
import * as theia from '@theia/plugin';
|
|
30
|
+
import { hashValue } from '@theia/core/lib/common/uuid';
|
|
30
31
|
|
|
31
32
|
export class WebviewViewsExtImpl implements WebviewViewsExt {
|
|
32
33
|
|
|
@@ -82,7 +83,7 @@ export class WebviewViewsExtImpl implements WebviewViewsExt {
|
|
|
82
83
|
|
|
83
84
|
const { provider, plugin } = entry;
|
|
84
85
|
|
|
85
|
-
const webviewNoPanel = this.webviewsExt.createNewWebview({}, plugin, handle);
|
|
86
|
+
const webviewNoPanel = this.webviewsExt.createNewWebview({}, plugin, handle, hashValue(viewType));
|
|
86
87
|
const revivedView = new WebviewViewExtImpl(handle, this.proxy, viewType, title, webviewNoPanel, true);
|
|
87
88
|
this.webviewViews.set(handle, revivedView);
|
|
88
89
|
await provider.resolveWebviewView(revivedView, { state }, cancellation);
|
package/src/plugin/webviews.ts
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { v4 } from 'uuid';
|
|
18
|
+
import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
|
|
18
19
|
import { Plugin, WebviewsExt, WebviewPanelViewState, WebviewsMain, PLUGIN_RPC_CONTEXT, WebviewInitData, /* WebviewsMain, PLUGIN_RPC_CONTEXT */ } from '../common/plugin-api-rpc';
|
|
19
20
|
import * as theia from '@theia/plugin';
|
|
20
21
|
import { RPCProtocol } from '../common/rpc-protocol';
|
|
@@ -23,9 +24,17 @@ import { fromViewColumn, toViewColumn, toWebviewPanelShowOptions } from './type-
|
|
|
23
24
|
import { Disposable, WebviewPanelTargetArea, URI } from './types-impl';
|
|
24
25
|
import { WorkspaceExtImpl } from './workspace';
|
|
25
26
|
import { PluginIconPath } from './plugin-icon-path';
|
|
27
|
+
import { hashValue } from '@theia/core/lib/common/uuid';
|
|
26
28
|
|
|
29
|
+
@injectable()
|
|
27
30
|
export class WebviewsExtImpl implements WebviewsExt {
|
|
28
|
-
|
|
31
|
+
@inject(RPCProtocol)
|
|
32
|
+
protected readonly rpc: RPCProtocol;
|
|
33
|
+
|
|
34
|
+
@inject(WorkspaceExtImpl)
|
|
35
|
+
protected readonly workspace: WorkspaceExtImpl;
|
|
36
|
+
|
|
37
|
+
private proxy: WebviewsMain;
|
|
29
38
|
private readonly webviewPanels = new Map<string, WebviewPanelImpl>();
|
|
30
39
|
private readonly webviews = new Map<string, WebviewImpl>();
|
|
31
40
|
private readonly serializers = new Map<string, {
|
|
@@ -37,11 +46,9 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
37
46
|
readonly onDidDisposeEmitter = new Emitter<void>();
|
|
38
47
|
readonly onDidDispose: Event<void> = this.onDidDisposeEmitter.event;
|
|
39
48
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
) {
|
|
44
|
-
this.proxy = rpc.getProxy(PLUGIN_RPC_CONTEXT.WEBVIEWS_MAIN);
|
|
49
|
+
@postConstruct()
|
|
50
|
+
initialize(): void {
|
|
51
|
+
this.proxy = this.rpc.getProxy(PLUGIN_RPC_CONTEXT.WEBVIEWS_MAIN);
|
|
45
52
|
}
|
|
46
53
|
|
|
47
54
|
init(initData: WebviewInitData): void {
|
|
@@ -96,7 +103,7 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
96
103
|
}
|
|
97
104
|
const { serializer, plugin } = entry;
|
|
98
105
|
|
|
99
|
-
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin);
|
|
106
|
+
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin, hashValue(viewType));
|
|
100
107
|
const revivedPanel = new WebviewPanelImpl(viewId, this.proxy, viewType, title, toViewColumn(viewState.position)!, options, webview);
|
|
101
108
|
revivedPanel.setActive(viewState.active);
|
|
102
109
|
revivedPanel.setVisible(viewState.visible);
|
|
@@ -131,7 +138,7 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
131
138
|
throw new Error('Webviews are not initialized');
|
|
132
139
|
}
|
|
133
140
|
const webviewShowOptions = toWebviewPanelShowOptions(showOptions);
|
|
134
|
-
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin);
|
|
141
|
+
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin, hashValue(viewType));
|
|
135
142
|
const panel = new WebviewPanelImpl(viewId, this.proxy, viewType, title, webviewShowOptions, options, webview);
|
|
136
143
|
this.webviewPanels.set(viewId, panel);
|
|
137
144
|
return panel;
|
|
@@ -140,12 +147,13 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
140
147
|
createNewWebview(
|
|
141
148
|
options: theia.WebviewPanelOptions & theia.WebviewOptions,
|
|
142
149
|
plugin: Plugin,
|
|
143
|
-
viewId: string
|
|
150
|
+
viewId: string,
|
|
151
|
+
origin?: string
|
|
144
152
|
): WebviewImpl {
|
|
145
153
|
if (!this.initData) {
|
|
146
154
|
throw new Error('Webviews are not initialized');
|
|
147
155
|
}
|
|
148
|
-
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin);
|
|
156
|
+
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin, origin);
|
|
149
157
|
this.webviews.set(viewId, webview);
|
|
150
158
|
return webview;
|
|
151
159
|
}
|
|
@@ -201,7 +209,8 @@ export class WebviewImpl implements theia.Webview {
|
|
|
201
209
|
options: theia.WebviewOptions,
|
|
202
210
|
private readonly initData: WebviewInitData,
|
|
203
211
|
private readonly workspace: WorkspaceExtImpl,
|
|
204
|
-
readonly plugin: Plugin
|
|
212
|
+
readonly plugin: Plugin,
|
|
213
|
+
private readonly origin?: string
|
|
205
214
|
) {
|
|
206
215
|
this._options = options;
|
|
207
216
|
}
|
|
@@ -219,12 +228,12 @@ export class WebviewImpl implements theia.Webview {
|
|
|
219
228
|
.replace('{{scheme}}', resource.scheme)
|
|
220
229
|
.replace('{{authority}}', resource.authority)
|
|
221
230
|
.replace('{{path}}', resource.path.replace(/^\//, ''))
|
|
222
|
-
.replace('{{uuid}}', this.viewId);
|
|
231
|
+
.replace('{{uuid}}', this.origin ?? this.viewId);
|
|
223
232
|
return URI.parse(uri);
|
|
224
233
|
}
|
|
225
234
|
|
|
226
235
|
get cspSource(): string {
|
|
227
|
-
return this.initData.webviewCspSource.replace('{{uuid}}', this.viewId);
|
|
236
|
+
return this.initData.webviewCspSource.replace('{{uuid}}', this.origin ?? this.viewId);
|
|
228
237
|
}
|
|
229
238
|
|
|
230
239
|
get html(): string {
|
package/src/plugin/workspace.ts
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
import * as paths from 'path';
|
|
23
23
|
import * as theia from '@theia/plugin';
|
|
24
|
+
import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
|
|
24
25
|
import { Event, Emitter } from '@theia/core/lib/common/event';
|
|
25
26
|
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
26
27
|
import {
|
|
@@ -44,8 +45,18 @@ import * as Converter from './type-converters';
|
|
|
44
45
|
import { FileStat } from '@theia/filesystem/lib/common/files';
|
|
45
46
|
import { isUndefinedOrNull, isUndefined } from '../common/types';
|
|
46
47
|
|
|
48
|
+
@injectable()
|
|
47
49
|
export class WorkspaceExtImpl implements WorkspaceExt {
|
|
48
50
|
|
|
51
|
+
@inject(RPCProtocol)
|
|
52
|
+
protected readonly rpc: RPCProtocol;
|
|
53
|
+
|
|
54
|
+
@inject(EditorsAndDocumentsExtImpl)
|
|
55
|
+
protected editorsAndDocuments: EditorsAndDocumentsExtImpl;
|
|
56
|
+
|
|
57
|
+
@inject(MessageRegistryExt)
|
|
58
|
+
protected messageService: MessageRegistryExt;
|
|
59
|
+
|
|
49
60
|
private proxy: WorkspaceMain;
|
|
50
61
|
|
|
51
62
|
private workspaceFoldersChangedEmitter = new Emitter<theia.WorkspaceFoldersChangeEvent>();
|
|
@@ -63,10 +74,9 @@ export class WorkspaceExtImpl implements WorkspaceExt {
|
|
|
63
74
|
|
|
64
75
|
private canonicalUriProviders = new Map<string, theia.CanonicalUriProvider>();
|
|
65
76
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
this.proxy = rpc.getProxy(Ext.WORKSPACE_MAIN);
|
|
77
|
+
@postConstruct()
|
|
78
|
+
initialize(): void {
|
|
79
|
+
this.proxy = this.rpc.getProxy(Ext.WORKSPACE_MAIN);
|
|
70
80
|
}
|
|
71
81
|
|
|
72
82
|
get rootPath(): string | undefined {
|