@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.
Files changed (56) hide show
  1. package/README.md +8 -8
  2. package/i18n/nls.cs.json +177 -21
  3. package/i18n/nls.de.json +177 -21
  4. package/i18n/nls.es.json +177 -21
  5. package/i18n/nls.fr.json +177 -21
  6. package/i18n/nls.hu.json +177 -21
  7. package/i18n/nls.it.json +177 -21
  8. package/i18n/nls.ja.json +177 -21
  9. package/i18n/nls.json +180 -24
  10. package/i18n/nls.ko.json +177 -21
  11. package/i18n/nls.pl.json +177 -21
  12. package/i18n/nls.pt-br.json +177 -21
  13. package/i18n/nls.ru.json +177 -21
  14. package/i18n/nls.tr.json +177 -21
  15. package/i18n/nls.zh-cn.json +177 -21
  16. package/i18n/nls.zh-tw.json +177 -21
  17. package/lib/browser/frontend-application-bindings.js +1 -1
  18. package/lib/browser/frontend-application-bindings.js.map +1 -1
  19. package/lib/browser/frontend-application-module.js +20 -20
  20. package/lib/browser/frontend-application-module.js.map +1 -1
  21. package/lib/browser/preferences/preference-contribution.js +1 -1
  22. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  23. package/lib/browser/preload/preload-module.js +2 -2
  24. package/lib/browser/preload/preload-module.js.map +1 -1
  25. package/lib/browser/window/browser-window-module.js +1 -1
  26. package/lib/browser/window/browser-window-module.js.map +1 -1
  27. package/lib/common/contribution-provider.d.ts +35 -0
  28. package/lib/common/contribution-provider.d.ts.map +1 -1
  29. package/lib/common/contribution-provider.js +50 -4
  30. package/lib/common/contribution-provider.js.map +1 -1
  31. package/lib/common/preferences/preference-configurations.d.ts.map +1 -1
  32. package/lib/common/preferences/preference-configurations.js +1 -1
  33. package/lib/common/preferences/preference-configurations.js.map +1 -1
  34. package/lib/electron-browser/window/electron-window-module.js +1 -1
  35. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  36. package/lib/electron-main/electron-main-application-module.js +3 -3
  37. package/lib/electron-main/electron-main-application-module.js.map +1 -1
  38. package/lib/node/backend-application-module.js +5 -5
  39. package/lib/node/backend-application-module.js.map +1 -1
  40. package/lib/node/i18n/i18n-backend-module.js +1 -1
  41. package/lib/node/i18n/i18n-backend-module.js.map +1 -1
  42. package/lib/node/messaging/messaging-backend-module.js +3 -3
  43. package/lib/node/messaging/messaging-backend-module.js.map +1 -1
  44. package/package.json +8 -8
  45. package/src/browser/frontend-application-bindings.ts +2 -2
  46. package/src/browser/frontend-application-module.ts +21 -21
  47. package/src/browser/preferences/preference-contribution.ts +2 -2
  48. package/src/browser/preload/preload-module.ts +3 -3
  49. package/src/browser/window/browser-window-module.ts +2 -2
  50. package/src/common/contribution-provider.ts +56 -8
  51. package/src/common/preferences/preference-configurations.ts +2 -2
  52. package/src/electron-browser/window/electron-window-module.ts +2 -2
  53. package/src/electron-main/electron-main-application-module.ts +4 -4
  54. package/src/node/backend-application-module.ts +6 -6
  55. package/src/node/i18n/i18n-backend-module.ts +2 -2
  56. 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.bindContributionProvider)(bind, localization_contribution_1.LocalizationContribution);
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,yCAAiG;AACjG,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,iCAAwB,EAAC,IAAI,EAAE,oDAAwB,CAAC,CAAC;IACzD,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"}
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.bindContributionProvider)(bind, connection_container_module_1.ConnectionContainerModule);
33
- (0, common_1.bindContributionProvider)(bind, messaging_service_1.MessagingService.Contribution);
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.bindContributionProvider)(bind, messaging_listeners_1.MessagingListenerContribution);
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,yCAAiG;AACjG,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,iCAAwB,EAAC,IAAI,EAAE,uDAAyB,CAAC,CAAC;IAC1D,IAAA,iCAAwB,EAAC,IAAI,EAAE,oCAAgB,CAAC,YAAY,CAAC,CAAC;IAC9D,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,iCAAwB,EAAC,IAAI,EAAE,mDAA6B,CAAC,CAAC;IAE9D,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"}
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-next.81+133d29003",
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.7",
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.2",
18
+ "@lumino/widgets": "2.7.5",
19
19
  "@parcel/watcher": "^2.5.0",
20
- "@theia/application-package": "1.69.0-next.81+133d29003",
21
- "@theia/request": "1.69.0-next.81+133d29003",
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.68.0",
217
- "@theia/re-exports": "1.68.0",
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": "133d2900327d4b281bba00e3bf9419d8f0d41e0a"
224
+ "gitHead": "3b413470b0f990dc0d6e4287da02a6b6e21d3239"
225
225
  }
@@ -16,7 +16,7 @@
16
16
 
17
17
  import { interfaces } from 'inversify';
18
18
  import {
19
- bindContributionProvider, DefaultResourceProvider, MaybePromise, MessageClient,
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
- bindContributionProvider(bind, ResourceResolver);
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
- bindContributionProvider,
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
- bindContributionProvider(bind, IconThemeContribution);
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
- bindContributionProvider(bind, ColorContribution);
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
- bindContributionProvider(bind, FrontendApplicationContribution);
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
- bindContributionProvider(bind, TabBarToolbarContribution);
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
- bindContributionProvider(bind, TabBarDecorator);
220
+ bindRootContributionProvider(bind, TabBarDecorator);
221
221
  bind(TabBarDecoratorService).toSelf().inSingletonScope();
222
222
  bind(FrontendApplicationContribution).toService(TabBarDecoratorService);
223
223
 
224
- bindContributionProvider(bind, OpenHandler);
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
- bindContributionProvider(bind, ApplicationShellLayoutMigration);
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
- bindContributionProvider(bind, ShellLayoutTransformer);
250
+ bindRootContributionProvider(bind, ShellLayoutTransformer);
251
251
 
252
- bindContributionProvider(bind, WidgetFactory);
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
- bindContributionProvider(bind, CommandContribution);
273
+ bindRootContributionProvider(bind, CommandContribution);
274
274
 
275
275
  bind(ContextKeyService).to(ContextKeyServiceDummyImpl).inSingletonScope();
276
276
 
277
277
  bind(MenuModelRegistry).toSelf().inSingletonScope();
278
- bindContributionProvider(bind, MenuContribution);
278
+ bindRootContributionProvider(bind, MenuContribution);
279
279
 
280
280
  bind(KeyboardLayoutService).toSelf().inSingletonScope();
281
281
  bind(KeybindingRegistry).toSelf().inSingletonScope();
282
- bindContributionProvider(bind, KeybindingContext);
283
- bindContributionProvider(bind, KeybindingContribution);
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
- bindContributionProvider(bind, QuickAccessContribution);
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
- bindContributionProvider(bind, LabelProviderContribution);
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
- bindContributionProvider(bind, JsonSchemaContribution);
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
- bindContributionProvider(bind, BreadcrumbsContribution);
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
- bindContributionProvider(bind, StylingParticipant);
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
- bindContributionProvider(bind, UndoRedoHandler);
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
- bindContributionProvider(bind, WidgetStatusBarContribution);
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 { bindContributionProvider, PreferenceProvider } from '../../common';
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
- bindContributionProvider(bind, PreferenceContribution);
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 { bindContributionProvider } from '../../common/contribution-provider';
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
- bindContributionProvider(bind, PreloadContribution);
31
- bindContributionProvider(bind, TextReplacementContribution);
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 { bindContributionProvider } from '../../common';
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
- bindContributionProvider(bind, WindowTitleContribution);
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
- protected readonly container: interfaces.Container
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: interfaces.Container | null = this.container;
44
- // eslint-disable-next-line no-null/no-null
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
- // eslint-disable-next-line no-null/no-null
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, bindContributionProvider } from '../../common/contribution-provider';
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
- bindContributionProvider(bind, PreferenceConfiguration);
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 { bindContributionProvider } from '../../common';
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
- bindContributionProvider(bind, WindowTitleContribution);
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 { bindContributionProvider } from '../common/contribution-provider';
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
- bindContributionProvider(bind, ElectronConnectionHandler);
44
- bindContributionProvider(bind, ElectronMessagingService.Contribution);
45
- bindContributionProvider(bind, ElectronMainApplicationContribution);
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
- bindContributionProvider, MessageService, MessageClient, ConnectionHandler, RpcConnectionHandler,
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
- bindContributionProvider(bind, CliContribution);
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
- bindContributionProvider(bind, BackendApplicationContribution);
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
- bindContributionProvider(bind, WsRequestValidatorContribution);
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
- bindContributionProvider(bind, RemoteCliContribution);
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
- bindContributionProvider(bind, PreferenceContribution);
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, bindContributionProvider } from '../../common';
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
- bindContributionProvider(bind, LocalizationContribution);
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, bindContributionProvider } from '../../common';
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
- bindContributionProvider(bind, ConnectionContainerModule);
32
- bindContributionProvider(bind, MessagingService.Contribution);
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
- bindContributionProvider(bind, MessagingListenerContribution);
42
+ bindRootContributionProvider(bind, MessagingListenerContribution);
43
43
 
44
44
  bind(ConnectionHandler).toDynamicValue(context => {
45
45
  const connectionService = context.container.get<WebsocketFrontendConnectionService>(FrontendConnectionService);