@theia/core 1.69.0-next.81 → 1.69.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/README.md +8 -8
- package/i18n/nls.cs.json +177 -21
- package/i18n/nls.de.json +177 -21
- package/i18n/nls.es.json +177 -21
- package/i18n/nls.fr.json +177 -21
- package/i18n/nls.hu.json +177 -21
- package/i18n/nls.it.json +177 -21
- package/i18n/nls.ja.json +177 -21
- package/i18n/nls.json +180 -24
- package/i18n/nls.ko.json +177 -21
- package/i18n/nls.pl.json +177 -21
- package/i18n/nls.pt-br.json +177 -21
- package/i18n/nls.ru.json +177 -21
- package/i18n/nls.tr.json +177 -21
- package/i18n/nls.zh-cn.json +177 -21
- package/i18n/nls.zh-tw.json +177 -21
- package/lib/browser/frontend-application-bindings.js +1 -1
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-module.js +20 -20
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +1 -1
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preload/preload-module.js +2 -2
- package/lib/browser/preload/preload-module.js.map +1 -1
- package/lib/browser/window/browser-window-module.js +1 -1
- package/lib/browser/window/browser-window-module.js.map +1 -1
- package/lib/common/contribution-provider.d.ts +35 -0
- package/lib/common/contribution-provider.d.ts.map +1 -1
- package/lib/common/contribution-provider.js +50 -4
- package/lib/common/contribution-provider.js.map +1 -1
- package/lib/common/preferences/preference-configurations.d.ts.map +1 -1
- package/lib/common/preferences/preference-configurations.js +1 -1
- package/lib/common/preferences/preference-configurations.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +1 -1
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-main/electron-main-application-module.js +3 -3
- package/lib/electron-main/electron-main-application-module.js.map +1 -1
- package/lib/node/backend-application-module.js +5 -5
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/i18n/i18n-backend-module.js +1 -1
- package/lib/node/i18n/i18n-backend-module.js.map +1 -1
- package/lib/node/messaging/messaging-backend-module.js +3 -3
- package/lib/node/messaging/messaging-backend-module.js.map +1 -1
- package/package.json +8 -8
- package/src/browser/frontend-application-bindings.ts +2 -2
- package/src/browser/frontend-application-module.ts +21 -21
- package/src/browser/preferences/preference-contribution.ts +2 -2
- package/src/browser/preload/preload-module.ts +3 -3
- package/src/browser/window/browser-window-module.ts +2 -2
- package/src/common/contribution-provider.ts +56 -8
- package/src/common/preferences/preference-configurations.ts +2 -2
- package/src/electron-browser/window/electron-window-module.ts +2 -2
- package/src/electron-main/electron-main-application-module.ts +4 -4
- package/src/node/backend-application-module.ts +6 -6
- package/src/node/i18n/i18n-backend-module.ts +2 -2
- package/src/node/messaging/messaging-backend-module.ts +4 -4
|
@@ -28,7 +28,7 @@ exports.default = new inversify_1.ContainerModule(bind => {
|
|
|
28
28
|
bind(localization_provider_1.LocalizationProvider).toSelf().inSingletonScope();
|
|
29
29
|
bind(common_1.ConnectionHandler).toDynamicValue(ctx => new common_1.RpcConnectionHandler(localization_1.localizationPath, () => ctx.container.get(localization_provider_1.LocalizationProvider))).inSingletonScope();
|
|
30
30
|
bind(localization_contribution_1.LocalizationRegistry).toSelf().inSingletonScope();
|
|
31
|
-
(0, common_1.
|
|
31
|
+
(0, common_1.bindRootContributionProvider)(bind, localization_contribution_1.LocalizationContribution);
|
|
32
32
|
bind(localization_server_1.LocalizationServerImpl).toSelf().inSingletonScope();
|
|
33
33
|
bind(localization_server_2.LocalizationServer).toService(localization_server_1.LocalizationServerImpl);
|
|
34
34
|
bind(backend_application_1.BackendApplicationContribution).toService(localization_server_1.LocalizationServerImpl);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-backend-module.js","sourceRoot":"","sources":["../../../src/node/i18n/i18n-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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;;AAEhF,yCAA4C;AAC5C,iEAAkE;AAClE,mEAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"i18n-backend-module.js","sourceRoot":"","sources":["../../../src/node/i18n/i18n-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,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;;AAEhF,yCAA4C;AAC5C,iEAAkE;AAClE,mEAA+D;AAC/D,yCAAqG;AACrG,2EAA6F;AAC7F,+DAA+D;AAC/D,uFAAkF;AAClF,+EAAmG;AACnG,gEAAwE;AAExE,kBAAe,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IACtC,IAAI,CAAC,4CAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CACzC,IAAI,6BAAoB,CAAC,+BAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,4CAAoB,CAAC,CAAC,CAC5F,CAAC,gBAAgB,EAAE,CAAC;IACrB,IAAI,CAAC,gDAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAA,qCAA4B,EAAC,IAAI,EAAE,oDAAwB,CAAC,CAAC;IAC7D,IAAI,CAAC,4CAAsB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACzD,IAAI,CAAC,wCAAkB,CAAC,CAAC,SAAS,CAAC,4CAAsB,CAAC,CAAC;IAC3D,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,4CAAsB,CAAC,CAAC;IACvE,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CACzC,IAAI,6BAAoB,CAAC,4CAAsB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,CAChG,CAAC,gBAAgB,EAAE,CAAC;IACrB,IAAI,CAAC,+DAA6B,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAChE,IAAI,CAAC,oDAAwB,CAAC,CAAC,SAAS,CAAC,+DAA6B,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC"}
|
|
@@ -29,8 +29,8 @@ const connection_management_1 = require("../../common/messaging/connection-manag
|
|
|
29
29
|
const websocket_frontend_connection_service_1 = require("./websocket-frontend-connection-service");
|
|
30
30
|
const websocket_endpoint_1 = require("./websocket-endpoint");
|
|
31
31
|
exports.messagingBackendModule = new inversify_1.ContainerModule(bind => {
|
|
32
|
-
(0, common_1.
|
|
33
|
-
(0, common_1.
|
|
32
|
+
(0, common_1.bindRootContributionProvider)(bind, connection_container_module_1.ConnectionContainerModule);
|
|
33
|
+
(0, common_1.bindRootContributionProvider)(bind, messaging_service_1.MessagingService.Contribution);
|
|
34
34
|
bind(default_messaging_service_1.DefaultMessagingService).toSelf().inSingletonScope();
|
|
35
35
|
bind(messaging_service_1.MessagingService.Identifier).toService(default_messaging_service_1.DefaultMessagingService);
|
|
36
36
|
bind(backend_application_1.BackendApplicationContribution).toService(default_messaging_service_1.DefaultMessagingService);
|
|
@@ -40,7 +40,7 @@ exports.messagingBackendModule = new inversify_1.ContainerModule(bind => {
|
|
|
40
40
|
bind(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService).toSelf().inSingletonScope();
|
|
41
41
|
bind(frontend_connection_service_1.FrontendConnectionService).toService(websocket_frontend_connection_service_1.WebsocketFrontendConnectionService);
|
|
42
42
|
bind(messaging_listeners_1.MessagingListener).toSelf().inSingletonScope();
|
|
43
|
-
(0, common_1.
|
|
43
|
+
(0, common_1.bindRootContributionProvider)(bind, messaging_listeners_1.MessagingListenerContribution);
|
|
44
44
|
bind(common_1.ConnectionHandler).toDynamicValue(context => {
|
|
45
45
|
const connectionService = context.container.get(frontend_connection_service_1.FrontendConnectionService);
|
|
46
46
|
return new common_1.RpcConnectionHandler(connection_management_1.connectionCloseServicePath, () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging-backend-module.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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;;;AAEhF,yCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"messaging-backend-module.js","sourceRoot":"","sources":["../../../src/node/messaging/messaging-backend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,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;;;AAEhF,yCAA4C;AAC5C,yCAAqG;AACrG,2EAA2E;AAC3E,2EAA0F;AAC1F,+EAA0E;AAC1E,2DAAuD;AACvD,+DAAyF;AACzF,+EAA0E;AAC1E,gEAAwE;AACxE,wFAA0F;AAC1F,mGAA6F;AAC7F,6DAAyD;AAE5C,QAAA,sBAAsB,GAAG,IAAI,2BAAe,CAAC,IAAI,CAAC,EAAE;IAC7D,IAAA,qCAA4B,EAAC,IAAI,EAAE,uDAAyB,CAAC,CAAC;IAC9D,IAAA,qCAA4B,EAAC,IAAI,EAAE,oCAAgB,CAAC,YAAY,CAAC,CAAC;IAClE,IAAI,CAAC,mDAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC1D,IAAI,CAAC,oCAAgB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IACrE,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,mDAAuB,CAAC,CAAC;IACxE,IAAI,CAAC,8CAAkB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACzF,IAAI,CAAC,sCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAI,CAAC,oDAA8B,CAAC,CAAC,SAAS,CAAC,sCAAiB,CAAC,CAAC;IAClE,IAAI,CAAC,0EAAkC,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACrE,IAAI,CAAC,uDAAyB,CAAC,CAAC,SAAS,CAAC,0EAAkC,CAAC,CAAC;IAC9E,IAAI,CAAC,uCAAiB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpD,IAAA,qCAA4B,EAAC,IAAI,EAAE,mDAA6B,CAAC,CAAC;IAElE,IAAI,CAAC,0BAAiB,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAqC,uDAAyB,CAAC,CAAC;QAC/G,OAAO,IAAI,6BAAoB,CAAS,kDAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,YAAY,EAAE,CAAC,SAAiB,EAAE,EAAE;gBAChC,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;SACJ,CAAC,CAAC,CAAC;IACR,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/core",
|
|
3
|
-
"version": "1.69.0
|
|
3
|
+
"version": "1.69.0",
|
|
4
4
|
"description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
|
|
5
5
|
"main": "lib/common/index.js",
|
|
6
6
|
"typings": "lib/common/index.d.ts",
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
"@lumino/commands": "^2.3.3",
|
|
11
11
|
"@lumino/coreutils": "^2.2.2",
|
|
12
12
|
"@lumino/domutils": "^2.0.4",
|
|
13
|
-
"@lumino/dragdrop": "^2.1.
|
|
13
|
+
"@lumino/dragdrop": "^2.1.8",
|
|
14
14
|
"@lumino/messaging": "^2.0.4",
|
|
15
15
|
"@lumino/properties": "^2.0.4",
|
|
16
16
|
"@lumino/signaling": "^2.1.5",
|
|
17
17
|
"@lumino/virtualdom": "^2.0.4",
|
|
18
|
-
"@lumino/widgets": "2.7.
|
|
18
|
+
"@lumino/widgets": "2.7.5",
|
|
19
19
|
"@parcel/watcher": "^2.5.0",
|
|
20
|
-
"@theia/application-package": "1.69.0
|
|
21
|
-
"@theia/request": "1.69.0
|
|
20
|
+
"@theia/application-package": "1.69.0",
|
|
21
|
+
"@theia/request": "1.69.0",
|
|
22
22
|
"@types/body-parser": "^1.16.4",
|
|
23
23
|
"@types/express": "^4.17.21",
|
|
24
24
|
"@types/fs-extra": "^4.0.2",
|
|
@@ -213,13 +213,13 @@
|
|
|
213
213
|
"watch": "theiaext watch"
|
|
214
214
|
},
|
|
215
215
|
"devDependencies": {
|
|
216
|
-
"@theia/ext-scripts": "1.
|
|
217
|
-
"@theia/re-exports": "1.
|
|
216
|
+
"@theia/ext-scripts": "1.69.0",
|
|
217
|
+
"@theia/re-exports": "1.69.0",
|
|
218
218
|
"minimist": "^1.2.0",
|
|
219
219
|
"nodejs-file-downloader": "4.13.0"
|
|
220
220
|
},
|
|
221
221
|
"nyc": {
|
|
222
222
|
"extends": "../../configs/nyc.json"
|
|
223
223
|
},
|
|
224
|
-
"gitHead": "
|
|
224
|
+
"gitHead": "3b413470b0f990dc0d6e4287da02a6b6e21d3239"
|
|
225
225
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { interfaces } from 'inversify';
|
|
18
18
|
import {
|
|
19
|
-
|
|
19
|
+
bindRootContributionProvider, DefaultResourceProvider, MaybePromise, MessageClient,
|
|
20
20
|
MessageService, ResourceProvider, ResourceResolver
|
|
21
21
|
} from '../common';
|
|
22
22
|
import { PreferenceProvider } from '../common/preferences/preference-provider';
|
|
@@ -53,5 +53,5 @@ export function bindPreferenceService(bind: interfaces.Bind): void {
|
|
|
53
53
|
export function bindResourceProvider(bind: interfaces.Bind): void {
|
|
54
54
|
bind(DefaultResourceProvider).toSelf().inSingletonScope();
|
|
55
55
|
bind(ResourceProvider).toProvider(context => uri => context.container.get(DefaultResourceProvider).get(uri));
|
|
56
|
-
|
|
56
|
+
bindRootContributionProvider(bind, ResourceResolver);
|
|
57
57
|
}
|
|
@@ -22,7 +22,7 @@ import '@vscode/codicons/dist/codicon.css';
|
|
|
22
22
|
|
|
23
23
|
import { ContainerModule } from 'inversify';
|
|
24
24
|
import {
|
|
25
|
-
|
|
25
|
+
bindRootContributionProvider,
|
|
26
26
|
SelectionService,
|
|
27
27
|
ResourceResolver,
|
|
28
28
|
CommandContribution, CommandRegistry, CommandService, commandServicePath,
|
|
@@ -151,7 +151,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
151
151
|
bind(NoneIconTheme).toSelf().inSingletonScope();
|
|
152
152
|
bind(LabelProviderContribution).toService(NoneIconTheme);
|
|
153
153
|
bind(IconThemeService).toSelf().inSingletonScope();
|
|
154
|
-
|
|
154
|
+
bindRootContributionProvider(bind, IconThemeContribution);
|
|
155
155
|
bind(DefaultFileIconThemeContribution).toSelf().inSingletonScope();
|
|
156
156
|
bind(IconThemeContribution).toService(DefaultFileIconThemeContribution);
|
|
157
157
|
bind(IconThemeApplicationContribution).toSelf().inSingletonScope();
|
|
@@ -160,14 +160,14 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
160
160
|
bind(LabelProviderContribution).toService(LanguageIconLabelProvider);
|
|
161
161
|
|
|
162
162
|
bind(ColorRegistry).toSelf().inSingletonScope();
|
|
163
|
-
|
|
163
|
+
bindRootContributionProvider(bind, ColorContribution);
|
|
164
164
|
bind(ColorApplicationContribution).toSelf().inSingletonScope();
|
|
165
165
|
bind(FrontendApplicationContribution).toService(ColorApplicationContribution);
|
|
166
166
|
|
|
167
167
|
bind(FrontendApplication).toSelf().inSingletonScope();
|
|
168
168
|
bind(FrontendApplicationStateService).toSelf().inSingletonScope();
|
|
169
169
|
bind(DefaultFrontendApplicationContribution).toSelf();
|
|
170
|
-
|
|
170
|
+
bindRootContributionProvider(bind, FrontendApplicationContribution);
|
|
171
171
|
|
|
172
172
|
bind(ApplicationShellOptions).toConstantValue({});
|
|
173
173
|
bind(ApplicationShell).toSelf().inSingletonScope();
|
|
@@ -185,7 +185,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
185
185
|
});
|
|
186
186
|
bind(SplitPositionHandler).toSelf().inSingletonScope();
|
|
187
187
|
|
|
188
|
-
|
|
188
|
+
bindRootContributionProvider(bind, TabBarToolbarContribution);
|
|
189
189
|
bind(TabBarToolbarRegistry).toSelf().inSingletonScope();
|
|
190
190
|
bind(FrontendApplicationContribution).toService(TabBarToolbarRegistry);
|
|
191
191
|
bind(TabBarToolbarFactory).toFactory(context => () => {
|
|
@@ -217,11 +217,11 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
217
217
|
return new TheiaDockPanel(options, corePreferences, maximizeCallback);
|
|
218
218
|
});
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
bindRootContributionProvider(bind, TabBarDecorator);
|
|
221
221
|
bind(TabBarDecoratorService).toSelf().inSingletonScope();
|
|
222
222
|
bind(FrontendApplicationContribution).toService(TabBarDecoratorService);
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
bindRootContributionProvider(bind, OpenHandler);
|
|
225
225
|
bind(DefaultOpenerService).toSelf().inSingletonScope();
|
|
226
226
|
bind(OpenerService).toService(DefaultOpenerService);
|
|
227
227
|
|
|
@@ -237,7 +237,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
237
237
|
bind(TooltipServiceImpl).toSelf().inSingletonScope();
|
|
238
238
|
bind(TooltipService).toService(TooltipServiceImpl);
|
|
239
239
|
|
|
240
|
-
|
|
240
|
+
bindRootContributionProvider(bind, ApplicationShellLayoutMigration);
|
|
241
241
|
bind<ApplicationShellLayoutMigration>(ApplicationShellLayoutMigration).toConstantValue({
|
|
242
242
|
layoutVersion: 2.0,
|
|
243
243
|
onWillInflateLayout({ layoutVersion }): void {
|
|
@@ -247,9 +247,9 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
247
247
|
}
|
|
248
248
|
});
|
|
249
249
|
|
|
250
|
-
|
|
250
|
+
bindRootContributionProvider(bind, ShellLayoutTransformer);
|
|
251
251
|
|
|
252
|
-
|
|
252
|
+
bindRootContributionProvider(bind, WidgetFactory);
|
|
253
253
|
bind(WidgetManager).toSelf().inSingletonScope();
|
|
254
254
|
bind(ShellLayoutRestorer).toSelf().inSingletonScope();
|
|
255
255
|
bind(CommandContribution).toService(ShellLayoutRestorer);
|
|
@@ -270,17 +270,17 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
270
270
|
return registry;
|
|
271
271
|
});
|
|
272
272
|
bind(CommandService).toService(CommandRegistry);
|
|
273
|
-
|
|
273
|
+
bindRootContributionProvider(bind, CommandContribution);
|
|
274
274
|
|
|
275
275
|
bind(ContextKeyService).to(ContextKeyServiceDummyImpl).inSingletonScope();
|
|
276
276
|
|
|
277
277
|
bind(MenuModelRegistry).toSelf().inSingletonScope();
|
|
278
|
-
|
|
278
|
+
bindRootContributionProvider(bind, MenuContribution);
|
|
279
279
|
|
|
280
280
|
bind(KeyboardLayoutService).toSelf().inSingletonScope();
|
|
281
281
|
bind(KeybindingRegistry).toSelf().inSingletonScope();
|
|
282
|
-
|
|
283
|
-
|
|
282
|
+
bindRootContributionProvider(bind, KeybindingContext);
|
|
283
|
+
bindRootContributionProvider(bind, KeybindingContribution);
|
|
284
284
|
|
|
285
285
|
bindMessageService(bind).onActivation(({ container }, messages) => {
|
|
286
286
|
const client = container.get(MessageClient);
|
|
@@ -321,7 +321,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
321
321
|
bind(MarkdownRenderer).to(MarkdownRendererImpl).inSingletonScope();
|
|
322
322
|
bind(MarkdownRendererFactory).toFactory(({ container }) => () => container.get(MarkdownRenderer));
|
|
323
323
|
|
|
324
|
-
|
|
324
|
+
bindRootContributionProvider(bind, QuickAccessContribution);
|
|
325
325
|
bind(QuickInputFrontendContribution).toSelf().inSingletonScope();
|
|
326
326
|
bind(FrontendApplicationContribution).toService(QuickInputFrontendContribution);
|
|
327
327
|
|
|
@@ -331,7 +331,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
331
331
|
bindStatusBar(bind);
|
|
332
332
|
bind(LabelParser).toSelf().inSingletonScope();
|
|
333
333
|
|
|
334
|
-
|
|
334
|
+
bindRootContributionProvider(bind, LabelProviderContribution);
|
|
335
335
|
bind(LabelProvider).toSelf().inSingletonScope();
|
|
336
336
|
bind(FrontendApplicationContribution).toService(LabelProvider);
|
|
337
337
|
bind(DefaultUriLabelProviderContribution).toSelf().inSingletonScope();
|
|
@@ -344,7 +344,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
344
344
|
bindPreferenceService(bind);
|
|
345
345
|
bind(FrontendApplicationContribution).toService(PreferenceService);
|
|
346
346
|
|
|
347
|
-
|
|
347
|
+
bindRootContributionProvider(bind, JsonSchemaContribution);
|
|
348
348
|
bind(JsonSchemaStore).toSelf().inSingletonScope();
|
|
349
349
|
bind(FrontendApplicationContribution).toService(JsonSchemaStore);
|
|
350
350
|
bind(JsonSchemaDataStore).toSelf().inSingletonScope();
|
|
@@ -433,7 +433,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
433
433
|
bind(WindowTitleService).toSelf().inSingletonScope();
|
|
434
434
|
bind(WindowTitleUpdater).toSelf().inSingletonScope();
|
|
435
435
|
bind(FrontendApplicationContribution).toService(WindowTitleUpdater);
|
|
436
|
-
|
|
436
|
+
bindRootContributionProvider(bind, BreadcrumbsContribution);
|
|
437
437
|
bind(BreadcrumbsService).toSelf().inSingletonScope();
|
|
438
438
|
bind(BreadcrumbsRenderer).toSelf();
|
|
439
439
|
bind(BreadcrumbsRendererFactory).toFactory(ctx =>
|
|
@@ -468,19 +468,19 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
468
468
|
bind(HoverService).toSelf().inSingletonScope();
|
|
469
469
|
|
|
470
470
|
bind(StylingService).toSelf().inSingletonScope();
|
|
471
|
-
|
|
471
|
+
bindRootContributionProvider(bind, StylingParticipant);
|
|
472
472
|
bind(FrontendApplicationContribution).toService(StylingService);
|
|
473
473
|
|
|
474
474
|
bind(SecondaryWindowHandler).toSelf().inSingletonScope();
|
|
475
475
|
bind(ViewColumnService).toSelf().inSingletonScope();
|
|
476
476
|
|
|
477
477
|
bind(UndoRedoHandlerService).toSelf().inSingletonScope();
|
|
478
|
-
|
|
478
|
+
bindRootContributionProvider(bind, UndoRedoHandler);
|
|
479
479
|
bind(DomInputUndoRedoHandler).toSelf().inSingletonScope();
|
|
480
480
|
bind(UndoRedoHandler).toService(DomInputUndoRedoHandler);
|
|
481
481
|
|
|
482
482
|
bind(WidgetStatusBarService).toSelf().inSingletonScope();
|
|
483
483
|
bind(FrontendApplicationContribution).toService(WidgetStatusBarService);
|
|
484
|
-
|
|
484
|
+
bindRootContributionProvider(bind, WidgetStatusBarContribution);
|
|
485
485
|
bindBadgeDecoration(bind);
|
|
486
486
|
});
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { interfaces } from 'inversify';
|
|
18
|
-
import {
|
|
18
|
+
import { bindRootContributionProvider, PreferenceProvider } from '../../common';
|
|
19
19
|
import { PreferenceScope, ValidPreferenceScopes } from '../../common/preferences/preference-scope';
|
|
20
20
|
import { FrontendApplicationConfig } from '@theia/application-package/lib/application-props';
|
|
21
21
|
import { isObject } from '../../common/types';
|
|
@@ -33,7 +33,7 @@ export function bindPreferenceSchemaProvider(bind: interfaces.Bind): void {
|
|
|
33
33
|
bind(PreferenceSchemaService).toService(PreferenceSchemaServiceImpl);
|
|
34
34
|
bind(PreferenceProvider).to(DefaultsPreferenceProvider).inSingletonScope().whenTargetNamed(PreferenceScope.Default);
|
|
35
35
|
bind(PreferenceLanguageOverrideService).toSelf().inSingletonScope();
|
|
36
|
-
|
|
36
|
+
bindRootContributionProvider(bind, PreferenceContribution);
|
|
37
37
|
bind(PreferenceContribution).to(FrontendConfigPreferenceContribution).inSingletonScope();
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
18
|
import { PreloadContribution, Preloader } from './preloader';
|
|
19
|
-
import {
|
|
19
|
+
import { bindRootContributionProvider } from '../../common/contribution-provider';
|
|
20
20
|
import { I18nPreloadContribution } from './i18n-preload-contribution';
|
|
21
21
|
import { OSPreloadContribution } from './os-preload-contribution';
|
|
22
22
|
import { ThemePreloadContribution } from './theme-preload-contribution';
|
|
@@ -27,8 +27,8 @@ import { TextReplacementContribution } from './text-replacement-contribution';
|
|
|
27
27
|
|
|
28
28
|
export default new ContainerModule(bind => {
|
|
29
29
|
bind(Preloader).toSelf().inSingletonScope();
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
bindRootContributionProvider(bind, PreloadContribution);
|
|
31
|
+
bindRootContributionProvider(bind, TextReplacementContribution);
|
|
32
32
|
|
|
33
33
|
bind(LocalizationServer).toDynamicValue(ctx =>
|
|
34
34
|
ServiceConnectionProvider.createProxy<LocalizationServer>(ctx.container, LocalizationServerPath)
|
|
@@ -22,7 +22,7 @@ import { ClipboardService } from '../clipboard-service';
|
|
|
22
22
|
import { BrowserClipboardService } from '../browser-clipboard-service';
|
|
23
23
|
import { SecondaryWindowService } from './secondary-window-service';
|
|
24
24
|
import { DefaultSecondaryWindowService } from './default-secondary-window-service';
|
|
25
|
-
import {
|
|
25
|
+
import { bindRootContributionProvider } from '../../common';
|
|
26
26
|
import { WindowTitleContribution } from './window-title-service';
|
|
27
27
|
|
|
28
28
|
export default new ContainerModule(bind => {
|
|
@@ -31,5 +31,5 @@ export default new ContainerModule(bind => {
|
|
|
31
31
|
bind(FrontendApplicationContribution).toService(DefaultWindowService);
|
|
32
32
|
bind(ClipboardService).to(BrowserClipboardService).inSingletonScope();
|
|
33
33
|
bind(SecondaryWindowService).to(DefaultSecondaryWindowService).inSingletonScope();
|
|
34
|
-
|
|
34
|
+
bindRootContributionProvider(bind, WindowTitleContribution);
|
|
35
35
|
});
|
|
@@ -30,19 +30,21 @@ export interface ContributionProvider<T extends object> {
|
|
|
30
30
|
class ContainerBasedContributionProvider<T extends object> implements ContributionProvider<T> {
|
|
31
31
|
|
|
32
32
|
protected services: T[] | undefined;
|
|
33
|
+
protected container: interfaces.Container | undefined;
|
|
33
34
|
|
|
34
35
|
constructor(
|
|
35
36
|
protected readonly serviceIdentifier: interfaces.ServiceIdentifier<T>,
|
|
36
|
-
|
|
37
|
-
) {
|
|
37
|
+
container: interfaces.Container
|
|
38
|
+
) {
|
|
39
|
+
this.container = container;
|
|
40
|
+
}
|
|
38
41
|
|
|
39
42
|
getContributions(recursive?: boolean): T[] {
|
|
40
43
|
if (this.services === undefined) {
|
|
41
44
|
const currentServices: T[] = [];
|
|
42
45
|
let filterRegistry: ContributionFilterRegistry | undefined;
|
|
43
|
-
let currentContainer
|
|
44
|
-
|
|
45
|
-
while (currentContainer !== null) {
|
|
46
|
+
let currentContainer = this.container;
|
|
47
|
+
while (currentContainer) {
|
|
46
48
|
if (currentContainer.isBound(this.serviceIdentifier)) {
|
|
47
49
|
try {
|
|
48
50
|
currentServices.push(...currentContainer.getAll(this.serviceIdentifier));
|
|
@@ -53,12 +55,11 @@ class ContainerBasedContributionProvider<T extends object> implements Contributi
|
|
|
53
55
|
if (filterRegistry === undefined && currentContainer.isBound(ContributionFilterRegistry)) {
|
|
54
56
|
filterRegistry = currentContainer.get(ContributionFilterRegistry);
|
|
55
57
|
}
|
|
56
|
-
|
|
57
|
-
currentContainer = recursive === true ? currentContainer.parent : null;
|
|
58
|
+
currentContainer = recursive === true ? currentContainer.parent ?? undefined : undefined;
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
this.services = filterRegistry ? filterRegistry.applyFilters(currentServices, this.serviceIdentifier) : currentServices;
|
|
61
|
-
|
|
62
|
+
this.container = undefined;
|
|
62
63
|
}
|
|
63
64
|
return this.services;
|
|
64
65
|
}
|
|
@@ -74,6 +75,21 @@ export namespace Bindable {
|
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
|
|
78
|
+
/**
|
|
79
|
+
* Binds a {@link ContributionProvider} for the given service identifier.
|
|
80
|
+
*
|
|
81
|
+
* **In most cases, prefer {@link bindRootContributionProvider} instead.** This variant retains a reference
|
|
82
|
+
* to whichever container first resolves the provider. If that container is a short-lived child (e.g. a widget
|
|
83
|
+
* container), the provider will keep the child — and everything cached in it — alive for the lifetime of the
|
|
84
|
+
* application, causing a memory leak.
|
|
85
|
+
*
|
|
86
|
+
* Use `bindContributionProvider` only when you are certain that some or all of the relevant services are
|
|
87
|
+
* scoped to a child container rather than the root container — for example, inside a
|
|
88
|
+
* {@link ConnectionContainerModule} (connection-scoped child containers).
|
|
89
|
+
*
|
|
90
|
+
* @param bindable - A `Container` or `Bind` function to register the provider in.
|
|
91
|
+
* @param id - The service identifier symbol whose contributions the provider collects.
|
|
92
|
+
*/
|
|
77
93
|
export function bindContributionProvider(bindable: Bindable, id: symbol): void {
|
|
78
94
|
const bindingToSyntax = (Bindable.isContainer(bindable) ? bindable.bind(ContributionProvider) : bindable(ContributionProvider));
|
|
79
95
|
bindingToSyntax
|
|
@@ -81,6 +97,38 @@ export function bindContributionProvider(bindable: Bindable, id: symbol): void {
|
|
|
81
97
|
.inSingletonScope().whenTargetNamed(id);
|
|
82
98
|
}
|
|
83
99
|
|
|
100
|
+
/**
|
|
101
|
+
* Binds a {@link ContributionProvider} for the given service identifier, resolving contributions
|
|
102
|
+
* from the **root** (top-level) Inversify container.
|
|
103
|
+
*
|
|
104
|
+
* **This is the recommended default** for binding contribution providers in module-level `ContainerModule`
|
|
105
|
+
* definitions. It walks up from whichever container first resolves the provider to the root container,
|
|
106
|
+
* ensuring the provider does not permanently retain a reference to a short-lived child container.
|
|
107
|
+
*
|
|
108
|
+
* Use this function when contributions are registered at the application level (the common case for
|
|
109
|
+
* `FrontendApplicationContribution`, `CommandContribution`, `MenuContribution`, `KeybindingContribution`,
|
|
110
|
+
* and similar top-level contribution points).
|
|
111
|
+
*
|
|
112
|
+
* If you need contributions that are scoped to a child container (e.g. connection-scoped), use {@link bindContributionProvider} instead.
|
|
113
|
+
*
|
|
114
|
+
* See {@link https://github.com/eclipse-theia/theia/issues/10877#issuecomment-1107000223}
|
|
115
|
+
*
|
|
116
|
+
* @param bindable - A `Container` or `Bind` function to register the provider in.
|
|
117
|
+
* @param id - The service identifier symbol whose contributions the provider collects.
|
|
118
|
+
*/
|
|
119
|
+
export function bindRootContributionProvider(bindable: Bindable, id: symbol): void {
|
|
120
|
+
const bindingToSyntax = (Bindable.isContainer(bindable) ? bindable.bind(ContributionProvider) : bindable(ContributionProvider));
|
|
121
|
+
bindingToSyntax
|
|
122
|
+
.toDynamicValue(ctx => {
|
|
123
|
+
let container = ctx.container;
|
|
124
|
+
while (container.parent) {
|
|
125
|
+
container = container.parent;
|
|
126
|
+
}
|
|
127
|
+
return new ContainerBasedContributionProvider(id, container);
|
|
128
|
+
})
|
|
129
|
+
.inSingletonScope().whenTargetNamed(id);
|
|
130
|
+
}
|
|
131
|
+
|
|
84
132
|
/**
|
|
85
133
|
* Helper function to bind a service to a list of contributions easily.
|
|
86
134
|
* @param bindable a Container or the bind function directly.
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { injectable, inject, named, interfaces } from 'inversify';
|
|
18
18
|
import URI from '../../common/uri';
|
|
19
|
-
import { ContributionProvider,
|
|
19
|
+
import { ContributionProvider, bindRootContributionProvider } from '../../common/contribution-provider';
|
|
20
20
|
|
|
21
21
|
export const PreferenceConfiguration = Symbol('PreferenceConfiguration');
|
|
22
22
|
export interface PreferenceConfiguration {
|
|
@@ -24,7 +24,7 @@ export interface PreferenceConfiguration {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export function bindPreferenceConfigurations(bind: interfaces.Bind): void {
|
|
27
|
-
|
|
27
|
+
bindRootContributionProvider(bind, PreferenceConfiguration);
|
|
28
28
|
bind(PreferenceConfigurations).toSelf().inSingletonScope();
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -30,7 +30,7 @@ import { bindWindowPreferences } from '../../electron-common/electron-window-pre
|
|
|
30
30
|
import { ElectronWindowService } from './electron-window-service';
|
|
31
31
|
import { ExternalAppOpenHandler } from './external-app-open-handler';
|
|
32
32
|
import { ElectronUriHandlerContribution } from '../electron-uri-handler';
|
|
33
|
-
import {
|
|
33
|
+
import { bindRootContributionProvider } from '../../common';
|
|
34
34
|
import { WindowTitleContribution } from '../../browser/window/window-title-service';
|
|
35
35
|
|
|
36
36
|
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
@@ -47,5 +47,5 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
|
47
47
|
bind(SecondaryWindowService).to(ElectronSecondaryWindowService).inSingletonScope();
|
|
48
48
|
bind(ExternalAppOpenHandler).toSelf().inSingletonScope();
|
|
49
49
|
bind(OpenHandler).toService(ExternalAppOpenHandler);
|
|
50
|
-
|
|
50
|
+
bindRootContributionProvider(bind, WindowTitleContribution);
|
|
51
51
|
});
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
18
|
import { generateUuid } from '../common/uuid';
|
|
19
|
-
import {
|
|
19
|
+
import { bindRootContributionProvider } from '../common/contribution-provider';
|
|
20
20
|
import { RpcConnectionHandler } from '../common/messaging/proxy-factory';
|
|
21
21
|
import { ElectronSecurityToken } from '../electron-common/electron-token';
|
|
22
22
|
import { ElectronMainWindowService, electronMainWindowServicePath } from '../electron-common/electron-main-window-service';
|
|
@@ -40,9 +40,9 @@ export default new ContainerModule(bind => {
|
|
|
40
40
|
bind(ElectronSecurityToken).toConstantValue(electronSecurityToken);
|
|
41
41
|
bind(ElectronSecurityTokenService).toSelf().inSingletonScope();
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
bindRootContributionProvider(bind, ElectronConnectionHandler);
|
|
44
|
+
bindRootContributionProvider(bind, ElectronMessagingService.Contribution);
|
|
45
|
+
bindRootContributionProvider(bind, ElectronMainApplicationContribution);
|
|
46
46
|
|
|
47
47
|
bind(TheiaMainApi).toSelf().inSingletonScope();
|
|
48
48
|
bind(ElectronMainApplicationContribution).toService(TheiaMainApi);
|
|
@@ -18,7 +18,7 @@ import { ContainerModule, decorate, injectable } from 'inversify';
|
|
|
18
18
|
import { ApplicationPackage } from '@theia/application-package';
|
|
19
19
|
import { REQUEST_SERVICE_PATH } from '@theia/request';
|
|
20
20
|
import {
|
|
21
|
-
|
|
21
|
+
bindRootContributionProvider, MessageService, MessageClient, ConnectionHandler, RpcConnectionHandler,
|
|
22
22
|
CommandService, commandServicePath, messageServicePath, OSBackendProvider, OSBackendProviderPath,
|
|
23
23
|
bindPreferenceConfigurations,
|
|
24
24
|
DefaultsPreferenceProvider,
|
|
@@ -81,13 +81,13 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
81
81
|
bind(ConnectionContainerModule).toConstantValue(quickPickConnectionModule);
|
|
82
82
|
|
|
83
83
|
bind(CliManager).toSelf().inSingletonScope();
|
|
84
|
-
|
|
84
|
+
bindRootContributionProvider(bind, CliContribution);
|
|
85
85
|
|
|
86
86
|
bind(BackendApplicationCliContribution).toSelf().inSingletonScope();
|
|
87
87
|
bind(CliContribution).toService(BackendApplicationCliContribution);
|
|
88
88
|
|
|
89
89
|
bind(BackendApplication).toSelf().inSingletonScope();
|
|
90
|
-
|
|
90
|
+
bindRootContributionProvider(bind, BackendApplicationContribution);
|
|
91
91
|
// Bind the BackendApplicationServer as a BackendApplicationContribution
|
|
92
92
|
// and fallback to an empty contribution if never bound.
|
|
93
93
|
bind(BackendApplicationContribution).toDynamicValue(ctx => {
|
|
@@ -120,7 +120,7 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
120
120
|
bind(ApplicationPackage).toConstantValue(new ApplicationPackage({ projectPath: BackendApplicationPath }));
|
|
121
121
|
|
|
122
122
|
bind(WsRequestValidator).toSelf().inSingletonScope();
|
|
123
|
-
|
|
123
|
+
bindRootContributionProvider(bind, WsRequestValidatorContribution);
|
|
124
124
|
bind(KeyStoreService).to(KeyStoreServiceImpl).inSingletonScope();
|
|
125
125
|
bind(ConnectionHandler).toDynamicValue(ctx =>
|
|
126
126
|
new RpcConnectionHandler(keyStoreServicePath, () => ctx.container.get<KeyStoreService>(KeyStoreService))
|
|
@@ -140,7 +140,7 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
140
140
|
bind(ProxyCliContribution).toSelf().inSingletonScope();
|
|
141
141
|
bind(CliContribution).toService(ProxyCliContribution);
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
bindRootContributionProvider(bind, RemoteCliContribution);
|
|
144
144
|
bind(BackendRemoteService).toSelf().inSingletonScope();
|
|
145
145
|
bind(BackendRequestFacade).toSelf().inSingletonScope();
|
|
146
146
|
bind(ConnectionHandler).toDynamicValue(
|
|
@@ -157,7 +157,7 @@ export const backendApplicationModule = new ContainerModule(bind => {
|
|
|
157
157
|
|
|
158
158
|
bindPreferenceConfigurations(bind);
|
|
159
159
|
bind(ValidPreferenceScopes).toConstantValue([PreferenceScope.Default, PreferenceScope.User]);
|
|
160
|
-
|
|
160
|
+
bindRootContributionProvider(bind, PreferenceContribution);
|
|
161
161
|
bind(PreferenceProviderProvider).toFactory(ctx => (scope: PreferenceScope) => ctx.container.getNamed(PreferenceProvider, scope));
|
|
162
162
|
bind(PreferenceSchemaServiceImpl).toSelf().inSingletonScope();
|
|
163
163
|
bind(PreferenceSchemaService).toService(PreferenceSchemaServiceImpl);
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
18
|
import { localizationPath } from '../../common/i18n/localization';
|
|
19
19
|
import { LocalizationProvider } from './localization-provider';
|
|
20
|
-
import { ConnectionHandler, RpcConnectionHandler,
|
|
20
|
+
import { ConnectionHandler, RpcConnectionHandler, bindRootContributionProvider } from '../../common';
|
|
21
21
|
import { LocalizationRegistry, LocalizationContribution } from './localization-contribution';
|
|
22
22
|
import { LocalizationServerImpl } from './localization-server';
|
|
23
23
|
import { TheiaLocalizationContribution } from './theia-localization-contribution';
|
|
@@ -30,7 +30,7 @@ export default new ContainerModule(bind => {
|
|
|
30
30
|
new RpcConnectionHandler(localizationPath, () => ctx.container.get(LocalizationProvider))
|
|
31
31
|
).inSingletonScope();
|
|
32
32
|
bind(LocalizationRegistry).toSelf().inSingletonScope();
|
|
33
|
-
|
|
33
|
+
bindRootContributionProvider(bind, LocalizationContribution);
|
|
34
34
|
bind(LocalizationServerImpl).toSelf().inSingletonScope();
|
|
35
35
|
bind(LocalizationServer).toService(LocalizationServerImpl);
|
|
36
36
|
bind(BackendApplicationContribution).toService(LocalizationServerImpl);
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
|
-
import { ConnectionHandler, RpcConnectionHandler,
|
|
18
|
+
import { ConnectionHandler, RpcConnectionHandler, bindRootContributionProvider } from '../../common';
|
|
19
19
|
// import { BackendApplicationContribution } from '../backend-application';
|
|
20
20
|
import { DefaultMessagingService, MessagingContainer } from './default-messaging-service';
|
|
21
21
|
import { ConnectionContainerModule } from './connection-container-module';
|
|
@@ -28,8 +28,8 @@ import { WebsocketFrontendConnectionService } from './websocket-frontend-connect
|
|
|
28
28
|
import { WebsocketEndpoint } from './websocket-endpoint';
|
|
29
29
|
|
|
30
30
|
export const messagingBackendModule = new ContainerModule(bind => {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
bindRootContributionProvider(bind, ConnectionContainerModule);
|
|
32
|
+
bindRootContributionProvider(bind, MessagingService.Contribution);
|
|
33
33
|
bind(DefaultMessagingService).toSelf().inSingletonScope();
|
|
34
34
|
bind(MessagingService.Identifier).toService(DefaultMessagingService);
|
|
35
35
|
bind(BackendApplicationContribution).toService(DefaultMessagingService);
|
|
@@ -39,7 +39,7 @@ export const messagingBackendModule = new ContainerModule(bind => {
|
|
|
39
39
|
bind(WebsocketFrontendConnectionService).toSelf().inSingletonScope();
|
|
40
40
|
bind(FrontendConnectionService).toService(WebsocketFrontendConnectionService);
|
|
41
41
|
bind(MessagingListener).toSelf().inSingletonScope();
|
|
42
|
-
|
|
42
|
+
bindRootContributionProvider(bind, MessagingListenerContribution);
|
|
43
43
|
|
|
44
44
|
bind(ConnectionHandler).toDynamicValue(context => {
|
|
45
45
|
const connectionService = context.container.get<WebsocketFrontendConnectionService>(FrontendConnectionService);
|