@theia/plugin-ext 1.45.0 → 1.46.0-next.72

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 (1138) hide show
  1. package/README.md +54 -54
  2. package/lib/common/arrays.d.ts +23 -23
  3. package/lib/common/arrays.js +60 -60
  4. package/lib/common/assert.d.ts +1 -1
  5. package/lib/common/assert.js +25 -25
  6. package/lib/common/cache.d.ts +11 -11
  7. package/lib/common/cache.js +47 -47
  8. package/lib/common/character-classifier.d.ts +18 -18
  9. package/lib/common/character-classifier.js +60 -60
  10. package/lib/common/collections.d.ts +8 -8
  11. package/lib/common/collections.js +55 -55
  12. package/lib/common/commands.d.ts +3 -3
  13. package/lib/common/commands.js +16 -16
  14. package/lib/common/connection.d.ts +54 -54
  15. package/lib/common/connection.js +107 -107
  16. package/lib/common/disposable-util.d.ts +6 -6
  17. package/lib/common/disposable-util.js +37 -37
  18. package/lib/common/editor-options.d.ts +30 -30
  19. package/lib/common/editor-options.js +72 -72
  20. package/lib/common/env.d.ts +3 -3
  21. package/lib/common/env.js +17 -17
  22. package/lib/common/errors.d.ts +17 -17
  23. package/lib/common/errors.js +58 -58
  24. package/lib/common/id-generator.d.ts +6 -6
  25. package/lib/common/id-generator.js +28 -28
  26. package/lib/common/index.d.ts +3 -3
  27. package/lib/common/index.js +33 -33
  28. package/lib/common/language-pack-service.d.ts +15 -15
  29. package/lib/common/language-pack-service.js +20 -20
  30. package/lib/common/link-computer.d.ts +41 -41
  31. package/lib/common/link-computer.js +275 -275
  32. package/lib/common/object-identifier.d.ts +8 -8
  33. package/lib/common/object-identifier.js +32 -32
  34. package/lib/common/objects.d.ts +1 -1
  35. package/lib/common/objects.js +46 -46
  36. package/lib/common/paths-util.d.ts +3 -3
  37. package/lib/common/paths-util.js +144 -144
  38. package/lib/common/plugin-api-rpc-model.d.ts +755 -755
  39. package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
  40. package/lib/common/plugin-api-rpc-model.js +178 -178
  41. package/lib/common/plugin-api-rpc.d.ts +2112 -2088
  42. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  43. package/lib/common/plugin-api-rpc.js +304 -302
  44. package/lib/common/plugin-api-rpc.js.map +1 -1
  45. package/lib/common/plugin-ext-api-contribution.d.ts +88 -58
  46. package/lib/common/plugin-ext-api-contribution.d.ts.map +1 -1
  47. package/lib/common/plugin-ext-api-contribution.js +5 -5
  48. package/lib/common/plugin-ext-api-contribution.js.map +1 -1
  49. package/lib/common/plugin-identifiers.d.ts +40 -40
  50. package/lib/common/plugin-identifiers.js +80 -80
  51. package/lib/common/plugin-protocol.d.ts +942 -929
  52. package/lib/common/plugin-protocol.d.ts.map +1 -1
  53. package/lib/common/plugin-protocol.js +75 -74
  54. package/lib/common/plugin-protocol.js.map +1 -1
  55. package/lib/common/proxy-handler.d.ts +72 -65
  56. package/lib/common/proxy-handler.d.ts.map +1 -1
  57. package/lib/common/proxy-handler.js +103 -99
  58. package/lib/common/proxy-handler.js.map +1 -1
  59. package/lib/common/reference-map.d.ts +7 -7
  60. package/lib/common/reference-map.js +39 -39
  61. package/lib/common/rpc-protocol.d.ts +75 -65
  62. package/lib/common/rpc-protocol.d.ts.map +1 -1
  63. package/lib/common/rpc-protocol.js +258 -229
  64. package/lib/common/rpc-protocol.js.map +1 -1
  65. package/lib/common/semantic-tokens-dto.d.ts +18 -18
  66. package/lib/common/semantic-tokens-dto.js +162 -162
  67. package/lib/common/test-types.d.ts +91 -91
  68. package/lib/common/test-types.js +74 -74
  69. package/lib/common/types.d.ts +37 -37
  70. package/lib/common/types.js +121 -121
  71. package/lib/common/uint.d.ts +7 -7
  72. package/lib/common/uint.js +33 -33
  73. package/lib/common/uri-components.d.ts +38 -39
  74. package/lib/common/uri-components.d.ts.map +1 -1
  75. package/lib/common/uri-components.js +62 -66
  76. package/lib/common/uri-components.js.map +1 -1
  77. package/lib/hosted/browser/hosted-plugin-watcher.d.ts +15 -15
  78. package/lib/hosted/browser/hosted-plugin-watcher.js +59 -59
  79. package/lib/hosted/browser/hosted-plugin.d.ts +99 -157
  80. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  81. package/lib/hosted/browser/hosted-plugin.js +599 -871
  82. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  83. package/lib/hosted/browser/plugin-worker.d.ts +6 -6
  84. package/lib/hosted/browser/plugin-worker.js +57 -57
  85. package/lib/hosted/browser/worker/debug-stub.d.ts +3 -3
  86. package/lib/hosted/browser/worker/debug-stub.d.ts.map +1 -1
  87. package/lib/hosted/browser/worker/debug-stub.js +29 -29
  88. package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
  89. package/lib/hosted/browser/worker/plugin-manifest-loader.d.ts +2 -2
  90. package/lib/hosted/browser/worker/plugin-manifest-loader.js +107 -107
  91. package/lib/hosted/browser/worker/worker-env-ext.d.ts +13 -14
  92. package/lib/hosted/browser/worker/worker-env-ext.d.ts.map +1 -1
  93. package/lib/hosted/browser/worker/worker-env-ext.js +52 -38
  94. package/lib/hosted/browser/worker/worker-env-ext.js.map +1 -1
  95. package/lib/hosted/browser/worker/worker-main.d.ts +1 -1
  96. package/lib/hosted/browser/worker/worker-main.js +182 -194
  97. package/lib/hosted/browser/worker/worker-main.js.map +1 -1
  98. package/lib/hosted/browser/worker/worker-plugin-module.d.ts +5 -0
  99. package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -0
  100. package/lib/hosted/browser/worker/worker-plugin-module.js +78 -0
  101. package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -0
  102. package/lib/hosted/common/hosted-plugin.d.ts +97 -0
  103. package/lib/hosted/common/hosted-plugin.d.ts.map +1 -0
  104. package/lib/hosted/common/hosted-plugin.js +408 -0
  105. package/lib/hosted/common/hosted-plugin.js.map +1 -0
  106. package/lib/hosted/node/hosted-plugin-cli-contribution.d.ts +16 -16
  107. package/lib/hosted/node/hosted-plugin-cli-contribution.js +76 -76
  108. package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +43 -43
  109. package/lib/hosted/node/hosted-plugin-deployer-handler.js +270 -270
  110. package/lib/hosted/node/hosted-plugin-localization-service.d.ts +46 -46
  111. package/lib/hosted/node/hosted-plugin-localization-service.js +389 -389
  112. package/lib/hosted/node/hosted-plugin-process.d.ts +47 -47
  113. package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
  114. package/lib/hosted/node/hosted-plugin-process.js +224 -224
  115. package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
  116. package/lib/hosted/node/hosted-plugin-protocol.d.ts +21 -21
  117. package/lib/hosted/node/hosted-plugin-protocol.js +36 -36
  118. package/lib/hosted/node/hosted-plugin.d.ts +36 -36
  119. package/lib/hosted/node/hosted-plugin.js +118 -118
  120. package/lib/hosted/node/metadata-scanner.d.ts +17 -17
  121. package/lib/hosted/node/metadata-scanner.js +82 -82
  122. package/lib/hosted/node/plugin-activation-events.d.ts +6 -6
  123. package/lib/hosted/node/plugin-activation-events.js +95 -95
  124. package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts +3 -3
  125. package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts.map +1 -1
  126. package/lib/hosted/node/plugin-ext-hosted-backend-module.js +82 -80
  127. package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
  128. package/lib/hosted/node/plugin-host-module.d.ts +5 -0
  129. package/lib/hosted/node/plugin-host-module.d.ts.map +1 -0
  130. package/lib/hosted/node/plugin-host-module.js +68 -0
  131. package/lib/hosted/node/plugin-host-module.js.map +1 -0
  132. package/lib/hosted/node/plugin-host-proxy.d.ts +18 -18
  133. package/lib/hosted/node/plugin-host-proxy.js +70 -70
  134. package/lib/hosted/node/plugin-host-rpc.d.ts +107 -21
  135. package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
  136. package/lib/hosted/node/plugin-host-rpc.js +341 -192
  137. package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
  138. package/lib/hosted/node/plugin-host.d.ts +1 -1
  139. package/lib/hosted/node/plugin-host.js +102 -101
  140. package/lib/hosted/node/plugin-host.js.map +1 -1
  141. package/lib/hosted/node/plugin-language-pack-service.d.ts +7 -7
  142. package/lib/hosted/node/plugin-language-pack-service.js +53 -53
  143. package/lib/hosted/node/plugin-manifest-loader.d.ts +2 -2
  144. package/lib/hosted/node/plugin-manifest-loader.js +35 -35
  145. package/lib/hosted/node/plugin-reader.d.ts +25 -25
  146. package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
  147. package/lib/hosted/node/plugin-reader.js +146 -143
  148. package/lib/hosted/node/plugin-reader.js.map +1 -1
  149. package/lib/hosted/node/plugin-service.d.ts +47 -39
  150. package/lib/hosted/node/plugin-service.d.ts.map +1 -1
  151. package/lib/hosted/node/plugin-service.js +203 -193
  152. package/lib/hosted/node/plugin-service.js.map +1 -1
  153. package/lib/hosted/node/scanners/backend-init-theia.d.ts +2 -2
  154. package/lib/hosted/node/scanners/backend-init-theia.js +60 -60
  155. package/lib/hosted/node/scanners/file-plugin-uri-factory.d.ts +10 -10
  156. package/lib/hosted/node/scanners/file-plugin-uri-factory.js +40 -40
  157. package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
  158. package/lib/hosted/node/scanners/grammars-reader.d.ts +5 -5
  159. package/lib/hosted/node/scanners/grammars-reader.js +63 -63
  160. package/lib/hosted/node/scanners/plugin-uri-factory.d.ts +16 -16
  161. package/lib/hosted/node/scanners/plugin-uri-factory.js +19 -19
  162. package/lib/hosted/node/scanners/scanner-theia.d.ts +68 -54
  163. package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
  164. package/lib/hosted/node/scanners/scanner-theia.js +859 -824
  165. package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
  166. package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.d.ts +2 -2
  167. package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js +26 -26
  168. package/lib/hosted/node-electron/scanner-theia-electron.d.ts +5 -5
  169. package/lib/hosted/node-electron/scanner-theia-electron.js +40 -40
  170. package/lib/main/browser/authentication-main.d.ts +51 -51
  171. package/lib/main/browser/authentication-main.d.ts.map +1 -1
  172. package/lib/main/browser/authentication-main.js +315 -313
  173. package/lib/main/browser/authentication-main.js.map +1 -1
  174. package/lib/main/browser/clipboard-main.d.ts +9 -9
  175. package/lib/main/browser/clipboard-main.js +32 -32
  176. package/lib/main/browser/command-registry-main.d.ts +26 -26
  177. package/lib/main/browser/command-registry-main.js +107 -107
  178. package/lib/main/browser/commands.d.ts +12 -12
  179. package/lib/main/browser/commands.js +102 -102
  180. package/lib/main/browser/comments/comment-glyph-widget.d.ts +12 -12
  181. package/lib/main/browser/comments/comment-glyph-widget.js +42 -42
  182. package/lib/main/browser/comments/comment-thread-widget.d.ts +153 -153
  183. package/lib/main/browser/comments/comment-thread-widget.js +470 -470
  184. package/lib/main/browser/comments/comments-context-key-service.d.ts +17 -17
  185. package/lib/main/browser/comments/comments-context-key-service.js +80 -80
  186. package/lib/main/browser/comments/comments-contribution.d.ts +31 -31
  187. package/lib/main/browser/comments/comments-contribution.d.ts.map +1 -1
  188. package/lib/main/browser/comments/comments-contribution.js +267 -264
  189. package/lib/main/browser/comments/comments-contribution.js.map +1 -1
  190. package/lib/main/browser/comments/comments-decorator.d.ts +15 -15
  191. package/lib/main/browser/comments/comments-decorator.js +107 -107
  192. package/lib/main/browser/comments/comments-main.d.ts +111 -111
  193. package/lib/main/browser/comments/comments-main.js +356 -356
  194. package/lib/main/browser/comments/comments-main.js.map +1 -1
  195. package/lib/main/browser/comments/comments-service.d.ts +75 -75
  196. package/lib/main/browser/comments/comments-service.js +120 -120
  197. package/lib/main/browser/custom-editors/custom-editor-contribution.d.ts +6 -6
  198. package/lib/main/browser/custom-editors/custom-editor-contribution.js +50 -50
  199. package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +21 -21
  200. package/lib/main/browser/custom-editors/custom-editor-opener.js +111 -111
  201. package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
  202. package/lib/main/browser/custom-editors/custom-editor-service.d.ts +16 -16
  203. package/lib/main/browser/custom-editors/custom-editor-service.js +102 -102
  204. package/lib/main/browser/custom-editors/custom-editor-widget-factory.d.ts +9 -9
  205. package/lib/main/browser/custom-editors/custom-editor-widget-factory.js +39 -39
  206. package/lib/main/browser/custom-editors/custom-editor-widget.d.ts +36 -36
  207. package/lib/main/browser/custom-editors/custom-editor-widget.d.ts.map +1 -1
  208. package/lib/main/browser/custom-editors/custom-editor-widget.js +120 -118
  209. package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
  210. package/lib/main/browser/custom-editors/custom-editors-main.d.ts +119 -119
  211. package/lib/main/browser/custom-editors/custom-editors-main.js +436 -436
  212. package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
  213. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts +23 -23
  214. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +142 -142
  215. package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts +8 -8
  216. package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts.map +1 -1
  217. package/lib/main/browser/data-transfer/data-transfer-type-converters.js +62 -64
  218. package/lib/main/browser/data-transfer/data-transfer-type-converters.js.map +1 -1
  219. package/lib/main/browser/debug/debug-main.d.ts +48 -48
  220. package/lib/main/browser/debug/debug-main.js +295 -295
  221. package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts +18 -18
  222. package/lib/main/browser/debug/plugin-debug-adapter-contribution.js +42 -42
  223. package/lib/main/browser/debug/plugin-debug-configuration-provider.d.ts +12 -12
  224. package/lib/main/browser/debug/plugin-debug-configuration-provider.js +38 -38
  225. package/lib/main/browser/debug/plugin-debug-service.d.ts +55 -55
  226. package/lib/main/browser/debug/plugin-debug-service.js +367 -367
  227. package/lib/main/browser/debug/plugin-debug-session-contribution-registry.d.ts +30 -30
  228. package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +75 -75
  229. package/lib/main/browser/debug/plugin-debug-session-factory.d.ts +55 -55
  230. package/lib/main/browser/debug/plugin-debug-session-factory.js +70 -70
  231. package/lib/main/browser/decorations/decorations-main.d.ts +15 -15
  232. package/lib/main/browser/decorations/decorations-main.js +119 -119
  233. package/lib/main/browser/dialogs/modal-notification.d.ts +18 -18
  234. package/lib/main/browser/dialogs/modal-notification.js +109 -109
  235. package/lib/main/browser/dialogs-main.d.ts +16 -16
  236. package/lib/main/browser/dialogs-main.js +162 -162
  237. package/lib/main/browser/documents-main.d.ts +50 -50
  238. package/lib/main/browser/documents-main.js +249 -249
  239. package/lib/main/browser/editors-and-documents-main.d.ts +36 -32
  240. package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
  241. package/lib/main/browser/editors-and-documents-main.js +321 -302
  242. package/lib/main/browser/editors-and-documents-main.js.map +1 -1
  243. package/lib/main/browser/env-main.d.ts +6 -15
  244. package/lib/main/browser/env-main.d.ts.map +1 -1
  245. package/lib/main/browser/env-main.js +63 -82
  246. package/lib/main/browser/env-main.js.map +1 -1
  247. package/lib/main/browser/file-system-main-impl.d.ts +27 -27
  248. package/lib/main/browser/file-system-main-impl.js +205 -205
  249. package/lib/main/browser/hierarchy/hierarchy-types-converters.d.ts +24 -24
  250. package/lib/main/browser/hierarchy/hierarchy-types-converters.js +184 -184
  251. package/lib/main/browser/keybindings/keybindings-contribution-handler.d.ts +9 -9
  252. package/lib/main/browser/keybindings/keybindings-contribution-handler.js +77 -77
  253. package/lib/main/browser/label-service-main.d.ts +10 -10
  254. package/lib/main/browser/label-service-main.js +46 -46
  255. package/lib/main/browser/languages-main.d.ts +143 -143
  256. package/lib/main/browser/languages-main.d.ts.map +1 -1
  257. package/lib/main/browser/languages-main.js +1187 -1184
  258. package/lib/main/browser/languages-main.js.map +1 -1
  259. package/lib/main/browser/localization-main.d.ts +8 -8
  260. package/lib/main/browser/localization-main.js +31 -31
  261. package/lib/main/browser/main-context.d.ts +3 -3
  262. package/lib/main/browser/main-context.d.ts.map +1 -1
  263. package/lib/main/browser/main-context.js +159 -161
  264. package/lib/main/browser/main-context.js.map +1 -1
  265. package/lib/main/browser/main-file-system-event-service.d.ts +7 -7
  266. package/lib/main/browser/main-file-system-event-service.js +65 -65
  267. package/lib/main/browser/menus/menus-contribution-handler.d.ts +29 -29
  268. package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
  269. package/lib/main/browser/menus/menus-contribution-handler.js +201 -198
  270. package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
  271. package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts +44 -44
  272. package/lib/main/browser/menus/plugin-menu-command-adapter.js +310 -310
  273. package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
  274. package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +18 -18
  275. package/lib/main/browser/menus/vscode-theia-menu-mappings.js +107 -107
  276. package/lib/main/browser/message-registry-main.d.ts +10 -8
  277. package/lib/main/browser/message-registry-main.d.ts.map +1 -1
  278. package/lib/main/browser/message-registry-main.js +40 -52
  279. package/lib/main/browser/message-registry-main.js.map +1 -1
  280. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts +50 -51
  281. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts.map +1 -1
  282. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js +199 -201
  283. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js.map +1 -1
  284. package/lib/main/browser/notebooks/notebook-documents-main.d.ts +21 -21
  285. package/lib/main/browser/notebooks/notebook-documents-main.js +131 -131
  286. package/lib/main/browser/notebooks/notebook-dto.d.ts +17 -17
  287. package/lib/main/browser/notebooks/notebook-dto.js +130 -130
  288. package/lib/main/browser/notebooks/notebook-editors-main.d.ts +19 -19
  289. package/lib/main/browser/notebooks/notebook-editors-main.js +57 -57
  290. package/lib/main/browser/notebooks/notebook-kernels-main.d.ts +42 -41
  291. package/lib/main/browser/notebooks/notebook-kernels-main.d.ts.map +1 -1
  292. package/lib/main/browser/notebooks/notebook-kernels-main.js +260 -223
  293. package/lib/main/browser/notebooks/notebook-kernels-main.js.map +1 -1
  294. package/lib/main/browser/notebooks/notebook-renderers-main.d.ts +11 -11
  295. package/lib/main/browser/notebooks/notebook-renderers-main.js +38 -38
  296. package/lib/main/browser/notebooks/notebooks-main.d.ts +30 -30
  297. package/lib/main/browser/notebooks/notebooks-main.js +102 -102
  298. package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +39 -33
  299. package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
  300. package/lib/main/browser/notebooks/renderers/cell-output-webview.js +249 -206
  301. package/lib/main/browser/notebooks/renderers/cell-output-webview.js.map +1 -1
  302. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts +13 -12
  303. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
  304. package/lib/main/browser/notebooks/renderers/output-webview-internal.js +457 -376
  305. package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
  306. package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +60 -51
  307. package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.map +1 -1
  308. package/lib/main/browser/notebooks/renderers/webview-communication.js +21 -21
  309. package/lib/main/browser/notification-main.d.ts +6 -18
  310. package/lib/main/browser/notification-main.d.ts.map +1 -1
  311. package/lib/main/browser/notification-main.js +26 -75
  312. package/lib/main/browser/notification-main.js.map +1 -1
  313. package/lib/main/browser/output-channel-registry-main.d.ts +10 -10
  314. package/lib/main/browser/output-channel-registry-main.js +60 -60
  315. package/lib/main/browser/plugin-authentication-service.d.ts +13 -13
  316. package/lib/main/browser/plugin-authentication-service.js +80 -80
  317. package/lib/main/browser/plugin-contribution-handler.d.ts +75 -75
  318. package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
  319. package/lib/main/browser/plugin-contribution-handler.js +664 -659
  320. package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
  321. package/lib/main/browser/plugin-ext-frontend-module.d.ts +7 -7
  322. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  323. package/lib/main/browser/plugin-ext-frontend-module.js +230 -230
  324. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  325. package/lib/main/browser/plugin-ext-widget.d.ts +28 -28
  326. package/lib/main/browser/plugin-ext-widget.js +129 -129
  327. package/lib/main/browser/plugin-frontend-contribution.d.ts +9 -9
  328. package/lib/main/browser/plugin-frontend-contribution.js +79 -79
  329. package/lib/main/browser/plugin-frontend-view-contribution.d.ts +6 -6
  330. package/lib/main/browser/plugin-frontend-view-contribution.js +50 -50
  331. package/lib/main/browser/plugin-icon-service.d.ts +16 -19
  332. package/lib/main/browser/plugin-icon-service.d.ts.map +1 -1
  333. package/lib/main/browser/plugin-icon-service.js +96 -155
  334. package/lib/main/browser/plugin-icon-service.js.map +1 -1
  335. package/lib/main/browser/plugin-icon-theme-service.d.ts +146 -146
  336. package/lib/main/browser/plugin-icon-theme-service.js +561 -561
  337. package/lib/main/browser/plugin-shared-style.d.ts +40 -40
  338. package/lib/main/browser/plugin-shared-style.js +144 -144
  339. package/lib/main/browser/plugin-storage.d.ts +13 -13
  340. package/lib/main/browser/plugin-storage.js +46 -46
  341. package/lib/main/browser/plugin-terminal-registry.d.ts +4 -4
  342. package/lib/main/browser/plugin-terminal-registry.js +34 -34
  343. package/lib/main/browser/preference-registry-main.d.ts +19 -19
  344. package/lib/main/browser/preference-registry-main.js +104 -104
  345. package/lib/main/browser/quick-open-main.d.ts +32 -31
  346. package/lib/main/browser/quick-open-main.d.ts.map +1 -1
  347. package/lib/main/browser/quick-open-main.js +318 -281
  348. package/lib/main/browser/quick-open-main.js.map +1 -1
  349. package/lib/main/browser/scm-main.d.ts +106 -106
  350. package/lib/main/browser/scm-main.js +346 -346
  351. package/lib/main/browser/scm-main.js.map +1 -1
  352. package/lib/main/browser/secrets-main.d.ts +12 -12
  353. package/lib/main/browser/secrets-main.js +67 -67
  354. package/lib/main/browser/selection-provider-command.d.ts +12 -12
  355. package/lib/main/browser/selection-provider-command.d.ts.map +1 -1
  356. package/lib/main/browser/selection-provider-command.js +56 -57
  357. package/lib/main/browser/selection-provider-command.js.map +1 -1
  358. package/lib/main/browser/status-bar-message-registry-main.d.ts +16 -16
  359. package/lib/main/browser/status-bar-message-registry-main.js +55 -55
  360. package/lib/main/browser/tabs/tabs-main.d.ts +47 -47
  361. package/lib/main/browser/tabs/tabs-main.js +291 -291
  362. package/lib/main/browser/tasks-main.d.ts +33 -33
  363. package/lib/main/browser/tasks-main.js +208 -208
  364. package/lib/main/browser/terminal-main.d.ts +50 -50
  365. package/lib/main/browser/terminal-main.d.ts.map +1 -1
  366. package/lib/main/browser/terminal-main.js +269 -269
  367. package/lib/main/browser/terminal-main.js.map +1 -1
  368. package/lib/main/browser/test-main.d.ts +140 -140
  369. package/lib/main/browser/test-main.js +559 -559
  370. package/lib/main/browser/text-editor-main.d.ts +47 -47
  371. package/lib/main/browser/text-editor-main.js +384 -384
  372. package/lib/main/browser/text-editor-model-service.d.ts +28 -28
  373. package/lib/main/browser/text-editor-model-service.js +108 -108
  374. package/lib/main/browser/text-editors-main.d.ts +37 -38
  375. package/lib/main/browser/text-editors-main.d.ts.map +1 -1
  376. package/lib/main/browser/text-editors-main.js +164 -158
  377. package/lib/main/browser/text-editors-main.js.map +1 -1
  378. package/lib/main/browser/theme-icon-override.d.ts +1 -1
  379. package/lib/main/browser/theme-icon-override.js +244 -250
  380. package/lib/main/browser/theme-icon-override.js.map +1 -1
  381. package/lib/main/browser/theming-main.d.ts +9 -9
  382. package/lib/main/browser/theming-main.js +35 -35
  383. package/lib/main/browser/timeline-main.d.ts +13 -13
  384. package/lib/main/browser/timeline-main.js +50 -50
  385. package/lib/main/browser/view/dnd-file-content-store.d.ts +7 -7
  386. package/lib/main/browser/view/dnd-file-content-store.js +51 -51
  387. package/lib/main/browser/view/plugin-tree-view-node-label-provider.d.ts +11 -11
  388. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +90 -90
  389. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
  390. package/lib/main/browser/view/plugin-view-registry.d.ts +105 -103
  391. package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
  392. package/lib/main/browser/view/plugin-view-registry.js +892 -876
  393. package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
  394. package/lib/main/browser/view/plugin-view-widget.d.ts +62 -62
  395. package/lib/main/browser/view/plugin-view-widget.d.ts.map +1 -1
  396. package/lib/main/browser/view/plugin-view-widget.js +206 -207
  397. package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
  398. package/lib/main/browser/view/tree-view-decorator-service.d.ts +30 -30
  399. package/lib/main/browser/view/tree-view-decorator-service.js +68 -68
  400. package/lib/main/browser/view/tree-view-widget.d.ts +166 -166
  401. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  402. package/lib/main/browser/view/tree-view-widget.js +843 -844
  403. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  404. package/lib/main/browser/view/tree-views-main.d.ts +34 -34
  405. package/lib/main/browser/view/tree-views-main.js +181 -181
  406. package/lib/main/browser/view/view-context-key-service.d.ts +18 -18
  407. package/lib/main/browser/view/view-context-key-service.js +74 -74
  408. package/lib/main/browser/view-column-service.d.ts +23 -23
  409. package/lib/main/browser/view-column-service.js +129 -129
  410. package/lib/main/browser/webview/webview-context-keys.d.ts +16 -12
  411. package/lib/main/browser/webview/webview-context-keys.d.ts.map +1 -1
  412. package/lib/main/browser/webview/webview-context-keys.js +72 -63
  413. package/lib/main/browser/webview/webview-context-keys.js.map +1 -1
  414. package/lib/main/browser/webview/webview-environment.d.ts +16 -16
  415. package/lib/main/browser/webview/webview-environment.js +96 -96
  416. package/lib/main/browser/webview/webview-frontend-security-warnings.d.ts +11 -11
  417. package/lib/main/browser/webview/webview-frontend-security-warnings.js +73 -73
  418. package/lib/main/browser/webview/webview-preferences.d.ts +12 -12
  419. package/lib/main/browser/webview/webview-preferences.js +57 -57
  420. package/lib/main/browser/webview/webview-resource-cache.d.ts +17 -17
  421. package/lib/main/browser/webview/webview-resource-cache.js +90 -90
  422. package/lib/main/browser/webview/webview-theme-data-provider.d.ts +30 -30
  423. package/lib/main/browser/webview/webview-theme-data-provider.js +132 -132
  424. package/lib/main/browser/webview/webview-widget-factory.d.ts +8 -8
  425. package/lib/main/browser/webview/webview-widget-factory.d.ts.map +1 -1
  426. package/lib/main/browser/webview/webview-widget-factory.js +39 -38
  427. package/lib/main/browser/webview/webview-widget-factory.js.map +1 -1
  428. package/lib/main/browser/webview/webview.d.ts +162 -161
  429. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  430. package/lib/main/browser/webview/webview.js +620 -619
  431. package/lib/main/browser/webview/webview.js.map +1 -1
  432. package/lib/main/browser/webview-views/webview-views-main.d.ts +32 -32
  433. package/lib/main/browser/webview-views/webview-views-main.js +136 -136
  434. package/lib/main/browser/webview-views/webview-views.d.ts +19 -19
  435. package/lib/main/browser/webview-views/webview-views.js +22 -22
  436. package/lib/main/browser/webviews-main.d.ts +40 -40
  437. package/lib/main/browser/webviews-main.d.ts.map +1 -1
  438. package/lib/main/browser/webviews-main.js +248 -243
  439. package/lib/main/browser/webviews-main.js.map +1 -1
  440. package/lib/main/browser/window-state-main.d.ts +16 -16
  441. package/lib/main/browser/window-state-main.js +61 -61
  442. package/lib/main/browser/workspace-main.d.ts +77 -77
  443. package/lib/main/browser/workspace-main.js +348 -348
  444. package/lib/main/common/basic-message-registry-main.d.ts +14 -0
  445. package/lib/main/common/basic-message-registry-main.d.ts.map +1 -0
  446. package/lib/main/common/basic-message-registry-main.js +50 -0
  447. package/lib/main/common/basic-message-registry-main.js.map +1 -0
  448. package/lib/main/common/basic-notification-main.d.ts +19 -0
  449. package/lib/main/common/basic-notification-main.d.ts.map +1 -0
  450. package/lib/main/common/basic-notification-main.js +75 -0
  451. package/lib/main/common/basic-notification-main.js.map +1 -0
  452. package/lib/main/common/env-main.d.ts +11 -0
  453. package/lib/main/common/env-main.d.ts.map +1 -0
  454. package/lib/main/common/env-main.js +40 -0
  455. package/lib/main/common/env-main.js.map +1 -0
  456. package/lib/main/common/plugin-paths-protocol.d.ts +8 -8
  457. package/lib/main/common/plugin-paths-protocol.js +21 -21
  458. package/lib/main/common/plugin-theia-environment.d.ts +7 -7
  459. package/lib/main/common/plugin-theia-environment.js +47 -47
  460. package/lib/main/common/webview-protocol.d.ts +12 -12
  461. package/lib/main/common/webview-protocol.js +31 -31
  462. package/lib/main/electron-browser/plugin-ext-frontend-electron-module.d.ts +3 -3
  463. package/lib/main/electron-browser/plugin-ext-frontend-electron-module.js +25 -25
  464. package/lib/main/electron-browser/webview/electron-webview-widget-factory.d.ts +23 -23
  465. package/lib/main/electron-browser/webview/electron-webview-widget-factory.js +53 -53
  466. package/lib/main/node/errors.spec.d.ts +1 -1
  467. package/lib/main/node/errors.spec.js +35 -35
  468. package/lib/main/node/errors.spec.js.map +1 -1
  469. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +18 -13
  470. package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts.map +1 -1
  471. package/lib/main/node/handlers/plugin-theia-directory-handler.js +137 -119
  472. package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
  473. package/lib/main/node/handlers/plugin-theia-file-handler.d.ts +10 -10
  474. package/lib/main/node/handlers/plugin-theia-file-handler.js +74 -74
  475. package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
  476. package/lib/main/node/paths/const.d.ts +5 -5
  477. package/lib/main/node/paths/const.js +24 -24
  478. package/lib/main/node/paths/plugin-paths-service.d.ts +25 -25
  479. package/lib/main/node/paths/plugin-paths-service.js +160 -160
  480. package/lib/main/node/plugin-cli-contribution.d.ts +21 -21
  481. package/lib/main/node/plugin-cli-contribution.js +84 -84
  482. package/lib/main/node/plugin-deployer-contribution.d.ts +8 -8
  483. package/lib/main/node/plugin-deployer-contribution.js +48 -48
  484. package/lib/main/node/plugin-deployer-directory-handler-context-impl.d.ts +7 -7
  485. package/lib/main/node/plugin-deployer-directory-handler-context-impl.js +44 -44
  486. package/lib/main/node/plugin-deployer-entry-impl.d.ts +34 -34
  487. package/lib/main/node/plugin-deployer-entry-impl.js +111 -111
  488. package/lib/main/node/plugin-deployer-file-handler-context-impl.d.ts +7 -7
  489. package/lib/main/node/plugin-deployer-file-handler-context-impl.js +31 -31
  490. package/lib/main/node/plugin-deployer-impl.d.ts +61 -61
  491. package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
  492. package/lib/main/node/plugin-deployer-impl.js +338 -334
  493. package/lib/main/node/plugin-deployer-impl.js.map +1 -1
  494. package/lib/main/node/plugin-deployer-proxy-entry-impl.d.ts +29 -29
  495. package/lib/main/node/plugin-deployer-proxy-entry-impl.js +98 -98
  496. package/lib/main/node/plugin-deployer-resolver-context-impl.d.ts +15 -15
  497. package/lib/main/node/plugin-deployer-resolver-context-impl.js +42 -42
  498. package/lib/main/node/plugin-ext-backend-module.d.ts +2 -2
  499. package/lib/main/node/plugin-ext-backend-module.js +73 -73
  500. package/lib/main/node/plugin-github-resolver.d.ts +23 -23
  501. package/lib/main/node/plugin-github-resolver.js +143 -143
  502. package/lib/main/node/plugin-http-resolver.d.ts +20 -20
  503. package/lib/main/node/plugin-http-resolver.js +99 -99
  504. package/lib/main/node/plugin-localization-server.d.ts +9 -9
  505. package/lib/main/node/plugin-localization-server.js +58 -58
  506. package/lib/main/node/plugin-mgmt-cli-contribution.d.ts +12 -12
  507. package/lib/main/node/plugin-mgmt-cli-contribution.js +70 -70
  508. package/lib/main/node/plugin-server-handler.d.ts +16 -16
  509. package/lib/main/node/plugin-server-handler.js +74 -74
  510. package/lib/main/node/plugin-service.d.ts +23 -23
  511. package/lib/main/node/plugin-service.js +109 -109
  512. package/lib/main/node/plugin-theia-deployer-participant.d.ts +6 -6
  513. package/lib/main/node/plugin-theia-deployer-participant.js +43 -43
  514. package/lib/main/node/plugin-uninstallation-manager.d.ts +14 -14
  515. package/lib/main/node/plugin-uninstallation-manager.js +84 -84
  516. package/lib/main/node/plugins-key-value-storage.d.ts +28 -28
  517. package/lib/main/node/plugins-key-value-storage.js +167 -167
  518. package/lib/main/node/plugins-key-value-storage.js.map +1 -1
  519. package/lib/main/node/plugins-key-value-storage.spec.d.ts +16 -16
  520. package/lib/main/node/plugins-key-value-storage.spec.js +100 -100
  521. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.d.ts +7 -7
  522. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +43 -43
  523. package/lib/main/node/resolvers/local-plugin-deployer-resolver.d.ts +8 -8
  524. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +59 -59
  525. package/lib/main/node/temp-dir-util.d.ts +2 -2
  526. package/lib/main/node/temp-dir-util.js +39 -39
  527. package/lib/main/node/webview-backend-security-warnings.d.ts +5 -5
  528. package/lib/main/node/webview-backend-security-warnings.js +51 -51
  529. package/lib/plugin/authentication-ext.d.ts +30 -30
  530. package/lib/plugin/authentication-ext.js +94 -94
  531. package/lib/plugin/clipboard-ext.d.ts +10 -9
  532. package/lib/plugin/clipboard-ext.d.ts.map +1 -1
  533. package/lib/plugin/clipboard-ext.js +55 -31
  534. package/lib/plugin/clipboard-ext.js.map +1 -1
  535. package/lib/plugin/command-registry.d.ts +41 -41
  536. package/lib/plugin/command-registry.js +182 -182
  537. package/lib/plugin/comments.d.ts +92 -92
  538. package/lib/plugin/comments.js +392 -392
  539. package/lib/plugin/custom-editors.d.ts +47 -47
  540. package/lib/plugin/custom-editors.js +255 -255
  541. package/lib/plugin/custom-editors.js.map +1 -1
  542. package/lib/plugin/debug/debug-ext.d.ts +88 -86
  543. package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
  544. package/lib/plugin/debug/debug-ext.js +421 -394
  545. package/lib/plugin/debug/debug-ext.js.map +1 -1
  546. package/lib/plugin/debug/plugin-debug-adapter-creator.d.ts +10 -10
  547. package/lib/plugin/debug/plugin-debug-adapter-creator.js +41 -41
  548. package/lib/plugin/debug/plugin-debug-adapter-session.d.ts +26 -26
  549. package/lib/plugin/debug/plugin-debug-adapter-session.js +96 -96
  550. package/lib/plugin/debug/plugin-debug-adapter-tracker.d.ts +12 -12
  551. package/lib/plugin/debug/plugin-debug-adapter-tracker.js +77 -77
  552. package/lib/plugin/decorations.d.ts +14 -14
  553. package/lib/plugin/decorations.js +112 -112
  554. package/lib/plugin/dialogs.d.ts +10 -10
  555. package/lib/plugin/dialogs.js +91 -91
  556. package/lib/plugin/document-data.d.ts +38 -38
  557. package/lib/plugin/document-data.js +309 -309
  558. package/lib/plugin/documents.d.ts +56 -56
  559. package/lib/plugin/documents.js +253 -253
  560. package/lib/plugin/documents.js.map +1 -1
  561. package/lib/plugin/editors-and-documents.d.ts +25 -26
  562. package/lib/plugin/editors-and-documents.d.ts.map +1 -1
  563. package/lib/plugin/editors-and-documents.js +154 -137
  564. package/lib/plugin/editors-and-documents.js.map +1 -1
  565. package/lib/plugin/env.d.ts +38 -34
  566. package/lib/plugin/env.d.ts.map +1 -1
  567. package/lib/plugin/env.js +118 -85
  568. package/lib/plugin/env.js.map +1 -1
  569. package/lib/plugin/file-system-event-service-ext-impl.d.ts +40 -40
  570. package/lib/plugin/file-system-event-service-ext-impl.js +203 -203
  571. package/lib/plugin/file-system-ext-impl.d.ts +56 -56
  572. package/lib/plugin/file-system-ext-impl.js +346 -346
  573. package/lib/plugin/known-commands.d.ts +5 -5
  574. package/lib/plugin/known-commands.d.ts.map +1 -1
  575. package/lib/plugin/known-commands.js +400 -399
  576. package/lib/plugin/known-commands.js.map +1 -1
  577. package/lib/plugin/known-commands.spec.d.ts +1 -1
  578. package/lib/plugin/known-commands.spec.js +42 -42
  579. package/lib/plugin/label-service.d.ts +11 -11
  580. package/lib/plugin/label-service.js +35 -35
  581. package/lib/plugin/languages/call-hierarchy.d.ts +20 -20
  582. package/lib/plugin/languages/call-hierarchy.js +101 -101
  583. package/lib/plugin/languages/code-action.d.ts +24 -24
  584. package/lib/plugin/languages/code-action.js +137 -137
  585. package/lib/plugin/languages/color.d.ts +12 -12
  586. package/lib/plugin/languages/color.js +58 -58
  587. package/lib/plugin/languages/completion.d.ts +20 -20
  588. package/lib/plugin/languages/completion.js +164 -164
  589. package/lib/plugin/languages/declaration.d.ts +11 -11
  590. package/lib/plugin/languages/declaration.js +58 -58
  591. package/lib/plugin/languages/definition.d.ts +11 -11
  592. package/lib/plugin/languages/definition.js +58 -58
  593. package/lib/plugin/languages/diagnostics.d.ts +49 -49
  594. package/lib/plugin/languages/diagnostics.js +281 -281
  595. package/lib/plugin/languages/diagnostics.js.map +1 -1
  596. package/lib/plugin/languages/document-drop-edit.d.ts +15 -15
  597. package/lib/plugin/languages/document-drop-edit.js +22 -22
  598. package/lib/plugin/languages/document-formatting.d.ts +10 -10
  599. package/lib/plugin/languages/document-formatting.js +40 -40
  600. package/lib/plugin/languages/document-highlight.d.ts +12 -12
  601. package/lib/plugin/languages/document-highlight.js +50 -50
  602. package/lib/plugin/languages/evaluatable-expression.d.ts +11 -11
  603. package/lib/plugin/languages/evaluatable-expression.js +40 -40
  604. package/lib/plugin/languages/folding.d.ts +10 -10
  605. package/lib/plugin/languages/folding.js +39 -39
  606. package/lib/plugin/languages/hover.d.ts +11 -11
  607. package/lib/plugin/languages/hover.js +48 -48
  608. package/lib/plugin/languages/implementation.d.ts +11 -11
  609. package/lib/plugin/languages/implementation.js +58 -58
  610. package/lib/plugin/languages/inlay-hints.d.ts +19 -19
  611. package/lib/plugin/languages/inlay-hints.js +127 -127
  612. package/lib/plugin/languages/inline-completion.d.ts +20 -20
  613. package/lib/plugin/languages/inline-completion.js +93 -93
  614. package/lib/plugin/languages/inline-values.d.ts +10 -10
  615. package/lib/plugin/languages/inline-values.js +44 -44
  616. package/lib/plugin/languages/lens.d.ts +19 -19
  617. package/lib/plugin/languages/lens.js +89 -89
  618. package/lib/plugin/languages/link-provider.d.ts +14 -14
  619. package/lib/plugin/languages/link-provider.d.ts.map +1 -1
  620. package/lib/plugin/languages/link-provider.js +73 -71
  621. package/lib/plugin/languages/link-provider.js.map +1 -1
  622. package/lib/plugin/languages/linked-editing-range.d.ts +11 -11
  623. package/lib/plugin/languages/linked-editing-range.js +40 -40
  624. package/lib/plugin/languages/on-type-formatting.d.ts +11 -11
  625. package/lib/plugin/languages/on-type-formatting.js +41 -41
  626. package/lib/plugin/languages/outline.d.ts +20 -20
  627. package/lib/plugin/languages/outline.js +115 -115
  628. package/lib/plugin/languages/range-formatting.d.ts +10 -10
  629. package/lib/plugin/languages/range-formatting.js +41 -41
  630. package/lib/plugin/languages/reference.d.ts +11 -11
  631. package/lib/plugin/languages/reference.js +47 -47
  632. package/lib/plugin/languages/rename.d.ts +14 -14
  633. package/lib/plugin/languages/rename.js +114 -114
  634. package/lib/plugin/languages/selection-range.d.ts +11 -11
  635. package/lib/plugin/languages/selection-range.js +65 -65
  636. package/lib/plugin/languages/semantic-highlighting.d.ts +28 -28
  637. package/lib/plugin/languages/semantic-highlighting.js +175 -175
  638. package/lib/plugin/languages/signature.d.ts +15 -15
  639. package/lib/plugin/languages/signature.js +71 -71
  640. package/lib/plugin/languages/type-definition.d.ts +11 -11
  641. package/lib/plugin/languages/type-definition.js +58 -58
  642. package/lib/plugin/languages/type-hierarchy.d.ts +18 -18
  643. package/lib/plugin/languages/type-hierarchy.js +95 -95
  644. package/lib/plugin/languages/util.d.ts +4 -4
  645. package/lib/plugin/languages/util.js +27 -27
  646. package/lib/plugin/languages/workspace-symbol.d.ts +8 -8
  647. package/lib/plugin/languages/workspace-symbol.js +61 -61
  648. package/lib/plugin/languages-utils.d.ts +6 -6
  649. package/lib/plugin/languages-utils.js +65 -65
  650. package/lib/plugin/languages.d.ts +127 -127
  651. package/lib/plugin/languages.js +712 -712
  652. package/lib/plugin/localization-ext.d.ts +17 -16
  653. package/lib/plugin/localization-ext.d.ts.map +1 -1
  654. package/lib/plugin/localization-ext.js +99 -73
  655. package/lib/plugin/localization-ext.js.map +1 -1
  656. package/lib/plugin/markdown-string.d.ts +24 -24
  657. package/lib/plugin/markdown-string.d.ts.map +1 -1
  658. package/lib/plugin/markdown-string.js +124 -124
  659. package/lib/plugin/markdown-string.js.map +1 -1
  660. package/lib/plugin/message-registry.d.ts +9 -8
  661. package/lib/plugin/message-registry.d.ts.map +1 -1
  662. package/lib/plugin/message-registry.js +84 -60
  663. package/lib/plugin/message-registry.js.map +1 -1
  664. package/lib/plugin/node/debug/debug.spec.d.ts +1 -1
  665. package/lib/plugin/node/debug/debug.spec.js +87 -67
  666. package/lib/plugin/node/debug/debug.spec.js.map +1 -1
  667. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.d.ts +17 -17
  668. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js +154 -154
  669. package/lib/plugin/node/env-node-ext.d.ts +16 -21
  670. package/lib/plugin/node/env-node-ext.d.ts.map +1 -1
  671. package/lib/plugin/node/env-node-ext.js +71 -63
  672. package/lib/plugin/node/env-node-ext.js.map +1 -1
  673. package/lib/plugin/node/plugin-container-module.d.ts +75 -0
  674. package/lib/plugin/node/plugin-container-module.d.ts.map +1 -0
  675. package/lib/plugin/node/plugin-container-module.js +115 -0
  676. package/lib/plugin/node/plugin-container-module.js.map +1 -0
  677. package/lib/plugin/notebook/notebook-document.d.ts +61 -61
  678. package/lib/plugin/notebook/notebook-document.js +372 -372
  679. package/lib/plugin/notebook/notebook-documents.d.ts +16 -16
  680. package/lib/plugin/notebook/notebook-documents.js +47 -47
  681. package/lib/plugin/notebook/notebook-editor.d.ts +20 -20
  682. package/lib/plugin/notebook/notebook-editor.js +98 -98
  683. package/lib/plugin/notebook/notebook-editors.d.ts +13 -13
  684. package/lib/plugin/notebook/notebook-editors.js +64 -64
  685. package/lib/plugin/notebook/notebook-kernels.d.ts +35 -36
  686. package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
  687. package/lib/plugin/notebook/notebook-kernels.js +516 -516
  688. package/lib/plugin/notebook/notebook-kernels.js.map +1 -1
  689. package/lib/plugin/notebook/notebook-renderers.d.ts +13 -13
  690. package/lib/plugin/notebook/notebook-renderers.d.ts.map +1 -1
  691. package/lib/plugin/notebook/notebook-renderers.js +62 -62
  692. package/lib/plugin/notebook/notebook-renderers.js.map +1 -1
  693. package/lib/plugin/notebook/notebooks.d.ts +57 -56
  694. package/lib/plugin/notebook/notebooks.d.ts.map +1 -1
  695. package/lib/plugin/notebook/notebooks.js +316 -297
  696. package/lib/plugin/notebook/notebooks.js.map +1 -1
  697. package/lib/plugin/notification.d.ts +17 -17
  698. package/lib/plugin/notification.js +67 -67
  699. package/lib/plugin/output-channel/log-output-channel.d.ts +23 -23
  700. package/lib/plugin/output-channel/log-output-channel.js +91 -91
  701. package/lib/plugin/output-channel/output-channel-item.d.ts +17 -17
  702. package/lib/plugin/output-channel/output-channel-item.js +51 -51
  703. package/lib/plugin/output-channel-registry.d.ts +13 -13
  704. package/lib/plugin/output-channel-registry.js +44 -44
  705. package/lib/plugin/path.d.ts +2 -2
  706. package/lib/plugin/path.js +59 -59
  707. package/lib/plugin/path.spec.d.ts +1 -1
  708. package/lib/plugin/path.spec.js +34 -34
  709. package/lib/plugin/plugin-context.d.ts +58 -58
  710. package/lib/plugin/plugin-context.d.ts.map +1 -1
  711. package/lib/plugin/plugin-context.js +1185 -1170
  712. package/lib/plugin/plugin-context.js.map +1 -1
  713. package/lib/plugin/plugin-icon-path.d.ts +11 -11
  714. package/lib/plugin/plugin-icon-path.js +49 -49
  715. package/lib/plugin/plugin-manager.d.ts +92 -83
  716. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  717. package/lib/plugin/plugin-manager.js +428 -358
  718. package/lib/plugin/plugin-manager.js.map +1 -1
  719. package/lib/plugin/plugin-storage.d.ts +44 -36
  720. package/lib/plugin/plugin-storage.d.ts.map +1 -1
  721. package/lib/plugin/plugin-storage.js +119 -99
  722. package/lib/plugin/plugin-storage.js.map +1 -1
  723. package/lib/plugin/preference-registry.d.ts +40 -39
  724. package/lib/plugin/preference-registry.d.ts.map +1 -1
  725. package/lib/plugin/preference-registry.js +317 -287
  726. package/lib/plugin/preference-registry.js.map +1 -1
  727. package/lib/plugin/preference-registry.spec.d.ts +1 -1
  728. package/lib/plugin/preference-registry.spec.js +246 -239
  729. package/lib/plugin/preference-registry.spec.js.map +1 -1
  730. package/lib/plugin/prefix-sum-computer.d.ts +30 -30
  731. package/lib/plugin/prefix-sum-computer.js +172 -172
  732. package/lib/plugin/quick-open.d.ts +195 -202
  733. package/lib/plugin/quick-open.d.ts.map +1 -1
  734. package/lib/plugin/quick-open.js +622 -638
  735. package/lib/plugin/quick-open.js.map +1 -1
  736. package/lib/plugin/scm.d.ts +53 -53
  737. package/lib/plugin/scm.js +726 -726
  738. package/lib/plugin/secrets-ext.d.ts +39 -30
  739. package/lib/plugin/secrets-ext.d.ts.map +1 -1
  740. package/lib/plugin/secrets-ext.js +88 -68
  741. package/lib/plugin/secrets-ext.js.map +1 -1
  742. package/lib/plugin/status-bar/status-bar-item.d.ts +44 -44
  743. package/lib/plugin/status-bar/status-bar-item.js +122 -122
  744. package/lib/plugin/status-bar-message-registry.d.ts +20 -20
  745. package/lib/plugin/status-bar-message-registry.js +84 -84
  746. package/lib/plugin/tabs.d.ts +22 -22
  747. package/lib/plugin/tabs.js +358 -358
  748. package/lib/plugin/tasks/task-provider.d.ts +8 -8
  749. package/lib/plugin/tasks/task-provider.js +53 -53
  750. package/lib/plugin/tasks/tasks.d.ts +46 -46
  751. package/lib/plugin/tasks/tasks.js +215 -215
  752. package/lib/plugin/telemetry-ext.d.ts +43 -43
  753. package/lib/plugin/telemetry-ext.js +251 -251
  754. package/lib/plugin/terminal-ext.d.ts +113 -113
  755. package/lib/plugin/terminal-ext.d.ts.map +1 -1
  756. package/lib/plugin/terminal-ext.js +488 -468
  757. package/lib/plugin/terminal-ext.js.map +1 -1
  758. package/lib/plugin/test-item.d.ts +46 -46
  759. package/lib/plugin/test-item.js +195 -195
  760. package/lib/plugin/tests.d.ts +121 -121
  761. package/lib/plugin/tests.js +423 -423
  762. package/lib/plugin/tests.js.map +1 -1
  763. package/lib/plugin/text-editor.d.ts +104 -104
  764. package/lib/plugin/text-editor.js +464 -464
  765. package/lib/plugin/text-editors.d.ts +39 -37
  766. package/lib/plugin/text-editors.d.ts.map +1 -1
  767. package/lib/plugin/text-editors.js +132 -126
  768. package/lib/plugin/text-editors.js.map +1 -1
  769. package/lib/plugin/theming.d.ts +15 -15
  770. package/lib/plugin/theming.js +61 -61
  771. package/lib/plugin/timeline.d.ts +20 -20
  772. package/lib/plugin/timeline.js +157 -157
  773. package/lib/plugin/tree/tree-views.d.ts +107 -107
  774. package/lib/plugin/tree/tree-views.js +590 -590
  775. package/lib/plugin/type-converters.d.ts +204 -195
  776. package/lib/plugin/type-converters.d.ts.map +1 -1
  777. package/lib/plugin/type-converters.js +1676 -1637
  778. package/lib/plugin/type-converters.js.map +1 -1
  779. package/lib/plugin/type-converters.spec.d.ts +1 -1
  780. package/lib/plugin/type-converters.spec.js +395 -395
  781. package/lib/plugin/types-impl.d.ts +1653 -1633
  782. package/lib/plugin/types-impl.d.ts.map +1 -1
  783. package/lib/plugin/types-impl.js +3185 -3169
  784. package/lib/plugin/types-impl.js.map +1 -1
  785. package/lib/plugin/types-impl.spec.d.ts +1 -1
  786. package/lib/plugin/types-impl.spec.js +78 -78
  787. package/lib/plugin/webview-views.d.ts +55 -55
  788. package/lib/plugin/webview-views.d.ts.map +1 -1
  789. package/lib/plugin/webview-views.js +156 -155
  790. package/lib/plugin/webview-views.js.map +1 -1
  791. package/lib/plugin/webviews.d.ts +110 -95
  792. package/lib/plugin/webviews.d.ts.map +1 -1
  793. package/lib/plugin/webviews.js +393 -343
  794. package/lib/plugin/webviews.js.map +1 -1
  795. package/lib/plugin/window-state.d.ts +16 -16
  796. package/lib/plugin/window-state.js +54 -54
  797. package/lib/plugin/word-helper.d.ts +21 -21
  798. package/lib/plugin/word-helper.js +125 -125
  799. package/lib/plugin/workspace.d.ts +62 -61
  800. package/lib/plugin/workspace.d.ts.map +1 -1
  801. package/lib/plugin/workspace.js +445 -411
  802. package/lib/plugin/workspace.js.map +1 -1
  803. package/lib/plugin-ext-backend-electron-module.d.ts +3 -3
  804. package/lib/plugin-ext-backend-electron-module.js +24 -24
  805. package/lib/plugin-ext-backend-module.d.ts +3 -3
  806. package/lib/plugin-ext-backend-module.js +24 -24
  807. package/lib/plugin-ext-frontend-electron-module.d.ts +2 -2
  808. package/lib/plugin-ext-frontend-electron-module.js +19 -19
  809. package/lib/plugin-ext-frontend-module.d.ts +2 -2
  810. package/lib/plugin-ext-frontend-module.js +19 -19
  811. package/package.json +30 -31
  812. package/src/common/arrays.ts +70 -70
  813. package/src/common/assert.ts +23 -23
  814. package/src/common/cache.ts +51 -51
  815. package/src/common/character-classifier.ts +73 -73
  816. package/src/common/collections.ts +54 -54
  817. package/src/common/commands.ts +19 -19
  818. package/src/common/connection.ts +137 -137
  819. package/src/common/disposable-util.ts +39 -39
  820. package/src/common/editor-options.ts +74 -74
  821. package/src/common/env.ts +19 -19
  822. package/src/common/errors.ts +63 -63
  823. package/src/common/id-generator.ts +26 -26
  824. package/src/common/index.ts +24 -24
  825. package/src/common/language-pack-service.ts +34 -34
  826. package/src/common/link-computer.ts +354 -354
  827. package/src/common/object-identifier.ts +33 -33
  828. package/src/common/objects.ts +50 -50
  829. package/src/common/paths-util.ts +158 -158
  830. package/src/common/plugin-api-rpc-model.ts +897 -897
  831. package/src/common/plugin-api-rpc.ts +2686 -2669
  832. package/src/common/plugin-ext-api-contribution.ts +115 -82
  833. package/src/common/plugin-identifiers.ts +84 -84
  834. package/src/common/plugin-protocol.ts +1091 -1075
  835. package/src/common/proxy-handler.ts +141 -128
  836. package/src/common/reference-map.ts +38 -38
  837. package/src/common/rpc-protocol.ts +310 -272
  838. package/src/common/semantic-tokens-dto.ts +182 -182
  839. package/src/common/test-types.ts +153 -153
  840. package/src/common/types.ts +129 -129
  841. package/src/common/uint.ts +37 -37
  842. package/src/common/uri-components.ts +81 -85
  843. package/src/hosted/browser/hosted-plugin-watcher.ts +54 -54
  844. package/src/hosted/browser/hosted-plugin.ts +621 -910
  845. package/src/hosted/browser/plugin-worker.ts +52 -52
  846. package/src/hosted/browser/worker/debug-stub.ts +29 -28
  847. package/src/hosted/browser/worker/plugin-manifest-loader.ts +114 -114
  848. package/src/hosted/browser/worker/worker-env-ext.ts +42 -41
  849. package/src/hosted/browser/worker/worker-main.ts +212 -224
  850. package/src/hosted/browser/worker/worker-plugin-module.ts +80 -0
  851. package/src/hosted/common/hosted-plugin.ts +456 -0
  852. package/src/hosted/node/hosted-plugin-cli-contribution.ts +75 -75
  853. package/src/hosted/node/hosted-plugin-deployer-handler.ts +268 -268
  854. package/src/hosted/node/hosted-plugin-localization-service.ts +410 -410
  855. package/src/hosted/node/hosted-plugin-process.ts +248 -248
  856. package/src/hosted/node/hosted-plugin-protocol.ts +49 -49
  857. package/src/hosted/node/hosted-plugin.ts +116 -116
  858. package/src/hosted/node/metadata-scanner.ts +64 -64
  859. package/src/hosted/node/plugin-activation-events.ts +112 -112
  860. package/src/hosted/node/plugin-ext-hosted-backend-module.ts +94 -92
  861. package/src/hosted/node/plugin-host-module.ts +69 -0
  862. package/src/hosted/node/plugin-host-proxy.ts +82 -82
  863. package/src/hosted/node/plugin-host-rpc.ts +377 -218
  864. package/src/hosted/node/plugin-host.ts +110 -108
  865. package/src/hosted/node/plugin-language-pack-service.ts +43 -43
  866. package/src/hosted/node/plugin-manifest-loader.ts +32 -32
  867. package/src/hosted/node/plugin-reader.ts +136 -133
  868. package/src/hosted/node/plugin-service.ts +192 -175
  869. package/src/hosted/node/scanners/backend-init-theia.ts +71 -71
  870. package/src/hosted/node/scanners/file-plugin-uri-factory.ts +32 -32
  871. package/src/hosted/node/scanners/grammars-reader.ts +57 -57
  872. package/src/hosted/node/scanners/plugin-uri-factory.ts +33 -33
  873. package/src/hosted/node/scanners/scanner-theia.ts +951 -911
  874. package/src/hosted/node-electron/plugin-ext-hosted-electron-backend-module.ts +26 -26
  875. package/src/hosted/node-electron/scanner-theia-electron.ts +32 -32
  876. package/src/main/browser/authentication-main.ts +388 -386
  877. package/src/main/browser/clipboard-main.ts +38 -38
  878. package/src/main/browser/command-registry-main.ts +123 -123
  879. package/src/main/browser/commands.ts +104 -104
  880. package/src/main/browser/comments/comment-glyph-widget.ts +66 -66
  881. package/src/main/browser/comments/comment-thread-widget.tsx +696 -696
  882. package/src/main/browser/comments/comments-context-key-service.ts +68 -68
  883. package/src/main/browser/comments/comments-contribution.ts +268 -264
  884. package/src/main/browser/comments/comments-decorator.ts +110 -110
  885. package/src/main/browser/comments/comments-main.ts +482 -482
  886. package/src/main/browser/comments/comments-service.ts +205 -205
  887. package/src/main/browser/custom-editors/custom-editor-contribution.ts +38 -38
  888. package/src/main/browser/custom-editors/custom-editor-opener.tsx +105 -105
  889. package/src/main/browser/custom-editors/custom-editor-service.ts +108 -108
  890. package/src/main/browser/custom-editors/custom-editor-widget-factory.ts +44 -44
  891. package/src/main/browser/custom-editors/custom-editor-widget.ts +129 -127
  892. package/src/main/browser/custom-editors/custom-editors-main.ts +595 -595
  893. package/src/main/browser/custom-editors/plugin-custom-editor-registry.ts +142 -142
  894. package/src/main/browser/data-transfer/data-transfer-type-converters.ts +68 -70
  895. package/src/main/browser/debug/debug-main.ts +373 -373
  896. package/src/main/browser/debug/plugin-debug-adapter-contribution.ts +48 -48
  897. package/src/main/browser/debug/plugin-debug-configuration-provider.ts +63 -63
  898. package/src/main/browser/debug/plugin-debug-service.ts +427 -427
  899. package/src/main/browser/debug/plugin-debug-session-contribution-registry.ts +76 -76
  900. package/src/main/browser/debug/plugin-debug-session-factory.ts +105 -105
  901. package/src/main/browser/decorations/decorations-main.ts +146 -146
  902. package/src/main/browser/dialogs/modal-notification.ts +112 -112
  903. package/src/main/browser/dialogs/style/modal-notification.css +123 -123
  904. package/src/main/browser/dialogs-main.ts +185 -185
  905. package/src/main/browser/documents-main.ts +289 -289
  906. package/src/main/browser/editors-and-documents-main.ts +417 -395
  907. package/src/main/browser/env-main.ts +60 -87
  908. package/src/main/browser/file-system-main-impl.ts +263 -263
  909. package/src/main/browser/hierarchy/hierarchy-types-converters.ts +189 -189
  910. package/src/main/browser/keybindings/keybindings-contribution-handler.ts +66 -66
  911. package/src/main/browser/label-service-main.ts +51 -51
  912. package/src/main/browser/languages-main.ts +1440 -1436
  913. package/src/main/browser/localization-main.ts +34 -34
  914. package/src/main/browser/main-context.ts +212 -214
  915. package/src/main/browser/main-file-system-event-service.ts +76 -76
  916. package/src/main/browser/menus/menus-contribution-handler.ts +171 -166
  917. package/src/main/browser/menus/plugin-menu-command-adapter.ts +295 -295
  918. package/src/main/browser/menus/vscode-theia-menu-mappings.ts +105 -105
  919. package/src/main/browser/message-registry-main.ts +43 -56
  920. package/src/main/browser/notebooks/notebook-documents-and-editors-main.ts +249 -252
  921. package/src/main/browser/notebooks/notebook-documents-main.ts +165 -165
  922. package/src/main/browser/notebooks/notebook-dto.ts +131 -131
  923. package/src/main/browser/notebooks/notebook-editors-main.ts +70 -70
  924. package/src/main/browser/notebooks/notebook-kernels-main.ts +327 -286
  925. package/src/main/browser/notebooks/notebook-renderers-main.ts +47 -47
  926. package/src/main/browser/notebooks/notebooks-main.ts +135 -135
  927. package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +254 -201
  928. package/src/main/browser/notebooks/renderers/output-webview-internal.ts +577 -477
  929. package/src/main/browser/notebooks/renderers/webview-communication.ts +90 -79
  930. package/src/main/browser/notification-main.ts +26 -86
  931. package/src/main/browser/output-channel-registry-main.ts +53 -53
  932. package/src/main/browser/plugin-authentication-service.ts +71 -71
  933. package/src/main/browser/plugin-contribution-handler.ts +698 -690
  934. package/src/main/browser/plugin-ext-frontend-module.ts +269 -268
  935. package/src/main/browser/plugin-ext-widget.tsx +132 -132
  936. package/src/main/browser/plugin-frontend-contribution.ts +70 -70
  937. package/src/main/browser/plugin-frontend-view-contribution.ts +38 -38
  938. package/src/main/browser/plugin-icon-service.ts +92 -156
  939. package/src/main/browser/plugin-icon-theme-service.ts +625 -625
  940. package/src/main/browser/plugin-shared-style.ts +154 -154
  941. package/src/main/browser/plugin-storage.ts +55 -55
  942. package/src/main/browser/plugin-terminal-registry.ts +27 -27
  943. package/src/main/browser/preference-registry-main.ts +123 -123
  944. package/src/main/browser/quick-open-main.ts +373 -324
  945. package/src/main/browser/scm-main.ts +472 -472
  946. package/src/main/browser/secrets-main.ts +82 -82
  947. package/src/main/browser/selection-provider-command.ts +45 -46
  948. package/src/main/browser/status-bar-message-registry-main.ts +90 -90
  949. package/src/main/browser/style/comments.css +345 -345
  950. package/src/main/browser/style/index.css +84 -84
  951. package/src/main/browser/style/plugin-sidebar.css +73 -73
  952. package/src/main/browser/style/tree.css +54 -54
  953. package/src/main/browser/style/webview.css +55 -55
  954. package/src/main/browser/tabs/tabs-main.ts +333 -333
  955. package/src/main/browser/tasks-main.ts +268 -268
  956. package/src/main/browser/terminal-main.ts +304 -304
  957. package/src/main/browser/test-main.ts +618 -618
  958. package/src/main/browser/text-editor-main.ts +472 -472
  959. package/src/main/browser/text-editor-model-service.ts +102 -102
  960. package/src/main/browser/text-editors-main.ts +215 -207
  961. package/src/main/browser/theme-icon-override.ts +246 -252
  962. package/src/main/browser/theming-main.ts +42 -42
  963. package/src/main/browser/timeline-main.ts +80 -80
  964. package/src/main/browser/view/dnd-file-content-store.ts +42 -42
  965. package/src/main/browser/view/plugin-tree-view-node-label-provider.ts +81 -81
  966. package/src/main/browser/view/plugin-view-registry.ts +942 -924
  967. package/src/main/browser/view/plugin-view-widget.ts +221 -222
  968. package/src/main/browser/view/tree-view-decorator-service.ts +51 -51
  969. package/src/main/browser/view/tree-view-widget.tsx +931 -932
  970. package/src/main/browser/view/tree-views-main.ts +209 -209
  971. package/src/main/browser/view/view-context-key-service.ts +70 -70
  972. package/src/main/browser/view-column-service.ts +125 -125
  973. package/src/main/browser/webview/pre/fake.html +14 -14
  974. package/src/main/browser/webview/pre/host.js +130 -130
  975. package/src/main/browser/webview/pre/index.html +17 -17
  976. package/src/main/browser/webview/pre/main.js +682 -682
  977. package/src/main/browser/webview/pre/service-worker.js +295 -295
  978. package/src/main/browser/webview/webview-context-keys.ts +62 -49
  979. package/src/main/browser/webview/webview-environment.ts +87 -87
  980. package/src/main/browser/webview/webview-frontend-security-warnings.ts +59 -59
  981. package/src/main/browser/webview/webview-preferences.ts +72 -72
  982. package/src/main/browser/webview/webview-resource-cache.ts +88 -88
  983. package/src/main/browser/webview/webview-theme-data-provider.ts +124 -124
  984. package/src/main/browser/webview/webview-widget-factory.ts +2 -1
  985. package/src/main/browser/webview/webview.ts +719 -717
  986. package/src/main/browser/webview-views/webview-views-main.ts +154 -154
  987. package/src/main/browser/webview-views/webview-views.ts +43 -43
  988. package/src/main/browser/webviews-main.ts +282 -277
  989. package/src/main/browser/window-state-main.ts +76 -76
  990. package/src/main/browser/workspace-main.ts +424 -424
  991. package/src/main/common/basic-message-registry-main.ts +53 -0
  992. package/src/main/common/basic-notification-main.ts +86 -0
  993. package/src/main/common/env-main.ts +44 -0
  994. package/src/main/common/plugin-paths-protocol.ts +26 -26
  995. package/src/main/common/plugin-theia-environment.ts +36 -36
  996. package/src/main/common/webview-protocol.ts +28 -28
  997. package/src/main/electron-browser/plugin-ext-frontend-electron-module.ts +25 -25
  998. package/src/main/electron-browser/webview/electron-webview-widget-factory.ts +59 -59
  999. package/src/main/node/errors.spec.ts +37 -37
  1000. package/src/main/node/handlers/plugin-theia-directory-handler.ts +137 -115
  1001. package/src/main/node/handlers/plugin-theia-file-handler.ts +66 -66
  1002. package/src/main/node/paths/const.ts +21 -21
  1003. package/src/main/node/paths/plugin-paths-service.ts +163 -163
  1004. package/src/main/node/plugin-cli-contribution.ts +85 -85
  1005. package/src/main/node/plugin-deployer-contribution.ts +35 -35
  1006. package/src/main/node/plugin-deployer-directory-handler-context-impl.ts +45 -45
  1007. package/src/main/node/plugin-deployer-entry-impl.ts +132 -132
  1008. package/src/main/node/plugin-deployer-file-handler-context-impl.ts +33 -33
  1009. package/src/main/node/plugin-deployer-impl.ts +364 -360
  1010. package/src/main/node/plugin-deployer-proxy-entry-impl.ts +96 -96
  1011. package/src/main/node/plugin-deployer-resolver-context-impl.ts +55 -55
  1012. package/src/main/node/plugin-ext-backend-module.ts +97 -97
  1013. package/src/main/node/plugin-github-resolver.ts +139 -139
  1014. package/src/main/node/plugin-http-resolver.ts +92 -92
  1015. package/src/main/node/plugin-localization-server.ts +42 -42
  1016. package/src/main/node/plugin-mgmt-cli-contribution.ts +64 -64
  1017. package/src/main/node/plugin-server-handler.ts +69 -69
  1018. package/src/main/node/plugin-service.ts +97 -97
  1019. package/src/main/node/plugin-theia-deployer-participant.ts +32 -32
  1020. package/src/main/node/plugin-uninstallation-manager.ts +74 -74
  1021. package/src/main/node/plugins-key-value-storage.spec.ts +110 -110
  1022. package/src/main/node/plugins-key-value-storage.ts +161 -161
  1023. package/src/main/node/resolvers/local-directory-plugin-deployer-resolver.ts +37 -37
  1024. package/src/main/node/resolvers/local-plugin-deployer-resolver.ts +56 -56
  1025. package/src/main/node/temp-dir-util.ts +36 -36
  1026. package/src/main/node/webview-backend-security-warnings.ts +45 -45
  1027. package/src/main/style/status-bar.css +35 -35
  1028. package/src/plugin/authentication-ext.ts +125 -125
  1029. package/src/plugin/clipboard-ext.ts +43 -37
  1030. package/src/plugin/command-registry.ts +219 -219
  1031. package/src/plugin/comments.ts +549 -549
  1032. package/src/plugin/custom-editors.ts +336 -336
  1033. package/src/plugin/debug/debug-ext.ts +499 -490
  1034. package/src/plugin/debug/plugin-debug-adapter-creator.ts +50 -50
  1035. package/src/plugin/debug/plugin-debug-adapter-session.ts +106 -106
  1036. package/src/plugin/debug/plugin-debug-adapter-tracker.ts +85 -85
  1037. package/src/plugin/decorations.ts +140 -140
  1038. package/src/plugin/dialogs.ts +96 -96
  1039. package/src/plugin/document-data.ts +366 -366
  1040. package/src/plugin/documents.ts +283 -283
  1041. package/src/plugin/editors-and-documents.ts +172 -170
  1042. package/src/plugin/env.ts +129 -113
  1043. package/src/plugin/file-system-event-service-ext-impl.ts +256 -256
  1044. package/src/plugin/file-system-ext-impl.ts +402 -402
  1045. package/src/plugin/known-commands.spec.ts +50 -50
  1046. package/src/plugin/known-commands.ts +428 -427
  1047. package/src/plugin/label-service.ts +36 -36
  1048. package/src/plugin/languages/call-hierarchy.ts +124 -124
  1049. package/src/plugin/languages/code-action.ts +162 -162
  1050. package/src/plugin/languages/color.ts +75 -75
  1051. package/src/plugin/languages/completion.ts +183 -183
  1052. package/src/plugin/languages/declaration.ts +72 -72
  1053. package/src/plugin/languages/definition.ts +73 -73
  1054. package/src/plugin/languages/diagnostics.ts +325 -325
  1055. package/src/plugin/languages/document-drop-edit.ts +44 -44
  1056. package/src/plugin/languages/document-formatting.ts +47 -47
  1057. package/src/plugin/languages/document-highlight.ts +61 -61
  1058. package/src/plugin/languages/evaluatable-expression.ts +47 -47
  1059. package/src/plugin/languages/folding.ts +46 -46
  1060. package/src/plugin/languages/hover.ts +58 -58
  1061. package/src/plugin/languages/implementation.ts +73 -73
  1062. package/src/plugin/languages/inlay-hints.ts +149 -149
  1063. package/src/plugin/languages/inline-completion.ts +126 -126
  1064. package/src/plugin/languages/inline-values.ts +50 -50
  1065. package/src/plugin/languages/lens.ts +102 -102
  1066. package/src/plugin/languages/link-provider.ts +81 -79
  1067. package/src/plugin/languages/linked-editing-range.ts +48 -48
  1068. package/src/plugin/languages/on-type-formatting.ts +50 -50
  1069. package/src/plugin/languages/outline.ts +126 -126
  1070. package/src/plugin/languages/range-formatting.ts +48 -48
  1071. package/src/plugin/languages/reference.ts +58 -58
  1072. package/src/plugin/languages/rename.ts +130 -130
  1073. package/src/plugin/languages/selection-range.ts +80 -80
  1074. package/src/plugin/languages/semantic-highlighting.ts +211 -211
  1075. package/src/plugin/languages/signature.ts +82 -82
  1076. package/src/plugin/languages/type-definition.ts +73 -73
  1077. package/src/plugin/languages/type-hierarchy.ts +117 -117
  1078. package/src/plugin/languages/util.ts +26 -26
  1079. package/src/plugin/languages/workspace-symbol.ts +66 -66
  1080. package/src/plugin/languages-utils.ts +68 -68
  1081. package/src/plugin/languages.ts +1022 -1022
  1082. package/src/plugin/localization-ext.ts +89 -84
  1083. package/src/plugin/markdown-string.ts +115 -115
  1084. package/src/plugin/message-registry.ts +70 -65
  1085. package/src/plugin/node/debug/debug.spec.ts +98 -94
  1086. package/src/plugin/node/debug/plugin-node-debug-adapter-creator.ts +167 -167
  1087. package/src/plugin/node/env-node-ext.ts +64 -69
  1088. package/src/plugin/node/plugin-container-module.ts +165 -0
  1089. package/src/plugin/notebook/notebook-document.ts +438 -438
  1090. package/src/plugin/notebook/notebook-documents.ts +58 -58
  1091. package/src/plugin/notebook/notebook-editor.ts +116 -116
  1092. package/src/plugin/notebook/notebook-editors.ts +71 -71
  1093. package/src/plugin/notebook/notebook-kernels.ts +617 -618
  1094. package/src/plugin/notebook/notebook-renderers.ts +71 -72
  1095. package/src/plugin/notebook/notebooks.ts +405 -385
  1096. package/src/plugin/notification.ts +80 -80
  1097. package/src/plugin/output-channel/log-output-channel.ts +108 -108
  1098. package/src/plugin/output-channel/output-channel-item.ts +73 -73
  1099. package/src/plugin/output-channel-registry.ts +52 -52
  1100. package/src/plugin/path.spec.ts +40 -40
  1101. package/src/plugin/path.ts +68 -68
  1102. package/src/plugin/plugin-context.ts +1495 -1478
  1103. package/src/plugin/plugin-icon-path.ts +50 -50
  1104. package/src/plugin/plugin-manager.ts +493 -439
  1105. package/src/plugin/plugin-storage.ts +138 -120
  1106. package/src/plugin/preference-registry.spec.ts +288 -283
  1107. package/src/plugin/preference-registry.ts +335 -329
  1108. package/src/plugin/prefix-sum-computer.ts +218 -218
  1109. package/src/plugin/quick-open.ts +759 -773
  1110. package/src/plugin/scm.ts +919 -919
  1111. package/src/plugin/secrets-ext.ts +104 -84
  1112. package/src/plugin/status-bar/status-bar-item.ts +193 -193
  1113. package/src/plugin/status-bar-message-registry.ts +103 -103
  1114. package/src/plugin/tabs.ts +426 -426
  1115. package/src/plugin/tasks/task-provider.ts +57 -57
  1116. package/src/plugin/tasks/tasks.ts +252 -252
  1117. package/src/plugin/telemetry-ext.ts +298 -298
  1118. package/src/plugin/terminal-ext.ts +553 -551
  1119. package/src/plugin/test-item.ts +174 -174
  1120. package/src/plugin/tests.ts +506 -506
  1121. package/src/plugin/text-editor.ts +582 -582
  1122. package/src/plugin/text-editors.ts +157 -150
  1123. package/src/plugin/theming.ts +73 -73
  1124. package/src/plugin/timeline.ts +186 -186
  1125. package/src/plugin/tree/tree-views.ts +682 -682
  1126. package/src/plugin/type-converters.spec.ts +476 -476
  1127. package/src/plugin/type-converters.ts +1748 -1712
  1128. package/src/plugin/types-impl.spec.ts +85 -85
  1129. package/src/plugin/types-impl.ts +3724 -3696
  1130. package/src/plugin/webview-views.ts +228 -227
  1131. package/src/plugin/webviews.ts +459 -433
  1132. package/src/plugin/window-state.ts +68 -68
  1133. package/src/plugin/word-helper.ts +162 -162
  1134. package/src/plugin/workspace.ts +505 -495
  1135. package/src/plugin-ext-backend-electron-module.ts +24 -24
  1136. package/src/plugin-ext-backend-module.ts +24 -24
  1137. package/src/plugin-ext-frontend-electron-module.ts +19 -19
  1138. package/src/plugin-ext-frontend-module.ts +19 -19
@@ -1,1478 +1,1495 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2018-2022 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-only WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
-
17
- /* eslint-disable @typescript-eslint/no-explicit-any */
18
- /* tslint:disable:typedef */
19
-
20
- import type * as theia from '@theia/plugin';
21
- import { CommandRegistryImpl } from './command-registry';
22
- import { Emitter } from '@theia/core/lib/common/event';
23
- import { CancellationError, CancellationToken, CancellationTokenSource } from '@theia/core/lib/common/cancellation';
24
- import { QuickOpenExtImpl } from './quick-open';
25
- import {
26
- MAIN_RPC_CONTEXT,
27
- Plugin as InternalPlugin,
28
- PluginManager,
29
- PluginAPIFactory,
30
- MainMessageType,
31
- DebugConfigurationProviderTriggerKind,
32
- PLUGIN_RPC_CONTEXT
33
- } from '../common/plugin-api-rpc';
34
- import { RPCProtocol } from '../common/rpc-protocol';
35
- import { MessageRegistryExt } from './message-registry';
36
- import { StatusBarMessageRegistryExt } from './status-bar-message-registry';
37
- import { WindowStateExtImpl } from './window-state';
38
- import { WorkspaceExtImpl } from './workspace';
39
- import { EnvExtImpl } from './env';
40
- import { QueryParameters } from '../common/env';
41
- import {
42
- ConfigurationTarget,
43
- Disposable,
44
- Position,
45
- Range,
46
- Selection,
47
- ViewColumn,
48
- TextEditorSelectionChangeKind,
49
- EndOfLine,
50
- SnippetString,
51
- ThemeColor,
52
- ThemeIcon,
53
- TextEditorRevealType,
54
- TextEditorLineNumbersStyle,
55
- DecorationRangeBehavior,
56
- OverviewRulerLane,
57
- StatusBarAlignment,
58
- RelativePattern,
59
- IndentAction,
60
- SyntaxTokenType,
61
- CompletionItem,
62
- CompletionItemKind,
63
- CompletionList,
64
- TextEdit,
65
- SnippetTextEdit,
66
- CompletionTriggerKind,
67
- Diagnostic,
68
- DiagnosticRelatedInformation,
69
- DebugConsoleMode,
70
- DiagnosticSeverity,
71
- DiagnosticTag,
72
- CompletionItemTag,
73
- Location,
74
- LogLevel,
75
- Progress,
76
- ProgressOptions,
77
- ProgressLocation,
78
- ParameterInformation,
79
- SignatureInformation,
80
- SignatureHelp,
81
- SignatureHelpTriggerKind,
82
- Hover,
83
- EvaluatableExpression,
84
- InlineValueEvaluatableExpression,
85
- InlineValueText,
86
- InlineValueVariableLookup,
87
- InlineValueContext,
88
- DocumentHighlightKind,
89
- DocumentHighlight,
90
- DocumentLink,
91
- DocumentDropEdit,
92
- CodeLens,
93
- CodeActionKind,
94
- CodeActionTrigger,
95
- CodeActionTriggerKind,
96
- TextDocumentSaveReason,
97
- CodeAction,
98
- DataTransferItem,
99
- DataTransfer,
100
- TreeItem,
101
- TreeItemCollapsibleState,
102
- TreeItemCheckboxState,
103
- DocumentSymbol,
104
- SymbolTag,
105
- WorkspaceEdit,
106
- SymbolInformation,
107
- FileType,
108
- FileChangeType,
109
- ShellQuoting,
110
- ShellExecution,
111
- ProcessExecution,
112
- CustomExecution,
113
- TaskScope,
114
- TaskPanelKind,
115
- TaskRevealKind,
116
- TaskGroup,
117
- Task,
118
- Task2,
119
- DebugAdapterExecutable,
120
- DebugAdapterServer,
121
- DebugAdapterNamedPipeServer,
122
- DebugAdapterInlineImplementation,
123
- Breakpoint,
124
- SourceBreakpoint,
125
- FunctionBreakpoint,
126
- FoldingRange,
127
- FoldingRangeKind,
128
- SelectionRange,
129
- Color,
130
- ColorInformation,
131
- ColorPresentation,
132
- OperatingSystem,
133
- WebviewPanelTargetArea,
134
- UIKind,
135
- FileSystemError,
136
- CommentThreadState,
137
- CommentThreadCollapsibleState,
138
- QuickInputButtons,
139
- QuickPickItemKind,
140
- CommentMode,
141
- CallHierarchyItem,
142
- CallHierarchyIncomingCall,
143
- CallHierarchyOutgoingCall,
144
- TypeHierarchyItem,
145
- TimelineItem,
146
- EnvironmentVariableMutatorType,
147
- SemanticTokensLegend,
148
- SemanticTokensBuilder,
149
- SemanticTokens,
150
- SemanticTokensEdits,
151
- SemanticTokensEdit,
152
- ColorThemeKind,
153
- SourceControlInputBoxValidationType,
154
- URI,
155
- FileDecoration,
156
- ExtensionMode,
157
- LinkedEditingRanges,
158
- LanguageStatusSeverity,
159
- TextDocumentChangeReason,
160
- InputBoxValidationSeverity,
161
- TerminalLink,
162
- TerminalLocation,
163
- TerminalExitReason,
164
- TerminalProfile,
165
- InlayHint,
166
- InlayHintKind,
167
- InlayHintLabelPart,
168
- TelemetryTrustedValue,
169
- NotebookCellKind,
170
- NotebookCellExecutionState,
171
- NotebookCellStatusBarAlignment,
172
- NotebookEditorRevealType,
173
- NotebookControllerAffinity,
174
- NotebookCellData,
175
- NotebookCellOutput,
176
- NotebookCellOutputItem,
177
- NotebookData,
178
- NotebookRange,
179
- NotebookCellStatusBarItem,
180
- NotebookEdit,
181
- NotebookKernelSourceAction,
182
- NotebookRendererScript,
183
- TestRunProfileKind,
184
- TestTag,
185
- TestRunRequest,
186
- TestMessage,
187
- ExtensionKind,
188
- InlineCompletionItem,
189
- InlineCompletionList,
190
- InlineCompletionTriggerKind,
191
- TextTabInput,
192
- CustomEditorTabInput,
193
- NotebookDiffEditorTabInput,
194
- NotebookEditorTabInput,
195
- TerminalEditorTabInput,
196
- TextDiffTabInput,
197
- TextMergeTabInput,
198
- WebviewEditorTabInput,
199
- DocumentPasteEdit,
200
- ExternalUriOpenerPriority,
201
- EditSessionIdentityMatch,
202
- TerminalOutputAnchor,
203
- TerminalQuickFixExecuteTerminalCommand,
204
- TerminalQuickFixOpener,
205
- TestResultState
206
- } from './types-impl';
207
- import { AuthenticationExtImpl } from './authentication-ext';
208
- import { SymbolKind } from '../common/plugin-api-rpc-model';
209
- import { EditorsAndDocumentsExtImpl } from './editors-and-documents';
210
- import { TextEditorsExtImpl } from './text-editors';
211
- import { DocumentsExtImpl } from './documents';
212
- import { TextEditorCursorStyle } from '../common/editor-options';
213
- import { PreferenceRegistryExtImpl } from './preference-registry';
214
- import { OutputChannelRegistryExtImpl } from './output-channel-registry';
215
- import { TerminalServiceExtImpl, TerminalExtImpl } from './terminal-ext';
216
- import { LanguagesExtImpl } from './languages';
217
- import { fromDocumentSelector, pluginToPluginInfo, fromGlobPattern } from './type-converters';
218
- import { DialogsExtImpl } from './dialogs';
219
- import { NotificationExtImpl } from './notification';
220
- import { score } from '@theia/editor/lib/common/language-selector';
221
- import { MarkdownString } from './markdown-string';
222
- import { TreeViewsExtImpl } from './tree/tree-views';
223
- import { ConnectionImpl } from '../common/connection';
224
- import { TasksExtImpl } from './tasks/tasks';
225
- import { DebugExtImpl } from './debug/debug-ext';
226
- import { FileSystemExtImpl } from './file-system-ext-impl';
227
- import { ScmExtImpl } from './scm';
228
- import { DecorationsExtImpl } from './decorations';
229
- import { TextEditorExt } from './text-editor';
230
- import { ClipboardExt } from './clipboard-ext';
231
- import { WebviewsExtImpl } from './webviews';
232
- import { ExtHostFileSystemEventService } from './file-system-event-service-ext-impl';
233
- import { LabelServiceExtImpl } from '../plugin/label-service';
234
- import { TimelineExtImpl } from './timeline';
235
- import { ThemingExtImpl } from './theming';
236
- import { CommentsExtImpl } from './comments';
237
- import { CustomEditorsExtImpl } from './custom-editors';
238
- import { WebviewViewsExtImpl } from './webview-views';
239
- import { PluginPackage } from '../common';
240
- import { Endpoint } from '@theia/core/lib/browser/endpoint';
241
- import { FilePermission } from '@theia/filesystem/lib/common/files';
242
- import { TabsExtImpl } from './tabs';
243
- import { LocalizationExtImpl } from './localization-ext';
244
- import { NotebooksExtImpl } from './notebook/notebooks';
245
- import { TelemetryExtImpl } from './telemetry-ext';
246
- import { NotebookDocument } from './notebook/notebook-document';
247
- import { NotebookRenderersExtImpl } from './notebook/notebook-renderers';
248
- import { NotebookKernelsExtImpl } from './notebook/notebook-kernels';
249
- import { NotebookDocumentsExtImpl } from './notebook/notebook-documents';
250
- import { NotebookEditorsExtImpl } from './notebook/notebook-editors';
251
- import { TestingExtImpl } from './tests';
252
-
253
- export function createAPIFactory(
254
- rpc: RPCProtocol,
255
- pluginManager: PluginManager,
256
- envExt: EnvExtImpl,
257
- debugExt: DebugExtImpl,
258
- preferenceRegistryExt: PreferenceRegistryExtImpl,
259
- editorsAndDocumentsExt: EditorsAndDocumentsExtImpl,
260
- workspaceExt: WorkspaceExtImpl,
261
- messageRegistryExt: MessageRegistryExt,
262
- clipboard: ClipboardExt,
263
- webviewExt: WebviewsExtImpl,
264
- localizationExt: LocalizationExtImpl
265
- ): PluginAPIFactory {
266
-
267
- const authenticationExt = rpc.set(MAIN_RPC_CONTEXT.AUTHENTICATION_EXT, new AuthenticationExtImpl(rpc));
268
- const commandRegistry = rpc.set(MAIN_RPC_CONTEXT.COMMAND_REGISTRY_EXT, new CommandRegistryImpl(rpc));
269
- const quickOpenExt = rpc.set(MAIN_RPC_CONTEXT.QUICK_OPEN_EXT, new QuickOpenExtImpl(rpc));
270
- const dialogsExt = new DialogsExtImpl(rpc);
271
- const windowStateExt = rpc.set(MAIN_RPC_CONTEXT.WINDOW_STATE_EXT, new WindowStateExtImpl(rpc));
272
- const notificationExt = rpc.set(MAIN_RPC_CONTEXT.NOTIFICATION_EXT, new NotificationExtImpl(rpc));
273
- const editors = rpc.set(MAIN_RPC_CONTEXT.TEXT_EDITORS_EXT, new TextEditorsExtImpl(rpc, editorsAndDocumentsExt));
274
- const documents = rpc.set(MAIN_RPC_CONTEXT.DOCUMENTS_EXT, new DocumentsExtImpl(rpc, editorsAndDocumentsExt));
275
- const notebooksExt = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOKS_EXT, new NotebooksExtImpl(rpc, commandRegistry, editorsAndDocumentsExt, documents));
276
- const notebookEditors = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_EDITORS_EXT, new NotebookEditorsExtImpl(notebooksExt));
277
- const notebookRenderers = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_RENDERERS_EXT, new NotebookRenderersExtImpl(rpc, notebooksExt));
278
- const notebookKernels = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_KERNELS_EXT, new NotebookKernelsExtImpl(rpc, notebooksExt, commandRegistry));
279
- const notebookDocuments = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_DOCUMENTS_EXT, new NotebookDocumentsExtImpl(notebooksExt));
280
- const statusBarMessageRegistryExt = new StatusBarMessageRegistryExt(rpc);
281
- const terminalExt = rpc.set(MAIN_RPC_CONTEXT.TERMINAL_EXT, new TerminalServiceExtImpl(rpc));
282
- const outputChannelRegistryExt = rpc.set(MAIN_RPC_CONTEXT.OUTPUT_CHANNEL_REGISTRY_EXT, new OutputChannelRegistryExtImpl(rpc));
283
- const treeViewsExt = rpc.set(MAIN_RPC_CONTEXT.TREE_VIEWS_EXT, new TreeViewsExtImpl(rpc, commandRegistry));
284
- const tasksExt = rpc.set(MAIN_RPC_CONTEXT.TASKS_EXT, new TasksExtImpl(rpc, terminalExt));
285
- const connectionExt = rpc.set(MAIN_RPC_CONTEXT.CONNECTION_EXT, new ConnectionImpl(rpc.getProxy(PLUGIN_RPC_CONTEXT.CONNECTION_MAIN)));
286
- const fileSystemExt = rpc.set(MAIN_RPC_CONTEXT.FILE_SYSTEM_EXT, new FileSystemExtImpl(rpc));
287
- const languagesExt = rpc.set(MAIN_RPC_CONTEXT.LANGUAGES_EXT, new LanguagesExtImpl(rpc, documents, commandRegistry, fileSystemExt));
288
- const extHostFileSystemEvent = rpc.set(MAIN_RPC_CONTEXT.ExtHostFileSystemEventService, new ExtHostFileSystemEventService(rpc, editorsAndDocumentsExt));
289
- const scmExt = rpc.set(MAIN_RPC_CONTEXT.SCM_EXT, new ScmExtImpl(rpc, commandRegistry));
290
- const decorationsExt = rpc.set(MAIN_RPC_CONTEXT.DECORATIONS_EXT, new DecorationsExtImpl(rpc));
291
- const labelServiceExt = rpc.set(MAIN_RPC_CONTEXT.LABEL_SERVICE_EXT, new LabelServiceExtImpl(rpc));
292
- const timelineExt = rpc.set(MAIN_RPC_CONTEXT.TIMELINE_EXT, new TimelineExtImpl(rpc, commandRegistry));
293
- const themingExt = rpc.set(MAIN_RPC_CONTEXT.THEMING_EXT, new ThemingExtImpl(rpc));
294
- const commentsExt = rpc.set(MAIN_RPC_CONTEXT.COMMENTS_EXT, new CommentsExtImpl(rpc, commandRegistry, documents));
295
- const tabsExt = rpc.set(MAIN_RPC_CONTEXT.TABS_EXT, new TabsExtImpl(rpc));
296
- const customEditorExt = rpc.set(MAIN_RPC_CONTEXT.CUSTOM_EDITORS_EXT, new CustomEditorsExtImpl(rpc, documents, webviewExt, workspaceExt));
297
- const webviewViewsExt = rpc.set(MAIN_RPC_CONTEXT.WEBVIEW_VIEWS_EXT, new WebviewViewsExtImpl(rpc, webviewExt));
298
- const telemetryExt = rpc.set(MAIN_RPC_CONTEXT.TELEMETRY_EXT, new TelemetryExtImpl());
299
- const testingExt = rpc.set(MAIN_RPC_CONTEXT.TESTING_EXT, new TestingExtImpl(rpc, commandRegistry));
300
- rpc.set(MAIN_RPC_CONTEXT.DEBUG_EXT, debugExt);
301
-
302
- return function (plugin: InternalPlugin): typeof theia {
303
- const authentication: typeof theia.authentication = {
304
- registerAuthenticationProvider(id: string, label: string, provider: theia.AuthenticationProvider, options?: theia.AuthenticationProviderOptions): theia.Disposable {
305
- return authenticationExt.registerAuthenticationProvider(id, label, provider, options);
306
- },
307
- getSession(providerId: string, scopes: string[], options: theia.AuthenticationGetSessionOptions) {
308
- return authenticationExt.getSession(plugin, providerId, scopes, options as any);
309
- },
310
- get onDidChangeSessions(): theia.Event<theia.AuthenticationSessionsChangeEvent> {
311
- return authenticationExt.onDidChangeSessions;
312
- }
313
- };
314
- function commandIsDeclaredInPackage(id: string, model: PluginPackage): boolean {
315
- const rawCommands = model.contributes?.commands;
316
- if (!rawCommands) { return false; }
317
- return Array.isArray(rawCommands) ? rawCommands.some(candidate => candidate.command === id) : rawCommands.command === id;
318
- }
319
- const commands: typeof theia.commands = {
320
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
321
- registerCommand(command: theia.CommandDescription | string, handler?: <T>(...args: any[]) => T | Thenable<T | undefined>, thisArg?: any): Disposable {
322
- // use of the ID when registering commands
323
- if (typeof command === 'string') {
324
- if (handler && commandIsDeclaredInPackage(command, plugin.rawModel)) {
325
- return commandRegistry.registerHandler(command, handler, thisArg);
326
- }
327
- return commandRegistry.registerCommand({ id: command }, handler, thisArg);
328
- }
329
- return commandRegistry.registerCommand(command, handler, thisArg);
330
- },
331
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
332
- executeCommand<T>(commandId: string, ...args: any[]): PromiseLike<T | undefined> {
333
- return commandRegistry.executeCommand<T>(commandId, ...args);
334
- },
335
- registerTextEditorCommand(command: string, handler: (textEditor: theia.TextEditor, edit: theia.TextEditorEdit, ...arg: any[]) => void, thisArg?: any): Disposable {
336
- const internalHandler = (...args: any[]): any => {
337
- const activeTextEditor = editors.getActiveEditor();
338
- if (!activeTextEditor) {
339
- console.warn('Cannot execute ' + command + ' because there is no active text editor.');
340
- return undefined;
341
- }
342
-
343
- return activeTextEditor.edit((edit: theia.TextEditorEdit) => {
344
- args.unshift(activeTextEditor, edit);
345
- handler.apply(thisArg, args);
346
- }).then(result => {
347
- if (!result) {
348
- console.warn('Edits from command ' + command + ' were not applied.');
349
- }
350
- }, err => {
351
- console.warn('An error occurred while running command ' + command, err);
352
- });
353
- };
354
- return commandIsDeclaredInPackage(command, plugin.rawModel)
355
- ? commandRegistry.registerHandler(command, internalHandler)
356
- : commandRegistry.registerCommand({ id: command }, internalHandler);
357
- },
358
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
359
- registerHandler(commandId: string, handler: (...args: any[]) => any, thisArg?: any): Disposable {
360
- return commandRegistry.registerHandler(commandId, handler, thisArg);
361
- },
362
- getKeyBinding(commandId: string): PromiseLike<theia.CommandKeyBinding[] | undefined> {
363
- return commandRegistry.getKeyBinding(commandId);
364
- },
365
- getCommands(filterInternal: boolean = false): PromiseLike<string[]> {
366
- return commandRegistry.getCommands(filterInternal);
367
- },
368
- registerDiffInformationCommand(command: string, callback: (diff: theia.LineChange[], ...args: any[]) => any, thisArg?: any): Disposable {
369
- // Dummy implementation.
370
- return new Disposable(() => { });
371
- }
372
- };
373
-
374
- const { onDidChangeActiveTerminal, onDidChangeTerminalState, onDidCloseTerminal, onDidOpenTerminal } = terminalExt;
375
- const showInformationMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Info);
376
- const showWarningMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Warning);
377
- const showErrorMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Error);
378
- const window: typeof theia.window = {
379
-
380
- get activeTerminal(): TerminalExtImpl | undefined {
381
- return terminalExt.activeTerminal;
382
- },
383
- get activeTextEditor(): TextEditorExt | undefined {
384
- return editors.getActiveEditor();
385
- },
386
- get visibleTextEditors(): theia.TextEditor[] {
387
- return editors.getVisibleTextEditors();
388
- },
389
- get terminals(): TerminalExtImpl[] {
390
- return terminalExt.terminals;
391
- },
392
- onDidChangeActiveTerminal,
393
- onDidChangeActiveTextEditor(listener, thisArg?, disposables?) {
394
- return editors.onDidChangeActiveTextEditor(listener, thisArg, disposables);
395
- },
396
- onDidChangeVisibleTextEditors(listener, thisArg?, disposables?) {
397
- return editors.onDidChangeVisibleTextEditors(listener, thisArg, disposables);
398
- },
399
- onDidChangeTextEditorSelection(listener, thisArg?, disposables?) {
400
- return editors.onDidChangeTextEditorSelection(listener, thisArg, disposables);
401
- },
402
- onDidChangeTextEditorOptions(listener, thisArg?, disposables?) {
403
- return editors.onDidChangeTextEditorOptions(listener, thisArg, disposables);
404
- },
405
- onDidChangeTextEditorViewColumn(listener, thisArg?, disposables?) {
406
- return editors.onDidChangeTextEditorViewColumn(listener, thisArg, disposables);
407
- },
408
- onDidChangeTextEditorVisibleRanges(listener, thisArg?, disposables?) {
409
- return editors.onDidChangeTextEditorVisibleRanges(listener, thisArg, disposables);
410
- },
411
- async showTextDocument(documentArg: theia.TextDocument | URI,
412
- columnOrOptions?: theia.TextDocumentShowOptions | theia.ViewColumn,
413
- preserveFocus?: boolean
414
- ): Promise<theia.TextEditor> {
415
- let documentOptions: theia.TextDocumentShowOptions | undefined;
416
- const uri: URI = documentArg instanceof URI ? documentArg : documentArg.uri;
417
- if (typeof columnOrOptions === 'number') {
418
- documentOptions = {
419
- viewColumn: columnOrOptions
420
- };
421
- } else if (columnOrOptions && (columnOrOptions.preserveFocus || columnOrOptions.preview || columnOrOptions.selection || columnOrOptions.viewColumn)) {
422
- documentOptions = {
423
- ...columnOrOptions
424
- };
425
- }
426
- if (preserveFocus) {
427
- if (documentOptions) {
428
- documentOptions.preserveFocus = preserveFocus;
429
- } else {
430
- documentOptions = { preserveFocus };
431
- }
432
- }
433
- await documents.showDocument(uri, documentOptions);
434
- const textEditor = editors.getVisibleTextEditors().find(editor => editor.document.uri.toString() === uri.toString());
435
- if (textEditor) {
436
- return Promise.resolve(textEditor);
437
- } else {
438
- throw new Error(`Failed to show text document ${documentArg.toString()}`);
439
- }
440
- },
441
- get visibleNotebookEditors(): theia.NotebookEditor[] {
442
- return notebooksExt.visibleApiNotebookEditors;
443
- },
444
- onDidChangeVisibleNotebookEditors(listener, thisArg?, disposables?) {
445
- return notebooksExt.onDidChangeVisibleNotebookEditors(listener, thisArg, disposables);
446
- },
447
- get activeNotebookEditor(): theia.NotebookEditor | undefined {
448
- return notebooksExt.activeApiNotebookEditor;
449
- }, onDidChangeActiveNotebookEditor(listener, thisArg?, disposables?) {
450
- return notebooksExt.onDidChangeActiveNotebookEditor(listener, thisArg, disposables);
451
- },
452
- onDidChangeNotebookEditorSelection(listener, thisArg?, disposables?) {
453
- return notebookEditors.onDidChangeNotebookEditorSelection(listener, thisArg, disposables);
454
- },
455
- onDidChangeNotebookEditorVisibleRanges(listener, thisArg?, disposables?) {
456
- return notebookEditors.onDidChangeNotebookEditorVisibleRanges(listener, thisArg, disposables);
457
- },
458
- showNotebookDocument(document: theia.NotebookDocument, options?: theia.NotebookDocumentShowOptions) {
459
- return notebooksExt.showNotebookDocument(document, options);
460
- },
461
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
462
- showQuickPick(items: any, options?: theia.QuickPickOptions, token?: theia.CancellationToken): any {
463
- return quickOpenExt.showQuickPick(items, options, token);
464
- },
465
- createQuickPick<T extends theia.QuickPickItem>(): theia.QuickPick<T> {
466
- return quickOpenExt.createQuickPick(plugin);
467
- },
468
- showWorkspaceFolderPick(options?: theia.WorkspaceFolderPickOptions): PromiseLike<theia.WorkspaceFolder | undefined> {
469
- return workspaceExt.pickWorkspaceFolder(options);
470
- },
471
- showInformationMessage,
472
- showWarningMessage,
473
- showErrorMessage,
474
- showOpenDialog(options: theia.OpenDialogOptions): PromiseLike<URI[] | undefined> {
475
- return dialogsExt.showOpenDialog(options);
476
- },
477
- showSaveDialog(options: theia.SaveDialogOptions): PromiseLike<URI | undefined> {
478
- return dialogsExt.showSaveDialog(options);
479
- },
480
- showUploadDialog(options: theia.UploadDialogOptions): PromiseLike<URI[] | undefined> {
481
- return dialogsExt.showUploadDialog(options);
482
- },
483
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
484
- setStatusBarMessage(text: string, arg?: number | PromiseLike<any>): Disposable {
485
- return statusBarMessageRegistryExt.setStatusBarMessage(text, arg);
486
- },
487
- showInputBox(options?: theia.InputBoxOptions, token?: theia.CancellationToken): PromiseLike<string | undefined> {
488
- return quickOpenExt.showInput(options, token);
489
- },
490
- createStatusBarItem(alignmentOrId?: theia.StatusBarAlignment | string, priorityOrAlignment?: number | theia.StatusBarAlignment,
491
- priorityArg?: number): theia.StatusBarItem {
492
- let id: string | undefined;
493
- let alignment: number | undefined;
494
- let priority: number | undefined;
495
-
496
- if (typeof alignmentOrId === 'string') {
497
- id = alignmentOrId;
498
- alignment = priorityOrAlignment;
499
- priority = priorityArg;
500
- } else {
501
- alignment = alignmentOrId;
502
- priority = priorityOrAlignment;
503
- }
504
-
505
- return statusBarMessageRegistryExt.createStatusBarItem(alignment, priority, id);
506
- },
507
- createOutputChannel(name: string, options?: { log: true }): any {
508
- return !options
509
- ? outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin))
510
- : outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin), options);
511
- },
512
- createWebviewPanel(viewType: string,
513
- title: string,
514
- showOptions: theia.ViewColumn | theia.WebviewPanelShowOptions,
515
- options: theia.WebviewPanelOptions & theia.WebviewOptions = {}): theia.WebviewPanel {
516
- return webviewExt.createWebview(viewType, title, showOptions, options, plugin);
517
- },
518
- registerWebviewPanelSerializer(viewType: string, serializer: theia.WebviewPanelSerializer): theia.Disposable {
519
- return webviewExt.registerWebviewPanelSerializer(viewType, serializer, plugin);
520
- },
521
- registerCustomEditorProvider(viewType: string,
522
- provider: theia.CustomTextEditorProvider | theia.CustomReadonlyEditorProvider,
523
- options: { webviewOptions?: theia.WebviewPanelOptions, supportsMultipleEditorsPerDocument?: boolean } = {}): theia.Disposable {
524
- return customEditorExt.registerCustomEditorProvider(viewType, provider, options, plugin);
525
- },
526
- registerWebviewViewProvider(viewType: string,
527
- provider: theia.WebviewViewProvider,
528
- options?: {
529
- webviewOptions?: {
530
- retainContextWhenHidden?: boolean
531
- }
532
- }): theia.Disposable {
533
- return webviewViewsExt.registerWebviewViewProvider(viewType, provider, plugin, options?.webviewOptions);
534
- },
535
- get state(): theia.WindowState {
536
- return windowStateExt.getWindowState();
537
- },
538
- onDidChangeWindowState(listener, thisArg?, disposables?): theia.Disposable {
539
- return windowStateExt.onDidChangeWindowState(listener, thisArg, disposables);
540
- },
541
- createTerminal(nameOrOptions: theia.TerminalOptions | theia.ExtensionTerminalOptions | theia.ExtensionTerminalOptions | (string | undefined),
542
- shellPath?: string,
543
- shellArgs?: string[] | string): theia.Terminal {
544
- return terminalExt.createTerminal(nameOrOptions, shellPath, shellArgs);
545
- },
546
- onDidChangeTerminalState,
547
- onDidCloseTerminal,
548
- onDidOpenTerminal,
549
- createTextEditorDecorationType(options: theia.DecorationRenderOptions): theia.TextEditorDecorationType {
550
- return editors.createTextEditorDecorationType(options);
551
- },
552
- registerTreeDataProvider<T>(viewId: string, treeDataProvider: theia.TreeDataProvider<T>): Disposable {
553
- return treeViewsExt.registerTreeDataProvider(plugin, viewId, treeDataProvider);
554
- },
555
- createTreeView<T>(viewId: string, options: theia.TreeViewOptions<T>): theia.TreeView<T> {
556
- return treeViewsExt.createTreeView(plugin, viewId, options);
557
- },
558
- withScmProgress<R>(task: (progress: theia.Progress<number>) => Thenable<R>) {
559
- const options: ProgressOptions = { location: ProgressLocation.SourceControl };
560
- return notificationExt.withProgress(options, () => task({ report() { /* noop */ } }));
561
- },
562
- withProgress<R>(
563
- options: ProgressOptions,
564
- task: (progress: Progress<{ message?: string; increment?: number }>, token: theia.CancellationToken) => PromiseLike<R>
565
- ): PromiseLike<R> {
566
- return notificationExt.withProgress(options, task);
567
- },
568
- registerFileDecorationProvider(provider: theia.FileDecorationProvider): theia.Disposable {
569
- return decorationsExt.registerFileDecorationProvider(provider, pluginToPluginInfo(plugin));
570
- },
571
- registerUriHandler(handler: theia.UriHandler): theia.Disposable {
572
- // TODO ?
573
- return new Disposable(() => { });
574
- },
575
- createInputBox(): theia.InputBox {
576
- return quickOpenExt.createInputBox(plugin);
577
- },
578
- registerTerminalLinkProvider(provider: theia.TerminalLinkProvider): theia.Disposable {
579
- return terminalExt.registerTerminalLinkProvider(provider);
580
- },
581
- registerTerminalProfileProvider(id: string, provider: theia.TerminalProfileProvider): theia.Disposable {
582
- return terminalExt.registerTerminalProfileProvider(id, provider);
583
- },
584
- get activeColorTheme(): theia.ColorTheme {
585
- return themingExt.activeColorTheme;
586
- },
587
- onDidChangeActiveColorTheme(listener, thisArg?, disposables?) {
588
- return themingExt.onDidChangeActiveColorTheme(listener, thisArg, disposables);
589
- },
590
- get tabGroups(): theia.TabGroups {
591
- return tabsExt.tabGroups;
592
- },
593
- /** @stubbed ExternalUriOpener */
594
- registerExternalUriOpener(id: string, opener: theia.ExternalUriOpener, metadata: theia.ExternalUriOpenerMetadata): theia.Disposable {
595
- return Disposable.NULL;
596
- },
597
- /** @stubbed ProfileContentHandler */
598
- registerProfileContentHandler(id: string, profileContentHandler: theia.ProfileContentHandler): theia.Disposable {
599
- return Disposable.NULL;
600
- },
601
- /** @stubbed TerminalQuickFixProvider */
602
- registerTerminalQuickFixProvider(id: string, provider: theia.TerminalQuickFixProvider): theia.Disposable {
603
- return terminalExt.registerTerminalQuickFixProvider(id, provider);
604
- },
605
- /** @stubbed ShareProvider */
606
- registerShareProvider: () => Disposable.NULL,
607
- };
608
-
609
- const workspace: typeof theia.workspace = {
610
-
611
- get fs(): theia.FileSystem {
612
- return fileSystemExt.fileSystem;
613
- },
614
-
615
- get rootPath(): string | undefined {
616
- return workspaceExt.rootPath;
617
- },
618
- get workspaceFolders(): theia.WorkspaceFolder[] | undefined {
619
- return workspaceExt.workspaceFolders;
620
- },
621
- get workspaceFile(): URI | undefined {
622
- return workspaceExt.workspaceFile;
623
- },
624
- get name(): string | undefined {
625
- return workspaceExt.name;
626
- },
627
- onDidChangeWorkspaceFolders(listener, thisArg?, disposables?): theia.Disposable {
628
- return workspaceExt.onDidChangeWorkspaceFolders(listener, thisArg, disposables);
629
- },
630
- get notebookDocuments(): theia.NotebookDocument[] {
631
- return notebooksExt.getAllApiDocuments();
632
- },
633
- get textDocuments(): theia.TextDocument[] {
634
- return documents.getAllDocumentData().map(data => data.document);
635
- },
636
- onDidChangeTextDocument(listener, thisArg?, disposables?) {
637
- return documents.onDidChangeDocument(listener, thisArg, disposables);
638
- },
639
- onDidCloseTextDocument(listener, thisArg?, disposables?) {
640
- return documents.onDidRemoveDocument(listener, thisArg, disposables);
641
- },
642
- onDidOpenNotebookDocument(listener, thisArg?, disposables?) {
643
- return notebooksExt.onDidOpenNotebookDocument(listener, thisArg, disposables);
644
- },
645
- onDidCloseNotebookDocument(listener, thisArg?, disposables?) {
646
- return notebooksExt.onDidCloseNotebookDocument(listener, thisArg, disposables);
647
- },
648
- onWillSaveNotebookDocument(listener, thisArg?, disposables?) {
649
- return Disposable.NULL;
650
- },
651
- onDidSaveNotebookDocument(listener, thisArg, disposables) {
652
- return notebookDocuments.onDidSaveNotebookDocument(listener, thisArg, disposables);
653
- },
654
- onDidChangeNotebookDocument(listener, thisArg, disposables) {
655
- return notebookDocuments.onDidChangeNotebookDocument(listener, thisArg, disposables);
656
- },
657
- onDidOpenTextDocument(listener, thisArg?, disposables?) {
658
- return documents.onDidAddDocument(listener, thisArg, disposables);
659
- },
660
- onWillSaveTextDocument(listener, thisArg?, disposables?) {
661
- return documents.onWillSaveTextDocument(listener, thisArg, disposables);
662
- },
663
- onDidSaveTextDocument(listener, thisArg?, disposables?) {
664
- return documents.onDidSaveTextDocument(listener, thisArg, disposables);
665
- },
666
- onDidCreateFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidCreateFile(listener, thisArg, disposables),
667
- onDidDeleteFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidDeleteFile(listener, thisArg, disposables),
668
- onDidRenameFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidRenameFile(listener, thisArg, disposables),
669
- onWillCreateFiles: (listener: (e: theia.FileWillCreateEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
670
- extHostFileSystemEvent.getOnWillCreateFileEvent(plugin)(listener, thisArg, disposables),
671
- onWillDeleteFiles: (listener: (e: theia.FileWillDeleteEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
672
- extHostFileSystemEvent.getOnWillDeleteFileEvent(plugin)(listener, thisArg, disposables),
673
- onWillRenameFiles: (listener: (e: theia.FileWillRenameEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
674
- extHostFileSystemEvent.getOnWillRenameFileEvent(plugin)(listener, thisArg, disposables),
675
- getConfiguration(section, resource): theia.WorkspaceConfiguration {
676
- return preferenceRegistryExt.getConfiguration(section, resource);
677
- },
678
- onDidChangeConfiguration(listener, thisArgs?, disposables?): theia.Disposable {
679
- return preferenceRegistryExt.onDidChangeConfiguration(listener, thisArgs, disposables);
680
- },
681
- async openTextDocument(uriOrFileNameOrOptions?: theia.Uri | string | { language?: string; content?: string; }): Promise<theia.TextDocument | undefined> {
682
- const options = uriOrFileNameOrOptions as { language?: string; content?: string; };
683
-
684
- let uri: URI;
685
- if (typeof uriOrFileNameOrOptions === 'string') {
686
- uri = URI.file(uriOrFileNameOrOptions);
687
-
688
- } else if (uriOrFileNameOrOptions instanceof URI) {
689
- uri = uriOrFileNameOrOptions;
690
-
691
- } else if (!options || typeof options === 'object') {
692
- uri = await documents.createDocumentData(options);
693
-
694
- } else {
695
- return Promise.reject(new Error('illegal argument - uriOrFileNameOrOptions'));
696
- }
697
-
698
- const data = await documents.openDocument(uri);
699
- return data && data.document;
700
- },
701
- async openNotebookDocument(uriOrType: theia.Uri | string, content?: NotebookData): Promise<theia.NotebookDocument | undefined> {
702
- let uri: URI;
703
- if (URI.isUri(uriOrType)) {
704
- uri = uriOrType;
705
- await notebooksExt.openNotebookDocument(uriOrType as URI);
706
- } else if (typeof uriOrType === 'string') {
707
- uri = URI.revive(await notebooksExt.createNotebookDocument({ viewType: uriOrType, content }));
708
- } else {
709
- throw new Error('Invalid arguments');
710
- }
711
- return notebooksExt.getNotebookDocument(uri).apiNotebook;
712
-
713
- },
714
- createFileSystemWatcher: (pattern, ignoreCreate, ignoreChange, ignoreDelete): theia.FileSystemWatcher =>
715
- extHostFileSystemEvent.createFileSystemWatcher(fromGlobPattern(pattern), ignoreCreate, ignoreChange, ignoreDelete),
716
- findFiles(include: theia.GlobPattern, exclude?: theia.GlobPattern | null, maxResults?: number, token?: CancellationToken): PromiseLike<URI[]> {
717
- return workspaceExt.findFiles(include, exclude, maxResults, token);
718
- },
719
- findTextInFiles(query: theia.TextSearchQuery, optionsOrCallback: theia.FindTextInFilesOptions | ((result: theia.TextSearchResult) => void),
720
- callbackOrToken?: CancellationToken | ((result: theia.TextSearchResult) => void), token?: CancellationToken): Promise<theia.TextSearchComplete> {
721
- return workspaceExt.findTextInFiles(query, optionsOrCallback, callbackOrToken, token);
722
- },
723
- saveAll(includeUntitled?: boolean): PromiseLike<boolean> {
724
- return editors.saveAll(includeUntitled);
725
- },
726
- applyEdit(edit: theia.WorkspaceEdit, metadata?: theia.WorkspaceEditMetadata): PromiseLike<boolean> {
727
- return editors.applyWorkspaceEdit(edit, metadata);
728
- },
729
- registerTextDocumentContentProvider(scheme: string, provider: theia.TextDocumentContentProvider): theia.Disposable {
730
- return workspaceExt.registerTextDocumentContentProvider(scheme, provider);
731
- },
732
- registerFileSystemProvider(scheme: string, provider: theia.FileSystemProvider, options?: { isCaseSensitive?: boolean, isReadonly?: boolean }): theia.Disposable {
733
- return fileSystemExt.registerFileSystemProvider(scheme, provider, options);
734
- },
735
- getWorkspaceFolder(uri: theia.Uri): theia.WorkspaceFolder | undefined {
736
- return workspaceExt.getWorkspaceFolder(uri);
737
- },
738
- asRelativePath(pathOrUri: theia.Uri | string, includeWorkspace?: boolean): string | undefined {
739
- return workspaceExt.getRelativePath(pathOrUri, includeWorkspace);
740
- },
741
- updateWorkspaceFolders: (index, deleteCount, ...workspaceFoldersToAdd) =>
742
- workspaceExt.updateWorkspaceFolders(index, deleteCount || 0, ...workspaceFoldersToAdd)
743
- ,
744
- registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
745
- return tasks.registerTaskProvider(type, provider);
746
- },
747
- registerResourceLabelFormatter(formatter: theia.ResourceLabelFormatter): theia.Disposable {
748
- return labelServiceExt.$registerResourceLabelFormatter(formatter);
749
- },
750
- registerTimelineProvider(scheme: string | string[], provider: theia.TimelineProvider): theia.Disposable {
751
- return timelineExt.registerTimelineProvider(plugin, scheme, provider);
752
- },
753
- registerNotebookSerializer(notebookType: string, serializer: theia.NotebookSerializer, options?: theia.NotebookDocumentContentOptions): theia.Disposable {
754
- return notebooksExt.registerNotebookSerializer(plugin, notebookType, serializer, options);
755
- },
756
- get isTrusted(): boolean {
757
- return workspaceExt.trusted;
758
- },
759
- async requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined> {
760
- return workspaceExt.requestWorkspaceTrust(options);
761
- },
762
- get onDidGrantWorkspaceTrust(): theia.Event<void> {
763
- return workspaceExt.onDidGrantWorkspaceTrust;
764
- },
765
- registerEditSessionIdentityProvider(scheme: string, provider: theia.EditSessionIdentityProvider) {
766
- return workspaceExt.$registerEditSessionIdentityProvider(scheme, provider);
767
- },
768
- /**
769
- * @stubbed
770
- * This is a stub implementation, that should minimally satisfy vscode built-in extensions
771
- * that currently use this proposed API.
772
- */
773
- onWillCreateEditSessionIdentity: () => Disposable.NULL,
774
- registerCanonicalUriProvider(scheme: string, provider: theia.CanonicalUriProvider): theia.Disposable {
775
- return workspaceExt.registerCanonicalUriProvider(scheme, provider);
776
- },
777
- getCanonicalUri(uri: theia.Uri, options: theia.CanonicalUriRequestOptions, token: CancellationToken): theia.ProviderResult<theia.Uri> {
778
- return workspaceExt.getCanonicalUri(uri, options, token);
779
- }
780
- };
781
-
782
- const onDidChangeLogLevel = new Emitter<theia.LogLevel>();
783
- const env: typeof theia.env = Object.freeze({
784
- get appName(): string { return envExt.appName; },
785
- get appRoot(): string { return envExt.appRoot; },
786
- get appHost(): string { return envExt.appHost; },
787
- get language(): string { return envExt.language; },
788
- get isNewAppInstall(): boolean { return envExt.isNewAppInstall; },
789
- get isTelemetryEnabled(): boolean { return telemetryExt.isTelemetryEnabled; },
790
- get onDidChangeTelemetryEnabled(): theia.Event<boolean> {
791
- return telemetryExt.onDidChangeTelemetryEnabled;
792
- },
793
- createTelemetryLogger(sender: theia.TelemetrySender, options?: theia.TelemetryLoggerOptions): theia.TelemetryLogger {
794
- return telemetryExt.createTelemetryLogger(sender, options);
795
- },
796
- get remoteName(): string | undefined { return envExt.remoteName; },
797
- get machineId(): string { return envExt.machineId; },
798
- get sessionId(): string { return envExt.sessionId; },
799
- get uriScheme(): string { return envExt.uriScheme; },
800
- get shell(): string { return terminalExt.defaultShell; },
801
- get onDidChangeShell(): theia.Event<string> {
802
- return terminalExt.onDidChangeShell;
803
- },
804
- get uiKind(): theia.UIKind { return envExt.uiKind; },
805
- clipboard,
806
- getEnvVariable(envVarName: string): PromiseLike<string | undefined> {
807
- return envExt.getEnvVariable(envVarName);
808
- },
809
- getQueryParameter(queryParamName: string): string | string[] | undefined {
810
- return envExt.getQueryParameter(queryParamName);
811
- },
812
- getQueryParameters(): QueryParameters {
813
- return envExt.getQueryParameters();
814
- },
815
- getClientOperatingSystem(): PromiseLike<theia.OperatingSystem> {
816
- return envExt.getClientOperatingSystem();
817
- },
818
- openExternal(uri: theia.Uri): PromiseLike<boolean> {
819
- return windowStateExt.openUri(uri);
820
- },
821
- asExternalUri(target: theia.Uri): PromiseLike<theia.Uri> {
822
- return windowStateExt.asExternalUri(target);
823
- },
824
- get logLevel(): theia.LogLevel { return LogLevel.Info; },
825
- get onDidChangeLogLevel(): theia.Event<theia.LogLevel> { return onDidChangeLogLevel.event; }
826
- });
827
-
828
- const extensions: typeof theia.extensions = Object.freeze({
829
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
830
- getExtension<T = any>(extensionId: string, includeFromDifferentExtensionHosts: boolean = false): theia.Extension<T> | undefined {
831
- includeFromDifferentExtensionHosts = false;
832
- const plg = pluginManager.getPluginById(extensionId.toLowerCase());
833
- if (plg) {
834
- return new PluginExt(pluginManager, plg);
835
- }
836
- return undefined;
837
- },
838
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
839
- get all(): readonly theia.Extension<any>[] {
840
- return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
841
- },
842
- get allAcrossExtensionHosts(): readonly theia.Extension<any>[] {
843
- // we only support one extension host ATM so equivalent to calling "all()"
844
- return this.all;
845
- },
846
- get onDidChange(): theia.Event<void> {
847
- return pluginManager.onDidChange;
848
- }
849
- });
850
-
851
- const languages: typeof theia.languages = {
852
- getLanguages(): PromiseLike<string[]> {
853
- return languagesExt.getLanguages();
854
- },
855
- setTextDocumentLanguage(document: theia.TextDocument, languageId: string): PromiseLike<theia.TextDocument> {
856
- return languagesExt.changeLanguage(document.uri, languageId);
857
- },
858
- match(selector: theia.DocumentSelector, document: theia.TextDocument): number {
859
- return score(fromDocumentSelector(selector), document.uri.scheme, document.uri.path, document.languageId, true);
860
- },
861
- get onDidChangeDiagnostics(): theia.Event<theia.DiagnosticChangeEvent> {
862
- return languagesExt.onDidChangeDiagnostics;
863
- },
864
- getDiagnostics(resource?: URI) {
865
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
866
- return <any>languagesExt.getDiagnostics(resource);
867
- },
868
- createDiagnosticCollection(name?: string): theia.DiagnosticCollection {
869
- return languagesExt.createDiagnosticCollection(name);
870
- },
871
- setLanguageConfiguration(language: string, configuration: theia.LanguageConfiguration): theia.Disposable {
872
- return languagesExt.setLanguageConfiguration(language, configuration);
873
- },
874
- registerCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.CompletionItemProvider, ...triggerCharacters: string[]): theia.Disposable {
875
- return languagesExt.registerCompletionItemProvider(selector, provider, triggerCharacters, pluginToPluginInfo(plugin));
876
- },
877
- registerInlineCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.InlineCompletionItemProvider): theia.Disposable {
878
- return languagesExt.registerInlineCompletionsProvider(selector, provider);
879
- },
880
- registerDefinitionProvider(selector: theia.DocumentSelector, provider: theia.DefinitionProvider): theia.Disposable {
881
- return languagesExt.registerDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
882
- },
883
- registerDeclarationProvider(selector: theia.DocumentSelector, provider: theia.DeclarationProvider): theia.Disposable {
884
- return languagesExt.registerDeclarationProvider(selector, provider, pluginToPluginInfo(plugin));
885
- },
886
- registerSignatureHelpProvider(
887
- selector: theia.DocumentSelector, provider: theia.SignatureHelpProvider, first?: string | theia.SignatureHelpProviderMetadata, ...remaining: string[]
888
- ): theia.Disposable {
889
- let metadata: theia.SignatureHelpProviderMetadata;
890
- if (typeof first === 'object') {
891
- metadata = first;
892
- } else {
893
- const triggerCharacters: string[] = [];
894
- metadata = { triggerCharacters, retriggerCharacters: [] };
895
- if (first) {
896
- triggerCharacters.push(first, ...remaining);
897
- }
898
- }
899
- return languagesExt.registerSignatureHelpProvider(selector, provider, metadata, pluginToPluginInfo(plugin));
900
- },
901
- registerTypeDefinitionProvider(selector: theia.DocumentSelector, provider: theia.TypeDefinitionProvider): theia.Disposable {
902
- return languagesExt.registerTypeDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
903
- },
904
- registerImplementationProvider(selector: theia.DocumentSelector, provider: theia.ImplementationProvider): theia.Disposable {
905
- return languagesExt.registerImplementationProvider(selector, provider, pluginToPluginInfo(plugin));
906
- },
907
- registerHoverProvider(selector: theia.DocumentSelector, provider: theia.HoverProvider): theia.Disposable {
908
- return languagesExt.registerHoverProvider(selector, provider, pluginToPluginInfo(plugin));
909
- },
910
- registerEvaluatableExpressionProvider(selector: theia.DocumentSelector, provider: theia.EvaluatableExpressionProvider): theia.Disposable {
911
- return languagesExt.registerEvaluatableExpressionProvider(selector, provider, pluginToPluginInfo(plugin));
912
- },
913
- registerInlineValuesProvider(selector: theia.DocumentSelector, provider: theia.InlineValuesProvider): theia.Disposable {
914
- return languagesExt.registerInlineValuesProvider(selector, provider, pluginToPluginInfo(plugin));
915
- },
916
- registerDocumentHighlightProvider(selector: theia.DocumentSelector, provider: theia.DocumentHighlightProvider): theia.Disposable {
917
- return languagesExt.registerDocumentHighlightProvider(selector, provider, pluginToPluginInfo(plugin));
918
- },
919
- registerWorkspaceSymbolProvider(provider: theia.WorkspaceSymbolProvider): theia.Disposable {
920
- return languagesExt.registerWorkspaceSymbolProvider(provider, pluginToPluginInfo(plugin));
921
- },
922
- registerDocumentFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentFormattingEditProvider): theia.Disposable {
923
- return languagesExt.registerDocumentFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
924
- },
925
- registerDocumentRangeFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeFormattingEditProvider): theia.Disposable {
926
- return languagesExt.registerDocumentRangeFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
927
- },
928
- registerOnTypeFormattingEditProvider(
929
- selector: theia.DocumentSelector,
930
- provider: theia.OnTypeFormattingEditProvider,
931
- firstTriggerCharacter: string,
932
- ...moreTriggerCharacters: string[]
933
- ): theia.Disposable {
934
- return languagesExt.registerOnTypeFormattingEditProvider(selector, provider, [firstTriggerCharacter].concat(moreTriggerCharacters), pluginToPluginInfo(plugin));
935
- },
936
- registerDocumentDropEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentDropEditProvider, metadata?: theia.DocumentDropEditProviderMetadata) {
937
- return languagesExt.registerDocumentDropEditProvider(selector, provider, metadata);
938
- },
939
- registerDocumentLinkProvider(selector: theia.DocumentSelector, provider: theia.DocumentLinkProvider): theia.Disposable {
940
- return languagesExt.registerDocumentLinkProvider(selector, provider, pluginToPluginInfo(plugin));
941
- },
942
- registerCodeActionsProvider(selector: theia.DocumentSelector, provider: theia.CodeActionProvider, metadata?: theia.CodeActionProviderMetadata): theia.Disposable {
943
- return languagesExt.registerCodeActionsProvider(selector, provider, plugin.model, pluginToPluginInfo(plugin), metadata);
944
- },
945
- registerCodeLensProvider(selector: theia.DocumentSelector, provider: theia.CodeLensProvider): theia.Disposable {
946
- return languagesExt.registerCodeLensProvider(selector, provider, pluginToPluginInfo(plugin));
947
- },
948
- registerReferenceProvider(selector: theia.DocumentSelector, provider: theia.ReferenceProvider): theia.Disposable {
949
- return languagesExt.registerReferenceProvider(selector, provider, pluginToPluginInfo(plugin));
950
- },
951
- registerDocumentSymbolProvider(selector: theia.DocumentSelector, provider: theia.DocumentSymbolProvider,
952
- metadata?: theia.DocumentSymbolProviderMetadata): theia.Disposable {
953
- return languagesExt.registerDocumentSymbolProvider(selector, provider, pluginToPluginInfo(plugin), metadata);
954
- },
955
- registerColorProvider(selector: theia.DocumentSelector, provider: theia.DocumentColorProvider): theia.Disposable {
956
- return languagesExt.registerColorProvider(selector, provider, pluginToPluginInfo(plugin));
957
- },
958
- registerInlayHintsProvider(selector: theia.DocumentSelector, provider: theia.InlayHintsProvider): theia.Disposable {
959
- return languagesExt.registerInlayHintsProvider(selector, provider, pluginToPluginInfo(plugin));
960
- },
961
- registerFoldingRangeProvider(selector: theia.DocumentSelector, provider: theia.FoldingRangeProvider): theia.Disposable {
962
- return languagesExt.registerFoldingRangeProvider(selector, provider, pluginToPluginInfo(plugin));
963
- },
964
- registerSelectionRangeProvider(selector: theia.DocumentSelector, provider: theia.SelectionRangeProvider): theia.Disposable {
965
- return languagesExt.registerSelectionRangeProvider(selector, provider, pluginToPluginInfo(plugin));
966
- },
967
- registerRenameProvider(selector: theia.DocumentSelector, provider: theia.RenameProvider): theia.Disposable {
968
- return languagesExt.registerRenameProvider(selector, provider, pluginToPluginInfo(plugin));
969
- },
970
- registerDocumentSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentSemanticTokensProvider, legend: theia.SemanticTokensLegend):
971
- theia.Disposable {
972
- return languagesExt.registerDocumentSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
973
- },
974
- registerDocumentRangeSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeSemanticTokensProvider, legend: theia.SemanticTokensLegend):
975
- theia.Disposable {
976
- return languagesExt.registerDocumentRangeSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
977
- },
978
- registerCallHierarchyProvider(selector: theia.DocumentSelector, provider: theia.CallHierarchyProvider): theia.Disposable {
979
- return languagesExt.registerCallHierarchyProvider(selector, provider);
980
- },
981
- registerTypeHierarchyProvider(selector: theia.DocumentSelector, provider: theia.TypeHierarchyProvider): theia.Disposable {
982
- return languagesExt.registerTypeHierarchyProvider(selector, provider);
983
- },
984
- registerLinkedEditingRangeProvider(selector: theia.DocumentSelector, provider: theia.LinkedEditingRangeProvider): theia.Disposable {
985
- return languagesExt.registerLinkedEditingRangeProvider(selector, provider);
986
- },
987
- createLanguageStatusItem(id: string, selector: theia.DocumentSelector): theia.LanguageStatusItem {
988
- return languagesExt.createLanguageStatusItem(plugin, id, selector);
989
- },
990
- registerDocumentPasteEditProvider(
991
- selector: theia.DocumentSelector, provider: theia.DocumentPasteEditProvider, metadata: theia.DocumentPasteProviderMetadata
992
- ): theia.Disposable {
993
- return languagesExt.registerDocumentPasteEditProvider(plugin, selector, provider, metadata);
994
- }
995
- };
996
-
997
- const tests: typeof theia.tests = {
998
- createTestController(id, label: string) {
999
- return testingExt.createTestController(id, label);
1000
- }
1001
- };
1002
- /* End of Tests API */
1003
-
1004
- const plugins: typeof theia.plugins = {
1005
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1006
- get all(): theia.Plugin<any>[] {
1007
- return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
1008
- },
1009
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1010
- getPlugin(pluginId: string): theia.Plugin<any> | undefined {
1011
- const plg = pluginManager.getPluginById(pluginId.toLowerCase());
1012
- if (plg) {
1013
- return new PluginExt(pluginManager, plg);
1014
- }
1015
- return undefined;
1016
- },
1017
- get onDidChange(): theia.Event<void> {
1018
- return pluginManager.onDidChange;
1019
- }
1020
- };
1021
-
1022
- const debuggersContributions = plugin.rawModel.contributes && plugin.rawModel.contributes.debuggers || [];
1023
- debugExt.assistedInject(connectionExt, commandRegistry);
1024
- debugExt.registerDebuggersContributions(plugin.pluginFolder, plugin.model.entryPoint.frontend ? 'frontend' : 'backend', debuggersContributions);
1025
- const debug: typeof theia.debug = {
1026
- get activeDebugSession(): theia.DebugSession | undefined {
1027
- return debugExt.activeDebugSession;
1028
- },
1029
- get activeDebugConsole(): theia.DebugConsole {
1030
- return debugExt.activeDebugConsole;
1031
- },
1032
- get breakpoints(): theia.Breakpoint[] {
1033
- return debugExt.breakpoints;
1034
- },
1035
- get onDidChangeActiveDebugSession(): theia.Event<theia.DebugSession | undefined> {
1036
- return debugExt.onDidChangeActiveDebugSession;
1037
- },
1038
- get onDidStartDebugSession(): theia.Event<theia.DebugSession> {
1039
- return debugExt.onDidStartDebugSession;
1040
- },
1041
- get onDidReceiveDebugSessionCustomEvent(): theia.Event<theia.DebugSessionCustomEvent> {
1042
- return debugExt.onDidReceiveDebugSessionCustomEvent;
1043
- },
1044
- get onDidTerminateDebugSession(): theia.Event<theia.DebugSession> {
1045
- return debugExt.onDidTerminateDebugSession;
1046
- },
1047
- get onDidChangeBreakpoints(): theia.Event<theia.BreakpointsChangeEvent> {
1048
- return debugExt.onDidChangeBreakpoints;
1049
- },
1050
- registerDebugAdapterDescriptorFactory(debugType: string, factory: theia.DebugAdapterDescriptorFactory): Disposable {
1051
- return debugExt.registerDebugAdapterDescriptorFactory(debugType, factory);
1052
- },
1053
- registerDebugConfigurationProvider(
1054
- debugType: string,
1055
- provider: theia.DebugConfigurationProvider,
1056
- triggerKind?: theia.DebugConfigurationProviderTriggerKind
1057
- ): Disposable {
1058
- return debugExt.registerDebugConfigurationProvider(debugType, provider, triggerKind || DebugConfigurationProviderTriggerKind.Initial);
1059
- },
1060
- registerDebugAdapterTrackerFactory(debugType: string, factory: theia.DebugAdapterTrackerFactory): Disposable {
1061
- return debugExt.registerDebugAdapterTrackerFactory(debugType, factory);
1062
- },
1063
- startDebugging(
1064
- folder: theia.WorkspaceFolder | undefined,
1065
- nameOrConfiguration: string | theia.DebugConfiguration,
1066
- parentSessionOrOptions?: theia.DebugSession | theia.DebugSessionOptions
1067
- ): Thenable<boolean> {
1068
- if (!parentSessionOrOptions || (typeof parentSessionOrOptions === 'object' && 'configuration' in parentSessionOrOptions)) {
1069
- return debugExt.startDebugging(folder, nameOrConfiguration, { parentSession: parentSessionOrOptions });
1070
- }
1071
- return debugExt.startDebugging(folder, nameOrConfiguration, parentSessionOrOptions || {});
1072
- },
1073
- stopDebugging(session?: theia.DebugSession): Thenable<void> {
1074
- return debugExt.stopDebugging(session);
1075
- },
1076
- addBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
1077
- debugExt.addBreakpoints(breakpoints);
1078
- },
1079
- removeBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
1080
- debugExt.removeBreakpoints(breakpoints);
1081
- },
1082
- asDebugSourceUri(source: theia.DebugProtocolSource, session?: theia.DebugSession): theia.Uri {
1083
- return debugExt.asDebugSourceUri(source, session);
1084
- }
1085
- };
1086
-
1087
- const tasks: typeof theia.tasks = {
1088
- registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
1089
- return tasksExt.registerTaskProvider(type, provider);
1090
- },
1091
-
1092
- fetchTasks(filter?: theia.TaskFilter): Thenable<theia.Task[]> {
1093
- return tasksExt.fetchTasks(filter);
1094
- },
1095
-
1096
- executeTask(task: theia.Task): Thenable<theia.TaskExecution> {
1097
- return tasksExt.executeTask(task);
1098
- },
1099
-
1100
- get taskExecutions(): ReadonlyArray<theia.TaskExecution> {
1101
- return tasksExt.taskExecutions;
1102
- },
1103
- onDidStartTask(listener, thisArg?, disposables?) {
1104
- return tasksExt.onDidStartTask(listener, thisArg, disposables);
1105
- },
1106
- onDidEndTask(listener, thisArg?, disposables?) {
1107
- return tasksExt.onDidEndTask(listener, thisArg, disposables);
1108
- },
1109
- onDidStartTaskProcess(listener, thisArg?, disposables?) {
1110
- return tasksExt.onDidStartTaskProcess(listener, thisArg, disposables);
1111
- },
1112
- onDidEndTaskProcess(listener, thisArg?, disposables?) {
1113
- return tasksExt.onDidEndTaskProcess(listener, thisArg, disposables);
1114
- }
1115
- };
1116
-
1117
- const scm: typeof theia.scm = {
1118
- get inputBox(): theia.SourceControlInputBox {
1119
- const inputBox = scmExt.getLastInputBox(plugin);
1120
- if (inputBox) {
1121
- return inputBox;
1122
- } else {
1123
- throw new Error('Input box not found!');
1124
- }
1125
- },
1126
- createSourceControl(id: string, label: string, rootUri?: URI): theia.SourceControl {
1127
- return scmExt.createSourceControl(plugin, id, label, rootUri);
1128
- }
1129
- };
1130
-
1131
- const comments: typeof theia.comments = {
1132
- createCommentController(id: string, label: string): theia.CommentController {
1133
- return commentsExt.createCommentController(plugin, id, label);
1134
- }
1135
- };
1136
-
1137
- const l10n: typeof theia.l10n = {
1138
- // eslint-disable-next-line max-len
1139
- t(...params: [message: string, ...args: Array<string | number | boolean>] | [message: string, args: Record<string, any>] | [{ message: string; args?: Array<string | number | boolean> | Record<string, any>; comment: string | string[] }]): string {
1140
- if (typeof params[0] === 'string') {
1141
- const key = params.shift() as string;
1142
-
1143
- // We have either rest args which are Array<string | number | boolean> or an array with a single Record<string, any>.
1144
- // This ensures we get a Record<string | number, any> which will be formatted correctly.
1145
- const argsFormatted = !params || typeof params[0] !== 'object' ? params : params[0];
1146
- return localizationExt.translateMessage(plugin.model.id, { message: key, args: argsFormatted as Record<string | number, any> | undefined });
1147
- }
1148
- return localizationExt.translateMessage(plugin.model.id, params[0]);
1149
- },
1150
- get bundle() {
1151
- return localizationExt.getBundle(plugin.model.id);
1152
- },
1153
- get uri() {
1154
- return localizationExt.getBundleUri(plugin.model.id);
1155
- }
1156
- };
1157
-
1158
- // notebooks API (@stubbed)
1159
- // The following implementation is temporarily `@stubbed` and marked as such under `theia.d.ts`
1160
- const notebooks: typeof theia.notebooks = {
1161
- createNotebookController(
1162
- id,
1163
- notebookType,
1164
- label,
1165
- handler?: (cells: theia.NotebookCell[],
1166
- notebook: theia.NotebookDocument,
1167
- controller: theia.NotebookController) => void | Thenable<void>,
1168
- rendererScripts?: NotebookRendererScript[]
1169
- ) {
1170
- return notebookKernels.createNotebookController(plugin.model.id, id, notebookType, label, handler, rendererScripts);
1171
- },
1172
- createRendererMessaging(rendererId) {
1173
- return notebookRenderers.createRendererMessaging(rendererId);
1174
- },
1175
- registerNotebookCellStatusBarItemProvider(
1176
- notebookType,
1177
- provider
1178
- ) {
1179
- return notebooksExt.registerNotebookCellStatusBarItemProvider(notebookType, provider);
1180
- },
1181
- onDidChangeNotebookCellExecutionState: notebookKernels.onDidChangeNotebookCellExecutionState,
1182
-
1183
- createNotebookControllerDetectionTask(notebookType: string) {
1184
- return notebookKernels.createNotebookControllerDetectionTask(notebookType);
1185
- },
1186
- registerKernelSourceActionProvider(notebookType: string, provider: theia.NotebookKernelSourceActionProvider) {
1187
- return notebookKernels.registerKernelSourceActionProvider(notebookType, provider);
1188
- }
1189
- };
1190
-
1191
- return <typeof theia>{
1192
- version: require('../../package.json').version,
1193
- authentication,
1194
- commands,
1195
- comments,
1196
- window,
1197
- workspace,
1198
- env,
1199
- extensions,
1200
- languages,
1201
- plugins,
1202
- debug,
1203
- tasks,
1204
- scm,
1205
- notebooks,
1206
- l10n,
1207
- tests,
1208
- // Types
1209
- StatusBarAlignment: StatusBarAlignment,
1210
- Disposable: Disposable,
1211
- EventEmitter: Emitter,
1212
- CancellationTokenSource: CancellationTokenSource,
1213
- MarkdownString,
1214
- Position: Position,
1215
- Range: Range,
1216
- Selection: Selection,
1217
- ViewColumn: ViewColumn,
1218
- TextEditorSelectionChangeKind: TextEditorSelectionChangeKind,
1219
- Uri: URI,
1220
- EndOfLine,
1221
- TextEditorRevealType,
1222
- TextEditorCursorStyle,
1223
- TextEditorLineNumbersStyle,
1224
- ThemeColor,
1225
- ThemeIcon,
1226
- SnippetString,
1227
- DecorationRangeBehavior,
1228
- OverviewRulerLane,
1229
- ConfigurationTarget,
1230
- RelativePattern,
1231
- IndentAction,
1232
- SyntaxTokenType,
1233
- CompletionItem,
1234
- CompletionItemKind,
1235
- CompletionList,
1236
- DebugConsoleMode,
1237
- DiagnosticSeverity,
1238
- DiagnosticRelatedInformation,
1239
- LanguageStatusSeverity,
1240
- Location,
1241
- LogLevel,
1242
- DiagnosticTag,
1243
- CompletionItemTag,
1244
- Diagnostic,
1245
- CompletionTriggerKind,
1246
- TextEdit,
1247
- SnippetTextEdit,
1248
- ProgressLocation,
1249
- ProgressOptions,
1250
- Progress,
1251
- ParameterInformation,
1252
- QuickPickItemKind,
1253
- SignatureInformation,
1254
- SignatureHelp,
1255
- SignatureHelpTriggerKind,
1256
- Hover,
1257
- EvaluatableExpression,
1258
- InlineValueEvaluatableExpression,
1259
- InlineValueText,
1260
- InlineValueVariableLookup,
1261
- InlineValueContext,
1262
- DocumentHighlightKind,
1263
- DocumentHighlight,
1264
- DocumentLink,
1265
- DocumentDropEdit,
1266
- CodeLens,
1267
- CodeActionKind,
1268
- CodeActionTrigger,
1269
- CodeActionTriggerKind,
1270
- TextDocumentSaveReason,
1271
- CodeAction,
1272
- DataTransferItem,
1273
- DataTransfer,
1274
- TreeItem,
1275
- TreeItemCollapsibleState,
1276
- TreeItemCheckboxState,
1277
- SymbolKind,
1278
- SymbolTag,
1279
- DocumentSymbol,
1280
- WorkspaceEdit,
1281
- SymbolInformation,
1282
- FileType,
1283
- FilePermission,
1284
- FileChangeType,
1285
- ShellQuoting,
1286
- ShellExecution,
1287
- ProcessExecution,
1288
- CustomExecution,
1289
- TaskScope,
1290
- TaskRevealKind,
1291
- TaskPanelKind,
1292
- TaskGroup,
1293
- Task,
1294
- Task2,
1295
- DebugAdapterExecutable,
1296
- DebugAdapterServer,
1297
- DebugAdapterNamedPipeServer,
1298
- DebugAdapterInlineImplementation,
1299
- DebugConfigurationProviderTriggerKind,
1300
- Breakpoint,
1301
- SourceBreakpoint,
1302
- FunctionBreakpoint,
1303
- Color,
1304
- ColorInformation,
1305
- ColorPresentation,
1306
- FoldingRange,
1307
- SelectionRange,
1308
- FoldingRangeKind,
1309
- OperatingSystem,
1310
- WebviewPanelTargetArea,
1311
- UIKind,
1312
- FileSystemError,
1313
- CommentThreadState,
1314
- CommentThreadCollapsibleState,
1315
- QuickInputButtons,
1316
- CommentMode,
1317
- CallHierarchyItem,
1318
- CallHierarchyIncomingCall,
1319
- CallHierarchyOutgoingCall,
1320
- TypeHierarchyItem,
1321
- TimelineItem,
1322
- EnvironmentVariableMutatorType,
1323
- SemanticTokensLegend,
1324
- SemanticTokensBuilder,
1325
- SemanticTokens,
1326
- SemanticTokensEdits,
1327
- SemanticTokensEdit,
1328
- TextDocumentChangeReason,
1329
- ColorThemeKind,
1330
- SourceControlInputBoxValidationType,
1331
- FileDecoration,
1332
- TerminalLink,
1333
- TerminalProfile,
1334
- CancellationError,
1335
- ExtensionMode,
1336
- LinkedEditingRanges,
1337
- InputBoxValidationSeverity,
1338
- InlayHint,
1339
- InlayHintKind,
1340
- InlayHintLabelPart,
1341
- TelemetryTrustedValue,
1342
- NotebookCellData,
1343
- NotebookCellExecutionState,
1344
- NotebookCellKind,
1345
- NotebookCellOutput,
1346
- NotebookCellOutputItem,
1347
- NotebookCellStatusBarAlignment,
1348
- NotebookCellStatusBarItem,
1349
- NotebookControllerAffinity,
1350
- NotebookData,
1351
- NotebookEditorRevealType,
1352
- NotebookDocument,
1353
- NotebookRange,
1354
- NotebookEdit,
1355
- NotebookKernelSourceAction,
1356
- NotebookRendererScript,
1357
- TestRunProfileKind,
1358
- TestTag,
1359
- TestRunRequest,
1360
- TestMessage,
1361
- ExtensionKind,
1362
- InlineCompletionItem,
1363
- InlineCompletionList,
1364
- InlineCompletionTriggerKind,
1365
- TabInputText: TextTabInput,
1366
- TabInputTextDiff: TextDiffTabInput,
1367
- TabInputTextMerge: TextMergeTabInput,
1368
- TabInputCustom: CustomEditorTabInput,
1369
- TabInputNotebook: NotebookEditorTabInput,
1370
- TabInputNotebookDiff: NotebookDiffEditorTabInput,
1371
- TabInputWebview: WebviewEditorTabInput,
1372
- TabInputTerminal: TerminalEditorTabInput,
1373
- TerminalLocation,
1374
- TerminalOutputAnchor,
1375
- TerminalExitReason,
1376
- DocumentPasteEdit,
1377
- ExternalUriOpenerPriority,
1378
- TerminalQuickFixExecuteTerminalCommand,
1379
- TerminalQuickFixOpener,
1380
- EditSessionIdentityMatch,
1381
- TestResultState
1382
- };
1383
- };
1384
- }
1385
-
1386
- /**
1387
- * Represents a Theia plugin as well as a VSCode extension.
1388
- */
1389
- export interface ExtensionPlugin<T> extends theia.Plugin<T> {
1390
- /**
1391
- * The uri of the directory containing the extension. Same as {@linkcode theia.Plugin.pluginUri}.
1392
- */
1393
- readonly extensionUri: theia.Uri;
1394
-
1395
- /**
1396
- * The absolute file path of the directory containing this extension.
1397
- * Same as {@linkcode theia.Plugin.pluginPath}.
1398
- */
1399
- readonly extensionPath: string;
1400
-
1401
- /**
1402
- * The extension kind describes if an extension runs where the UI runs
1403
- * or if an extension runs where the remote extension host runs. The extension kind
1404
- * is defined in the `package.json`-file of extensions. When no remote extension host exists,
1405
- * the value is {@linkcode ExtensionKind.UI}.
1406
- */
1407
- extensionKind: theia.ExtensionKind;
1408
- }
1409
-
1410
- export class Plugin<T> implements theia.Plugin<T> {
1411
- #pluginManager: PluginManager;
1412
-
1413
- id: string;
1414
- pluginPath: string;
1415
- pluginUri: theia.Uri;
1416
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1417
- packageJSON: any;
1418
- pluginType: theia.PluginType;
1419
-
1420
- constructor(pluginManager: PluginManager, plugin: InternalPlugin) {
1421
- this.#pluginManager = pluginManager;
1422
-
1423
- this.id = plugin.model.id;
1424
- this.pluginPath = plugin.pluginFolder;
1425
- this.packageJSON = plugin.rawModel;
1426
- this.pluginType = plugin.model.entryPoint.frontend ? 'frontend' : 'backend';
1427
-
1428
- if (this.pluginType === 'frontend') {
1429
- const { origin } = new Endpoint();
1430
- this.pluginUri = URI.parse(origin + '/' + PluginPackage.toPluginUrl(plugin.model, ''));
1431
- } else {
1432
- this.pluginUri = URI.parse(plugin.pluginUri);
1433
- }
1434
- }
1435
-
1436
- get isActive(): boolean {
1437
- return this.#pluginManager.isActive(this.id);
1438
- }
1439
-
1440
- get exports(): T {
1441
- return <T>this.#pluginManager.getPluginExport(this.id);
1442
- }
1443
-
1444
- activate(): PromiseLike<T> {
1445
- return this.#pluginManager.activatePlugin(this.id).then(() => this.exports);
1446
- }
1447
- }
1448
-
1449
- export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
1450
- #pluginManager: PluginManager;
1451
-
1452
- extensionPath: string;
1453
- extensionUri: theia.Uri;
1454
- extensionKind: ExtensionKind;
1455
- isFromDifferentExtensionHost: boolean;
1456
-
1457
- constructor(pluginManager: PluginManager, plugin: InternalPlugin, isFromDifferentExtensionHost = false) {
1458
- super(pluginManager, plugin);
1459
- this.#pluginManager = pluginManager;
1460
-
1461
- this.extensionPath = this.pluginPath;
1462
- this.extensionUri = this.pluginUri;
1463
- this.extensionKind = ExtensionKind.UI; // stub as a local extension (not running on a remote workspace)
1464
- this.isFromDifferentExtensionHost = isFromDifferentExtensionHost;
1465
- }
1466
-
1467
- override get isActive(): boolean {
1468
- return this.#pluginManager.isActive(this.id);
1469
- }
1470
-
1471
- override get exports(): T {
1472
- return <T>this.#pluginManager.getPluginExport(this.id);
1473
- }
1474
-
1475
- override activate(): PromiseLike<T> {
1476
- return this.#pluginManager.activatePlugin(this.id).then(() => this.exports);
1477
- }
1478
- }
1
+ // *****************************************************************************
2
+ // Copyright (C) 2018-2022 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-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18
+ /* tslint:disable:typedef */
19
+
20
+ import type * as theia from '@theia/plugin';
21
+ import { CommandRegistryImpl } from './command-registry';
22
+ import { Emitter } from '@theia/core/lib/common/event';
23
+ import { CancellationError, CancellationToken, CancellationTokenSource } from '@theia/core/lib/common/cancellation';
24
+ import { QuickOpenExtImpl } from './quick-open';
25
+ import {
26
+ MAIN_RPC_CONTEXT,
27
+ Plugin as InternalPlugin,
28
+ PluginManager,
29
+ PluginAPIFactory,
30
+ MainMessageType,
31
+ DebugConfigurationProviderTriggerKind,
32
+ PLUGIN_RPC_CONTEXT
33
+ } from '../common/plugin-api-rpc';
34
+ import { RPCProtocol } from '../common/rpc-protocol';
35
+ import { MessageRegistryExt } from './message-registry';
36
+ import { StatusBarMessageRegistryExt } from './status-bar-message-registry';
37
+ import { WindowStateExtImpl } from './window-state';
38
+ import { WorkspaceExtImpl } from './workspace';
39
+ import { EnvExtImpl } from './env';
40
+ import { QueryParameters } from '../common/env';
41
+ import {
42
+ ConfigurationTarget,
43
+ Disposable,
44
+ Position,
45
+ Range,
46
+ Selection,
47
+ ViewColumn,
48
+ TextEditorSelectionChangeKind,
49
+ EndOfLine,
50
+ SnippetString,
51
+ ThemeColor,
52
+ ThemeIcon,
53
+ TextEditorRevealType,
54
+ TextEditorLineNumbersStyle,
55
+ DecorationRangeBehavior,
56
+ OverviewRulerLane,
57
+ StatusBarAlignment,
58
+ RelativePattern,
59
+ IndentAction,
60
+ SyntaxTokenType,
61
+ CompletionItem,
62
+ CompletionItemKind,
63
+ CompletionList,
64
+ TextEdit,
65
+ SnippetTextEdit,
66
+ CompletionTriggerKind,
67
+ Diagnostic,
68
+ DiagnosticRelatedInformation,
69
+ DebugConsoleMode,
70
+ DiagnosticSeverity,
71
+ DiagnosticTag,
72
+ CompletionItemTag,
73
+ Location,
74
+ LogLevel,
75
+ Progress,
76
+ ProgressOptions,
77
+ ProgressLocation,
78
+ ParameterInformation,
79
+ SignatureInformation,
80
+ SignatureHelp,
81
+ SignatureHelpTriggerKind,
82
+ Hover,
83
+ EvaluatableExpression,
84
+ InlineValueEvaluatableExpression,
85
+ InlineValueText,
86
+ InlineValueVariableLookup,
87
+ InlineValueContext,
88
+ DocumentHighlightKind,
89
+ DocumentHighlight,
90
+ MultiDocumentHighlight,
91
+ DocumentLink,
92
+ DocumentDropEdit,
93
+ CodeLens,
94
+ CodeActionKind,
95
+ CodeActionTrigger,
96
+ CodeActionTriggerKind,
97
+ TextDocumentSaveReason,
98
+ CodeAction,
99
+ DataTransferItem,
100
+ DataTransfer,
101
+ TreeItem,
102
+ TreeItemCollapsibleState,
103
+ TreeItemCheckboxState,
104
+ DocumentSymbol,
105
+ SymbolTag,
106
+ WorkspaceEdit,
107
+ SymbolInformation,
108
+ FileType,
109
+ FileChangeType,
110
+ ShellQuoting,
111
+ ShellExecution,
112
+ ProcessExecution,
113
+ CustomExecution,
114
+ TaskScope,
115
+ TaskPanelKind,
116
+ TaskRevealKind,
117
+ TaskGroup,
118
+ Task,
119
+ Task2,
120
+ DebugAdapterExecutable,
121
+ DebugAdapterServer,
122
+ DebugAdapterNamedPipeServer,
123
+ DebugAdapterInlineImplementation,
124
+ Breakpoint,
125
+ SourceBreakpoint,
126
+ FunctionBreakpoint,
127
+ FoldingRange,
128
+ FoldingRangeKind,
129
+ SelectionRange,
130
+ Color,
131
+ ColorInformation,
132
+ ColorPresentation,
133
+ OperatingSystem,
134
+ WebviewPanelTargetArea,
135
+ UIKind,
136
+ FileSystemError,
137
+ CommentThreadState,
138
+ CommentThreadCollapsibleState,
139
+ QuickInputButtons,
140
+ QuickPickItemKind,
141
+ CommentMode,
142
+ CallHierarchyItem,
143
+ CallHierarchyIncomingCall,
144
+ CallHierarchyOutgoingCall,
145
+ TypeHierarchyItem,
146
+ TimelineItem,
147
+ EnvironmentVariableMutatorType,
148
+ SemanticTokensLegend,
149
+ SemanticTokensBuilder,
150
+ SemanticTokens,
151
+ SemanticTokensEdits,
152
+ SemanticTokensEdit,
153
+ ColorThemeKind,
154
+ SourceControlInputBoxValidationType,
155
+ URI,
156
+ FileDecoration,
157
+ ExtensionMode,
158
+ LinkedEditingRanges,
159
+ LanguageStatusSeverity,
160
+ TextDocumentChangeReason,
161
+ InputBoxValidationSeverity,
162
+ TerminalLink,
163
+ TerminalLocation,
164
+ TerminalExitReason,
165
+ TerminalProfile,
166
+ InlayHint,
167
+ InlayHintKind,
168
+ InlayHintLabelPart,
169
+ TelemetryTrustedValue,
170
+ NotebookCellKind,
171
+ NotebookCellExecutionState,
172
+ NotebookCellStatusBarAlignment,
173
+ NotebookEditorRevealType,
174
+ NotebookControllerAffinity,
175
+ NotebookCellData,
176
+ NotebookCellOutput,
177
+ NotebookCellOutputItem,
178
+ NotebookData,
179
+ NotebookRange,
180
+ NotebookCellStatusBarItem,
181
+ NotebookEdit,
182
+ NotebookKernelSourceAction,
183
+ NotebookRendererScript,
184
+ TestRunProfileKind,
185
+ TestTag,
186
+ TestRunRequest,
187
+ TestMessage,
188
+ ExtensionKind,
189
+ InlineCompletionItem,
190
+ InlineCompletionList,
191
+ InlineCompletionTriggerKind,
192
+ TextTabInput,
193
+ CustomEditorTabInput,
194
+ NotebookDiffEditorTabInput,
195
+ NotebookEditorTabInput,
196
+ TerminalEditorTabInput,
197
+ TextDiffTabInput,
198
+ TextMergeTabInput,
199
+ WebviewEditorTabInput,
200
+ DocumentPasteEdit,
201
+ ExternalUriOpenerPriority,
202
+ EditSessionIdentityMatch,
203
+ TerminalOutputAnchor,
204
+ TerminalQuickFixTerminalCommand,
205
+ TerminalQuickFixOpener,
206
+ TestResultState
207
+ } from './types-impl';
208
+ import { AuthenticationExtImpl } from './authentication-ext';
209
+ import { SymbolKind } from '../common/plugin-api-rpc-model';
210
+ import { EditorsAndDocumentsExtImpl } from './editors-and-documents';
211
+ import { TextEditorsExtImpl } from './text-editors';
212
+ import { DocumentsExtImpl } from './documents';
213
+ import { TextEditorCursorStyle } from '../common/editor-options';
214
+ import { PreferenceRegistryExtImpl } from './preference-registry';
215
+ import { OutputChannelRegistryExtImpl } from './output-channel-registry';
216
+ import { TerminalServiceExtImpl, TerminalExtImpl } from './terminal-ext';
217
+ import { LanguagesExtImpl } from './languages';
218
+ import { fromDocumentSelector, pluginToPluginInfo, fromGlobPattern } from './type-converters';
219
+ import { DialogsExtImpl } from './dialogs';
220
+ import { NotificationExtImpl } from './notification';
221
+ import { score } from '@theia/editor/lib/common/language-selector';
222
+ import { MarkdownString } from './markdown-string';
223
+ import { TreeViewsExtImpl } from './tree/tree-views';
224
+ import { ConnectionImpl } from '../common/connection';
225
+ import { TasksExtImpl } from './tasks/tasks';
226
+ import { DebugExtImpl } from './debug/debug-ext';
227
+ import { FileSystemExtImpl } from './file-system-ext-impl';
228
+ import { ScmExtImpl } from './scm';
229
+ import { DecorationsExtImpl } from './decorations';
230
+ import { TextEditorExt } from './text-editor';
231
+ import { ClipboardExt } from './clipboard-ext';
232
+ import { WebviewsExtImpl } from './webviews';
233
+ import { ExtHostFileSystemEventService } from './file-system-event-service-ext-impl';
234
+ import { LabelServiceExtImpl } from '../plugin/label-service';
235
+ import { TimelineExtImpl } from './timeline';
236
+ import { ThemingExtImpl } from './theming';
237
+ import { CommentsExtImpl } from './comments';
238
+ import { CustomEditorsExtImpl } from './custom-editors';
239
+ import { WebviewViewsExtImpl } from './webview-views';
240
+ import { PluginPackage } from '../common';
241
+ import { Endpoint } from '@theia/core/lib/browser/endpoint';
242
+ import { FilePermission } from '@theia/filesystem/lib/common/files';
243
+ import { TabsExtImpl } from './tabs';
244
+ import { LocalizationExtImpl } from './localization-ext';
245
+ import { NotebooksExtImpl } from './notebook/notebooks';
246
+ import { TelemetryExtImpl } from './telemetry-ext';
247
+ import { NotebookDocument } from './notebook/notebook-document';
248
+ import { NotebookRenderersExtImpl } from './notebook/notebook-renderers';
249
+ import { NotebookKernelsExtImpl } from './notebook/notebook-kernels';
250
+ import { NotebookDocumentsExtImpl } from './notebook/notebook-documents';
251
+ import { NotebookEditorsExtImpl } from './notebook/notebook-editors';
252
+ import { TestingExtImpl } from './tests';
253
+
254
+ export function createAPIFactory(
255
+ rpc: RPCProtocol,
256
+ pluginManager: PluginManager,
257
+ envExt: EnvExtImpl,
258
+ debugExt: DebugExtImpl,
259
+ preferenceRegistryExt: PreferenceRegistryExtImpl,
260
+ editorsAndDocumentsExt: EditorsAndDocumentsExtImpl,
261
+ workspaceExt: WorkspaceExtImpl,
262
+ messageRegistryExt: MessageRegistryExt,
263
+ clipboard: ClipboardExt,
264
+ webviewExt: WebviewsExtImpl,
265
+ localizationExt: LocalizationExtImpl
266
+ ): PluginAPIFactory {
267
+
268
+ const authenticationExt = rpc.set(MAIN_RPC_CONTEXT.AUTHENTICATION_EXT, new AuthenticationExtImpl(rpc));
269
+ const commandRegistry = rpc.set(MAIN_RPC_CONTEXT.COMMAND_REGISTRY_EXT, new CommandRegistryImpl(rpc));
270
+ const quickOpenExt = rpc.set(MAIN_RPC_CONTEXT.QUICK_OPEN_EXT, new QuickOpenExtImpl(rpc));
271
+ const dialogsExt = new DialogsExtImpl(rpc);
272
+ const windowStateExt = rpc.set(MAIN_RPC_CONTEXT.WINDOW_STATE_EXT, new WindowStateExtImpl(rpc));
273
+ const notificationExt = rpc.set(MAIN_RPC_CONTEXT.NOTIFICATION_EXT, new NotificationExtImpl(rpc));
274
+ const editors = rpc.set(MAIN_RPC_CONTEXT.TEXT_EDITORS_EXT, new TextEditorsExtImpl(rpc, editorsAndDocumentsExt));
275
+ const documents = rpc.set(MAIN_RPC_CONTEXT.DOCUMENTS_EXT, new DocumentsExtImpl(rpc, editorsAndDocumentsExt));
276
+ const notebooksExt = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOKS_EXT, new NotebooksExtImpl(rpc, commandRegistry, editorsAndDocumentsExt, documents));
277
+ const notebookEditors = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_EDITORS_EXT, new NotebookEditorsExtImpl(notebooksExt));
278
+ const notebookRenderers = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_RENDERERS_EXT, new NotebookRenderersExtImpl(rpc, notebooksExt));
279
+ const notebookKernels = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_KERNELS_EXT, new NotebookKernelsExtImpl(rpc, notebooksExt, commandRegistry));
280
+ const notebookDocuments = rpc.set(MAIN_RPC_CONTEXT.NOTEBOOK_DOCUMENTS_EXT, new NotebookDocumentsExtImpl(notebooksExt));
281
+ const statusBarMessageRegistryExt = new StatusBarMessageRegistryExt(rpc);
282
+ const terminalExt = rpc.set(MAIN_RPC_CONTEXT.TERMINAL_EXT, new TerminalServiceExtImpl(rpc));
283
+ const outputChannelRegistryExt = rpc.set(MAIN_RPC_CONTEXT.OUTPUT_CHANNEL_REGISTRY_EXT, new OutputChannelRegistryExtImpl(rpc));
284
+ const treeViewsExt = rpc.set(MAIN_RPC_CONTEXT.TREE_VIEWS_EXT, new TreeViewsExtImpl(rpc, commandRegistry));
285
+ const tasksExt = rpc.set(MAIN_RPC_CONTEXT.TASKS_EXT, new TasksExtImpl(rpc, terminalExt));
286
+ const connectionExt = rpc.set(MAIN_RPC_CONTEXT.CONNECTION_EXT, new ConnectionImpl(rpc.getProxy(PLUGIN_RPC_CONTEXT.CONNECTION_MAIN)));
287
+ const fileSystemExt = rpc.set(MAIN_RPC_CONTEXT.FILE_SYSTEM_EXT, new FileSystemExtImpl(rpc));
288
+ const languagesExt = rpc.set(MAIN_RPC_CONTEXT.LANGUAGES_EXT, new LanguagesExtImpl(rpc, documents, commandRegistry, fileSystemExt));
289
+ const extHostFileSystemEvent = rpc.set(MAIN_RPC_CONTEXT.ExtHostFileSystemEventService, new ExtHostFileSystemEventService(rpc, editorsAndDocumentsExt));
290
+ const scmExt = rpc.set(MAIN_RPC_CONTEXT.SCM_EXT, new ScmExtImpl(rpc, commandRegistry));
291
+ const decorationsExt = rpc.set(MAIN_RPC_CONTEXT.DECORATIONS_EXT, new DecorationsExtImpl(rpc));
292
+ const labelServiceExt = rpc.set(MAIN_RPC_CONTEXT.LABEL_SERVICE_EXT, new LabelServiceExtImpl(rpc));
293
+ const timelineExt = rpc.set(MAIN_RPC_CONTEXT.TIMELINE_EXT, new TimelineExtImpl(rpc, commandRegistry));
294
+ const themingExt = rpc.set(MAIN_RPC_CONTEXT.THEMING_EXT, new ThemingExtImpl(rpc));
295
+ const commentsExt = rpc.set(MAIN_RPC_CONTEXT.COMMENTS_EXT, new CommentsExtImpl(rpc, commandRegistry, documents));
296
+ const tabsExt = rpc.set(MAIN_RPC_CONTEXT.TABS_EXT, new TabsExtImpl(rpc));
297
+ const customEditorExt = rpc.set(MAIN_RPC_CONTEXT.CUSTOM_EDITORS_EXT, new CustomEditorsExtImpl(rpc, documents, webviewExt, workspaceExt));
298
+ const webviewViewsExt = rpc.set(MAIN_RPC_CONTEXT.WEBVIEW_VIEWS_EXT, new WebviewViewsExtImpl(rpc, webviewExt));
299
+ const telemetryExt = rpc.set(MAIN_RPC_CONTEXT.TELEMETRY_EXT, new TelemetryExtImpl());
300
+ const testingExt = rpc.set(MAIN_RPC_CONTEXT.TESTING_EXT, new TestingExtImpl(rpc, commandRegistry));
301
+ rpc.set(MAIN_RPC_CONTEXT.DEBUG_EXT, debugExt);
302
+
303
+ return function (plugin: InternalPlugin): typeof theia {
304
+ const authentication: typeof theia.authentication = {
305
+ registerAuthenticationProvider(id: string, label: string, provider: theia.AuthenticationProvider, options?: theia.AuthenticationProviderOptions): theia.Disposable {
306
+ return authenticationExt.registerAuthenticationProvider(id, label, provider, options);
307
+ },
308
+ getSession(providerId: string, scopes: string[], options: theia.AuthenticationGetSessionOptions) {
309
+ return authenticationExt.getSession(plugin, providerId, scopes, options as any);
310
+ },
311
+ get onDidChangeSessions(): theia.Event<theia.AuthenticationSessionsChangeEvent> {
312
+ return authenticationExt.onDidChangeSessions;
313
+ }
314
+ };
315
+ function commandIsDeclaredInPackage(id: string, model: PluginPackage): boolean {
316
+ const rawCommands = model.contributes?.commands;
317
+ if (!rawCommands) { return false; }
318
+ return Array.isArray(rawCommands) ? rawCommands.some(candidate => candidate.command === id) : rawCommands.command === id;
319
+ }
320
+ const commands: typeof theia.commands = {
321
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
322
+ registerCommand(command: theia.CommandDescription | string, handler?: <T>(...args: any[]) => T | Thenable<T | undefined>, thisArg?: any): Disposable {
323
+ // use of the ID when registering commands
324
+ if (typeof command === 'string') {
325
+ if (handler && commandIsDeclaredInPackage(command, plugin.rawModel)) {
326
+ return commandRegistry.registerHandler(command, handler, thisArg);
327
+ }
328
+ return commandRegistry.registerCommand({ id: command }, handler, thisArg);
329
+ }
330
+ return commandRegistry.registerCommand(command, handler, thisArg);
331
+ },
332
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
333
+ executeCommand<T>(commandId: string, ...args: any[]): PromiseLike<T | undefined> {
334
+ return commandRegistry.executeCommand<T>(commandId, ...args);
335
+ },
336
+ registerTextEditorCommand(command: string, handler: (textEditor: theia.TextEditor, edit: theia.TextEditorEdit, ...arg: any[]) => void, thisArg?: any): Disposable {
337
+ const internalHandler = (...args: any[]): any => {
338
+ const activeTextEditor = editors.getActiveEditor();
339
+ if (!activeTextEditor) {
340
+ console.warn('Cannot execute ' + command + ' because there is no active text editor.');
341
+ return undefined;
342
+ }
343
+
344
+ return activeTextEditor.edit((edit: theia.TextEditorEdit) => {
345
+ args.unshift(activeTextEditor, edit);
346
+ handler.apply(thisArg, args);
347
+ }).then(result => {
348
+ if (!result) {
349
+ console.warn('Edits from command ' + command + ' were not applied.');
350
+ }
351
+ }, err => {
352
+ console.warn('An error occurred while running command ' + command, err);
353
+ });
354
+ };
355
+ return commandIsDeclaredInPackage(command, plugin.rawModel)
356
+ ? commandRegistry.registerHandler(command, internalHandler)
357
+ : commandRegistry.registerCommand({ id: command }, internalHandler);
358
+ },
359
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
360
+ registerHandler(commandId: string, handler: (...args: any[]) => any, thisArg?: any): Disposable {
361
+ return commandRegistry.registerHandler(commandId, handler, thisArg);
362
+ },
363
+ getKeyBinding(commandId: string): PromiseLike<theia.CommandKeyBinding[] | undefined> {
364
+ return commandRegistry.getKeyBinding(commandId);
365
+ },
366
+ getCommands(filterInternal: boolean = false): PromiseLike<string[]> {
367
+ return commandRegistry.getCommands(filterInternal);
368
+ },
369
+ registerDiffInformationCommand(command: string, callback: (diff: theia.LineChange[], ...args: any[]) => any, thisArg?: any): Disposable {
370
+ // Dummy implementation.
371
+ return new Disposable(() => { });
372
+ }
373
+ };
374
+
375
+ const { onDidChangeActiveTerminal, onDidChangeTerminalState, onDidCloseTerminal, onDidOpenTerminal } = terminalExt;
376
+ const showInformationMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Info);
377
+ const showWarningMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Warning);
378
+ const showErrorMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Error);
379
+ const window: typeof theia.window = {
380
+
381
+ get activeTerminal(): TerminalExtImpl | undefined {
382
+ return terminalExt.activeTerminal;
383
+ },
384
+ get activeTextEditor(): TextEditorExt | undefined {
385
+ return editors.getActiveEditor();
386
+ },
387
+ get visibleTextEditors(): theia.TextEditor[] {
388
+ return editors.getVisibleTextEditors();
389
+ },
390
+ get terminals(): TerminalExtImpl[] {
391
+ return terminalExt.terminals;
392
+ },
393
+ onDidChangeActiveTerminal,
394
+ onDidChangeActiveTextEditor(listener, thisArg?, disposables?) {
395
+ return editors.onDidChangeActiveTextEditor(listener, thisArg, disposables);
396
+ },
397
+ onDidChangeVisibleTextEditors(listener, thisArg?, disposables?) {
398
+ return editors.onDidChangeVisibleTextEditors(listener, thisArg, disposables);
399
+ },
400
+ onDidChangeTextEditorSelection(listener, thisArg?, disposables?) {
401
+ return editors.onDidChangeTextEditorSelection(listener, thisArg, disposables);
402
+ },
403
+ onDidChangeTextEditorOptions(listener, thisArg?, disposables?) {
404
+ return editors.onDidChangeTextEditorOptions(listener, thisArg, disposables);
405
+ },
406
+ onDidChangeTextEditorViewColumn(listener, thisArg?, disposables?) {
407
+ return editors.onDidChangeTextEditorViewColumn(listener, thisArg, disposables);
408
+ },
409
+ onDidChangeTextEditorVisibleRanges(listener, thisArg?, disposables?) {
410
+ return editors.onDidChangeTextEditorVisibleRanges(listener, thisArg, disposables);
411
+ },
412
+ async showTextDocument(documentArg: theia.TextDocument | URI,
413
+ columnOrOptions?: theia.TextDocumentShowOptions | theia.ViewColumn,
414
+ preserveFocus?: boolean
415
+ ): Promise<theia.TextEditor> {
416
+ let documentOptions: theia.TextDocumentShowOptions | undefined;
417
+ const uri: URI = documentArg instanceof URI ? documentArg : documentArg.uri;
418
+ if (typeof columnOrOptions === 'number') {
419
+ documentOptions = {
420
+ viewColumn: columnOrOptions
421
+ };
422
+ } else if (columnOrOptions && (columnOrOptions.preserveFocus || columnOrOptions.preview || columnOrOptions.selection || columnOrOptions.viewColumn)) {
423
+ documentOptions = {
424
+ ...columnOrOptions
425
+ };
426
+ }
427
+ if (preserveFocus) {
428
+ if (documentOptions) {
429
+ documentOptions.preserveFocus = preserveFocus;
430
+ } else {
431
+ documentOptions = { preserveFocus };
432
+ }
433
+ }
434
+ await documents.showDocument(uri, documentOptions);
435
+ const textEditor = editors.getVisibleTextEditors().find(editor => editor.document.uri.toString() === uri.toString());
436
+ if (textEditor) {
437
+ return Promise.resolve(textEditor);
438
+ } else {
439
+ throw new Error(`Failed to show text document ${documentArg.toString()}`);
440
+ }
441
+ },
442
+ get visibleNotebookEditors(): theia.NotebookEditor[] {
443
+ return notebooksExt.visibleApiNotebookEditors;
444
+ },
445
+ onDidChangeVisibleNotebookEditors(listener, thisArg?, disposables?) {
446
+ return notebooksExt.onDidChangeVisibleNotebookEditors(listener, thisArg, disposables);
447
+ },
448
+ get activeNotebookEditor(): theia.NotebookEditor | undefined {
449
+ return notebooksExt.activeApiNotebookEditor;
450
+ }, onDidChangeActiveNotebookEditor(listener, thisArg?, disposables?) {
451
+ return notebooksExt.onDidChangeActiveNotebookEditor(listener, thisArg, disposables);
452
+ },
453
+ onDidChangeNotebookEditorSelection(listener, thisArg?, disposables?) {
454
+ return notebookEditors.onDidChangeNotebookEditorSelection(listener, thisArg, disposables);
455
+ },
456
+ onDidChangeNotebookEditorVisibleRanges(listener, thisArg?, disposables?) {
457
+ return notebookEditors.onDidChangeNotebookEditorVisibleRanges(listener, thisArg, disposables);
458
+ },
459
+ showNotebookDocument(document: theia.NotebookDocument, options?: theia.NotebookDocumentShowOptions) {
460
+ return notebooksExt.showNotebookDocument(document, options);
461
+ },
462
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
463
+ showQuickPick(items: any, options?: theia.QuickPickOptions, token?: theia.CancellationToken): any {
464
+ return quickOpenExt.showQuickPick(items, options, token);
465
+ },
466
+ createQuickPick<T extends theia.QuickPickItem>(): theia.QuickPick<T> {
467
+ return quickOpenExt.createQuickPick(plugin);
468
+ },
469
+ showWorkspaceFolderPick(options?: theia.WorkspaceFolderPickOptions): PromiseLike<theia.WorkspaceFolder | undefined> {
470
+ return workspaceExt.pickWorkspaceFolder(options);
471
+ },
472
+ showInformationMessage,
473
+ showWarningMessage,
474
+ showErrorMessage,
475
+ showOpenDialog(options: theia.OpenDialogOptions): PromiseLike<URI[] | undefined> {
476
+ return dialogsExt.showOpenDialog(options);
477
+ },
478
+ showSaveDialog(options: theia.SaveDialogOptions): PromiseLike<URI | undefined> {
479
+ return dialogsExt.showSaveDialog(options);
480
+ },
481
+ showUploadDialog(options: theia.UploadDialogOptions): PromiseLike<URI[] | undefined> {
482
+ return dialogsExt.showUploadDialog(options);
483
+ },
484
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
485
+ setStatusBarMessage(text: string, arg?: number | PromiseLike<any>): Disposable {
486
+ return statusBarMessageRegistryExt.setStatusBarMessage(text, arg);
487
+ },
488
+ showInputBox(options?: theia.InputBoxOptions, token?: theia.CancellationToken): PromiseLike<string | undefined> {
489
+ return quickOpenExt.showInput(options, token);
490
+ },
491
+ createStatusBarItem(alignmentOrId?: theia.StatusBarAlignment | string, priorityOrAlignment?: number | theia.StatusBarAlignment,
492
+ priorityArg?: number): theia.StatusBarItem {
493
+ let id: string | undefined;
494
+ let alignment: number | undefined;
495
+ let priority: number | undefined;
496
+
497
+ if (typeof alignmentOrId === 'string') {
498
+ id = alignmentOrId;
499
+ alignment = priorityOrAlignment;
500
+ priority = priorityArg;
501
+ } else {
502
+ alignment = alignmentOrId;
503
+ priority = priorityOrAlignment;
504
+ }
505
+
506
+ return statusBarMessageRegistryExt.createStatusBarItem(alignment, priority, id);
507
+ },
508
+ createOutputChannel(name: string, options?: { log: true }): any {
509
+ return !options
510
+ ? outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin))
511
+ : outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin), options);
512
+ },
513
+ createWebviewPanel(viewType: string,
514
+ title: string,
515
+ showOptions: theia.ViewColumn | theia.WebviewPanelShowOptions,
516
+ options: theia.WebviewPanelOptions & theia.WebviewOptions = {}): theia.WebviewPanel {
517
+ return webviewExt.createWebview(viewType, title, showOptions, options, plugin);
518
+ },
519
+ registerWebviewPanelSerializer(viewType: string, serializer: theia.WebviewPanelSerializer): theia.Disposable {
520
+ return webviewExt.registerWebviewPanelSerializer(viewType, serializer, plugin);
521
+ },
522
+ registerCustomEditorProvider(viewType: string,
523
+ provider: theia.CustomTextEditorProvider | theia.CustomReadonlyEditorProvider,
524
+ options: { webviewOptions?: theia.WebviewPanelOptions, supportsMultipleEditorsPerDocument?: boolean } = {}): theia.Disposable {
525
+ return customEditorExt.registerCustomEditorProvider(viewType, provider, options, plugin);
526
+ },
527
+ registerWebviewViewProvider(viewType: string,
528
+ provider: theia.WebviewViewProvider,
529
+ options?: {
530
+ webviewOptions?: {
531
+ retainContextWhenHidden?: boolean
532
+ }
533
+ }): theia.Disposable {
534
+ return webviewViewsExt.registerWebviewViewProvider(viewType, provider, plugin, options?.webviewOptions);
535
+ },
536
+ get state(): theia.WindowState {
537
+ return windowStateExt.getWindowState();
538
+ },
539
+ onDidChangeWindowState(listener, thisArg?, disposables?): theia.Disposable {
540
+ return windowStateExt.onDidChangeWindowState(listener, thisArg, disposables);
541
+ },
542
+ createTerminal(nameOrOptions: theia.TerminalOptions | theia.ExtensionTerminalOptions | theia.ExtensionTerminalOptions | (string | undefined),
543
+ shellPath?: string,
544
+ shellArgs?: string[] | string): theia.Terminal {
545
+ return terminalExt.createTerminal(nameOrOptions, shellPath, shellArgs);
546
+ },
547
+ onDidChangeTerminalState,
548
+ onDidCloseTerminal,
549
+ onDidOpenTerminal,
550
+ createTextEditorDecorationType(options: theia.DecorationRenderOptions): theia.TextEditorDecorationType {
551
+ return editors.createTextEditorDecorationType(options);
552
+ },
553
+ registerTreeDataProvider<T>(viewId: string, treeDataProvider: theia.TreeDataProvider<T>): Disposable {
554
+ return treeViewsExt.registerTreeDataProvider(plugin, viewId, treeDataProvider);
555
+ },
556
+ createTreeView<T>(viewId: string, options: theia.TreeViewOptions<T>): theia.TreeView<T> {
557
+ return treeViewsExt.createTreeView(plugin, viewId, options);
558
+ },
559
+ withScmProgress<R>(task: (progress: theia.Progress<number>) => Thenable<R>) {
560
+ const options: ProgressOptions = { location: ProgressLocation.SourceControl };
561
+ return notificationExt.withProgress(options, () => task({ report() { /* noop */ } }));
562
+ },
563
+ withProgress<R>(
564
+ options: ProgressOptions,
565
+ task: (progress: Progress<{ message?: string; increment?: number }>, token: theia.CancellationToken) => PromiseLike<R>
566
+ ): PromiseLike<R> {
567
+ return notificationExt.withProgress(options, task);
568
+ },
569
+ registerFileDecorationProvider(provider: theia.FileDecorationProvider): theia.Disposable {
570
+ return decorationsExt.registerFileDecorationProvider(provider, pluginToPluginInfo(plugin));
571
+ },
572
+ registerUriHandler(handler: theia.UriHandler): theia.Disposable {
573
+ // TODO ?
574
+ return new Disposable(() => { });
575
+ },
576
+ createInputBox(): theia.InputBox {
577
+ return quickOpenExt.createInputBox(plugin);
578
+ },
579
+ registerTerminalLinkProvider(provider: theia.TerminalLinkProvider): theia.Disposable {
580
+ return terminalExt.registerTerminalLinkProvider(provider);
581
+ },
582
+ registerTerminalProfileProvider(id: string, provider: theia.TerminalProfileProvider): theia.Disposable {
583
+ return terminalExt.registerTerminalProfileProvider(id, provider);
584
+ },
585
+ get activeColorTheme(): theia.ColorTheme {
586
+ return themingExt.activeColorTheme;
587
+ },
588
+ onDidChangeActiveColorTheme(listener, thisArg?, disposables?) {
589
+ return themingExt.onDidChangeActiveColorTheme(listener, thisArg, disposables);
590
+ },
591
+ get tabGroups(): theia.TabGroups {
592
+ return tabsExt.tabGroups;
593
+ },
594
+ /** @stubbed ExternalUriOpener */
595
+ registerExternalUriOpener(id: string, opener: theia.ExternalUriOpener, metadata: theia.ExternalUriOpenerMetadata): theia.Disposable {
596
+ return Disposable.NULL;
597
+ },
598
+ /** @stubbed ProfileContentHandler */
599
+ registerProfileContentHandler(id: string, profileContentHandler: theia.ProfileContentHandler): theia.Disposable {
600
+ return Disposable.NULL;
601
+ },
602
+ /** @stubbed TerminalQuickFixProvider */
603
+ registerTerminalQuickFixProvider(id: string, provider: theia.TerminalQuickFixProvider): theia.Disposable {
604
+ return terminalExt.registerTerminalQuickFixProvider(id, provider);
605
+ },
606
+ /** @stubbed ShareProvider */
607
+ registerShareProvider: () => Disposable.NULL,
608
+ };
609
+
610
+ const workspace: typeof theia.workspace = {
611
+
612
+ get fs(): theia.FileSystem {
613
+ return fileSystemExt.fileSystem;
614
+ },
615
+
616
+ get rootPath(): string | undefined {
617
+ return workspaceExt.rootPath;
618
+ },
619
+ get workspaceFolders(): theia.WorkspaceFolder[] | undefined {
620
+ return workspaceExt.workspaceFolders;
621
+ },
622
+ get workspaceFile(): URI | undefined {
623
+ return workspaceExt.workspaceFile;
624
+ },
625
+ get name(): string | undefined {
626
+ return workspaceExt.name;
627
+ },
628
+ onDidChangeWorkspaceFolders(listener, thisArg?, disposables?): theia.Disposable {
629
+ return workspaceExt.onDidChangeWorkspaceFolders(listener, thisArg, disposables);
630
+ },
631
+ get notebookDocuments(): theia.NotebookDocument[] {
632
+ return notebooksExt.getAllApiDocuments();
633
+ },
634
+ get textDocuments(): theia.TextDocument[] {
635
+ return documents.getAllDocumentData().map(data => data.document);
636
+ },
637
+ onDidChangeTextDocument(listener, thisArg?, disposables?) {
638
+ return documents.onDidChangeDocument(listener, thisArg, disposables);
639
+ },
640
+ onDidCloseTextDocument(listener, thisArg?, disposables?) {
641
+ return documents.onDidRemoveDocument(listener, thisArg, disposables);
642
+ },
643
+ onDidOpenNotebookDocument(listener, thisArg?, disposables?) {
644
+ return notebooksExt.onDidOpenNotebookDocument(listener, thisArg, disposables);
645
+ },
646
+ onDidCloseNotebookDocument(listener, thisArg?, disposables?) {
647
+ return notebooksExt.onDidCloseNotebookDocument(listener, thisArg, disposables);
648
+ },
649
+ onWillSaveNotebookDocument(listener, thisArg?, disposables?) {
650
+ return Disposable.NULL;
651
+ },
652
+ onDidSaveNotebookDocument(listener, thisArg, disposables) {
653
+ return notebookDocuments.onDidSaveNotebookDocument(listener, thisArg, disposables);
654
+ },
655
+ onDidChangeNotebookDocument(listener, thisArg, disposables) {
656
+ return notebookDocuments.onDidChangeNotebookDocument(listener, thisArg, disposables);
657
+ },
658
+ onDidOpenTextDocument(listener, thisArg?, disposables?) {
659
+ return documents.onDidAddDocument(listener, thisArg, disposables);
660
+ },
661
+ onWillSaveTextDocument(listener, thisArg?, disposables?) {
662
+ return documents.onWillSaveTextDocument(listener, thisArg, disposables);
663
+ },
664
+ onDidSaveTextDocument(listener, thisArg?, disposables?) {
665
+ return documents.onDidSaveTextDocument(listener, thisArg, disposables);
666
+ },
667
+ onDidCreateFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidCreateFile(listener, thisArg, disposables),
668
+ onDidDeleteFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidDeleteFile(listener, thisArg, disposables),
669
+ onDidRenameFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidRenameFile(listener, thisArg, disposables),
670
+ onWillCreateFiles: (listener: (e: theia.FileWillCreateEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
671
+ extHostFileSystemEvent.getOnWillCreateFileEvent(plugin)(listener, thisArg, disposables),
672
+ onWillDeleteFiles: (listener: (e: theia.FileWillDeleteEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
673
+ extHostFileSystemEvent.getOnWillDeleteFileEvent(plugin)(listener, thisArg, disposables),
674
+ onWillRenameFiles: (listener: (e: theia.FileWillRenameEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
675
+ extHostFileSystemEvent.getOnWillRenameFileEvent(plugin)(listener, thisArg, disposables),
676
+ getConfiguration(section, resource): theia.WorkspaceConfiguration {
677
+ return preferenceRegistryExt.getConfiguration(section, resource);
678
+ },
679
+ onDidChangeConfiguration(listener, thisArgs?, disposables?): theia.Disposable {
680
+ return preferenceRegistryExt.onDidChangeConfiguration(listener, thisArgs, disposables);
681
+ },
682
+ async openTextDocument(uriOrFileNameOrOptions?: theia.Uri | string | { language?: string; content?: string; }): Promise<theia.TextDocument | undefined> {
683
+ const options = uriOrFileNameOrOptions as { language?: string; content?: string; };
684
+
685
+ let uri: URI;
686
+ if (typeof uriOrFileNameOrOptions === 'string') {
687
+ uri = URI.file(uriOrFileNameOrOptions);
688
+
689
+ } else if (uriOrFileNameOrOptions instanceof URI) {
690
+ uri = uriOrFileNameOrOptions;
691
+
692
+ } else if (!options || typeof options === 'object') {
693
+ uri = await documents.createDocumentData(options);
694
+
695
+ } else {
696
+ return Promise.reject(new Error('illegal argument - uriOrFileNameOrOptions'));
697
+ }
698
+
699
+ const data = await documents.openDocument(uri);
700
+ return data && data.document;
701
+ },
702
+ async openNotebookDocument(uriOrType: theia.Uri | string, content?: NotebookData): Promise<theia.NotebookDocument | undefined> {
703
+ let uri: URI;
704
+ if (URI.isUri(uriOrType)) {
705
+ uri = uriOrType;
706
+ await notebooksExt.openNotebookDocument(uriOrType as URI);
707
+ } else if (typeof uriOrType === 'string') {
708
+ uri = URI.revive(await notebooksExt.createNotebookDocument({ viewType: uriOrType, content }));
709
+ } else {
710
+ throw new Error('Invalid arguments');
711
+ }
712
+ const result = await notebooksExt.waitForNotebookDocument(uri);
713
+ return result.apiNotebook;
714
+
715
+ },
716
+ createFileSystemWatcher: (pattern, ignoreCreate, ignoreChange, ignoreDelete): theia.FileSystemWatcher =>
717
+ extHostFileSystemEvent.createFileSystemWatcher(fromGlobPattern(pattern), ignoreCreate, ignoreChange, ignoreDelete),
718
+ findFiles(include: theia.GlobPattern, exclude?: theia.GlobPattern | null, maxResults?: number, token?: CancellationToken): PromiseLike<URI[]> {
719
+ return workspaceExt.findFiles(include, exclude, maxResults, token);
720
+ },
721
+ findTextInFiles(query: theia.TextSearchQuery, optionsOrCallback: theia.FindTextInFilesOptions | ((result: theia.TextSearchResult) => void),
722
+ callbackOrToken?: CancellationToken | ((result: theia.TextSearchResult) => void), token?: CancellationToken): Promise<theia.TextSearchComplete> {
723
+ return workspaceExt.findTextInFiles(query, optionsOrCallback, callbackOrToken, token);
724
+ },
725
+ save(uri: theia.Uri): PromiseLike<theia.Uri | undefined> {
726
+ return editors.save(uri);
727
+ },
728
+
729
+ saveAs(uri: theia.Uri): PromiseLike<theia.Uri | undefined> {
730
+ return editors.saveAs(uri);
731
+ },
732
+ saveAll(includeUntitled?: boolean): PromiseLike<boolean> {
733
+ return editors.saveAll(includeUntitled);
734
+ },
735
+ applyEdit(edit: theia.WorkspaceEdit, metadata?: theia.WorkspaceEditMetadata): PromiseLike<boolean> {
736
+ return editors.applyWorkspaceEdit(edit, metadata);
737
+ },
738
+ registerTextDocumentContentProvider(scheme: string, provider: theia.TextDocumentContentProvider): theia.Disposable {
739
+ return workspaceExt.registerTextDocumentContentProvider(scheme, provider);
740
+ },
741
+ registerFileSystemProvider(scheme: string, provider: theia.FileSystemProvider, options?: { isCaseSensitive?: boolean, isReadonly?: boolean }): theia.Disposable {
742
+ return fileSystemExt.registerFileSystemProvider(scheme, provider, options);
743
+ },
744
+ getWorkspaceFolder(uri: theia.Uri): theia.WorkspaceFolder | undefined {
745
+ return workspaceExt.getWorkspaceFolder(uri);
746
+ },
747
+ asRelativePath(pathOrUri: theia.Uri | string, includeWorkspace?: boolean): string | undefined {
748
+ return workspaceExt.getRelativePath(pathOrUri, includeWorkspace);
749
+ },
750
+ updateWorkspaceFolders: (index, deleteCount, ...workspaceFoldersToAdd) =>
751
+ workspaceExt.updateWorkspaceFolders(index, deleteCount || 0, ...workspaceFoldersToAdd)
752
+ ,
753
+ registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
754
+ return tasks.registerTaskProvider(type, provider);
755
+ },
756
+ registerResourceLabelFormatter(formatter: theia.ResourceLabelFormatter): theia.Disposable {
757
+ return labelServiceExt.$registerResourceLabelFormatter(formatter);
758
+ },
759
+ registerTimelineProvider(scheme: string | string[], provider: theia.TimelineProvider): theia.Disposable {
760
+ return timelineExt.registerTimelineProvider(plugin, scheme, provider);
761
+ },
762
+ registerNotebookSerializer(notebookType: string, serializer: theia.NotebookSerializer, options?: theia.NotebookDocumentContentOptions): theia.Disposable {
763
+ return notebooksExt.registerNotebookSerializer(plugin, notebookType, serializer, options);
764
+ },
765
+ get isTrusted(): boolean {
766
+ return workspaceExt.trusted;
767
+ },
768
+ async requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined> {
769
+ return workspaceExt.requestWorkspaceTrust(options);
770
+ },
771
+ get onDidGrantWorkspaceTrust(): theia.Event<void> {
772
+ return workspaceExt.onDidGrantWorkspaceTrust;
773
+ },
774
+ registerEditSessionIdentityProvider(scheme: string, provider: theia.EditSessionIdentityProvider) {
775
+ return workspaceExt.$registerEditSessionIdentityProvider(scheme, provider);
776
+ },
777
+ /**
778
+ * @stubbed
779
+ * This is a stub implementation, that should minimally satisfy vscode built-in extensions
780
+ * that currently use this proposed API.
781
+ */
782
+ onWillCreateEditSessionIdentity: () => Disposable.NULL,
783
+ registerCanonicalUriProvider(scheme: string, provider: theia.CanonicalUriProvider): theia.Disposable {
784
+ return workspaceExt.registerCanonicalUriProvider(scheme, provider);
785
+ },
786
+ getCanonicalUri(uri: theia.Uri, options: theia.CanonicalUriRequestOptions, token: CancellationToken): theia.ProviderResult<theia.Uri> {
787
+ return workspaceExt.getCanonicalUri(uri, options, token);
788
+ }
789
+ };
790
+
791
+ const onDidChangeLogLevel = new Emitter<theia.LogLevel>();
792
+ const env: typeof theia.env = Object.freeze({
793
+ get appName(): string { return envExt.appName; },
794
+ get appRoot(): string { return envExt.appRoot; },
795
+ get appHost(): string { return envExt.appHost; },
796
+ get language(): string { return envExt.language; },
797
+ get isNewAppInstall(): boolean { return envExt.isNewAppInstall; },
798
+ get isTelemetryEnabled(): boolean { return telemetryExt.isTelemetryEnabled; },
799
+ get onDidChangeTelemetryEnabled(): theia.Event<boolean> {
800
+ return telemetryExt.onDidChangeTelemetryEnabled;
801
+ },
802
+ createTelemetryLogger(sender: theia.TelemetrySender, options?: theia.TelemetryLoggerOptions): theia.TelemetryLogger {
803
+ return telemetryExt.createTelemetryLogger(sender, options);
804
+ },
805
+ get remoteName(): string | undefined { return envExt.remoteName; },
806
+ get machineId(): string { return envExt.machineId; },
807
+ get sessionId(): string { return envExt.sessionId; },
808
+ get uriScheme(): string { return envExt.uriScheme; },
809
+ get shell(): string { return terminalExt.defaultShell; },
810
+ get onDidChangeShell(): theia.Event<string> {
811
+ return terminalExt.onDidChangeShell;
812
+ },
813
+ get uiKind(): theia.UIKind { return envExt.uiKind; },
814
+ clipboard,
815
+ getEnvVariable(envVarName: string): PromiseLike<string | undefined> {
816
+ return envExt.getEnvVariable(envVarName);
817
+ },
818
+ getQueryParameter(queryParamName: string): string | string[] | undefined {
819
+ return envExt.getQueryParameter(queryParamName);
820
+ },
821
+ getQueryParameters(): QueryParameters {
822
+ return envExt.getQueryParameters();
823
+ },
824
+ getClientOperatingSystem(): PromiseLike<theia.OperatingSystem> {
825
+ return envExt.getClientOperatingSystem();
826
+ },
827
+ openExternal(uri: theia.Uri): PromiseLike<boolean> {
828
+ return windowStateExt.openUri(uri);
829
+ },
830
+ asExternalUri(target: theia.Uri): PromiseLike<theia.Uri> {
831
+ return windowStateExt.asExternalUri(target);
832
+ },
833
+ get logLevel(): theia.LogLevel { return LogLevel.Info; },
834
+ get onDidChangeLogLevel(): theia.Event<theia.LogLevel> { return onDidChangeLogLevel.event; }
835
+ });
836
+
837
+ const extensions: typeof theia.extensions = Object.freeze({
838
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
839
+ getExtension<T = any>(extensionId: string, includeFromDifferentExtensionHosts: boolean = false): theia.Extension<T> | undefined {
840
+ includeFromDifferentExtensionHosts = false;
841
+ const plg = pluginManager.getPluginById(extensionId.toLowerCase());
842
+ if (plg) {
843
+ return new PluginExt(pluginManager, plg);
844
+ }
845
+ return undefined;
846
+ },
847
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
848
+ get all(): readonly theia.Extension<any>[] {
849
+ return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
850
+ },
851
+ get allAcrossExtensionHosts(): readonly theia.Extension<any>[] {
852
+ // we only support one extension host ATM so equivalent to calling "all()"
853
+ return this.all;
854
+ },
855
+ get onDidChange(): theia.Event<void> {
856
+ return pluginManager.onDidChange;
857
+ }
858
+ });
859
+
860
+ const languages: typeof theia.languages = {
861
+ getLanguages(): PromiseLike<string[]> {
862
+ return languagesExt.getLanguages();
863
+ },
864
+ setTextDocumentLanguage(document: theia.TextDocument, languageId: string): PromiseLike<theia.TextDocument> {
865
+ return languagesExt.changeLanguage(document.uri, languageId);
866
+ },
867
+ match(selector: theia.DocumentSelector, document: theia.TextDocument): number {
868
+ return score(fromDocumentSelector(selector), document.uri.scheme, document.uri.path, document.languageId, true);
869
+ },
870
+ get onDidChangeDiagnostics(): theia.Event<theia.DiagnosticChangeEvent> {
871
+ return languagesExt.onDidChangeDiagnostics;
872
+ },
873
+ getDiagnostics(resource?: URI) {
874
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
875
+ return <any>languagesExt.getDiagnostics(resource);
876
+ },
877
+ createDiagnosticCollection(name?: string): theia.DiagnosticCollection {
878
+ return languagesExt.createDiagnosticCollection(name);
879
+ },
880
+ setLanguageConfiguration(language: string, configuration: theia.LanguageConfiguration): theia.Disposable {
881
+ return languagesExt.setLanguageConfiguration(language, configuration);
882
+ },
883
+ registerCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.CompletionItemProvider, ...triggerCharacters: string[]): theia.Disposable {
884
+ return languagesExt.registerCompletionItemProvider(selector, provider, triggerCharacters, pluginToPluginInfo(plugin));
885
+ },
886
+ registerInlineCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.InlineCompletionItemProvider): theia.Disposable {
887
+ return languagesExt.registerInlineCompletionsProvider(selector, provider);
888
+ },
889
+ registerDefinitionProvider(selector: theia.DocumentSelector, provider: theia.DefinitionProvider): theia.Disposable {
890
+ return languagesExt.registerDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
891
+ },
892
+ registerDeclarationProvider(selector: theia.DocumentSelector, provider: theia.DeclarationProvider): theia.Disposable {
893
+ return languagesExt.registerDeclarationProvider(selector, provider, pluginToPluginInfo(plugin));
894
+ },
895
+ registerSignatureHelpProvider(
896
+ selector: theia.DocumentSelector, provider: theia.SignatureHelpProvider, first?: string | theia.SignatureHelpProviderMetadata, ...remaining: string[]
897
+ ): theia.Disposable {
898
+ let metadata: theia.SignatureHelpProviderMetadata;
899
+ if (typeof first === 'object') {
900
+ metadata = first;
901
+ } else {
902
+ const triggerCharacters: string[] = [];
903
+ metadata = { triggerCharacters, retriggerCharacters: [] };
904
+ if (first) {
905
+ triggerCharacters.push(first, ...remaining);
906
+ }
907
+ }
908
+ return languagesExt.registerSignatureHelpProvider(selector, provider, metadata, pluginToPluginInfo(plugin));
909
+ },
910
+ registerTypeDefinitionProvider(selector: theia.DocumentSelector, provider: theia.TypeDefinitionProvider): theia.Disposable {
911
+ return languagesExt.registerTypeDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
912
+ },
913
+ registerImplementationProvider(selector: theia.DocumentSelector, provider: theia.ImplementationProvider): theia.Disposable {
914
+ return languagesExt.registerImplementationProvider(selector, provider, pluginToPluginInfo(plugin));
915
+ },
916
+ registerHoverProvider(selector: theia.DocumentSelector, provider: theia.HoverProvider): theia.Disposable {
917
+ return languagesExt.registerHoverProvider(selector, provider, pluginToPluginInfo(plugin));
918
+ },
919
+ registerEvaluatableExpressionProvider(selector: theia.DocumentSelector, provider: theia.EvaluatableExpressionProvider): theia.Disposable {
920
+ return languagesExt.registerEvaluatableExpressionProvider(selector, provider, pluginToPluginInfo(plugin));
921
+ },
922
+ registerInlineValuesProvider(selector: theia.DocumentSelector, provider: theia.InlineValuesProvider): theia.Disposable {
923
+ return languagesExt.registerInlineValuesProvider(selector, provider, pluginToPluginInfo(plugin));
924
+ },
925
+ registerDocumentHighlightProvider(selector: theia.DocumentSelector, provider: theia.DocumentHighlightProvider): theia.Disposable {
926
+ return languagesExt.registerDocumentHighlightProvider(selector, provider, pluginToPluginInfo(plugin));
927
+ },
928
+ /**
929
+ * @stubbed
930
+ * @monaco-uplift: wait until API is available in Monaco (1.85.0+)
931
+ */
932
+ registerMultiDocumentHighlightProvider(selector: theia.DocumentSelector, provider: theia.MultiDocumentHighlightProvider): theia.Disposable {
933
+ return Disposable.NULL;
934
+ },
935
+ registerWorkspaceSymbolProvider(provider: theia.WorkspaceSymbolProvider): theia.Disposable {
936
+ return languagesExt.registerWorkspaceSymbolProvider(provider, pluginToPluginInfo(plugin));
937
+ },
938
+ registerDocumentFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentFormattingEditProvider): theia.Disposable {
939
+ return languagesExt.registerDocumentFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
940
+ },
941
+ registerDocumentRangeFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeFormattingEditProvider): theia.Disposable {
942
+ return languagesExt.registerDocumentRangeFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
943
+ },
944
+ registerOnTypeFormattingEditProvider(
945
+ selector: theia.DocumentSelector,
946
+ provider: theia.OnTypeFormattingEditProvider,
947
+ firstTriggerCharacter: string,
948
+ ...moreTriggerCharacters: string[]
949
+ ): theia.Disposable {
950
+ return languagesExt.registerOnTypeFormattingEditProvider(selector, provider, [firstTriggerCharacter].concat(moreTriggerCharacters), pluginToPluginInfo(plugin));
951
+ },
952
+ registerDocumentDropEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentDropEditProvider, metadata?: theia.DocumentDropEditProviderMetadata) {
953
+ return languagesExt.registerDocumentDropEditProvider(selector, provider, metadata);
954
+ },
955
+ registerDocumentLinkProvider(selector: theia.DocumentSelector, provider: theia.DocumentLinkProvider): theia.Disposable {
956
+ return languagesExt.registerDocumentLinkProvider(selector, provider, pluginToPluginInfo(plugin));
957
+ },
958
+ registerCodeActionsProvider(selector: theia.DocumentSelector, provider: theia.CodeActionProvider, metadata?: theia.CodeActionProviderMetadata): theia.Disposable {
959
+ return languagesExt.registerCodeActionsProvider(selector, provider, plugin.model, pluginToPluginInfo(plugin), metadata);
960
+ },
961
+ registerCodeLensProvider(selector: theia.DocumentSelector, provider: theia.CodeLensProvider): theia.Disposable {
962
+ return languagesExt.registerCodeLensProvider(selector, provider, pluginToPluginInfo(plugin));
963
+ },
964
+ registerReferenceProvider(selector: theia.DocumentSelector, provider: theia.ReferenceProvider): theia.Disposable {
965
+ return languagesExt.registerReferenceProvider(selector, provider, pluginToPluginInfo(plugin));
966
+ },
967
+ registerDocumentSymbolProvider(selector: theia.DocumentSelector, provider: theia.DocumentSymbolProvider,
968
+ metadata?: theia.DocumentSymbolProviderMetadata): theia.Disposable {
969
+ return languagesExt.registerDocumentSymbolProvider(selector, provider, pluginToPluginInfo(plugin), metadata);
970
+ },
971
+ registerColorProvider(selector: theia.DocumentSelector, provider: theia.DocumentColorProvider): theia.Disposable {
972
+ return languagesExt.registerColorProvider(selector, provider, pluginToPluginInfo(plugin));
973
+ },
974
+ registerInlayHintsProvider(selector: theia.DocumentSelector, provider: theia.InlayHintsProvider): theia.Disposable {
975
+ return languagesExt.registerInlayHintsProvider(selector, provider, pluginToPluginInfo(plugin));
976
+ },
977
+ registerFoldingRangeProvider(selector: theia.DocumentSelector, provider: theia.FoldingRangeProvider): theia.Disposable {
978
+ return languagesExt.registerFoldingRangeProvider(selector, provider, pluginToPluginInfo(plugin));
979
+ },
980
+ registerSelectionRangeProvider(selector: theia.DocumentSelector, provider: theia.SelectionRangeProvider): theia.Disposable {
981
+ return languagesExt.registerSelectionRangeProvider(selector, provider, pluginToPluginInfo(plugin));
982
+ },
983
+ registerRenameProvider(selector: theia.DocumentSelector, provider: theia.RenameProvider): theia.Disposable {
984
+ return languagesExt.registerRenameProvider(selector, provider, pluginToPluginInfo(plugin));
985
+ },
986
+ registerDocumentSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentSemanticTokensProvider, legend: theia.SemanticTokensLegend):
987
+ theia.Disposable {
988
+ return languagesExt.registerDocumentSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
989
+ },
990
+ registerDocumentRangeSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeSemanticTokensProvider, legend: theia.SemanticTokensLegend):
991
+ theia.Disposable {
992
+ return languagesExt.registerDocumentRangeSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
993
+ },
994
+ registerCallHierarchyProvider(selector: theia.DocumentSelector, provider: theia.CallHierarchyProvider): theia.Disposable {
995
+ return languagesExt.registerCallHierarchyProvider(selector, provider);
996
+ },
997
+ registerTypeHierarchyProvider(selector: theia.DocumentSelector, provider: theia.TypeHierarchyProvider): theia.Disposable {
998
+ return languagesExt.registerTypeHierarchyProvider(selector, provider);
999
+ },
1000
+ registerLinkedEditingRangeProvider(selector: theia.DocumentSelector, provider: theia.LinkedEditingRangeProvider): theia.Disposable {
1001
+ return languagesExt.registerLinkedEditingRangeProvider(selector, provider);
1002
+ },
1003
+ createLanguageStatusItem(id: string, selector: theia.DocumentSelector): theia.LanguageStatusItem {
1004
+ return languagesExt.createLanguageStatusItem(plugin, id, selector);
1005
+ },
1006
+ registerDocumentPasteEditProvider(
1007
+ selector: theia.DocumentSelector, provider: theia.DocumentPasteEditProvider, metadata: theia.DocumentPasteProviderMetadata
1008
+ ): theia.Disposable {
1009
+ return languagesExt.registerDocumentPasteEditProvider(plugin, selector, provider, metadata);
1010
+ }
1011
+ };
1012
+
1013
+ const tests: typeof theia.tests = {
1014
+ createTestController(id, label: string) {
1015
+ return testingExt.createTestController(id, label);
1016
+ }
1017
+ };
1018
+ /* End of Tests API */
1019
+
1020
+ const plugins: typeof theia.plugins = {
1021
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1022
+ get all(): theia.Plugin<any>[] {
1023
+ return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
1024
+ },
1025
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1026
+ getPlugin(pluginId: string): theia.Plugin<any> | undefined {
1027
+ const plg = pluginManager.getPluginById(pluginId.toLowerCase());
1028
+ if (plg) {
1029
+ return new PluginExt(pluginManager, plg);
1030
+ }
1031
+ return undefined;
1032
+ },
1033
+ get onDidChange(): theia.Event<void> {
1034
+ return pluginManager.onDidChange;
1035
+ }
1036
+ };
1037
+
1038
+ const debuggersContributions = plugin.rawModel.contributes && plugin.rawModel.contributes.debuggers || [];
1039
+ debugExt.assistedInject(connectionExt, commandRegistry);
1040
+ debugExt.registerDebuggersContributions(plugin.pluginFolder, plugin.model.entryPoint.frontend ? 'frontend' : 'backend', debuggersContributions);
1041
+ const debug: typeof theia.debug = {
1042
+ get activeDebugSession(): theia.DebugSession | undefined {
1043
+ return debugExt.activeDebugSession;
1044
+ },
1045
+ get activeDebugConsole(): theia.DebugConsole {
1046
+ return debugExt.activeDebugConsole;
1047
+ },
1048
+ get breakpoints(): theia.Breakpoint[] {
1049
+ return debugExt.breakpoints;
1050
+ },
1051
+ get onDidChangeActiveDebugSession(): theia.Event<theia.DebugSession | undefined> {
1052
+ return debugExt.onDidChangeActiveDebugSession;
1053
+ },
1054
+ get onDidStartDebugSession(): theia.Event<theia.DebugSession> {
1055
+ return debugExt.onDidStartDebugSession;
1056
+ },
1057
+ get onDidReceiveDebugSessionCustomEvent(): theia.Event<theia.DebugSessionCustomEvent> {
1058
+ return debugExt.onDidReceiveDebugSessionCustomEvent;
1059
+ },
1060
+ get onDidTerminateDebugSession(): theia.Event<theia.DebugSession> {
1061
+ return debugExt.onDidTerminateDebugSession;
1062
+ },
1063
+ get onDidChangeBreakpoints(): theia.Event<theia.BreakpointsChangeEvent> {
1064
+ return debugExt.onDidChangeBreakpoints;
1065
+ },
1066
+ registerDebugAdapterDescriptorFactory(debugType: string, factory: theia.DebugAdapterDescriptorFactory): Disposable {
1067
+ return debugExt.registerDebugAdapterDescriptorFactory(debugType, factory);
1068
+ },
1069
+ registerDebugConfigurationProvider(
1070
+ debugType: string,
1071
+ provider: theia.DebugConfigurationProvider,
1072
+ triggerKind?: theia.DebugConfigurationProviderTriggerKind
1073
+ ): Disposable {
1074
+ return debugExt.registerDebugConfigurationProvider(debugType, provider, triggerKind || DebugConfigurationProviderTriggerKind.Initial);
1075
+ },
1076
+ registerDebugAdapterTrackerFactory(debugType: string, factory: theia.DebugAdapterTrackerFactory): Disposable {
1077
+ return debugExt.registerDebugAdapterTrackerFactory(debugType, factory);
1078
+ },
1079
+ startDebugging(
1080
+ folder: theia.WorkspaceFolder | undefined,
1081
+ nameOrConfiguration: string | theia.DebugConfiguration,
1082
+ parentSessionOrOptions?: theia.DebugSession | theia.DebugSessionOptions
1083
+ ): Thenable<boolean> {
1084
+ if (!parentSessionOrOptions || (typeof parentSessionOrOptions === 'object' && 'configuration' in parentSessionOrOptions)) {
1085
+ return debugExt.startDebugging(folder, nameOrConfiguration, { parentSession: parentSessionOrOptions });
1086
+ }
1087
+ return debugExt.startDebugging(folder, nameOrConfiguration, parentSessionOrOptions || {});
1088
+ },
1089
+ stopDebugging(session?: theia.DebugSession): Thenable<void> {
1090
+ return debugExt.stopDebugging(session);
1091
+ },
1092
+ addBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
1093
+ debugExt.addBreakpoints(breakpoints);
1094
+ },
1095
+ removeBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
1096
+ debugExt.removeBreakpoints(breakpoints);
1097
+ },
1098
+ asDebugSourceUri(source: theia.DebugProtocolSource, session?: theia.DebugSession): theia.Uri {
1099
+ return debugExt.asDebugSourceUri(source, session);
1100
+ }
1101
+ };
1102
+
1103
+ const tasks: typeof theia.tasks = {
1104
+ registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
1105
+ return tasksExt.registerTaskProvider(type, provider);
1106
+ },
1107
+
1108
+ fetchTasks(filter?: theia.TaskFilter): Thenable<theia.Task[]> {
1109
+ return tasksExt.fetchTasks(filter);
1110
+ },
1111
+
1112
+ executeTask(task: theia.Task): Thenable<theia.TaskExecution> {
1113
+ return tasksExt.executeTask(task);
1114
+ },
1115
+
1116
+ get taskExecutions(): ReadonlyArray<theia.TaskExecution> {
1117
+ return tasksExt.taskExecutions;
1118
+ },
1119
+ onDidStartTask(listener, thisArg?, disposables?) {
1120
+ return tasksExt.onDidStartTask(listener, thisArg, disposables);
1121
+ },
1122
+ onDidEndTask(listener, thisArg?, disposables?) {
1123
+ return tasksExt.onDidEndTask(listener, thisArg, disposables);
1124
+ },
1125
+ onDidStartTaskProcess(listener, thisArg?, disposables?) {
1126
+ return tasksExt.onDidStartTaskProcess(listener, thisArg, disposables);
1127
+ },
1128
+ onDidEndTaskProcess(listener, thisArg?, disposables?) {
1129
+ return tasksExt.onDidEndTaskProcess(listener, thisArg, disposables);
1130
+ }
1131
+ };
1132
+
1133
+ const scm: typeof theia.scm = {
1134
+ get inputBox(): theia.SourceControlInputBox {
1135
+ const inputBox = scmExt.getLastInputBox(plugin);
1136
+ if (inputBox) {
1137
+ return inputBox;
1138
+ } else {
1139
+ throw new Error('Input box not found!');
1140
+ }
1141
+ },
1142
+ createSourceControl(id: string, label: string, rootUri?: URI): theia.SourceControl {
1143
+ return scmExt.createSourceControl(plugin, id, label, rootUri);
1144
+ }
1145
+ };
1146
+
1147
+ const comments: typeof theia.comments = {
1148
+ createCommentController(id: string, label: string): theia.CommentController {
1149
+ return commentsExt.createCommentController(plugin, id, label);
1150
+ }
1151
+ };
1152
+
1153
+ const l10n: typeof theia.l10n = {
1154
+ // eslint-disable-next-line max-len
1155
+ t(...params: [message: string, ...args: Array<string | number | boolean>] | [message: string, args: Record<string, any>] | [{ message: string; args?: Array<string | number | boolean> | Record<string, any>; comment: string | string[] }]): string {
1156
+ if (typeof params[0] === 'string') {
1157
+ const key = params.shift() as string;
1158
+
1159
+ // We have either rest args which are Array<string | number | boolean> or an array with a single Record<string, any>.
1160
+ // This ensures we get a Record<string | number, any> which will be formatted correctly.
1161
+ const argsFormatted = !params || typeof params[0] !== 'object' ? params : params[0];
1162
+ return localizationExt.translateMessage(plugin.model.id, { message: key, args: argsFormatted as Record<string | number, any> | undefined });
1163
+ }
1164
+ return localizationExt.translateMessage(plugin.model.id, params[0]);
1165
+ },
1166
+ get bundle() {
1167
+ return localizationExt.getBundle(plugin.model.id);
1168
+ },
1169
+ get uri() {
1170
+ return localizationExt.getBundleUri(plugin.model.id);
1171
+ }
1172
+ };
1173
+
1174
+ // notebooks API (@stubbed)
1175
+ // The following implementation is temporarily `@stubbed` and marked as such under `theia.d.ts`
1176
+ const notebooks: typeof theia.notebooks = {
1177
+ createNotebookController(
1178
+ id,
1179
+ notebookType,
1180
+ label,
1181
+ handler?: (cells: theia.NotebookCell[],
1182
+ notebook: theia.NotebookDocument,
1183
+ controller: theia.NotebookController) => void | Thenable<void>,
1184
+ rendererScripts?: NotebookRendererScript[]
1185
+ ) {
1186
+ return notebookKernels.createNotebookController(plugin.model, id, notebookType, label, handler, rendererScripts);
1187
+ },
1188
+ createRendererMessaging(rendererId) {
1189
+ return notebookRenderers.createRendererMessaging(rendererId);
1190
+ },
1191
+ registerNotebookCellStatusBarItemProvider(
1192
+ notebookType,
1193
+ provider
1194
+ ) {
1195
+ return notebooksExt.registerNotebookCellStatusBarItemProvider(notebookType, provider);
1196
+ },
1197
+ onDidChangeNotebookCellExecutionState: notebookKernels.onDidChangeNotebookCellExecutionState,
1198
+
1199
+ createNotebookControllerDetectionTask(notebookType: string) {
1200
+ return notebookKernels.createNotebookControllerDetectionTask(notebookType);
1201
+ },
1202
+ registerKernelSourceActionProvider(notebookType: string, provider: theia.NotebookKernelSourceActionProvider) {
1203
+ return notebookKernels.registerKernelSourceActionProvider(notebookType, provider);
1204
+ }
1205
+ };
1206
+
1207
+ return <typeof theia>{
1208
+ version: require('../../package.json').version,
1209
+ authentication,
1210
+ commands,
1211
+ comments,
1212
+ window,
1213
+ workspace,
1214
+ env,
1215
+ extensions,
1216
+ languages,
1217
+ plugins,
1218
+ debug,
1219
+ tasks,
1220
+ scm,
1221
+ notebooks,
1222
+ l10n,
1223
+ tests,
1224
+ // Types
1225
+ StatusBarAlignment: StatusBarAlignment,
1226
+ Disposable: Disposable,
1227
+ EventEmitter: Emitter,
1228
+ CancellationTokenSource: CancellationTokenSource,
1229
+ MarkdownString,
1230
+ Position: Position,
1231
+ Range: Range,
1232
+ Selection: Selection,
1233
+ ViewColumn: ViewColumn,
1234
+ TextEditorSelectionChangeKind: TextEditorSelectionChangeKind,
1235
+ Uri: URI,
1236
+ EndOfLine,
1237
+ TextEditorRevealType,
1238
+ TextEditorCursorStyle,
1239
+ TextEditorLineNumbersStyle,
1240
+ ThemeColor,
1241
+ ThemeIcon,
1242
+ SnippetString,
1243
+ DecorationRangeBehavior,
1244
+ OverviewRulerLane,
1245
+ ConfigurationTarget,
1246
+ RelativePattern,
1247
+ IndentAction,
1248
+ SyntaxTokenType,
1249
+ CompletionItem,
1250
+ CompletionItemKind,
1251
+ CompletionList,
1252
+ DebugConsoleMode,
1253
+ DiagnosticSeverity,
1254
+ DiagnosticRelatedInformation,
1255
+ LanguageStatusSeverity,
1256
+ Location,
1257
+ LogLevel,
1258
+ DiagnosticTag,
1259
+ CompletionItemTag,
1260
+ Diagnostic,
1261
+ CompletionTriggerKind,
1262
+ TextEdit,
1263
+ SnippetTextEdit,
1264
+ ProgressLocation,
1265
+ ProgressOptions,
1266
+ Progress,
1267
+ ParameterInformation,
1268
+ QuickPickItemKind,
1269
+ SignatureInformation,
1270
+ SignatureHelp,
1271
+ SignatureHelpTriggerKind,
1272
+ Hover,
1273
+ EvaluatableExpression,
1274
+ InlineValueEvaluatableExpression,
1275
+ InlineValueText,
1276
+ InlineValueVariableLookup,
1277
+ InlineValueContext,
1278
+ DocumentHighlightKind,
1279
+ DocumentHighlight,
1280
+ MultiDocumentHighlight,
1281
+ DocumentLink,
1282
+ DocumentDropEdit,
1283
+ CodeLens,
1284
+ CodeActionKind,
1285
+ CodeActionTrigger,
1286
+ CodeActionTriggerKind,
1287
+ TextDocumentSaveReason,
1288
+ CodeAction,
1289
+ DataTransferItem,
1290
+ DataTransfer,
1291
+ TreeItem,
1292
+ TreeItemCollapsibleState,
1293
+ TreeItemCheckboxState,
1294
+ SymbolKind,
1295
+ SymbolTag,
1296
+ DocumentSymbol,
1297
+ WorkspaceEdit,
1298
+ SymbolInformation,
1299
+ FileType,
1300
+ FilePermission,
1301
+ FileChangeType,
1302
+ ShellQuoting,
1303
+ ShellExecution,
1304
+ ProcessExecution,
1305
+ CustomExecution,
1306
+ TaskScope,
1307
+ TaskRevealKind,
1308
+ TaskPanelKind,
1309
+ TaskGroup,
1310
+ Task,
1311
+ Task2,
1312
+ DebugAdapterExecutable,
1313
+ DebugAdapterServer,
1314
+ DebugAdapterNamedPipeServer,
1315
+ DebugAdapterInlineImplementation,
1316
+ DebugConfigurationProviderTriggerKind,
1317
+ Breakpoint,
1318
+ SourceBreakpoint,
1319
+ FunctionBreakpoint,
1320
+ Color,
1321
+ ColorInformation,
1322
+ ColorPresentation,
1323
+ FoldingRange,
1324
+ SelectionRange,
1325
+ FoldingRangeKind,
1326
+ OperatingSystem,
1327
+ WebviewPanelTargetArea,
1328
+ UIKind,
1329
+ FileSystemError,
1330
+ CommentThreadState,
1331
+ CommentThreadCollapsibleState,
1332
+ QuickInputButtons,
1333
+ CommentMode,
1334
+ CallHierarchyItem,
1335
+ CallHierarchyIncomingCall,
1336
+ CallHierarchyOutgoingCall,
1337
+ TypeHierarchyItem,
1338
+ TimelineItem,
1339
+ EnvironmentVariableMutatorType,
1340
+ SemanticTokensLegend,
1341
+ SemanticTokensBuilder,
1342
+ SemanticTokens,
1343
+ SemanticTokensEdits,
1344
+ SemanticTokensEdit,
1345
+ TextDocumentChangeReason,
1346
+ ColorThemeKind,
1347
+ SourceControlInputBoxValidationType,
1348
+ FileDecoration,
1349
+ TerminalLink,
1350
+ TerminalProfile,
1351
+ CancellationError,
1352
+ ExtensionMode,
1353
+ LinkedEditingRanges,
1354
+ InputBoxValidationSeverity,
1355
+ InlayHint,
1356
+ InlayHintKind,
1357
+ InlayHintLabelPart,
1358
+ TelemetryTrustedValue,
1359
+ NotebookCellData,
1360
+ NotebookCellExecutionState,
1361
+ NotebookCellKind,
1362
+ NotebookCellOutput,
1363
+ NotebookCellOutputItem,
1364
+ NotebookCellStatusBarAlignment,
1365
+ NotebookCellStatusBarItem,
1366
+ NotebookControllerAffinity,
1367
+ NotebookData,
1368
+ NotebookEditorRevealType,
1369
+ NotebookDocument,
1370
+ NotebookRange,
1371
+ NotebookEdit,
1372
+ NotebookKernelSourceAction,
1373
+ NotebookRendererScript,
1374
+ TestRunProfileKind,
1375
+ TestTag,
1376
+ TestRunRequest,
1377
+ TestMessage,
1378
+ ExtensionKind,
1379
+ InlineCompletionItem,
1380
+ InlineCompletionList,
1381
+ InlineCompletionTriggerKind,
1382
+ TabInputText: TextTabInput,
1383
+ TabInputTextDiff: TextDiffTabInput,
1384
+ TabInputTextMerge: TextMergeTabInput,
1385
+ TabInputCustom: CustomEditorTabInput,
1386
+ TabInputNotebook: NotebookEditorTabInput,
1387
+ TabInputNotebookDiff: NotebookDiffEditorTabInput,
1388
+ TabInputWebview: WebviewEditorTabInput,
1389
+ TabInputTerminal: TerminalEditorTabInput,
1390
+ TerminalLocation,
1391
+ TerminalOutputAnchor,
1392
+ TerminalExitReason,
1393
+ DocumentPasteEdit,
1394
+ ExternalUriOpenerPriority,
1395
+ TerminalQuickFixTerminalCommand,
1396
+ TerminalQuickFixOpener,
1397
+ EditSessionIdentityMatch,
1398
+ TestResultState
1399
+ };
1400
+ };
1401
+ }
1402
+
1403
+ /**
1404
+ * Represents a Theia plugin as well as a VSCode extension.
1405
+ */
1406
+ export interface ExtensionPlugin<T> extends theia.Plugin<T> {
1407
+ /**
1408
+ * The uri of the directory containing the extension. Same as {@linkcode theia.Plugin.pluginUri}.
1409
+ */
1410
+ readonly extensionUri: theia.Uri;
1411
+
1412
+ /**
1413
+ * The absolute file path of the directory containing this extension.
1414
+ * Same as {@linkcode theia.Plugin.pluginPath}.
1415
+ */
1416
+ readonly extensionPath: string;
1417
+
1418
+ /**
1419
+ * The extension kind describes if an extension runs where the UI runs
1420
+ * or if an extension runs where the remote extension host runs. The extension kind
1421
+ * is defined in the `package.json`-file of extensions. When no remote extension host exists,
1422
+ * the value is {@linkcode ExtensionKind.UI}.
1423
+ */
1424
+ extensionKind: theia.ExtensionKind;
1425
+ }
1426
+
1427
+ export class Plugin<T> implements theia.Plugin<T> {
1428
+ #pluginManager: PluginManager;
1429
+
1430
+ id: string;
1431
+ pluginPath: string;
1432
+ pluginUri: theia.Uri;
1433
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1434
+ packageJSON: any;
1435
+ pluginType: theia.PluginType;
1436
+
1437
+ constructor(pluginManager: PluginManager, plugin: InternalPlugin) {
1438
+ this.#pluginManager = pluginManager;
1439
+
1440
+ this.id = plugin.model.id;
1441
+ this.pluginPath = plugin.pluginFolder;
1442
+ this.packageJSON = plugin.rawModel;
1443
+ this.pluginType = plugin.model.entryPoint.frontend ? 'frontend' : 'backend';
1444
+
1445
+ if (this.pluginType === 'frontend') {
1446
+ const { origin } = new Endpoint();
1447
+ this.pluginUri = URI.parse(origin + '/' + PluginPackage.toPluginUrl(plugin.model, ''));
1448
+ } else {
1449
+ this.pluginUri = URI.parse(plugin.pluginUri);
1450
+ }
1451
+ }
1452
+
1453
+ get isActive(): boolean {
1454
+ return this.#pluginManager.isActive(this.id);
1455
+ }
1456
+
1457
+ get exports(): T {
1458
+ return <T>this.#pluginManager.getPluginExport(this.id);
1459
+ }
1460
+
1461
+ activate(): PromiseLike<T> {
1462
+ return this.#pluginManager.activatePlugin(this.id).then(() => this.exports);
1463
+ }
1464
+ }
1465
+
1466
+ export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
1467
+ #pluginManager: PluginManager;
1468
+
1469
+ extensionPath: string;
1470
+ extensionUri: theia.Uri;
1471
+ extensionKind: ExtensionKind;
1472
+ isFromDifferentExtensionHost: boolean;
1473
+
1474
+ constructor(pluginManager: PluginManager, plugin: InternalPlugin, isFromDifferentExtensionHost = false) {
1475
+ super(pluginManager, plugin);
1476
+ this.#pluginManager = pluginManager;
1477
+
1478
+ this.extensionPath = this.pluginPath;
1479
+ this.extensionUri = this.pluginUri;
1480
+ this.extensionKind = ExtensionKind.UI; // stub as a local extension (not running on a remote workspace)
1481
+ this.isFromDifferentExtensionHost = isFromDifferentExtensionHost;
1482
+ }
1483
+
1484
+ override get isActive(): boolean {
1485
+ return this.#pluginManager.isActive(this.id);
1486
+ }
1487
+
1488
+ override get exports(): T {
1489
+ return <T>this.#pluginManager.getPluginExport(this.id);
1490
+ }
1491
+
1492
+ override activate(): PromiseLike<T> {
1493
+ return this.#pluginManager.activatePlugin(this.id).then(() => this.exports);
1494
+ }
1495
+ }