@theia/plugin-ext 1.45.1 → 1.46.0-next.137

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 (614) hide show
  1. package/lib/common/index.js +4 -13
  2. package/lib/common/index.js.map +1 -1
  3. package/lib/common/plugin-api-rpc-model.d.ts +1 -1
  4. package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
  5. package/lib/common/plugin-api-rpc.d.ts +69 -24
  6. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  7. package/lib/common/plugin-api-rpc.js +15 -2
  8. package/lib/common/plugin-api-rpc.js.map +1 -1
  9. package/lib/common/plugin-ext-api-contribution.d.ts +35 -5
  10. package/lib/common/plugin-ext-api-contribution.d.ts.map +1 -1
  11. package/lib/common/plugin-ext-api-contribution.js.map +1 -1
  12. package/lib/common/plugin-protocol.d.ts +15 -2
  13. package/lib/common/plugin-protocol.d.ts.map +1 -1
  14. package/lib/common/plugin-protocol.js +1 -0
  15. package/lib/common/plugin-protocol.js.map +1 -1
  16. package/lib/common/proxy-handler.d.ts +7 -0
  17. package/lib/common/proxy-handler.d.ts.map +1 -1
  18. package/lib/common/proxy-handler.js +5 -1
  19. package/lib/common/proxy-handler.js.map +1 -1
  20. package/lib/common/rpc-protocol.d.ts +10 -0
  21. package/lib/common/rpc-protocol.d.ts.map +1 -1
  22. package/lib/common/rpc-protocol.js +32 -3
  23. package/lib/common/rpc-protocol.js.map +1 -1
  24. package/lib/common/uri-components.d.ts +1 -2
  25. package/lib/common/uri-components.d.ts.map +1 -1
  26. package/lib/common/uri-components.js +1 -5
  27. package/lib/common/uri-components.js.map +1 -1
  28. package/lib/hosted/browser/hosted-plugin-watcher.js +2 -7
  29. package/lib/hosted/browser/hosted-plugin-watcher.js.map +1 -1
  30. package/lib/hosted/browser/hosted-plugin.d.ts +16 -74
  31. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  32. package/lib/hosted/browser/hosted-plugin.js +98 -378
  33. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  34. package/lib/hosted/browser/plugin-worker.js +3 -11
  35. package/lib/hosted/browser/plugin-worker.js.map +1 -1
  36. package/lib/hosted/browser/worker/debug-stub.d.ts +2 -2
  37. package/lib/hosted/browser/worker/debug-stub.d.ts.map +1 -1
  38. package/lib/hosted/browser/worker/debug-stub.js +3 -3
  39. package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
  40. package/lib/hosted/browser/worker/worker-env-ext.d.ts +1 -2
  41. package/lib/hosted/browser/worker/worker-env-ext.d.ts.map +1 -1
  42. package/lib/hosted/browser/worker/worker-env-ext.js +10 -4
  43. package/lib/hosted/browser/worker/worker-env-ext.js.map +1 -1
  44. package/lib/hosted/browser/worker/worker-main.js +20 -32
  45. package/lib/hosted/browser/worker/worker-main.js.map +1 -1
  46. package/lib/hosted/browser/worker/worker-plugin-module.d.ts +5 -0
  47. package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -0
  48. package/lib/hosted/browser/worker/worker-plugin-module.js +78 -0
  49. package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -0
  50. package/lib/hosted/common/hosted-plugin.d.ts +97 -0
  51. package/lib/hosted/common/hosted-plugin.d.ts.map +1 -0
  52. package/lib/hosted/common/hosted-plugin.js +400 -0
  53. package/lib/hosted/common/hosted-plugin.js.map +1 -0
  54. package/lib/hosted/node/hosted-plugin-cli-contribution.js +2 -7
  55. package/lib/hosted/node/hosted-plugin-cli-contribution.js.map +1 -1
  56. package/lib/hosted/node/hosted-plugin-deployer-handler.js +14 -22
  57. package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
  58. package/lib/hosted/node/hosted-plugin-localization-service.js +8 -16
  59. package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
  60. package/lib/hosted/node/hosted-plugin-process.d.ts +1 -1
  61. package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
  62. package/lib/hosted/node/hosted-plugin-process.js +16 -24
  63. package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
  64. package/lib/hosted/node/hosted-plugin.js +12 -20
  65. package/lib/hosted/node/hosted-plugin.js.map +1 -1
  66. package/lib/hosted/node/metadata-scanner.js +6 -17
  67. package/lib/hosted/node/metadata-scanner.js.map +1 -1
  68. package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts.map +1 -1
  69. package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -0
  70. package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
  71. package/lib/hosted/node/plugin-host-module.d.ts +5 -0
  72. package/lib/hosted/node/plugin-host-module.d.ts.map +1 -0
  73. package/lib/hosted/node/plugin-host-module.js +68 -0
  74. package/lib/hosted/node/plugin-host-module.js.map +1 -0
  75. package/lib/hosted/node/plugin-host-rpc.d.ts +93 -7
  76. package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
  77. package/lib/hosted/node/plugin-host-rpc.js +191 -53
  78. package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
  79. package/lib/hosted/node/plugin-host.js +6 -5
  80. package/lib/hosted/node/plugin-host.js.map +1 -1
  81. package/lib/hosted/node/plugin-language-pack-service.js +2 -7
  82. package/lib/hosted/node/plugin-language-pack-service.js.map +1 -1
  83. package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
  84. package/lib/hosted/node/plugin-reader.js +11 -16
  85. package/lib/hosted/node/plugin-reader.js.map +1 -1
  86. package/lib/hosted/node/plugin-service.d.ts +8 -0
  87. package/lib/hosted/node/plugin-service.d.ts.map +1 -1
  88. package/lib/hosted/node/plugin-service.js +34 -35
  89. package/lib/hosted/node/plugin-service.js.map +1 -1
  90. package/lib/hosted/node/scanners/file-plugin-uri-factory.js +3 -8
  91. package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
  92. package/lib/hosted/node/scanners/grammars-reader.js +2 -7
  93. package/lib/hosted/node/scanners/grammars-reader.js.map +1 -1
  94. package/lib/hosted/node/scanners/scanner-theia.d.ts +17 -3
  95. package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
  96. package/lib/hosted/node/scanners/scanner-theia.js +58 -31
  97. package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
  98. package/lib/hosted/node-electron/scanner-theia-electron.js +2 -7
  99. package/lib/hosted/node-electron/scanner-theia-electron.js.map +1 -1
  100. package/lib/main/browser/authentication-main.d.ts.map +1 -1
  101. package/lib/main/browser/authentication-main.js +3 -1
  102. package/lib/main/browser/authentication-main.js.map +1 -1
  103. package/lib/main/browser/command-registry-main.d.ts +1 -0
  104. package/lib/main/browser/command-registry-main.d.ts.map +1 -1
  105. package/lib/main/browser/command-registry-main.js +6 -1
  106. package/lib/main/browser/command-registry-main.js.map +1 -1
  107. package/lib/main/browser/commands.js +5 -16
  108. package/lib/main/browser/commands.js.map +1 -1
  109. package/lib/main/browser/comments/comments-context-key-service.js +8 -16
  110. package/lib/main/browser/comments/comments-context-key-service.js.map +1 -1
  111. package/lib/main/browser/comments/comments-contribution.d.ts.map +1 -1
  112. package/lib/main/browser/comments/comments-contribution.js +17 -25
  113. package/lib/main/browser/comments/comments-contribution.js.map +1 -1
  114. package/lib/main/browser/comments/comments-decorator.js +3 -11
  115. package/lib/main/browser/comments/comments-decorator.js.map +1 -1
  116. package/lib/main/browser/comments/comments-main.js +2 -2
  117. package/lib/main/browser/comments/comments-main.js.map +1 -1
  118. package/lib/main/browser/comments/comments-service.js +2 -7
  119. package/lib/main/browser/comments/comments-service.js.map +1 -1
  120. package/lib/main/browser/custom-editors/custom-editor-contribution.js +4 -12
  121. package/lib/main/browser/custom-editors/custom-editor-contribution.js.map +1 -1
  122. package/lib/main/browser/custom-editors/custom-editor-opener.js +7 -18
  123. package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
  124. package/lib/main/browser/custom-editors/custom-editor-service.js +2 -7
  125. package/lib/main/browser/custom-editors/custom-editor-service.js.map +1 -1
  126. package/lib/main/browser/custom-editors/custom-editor-widget.d.ts.map +1 -1
  127. package/lib/main/browser/custom-editors/custom-editor-widget.js +15 -21
  128. package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
  129. package/lib/main/browser/custom-editors/custom-editors-main.js +1 -1
  130. package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
  131. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +18 -26
  132. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js.map +1 -1
  133. package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts +2 -2
  134. package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts.map +1 -1
  135. package/lib/main/browser/data-transfer/data-transfer-type-converters.js +2 -4
  136. package/lib/main/browser/data-transfer/data-transfer-type-converters.js.map +1 -1
  137. package/lib/main/browser/debug/plugin-debug-service.js +10 -18
  138. package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
  139. package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +8 -16
  140. package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js.map +1 -1
  141. package/lib/main/browser/dialogs/modal-notification.js +3 -11
  142. package/lib/main/browser/dialogs/modal-notification.js.map +1 -1
  143. package/lib/main/browser/documents-main.d.ts +2 -1
  144. package/lib/main/browser/documents-main.d.ts.map +1 -1
  145. package/lib/main/browser/documents-main.js +2 -1
  146. package/lib/main/browser/documents-main.js.map +1 -1
  147. package/lib/main/browser/editors-and-documents-main.d.ts +5 -1
  148. package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
  149. package/lib/main/browser/editors-and-documents-main.js +22 -3
  150. package/lib/main/browser/editors-and-documents-main.js.map +1 -1
  151. package/lib/main/browser/env-main.d.ts +1 -10
  152. package/lib/main/browser/env-main.d.ts.map +1 -1
  153. package/lib/main/browser/env-main.js +2 -21
  154. package/lib/main/browser/env-main.js.map +1 -1
  155. package/lib/main/browser/file-system-main-impl.d.ts +2 -1
  156. package/lib/main/browser/file-system-main-impl.d.ts.map +1 -1
  157. package/lib/main/browser/file-system-main-impl.js +5 -3
  158. package/lib/main/browser/file-system-main-impl.js.map +1 -1
  159. package/lib/main/browser/keybindings/keybindings-contribution-handler.js +4 -12
  160. package/lib/main/browser/keybindings/keybindings-contribution-handler.js.map +1 -1
  161. package/lib/main/browser/languages-main.d.ts +2 -2
  162. package/lib/main/browser/languages-main.d.ts.map +1 -1
  163. package/lib/main/browser/languages-main.js +19 -28
  164. package/lib/main/browser/languages-main.js.map +1 -1
  165. package/lib/main/browser/main-context.d.ts.map +1 -1
  166. package/lib/main/browser/main-context.js +5 -13
  167. package/lib/main/browser/main-context.js.map +1 -1
  168. package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
  169. package/lib/main/browser/menus/menus-contribution-handler.js +29 -34
  170. package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
  171. package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts.map +1 -1
  172. package/lib/main/browser/menus/plugin-menu-command-adapter.js +20 -25
  173. package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
  174. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +2 -2
  175. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
  176. package/lib/main/browser/menus/vscode-theia-menu-mappings.js +11 -9
  177. package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
  178. package/lib/main/browser/message-registry-main.d.ts +6 -4
  179. package/lib/main/browser/message-registry-main.d.ts.map +1 -1
  180. package/lib/main/browser/message-registry-main.js +7 -19
  181. package/lib/main/browser/message-registry-main.js.map +1 -1
  182. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts +0 -1
  183. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts.map +1 -1
  184. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js +5 -7
  185. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js.map +1 -1
  186. package/lib/main/browser/notebooks/notebook-documents-main.d.ts +11 -5
  187. package/lib/main/browser/notebooks/notebook-documents-main.d.ts.map +1 -1
  188. package/lib/main/browser/notebooks/notebook-documents-main.js +11 -0
  189. package/lib/main/browser/notebooks/notebook-documents-main.js.map +1 -1
  190. package/lib/main/browser/notebooks/notebook-kernels-main.d.ts +1 -0
  191. package/lib/main/browser/notebooks/notebook-kernels-main.d.ts.map +1 -1
  192. package/lib/main/browser/notebooks/notebook-kernels-main.js +57 -14
  193. package/lib/main/browser/notebooks/notebook-kernels-main.js.map +1 -1
  194. package/lib/main/browser/notebooks/notebooks-main.d.ts +12 -10
  195. package/lib/main/browser/notebooks/notebooks-main.d.ts.map +1 -1
  196. package/lib/main/browser/notebooks/notebooks-main.js +36 -7
  197. package/lib/main/browser/notebooks/notebooks-main.js.map +1 -1
  198. package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +8 -2
  199. package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
  200. package/lib/main/browser/notebooks/renderers/cell-output-webview.js +120 -68
  201. package/lib/main/browser/notebooks/renderers/cell-output-webview.js.map +1 -1
  202. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts +1 -0
  203. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
  204. package/lib/main/browser/notebooks/renderers/output-webview-internal.js +103 -15
  205. package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
  206. package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +12 -3
  207. package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.map +1 -1
  208. package/lib/main/browser/notification-main.d.ts +2 -14
  209. package/lib/main/browser/notification-main.d.ts.map +1 -1
  210. package/lib/main/browser/notification-main.js +3 -52
  211. package/lib/main/browser/notification-main.js.map +1 -1
  212. package/lib/main/browser/output-channel-registry-main.js +4 -12
  213. package/lib/main/browser/output-channel-registry-main.js.map +1 -1
  214. package/lib/main/browser/plugin-authentication-service.js +3 -11
  215. package/lib/main/browser/plugin-authentication-service.js.map +1 -1
  216. package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
  217. package/lib/main/browser/plugin-contribution-handler.js +66 -69
  218. package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
  219. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  220. package/lib/main/browser/plugin-ext-frontend-module.js +6 -1
  221. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  222. package/lib/main/browser/plugin-ext-widget.js +11 -19
  223. package/lib/main/browser/plugin-ext-widget.js.map +1 -1
  224. package/lib/main/browser/plugin-frontend-contribution.js +4 -12
  225. package/lib/main/browser/plugin-frontend-contribution.js.map +1 -1
  226. package/lib/main/browser/plugin-frontend-view-contribution.js +3 -11
  227. package/lib/main/browser/plugin-frontend-view-contribution.js.map +1 -1
  228. package/lib/main/browser/plugin-icon-service.d.ts +2 -5
  229. package/lib/main/browser/plugin-icon-service.d.ts.map +1 -1
  230. package/lib/main/browser/plugin-icon-service.js +10 -77
  231. package/lib/main/browser/plugin-icon-service.js.map +1 -1
  232. package/lib/main/browser/plugin-icon-theme-service.js +22 -30
  233. package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
  234. package/lib/main/browser/plugin-shared-style.js +8 -16
  235. package/lib/main/browser/plugin-shared-style.js.map +1 -1
  236. package/lib/main/browser/plugin-terminal-registry.js +2 -7
  237. package/lib/main/browser/plugin-terminal-registry.js.map +1 -1
  238. package/lib/main/browser/quick-open-main.d.ts +8 -7
  239. package/lib/main/browser/quick-open-main.d.ts.map +1 -1
  240. package/lib/main/browser/quick-open-main.js +57 -17
  241. package/lib/main/browser/quick-open-main.js.map +1 -1
  242. package/lib/main/browser/scm-main.js +3 -3
  243. package/lib/main/browser/scm-main.js.map +1 -1
  244. package/lib/main/browser/selection-provider-command.d.ts.map +1 -1
  245. package/lib/main/browser/selection-provider-command.js +5 -14
  246. package/lib/main/browser/selection-provider-command.js.map +1 -1
  247. package/lib/main/browser/terminal-main.d.ts +12 -2
  248. package/lib/main/browser/terminal-main.d.ts.map +1 -1
  249. package/lib/main/browser/terminal-main.js +39 -2
  250. package/lib/main/browser/terminal-main.js.map +1 -1
  251. package/lib/main/browser/test-main.d.ts +3 -1
  252. package/lib/main/browser/test-main.d.ts.map +1 -1
  253. package/lib/main/browser/test-main.js +29 -30
  254. package/lib/main/browser/test-main.js.map +1 -1
  255. package/lib/main/browser/text-editor-main.d.ts.map +1 -1
  256. package/lib/main/browser/text-editor-main.js +6 -0
  257. package/lib/main/browser/text-editor-main.js.map +1 -1
  258. package/lib/main/browser/text-editor-model-service.js +5 -16
  259. package/lib/main/browser/text-editor-model-service.js.map +1 -1
  260. package/lib/main/browser/text-editors-main.d.ts +7 -7
  261. package/lib/main/browser/text-editors-main.d.ts.map +1 -1
  262. package/lib/main/browser/text-editors-main.js +30 -12
  263. package/lib/main/browser/text-editors-main.js.map +1 -1
  264. package/lib/main/browser/theme-icon-override.js +13 -19
  265. package/lib/main/browser/theme-icon-override.js.map +1 -1
  266. package/lib/main/browser/view/dnd-file-content-store.js +2 -7
  267. package/lib/main/browser/view/dnd-file-content-store.js.map +1 -1
  268. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +8 -16
  269. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
  270. package/lib/main/browser/view/plugin-view-registry.d.ts +2 -0
  271. package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
  272. package/lib/main/browser/view/plugin-view-registry.js +53 -45
  273. package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
  274. package/lib/main/browser/view/plugin-view-widget.d.ts.map +1 -1
  275. package/lib/main/browser/view/plugin-view-widget.js +16 -25
  276. package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
  277. package/lib/main/browser/view/tree-view-decorator-service.js +6 -17
  278. package/lib/main/browser/view/tree-view-decorator-service.js.map +1 -1
  279. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  280. package/lib/main/browser/view/tree-view-widget.js +41 -50
  281. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  282. package/lib/main/browser/view/view-context-key-service.js +8 -16
  283. package/lib/main/browser/view/view-context-key-service.js.map +1 -1
  284. package/lib/main/browser/view-column-service.js +4 -15
  285. package/lib/main/browser/view-column-service.js.map +1 -1
  286. package/lib/main/browser/webview/webview-context-keys.d.ts +5 -1
  287. package/lib/main/browser/webview/webview-context-keys.d.ts.map +1 -1
  288. package/lib/main/browser/webview/webview-context-keys.js +23 -22
  289. package/lib/main/browser/webview/webview-context-keys.js.map +1 -1
  290. package/lib/main/browser/webview/webview-environment.js +8 -16
  291. package/lib/main/browser/webview/webview-environment.js.map +1 -1
  292. package/lib/main/browser/webview/webview-frontend-security-warnings.js +8 -16
  293. package/lib/main/browser/webview/webview-frontend-security-warnings.js.map +1 -1
  294. package/lib/main/browser/webview/webview-resource-cache.js +3 -11
  295. package/lib/main/browser/webview/webview-resource-cache.js.map +1 -1
  296. package/lib/main/browser/webview/webview-secondary-window-support.d.ts +8 -0
  297. package/lib/main/browser/webview/webview-secondary-window-support.d.ts.map +1 -0
  298. package/lib/main/browser/webview/webview-secondary-window-support.js +52 -0
  299. package/lib/main/browser/webview/webview-secondary-window-support.js.map +1 -0
  300. package/lib/main/browser/webview/webview-theme-data-provider.js +14 -22
  301. package/lib/main/browser/webview/webview-theme-data-provider.js.map +1 -1
  302. package/lib/main/browser/webview/webview-widget-factory.d.ts.map +1 -1
  303. package/lib/main/browser/webview/webview-widget-factory.js +2 -1
  304. package/lib/main/browser/webview/webview-widget-factory.js.map +1 -1
  305. package/lib/main/browser/webview/webview.d.ts +1 -0
  306. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  307. package/lib/main/browser/webview/webview.js +38 -45
  308. package/lib/main/browser/webview/webview.js.map +1 -1
  309. package/lib/main/browser/webview-views/webview-views-main.js +3 -11
  310. package/lib/main/browser/webview-views/webview-views-main.js.map +1 -1
  311. package/lib/main/browser/webviews-main.d.ts.map +1 -1
  312. package/lib/main/browser/webviews-main.js +7 -2
  313. package/lib/main/browser/webviews-main.js.map +1 -1
  314. package/lib/main/browser/workspace-main.js +2 -7
  315. package/lib/main/browser/workspace-main.js.map +1 -1
  316. package/lib/main/common/basic-message-registry-main.d.ts +14 -0
  317. package/lib/main/common/basic-message-registry-main.d.ts.map +1 -0
  318. package/lib/main/common/basic-message-registry-main.js +50 -0
  319. package/lib/main/common/basic-message-registry-main.js.map +1 -0
  320. package/lib/main/common/basic-notification-main.d.ts +19 -0
  321. package/lib/main/common/basic-notification-main.d.ts.map +1 -0
  322. package/lib/main/common/basic-notification-main.js +75 -0
  323. package/lib/main/common/basic-notification-main.js.map +1 -0
  324. package/lib/main/common/env-main.d.ts +11 -0
  325. package/lib/main/common/env-main.d.ts.map +1 -0
  326. package/lib/main/common/env-main.js +40 -0
  327. package/lib/main/common/env-main.js.map +1 -0
  328. package/lib/main/common/plugin-theia-environment.js +4 -12
  329. package/lib/main/common/plugin-theia-environment.js.map +1 -1
  330. package/lib/main/node/errors.spec.js +2 -2
  331. package/lib/main/node/errors.spec.js.map +1 -1
  332. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +8 -3
  333. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts.map +1 -1
  334. package/lib/main/node/handlers/plugin-theia-directory-handler.js +42 -32
  335. package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
  336. package/lib/main/node/handlers/plugin-theia-file-handler.js +6 -14
  337. package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
  338. package/lib/main/node/paths/plugin-paths-service.js +10 -18
  339. package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
  340. package/lib/main/node/plugin-cli-contribution.js +2 -7
  341. package/lib/main/node/plugin-cli-contribution.js.map +1 -1
  342. package/lib/main/node/plugin-deployer-contribution.js +6 -14
  343. package/lib/main/node/plugin-deployer-contribution.js.map +1 -1
  344. package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
  345. package/lib/main/node/plugin-deployer-impl.js +23 -27
  346. package/lib/main/node/plugin-deployer-impl.js.map +1 -1
  347. package/lib/main/node/plugin-deployer-proxy-entry-impl.js +3 -11
  348. package/lib/main/node/plugin-deployer-proxy-entry-impl.js.map +1 -1
  349. package/lib/main/node/plugin-github-resolver.js +5 -13
  350. package/lib/main/node/plugin-github-resolver.js.map +1 -1
  351. package/lib/main/node/plugin-http-resolver.js +5 -13
  352. package/lib/main/node/plugin-http-resolver.js.map +1 -1
  353. package/lib/main/node/plugin-localization-server.js +4 -12
  354. package/lib/main/node/plugin-localization-server.js.map +1 -1
  355. package/lib/main/node/plugin-mgmt-cli-contribution.js +4 -12
  356. package/lib/main/node/plugin-mgmt-cli-contribution.js.map +1 -1
  357. package/lib/main/node/plugin-server-handler.js +6 -14
  358. package/lib/main/node/plugin-server-handler.js.map +1 -1
  359. package/lib/main/node/plugin-service.js +10 -18
  360. package/lib/main/node/plugin-service.js.map +1 -1
  361. package/lib/main/node/plugin-theia-deployer-participant.js +4 -12
  362. package/lib/main/node/plugin-theia-deployer-participant.js.map +1 -1
  363. package/lib/main/node/plugin-uninstallation-manager.js +2 -7
  364. package/lib/main/node/plugin-uninstallation-manager.js.map +1 -1
  365. package/lib/main/node/plugins-key-value-storage.js +13 -21
  366. package/lib/main/node/plugins-key-value-storage.js.map +1 -1
  367. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +2 -7
  368. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
  369. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +2 -7
  370. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
  371. package/lib/main/node/webview-backend-security-warnings.js +2 -7
  372. package/lib/main/node/webview-backend-security-warnings.js.map +1 -1
  373. package/lib/plugin/clipboard-ext.d.ts +3 -2
  374. package/lib/plugin/clipboard-ext.d.ts.map +1 -1
  375. package/lib/plugin/clipboard-ext.js +20 -4
  376. package/lib/plugin/clipboard-ext.js.map +1 -1
  377. package/lib/plugin/custom-editors.js +1 -1
  378. package/lib/plugin/custom-editors.js.map +1 -1
  379. package/lib/plugin/debug/debug-ext.d.ts +3 -1
  380. package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
  381. package/lib/plugin/debug/debug-ext.js +25 -6
  382. package/lib/plugin/debug/debug-ext.js.map +1 -1
  383. package/lib/plugin/dialogs.js +1 -1
  384. package/lib/plugin/dialogs.js.map +1 -1
  385. package/lib/plugin/documents.js +2 -2
  386. package/lib/plugin/documents.js.map +1 -1
  387. package/lib/plugin/editors-and-documents.d.ts +1 -2
  388. package/lib/plugin/editors-and-documents.d.ts.map +1 -1
  389. package/lib/plugin/editors-and-documents.js +13 -4
  390. package/lib/plugin/editors-and-documents.js.map +1 -1
  391. package/lib/plugin/env.d.ts +6 -2
  392. package/lib/plugin/env.d.ts.map +1 -1
  393. package/lib/plugin/env.js +32 -7
  394. package/lib/plugin/env.js.map +1 -1
  395. package/lib/plugin/file-system-ext-impl.d.ts +2 -1
  396. package/lib/plugin/file-system-ext-impl.d.ts.map +1 -1
  397. package/lib/plugin/file-system-ext-impl.js +13 -1
  398. package/lib/plugin/file-system-ext-impl.js.map +1 -1
  399. package/lib/plugin/known-commands.d.ts.map +1 -1
  400. package/lib/plugin/known-commands.js +1 -0
  401. package/lib/plugin/known-commands.js.map +1 -1
  402. package/lib/plugin/languages/diagnostics.js +2 -2
  403. package/lib/plugin/languages/diagnostics.js.map +1 -1
  404. package/lib/plugin/languages/link-provider.d.ts.map +1 -1
  405. package/lib/plugin/languages/link-provider.js +3 -1
  406. package/lib/plugin/languages/link-provider.js.map +1 -1
  407. package/lib/plugin/localization-ext.d.ts +3 -2
  408. package/lib/plugin/localization-ext.d.ts.map +1 -1
  409. package/lib/plugin/localization-ext.js +22 -4
  410. package/lib/plugin/localization-ext.js.map +1 -1
  411. package/lib/plugin/markdown-string.d.ts +3 -3
  412. package/lib/plugin/markdown-string.d.ts.map +1 -1
  413. package/lib/plugin/markdown-string.js +17 -36
  414. package/lib/plugin/markdown-string.js.map +1 -1
  415. package/lib/plugin/message-registry.d.ts +2 -1
  416. package/lib/plugin/message-registry.d.ts.map +1 -1
  417. package/lib/plugin/message-registry.js +20 -4
  418. package/lib/plugin/message-registry.js.map +1 -1
  419. package/lib/plugin/node/debug/debug.spec.js +21 -1
  420. package/lib/plugin/node/debug/debug.spec.js.map +1 -1
  421. package/lib/plugin/node/env-node-ext.d.ts +1 -6
  422. package/lib/plugin/node/env-node-ext.d.ts.map +1 -1
  423. package/lib/plugin/node/env-node-ext.js +12 -12
  424. package/lib/plugin/node/env-node-ext.js.map +1 -1
  425. package/lib/plugin/node/plugin-container-module.d.ts +75 -0
  426. package/lib/plugin/node/plugin-container-module.d.ts.map +1 -0
  427. package/lib/plugin/node/plugin-container-module.js +115 -0
  428. package/lib/plugin/node/plugin-container-module.js.map +1 -0
  429. package/lib/plugin/notebook/notebook-document.d.ts.map +1 -1
  430. package/lib/plugin/notebook/notebook-document.js +16 -0
  431. package/lib/plugin/notebook/notebook-document.js.map +1 -1
  432. package/lib/plugin/notebook/notebook-kernels.d.ts +9 -7
  433. package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
  434. package/lib/plugin/notebook/notebook-kernels.js +38 -28
  435. package/lib/plugin/notebook/notebook-kernels.js.map +1 -1
  436. package/lib/plugin/notebook/notebook-renderers.d.ts.map +1 -1
  437. package/lib/plugin/notebook/notebook-renderers.js.map +1 -1
  438. package/lib/plugin/notebook/notebooks.d.ts +1 -0
  439. package/lib/plugin/notebook/notebooks.d.ts.map +1 -1
  440. package/lib/plugin/notebook/notebooks.js +37 -1
  441. package/lib/plugin/notebook/notebooks.js.map +1 -1
  442. package/lib/plugin/plugin-context.d.ts.map +1 -1
  443. package/lib/plugin/plugin-context.js +32 -23
  444. package/lib/plugin/plugin-context.js.map +1 -1
  445. package/lib/plugin/plugin-manager.d.ts +26 -17
  446. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  447. package/lib/plugin/plugin-manager.js +99 -37
  448. package/lib/plugin/plugin-manager.js.map +1 -1
  449. package/lib/plugin/plugin-storage.d.ts +11 -3
  450. package/lib/plugin/plugin-storage.d.ts.map +1 -1
  451. package/lib/plugin/plugin-storage.js +14 -5
  452. package/lib/plugin/plugin-storage.js.map +1 -1
  453. package/lib/plugin/preference-registry.d.ts +3 -2
  454. package/lib/plugin/preference-registry.d.ts.map +1 -1
  455. package/lib/plugin/preference-registry.js +33 -11
  456. package/lib/plugin/preference-registry.js.map +1 -1
  457. package/lib/plugin/preference-registry.spec.js +8 -1
  458. package/lib/plugin/preference-registry.spec.js.map +1 -1
  459. package/lib/plugin/quick-open.d.ts +2 -9
  460. package/lib/plugin/quick-open.d.ts.map +1 -1
  461. package/lib/plugin/quick-open.js +9 -26
  462. package/lib/plugin/quick-open.js.map +1 -1
  463. package/lib/plugin/secrets-ext.d.ts +16 -7
  464. package/lib/plugin/secrets-ext.d.ts.map +1 -1
  465. package/lib/plugin/secrets-ext.js +12 -3
  466. package/lib/plugin/secrets-ext.js.map +1 -1
  467. package/lib/plugin/terminal-ext.d.ts +4 -1
  468. package/lib/plugin/terminal-ext.d.ts.map +1 -1
  469. package/lib/plugin/terminal-ext.js +36 -8
  470. package/lib/plugin/terminal-ext.js.map +1 -1
  471. package/lib/plugin/test-item.js +17 -25
  472. package/lib/plugin/test-item.js.map +1 -1
  473. package/lib/plugin/tests.d.ts +8 -1
  474. package/lib/plugin/tests.d.ts.map +1 -1
  475. package/lib/plugin/tests.js +35 -21
  476. package/lib/plugin/tests.js.map +1 -1
  477. package/lib/plugin/text-editors.d.ts +2 -0
  478. package/lib/plugin/text-editors.d.ts.map +1 -1
  479. package/lib/plugin/text-editors.js +6 -0
  480. package/lib/plugin/text-editors.js.map +1 -1
  481. package/lib/plugin/type-converters.d.ts +10 -1
  482. package/lib/plugin/type-converters.d.ts.map +1 -1
  483. package/lib/plugin/type-converters.js +52 -12
  484. package/lib/plugin/type-converters.js.map +1 -1
  485. package/lib/plugin/types-impl.d.ts +26 -5
  486. package/lib/plugin/types-impl.d.ts.map +1 -1
  487. package/lib/plugin/types-impl.js +188 -184
  488. package/lib/plugin/types-impl.js.map +1 -1
  489. package/lib/plugin/webview-views.d.ts.map +1 -1
  490. package/lib/plugin/webview-views.js +2 -1
  491. package/lib/plugin/webview-views.js.map +1 -1
  492. package/lib/plugin/webviews.d.ts +23 -6
  493. package/lib/plugin/webviews.d.ts.map +1 -1
  494. package/lib/plugin/webviews.js +64 -15
  495. package/lib/plugin/webviews.js.map +1 -1
  496. package/lib/plugin/workspace.d.ts +4 -3
  497. package/lib/plugin/workspace.d.ts.map +1 -1
  498. package/lib/plugin/workspace.js +32 -6
  499. package/lib/plugin/workspace.js.map +1 -1
  500. package/package.json +31 -31
  501. package/src/common/plugin-api-rpc-model.ts +1 -1
  502. package/src/common/plugin-api-rpc.ts +75 -26
  503. package/src/common/plugin-ext-api-contribution.ts +38 -5
  504. package/src/common/plugin-protocol.ts +19 -3
  505. package/src/common/proxy-handler.ts +14 -1
  506. package/src/common/rpc-protocol.ts +41 -3
  507. package/src/common/uri-components.ts +1 -5
  508. package/src/hosted/browser/hosted-plugin.ts +49 -338
  509. package/src/hosted/browser/worker/debug-stub.ts +4 -3
  510. package/src/hosted/browser/worker/worker-env-ext.ts +5 -4
  511. package/src/hosted/browser/worker/worker-main.ts +103 -115
  512. package/src/hosted/browser/worker/worker-plugin-module.ts +80 -0
  513. package/src/hosted/common/hosted-plugin.ts +456 -0
  514. package/src/hosted/node/hosted-plugin-deployer-handler.ts +2 -2
  515. package/src/hosted/node/hosted-plugin-process.ts +4 -4
  516. package/src/hosted/node/plugin-ext-hosted-backend-module.ts +3 -1
  517. package/src/hosted/node/plugin-host-module.ts +69 -0
  518. package/src/hosted/node/plugin-host-rpc.ts +232 -73
  519. package/src/hosted/node/plugin-host.ts +9 -7
  520. package/src/hosted/node/plugin-reader.ts +3 -0
  521. package/src/hosted/node/plugin-service.ts +21 -4
  522. package/src/hosted/node/scanners/file-plugin-uri-factory.ts +1 -1
  523. package/src/hosted/node/scanners/scanner-theia.ts +54 -14
  524. package/src/main/browser/authentication-main.ts +3 -1
  525. package/src/main/browser/command-registry-main.ts +7 -0
  526. package/src/main/browser/comments/comments-contribution.ts +7 -3
  527. package/src/main/browser/comments/comments-main.ts +2 -2
  528. package/src/main/browser/custom-editors/custom-editor-opener.tsx +2 -2
  529. package/src/main/browser/custom-editors/custom-editor-widget.ts +3 -1
  530. package/src/main/browser/custom-editors/custom-editors-main.ts +1 -1
  531. package/src/main/browser/data-transfer/data-transfer-type-converters.ts +4 -6
  532. package/src/main/browser/documents-main.ts +4 -0
  533. package/src/main/browser/editors-and-documents-main.ts +27 -5
  534. package/src/main/browser/env-main.ts +1 -28
  535. package/src/main/browser/file-system-main-impl.ts +9 -5
  536. package/src/main/browser/languages-main.ts +9 -6
  537. package/src/main/browser/main-context.ts +7 -13
  538. package/src/main/browser/menus/menus-contribution-handler.ts +9 -4
  539. package/src/main/browser/menus/plugin-menu-command-adapter.ts +4 -1
  540. package/src/main/browser/menus/vscode-theia-menu-mappings.ts +10 -2
  541. package/src/main/browser/message-registry-main.ts +10 -23
  542. package/src/main/browser/notebooks/notebook-documents-and-editors-main.ts +5 -8
  543. package/src/main/browser/notebooks/notebook-documents-main.ts +20 -5
  544. package/src/main/browser/notebooks/notebook-kernels-main.ts +61 -15
  545. package/src/main/browser/notebooks/notebooks-main.ts +41 -12
  546. package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +117 -47
  547. package/src/main/browser/notebooks/renderers/output-webview-internal.ts +123 -15
  548. package/src/main/browser/notebooks/renderers/webview-communication.ts +14 -3
  549. package/src/main/browser/notification-main.ts +4 -64
  550. package/src/main/browser/plugin-contribution-handler.ts +9 -1
  551. package/src/main/browser/plugin-ext-frontend-module.ts +9 -2
  552. package/src/main/browser/plugin-icon-service.ts +8 -72
  553. package/src/main/browser/quick-open-main.ts +82 -30
  554. package/src/main/browser/scm-main.ts +1 -1
  555. package/src/main/browser/selection-provider-command.ts +1 -2
  556. package/src/main/browser/terminal-main.ts +48 -2
  557. package/src/main/browser/test-main.ts +11 -2
  558. package/src/main/browser/text-editor-main.ts +7 -1
  559. package/src/main/browser/text-editors-main.ts +40 -13
  560. package/src/main/browser/theme-icon-override.ts +13 -19
  561. package/src/main/browser/view/plugin-tree-view-node-label-provider.ts +1 -1
  562. package/src/main/browser/view/plugin-view-registry.ts +26 -8
  563. package/src/main/browser/view/plugin-view-widget.ts +0 -1
  564. package/src/main/browser/view/tree-view-widget.tsx +2 -3
  565. package/src/main/browser/webview/pre/main.js +2 -2
  566. package/src/main/browser/webview/webview-context-keys.ts +17 -4
  567. package/src/main/browser/webview/webview-secondary-window-support.ts +47 -0
  568. package/src/main/browser/webview/webview-widget-factory.ts +2 -1
  569. package/src/main/browser/webview/webview.ts +2 -0
  570. package/src/main/browser/webviews-main.ts +7 -2
  571. package/src/main/common/basic-message-registry-main.ts +53 -0
  572. package/src/main/common/basic-notification-main.ts +86 -0
  573. package/src/main/common/env-main.ts +44 -0
  574. package/src/main/node/errors.spec.ts +2 -2
  575. package/src/main/node/handlers/plugin-theia-directory-handler.ts +38 -16
  576. package/src/main/node/handlers/plugin-theia-file-handler.ts +1 -1
  577. package/src/main/node/plugin-deployer-impl.ts +5 -1
  578. package/src/main/node/plugins-key-value-storage.ts +1 -1
  579. package/src/plugin/clipboard-ext.ts +9 -3
  580. package/src/plugin/custom-editors.ts +1 -1
  581. package/src/plugin/debug/debug-ext.ts +13 -4
  582. package/src/plugin/dialogs.ts +1 -1
  583. package/src/plugin/documents.ts +2 -2
  584. package/src/plugin/editors-and-documents.ts +5 -3
  585. package/src/plugin/env.ts +22 -6
  586. package/src/plugin/file-system-ext-impl.ts +15 -2
  587. package/src/plugin/known-commands.ts +1 -0
  588. package/src/plugin/languages/diagnostics.ts +2 -2
  589. package/src/plugin/languages/link-provider.ts +3 -1
  590. package/src/plugin/localization-ext.ts +8 -3
  591. package/src/plugin/markdown-string.ts +3 -3
  592. package/src/plugin/message-registry.ts +7 -2
  593. package/src/plugin/node/debug/debug.spec.ts +5 -1
  594. package/src/plugin/node/env-node-ext.ts +7 -12
  595. package/src/plugin/node/plugin-container-module.ts +165 -0
  596. package/src/plugin/notebook/notebook-document.ts +14 -1
  597. package/src/plugin/notebook/notebook-kernels.ts +45 -32
  598. package/src/plugin/notebook/notebook-renderers.ts +0 -1
  599. package/src/plugin/notebook/notebooks.ts +39 -2
  600. package/src/plugin/plugin-context.ts +30 -6
  601. package/src/plugin/plugin-manager.ts +99 -45
  602. package/src/plugin/plugin-storage.ts +22 -4
  603. package/src/plugin/preference-registry.spec.ts +6 -1
  604. package/src/plugin/preference-registry.ts +17 -11
  605. package/src/plugin/quick-open.ts +13 -28
  606. package/src/plugin/secrets-ext.ts +25 -5
  607. package/src/plugin/terminal-ext.ts +26 -5
  608. package/src/plugin/tests.ts +33 -4
  609. package/src/plugin/text-editors.ts +9 -2
  610. package/src/plugin/type-converters.ts +49 -13
  611. package/src/plugin/types-impl.ts +36 -7
  612. package/src/plugin/webview-views.ts +2 -1
  613. package/src/plugin/webviews.ts +51 -16
  614. package/src/plugin/workspace.ts +14 -4
@@ -15,15 +15,21 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import * as theia from '@theia/plugin';
18
+ import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
18
19
  import { RPCProtocol } from '../common/rpc-protocol';
19
20
  import { PLUGIN_RPC_CONTEXT, ClipboardMain } from '../common';
20
21
 
22
+ @injectable()
21
23
  export class ClipboardExt implements theia.Clipboard {
22
24
 
23
- protected readonly proxy: ClipboardMain;
25
+ @inject(RPCProtocol)
26
+ protected readonly rpc: RPCProtocol;
24
27
 
25
- constructor(rpc: RPCProtocol) {
26
- this.proxy = rpc.getProxy(PLUGIN_RPC_CONTEXT.CLIPBOARD_MAIN);
28
+ protected proxy: ClipboardMain;
29
+
30
+ @postConstruct()
31
+ initialize(): void {
32
+ this.proxy = this.rpc.getProxy(PLUGIN_RPC_CONTEXT.CLIPBOARD_MAIN);
27
33
  }
28
34
 
29
35
  readText(): Promise<string> {
@@ -129,7 +129,7 @@ export class CustomEditorsExtImpl implements CustomEditorsExt {
129
129
  if (!entry) {
130
130
  throw new Error(`No provider found for '${viewType}'`);
131
131
  }
132
- const panel = this.webviewExt.createWebviewPanel(viewType, title, {}, options, entry.plugin, handler);
132
+ const panel = this.webviewExt.createWebviewPanel(viewType, title, {}, options, entry.plugin, handler, false);
133
133
  const webviewOptions = WebviewImpl.toWebviewOptions(options, this.workspace, entry.plugin);
134
134
  await this.proxy.$createCustomEditorPanel(handler, title, widgetOpenerOptions, webviewOptions);
135
135
 
@@ -13,6 +13,7 @@
13
13
  //
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
+ import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
16
17
  import { Emitter } from '@theia/core/lib/common/event';
17
18
  import { Path } from '@theia/core/lib/common/path';
18
19
  import * as theia from '@theia/plugin';
@@ -27,7 +28,7 @@ import { DEBUG_SCHEME, SCHEME_PATTERN } from '@theia/debug/lib/common/debug-uri-
27
28
  import { Disposable, Breakpoint as BreakpointExt, SourceBreakpoint, FunctionBreakpoint, Location, Range, URI as URIImpl } from '../types-impl';
28
29
  import { PluginDebugAdapterSession } from './plugin-debug-adapter-session';
29
30
  import { PluginDebugAdapterTracker } from './plugin-debug-adapter-tracker';
30
- import uuid = require('uuid');
31
+ import { generateUuid } from '@theia/core/lib/common/uuid';
31
32
  import { DebugAdapter } from '@theia/debug/lib/common/debug-model';
32
33
  import { PluginDebugAdapterCreator } from './plugin-debug-adapter-creator';
33
34
  import { NodeDebugAdapterCreator } from '../node/debug/plugin-node-debug-adapter-creator';
@@ -43,7 +44,11 @@ interface ConfigurationProviderRecord {
43
44
 
44
45
  /* eslint-disable @typescript-eslint/no-explicit-any */
45
46
 
47
+ @injectable()
46
48
  export class DebugExtImpl implements DebugExt {
49
+ @inject(RPCProtocol)
50
+ protected readonly rpc: RPCProtocol;
51
+
47
52
  // debug sessions by sessionId
48
53
  private sessions = new Map<string, PluginDebugAdapterSession>();
49
54
  private configurationProviderHandleGenerator: number;
@@ -83,8 +88,7 @@ export class DebugExtImpl implements DebugExt {
83
88
  return [...this._breakpoints.values()];
84
89
  }
85
90
 
86
- constructor(rpc: RPCProtocol) {
87
- this.proxy = rpc.getProxy(Ext.DEBUG_MAIN);
91
+ constructor() {
88
92
  this.activeDebugConsole = {
89
93
  append: (value: string) => this.proxy.$appendToDebugConsole(value),
90
94
  appendLine: (value: string) => this.proxy.$appendLineToDebugConsole(value)
@@ -93,6 +97,11 @@ export class DebugExtImpl implements DebugExt {
93
97
  this.configurationProviders = [];
94
98
  }
95
99
 
100
+ @postConstruct()
101
+ initialize(): void {
102
+ this.proxy = this.rpc.getProxy(Ext.DEBUG_MAIN);
103
+ }
104
+
96
105
  /**
97
106
  * Sets dependencies.
98
107
  */
@@ -336,7 +345,7 @@ export class DebugExtImpl implements DebugExt {
336
345
  }
337
346
 
338
347
  async $createDebugSession(debugConfiguration: DebugConfiguration, workspaceFolderUri: string | undefined): Promise<string> {
339
- const sessionId = uuid.v4();
348
+ const sessionId = generateUuid();
340
349
 
341
350
  const parentSession = debugConfiguration.parentSessionId ? this.sessions.get(debugConfiguration.parentSessionId) : undefined;
342
351
  const theiaSession: theia.DebugSession = {
@@ -41,7 +41,7 @@ export class DialogsExtImpl {
41
41
  if (result) {
42
42
  const uris = [];
43
43
  for (let i = 0; i < result.length; i++) {
44
- const uri = URI.parse('file://' + result[i]);
44
+ const uri = URI.file(result[i]);
45
45
  uris.push(uri);
46
46
  }
47
47
  resolve(uris);
@@ -158,7 +158,7 @@ export class DocumentsExtImpl implements DocumentsExt {
158
158
  const uriString = uri.toString();
159
159
  const data = this.editorsAndDocuments.getDocument(uriString);
160
160
  if (!data) {
161
- throw new Error('unknown document');
161
+ throw new Error('unknown document: ' + uriString);
162
162
  }
163
163
  data.acceptIsDirty(isDirty);
164
164
  this._onDidChangeDocument.fire({
@@ -172,7 +172,7 @@ export class DocumentsExtImpl implements DocumentsExt {
172
172
  const uriString = uri.toString();
173
173
  const data = this.editorsAndDocuments.getDocument(uriString);
174
174
  if (!data) {
175
- throw new Error('unknown document');
175
+ throw new Error('unknown document: ' + uriString);
176
176
  }
177
177
  data.acceptIsDirty(isDirty);
178
178
  data.onEvents(e);
@@ -14,6 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
+ import { inject, injectable } from '@theia/core/shared/inversify';
17
18
  import { EditorsAndDocumentsExt, EditorsAndDocumentsDelta, PLUGIN_RPC_CONTEXT } from '../common/plugin-api-rpc';
18
19
  import { TextEditorExt } from './text-editor';
19
20
  import { RPCProtocol } from '../common/rpc-protocol';
@@ -24,7 +25,11 @@ import * as Converter from './type-converters';
24
25
  import { dispose } from '../common/disposable-util';
25
26
  import { URI } from './types-impl';
26
27
 
28
+ @injectable()
27
29
  export class EditorsAndDocumentsExtImpl implements EditorsAndDocumentsExt {
30
+ @inject(RPCProtocol)
31
+ protected readonly rpc: RPCProtocol;
32
+
28
33
  private activeEditorId: string | null = null;
29
34
 
30
35
  private readonly _onDidAddDocuments = new Emitter<DocumentDataExt[]>();
@@ -40,9 +45,6 @@ export class EditorsAndDocumentsExtImpl implements EditorsAndDocumentsExt {
40
45
  private readonly documents = new Map<string, DocumentDataExt>();
41
46
  private readonly editors = new Map<string, TextEditorExt>();
42
47
 
43
- constructor(private readonly rpc: RPCProtocol) {
44
- }
45
-
46
48
  async $acceptEditorsAndDocumentsDelta(delta: EditorsAndDocumentsDelta): Promise<void> {
47
49
  const removedDocuments = new Array<DocumentDataExt>();
48
50
  const addedDocuments = new Array<DocumentDataExt>();
package/src/plugin/env.ts CHANGED
@@ -14,13 +14,18 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
+ import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
17
18
  import * as theia from '@theia/plugin';
18
19
  import { RPCProtocol } from '../common/rpc-protocol';
19
20
  import { EnvMain, PLUGIN_RPC_CONTEXT } from '../common/plugin-api-rpc';
20
21
  import { QueryParameters } from '../common/env';
21
- import { v4 } from 'uuid';
22
+ import { generateUuid } from '@theia/core/lib/common/uuid';
22
23
 
24
+ @injectable()
23
25
  export abstract class EnvExtImpl {
26
+ @inject(RPCProtocol)
27
+ protected readonly rpc: RPCProtocol;
28
+
24
29
  private proxy: EnvMain;
25
30
  private queryParameters: QueryParameters;
26
31
  private lang: string;
@@ -29,15 +34,20 @@ export abstract class EnvExtImpl {
29
34
  private envMachineId: string;
30
35
  private envSessionId: string;
31
36
  private host: string;
37
+ private applicationRoot: string;
32
38
  private _remoteName: string | undefined;
33
39
 
34
- constructor(rpc: RPCProtocol) {
35
- this.proxy = rpc.getProxy(PLUGIN_RPC_CONTEXT.ENV_MAIN);
36
- this.envSessionId = v4();
37
- this.envMachineId = v4();
40
+ constructor() {
41
+ this.envSessionId = generateUuid();
42
+ this.envMachineId = generateUuid();
38
43
  this._remoteName = undefined;
39
44
  }
40
45
 
46
+ @postConstruct()
47
+ initialize(): void {
48
+ this.proxy = this.rpc.getProxy(PLUGIN_RPC_CONTEXT.ENV_MAIN);
49
+ }
50
+
41
51
  getEnvVariable(envVarName: string): Promise<string | undefined> {
42
52
  return this.proxy.$getEnvVariable(envVarName).then(x => {
43
53
  if (x === null) {
@@ -75,6 +85,10 @@ export abstract class EnvExtImpl {
75
85
  this.host = appHost;
76
86
  }
77
87
 
88
+ setAppRoot(appRoot: string): void {
89
+ this.applicationRoot = appRoot;
90
+ }
91
+
78
92
  getClientOperatingSystem(): Promise<theia.OperatingSystem> {
79
93
  return this.proxy.$getClientOperatingSystem();
80
94
  }
@@ -83,7 +97,9 @@ export abstract class EnvExtImpl {
83
97
  return this.applicationName;
84
98
  }
85
99
 
86
- abstract get appRoot(): string;
100
+ get appRoot(): string {
101
+ return this.applicationRoot;
102
+ }
87
103
 
88
104
  abstract get isNewAppInstall(): boolean;
89
105
 
@@ -41,6 +41,7 @@ import { commonPrefixLength } from '@theia/core/lib/common/strings';
41
41
  import { CharCode } from '@theia/core/lib/common/char-code';
42
42
  import { BinaryBuffer } from '@theia/core/lib/common/buffer';
43
43
  import { Emitter } from '@theia/core/shared/vscode-languageserver-protocol';
44
+ import { MarkdownString } from '../common/plugin-api-rpc-model';
44
45
 
45
46
  type IDisposable = vscode.Disposable;
46
47
 
@@ -223,7 +224,7 @@ export class FileSystemExtImpl implements FileSystemExt {
223
224
  this.onWillRegisterFileSystemProviderEmitter.dispose();
224
225
  }
225
226
 
226
- registerFileSystemProvider(scheme: string, provider: vscode.FileSystemProvider, options: { isCaseSensitive?: boolean, isReadonly?: boolean } = {}) {
227
+ registerFileSystemProvider(scheme: string, provider: vscode.FileSystemProvider, options: { isCaseSensitive?: boolean, isReadonly?: boolean | MarkdownString } = {}) {
227
228
 
228
229
  if (this._usedSchemes.has(scheme)) {
229
230
  throw new Error(`a provider for the scheme '${scheme}' is already registered`);
@@ -252,7 +253,19 @@ export class FileSystemExtImpl implements FileSystemExt {
252
253
  capabilities += files.FileSystemProviderCapabilities.FileOpenReadWriteClose;
253
254
  }
254
255
 
255
- this._proxy.$registerFileSystemProvider(handle, scheme, capabilities);
256
+ let readonlyMessage: MarkdownString | undefined;
257
+ if (options.isReadonly && MarkdownString.is(options.isReadonly)) {
258
+ readonlyMessage = {
259
+ value: options.isReadonly.value,
260
+ isTrusted: options.isReadonly.isTrusted,
261
+ supportThemeIcons: options.isReadonly.supportThemeIcons,
262
+ supportHtml: options.isReadonly.supportHtml,
263
+ baseUri: options.isReadonly.baseUri,
264
+ uris: options.isReadonly.uris
265
+ };
266
+ }
267
+
268
+ this._proxy.$registerFileSystemProvider(handle, scheme, capabilities, readonlyMessage);
256
269
 
257
270
  const subscription = provider.onDidChangeFile(event => {
258
271
  const mapped: IFileChangeDto[] = [];
@@ -261,6 +261,7 @@ export namespace KnownCommands {
261
261
  mappings['closeReferenceSearch'] = ['closeReferenceSearch', CONVERT_VSCODE_TO_MONACO];
262
262
  mappings['goToNextReference'] = ['goToNextReference', CONVERT_VSCODE_TO_MONACO];
263
263
  mappings['goToPreviousReference'] = ['goToPreviousReference', CONVERT_VSCODE_TO_MONACO];
264
+ mappings['setContext'] = ['_setContext', CONVERT_VSCODE_TO_MONACO];
264
265
 
265
266
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
266
267
  const CONVERT_MONACO_TO_VSCODE = (args: any | undefined) => {
@@ -22,7 +22,7 @@ import { MarkerData } from '../../common/plugin-api-rpc-model';
22
22
  import { RPCProtocol } from '../../common/rpc-protocol';
23
23
  import { PLUGIN_RPC_CONTEXT, LanguagesMain } from '../../common/plugin-api-rpc';
24
24
  import { URI } from '@theia/core/shared/vscode-uri';
25
- import { v4 } from 'uuid';
25
+ import { generateUuid } from '@theia/core/lib/common/uuid';
26
26
 
27
27
  export class DiagnosticCollection implements theia.DiagnosticCollection {
28
28
  private static DIAGNOSTICS_PRIORITY = [
@@ -288,7 +288,7 @@ export class Diagnostics {
288
288
  }
289
289
 
290
290
  private getNextId(): string {
291
- return v4();
291
+ return generateUuid();
292
292
  }
293
293
 
294
294
  private getAllDiagnosticsForResource(uri: URI): theia.Diagnostic[] {
@@ -33,7 +33,9 @@ export class LinkProviderAdapter {
33
33
  provideLinks(resource: URI, token: theia.CancellationToken): Promise<DocumentLink[] | undefined> {
34
34
  const document = this.documents.getDocumentData(resource);
35
35
  if (!document) {
36
- return Promise.reject(new Error(`There is no document for ${resource}`));
36
+ // not all documents are replicated to the plugin host (e.g. breakpoint input)
37
+ console.warn(`There is no document for ${resource}`);
38
+ return Promise.resolve(undefined);
37
39
  }
38
40
 
39
41
  const doc = document.document;
@@ -16,6 +16,7 @@
16
16
 
17
17
  /* eslint-disable @typescript-eslint/no-explicit-any */
18
18
 
19
+ import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
19
20
  import { nls } from '@theia/core';
20
21
  import { Localization } from '@theia/core/lib/common/i18n/localization';
21
22
  import { LocalizationExt, LocalizationMain, Plugin, PLUGIN_RPC_CONTEXT, StringDetails } from '../common';
@@ -23,15 +24,19 @@ import { LanguagePackBundle } from '../common/language-pack-service';
23
24
  import { RPCProtocol } from '../common/rpc-protocol';
24
25
  import { URI } from './types-impl';
25
26
 
27
+ @injectable()
26
28
  export class LocalizationExtImpl implements LocalizationExt {
29
+ @inject(RPCProtocol)
30
+ protected readonly rpc: RPCProtocol;
27
31
 
28
- private readonly _proxy: LocalizationMain;
32
+ private _proxy: LocalizationMain;
29
33
  private currentLanguage?: string;
30
34
  private isDefaultLanguage = true;
31
35
  private readonly bundleCache = new Map<string, LanguagePackBundle | undefined>();
32
36
 
33
- constructor(rpc: RPCProtocol) {
34
- this._proxy = rpc.getProxy(PLUGIN_RPC_CONTEXT.LOCALIZATION_MAIN);
37
+ @postConstruct()
38
+ initialize(): void {
39
+ this._proxy = this.rpc.getProxy(PLUGIN_RPC_CONTEXT.LOCALIZATION_MAIN);
35
40
  }
36
41
 
37
42
  translateMessage(pluginId: string, details: StringDetails): string {
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { Mutable } from '@theia/core';
18
- import { MarkdownStringImpl as BaseMarkdownString, MarkdownString as MarkdownStringInterface } from '@theia/core/lib/common/markdown-rendering';
18
+ import { MarkdownStringImpl as BaseMarkdownString, MarkdownString as MarkdownStringInterface, MarkdownStringTrustedOptions } from '@theia/core/lib/common/markdown-rendering';
19
19
  import * as pluginAPI from '@theia/plugin';
20
20
  import { es5ClassCompat } from '../common/types';
21
21
  import { URI } from './types-impl';
@@ -49,11 +49,11 @@ export class MarkdownString implements pluginAPI.MarkdownString {
49
49
  this.#delegate.value = value;
50
50
  }
51
51
 
52
- get isTrusted(): boolean | undefined {
52
+ get isTrusted(): boolean | MarkdownStringTrustedOptions | undefined {
53
53
  return this.#delegate.isTrusted;
54
54
  }
55
55
 
56
- set isTrusted(value: boolean | undefined) {
56
+ set isTrusted(value: boolean | MarkdownStringTrustedOptions | undefined) {
57
57
  this.#delegate.isTrusted = value;
58
58
  }
59
59
 
@@ -13,18 +13,23 @@
13
13
  //
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
+ import { inject, injectable, postConstruct } from '@theia/core/shared/inversify';
16
17
  import {
17
18
  PLUGIN_RPC_CONTEXT as Ext, MessageRegistryMain, MainMessageOptions, MainMessageType
18
19
  } from '../common/plugin-api-rpc';
19
20
  import { RPCProtocol } from '../common/rpc-protocol';
20
21
  import { MessageItem, MessageOptions } from '@theia/plugin';
21
22
 
23
+ @injectable()
22
24
  export class MessageRegistryExt {
25
+ @inject(RPCProtocol)
26
+ protected readonly rpc: RPCProtocol;
23
27
 
24
28
  private proxy: MessageRegistryMain;
25
29
 
26
- constructor(rpc: RPCProtocol) {
27
- this.proxy = rpc.getProxy(Ext.MESSAGE_REGISTRY_MAIN);
30
+ @postConstruct()
31
+ initialize(): void {
32
+ this.proxy = this.rpc.getProxy(Ext.MESSAGE_REGISTRY_MAIN);
28
33
  }
29
34
 
30
35
  async showMessage(type: MainMessageType, message: string,
@@ -13,6 +13,7 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
+ import { Container } from '@theia/core/shared/inversify';
16
17
  import { DebugSession } from '@theia/plugin';
17
18
  import * as chai from 'chai';
18
19
  import { ProxyIdentifier, RPCProtocol } from '../../../common/rpc-protocol';
@@ -37,7 +38,10 @@ describe('Debug API', () => {
37
38
  }
38
39
  };
39
40
 
40
- const debug = new DebugExtImpl(mockRPCProtocol);
41
+ const container = new Container();
42
+ container.bind(RPCProtocol).toConstantValue(mockRPCProtocol);
43
+ container.bind(DebugExtImpl).toSelf().inSingletonScope();
44
+ const debug = container.get(DebugExtImpl);
41
45
 
42
46
  it('should use sourceReference, path and sessionId', () => {
43
47
  const source = {
@@ -14,27 +14,29 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
+ import { injectable } from '@theia/core/shared/inversify';
17
18
  import * as mac from 'macaddress';
18
19
  import { EnvExtImpl } from '../env';
19
- import { RPCProtocol } from '../../common/rpc-protocol';
20
20
  import { createHash } from 'crypto';
21
- import { v4 } from 'uuid';
21
+ import { generateUuid } from '@theia/core/lib/common/uuid';
22
22
  import fs = require('fs');
23
23
 
24
24
  /**
25
25
  * Provides machineId using mac address. It's only possible on node side
26
26
  * Extending the common class
27
27
  */
28
+ @injectable()
28
29
  export class EnvNodeExtImpl extends EnvExtImpl {
29
30
 
30
31
  private macMachineId: string;
31
32
  private _isNewAppInstall: boolean;
32
33
 
33
- constructor(rpc: RPCProtocol) {
34
- super(rpc);
34
+ constructor() {
35
+ super();
36
+
35
37
  mac.one((err, macAddress) => {
36
38
  if (err) {
37
- this.macMachineId = v4();
39
+ this.macMachineId = generateUuid();
38
40
  } else {
39
41
  this.macMachineId = createHash('sha256').update(macAddress, 'utf8').digest('hex');
40
42
  }
@@ -49,13 +51,6 @@ export class EnvNodeExtImpl extends EnvExtImpl {
49
51
  return this.macMachineId;
50
52
  }
51
53
 
52
- /**
53
- * Provides application root.
54
- */
55
- get appRoot(): string {
56
- return __dirname;
57
- }
58
-
59
54
  get isNewAppInstall(): boolean {
60
55
  return this._isNewAppInstall;
61
56
  }
@@ -0,0 +1,165 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2024 EclipseSource 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 { interfaces, ContainerModule } from '@theia/core/shared/inversify';
18
+ import { Plugin, PluginManager, emptyPlugin } from '../../common';
19
+
20
+ export type ApiFactory<T extends object> = (plugin: Plugin) => T;
21
+
22
+ /**
23
+ * Bind a service identifier for the factory function creating API objects of
24
+ * type `T` for a client plugin to a class providing a `call()` method that
25
+ * implements that factory function.
26
+ *
27
+ * @template T the API object type that the factory creates
28
+ * @param serviceIdentifier the injection key identifying the API factory function
29
+ * @param factoryClass the class implementing the API factory function via its `call()` method
30
+ */
31
+ export type BindApiFactory = <T extends object>(
32
+ apiModuleName: string,
33
+ serviceIdentifier: interfaces.ServiceIdentifier<ApiFactory<T>>,
34
+ factoryClass: new () => { createApi: ApiFactory<T>}) => void;
35
+
36
+ /**
37
+ * An analogue of the callback function in the constructor of the Inversify
38
+ * `ContainerModule` providing a registry that, in addition to the standard
39
+ * binding-related functions, includes a custom function for binding an
40
+ * API factory.
41
+ */
42
+ export type PluginContainerModuleCallBack = (registry: {
43
+ bind: interfaces.Bind;
44
+ unbind: interfaces.Unbind;
45
+ isBound: interfaces.IsBound;
46
+ rebind: interfaces.Rebind;
47
+ bindApiFactory: BindApiFactory;
48
+ }) => void;
49
+
50
+ /**
51
+ * Factory for an Inversify `ContainerModule` that supports registration of the plugin's
52
+ * API factory. Use the `PluginContainerModule`'s `create()` method to create the container
53
+ * module; its `callback` function provides a `registry` of Inversify binding functions that
54
+ * includes a `bindApiFactory` function for binding the API factory.
55
+ */
56
+ export const PluginContainerModule: symbol & { create(callback: PluginContainerModuleCallBack): ContainerModule } = Object.assign(Symbol('PluginContainerModule'), {
57
+ create(callback: PluginContainerModuleCallBack): ContainerModule {
58
+ const result: InternalPluginContainerModule = new ContainerModule((bind, unbind, isBound, rebind) => {
59
+ const bindApiFactory: BindApiFactory = (apiModuleName, serviceIdentifier, factoryClass) => {
60
+ result.initializeApi = container => {
61
+ const apiCache = new PluginApiCache(apiModuleName, serviceIdentifier);
62
+ apiCache.initializeApi(container);
63
+ return apiCache;
64
+ };
65
+ bind(factoryClass).toSelf().inSingletonScope();
66
+ bind(serviceIdentifier).toDynamicValue(({ container }) => {
67
+ const factory = container.get(factoryClass);
68
+ return factory.createApi.bind(factory);
69
+ }).inSingletonScope();
70
+ };
71
+ callback({ bind, unbind, isBound, rebind, bindApiFactory });
72
+ });
73
+ return result;
74
+ }
75
+ });
76
+
77
+ /**
78
+ * Definition of additional API provided by the `ContainerModule` created by the
79
+ * {@link PluginContainerModule} factory function that is for internal use by Theia.
80
+ */
81
+ export type InternalPluginContainerModule = ContainerModule & {
82
+ /** Use my API factory binding to initialize the plugin API in some `container`. */
83
+ initializeApi?: (container: interfaces.Container) => PluginApiCache<object>;
84
+ };
85
+
86
+ /**
87
+ * An object that creates and caches the instance of the plugin API created by the
88
+ * factory binding in a {@link PluginContainerModule} in some plugin host.
89
+ *
90
+ * @template T the custom API object's type
91
+ */
92
+ export class PluginApiCache<T extends object> {
93
+
94
+ private apiFactory: ApiFactory<T>;
95
+ private pluginManager: PluginManager;
96
+ private defaultApi: T;
97
+ private pluginsApiImpl = new Map<string, T>();
98
+ private hookedModuleLoader = false;
99
+
100
+ /**
101
+ * Initializes me with the module name by which plugins import the API
102
+ * and the service identifier to look up in the Inversify `Container` to
103
+ * obtain the {@link ApiFactory} that will instantiate it.
104
+ */
105
+ constructor(private readonly apiModuleName: string,
106
+ private readonly serviceIdentifier: interfaces.ServiceIdentifier<ApiFactory<T>>) {}
107
+
108
+ // Called by Theia to do any prep work needed for dishing out the API object
109
+ // when it's requested. The key part of that is hooking into the node module
110
+ // loader. This is called every time a plugin-host process is forked.
111
+ initializeApi(container: interfaces.Container): void {
112
+ this.apiFactory = container.get(this.serviceIdentifier);
113
+ this.pluginManager = container.get(PluginManager);
114
+
115
+ if (!this.hookedModuleLoader) {
116
+ this.hookedModuleLoader = true;
117
+ this.overrideInternalLoad();
118
+ }
119
+ }
120
+
121
+ /**
122
+ * Hook into the override chain of JavaScript's `module` loading function
123
+ * to implement ourselves, using the API provider's registered factory,
124
+ * the construction of its default exports object.
125
+ */
126
+ private overrideInternalLoad(): void {
127
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
128
+ const module = require('module');
129
+
130
+ const internalLoad = module._load;
131
+ const self = this;
132
+
133
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
+ module._load = function (request: string, parent: any, isMain: any): any {
135
+ if (request !== self.apiModuleName) {
136
+ // Pass the request to the next implementation down the chain
137
+ return internalLoad.call(this, request, parent, isMain);
138
+ }
139
+
140
+ const plugin = self.findPlugin(parent.filename);
141
+ if (plugin) {
142
+ let apiImpl = self.pluginsApiImpl.get(plugin.model.id);
143
+ if (!apiImpl) {
144
+ apiImpl = self.apiFactory(plugin);
145
+ self.pluginsApiImpl.set(plugin.model.id, apiImpl);
146
+ }
147
+ return apiImpl;
148
+ }
149
+
150
+ console.warn(
151
+ `Extension module ${parent.filename} did an import of '${self.apiModuleName}' but our cache ` +
152
+ ' has no knowledge of that extension. Returning a generic API object; some functionality might not work correctly.'
153
+ );
154
+ if (!self.defaultApi) {
155
+ self.defaultApi = self.apiFactory(emptyPlugin);
156
+ }
157
+ return self.defaultApi;
158
+ };
159
+ }
160
+
161
+ // Search all loaded plugins to see which one has the given file (absolute path)
162
+ protected findPlugin(filePath: string): Plugin | undefined {
163
+ return this.pluginManager.getAllPlugins().find(plugin => filePath.startsWith(plugin.pluginFolder));
164
+ }
165
+ }
@@ -287,7 +287,8 @@ export class NotebookDocument implements Disposable {
287
287
  } else if (rawEvent.kind === notebookCommon.NotebookCellsChangeType.Output) {
288
288
  this.setCellOutputs(rawEvent.index, rawEvent.outputs);
289
289
  relaxedCellChanges.push({ cell: this.cells[rawEvent.index].apiCell, outputs: this.cells[rawEvent.index].apiCell.outputs });
290
-
290
+ } else if (rawEvent.kind === notebookCommon.NotebookCellsChangeType.ChangeDocumentMetadata) {
291
+ this.metadata = result.metadata ?? {};
291
292
  // } else if (rawEvent.kind === notebookCommon.NotebookCellsChangeType.OutputItem) {
292
293
  // this._setCellOutputItems(rawEvent.index, rawEvent.outputId, rawEvent.append, rawEvent.outputItems);
293
294
  // relaxedCellChanges.push({ cell: this.cells[rawEvent.index].apiCell, outputs: this.cells[rawEvent.index].apiCell.outputs });
@@ -357,6 +358,18 @@ export class NotebookDocument implements Disposable {
357
358
  const extCell = new Cell(this, this.editorsAndDocuments, cell);
358
359
  if (!initialization) {
359
360
  addedCellDocuments.push(Cell.asModelAddData(this.apiNotebook, cell));
361
+ this.editorsAndDocuments.$acceptEditorsAndDocumentsDelta({
362
+ addedDocuments: [
363
+ {
364
+ uri: cell.uri,
365
+ versionId: 1,
366
+ lines: cell.source,
367
+ EOL: cell.eol,
368
+ modeId: '',
369
+ isDirty: false
370
+ }
371
+ ]
372
+ });
360
373
  }
361
374
  return extCell;
362
375
  });