@opensumi/ide-core-browser 2.21.8-rc-1670567192.0 → 2.21.8

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 (317) hide show
  1. package/lib/components/actions/index.d.ts.map +1 -1
  2. package/lib/components/actions/index.js +22 -2
  3. package/lib/components/actions/index.js.map +1 -1
  4. package/lib/components/tree/tree.module.less +0 -1
  5. package/lib/contextkey/testing.d.ts +0 -1
  6. package/lib/contextkey/testing.d.ts.map +1 -1
  7. package/lib/contextkey/testing.js +1 -2
  8. package/lib/contextkey/testing.js.map +1 -1
  9. package/lib/menu/next/menu.contrib.interface.d.ts +2 -3
  10. package/lib/menu/next/menu.contrib.interface.d.ts.map +1 -1
  11. package/lib/menu/next/menu.contrib.interface.js.map +1 -1
  12. package/lib/preferences/preference-configurations.js +1 -1
  13. package/lib/preferences/preference-configurations.js.map +1 -1
  14. package/lib/react-providers/config-provider.d.ts +0 -4
  15. package/lib/react-providers/config-provider.d.ts.map +1 -1
  16. package/lib/react-providers/config-provider.js.map +1 -1
  17. package/lib/services/storage-service.d.ts.map +1 -1
  18. package/lib/services/storage-service.js +1 -7
  19. package/lib/services/storage-service.js.map +1 -1
  20. package/lib/utils/label.d.ts.map +1 -1
  21. package/lib/utils/label.js +9 -16
  22. package/lib/utils/label.js.map +1 -1
  23. package/package.json +6 -7
  24. package/src/application/application-state-service.ts +0 -54
  25. package/src/application/application.service.ts +0 -51
  26. package/src/application/index.ts +0 -2
  27. package/src/authentication/authentication.contribution.ts +0 -35
  28. package/src/authentication/authentication.service.ts +0 -517
  29. package/src/bootstrap/app.ts +0 -745
  30. package/src/bootstrap/app.view.tsx +0 -88
  31. package/src/bootstrap/connection.ts +0 -116
  32. package/src/bootstrap/index.ts +0 -3
  33. package/src/bootstrap/inner-providers.ts +0 -297
  34. package/src/bootstrap/lifecycle.service.ts +0 -19
  35. package/src/browser-module.ts +0 -24
  36. package/src/common/common.command.ts +0 -977
  37. package/src/common/common.contribution.ts +0 -343
  38. package/src/common/common.define.ts +0 -55
  39. package/src/common/common.module.ts +0 -33
  40. package/src/common/common.storage.ts +0 -22
  41. package/src/common/container-id.ts +0 -12
  42. package/src/common/index.ts +0 -4
  43. package/src/components/actions/index.tsx +0 -486
  44. package/src/components/actions/placements.ts +0 -47
  45. package/src/components/actions/styles.module.less +0 -144
  46. package/src/components/badge/index.tsx +0 -1
  47. package/src/components/index.ts +0 -26
  48. package/src/components/layout/box-panel.tsx +0 -88
  49. package/src/components/layout/default-layout.tsx +0 -61
  50. package/src/components/layout/index.ts +0 -4
  51. package/src/components/layout/layout.ts +0 -80
  52. package/src/components/layout/split-panel.service.ts +0 -56
  53. package/src/components/layout/split-panel.tsx +0 -296
  54. package/src/components/layout/styles.module.less +0 -21
  55. package/src/components/loading/index.ts +0 -1
  56. package/src/components/loading/loading.less +0 -14
  57. package/src/components/loading/loading.view.tsx +0 -7
  58. package/src/components/loading/media/loading-dark.svg +0 -52
  59. package/src/components/loading/media/loading-hc.svg +0 -52
  60. package/src/components/loading/media/loading.svg +0 -52
  61. package/src/components/popover/styles.module.less +0 -81
  62. package/src/components/portal/index.tsx +0 -13
  63. package/src/components/progressbar/index.tsx +0 -16
  64. package/src/components/progressbar/styles.module.less +0 -31
  65. package/src/components/recycle-tree/index.ts +0 -1
  66. package/src/components/recycle-tree/recycle-tree.view.tsx +0 -368
  67. package/src/components/resize/resize.module.less +0 -78
  68. package/src/components/resize/resize.tsx +0 -663
  69. package/src/components/scroll/index.tsx +0 -386
  70. package/src/components/scroll/scroll.module.less +0 -108
  71. package/src/components/scrollbar/index.ts +0 -1
  72. package/src/components/scrollbar/scrollbar.less +0 -36
  73. package/src/components/scrollbar/scrollbar.view.ts +0 -8
  74. package/src/components/select/index.tsx +0 -12
  75. package/src/components/select/styles.less +0 -6
  76. package/src/components/tree/index.ts +0 -3
  77. package/src/components/tree/tree-node.view.tsx +0 -546
  78. package/src/components/tree/tree.module.less +0 -297
  79. package/src/components/tree/tree.view.tsx +0 -486
  80. package/src/context-key.ts +0 -48
  81. package/src/contextkey/dialog.ts +0 -3
  82. package/src/contextkey/explorer.ts +0 -26
  83. package/src/contextkey/index.ts +0 -6
  84. package/src/contextkey/outline.ts +0 -4
  85. package/src/contextkey/resource.ts +0 -61
  86. package/src/contextkey/terminal.ts +0 -7
  87. package/src/contextkey/testing.ts +0 -9
  88. package/src/contextkey/workspace.ts +0 -7
  89. package/src/core-preferences.ts +0 -318
  90. package/src/dom/index.ts +0 -176
  91. package/src/encoding-registry.ts +0 -83
  92. package/src/extensions/extensions-point.service.ts +0 -78
  93. package/src/extensions/index.ts +0 -3
  94. package/src/extensions/schema/browserViews.ts +0 -96
  95. package/src/extensions/schema/menu.ts +0 -245
  96. package/src/extensions/schema/opensumiExtensionPackageSchema.ts +0 -12
  97. package/src/extensions/schema/toolbar.ts +0 -338
  98. package/src/extensions/schema/vscodeExtensionPackageSchema.ts +0 -330
  99. package/src/fs/index.ts +0 -12
  100. package/src/hash-calculate/hash-calculate.contribution.ts +0 -19
  101. package/src/index.ts +0 -42
  102. package/src/keybinding/index.ts +0 -1
  103. package/src/keybinding/keybinding.ts +0 -908
  104. package/src/keyboard/index.ts +0 -3
  105. package/src/keyboard/keyboard-layout-provider.ts +0 -412
  106. package/src/keyboard/keyboard-layout-service.ts +0 -449
  107. package/src/keyboard/keys.ts +0 -748
  108. package/src/keyboard/layouts/_.contribution.ts +0 -24
  109. package/src/keyboard/layouts/cz.win.ts +0 -168
  110. package/src/keyboard/layouts/de-swiss.win.ts +0 -168
  111. package/src/keyboard/layouts/de.darwin.ts +0 -131
  112. package/src/keyboard/layouts/de.linux.ts +0 -186
  113. package/src/keyboard/layouts/de.win.ts +0 -168
  114. package/src/keyboard/layouts/dk.win.ts +0 -168
  115. package/src/keyboard/layouts/dvorak.darwin.ts +0 -131
  116. package/src/keyboard/layouts/en-belgian.win.ts +0 -168
  117. package/src/keyboard/layouts/en-ext.darwin.ts +0 -131
  118. package/src/keyboard/layouts/en-in.win.ts +0 -168
  119. package/src/keyboard/layouts/en-intl.darwin.ts +0 -131
  120. package/src/keyboard/layouts/en-intl.win.ts +0 -168
  121. package/src/keyboard/layouts/en-uk.darwin.ts +0 -131
  122. package/src/keyboard/layouts/en-uk.win.ts +0 -168
  123. package/src/keyboard/layouts/en.darwin.ts +0 -139
  124. package/src/keyboard/layouts/en.linux.ts +0 -186
  125. package/src/keyboard/layouts/en.win.ts +0 -173
  126. package/src/keyboard/layouts/es-latin.win.ts +0 -168
  127. package/src/keyboard/layouts/es.darwin.ts +0 -131
  128. package/src/keyboard/layouts/es.linux.ts +0 -186
  129. package/src/keyboard/layouts/es.win.ts +0 -168
  130. package/src/keyboard/layouts/fr.darwin.ts +0 -131
  131. package/src/keyboard/layouts/fr.linux.ts +0 -186
  132. package/src/keyboard/layouts/fr.win.ts +0 -168
  133. package/src/keyboard/layouts/hu.win.ts +0 -168
  134. package/src/keyboard/layouts/it.darwin.ts +0 -131
  135. package/src/keyboard/layouts/it.win.ts +0 -168
  136. package/src/keyboard/layouts/jp-roman.darwin.ts +0 -131
  137. package/src/keyboard/layouts/jp.darwin.ts +0 -131
  138. package/src/keyboard/layouts/ko.darwin.ts +0 -131
  139. package/src/keyboard/layouts/layout.contribution.darwin.ts +0 -23
  140. package/src/keyboard/layouts/layout.contribution.linux.ts +0 -12
  141. package/src/keyboard/layouts/layout.contribution.ts +0 -9
  142. package/src/keyboard/layouts/layout.contribution.win.ts +0 -29
  143. package/src/keyboard/layouts/no.win.ts +0 -168
  144. package/src/keyboard/layouts/pl.darwin.ts +0 -131
  145. package/src/keyboard/layouts/pl.win.ts +0 -168
  146. package/src/keyboard/layouts/pt-br.win.ts +0 -169
  147. package/src/keyboard/layouts/pt.darwin.ts +0 -131
  148. package/src/keyboard/layouts/pt.win.ts +0 -168
  149. package/src/keyboard/layouts/ru.darwin.ts +0 -131
  150. package/src/keyboard/layouts/ru.linux.ts +0 -186
  151. package/src/keyboard/layouts/ru.win.ts +0 -168
  152. package/src/keyboard/layouts/sv.darwin.ts +0 -131
  153. package/src/keyboard/layouts/sv.win.ts +0 -168
  154. package/src/keyboard/layouts/thai.win.ts +0 -168
  155. package/src/keyboard/layouts/tr.win.ts +0 -168
  156. package/src/keyboard/layouts/zh-hans.darwin.ts +0 -131
  157. package/src/layout/accordion/tab-bar-toolbar.tsx +0 -59
  158. package/src/layout/accordion/view-context-key.registry.ts +0 -34
  159. package/src/layout/constants.ts +0 -7
  160. package/src/layout/index.ts +0 -5
  161. package/src/layout/layout-hooks.ts +0 -68
  162. package/src/layout/layout-state.ts +0 -107
  163. package/src/layout/layout.interface.ts +0 -101
  164. package/src/layout/layout.ts +0 -80
  165. package/src/layout/view-id.ts +0 -18
  166. package/src/logger/browser-logger.ts +0 -51
  167. package/src/logger/index.ts +0 -1
  168. package/src/markdown/index.tsx +0 -62
  169. package/src/menu/next/base.ts +0 -513
  170. package/src/menu/next/ctxmenu-service.ts +0 -188
  171. package/src/menu/next/index.ts +0 -10
  172. package/src/menu/next/menu-id.ts +0 -86
  173. package/src/menu/next/menu-service.ts +0 -252
  174. package/src/menu/next/menu-util.ts +0 -77
  175. package/src/menu/next/menu.contrib.interface.ts +0 -79
  176. package/src/menu/next/menu.interface.ts +0 -253
  177. package/src/menu/next/menubar-service.ts +0 -211
  178. package/src/menu/next/renderer/ctxmenu/base.ts +0 -18
  179. package/src/menu/next/renderer/ctxmenu/browser.ts +0 -45
  180. package/src/menu/next/renderer/ctxmenu/electron.ts +0 -207
  181. package/src/menu/next/toolbar-action.service.ts +0 -132
  182. package/src/monaco/index.ts +0 -128
  183. package/src/opener/command-opener.ts +0 -42
  184. package/src/opener/default-opener.ts +0 -31
  185. package/src/opener/http-opener.ts +0 -25
  186. package/src/opener/index.ts +0 -19
  187. package/src/opener/opener.contribution.ts +0 -57
  188. package/src/opener/opener.service.ts +0 -66
  189. package/src/preferences/early-preferences.ts +0 -117
  190. package/src/preferences/index.ts +0 -9
  191. package/src/preferences/preference-configurations.ts +0 -77
  192. package/src/preferences/preference-contribution.ts +0 -401
  193. package/src/preferences/preference-provider.ts +0 -414
  194. package/src/preferences/preference-proxy.ts +0 -292
  195. package/src/preferences/preference-scope.ts +0 -3
  196. package/src/preferences/preference-service.ts +0 -571
  197. package/src/preferences/settings.ts +0 -53
  198. package/src/preferences/types.ts +0 -111
  199. package/src/progress/index.ts +0 -58
  200. package/src/progress/progress-bar.tsx +0 -22
  201. package/src/progress/progress-indicator.ts +0 -90
  202. package/src/progress/progress.module.less +0 -46
  203. package/src/progress/progress.service.tsx +0 -429
  204. package/src/quick-open/index.ts +0 -655
  205. package/src/quick-open/recent-files.ts +0 -68
  206. package/src/raw-context-key.ts +0 -116
  207. package/src/react-hooks/event.tsx +0 -80
  208. package/src/react-hooks/hot-key.tsx +0 -58
  209. package/src/react-hooks/index.ts +0 -3
  210. package/src/react-hooks/injectable-hooks.tsx +0 -35
  211. package/src/react-hooks/portal-hooks.tsx +0 -38
  212. package/src/react-providers/config-provider.tsx +0 -263
  213. package/src/react-providers/index.tsx +0 -2
  214. package/src/react-providers/slot.module.less +0 -19
  215. package/src/react-providers/slot.tsx +0 -242
  216. package/src/services/clipboard.service.ts +0 -97
  217. package/src/services/credentials-service.ts +0 -91
  218. package/src/services/crypto-service.ts +0 -23
  219. package/src/services/external-uri.service.ts +0 -68
  220. package/src/services/index.ts +0 -7
  221. package/src/services/label-service.ts +0 -386
  222. package/src/services/status-bar-service.ts +0 -108
  223. package/src/services/storage-service.ts +0 -197
  224. package/src/style/codicons/README.md +0 -22
  225. package/src/style/codicons/codicon-animations.css +0 -15
  226. package/src/style/codicons/generator.js +0 -15
  227. package/src/style/entry.less +0 -25
  228. package/src/style/icon/fileicons/file-default.svg +0 -1
  229. package/src/style/icon/fileicons/folder-default.svg +0 -1
  230. package/src/style/icon/fileicons.less +0 -20
  231. package/src/style/icon/icon.ts +0 -543
  232. package/src/style/icon/ide-iconfont.ts +0 -13
  233. package/src/style/icon/index.less +0 -54
  234. package/src/style/icon/seti.woff +0 -0
  235. package/src/style/icon/symbol-icons/boolean-dark.svg +0 -3
  236. package/src/style/icon/symbol-icons/boolean-light.svg +0 -3
  237. package/src/style/icon/symbol-icons/class-dark.svg +0 -3
  238. package/src/style/icon/symbol-icons/class-light.svg +0 -3
  239. package/src/style/icon/symbol-icons/constant-dark.svg +0 -4
  240. package/src/style/icon/symbol-icons/constant-light.svg +0 -4
  241. package/src/style/icon/symbol-icons/enumerator-dark.svg +0 -3
  242. package/src/style/icon/symbol-icons/enumerator-item-dark.svg +0 -3
  243. package/src/style/icon/symbol-icons/enumerator-item-light.svg +0 -3
  244. package/src/style/icon/symbol-icons/enumerator-light.svg +0 -3
  245. package/src/style/icon/symbol-icons/event-dark.svg +0 -3
  246. package/src/style/icon/symbol-icons/event-light.svg +0 -3
  247. package/src/style/icon/symbol-icons/field-dark.svg +0 -3
  248. package/src/style/icon/symbol-icons/field-light.svg +0 -3
  249. package/src/style/icon/symbol-icons/file-dark.svg +0 -3
  250. package/src/style/icon/symbol-icons/file-light.svg +0 -3
  251. package/src/style/icon/symbol-icons/indexer-dark.svg +0 -3
  252. package/src/style/icon/symbol-icons/indexer-light.svg +0 -3
  253. package/src/style/icon/symbol-icons/interface-dark.svg +0 -3
  254. package/src/style/icon/symbol-icons/interface-light.svg +0 -3
  255. package/src/style/icon/symbol-icons/keyword-dark.svg +0 -3
  256. package/src/style/icon/symbol-icons/keyword-light.svg +0 -3
  257. package/src/style/icon/symbol-icons/method-dark.svg +0 -3
  258. package/src/style/icon/symbol-icons/method-light.svg +0 -3
  259. package/src/style/icon/symbol-icons/namespace-dark.svg +0 -3
  260. package/src/style/icon/symbol-icons/namespace-light.svg +0 -3
  261. package/src/style/icon/symbol-icons/numeric-dark.svg +0 -3
  262. package/src/style/icon/symbol-icons/numeric-light.svg +0 -3
  263. package/src/style/icon/symbol-icons/operator-dark.svg +0 -3
  264. package/src/style/icon/symbol-icons/operator-light.svg +0 -3
  265. package/src/style/icon/symbol-icons/property-dark.svg +0 -3
  266. package/src/style/icon/symbol-icons/property-light.svg +0 -3
  267. package/src/style/icon/symbol-icons/snippet-dark.svg +0 -3
  268. package/src/style/icon/symbol-icons/snippet-light.svg +0 -3
  269. package/src/style/icon/symbol-icons/string-dark.svg +0 -3
  270. package/src/style/icon/symbol-icons/string-light.svg +0 -3
  271. package/src/style/icon/symbol-icons/structure-dark.svg +0 -3
  272. package/src/style/icon/symbol-icons/structure-light.svg +0 -3
  273. package/src/style/icon/symbol-icons/symbol-icons.css +0 -284
  274. package/src/style/icon/symbol-icons/template-dark.svg +0 -3
  275. package/src/style/icon/symbol-icons/template-light.svg +0 -3
  276. package/src/style/icon/symbol-icons/variable-dark.svg +0 -3
  277. package/src/style/icon/symbol-icons/variable-light.svg +0 -3
  278. package/src/style/icon.less +0 -8
  279. package/src/style/index.less +0 -14
  280. package/src/style/monaco-override.less +0 -116
  281. package/src/style/normalize.less +0 -92
  282. package/src/style/octicons/octicons-cdn.css +0 -720
  283. package/src/style/octicons/octicons.css +0 -714
  284. package/src/style/octicons/octicons.html +0 -1882
  285. package/src/style/octicons/octicons.svg +0 -582
  286. package/src/style/octicons/octicons.ttf +0 -0
  287. package/src/style/override.less +0 -97
  288. package/src/style/toolbar.less +0 -199
  289. package/src/style/utilities.less +0 -8
  290. package/src/style/variable.less +0 -8
  291. package/src/terminal/index.ts +0 -7
  292. package/src/toolbar/components/auto-complete.tsx +0 -0
  293. package/src/toolbar/components/button.tsx +0 -440
  294. package/src/toolbar/components/index.ts +0 -2
  295. package/src/toolbar/components/select.tsx +0 -189
  296. package/src/toolbar/index.ts +0 -3
  297. package/src/toolbar/toolbar.popover.registry.ts +0 -32
  298. package/src/toolbar/toolbar.registry.ts +0 -352
  299. package/src/toolbar/toolbar.tsx +0 -710
  300. package/src/toolbar/types.ts +0 -383
  301. package/src/tree/index.ts +0 -3
  302. package/src/tree/tree-expansion.ts +0 -25
  303. package/src/tree/tree-selection.ts +0 -89
  304. package/src/tree/tree.ts +0 -294
  305. package/src/utils/create-overlay.tsx +0 -53
  306. package/src/utils/electron.ts +0 -92
  307. package/src/utils/env.ts +0 -26
  308. package/src/utils/icon.ts +0 -13
  309. package/src/utils/index.ts +0 -7
  310. package/src/utils/json.ts +0 -251
  311. package/src/utils/label.tsx +0 -36
  312. package/src/utils/parse.ts +0 -72
  313. package/src/utils/react-hooks.ts +0 -118
  314. package/src/variable/index.ts +0 -1
  315. package/src/variable/variable.ts +0 -84
  316. package/src/window/index.ts +0 -34
  317. package/src/window/window.service.ts +0 -100
@@ -1,88 +0,0 @@
1
- import React from 'react';
2
- import ReactDom from 'react-dom';
3
-
4
- import { ComponentContextProvider, IIconResourceOptions } from '@opensumi/ide-components';
5
- import { getDebugLogger, IEventBus, URI, localize } from '@opensumi/ide-core-common';
6
-
7
- import { IClientApp } from '../browser-module';
8
- import { DefaultLayout } from '../components/layout/default-layout';
9
- import { ResizeEvent } from '../layout';
10
- import { ConfigProvider } from '../react-providers/config-provider';
11
- import { allSlot } from '../react-providers/slot';
12
- import { LabelService } from '../services';
13
- import { getIcon } from '../style/icon/icon';
14
-
15
- export interface AppProps {
16
- app: IClientApp;
17
- main: React.ComponentType;
18
- overlays?: React.ComponentType[];
19
- }
20
-
21
- export function App(props: AppProps) {
22
- const injector = props.app.injector;
23
- const eventBus: IEventBus = injector.get(IEventBus);
24
- const labelService: LabelService = injector.get(LabelService);
25
- const getResourceIcon = React.useCallback(
26
- (uri: string, options: IIconResourceOptions) => labelService.getIcon(URI.parse(uri), options),
27
- [],
28
- );
29
- React.useEffect(() => {
30
- let lastFrame: number | null;
31
- const handle = () => {
32
- if (lastFrame) {
33
- window.cancelAnimationFrame(lastFrame);
34
- }
35
- lastFrame = window.requestAnimationFrame(() => {
36
- lastFrame = null;
37
- allSlot.forEach((item) => {
38
- eventBus.fire(new ResizeEvent({ slotLocation: item.slot }));
39
- });
40
- });
41
- };
42
- window.addEventListener('resize', handle);
43
- return () => {
44
- window.removeEventListener('resize', handle);
45
- };
46
- }, []);
47
- return (
48
- <ComponentContextProvider value={{ getIcon, localize, getResourceIcon }}>
49
- <ConfigProvider value={props.app.config}>
50
- {<props.main />}
51
- {props.overlays && props.overlays.map((Component, index) => <Component key={index} />)}
52
- </ConfigProvider>
53
- </ComponentContextProvider>
54
- );
55
- }
56
-
57
- export type IAppRenderer = (app: React.ReactElement) => Promise<void>;
58
-
59
- const defaultAppRender =
60
- (dom: HTMLElement, onDidRendered?: () => void): IAppRenderer =>
61
- (app) =>
62
- new Promise((resolve) => {
63
- ReactDom.render(app, dom, () => {
64
- if (onDidRendered && typeof onDidRendered === 'function') {
65
- onDidRendered();
66
- }
67
- resolve();
68
- });
69
- });
70
-
71
- export function renderClientApp(app: IClientApp, container: HTMLElement | IAppRenderer) {
72
- const Layout = app.config.layoutComponent || DefaultLayout;
73
- const overlayComponents = app.browserModules
74
- .filter((module) => module.isOverlay)
75
- .map((module) => {
76
- if (!module.component) {
77
- getDebugLogger().warn('Overlay module does not have component', module);
78
- return () => <></>;
79
- }
80
- return module.component;
81
- });
82
-
83
- const IdeApp = <App app={app} main={Layout} overlays={overlayComponents} />;
84
-
85
- const render = typeof container === 'function' ? container : defaultAppRender(container, app.config.didRendered);
86
-
87
- return render(IdeApp);
88
- }
@@ -1,116 +0,0 @@
1
- import { Injector, Provider } from '@opensumi/di';
2
- import { RPCServiceCenter, initRPCService, RPCMessageConnection } from '@opensumi/ide-connection';
3
- import { WSChannelHandler } from '@opensumi/ide-connection/lib/browser';
4
- import { createWebSocketConnection } from '@opensumi/ide-connection/lib/common/message';
5
- import {
6
- getDebugLogger,
7
- IReporterService,
8
- BasicModule,
9
- BrowserConnectionCloseEvent,
10
- BrowserConnectionOpenEvent,
11
- BrowserConnectionErrorEvent,
12
- IEventBus,
13
- UrlProvider,
14
- } from '@opensumi/ide-core-common';
15
- import { BackService } from '@opensumi/ide-core-common/lib/module';
16
-
17
- import { ClientAppStateService } from '../application';
18
-
19
- import { ModuleConstructor } from './app';
20
-
21
- // 建立连接之前,无法使用落盘的 logger
22
- // 初始化时使用不落盘的 logger
23
- const initialLogger = getDebugLogger();
24
-
25
- export async function createClientConnection2(
26
- injector: Injector,
27
- modules: ModuleConstructor[],
28
- wsPath: UrlProvider,
29
- onReconnect: () => void,
30
- protocols?: string[],
31
- clientId?: string,
32
- ) {
33
- const reporterService: IReporterService = injector.get(IReporterService);
34
- const eventBus = injector.get(IEventBus);
35
- const stateService = injector.get(ClientAppStateService);
36
-
37
- const wsChannelHandler = new WSChannelHandler(wsPath, initialLogger, protocols, clientId);
38
- wsChannelHandler.setReporter(reporterService);
39
- wsChannelHandler.connection.addEventListener('open', async () => {
40
- await stateService.reachedState('core_module_initialized');
41
- eventBus.fire(new BrowserConnectionOpenEvent());
42
- });
43
-
44
- wsChannelHandler.connection.addEventListener('close', async () => {
45
- await stateService.reachedState('core_module_initialized');
46
- eventBus.fire(new BrowserConnectionCloseEvent());
47
- });
48
-
49
- wsChannelHandler.connection.addEventListener('error', async (e) => {
50
- await stateService.reachedState('core_module_initialized');
51
- eventBus.fire(new BrowserConnectionErrorEvent(e));
52
- });
53
-
54
- await wsChannelHandler.initHandler();
55
-
56
- injector.addProviders({
57
- token: WSChannelHandler,
58
- useValue: wsChannelHandler,
59
- });
60
- // 重连不会执行后面的逻辑
61
- const channel = await wsChannelHandler.openChannel('RPCService');
62
- channel.onReOpen(() => onReconnect());
63
-
64
- bindConnectionService(injector, modules, createWebSocketConnection(channel));
65
- }
66
-
67
- export async function bindConnectionService(
68
- injector: Injector,
69
- modules: ModuleConstructor[],
70
- connection: RPCMessageConnection,
71
- ) {
72
- const clientCenter = new RPCServiceCenter();
73
- clientCenter.setConnection(connection);
74
-
75
- connection.onClose(() => {
76
- clientCenter.removeConnection(connection);
77
- });
78
-
79
- const { getRPCService } = initRPCService(clientCenter);
80
-
81
- const backServiceArr: BackService[] = [];
82
- // 存放依赖前端后端服务,后端服务实例化后再去实例化这些 token
83
- const dependClientBackServices: BackService[] = [];
84
-
85
- for (const module of modules) {
86
- const moduleInstance = injector.get(module) as BasicModule;
87
- if (moduleInstance.backServices) {
88
- for (const backService of moduleInstance.backServices) {
89
- backServiceArr.push(backService);
90
- }
91
- }
92
- }
93
-
94
- for (const backService of backServiceArr) {
95
- const { servicePath } = backService;
96
- const rpcService = getRPCService(servicePath);
97
-
98
- const injectService = {
99
- token: servicePath,
100
- useValue: rpcService,
101
- } as Provider;
102
-
103
- injector.addProviders(injectService);
104
- // 这里不进行初始化,先收集依赖,等所有 servicePath 实例化完后在做实例化,防止循环依赖
105
- if (backService.clientToken) {
106
- dependClientBackServices.push(backService);
107
- }
108
- }
109
-
110
- for (const backService of dependClientBackServices) {
111
- const { servicePath } = backService;
112
- const rpcService = getRPCService(servicePath);
113
- const clientService = injector.get(backService.clientToken!);
114
- rpcService.onRequestService(clientService);
115
- }
116
- }
@@ -1,3 +0,0 @@
1
- export * from './app';
2
- export * from './app.view';
3
- export * from './connection';
@@ -1,297 +0,0 @@
1
- import { Provider, Injector } from '@opensumi/di';
2
- import {
3
- IEventBus,
4
- EventBusImpl,
5
- CommandService,
6
- CommandRegistryImpl,
7
- CommandContribution,
8
- createContributionProvider,
9
- CommandServiceImpl,
10
- CommandRegistry,
11
- IElectronMainMenuService,
12
- ReporterMetadata,
13
- IReporter,
14
- IReporterService,
15
- DefaultReporter,
16
- ReporterService,
17
- REPORT_HOST,
18
- IProblemPatternRegistry,
19
- ProblemPatternRegistryImpl,
20
- IProblemMatcherRegistry,
21
- ProblemMatchersRegistryImpl,
22
- ITaskDefinitionRegistry,
23
- TaskDefinitionRegistryImpl,
24
- IApplicationService,
25
- IAuthenticationService,
26
- AppLifeCycleServiceToken,
27
- IExtensionsSchemaService,
28
- } from '@opensumi/ide-core-common';
29
- import {
30
- IElectronMainUIService,
31
- IElectronMainLifeCycleService,
32
- IElectronURLService,
33
- } from '@opensumi/ide-core-common/lib/electron';
34
- import {
35
- HashCalculateServiceImpl,
36
- IHashCalculateService,
37
- } from '@opensumi/ide-core-common/lib/hash-calculate/hash-calculate';
38
- import {
39
- KeyboardNativeLayoutService,
40
- KeyboardLayoutChangeNotifierService,
41
- } from '@opensumi/ide-core-common/lib/keyboard/keyboard-layout-provider';
42
-
43
- import { ClientAppStateService } from '../application/application-state-service';
44
- import { ApplicationService } from '../application/application.service';
45
- import { AuthenticationService } from '../authentication/authentication.service';
46
- import { ClientAppContribution } from '../common';
47
- import { ExtensionsPointServiceImpl } from '../extensions';
48
- import { FsProviderContribution } from '../fs';
49
- import { KeybindingContribution, KeybindingService, KeybindingRegistryImpl, KeybindingRegistry } from '../keybinding';
50
- import { BrowserKeyboardLayoutImpl, KeyValidator } from '../keyboard';
51
- import { ComponentRegistry, ComponentRegistryImpl, ComponentContribution, TabBarToolbarContribution } from '../layout';
52
- import { Logger, ILogger } from '../logger';
53
- import {
54
- AbstractMenuService,
55
- MenuServiceImpl,
56
- AbstractMenubarService,
57
- MenubarServiceImpl,
58
- IMenuRegistry,
59
- MenuRegistryImpl,
60
- MenuContribution,
61
- AbstractContextMenuService,
62
- ContextMenuServiceImpl,
63
- } from '../menu/next';
64
- import { ICtxMenuRenderer } from '../menu/next/renderer/ctxmenu/base';
65
- import { BrowserCtxMenuRenderer } from '../menu/next/renderer/ctxmenu/browser';
66
- import {
67
- ElectronCtxMenuRenderer,
68
- ElectronMenuBarService,
69
- IElectronMenuFactory,
70
- IElectronMenuBarService,
71
- ElectronMenuFactory,
72
- } from '../menu/next/renderer/ctxmenu/electron';
73
- import { ToolbarActionService, IToolbarActionService } from '../menu/next/toolbar-action.service';
74
- import { IOpenerService } from '../opener';
75
- import { OpenerService } from '../opener/opener.service';
76
- import { PreferenceContribution } from '../preferences';
77
- import { IProgressService } from '../progress';
78
- import { ProgressService } from '../progress/progress.service';
79
- import { AppConfig } from '../react-providers/config-provider';
80
- import { SlotRendererContribution } from '../react-providers/slot';
81
- import { CredentialsService, ICredentialsService, CryptoService, ICryptoService } from '../services';
82
- import { IClipboardService, BrowserClipboardService } from '../services/clipboard.service';
83
- import { IExternalUriService, ExternalUriService } from '../services/external-uri.service';
84
- import { IToolbarPopoverRegistry, IToolbarRegistry, ToolBarActionContribution } from '../toolbar';
85
- import { ToolbarPopoverRegistry } from '../toolbar/toolbar.popover.registry';
86
- import { NextToolbarRegistryImpl, ToolbarClientAppContribution } from '../toolbar/toolbar.registry';
87
- import { useNativeContextMenu } from '../utils';
88
- import { createElectronMainApi } from '../utils/electron';
89
- import { VariableRegistry, VariableRegistryImpl, VariableContribution } from '../variable';
90
- import { IWindowService } from '../window';
91
- import { WindowService } from '../window/window.service';
92
-
93
- import { AppLifeCycleService } from './lifecycle.service';
94
-
95
- export function injectInnerProviders(injector: Injector) {
96
- // 生成 ContributionProvider
97
- createContributionProvider(injector, ClientAppContribution);
98
- createContributionProvider(injector, CommandContribution);
99
- createContributionProvider(injector, FsProviderContribution);
100
- createContributionProvider(injector, KeybindingContribution);
101
- createContributionProvider(injector, MenuContribution);
102
- createContributionProvider(injector, ComponentContribution);
103
- createContributionProvider(injector, SlotRendererContribution);
104
- createContributionProvider(injector, PreferenceContribution);
105
- createContributionProvider(injector, VariableContribution);
106
- createContributionProvider(injector, TabBarToolbarContribution);
107
- createContributionProvider(injector, ToolBarActionContribution);
108
-
109
- // 一些内置抽象实现
110
- const providers: Provider[] = [
111
- {
112
- token: IEventBus,
113
- useClass: EventBusImpl,
114
- },
115
- {
116
- token: CommandService,
117
- useClass: CommandServiceImpl,
118
- },
119
- {
120
- token: CommandRegistry,
121
- useClass: CommandRegistryImpl,
122
- },
123
- {
124
- token: KeybindingRegistry,
125
- useClass: KeybindingRegistryImpl,
126
- },
127
- {
128
- token: KeybindingService,
129
- useFactory: (inject: Injector) => inject.get(KeybindingRegistry),
130
- },
131
- {
132
- token: KeyboardNativeLayoutService,
133
- useClass: BrowserKeyboardLayoutImpl,
134
- },
135
- {
136
- token: KeyboardLayoutChangeNotifierService,
137
- useFactory: (inject: Injector) => inject.get(KeyboardNativeLayoutService),
138
- },
139
- {
140
- token: KeyValidator,
141
- useFactory: (inject: Injector) => inject.get(KeyboardNativeLayoutService),
142
- },
143
- ClientAppStateService,
144
- {
145
- token: ILogger,
146
- useClass: Logger,
147
- },
148
- {
149
- token: ComponentRegistry,
150
- useClass: ComponentRegistryImpl,
151
- },
152
- {
153
- token: VariableRegistry,
154
- useClass: VariableRegistryImpl,
155
- },
156
- // next version menu
157
- {
158
- token: AbstractMenuService,
159
- useClass: MenuServiceImpl,
160
- },
161
- {
162
- token: AbstractContextMenuService,
163
- useClass: ContextMenuServiceImpl,
164
- },
165
- {
166
- token: IMenuRegistry,
167
- useClass: MenuRegistryImpl,
168
- },
169
- {
170
- token: IToolbarActionService,
171
- useClass: ToolbarActionService,
172
- },
173
- {
174
- token: ICtxMenuRenderer,
175
- useClass: useNativeContextMenu() ? ElectronCtxMenuRenderer : BrowserCtxMenuRenderer,
176
- },
177
- {
178
- token: AbstractMenubarService,
179
- useClass: MenubarServiceImpl,
180
- },
181
- {
182
- token: IReporter,
183
- useClass: DefaultReporter,
184
- },
185
- {
186
- token: IReporterService,
187
- useClass: ReporterService,
188
- },
189
- {
190
- token: ReporterMetadata,
191
- useValue: {
192
- host: REPORT_HOST.BROWSER,
193
- },
194
- },
195
- {
196
- token: IProgressService,
197
- useClass: ProgressService,
198
- },
199
- {
200
- token: IToolbarRegistry,
201
- useClass: NextToolbarRegistryImpl,
202
- },
203
- {
204
- token: IToolbarPopoverRegistry,
205
- useClass: ToolbarPopoverRegistry,
206
- },
207
- ToolbarClientAppContribution,
208
- {
209
- token: IProblemPatternRegistry,
210
- useClass: ProblemPatternRegistryImpl,
211
- },
212
- {
213
- token: IProblemMatcherRegistry,
214
- useClass: ProblemMatchersRegistryImpl,
215
- },
216
- {
217
- token: ITaskDefinitionRegistry,
218
- useClass: TaskDefinitionRegistryImpl,
219
- },
220
- {
221
- token: IOpenerService,
222
- useClass: OpenerService,
223
- },
224
- {
225
- token: IWindowService,
226
- useClass: WindowService,
227
- },
228
- {
229
- token: IApplicationService,
230
- useClass: ApplicationService,
231
- },
232
- {
233
- token: IClipboardService,
234
- useClass: BrowserClipboardService,
235
- },
236
- {
237
- token: IExternalUriService,
238
- useClass: ExternalUriService,
239
- },
240
- {
241
- token: IAuthenticationService,
242
- useClass: AuthenticationService,
243
- },
244
- {
245
- token: ICryptoService,
246
- useClass: CryptoService,
247
- },
248
- {
249
- token: ICredentialsService,
250
- useClass: CredentialsService,
251
- },
252
- {
253
- token: IHashCalculateService,
254
- useClass: HashCalculateServiceImpl,
255
- },
256
- {
257
- token: IExtensionsSchemaService,
258
- useClass: ExtensionsPointServiceImpl,
259
- },
260
- {
261
- token: AppLifeCycleServiceToken,
262
- useClass: AppLifeCycleService,
263
- },
264
- ];
265
- injector.addProviders(...providers);
266
-
267
- const appConfig: AppConfig = injector.get(AppConfig);
268
- // 为electron添加独特的api服务,主要是向electron-main进行调用的服务
269
- if (appConfig.isElectronRenderer) {
270
- injector.addProviders(
271
- {
272
- token: IElectronMainMenuService,
273
- useValue: createElectronMainApi(IElectronMainMenuService),
274
- },
275
- {
276
- token: IElectronMainUIService,
277
- useValue: createElectronMainApi(IElectronMainUIService),
278
- },
279
- {
280
- token: IElectronMainLifeCycleService,
281
- useValue: createElectronMainApi(IElectronMainLifeCycleService),
282
- },
283
- {
284
- token: IElectronURLService,
285
- useValue: createElectronMainApi(IElectronURLService),
286
- },
287
- {
288
- token: IElectronMenuFactory,
289
- useClass: ElectronMenuFactory,
290
- },
291
- {
292
- token: IElectronMenuBarService,
293
- useClass: ElectronMenuBarService,
294
- },
295
- );
296
- }
297
- }
@@ -1,19 +0,0 @@
1
- import { Injectable } from '@opensumi/di';
2
- import { Emitter, IAppLifeCycleService, LifeCyclePhase } from '@opensumi/ide-core-common';
3
-
4
- @Injectable()
5
- export class AppLifeCycleService implements IAppLifeCycleService {
6
- private onDidChangeLifecyclePhaseEmitter: Emitter<LifeCyclePhase> = new Emitter();
7
- public onDidLifeCyclePhaseChange = this.onDidChangeLifecyclePhaseEmitter.event;
8
-
9
- private lifeCyclePhase: LifeCyclePhase;
10
-
11
- set phase(value: LifeCyclePhase) {
12
- this.lifeCyclePhase = value;
13
- this.onDidChangeLifecyclePhaseEmitter.fire(this.lifeCyclePhase);
14
- }
15
-
16
- get phase() {
17
- return this.lifeCyclePhase;
18
- }
19
- }
@@ -1,24 +0,0 @@
1
- import { Injector, Autowired } from '@opensumi/di';
2
- import { BasicModule, CommandRegistry, Deferred } from '@opensumi/ide-core-common';
3
-
4
- import { AppConfig } from './react-providers/config-provider';
5
-
6
- export const IClientApp = Symbol('CLIENT_APP_TOKEN');
7
-
8
- export interface IClientApp {
9
- appInitialized: Deferred<void>;
10
- browserModules: BrowserModule<any>[];
11
- injector: Injector;
12
- config: AppConfig;
13
- commandRegistry: CommandRegistry;
14
- fireOnReload: (forcedReload?: boolean) => void;
15
- }
16
-
17
- export abstract class BrowserModule<T = any> extends BasicModule {
18
- @Autowired(IClientApp)
19
- protected app: IClientApp;
20
- public preferences?: (inject: Injector) => void;
21
- public component?: React.ComponentType<T>;
22
- // 脱离于layout渲染的模块
23
- public isOverlay?: boolean;
24
- }