@theia/core 1.41.0 → 1.42.1

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 (141) hide show
  1. package/README.md +7 -7
  2. package/i18n/nls.cs.json +1 -0
  3. package/i18n/nls.de.json +1 -0
  4. package/i18n/nls.es.json +1 -0
  5. package/i18n/nls.fr.json +1 -0
  6. package/i18n/nls.hu.json +1 -0
  7. package/i18n/nls.it.json +1 -0
  8. package/i18n/nls.ja.json +1 -0
  9. package/i18n/nls.json +1 -0
  10. package/i18n/nls.pl.json +1 -0
  11. package/i18n/nls.pt-br.json +1 -0
  12. package/i18n/nls.pt-pt.json +1 -0
  13. package/i18n/nls.ru.json +1 -0
  14. package/i18n/nls.zh-cn.json +1 -0
  15. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  16. package/lib/browser/common-frontend-contribution.js +1 -0
  17. package/lib/browser/common-frontend-contribution.js.map +1 -1
  18. package/lib/browser/preload/i18n-preload-contribution.d.ts +7 -0
  19. package/lib/browser/preload/i18n-preload-contribution.d.ts.map +1 -0
  20. package/lib/browser/preload/i18n-preload-contribution.js +63 -0
  21. package/lib/browser/preload/i18n-preload-contribution.js.map +1 -0
  22. package/lib/browser/preload/os-preload-contribution.d.ts +7 -0
  23. package/lib/browser/preload/os-preload-contribution.d.ts.map +1 -0
  24. package/lib/browser/preload/os-preload-contribution.js +49 -0
  25. package/lib/browser/preload/os-preload-contribution.js.map +1 -0
  26. package/lib/browser/preload/preload-module.d.ts +4 -0
  27. package/lib/browser/preload/preload-module.d.ts.map +1 -0
  28. package/lib/browser/preload/preload-module.js +39 -0
  29. package/lib/browser/preload/preload-module.js.map +1 -0
  30. package/lib/browser/preload/preloader.d.ts +12 -0
  31. package/lib/browser/preload/preloader.d.ts.map +1 -0
  32. package/lib/browser/preload/preloader.js +45 -0
  33. package/lib/browser/preload/preloader.js.map +1 -0
  34. package/lib/browser/preload/theme-preload-contribution.d.ts +5 -0
  35. package/lib/browser/preload/theme-preload-contribution.d.ts.map +1 -0
  36. package/lib/browser/preload/theme-preload-contribution.js +40 -0
  37. package/lib/browser/preload/theme-preload-contribution.js.map +1 -0
  38. package/lib/browser/shell/application-shell.d.ts +2 -0
  39. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  40. package/lib/browser/shell/application-shell.js +8 -0
  41. package/lib/browser/shell/application-shell.js.map +1 -1
  42. package/lib/common/i18n/localization-server.d.ts +7 -0
  43. package/lib/common/i18n/localization-server.d.ts.map +1 -0
  44. package/lib/common/i18n/localization-server.js +21 -0
  45. package/lib/common/i18n/localization-server.js.map +1 -0
  46. package/lib/common/keys.d.ts.map +1 -1
  47. package/lib/common/keys.js +4 -3
  48. package/lib/common/keys.js.map +1 -1
  49. package/lib/common/logger-protocol.d.ts +2 -0
  50. package/lib/common/logger-protocol.d.ts.map +1 -1
  51. package/lib/common/logger-protocol.js +3 -0
  52. package/lib/common/logger-protocol.js.map +1 -1
  53. package/lib/common/logger-watcher.d.ts +4 -3
  54. package/lib/common/logger-watcher.d.ts.map +1 -1
  55. package/lib/common/logger-watcher.js +10 -6
  56. package/lib/common/logger-watcher.js.map +1 -1
  57. package/lib/common/logger.d.ts.map +1 -1
  58. package/lib/common/logger.js +4 -0
  59. package/lib/common/logger.js.map +1 -1
  60. package/lib/common/os.d.ts +5 -0
  61. package/lib/common/os.d.ts.map +1 -1
  62. package/lib/common/os.js +3 -1
  63. package/lib/common/os.js.map +1 -1
  64. package/lib/common/quick-pick-service.d.ts +6 -0
  65. package/lib/common/quick-pick-service.d.ts.map +1 -1
  66. package/lib/common/quick-pick-service.js.map +1 -1
  67. package/lib/electron-browser/menu/electron-menu-contribution.d.ts +4 -0
  68. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  69. package/lib/electron-browser/menu/electron-menu-contribution.js +12 -0
  70. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  71. package/lib/electron-browser/preload.d.ts.map +1 -1
  72. package/lib/electron-browser/preload.js +3 -0
  73. package/lib/electron-browser/preload.js.map +1 -1
  74. package/lib/electron-common/electron-api.d.ts +2 -0
  75. package/lib/electron-common/electron-api.d.ts.map +1 -1
  76. package/lib/electron-common/electron-api.js +2 -1
  77. package/lib/electron-common/electron-api.js.map +1 -1
  78. package/lib/electron-main/electron-api-main.d.ts.map +1 -1
  79. package/lib/electron-main/electron-api-main.js +1 -0
  80. package/lib/electron-main/electron-api-main.js.map +1 -1
  81. package/lib/electron-main/electron-main-application.d.ts +6 -0
  82. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  83. package/lib/electron-main/electron-main-application.js +34 -4
  84. package/lib/electron-main/electron-main-application.js.map +1 -1
  85. package/lib/node/backend-application-module.d.ts.map +1 -1
  86. package/lib/node/backend-application-module.js +4 -3
  87. package/lib/node/backend-application-module.js.map +1 -1
  88. package/lib/node/console-logger-server.d.ts.map +1 -1
  89. package/lib/node/console-logger-server.js +5 -1
  90. package/lib/node/console-logger-server.js.map +1 -1
  91. package/lib/node/i18n/i18n-backend-module.d.ts.map +1 -1
  92. package/lib/node/i18n/i18n-backend-module.js +7 -4
  93. package/lib/node/i18n/i18n-backend-module.js.map +1 -1
  94. package/lib/node/i18n/{localization-backend-contribution.d.ts → localization-server.d.ts} +5 -4
  95. package/lib/node/i18n/localization-server.d.ts.map +1 -0
  96. package/lib/node/i18n/{localization-backend-contribution.js → localization-server.js} +13 -16
  97. package/lib/node/i18n/localization-server.js.map +1 -0
  98. package/lib/node/logger-backend-module.d.ts.map +1 -1
  99. package/lib/node/logger-backend-module.js +6 -1
  100. package/lib/node/logger-backend-module.js.map +1 -1
  101. package/lib/node/os-backend-provider.d.ts +5 -0
  102. package/lib/node/os-backend-provider.d.ts.map +1 -0
  103. package/lib/node/{os-backend-application-contribution.js → os-backend-provider.js} +8 -10
  104. package/lib/node/os-backend-provider.js.map +1 -0
  105. package/package.json +9 -8
  106. package/src/browser/common-frontend-contribution.ts +1 -0
  107. package/src/browser/preload/i18n-preload-contribution.ts +50 -0
  108. package/src/browser/preload/os-preload-contribution.ts +37 -0
  109. package/src/browser/preload/preload-module.ts +45 -0
  110. package/src/browser/preload/preloader.ts +37 -0
  111. package/src/browser/preload/theme-preload-contribution.ts +31 -0
  112. package/src/browser/shell/application-shell.ts +11 -0
  113. package/src/common/i18n/localization-server.ts +25 -0
  114. package/src/common/i18n/nls.metadata.json +3969 -3719
  115. package/src/common/keys.ts +4 -3
  116. package/src/common/logger-protocol.ts +4 -0
  117. package/src/common/logger-watcher.ts +12 -7
  118. package/src/common/logger.ts +5 -0
  119. package/src/common/os.ts +8 -0
  120. package/src/common/quick-pick-service.ts +1 -0
  121. package/src/electron-browser/menu/electron-menu-contribution.ts +13 -0
  122. package/src/electron-browser/preload.ts +4 -1
  123. package/src/electron-common/electron-api.ts +2 -0
  124. package/src/electron-main/electron-api-main.ts +4 -1
  125. package/src/electron-main/electron-main-application.ts +40 -4
  126. package/src/node/backend-application-module.ts +7 -4
  127. package/src/node/console-logger-server.ts +5 -2
  128. package/src/node/i18n/i18n-backend-module.ts +9 -4
  129. package/src/node/i18n/{localization-backend-contribution.ts → localization-server.ts} +9 -10
  130. package/src/node/logger-backend-module.ts +8 -1
  131. package/src/node/{os-backend-application-contribution.ts → os-backend-provider.ts} +4 -9
  132. package/lib/browser/preloader.d.ts +0 -2
  133. package/lib/browser/preloader.d.ts.map +0 -1
  134. package/lib/browser/preloader.js +0 -75
  135. package/lib/browser/preloader.js.map +0 -1
  136. package/lib/node/i18n/localization-backend-contribution.d.ts.map +0 -1
  137. package/lib/node/i18n/localization-backend-contribution.js.map +0 -1
  138. package/lib/node/os-backend-application-contribution.d.ts +0 -6
  139. package/lib/node/os-backend-application-contribution.d.ts.map +0 -1
  140. package/lib/node/os-backend-application-contribution.js.map +0 -1
  141. package/src/browser/preloader.ts +0 -76
@@ -0,0 +1,50 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { PreloadContribution } from './preloader';
18
+ import { FrontendApplicationConfigProvider } from '../frontend-application-config-provider';
19
+ import { nls } from '../../common/nls';
20
+ import { inject, injectable } from 'inversify';
21
+ import { LocalizationServer } from '../../common/i18n/localization-server';
22
+
23
+ @injectable()
24
+ export class I18nPreloadContribution implements PreloadContribution {
25
+
26
+ @inject(LocalizationServer)
27
+ protected readonly localizationServer: LocalizationServer;
28
+
29
+ async initialize(): Promise<void> {
30
+ const defaultLocale = FrontendApplicationConfigProvider.get().defaultLocale;
31
+ if (defaultLocale && !nls.locale) {
32
+ Object.assign(nls, {
33
+ locale: defaultLocale
34
+ });
35
+ }
36
+ if (nls.locale) {
37
+ const localization = await this.localizationServer.loadLocalization(nls.locale);
38
+ if (localization.languagePack) {
39
+ nls.localization = localization;
40
+ } else {
41
+ // In case the localization that we've loaded doesn't localize Theia completely (languagePack is false)
42
+ // We simply reset the locale to the default again
43
+ Object.assign(nls, {
44
+ locale: defaultLocale || undefined
45
+ });
46
+ }
47
+ }
48
+ }
49
+
50
+ }
@@ -0,0 +1,37 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { inject, injectable } from 'inversify';
18
+ import { OS, OSBackendProvider } from '../../common';
19
+ import { PreloadContribution } from './preloader';
20
+
21
+ @injectable()
22
+ export class OSPreloadContribution implements PreloadContribution {
23
+
24
+ @inject(OSBackendProvider)
25
+ protected readonly osBackendProvider: OSBackendProvider;
26
+
27
+ async initialize(): Promise<void> {
28
+ const osType = await this.osBackendProvider.getBackendOS();
29
+ const isWindows = osType === 'Windows';
30
+ const isOSX = osType === 'OSX';
31
+ OS.backend.isOSX = isOSX;
32
+ OS.backend.isWindows = isWindows;
33
+ OS.backend.type = () => osType;
34
+ OS.backend.EOL = isWindows ? '\r\n' : '\n';
35
+ }
36
+
37
+ }
@@ -0,0 +1,45 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { ContainerModule } from 'inversify';
18
+ import { PreloadContribution, Preloader } from './preloader';
19
+ import { bindContributionProvider } from '../../common/contribution-provider';
20
+ import { I18nPreloadContribution } from './i18n-preload-contribution';
21
+ import { OSPreloadContribution } from './os-preload-contribution';
22
+ import { ThemePreloadContribution } from './theme-preload-contribution';
23
+ import { LocalizationServer, LocalizationServerPath } from '../../common/i18n/localization-server';
24
+ import { WebSocketConnectionProvider } from '../messaging/ws-connection-provider';
25
+ import { OSBackendProvider, OSBackendProviderPath } from '../../common/os';
26
+
27
+ export default new ContainerModule(bind => {
28
+ bind(Preloader).toSelf().inSingletonScope();
29
+ bindContributionProvider(bind, PreloadContribution);
30
+
31
+ bind(LocalizationServer).toDynamicValue(ctx =>
32
+ WebSocketConnectionProvider.createProxy<LocalizationServer>(ctx.container, LocalizationServerPath)
33
+ ).inSingletonScope();
34
+
35
+ bind(OSBackendProvider).toDynamicValue(ctx =>
36
+ WebSocketConnectionProvider.createProxy<OSBackendProvider>(ctx.container, OSBackendProviderPath)
37
+ ).inSingletonScope();
38
+
39
+ bind(I18nPreloadContribution).toSelf().inSingletonScope();
40
+ bind(PreloadContribution).toService(I18nPreloadContribution);
41
+ bind(OSPreloadContribution).toSelf().inSingletonScope();
42
+ bind(PreloadContribution).toService(OSPreloadContribution);
43
+ bind(ThemePreloadContribution).toSelf().inSingletonScope();
44
+ bind(PreloadContribution).toService(ThemePreloadContribution);
45
+ });
@@ -0,0 +1,37 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { MaybePromise } from '../../common/types';
18
+ import { inject, injectable, interfaces, named } from 'inversify';
19
+ import { ContributionProvider } from '../../common/contribution-provider';
20
+
21
+ export const PreloadContribution = Symbol('PreloadContribution') as symbol & interfaces.Abstract<PreloadContribution>;
22
+
23
+ export interface PreloadContribution {
24
+ initialize(): MaybePromise<void>;
25
+ }
26
+
27
+ @injectable()
28
+ export class Preloader {
29
+
30
+ @inject(ContributionProvider) @named(PreloadContribution)
31
+ protected readonly contributions: ContributionProvider<PreloadContribution>;
32
+
33
+ async initialize(): Promise<void> {
34
+ await Promise.allSettled(this.contributions.getContributions().map(contrib => contrib.initialize()));
35
+ }
36
+
37
+ }
@@ -0,0 +1,31 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { PreloadContribution } from './preloader';
18
+ import { DEFAULT_BACKGROUND_COLOR_STORAGE_KEY } from '../frontend-application-config-provider';
19
+ import { injectable } from 'inversify';
20
+ import { DefaultTheme } from '@theia/application-package/lib/application-props';
21
+
22
+ @injectable()
23
+ export class ThemePreloadContribution implements PreloadContribution {
24
+
25
+ initialize(): void {
26
+ const dark = window.matchMedia?.('(prefers-color-scheme: dark)').matches;
27
+ const value = window.localStorage.getItem(DEFAULT_BACKGROUND_COLOR_STORAGE_KEY) || DefaultTheme.defaultBackgroundColor(dark);
28
+ document.documentElement.style.setProperty('--theia-editor-background', value);
29
+ }
30
+
31
+ }
@@ -246,6 +246,9 @@ export class ApplicationShell extends Widget {
246
246
  protected readonly onDidChangeCurrentWidgetEmitter = new Emitter<FocusTracker.IChangedArgs<Widget>>();
247
247
  readonly onDidChangeCurrentWidget = this.onDidChangeCurrentWidgetEmitter.event;
248
248
 
249
+ protected readonly onDidDoubleClickMainAreaEmitter = new Emitter<void>();
250
+ readonly onDidDoubleClickMainArea = this.onDidDoubleClickMainAreaEmitter.event;
251
+
249
252
  @inject(TheiaDockPanel.Factory)
250
253
  protected readonly dockPanelFactory: TheiaDockPanel.Factory;
251
254
 
@@ -578,6 +581,14 @@ export class ApplicationShell extends Widget {
578
581
  }
579
582
  }
580
583
  });
584
+
585
+ dockPanel.node.addEventListener('dblclick', event => {
586
+ const el = event.target as Element;
587
+ if (el.id === MAIN_AREA_ID || el.classList.contains('p-TabBar-content')) {
588
+ this.onDidDoubleClickMainAreaEmitter.fire();
589
+ }
590
+ });
591
+
581
592
  const handler = (e: DragEvent) => {
582
593
  if (e.dataTransfer) {
583
594
  e.dataTransfer.dropEffect = 'link';
@@ -0,0 +1,25 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2023 TypeFox and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { Localization } from './localization';
18
+
19
+ export const LocalizationServerPath = '/localization-server';
20
+
21
+ export const LocalizationServer = Symbol('LocalizationServer');
22
+
23
+ export interface LocalizationServer {
24
+ loadLocalization(languageId: string): Promise<Localization>;
25
+ }