@theia/plugin-ext 1.18.0-next.ed824933 → 1.21.0-next.11

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 (301) hide show
  1. package/LICENSE +642 -0
  2. package/README.md +5 -0
  3. package/lib/common/arrays.d.ts +4 -0
  4. package/lib/common/arrays.d.ts.map +1 -1
  5. package/lib/common/arrays.js +9 -1
  6. package/lib/common/arrays.js.map +1 -1
  7. package/lib/common/connection.d.ts +47 -34
  8. package/lib/common/connection.d.ts.map +1 -1
  9. package/lib/common/connection.js +90 -28
  10. package/lib/common/connection.js.map +1 -1
  11. package/lib/common/plugin-api-rpc-model.d.ts +4 -0
  12. package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
  13. package/lib/common/plugin-api-rpc-model.js.map +1 -1
  14. package/lib/common/plugin-api-rpc.d.ts +30 -13
  15. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  16. package/lib/common/plugin-api-rpc.js +21 -1
  17. package/lib/common/plugin-api-rpc.js.map +1 -1
  18. package/lib/common/plugin-protocol.d.ts +3 -1
  19. package/lib/common/plugin-protocol.d.ts.map +1 -1
  20. package/lib/common/plugin-protocol.js.map +1 -1
  21. package/lib/hosted/browser/hosted-plugin.d.ts +5 -6
  22. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  23. package/lib/hosted/browser/hosted-plugin.js +20 -14
  24. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  25. package/lib/hosted/browser/worker/debug-stub.d.ts.map +1 -1
  26. package/lib/hosted/browser/worker/debug-stub.js +1 -0
  27. package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
  28. package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +1 -1
  29. package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts.map +1 -1
  30. package/lib/hosted/node/hosted-plugin-deployer-handler.js +14 -38
  31. package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
  32. package/lib/hosted/node/hosted-plugin-localization-service.d.ts +37 -0
  33. package/lib/hosted/node/hosted-plugin-localization-service.d.ts.map +1 -0
  34. package/lib/hosted/node/hosted-plugin-localization-service.js +197 -0
  35. package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -0
  36. package/lib/hosted/node/hosted-plugin-process.d.ts +2 -2
  37. package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
  38. package/lib/hosted/node/hosted-plugin-process.js +5 -7
  39. package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
  40. package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts.map +1 -1
  41. package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -0
  42. package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
  43. package/lib/hosted/node/plugin-manifest-loader.d.ts +1 -1
  44. package/lib/hosted/node/plugin-manifest-loader.d.ts.map +1 -1
  45. package/lib/hosted/node/plugin-manifest-loader.js +4 -52
  46. package/lib/hosted/node/plugin-manifest-loader.js.map +1 -1
  47. package/lib/hosted/node/plugin-service.d.ts +3 -6
  48. package/lib/hosted/node/plugin-service.d.ts.map +1 -1
  49. package/lib/hosted/node/plugin-service.js +7 -40
  50. package/lib/hosted/node/plugin-service.js.map +1 -1
  51. package/lib/hosted/node/scanners/scanner-theia.d.ts +1 -1
  52. package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
  53. package/lib/hosted/node/scanners/scanner-theia.js +6 -2
  54. package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
  55. package/lib/main/browser/callhierarchy/callhierarchy-type-converters.d.ts.map +1 -1
  56. package/lib/main/browser/callhierarchy/callhierarchy-type-converters.js +6 -2
  57. package/lib/main/browser/callhierarchy/callhierarchy-type-converters.js.map +1 -1
  58. package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +2 -2
  59. package/lib/main/browser/custom-editors/custom-editor-opener.d.ts.map +1 -1
  60. package/lib/main/browser/custom-editors/custom-editor-opener.js +6 -2
  61. package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
  62. package/lib/main/browser/custom-editors/custom-editors-main.d.ts.map +1 -1
  63. package/lib/main/browser/custom-editors/custom-editors-main.js +1 -2
  64. package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
  65. package/lib/main/browser/debug/debug-main.d.ts +3 -3
  66. package/lib/main/browser/debug/debug-main.d.ts.map +1 -1
  67. package/lib/main/browser/debug/debug-main.js +2 -3
  68. package/lib/main/browser/debug/debug-main.js.map +1 -1
  69. package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts +1 -1
  70. package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts.map +1 -1
  71. package/lib/main/browser/debug/plugin-debug-adapter-contribution.js +2 -2
  72. package/lib/main/browser/debug/plugin-debug-adapter-contribution.js.map +1 -1
  73. package/lib/main/browser/debug/plugin-debug-service.d.ts +8 -0
  74. package/lib/main/browser/debug/plugin-debug-service.d.ts.map +1 -1
  75. package/lib/main/browser/debug/plugin-debug-service.js +15 -0
  76. package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
  77. package/lib/main/browser/debug/plugin-debug-session-factory.d.ts +6 -6
  78. package/lib/main/browser/debug/plugin-debug-session-factory.d.ts.map +1 -1
  79. package/lib/main/browser/debug/plugin-debug-session-factory.js +1 -1
  80. package/lib/main/browser/debug/plugin-debug-session-factory.js.map +1 -1
  81. package/lib/main/browser/dialogs/modal-notification.d.ts +3 -3
  82. package/lib/main/browser/dialogs/modal-notification.d.ts.map +1 -1
  83. package/lib/main/browser/dialogs/modal-notification.js +17 -6
  84. package/lib/main/browser/dialogs/modal-notification.js.map +1 -1
  85. package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
  86. package/lib/main/browser/editors-and-documents-main.js +3 -4
  87. package/lib/main/browser/editors-and-documents-main.js.map +1 -1
  88. package/lib/main/browser/file-system-main-impl.js +1 -1
  89. package/lib/main/browser/file-system-main-impl.js.map +1 -1
  90. package/lib/main/browser/languages-main.js +1 -1
  91. package/lib/main/browser/languages-main.js.map +1 -1
  92. package/lib/main/browser/main-context.js +2 -2
  93. package/lib/main/browser/main-context.js.map +1 -1
  94. package/lib/main/browser/message-registry-main.js +1 -1
  95. package/lib/main/browser/message-registry-main.js.map +1 -1
  96. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  97. package/lib/main/browser/plugin-ext-frontend-module.js +5 -3
  98. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  99. package/lib/main/browser/quick-open-main.d.ts +3 -6
  100. package/lib/main/browser/quick-open-main.d.ts.map +1 -1
  101. package/lib/main/browser/quick-open-main.js +48 -100
  102. package/lib/main/browser/quick-open-main.js.map +1 -1
  103. package/lib/main/browser/tasks-main.d.ts.map +1 -1
  104. package/lib/main/browser/tasks-main.js +6 -0
  105. package/lib/main/browser/tasks-main.js.map +1 -1
  106. package/lib/main/browser/timeline-main.d.ts.map +1 -1
  107. package/lib/main/browser/timeline-main.js +1 -1
  108. package/lib/main/browser/timeline-main.js.map +1 -1
  109. package/lib/main/browser/view/plugin-view-registry.d.ts +3 -2
  110. package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
  111. package/lib/main/browser/view/plugin-view-registry.js +77 -26
  112. package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
  113. package/lib/main/browser/view/plugin-view-widget.d.ts +2 -0
  114. package/lib/main/browser/view/plugin-view-widget.d.ts.map +1 -1
  115. package/lib/main/browser/view/plugin-view-widget.js +3 -1
  116. package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
  117. package/lib/main/browser/view/tree-view-widget.d.ts +3 -7
  118. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  119. package/lib/main/browser/view/tree-view-widget.js +26 -39
  120. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  121. package/lib/main/browser/webview/webview-frontend-security-warnings.d.ts.map +1 -1
  122. package/lib/main/browser/webview/webview-frontend-security-warnings.js +8 -5
  123. package/lib/main/browser/webview/webview-frontend-security-warnings.js.map +1 -1
  124. package/lib/main/browser/webview/webview-preferences.d.ts.map +1 -1
  125. package/lib/main/browser/webview/webview-preferences.js +3 -2
  126. package/lib/main/browser/webview/webview-preferences.js.map +1 -1
  127. package/lib/main/browser/webview/webview.d.ts +1 -1
  128. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  129. package/lib/main/browser/webview/webview.js +2 -2
  130. package/lib/main/browser/webview/webview.js.map +1 -1
  131. package/lib/plugin/comments.d.ts.map +1 -1
  132. package/lib/plugin/comments.js +2 -3
  133. package/lib/plugin/comments.js.map +1 -1
  134. package/lib/plugin/custom-editors.d.ts +1 -2
  135. package/lib/plugin/custom-editors.d.ts.map +1 -1
  136. package/lib/plugin/custom-editors.js +2 -3
  137. package/lib/plugin/custom-editors.js.map +1 -1
  138. package/lib/plugin/decorations.d.ts.map +1 -1
  139. package/lib/plugin/decorations.js +2 -3
  140. package/lib/plugin/decorations.js.map +1 -1
  141. package/lib/plugin/document-data.d.ts.map +1 -1
  142. package/lib/plugin/document-data.js +1 -1
  143. package/lib/plugin/document-data.js.map +1 -1
  144. package/lib/plugin/documents.d.ts.map +1 -1
  145. package/lib/plugin/documents.js +1 -2
  146. package/lib/plugin/documents.js.map +1 -1
  147. package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
  148. package/lib/plugin/file-system-event-service-ext-impl.js +2 -3
  149. package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
  150. package/lib/plugin/file-system-ext-impl.d.ts.map +1 -1
  151. package/lib/plugin/file-system-ext-impl.js +12 -13
  152. package/lib/plugin/file-system-ext-impl.js.map +1 -1
  153. package/lib/plugin/known-commands.spec.js +1 -2
  154. package/lib/plugin/known-commands.spec.js.map +1 -1
  155. package/lib/plugin/languages/call-hierarchy.d.ts +1 -1
  156. package/lib/plugin/languages/call-hierarchy.d.ts.map +1 -1
  157. package/lib/plugin/languages/call-hierarchy.js +8 -3
  158. package/lib/plugin/languages/call-hierarchy.js.map +1 -1
  159. package/lib/plugin/languages/rename.d.ts +1 -2
  160. package/lib/plugin/languages/rename.d.ts.map +1 -1
  161. package/lib/plugin/languages/rename.js.map +1 -1
  162. package/lib/plugin/languages.d.ts +1 -1
  163. package/lib/plugin/languages.d.ts.map +1 -1
  164. package/lib/plugin/languages.js +2 -1
  165. package/lib/plugin/languages.js.map +1 -1
  166. package/lib/plugin/message-registry.d.ts.map +1 -1
  167. package/lib/plugin/message-registry.js +3 -0
  168. package/lib/plugin/message-registry.js.map +1 -1
  169. package/lib/plugin/node/debug/debug.d.ts +7 -6
  170. package/lib/plugin/node/debug/debug.d.ts.map +1 -1
  171. package/lib/plugin/node/debug/debug.js +37 -19
  172. package/lib/plugin/node/debug/debug.js.map +1 -1
  173. package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts +7 -7
  174. package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts.map +1 -1
  175. package/lib/plugin/node/debug/plugin-debug-adapter-session.js +6 -6
  176. package/lib/plugin/node/debug/plugin-debug-adapter-session.js.map +1 -1
  177. package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts +8 -4
  178. package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts.map +1 -1
  179. package/lib/plugin/node/debug/plugin-debug-adapter-starter.js +16 -13
  180. package/lib/plugin/node/debug/plugin-debug-adapter-starter.js.map +1 -1
  181. package/lib/plugin/plugin-context.d.ts.map +1 -1
  182. package/lib/plugin/plugin-context.js +10 -5
  183. package/lib/plugin/plugin-context.js.map +1 -1
  184. package/lib/plugin/plugin-manager.d.ts +2 -0
  185. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  186. package/lib/plugin/plugin-manager.js +24 -3
  187. package/lib/plugin/plugin-manager.js.map +1 -1
  188. package/lib/plugin/plugin-storage.d.ts +4 -0
  189. package/lib/plugin/plugin-storage.d.ts.map +1 -1
  190. package/lib/plugin/plugin-storage.js +6 -1
  191. package/lib/plugin/plugin-storage.js.map +1 -1
  192. package/lib/plugin/preference-registry.spec.js.map +1 -1
  193. package/lib/plugin/quick-open.d.ts +2 -4
  194. package/lib/plugin/quick-open.d.ts.map +1 -1
  195. package/lib/plugin/quick-open.js +12 -29
  196. package/lib/plugin/quick-open.js.map +1 -1
  197. package/lib/plugin/tasks/tasks.d.ts +1 -3
  198. package/lib/plugin/tasks/tasks.d.ts.map +1 -1
  199. package/lib/plugin/tasks/tasks.js +3 -17
  200. package/lib/plugin/tasks/tasks.js.map +1 -1
  201. package/lib/plugin/timeline.d.ts.map +1 -1
  202. package/lib/plugin/timeline.js +1 -2
  203. package/lib/plugin/timeline.js.map +1 -1
  204. package/lib/plugin/type-converters.d.ts.map +1 -1
  205. package/lib/plugin/type-converters.js +18 -11
  206. package/lib/plugin/type-converters.js.map +1 -1
  207. package/lib/plugin/types-impl.d.ts +55 -1
  208. package/lib/plugin/types-impl.d.ts.map +1 -1
  209. package/lib/plugin/types-impl.js +81 -1
  210. package/lib/plugin/types-impl.js.map +1 -1
  211. package/lib/plugin/webviews.d.ts +1 -2
  212. package/lib/plugin/webviews.d.ts.map +1 -1
  213. package/lib/plugin/webviews.js.map +1 -1
  214. package/package.json +31 -27
  215. package/src/common/arrays.ts +8 -0
  216. package/src/common/connection.ts +98 -42
  217. package/src/common/plugin-api-rpc-model.ts +4 -0
  218. package/src/common/plugin-api-rpc.ts +31 -12
  219. package/src/common/plugin-protocol.ts +3 -1
  220. package/src/hosted/browser/hosted-plugin.ts +20 -13
  221. package/src/hosted/browser/worker/debug-stub.ts +1 -0
  222. package/src/hosted/node/hosted-plugin-deployer-handler.ts +13 -40
  223. package/src/hosted/node/hosted-plugin-localization-service.ts +201 -0
  224. package/src/hosted/node/hosted-plugin-process.ts +4 -6
  225. package/src/hosted/node/plugin-ext-hosted-backend-module.ts +2 -0
  226. package/src/hosted/node/plugin-manifest-loader.ts +4 -56
  227. package/src/hosted/node/plugin-service.ts +7 -40
  228. package/src/hosted/node/scanners/scanner-theia.ts +7 -3
  229. package/src/main/browser/callhierarchy/callhierarchy-type-converters.ts +6 -2
  230. package/src/main/browser/custom-editors/custom-editor-opener.tsx +8 -4
  231. package/src/main/browser/custom-editors/custom-editors-main.ts +1 -2
  232. package/src/main/browser/debug/debug-main.ts +4 -5
  233. package/src/main/browser/debug/plugin-debug-adapter-contribution.ts +3 -3
  234. package/src/main/browser/debug/plugin-debug-service.ts +23 -0
  235. package/src/main/browser/debug/plugin-debug-session-factory.ts +6 -6
  236. package/src/main/browser/dialogs/modal-notification.ts +18 -7
  237. package/src/main/browser/dialogs/style/modal-notification.css +17 -2
  238. package/src/main/browser/editors-and-documents-main.ts +1 -2
  239. package/src/main/browser/file-system-main-impl.ts +1 -1
  240. package/src/main/browser/languages-main.ts +1 -1
  241. package/src/main/browser/main-context.ts +3 -3
  242. package/src/main/browser/message-registry-main.ts +1 -1
  243. package/src/main/browser/plugin-ext-frontend-module.ts +6 -4
  244. package/src/main/browser/quick-open-main.ts +54 -109
  245. package/src/main/browser/style/tree.css +4 -0
  246. package/src/main/browser/tasks-main.ts +7 -0
  247. package/src/main/browser/timeline-main.ts +1 -2
  248. package/src/main/browser/view/plugin-view-registry.ts +83 -28
  249. package/src/main/browser/view/plugin-view-widget.ts +7 -2
  250. package/src/main/browser/view/tree-view-widget.tsx +43 -65
  251. package/src/main/browser/webview/pre/host.js +20 -12
  252. package/src/main/browser/webview/pre/main.js +1 -2
  253. package/src/main/browser/webview/pre/service-worker.js +1 -1
  254. package/src/main/browser/webview/webview-frontend-security-warnings.ts +8 -7
  255. package/src/main/browser/webview/webview-preferences.ts +3 -2
  256. package/src/main/browser/webview/webview.ts +2 -2
  257. package/src/plugin/comments.ts +1 -2
  258. package/src/plugin/custom-editors.ts +2 -4
  259. package/src/plugin/decorations.ts +1 -2
  260. package/src/plugin/document-data.ts +1 -2
  261. package/src/plugin/documents.ts +1 -2
  262. package/src/plugin/file-system-event-service-ext-impl.ts +1 -2
  263. package/src/plugin/file-system-ext-impl.ts +1 -2
  264. package/src/plugin/known-commands.spec.ts +1 -2
  265. package/src/plugin/languages/call-hierarchy.ts +14 -5
  266. package/src/plugin/languages/rename.ts +1 -2
  267. package/src/plugin/languages.ts +5 -2
  268. package/src/plugin/message-registry.ts +3 -1
  269. package/src/plugin/node/debug/debug.ts +46 -26
  270. package/src/plugin/node/debug/plugin-debug-adapter-session.ts +9 -9
  271. package/src/plugin/node/debug/plugin-debug-adapter-starter.ts +17 -14
  272. package/src/plugin/plugin-context.ts +24 -12
  273. package/src/plugin/plugin-manager.ts +26 -4
  274. package/src/plugin/plugin-storage.ts +7 -2
  275. package/src/plugin/preference-registry.spec.ts +1 -2
  276. package/src/plugin/quick-open.ts +16 -36
  277. package/src/plugin/tasks/tasks.ts +4 -18
  278. package/src/plugin/timeline.ts +1 -2
  279. package/src/plugin/type-converters.ts +20 -13
  280. package/src/plugin/types-impl.ts +77 -1
  281. package/src/plugin/webviews.ts +1 -2
  282. package/lib/common/plugin-message-reader.d.ts +0 -46
  283. package/lib/common/plugin-message-reader.d.ts.map +0 -1
  284. package/lib/common/plugin-message-reader.js +0 -116
  285. package/lib/common/plugin-message-reader.js.map +0 -1
  286. package/lib/common/plugin-message-writer.d.ts +0 -38
  287. package/lib/common/plugin-message-writer.d.ts.map +0 -1
  288. package/lib/common/plugin-message-writer.js +0 -67
  289. package/lib/common/plugin-message-writer.js.map +0 -1
  290. package/lib/main/browser/connection-main.d.ts +0 -59
  291. package/lib/main/browser/connection-main.d.ts.map +0 -1
  292. package/lib/main/browser/connection-main.js +0 -98
  293. package/lib/main/browser/connection-main.js.map +0 -1
  294. package/lib/plugin/connection-ext.d.ts +0 -56
  295. package/lib/plugin/connection-ext.d.ts.map +0 -1
  296. package/lib/plugin/connection-ext.js +0 -88
  297. package/lib/plugin/connection-ext.js.map +0 -1
  298. package/src/common/plugin-message-reader.ts +0 -111
  299. package/src/common/plugin-message-writer.ts +0 -65
  300. package/src/main/browser/connection-main.ts +0 -107
  301. package/src/plugin/connection-ext.ts +0 -95
@@ -1,107 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (C) 2018 Red Hat, Inc. 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 WITH Classpath-exception-2.0
15
- ********************************************************************************/
16
-
17
- import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable';
18
- import { MAIN_RPC_CONTEXT, ConnectionMain, ConnectionExt } from '../../common/plugin-api-rpc';
19
- import { RPCProtocol } from '../../common/rpc-protocol';
20
- import { PluginConnection } from '../../common/connection';
21
- import { PluginMessageReader } from '../../common/plugin-message-reader';
22
- import { PluginMessageWriter } from '../../common/plugin-message-writer';
23
-
24
- /**
25
- * Implementation of connection system of the plugin API.
26
- * Creates holds the connections to the plugins. Allows to send a message to the plugin by getting already created connection via id.
27
- */
28
- export class ConnectionMainImpl implements ConnectionMain, Disposable {
29
-
30
- private readonly proxy: ConnectionExt;
31
- private readonly connections = new Map<string, PluginConnection>();
32
- private readonly toDispose = new DisposableCollection();
33
- constructor(rpc: RPCProtocol) {
34
- this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.CONNECTION_EXT);
35
- }
36
-
37
- dispose(): void {
38
- this.toDispose.dispose();
39
- }
40
-
41
- /**
42
- * Gets the connection between plugin by id and sends string message to it.
43
- *
44
- * @param id connection's id
45
- * @param message incoming message
46
- */
47
- async $sendMessage(id: string, message: string): Promise<void> {
48
- if (this.connections.has(id)) {
49
- this.connections.get(id)!.reader.readMessage(message);
50
- } else {
51
- console.warn('It is not possible to read message. Connection missed.');
52
- }
53
- }
54
-
55
- /**
56
- * Instantiates a new connection by the given id.
57
- * @param id the connection id
58
- */
59
- async $createConnection(id: string): Promise<void> {
60
- await this.doEnsureConnection(id);
61
- }
62
-
63
- /**
64
- * Deletes a connection.
65
- * @param id the connection id
66
- */
67
- async $deleteConnection(id: string): Promise<void> {
68
- this.connections.delete(id);
69
- }
70
-
71
- /**
72
- * Returns existed connection or creates a new one.
73
- * @param id the connection id
74
- */
75
- async ensureConnection(id: string): Promise<PluginConnection> {
76
- const connection = await this.doEnsureConnection(id);
77
- await this.proxy.$createConnection(id);
78
- return connection;
79
- }
80
-
81
- /**
82
- * Returns existed connection or creates a new one.
83
- * @param id the connection id
84
- */
85
- async doEnsureConnection(id: string): Promise<PluginConnection> {
86
- const connection = this.connections.get(id) || await this.doCreateConnection(id);
87
- this.connections.set(id, connection);
88
- return connection;
89
- }
90
-
91
- protected async doCreateConnection(id: string): Promise<PluginConnection> {
92
- const reader = new PluginMessageReader();
93
- const writer = new PluginMessageWriter(id, this.proxy);
94
- const connection = new PluginConnection(
95
- reader,
96
- writer,
97
- () => {
98
- this.connections.delete(id);
99
- if (!toClose.disposed) {
100
- this.proxy.$deleteConnection(id);
101
- }
102
- });
103
- const toClose = new DisposableCollection(Disposable.create(() => reader.fireClose()));
104
- this.toDispose.push(toClose);
105
- return connection;
106
- }
107
- }
@@ -1,95 +0,0 @@
1
- /********************************************************************************
2
- * Copyright (C) 2018 Red Hat, Inc. 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 WITH Classpath-exception-2.0
15
- ********************************************************************************/
16
-
17
- import { ConnectionExt, PLUGIN_RPC_CONTEXT, ConnectionMain } from '../common/plugin-api-rpc';
18
- import { RPCProtocol } from '../common/rpc-protocol';
19
- import { PluginConnection } from '../common/connection';
20
- import { PluginMessageReader } from '../common/plugin-message-reader';
21
- import { PluginMessageWriter } from '../common/plugin-message-writer';
22
-
23
- /**
24
- * Implementation of connection system of the plugin API.
25
- * It allows to communicate with main side to send and read messages.
26
- */
27
- export class ConnectionExtImpl implements ConnectionExt {
28
- private proxy: ConnectionMain;
29
- private connections = new Map<string, PluginConnection>();
30
- constructor(rpc: RPCProtocol) {
31
- this.proxy = rpc.getProxy(PLUGIN_RPC_CONTEXT.CONNECTION_MAIN);
32
- }
33
-
34
- /**
35
- * Gets the connection between plugin by id and sends string message to it.
36
- *
37
- * @param id connection's id
38
- * @param message incoming message
39
- */
40
- async $sendMessage(id: string, message: string): Promise<void> {
41
- if (this.connections.has(id)) {
42
- this.connections.get(id)!.reader.readMessage(message);
43
- } else {
44
- console.warn('It is not possible to read message. Connection missed.');
45
- }
46
- }
47
-
48
- /**
49
- * Instantiates a new connection by the given id.
50
- * @param id the connection id
51
- */
52
- async $createConnection(id: string): Promise<void> {
53
- await this.doEnsureConnection(id);
54
- }
55
-
56
- /**
57
- * Deletes a connection.
58
- * @param id the connection id
59
- */
60
- async $deleteConnection(id: string): Promise<void> {
61
- this.connections.delete(id);
62
- }
63
-
64
- /**
65
- * Returns existed connection or creates a new one.
66
- * @param id the connection id
67
- */
68
- async ensureConnection(id: string): Promise<PluginConnection> {
69
- const connection = await this.doEnsureConnection(id);
70
- this.proxy.$createConnection(id);
71
- return connection;
72
- }
73
-
74
- /**
75
- * Returns existed connection or creates a new one.
76
- * @param id the connection id
77
- */
78
- async doEnsureConnection(id: string): Promise<PluginConnection> {
79
- const connection = this.connections.get(id) || await this.doCreateConnection(id);
80
- this.connections.set(id, connection);
81
- return connection;
82
- }
83
-
84
- protected async doCreateConnection(id: string): Promise<PluginConnection> {
85
- const reader = new PluginMessageReader();
86
- const writer = new PluginMessageWriter(id, this.proxy);
87
- return new PluginConnection(
88
- reader,
89
- writer,
90
- () => {
91
- this.connections.delete(id);
92
- this.proxy.$deleteConnection(id);
93
- });
94
- }
95
- }