@theia/plugin-ext 1.77.0-next.7 → 1.77.0-next.77

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 (380) hide show
  1. package/lib/common/character-classifier.js.map +1 -1
  2. package/lib/common/plugin-api-rpc.d.ts +2 -0
  3. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  4. package/lib/common/plugin-api-rpc.js.map +1 -1
  5. package/lib/common/plugin-protocol.d.ts +9 -0
  6. package/lib/common/plugin-protocol.d.ts.map +1 -1
  7. package/lib/common/plugin-protocol.js +19 -1
  8. package/lib/common/plugin-protocol.js.map +1 -1
  9. package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
  10. package/lib/hosted/browser/hosted-plugin.js +4 -2
  11. package/lib/hosted/browser/hosted-plugin.js.map +1 -1
  12. package/lib/hosted/browser/hosted-plugin.spec.d.ts +2 -0
  13. package/lib/hosted/browser/hosted-plugin.spec.d.ts.map +1 -0
  14. package/lib/hosted/browser/hosted-plugin.spec.js +59 -0
  15. package/lib/hosted/browser/hosted-plugin.spec.js.map +1 -0
  16. package/lib/hosted/browser/worker/worker-main.js +2 -1
  17. package/lib/hosted/browser/worker/worker-main.js.map +1 -1
  18. package/lib/hosted/browser-only/browser-only-plugin-paths-service.js +1 -1
  19. package/lib/hosted/browser-only/browser-only-plugin-paths-service.js.map +1 -1
  20. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js +2 -1
  21. package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js.map +1 -1
  22. package/lib/hosted/node/hosted-plugin-localization-service.js +2 -2
  23. package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
  24. package/lib/hosted/node/hosted-plugin-process.js +1 -1
  25. package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
  26. package/lib/hosted/node/plugin-deployer-handler-impl.js +1 -1
  27. package/lib/hosted/node/plugin-deployer-handler-impl.js.map +1 -1
  28. package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -1
  29. package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
  30. package/lib/hosted/node/plugin-host-proxy.d.ts.map +1 -1
  31. package/lib/hosted/node/plugin-host-proxy.js +10 -6
  32. package/lib/hosted/node/plugin-host-proxy.js.map +1 -1
  33. package/lib/hosted/node/plugin-host-rpc.js +1 -1
  34. package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
  35. package/lib/hosted/node/plugin-host.js +2 -1
  36. package/lib/hosted/node/plugin-host.js.map +1 -1
  37. package/lib/hosted/node/plugin-reader.js +6 -6
  38. package/lib/hosted/node/plugin-reader.js.map +1 -1
  39. package/lib/hosted/node/plugin-reader.spec.js +4 -3
  40. package/lib/hosted/node/plugin-reader.spec.js.map +1 -1
  41. package/lib/hosted/node/plugin-require-override.d.ts.map +1 -1
  42. package/lib/hosted/node/plugin-require-override.js +3 -1
  43. package/lib/hosted/node/plugin-require-override.js.map +1 -1
  44. package/lib/hosted/node/plugin-require-override.spec.d.ts +2 -0
  45. package/lib/hosted/node/plugin-require-override.spec.d.ts.map +1 -0
  46. package/lib/hosted/node/plugin-require-override.spec.js +40 -0
  47. package/lib/hosted/node/plugin-require-override.spec.js.map +1 -0
  48. package/lib/hosted/node/scanners/file-plugin-uri-factory.js +1 -1
  49. package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
  50. package/lib/hosted/node/scanners/scanner-theia.js +2 -2
  51. package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
  52. package/lib/hosted/node/scanners/scanner-theia.spec.js +5 -4
  53. package/lib/hosted/node/scanners/scanner-theia.spec.js.map +1 -1
  54. package/lib/hosted/node-electron/scanner-theia-electron.js +1 -1
  55. package/lib/hosted/node-electron/scanner-theia-electron.js.map +1 -1
  56. package/lib/main/browser/commands.js +1 -1
  57. package/lib/main/browser/commands.js.map +1 -1
  58. package/lib/main/browser/comments/comment-thread-widget.js +3 -2
  59. package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
  60. package/lib/main/browser/comments/comments-contribution.js +1 -1
  61. package/lib/main/browser/comments/comments-contribution.js.map +1 -1
  62. package/lib/main/browser/custom-editors/custom-editor-opener.spec.js +3 -2
  63. package/lib/main/browser/custom-editors/custom-editor-opener.spec.js.map +1 -1
  64. package/lib/main/browser/custom-editors/custom-editor-widget.js +1 -1
  65. package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
  66. package/lib/main/browser/custom-editors/custom-editors-main.js +2 -1
  67. package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
  68. package/lib/main/browser/decorations/decorations-main.js +2 -1
  69. package/lib/main/browser/decorations/decorations-main.js.map +1 -1
  70. package/lib/main/browser/dialogs-main.js +2 -1
  71. package/lib/main/browser/dialogs-main.js.map +1 -1
  72. package/lib/main/browser/documents-main.js +3 -2
  73. package/lib/main/browser/documents-main.js.map +1 -1
  74. package/lib/main/browser/file-system-main-impl.js +3 -2
  75. package/lib/main/browser/file-system-main-impl.js.map +1 -1
  76. package/lib/main/browser/hierarchy/hierarchy-types-converters.js +3 -2
  77. package/lib/main/browser/hierarchy/hierarchy-types-converters.js.map +1 -1
  78. package/lib/main/browser/languages-main.js +3 -3
  79. package/lib/main/browser/languages-main.js.map +1 -1
  80. package/lib/main/browser/languages-main.spec.js +2 -1
  81. package/lib/main/browser/languages-main.spec.js.map +1 -1
  82. package/lib/main/browser/main-file-system-event-service.d.ts +1 -22
  83. package/lib/main/browser/main-file-system-event-service.d.ts.map +1 -1
  84. package/lib/main/browser/main-file-system-event-service.js +2 -48
  85. package/lib/main/browser/main-file-system-event-service.js.map +1 -1
  86. package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
  87. package/lib/main/browser/menus/menus-contribution-handler.js +1 -12
  88. package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
  89. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
  90. package/lib/main/browser/notebooks/renderers/output-webview-internal.js +3 -2
  91. package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
  92. package/lib/main/browser/plugin-contribution-handler.js +1 -1
  93. package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
  94. package/lib/main/browser/plugin-ext-widget.js +1 -1
  95. package/lib/main/browser/plugin-ext-widget.js.map +1 -1
  96. package/lib/main/browser/plugin-icon-service.js +1 -1
  97. package/lib/main/browser/plugin-icon-service.js.map +1 -1
  98. package/lib/main/browser/plugin-icon-theme-service.d.ts +2 -2
  99. package/lib/main/browser/plugin-icon-theme-service.d.ts.map +1 -1
  100. package/lib/main/browser/plugin-icon-theme-service.js +2 -2
  101. package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
  102. package/lib/main/browser/plugin-icon-theme-service.spec.js +2 -1
  103. package/lib/main/browser/plugin-icon-theme-service.spec.js.map +1 -1
  104. package/lib/main/browser/plugin-shared-style.js.map +1 -1
  105. package/lib/main/browser/scm-main.d.ts +3 -1
  106. package/lib/main/browser/scm-main.d.ts.map +1 -1
  107. package/lib/main/browser/scm-main.js +6 -3
  108. package/lib/main/browser/scm-main.js.map +1 -1
  109. package/lib/main/browser/scm-main.spec.js +31 -0
  110. package/lib/main/browser/scm-main.spec.js.map +1 -1
  111. package/lib/main/browser/status-bar-message-registry-main.js +2 -1
  112. package/lib/main/browser/status-bar-message-registry-main.js.map +1 -1
  113. package/lib/main/browser/text-editor-main.js +2 -1
  114. package/lib/main/browser/text-editor-main.js.map +1 -1
  115. package/lib/main/browser/text-editors-main.js +2 -1
  116. package/lib/main/browser/text-editors-main.js.map +1 -1
  117. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +1 -1
  118. package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
  119. package/lib/main/browser/view/plugin-view-registry.d.ts +17 -2
  120. package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
  121. package/lib/main/browser/view/plugin-view-registry.js +72 -21
  122. package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
  123. package/lib/main/browser/view/plugin-view-registry.spec.js +188 -9
  124. package/lib/main/browser/view/plugin-view-registry.spec.js.map +1 -1
  125. package/lib/main/browser/view/tree-view-decorator-service.js +1 -1
  126. package/lib/main/browser/view/tree-view-decorator-service.js.map +1 -1
  127. package/lib/main/browser/view/tree-view-widget.js +2 -2
  128. package/lib/main/browser/view/tree-view-widget.js.map +1 -1
  129. package/lib/main/browser/webview/pre/main.spec.d.ts +2 -0
  130. package/lib/main/browser/webview/pre/main.spec.d.ts.map +1 -0
  131. package/lib/main/browser/webview/pre/main.spec.js +45 -0
  132. package/lib/main/browser/webview/pre/main.spec.js.map +1 -0
  133. package/lib/main/browser/webview/webview-theme-data-provider.d.ts +1 -1
  134. package/lib/main/browser/webview/webview-theme-data-provider.d.ts.map +1 -1
  135. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  136. package/lib/main/browser/webview/webview.js +6 -3
  137. package/lib/main/browser/webview/webview.js.map +1 -1
  138. package/lib/main/browser/window-state-main.js +2 -1
  139. package/lib/main/browser/window-state-main.js.map +1 -1
  140. package/lib/main/browser/workspace-main.js +1 -1
  141. package/lib/main/browser/workspace-main.js.map +1 -1
  142. package/lib/main/common/plugin-theia-environment.js +1 -1
  143. package/lib/main/common/plugin-theia-environment.js.map +1 -1
  144. package/lib/main/node/handlers/plugin-theia-directory-handler.js +4 -4
  145. package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
  146. package/lib/main/node/handlers/plugin-theia-file-handler.js +3 -3
  147. package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
  148. package/lib/main/node/paths/plugin-paths-service.js +4 -4
  149. package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
  150. package/lib/main/node/plugin-deployer-directory-handler-context-impl.js +2 -1
  151. package/lib/main/node/plugin-deployer-directory-handler-context-impl.js.map +1 -1
  152. package/lib/main/node/plugin-deployer-file-handler-context-impl.js +3 -2
  153. package/lib/main/node/plugin-deployer-file-handler-context-impl.js.map +1 -1
  154. package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
  155. package/lib/main/node/plugin-deployer-impl.js +7 -2
  156. package/lib/main/node/plugin-deployer-impl.js.map +1 -1
  157. package/lib/main/node/plugin-deployer-impl.spec.d.ts +2 -0
  158. package/lib/main/node/plugin-deployer-impl.spec.d.ts.map +1 -0
  159. package/lib/main/node/plugin-deployer-impl.spec.js +66 -0
  160. package/lib/main/node/plugin-deployer-impl.spec.js.map +1 -0
  161. package/lib/main/node/plugin-github-resolver.js +1 -1
  162. package/lib/main/node/plugin-github-resolver.js.map +1 -1
  163. package/lib/main/node/plugin-http-resolver.js +1 -1
  164. package/lib/main/node/plugin-http-resolver.js.map +1 -1
  165. package/lib/main/node/plugin-service.d.ts +1 -1
  166. package/lib/main/node/plugin-service.d.ts.map +1 -1
  167. package/lib/main/node/plugin-service.js +4 -4
  168. package/lib/main/node/plugin-service.js.map +1 -1
  169. package/lib/main/node/plugins-key-value-storage.js +2 -2
  170. package/lib/main/node/plugins-key-value-storage.js.map +1 -1
  171. package/lib/main/node/plugins-key-value-storage.spec.js +2 -1
  172. package/lib/main/node/plugins-key-value-storage.spec.js.map +1 -1
  173. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +2 -2
  174. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
  175. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js +4 -3
  176. package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js.map +1 -1
  177. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +3 -3
  178. package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
  179. package/lib/main/node/temp-dir-util.js +3 -2
  180. package/lib/main/node/temp-dir-util.js.map +1 -1
  181. package/lib/plugin/comments.d.ts +1 -1
  182. package/lib/plugin/comments.d.ts.map +1 -1
  183. package/lib/plugin/custom-editors.js +2 -1
  184. package/lib/plugin/custom-editors.js.map +1 -1
  185. package/lib/plugin/decorations.spec.js +2 -1
  186. package/lib/plugin/decorations.spec.js.map +1 -1
  187. package/lib/plugin/document-data.d.ts.map +1 -1
  188. package/lib/plugin/document-data.js +0 -1
  189. package/lib/plugin/document-data.js.map +1 -1
  190. package/lib/plugin/documents.js +2 -1
  191. package/lib/plugin/documents.js.map +1 -1
  192. package/lib/plugin/editors-and-documents.js +1 -1
  193. package/lib/plugin/editors-and-documents.js.map +1 -1
  194. package/lib/plugin/file-system-event-service-ext-impl.d.ts +1 -1
  195. package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
  196. package/lib/plugin/file-system-event-service-ext-impl.js +3 -2
  197. package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
  198. package/lib/plugin/file-system-ext-impl.js +5 -4
  199. package/lib/plugin/file-system-ext-impl.js.map +1 -1
  200. package/lib/plugin/file-system-watcher.spec.js +2 -1
  201. package/lib/plugin/file-system-watcher.spec.js.map +1 -1
  202. package/lib/plugin/known-commands.js +5 -5
  203. package/lib/plugin/known-commands.js.map +1 -1
  204. package/lib/plugin/known-commands.spec.js +2 -1
  205. package/lib/plugin/known-commands.spec.js.map +1 -1
  206. package/lib/plugin/languages/call-hierarchy.js +2 -1
  207. package/lib/plugin/languages/call-hierarchy.js.map +1 -1
  208. package/lib/plugin/languages/code-action.js +2 -1
  209. package/lib/plugin/languages/code-action.js.map +1 -1
  210. package/lib/plugin/languages/color.js +2 -1
  211. package/lib/plugin/languages/color.js.map +1 -1
  212. package/lib/plugin/languages/completion.js +2 -1
  213. package/lib/plugin/languages/completion.js.map +1 -1
  214. package/lib/plugin/languages/declaration.js +3 -2
  215. package/lib/plugin/languages/declaration.js.map +1 -1
  216. package/lib/plugin/languages/definition.js +3 -2
  217. package/lib/plugin/languages/definition.js.map +1 -1
  218. package/lib/plugin/languages/document-drop-edit.js +4 -3
  219. package/lib/plugin/languages/document-drop-edit.js.map +1 -1
  220. package/lib/plugin/languages/document-formatting.js +2 -1
  221. package/lib/plugin/languages/document-formatting.js.map +1 -1
  222. package/lib/plugin/languages/document-highlight.js +3 -2
  223. package/lib/plugin/languages/document-highlight.js.map +1 -1
  224. package/lib/plugin/languages/evaluatable-expression.js +2 -1
  225. package/lib/plugin/languages/evaluatable-expression.js.map +1 -1
  226. package/lib/plugin/languages/folding.js +2 -1
  227. package/lib/plugin/languages/folding.js.map +1 -1
  228. package/lib/plugin/languages/hover.js +2 -1
  229. package/lib/plugin/languages/hover.js.map +1 -1
  230. package/lib/plugin/languages/implementation.js +3 -2
  231. package/lib/plugin/languages/implementation.js.map +1 -1
  232. package/lib/plugin/languages/inlay-hints.js +2 -1
  233. package/lib/plugin/languages/inlay-hints.js.map +1 -1
  234. package/lib/plugin/languages/inline-completion.js +2 -1
  235. package/lib/plugin/languages/inline-completion.js.map +1 -1
  236. package/lib/plugin/languages/inline-values.js +2 -1
  237. package/lib/plugin/languages/inline-values.js.map +1 -1
  238. package/lib/plugin/languages/lens.js +2 -1
  239. package/lib/plugin/languages/lens.js.map +1 -1
  240. package/lib/plugin/languages/link-provider.js +2 -1
  241. package/lib/plugin/languages/link-provider.js.map +1 -1
  242. package/lib/plugin/languages/multi-document-highlight.js +3 -2
  243. package/lib/plugin/languages/multi-document-highlight.js.map +1 -1
  244. package/lib/plugin/languages/on-type-formatting.js +2 -1
  245. package/lib/plugin/languages/on-type-formatting.js.map +1 -1
  246. package/lib/plugin/languages/outline.js +3 -2
  247. package/lib/plugin/languages/outline.js.map +1 -1
  248. package/lib/plugin/languages/range-formatting.js +2 -1
  249. package/lib/plugin/languages/range-formatting.js.map +1 -1
  250. package/lib/plugin/languages/reference.js +2 -1
  251. package/lib/plugin/languages/reference.js.map +1 -1
  252. package/lib/plugin/languages/rename.js +2 -1
  253. package/lib/plugin/languages/rename.js.map +1 -1
  254. package/lib/plugin/languages/selection-range.js +2 -1
  255. package/lib/plugin/languages/selection-range.js.map +1 -1
  256. package/lib/plugin/languages/signature.js +2 -1
  257. package/lib/plugin/languages/signature.js.map +1 -1
  258. package/lib/plugin/languages/type-definition.js +3 -2
  259. package/lib/plugin/languages/type-definition.js.map +1 -1
  260. package/lib/plugin/languages/type-hierarchy.js +2 -1
  261. package/lib/plugin/languages/type-hierarchy.js.map +1 -1
  262. package/lib/plugin/languages/util.js +2 -1
  263. package/lib/plugin/languages/util.js.map +1 -1
  264. package/lib/plugin/languages/workspace-symbol.js +2 -1
  265. package/lib/plugin/languages/workspace-symbol.js.map +1 -1
  266. package/lib/plugin/node/debug/debug.spec.js +2 -1
  267. package/lib/plugin/node/debug/debug.spec.js.map +1 -1
  268. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js +3 -2
  269. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js.map +1 -1
  270. package/lib/plugin/node/env-node-ext.js +1 -1
  271. package/lib/plugin/node/env-node-ext.js.map +1 -1
  272. package/lib/plugin/notebook/notebook-document.js +3 -2
  273. package/lib/plugin/notebook/notebook-document.js.map +1 -1
  274. package/lib/plugin/notebook/notebook-editors.js +2 -1
  275. package/lib/plugin/notebook/notebook-editors.js.map +1 -1
  276. package/lib/plugin/notebook/notebooks.js +2 -1
  277. package/lib/plugin/notebook/notebooks.js.map +1 -1
  278. package/lib/plugin/path.spec.js +2 -1
  279. package/lib/plugin/path.spec.js.map +1 -1
  280. package/lib/plugin/plugin-context.js +1 -1
  281. package/lib/plugin/plugin-context.js.map +1 -1
  282. package/lib/plugin/plugin-icon-path.js +2 -1
  283. package/lib/plugin/plugin-icon-path.js.map +1 -1
  284. package/lib/plugin/plugin-manager.js +2 -2
  285. package/lib/plugin/plugin-manager.js.map +1 -1
  286. package/lib/plugin/preference-registry.spec.js +2 -1
  287. package/lib/plugin/preference-registry.spec.js.map +1 -1
  288. package/lib/plugin/quick-open.js +2 -1
  289. package/lib/plugin/quick-open.js.map +1 -1
  290. package/lib/plugin/relative-pattern.spec.js +3 -2
  291. package/lib/plugin/relative-pattern.spec.js.map +1 -1
  292. package/lib/plugin/scm.d.ts.map +1 -1
  293. package/lib/plugin/scm.js +14 -1
  294. package/lib/plugin/scm.js.map +1 -1
  295. package/lib/plugin/scm.spec.js +56 -1
  296. package/lib/plugin/scm.spec.js.map +1 -1
  297. package/lib/plugin/tasks/task-provider.js +2 -1
  298. package/lib/plugin/tasks/task-provider.js.map +1 -1
  299. package/lib/plugin/tasks/tasks.js +2 -1
  300. package/lib/plugin/tasks/tasks.js.map +1 -1
  301. package/lib/plugin/telemetry-ext.spec.js +2 -1
  302. package/lib/plugin/telemetry-ext.spec.js.map +1 -1
  303. package/lib/plugin/terminal-ext.js +1 -1
  304. package/lib/plugin/terminal-ext.js.map +1 -1
  305. package/lib/plugin/terminal-ext.spec.js +2 -1
  306. package/lib/plugin/terminal-ext.spec.js.map +1 -1
  307. package/lib/plugin/tests.js +1 -1
  308. package/lib/plugin/tests.js.map +1 -1
  309. package/lib/plugin/text-editor.js +2 -1
  310. package/lib/plugin/text-editor.js.map +1 -1
  311. package/lib/plugin/text-editors.js +2 -1
  312. package/lib/plugin/text-editors.js.map +1 -1
  313. package/lib/plugin/tree/tree-views.d.ts.map +1 -1
  314. package/lib/plugin/tree/tree-views.js +2 -1
  315. package/lib/plugin/tree/tree-views.js.map +1 -1
  316. package/lib/plugin/type-converters.js +6 -5
  317. package/lib/plugin/type-converters.js.map +1 -1
  318. package/lib/plugin/type-converters.spec.js +5 -4
  319. package/lib/plugin/type-converters.spec.js.map +1 -1
  320. package/lib/plugin/types-impl.d.ts +10 -0
  321. package/lib/plugin/types-impl.d.ts.map +1 -1
  322. package/lib/plugin/types-impl.js +7 -1
  323. package/lib/plugin/types-impl.js.map +1 -1
  324. package/lib/plugin/types-impl.spec.js +25 -2
  325. package/lib/plugin/types-impl.spec.js.map +1 -1
  326. package/lib/plugin/workspace.js +2 -2
  327. package/lib/plugin/workspace.js.map +1 -1
  328. package/lib/plugin/workspace.spec.js +2 -1
  329. package/lib/plugin/workspace.spec.js.map +1 -1
  330. package/lib/plugin-ext-frontend-electron-module.js +2 -1
  331. package/lib/plugin-ext-frontend-electron-module.js.map +1 -1
  332. package/lib/plugin-ext-frontend-module.js +2 -1
  333. package/lib/plugin-ext-frontend-module.js.map +1 -1
  334. package/package.json +32 -32
  335. package/src/common/character-classifier.ts +1 -1
  336. package/src/common/plugin-api-rpc.ts +2 -0
  337. package/src/common/plugin-protocol.ts +18 -0
  338. package/src/hosted/browser/hosted-plugin.spec.ts +66 -0
  339. package/src/hosted/browser/hosted-plugin.ts +3 -1
  340. package/src/hosted/node/plugin-host-proxy.ts +6 -3
  341. package/src/hosted/node/plugin-reader.ts +1 -1
  342. package/src/hosted/node/plugin-require-override.spec.ts +44 -0
  343. package/src/hosted/node/plugin-require-override.ts +1 -0
  344. package/src/main/browser/file-system-main-impl.ts +1 -1
  345. package/src/main/browser/main-file-system-event-service.ts +2 -49
  346. package/src/main/browser/menus/menus-contribution-handler.ts +6 -13
  347. package/src/main/browser/notebooks/renderers/output-webview-internal.ts +6 -3
  348. package/src/main/browser/plugin-shared-style.ts +2 -2
  349. package/src/main/browser/scm-main.spec.ts +32 -0
  350. package/src/main/browser/scm-main.ts +6 -2
  351. package/src/main/browser/view/plugin-view-registry.spec.ts +277 -12
  352. package/src/main/browser/view/plugin-view-registry.ts +76 -21
  353. package/src/main/browser/view/tree-view-widget.tsx +1 -1
  354. package/src/main/browser/webview/pre/main.js +19 -10
  355. package/src/main/browser/webview/pre/main.spec.ts +46 -0
  356. package/src/main/browser/webview/webview.ts +7 -3
  357. package/src/main/node/handlers/plugin-theia-directory-handler.ts +1 -1
  358. package/src/main/node/handlers/plugin-theia-file-handler.ts +1 -1
  359. package/src/main/node/plugin-deployer-file-handler-context-impl.ts +1 -1
  360. package/src/main/node/plugin-deployer-impl.spec.ts +75 -0
  361. package/src/main/node/plugin-deployer-impl.ts +7 -2
  362. package/src/main/node/plugin-service.ts +1 -1
  363. package/src/plugin/document-data.ts +0 -1
  364. package/src/plugin/file-system-event-service-ext-impl.ts +1 -1
  365. package/src/plugin/file-system-ext-impl.ts +2 -2
  366. package/src/plugin/known-commands.ts +5 -5
  367. package/src/plugin/plugin-context.ts +4 -4
  368. package/src/plugin/plugin-manager.ts +1 -1
  369. package/src/plugin/scm.spec.ts +67 -1
  370. package/src/plugin/scm.ts +18 -1
  371. package/src/plugin/tests.ts +2 -2
  372. package/src/plugin/tree/tree-views.ts +2 -1
  373. package/src/plugin/type-converters.spec.ts +1 -1
  374. package/src/plugin/types-impl.spec.ts +25 -0
  375. package/src/plugin/types-impl.ts +7 -0
  376. package/lib/main/browser/main-file-system-event-service.spec.d.ts +0 -2
  377. package/lib/main/browser/main-file-system-event-service.spec.d.ts.map +0 -1
  378. package/lib/main/browser/main-file-system-event-service.spec.js +0 -100
  379. package/lib/main/browser/main-file-system-event-service.spec.js.map +0 -1
  380. package/src/main/browser/main-file-system-event-service.spec.ts +0 -125
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.spec.js","sourceRoot":"","sources":["../../src/plugin/workspace.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.spec.js","sourceRoot":"","sources":["../../src/plugin/workspace.spec.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const plugin_ext_frontend_electron_module_1 = require("./main/electron-browser/plugin-ext-frontend-electron-module");
18
+ const tslib_1 = require("tslib");
19
+ const plugin_ext_frontend_electron_module_1 = tslib_1.__importDefault(require("./main/electron-browser/plugin-ext-frontend-electron-module"));
19
20
  exports.default = plugin_ext_frontend_electron_module_1.default;
20
21
  //# sourceMappingURL=plugin-ext-frontend-electron-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-ext-frontend-electron-module.js","sourceRoot":"","sources":["../src/plugin-ext-frontend-electron-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,qHAAqF;AAErF,kBAAe,6CAAU,CAAC"}
1
+ {"version":3,"file":"plugin-ext-frontend-electron-module.js","sourceRoot":"","sources":["../src/plugin-ext-frontend-electron-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,8IAAqF;AAErF,kBAAe,6CAAU,CAAC"}
@@ -15,6 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const plugin_ext_frontend_module_1 = require("./main/browser/plugin-ext-frontend-module");
18
+ const tslib_1 = require("tslib");
19
+ const plugin_ext_frontend_module_1 = tslib_1.__importDefault(require("./main/browser/plugin-ext-frontend-module"));
19
20
  exports.default = plugin_ext_frontend_module_1.default;
20
21
  //# sourceMappingURL=plugin-ext-frontend-module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-ext-frontend-module.js","sourceRoot":"","sources":["../src/plugin-ext-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,0FAAmE;AAEnE,kBAAe,oCAAU,CAAC"}
1
+ {"version":3,"file":"plugin-ext-frontend-module.js","sourceRoot":"","sources":["../src/plugin-ext-frontend-module.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;AAEhF,mHAAmE;AAEnE,kBAAe,oCAAU,CAAC"}
package/package.json CHANGED
@@ -1,41 +1,41 @@
1
1
  {
2
2
  "name": "@theia/plugin-ext",
3
- "version": "1.77.0-next.7+b88a5a9c5f7",
3
+ "version": "1.77.0-next.77+e4fc9729e",
4
4
  "description": "Theia - Plugin Extension",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
7
7
  "dependencies": {
8
- "@theia/ai-core": "1.77.0-next.7+b88a5a9c5f7",
9
- "@theia/ai-mcp": "1.77.0-next.7+b88a5a9c5f7",
10
- "@theia/bulk-edit": "1.77.0-next.7+b88a5a9c5f7",
11
- "@theia/callhierarchy": "1.77.0-next.7+b88a5a9c5f7",
12
- "@theia/console": "1.77.0-next.7+b88a5a9c5f7",
13
- "@theia/core": "1.77.0-next.7+b88a5a9c5f7",
14
- "@theia/debug": "1.77.0-next.7+b88a5a9c5f7",
15
- "@theia/editor": "1.77.0-next.7+b88a5a9c5f7",
16
- "@theia/editor-preview": "1.77.0-next.7+b88a5a9c5f7",
17
- "@theia/file-search": "1.77.0-next.7+b88a5a9c5f7",
18
- "@theia/filesystem": "1.77.0-next.7+b88a5a9c5f7",
19
- "@theia/markers": "1.77.0-next.7+b88a5a9c5f7",
20
- "@theia/messages": "1.77.0-next.7+b88a5a9c5f7",
21
- "@theia/monaco": "1.77.0-next.7+b88a5a9c5f7",
8
+ "@theia/ai-core": "1.77.0-next.77+e4fc9729e",
9
+ "@theia/ai-mcp": "1.77.0-next.77+e4fc9729e",
10
+ "@theia/bulk-edit": "1.77.0-next.77+e4fc9729e",
11
+ "@theia/callhierarchy": "1.77.0-next.77+e4fc9729e",
12
+ "@theia/console": "1.77.0-next.77+e4fc9729e",
13
+ "@theia/core": "1.77.0-next.77+e4fc9729e",
14
+ "@theia/debug": "1.77.0-next.77+e4fc9729e",
15
+ "@theia/editor": "1.77.0-next.77+e4fc9729e",
16
+ "@theia/editor-preview": "1.77.0-next.77+e4fc9729e",
17
+ "@theia/file-search": "1.77.0-next.77+e4fc9729e",
18
+ "@theia/filesystem": "1.77.0-next.77+e4fc9729e",
19
+ "@theia/markers": "1.77.0-next.77+e4fc9729e",
20
+ "@theia/messages": "1.77.0-next.77+e4fc9729e",
21
+ "@theia/monaco": "1.77.0-next.77+e4fc9729e",
22
22
  "@theia/monaco-editor-core": "1.108.201",
23
- "@theia/navigator": "1.77.0-next.7+b88a5a9c5f7",
24
- "@theia/notebook": "1.77.0-next.7+b88a5a9c5f7",
25
- "@theia/output": "1.77.0-next.7+b88a5a9c5f7",
26
- "@theia/plugin": "1.77.0-next.7+b88a5a9c5f7",
27
- "@theia/plugin-utils": "1.77.0-next.7+b88a5a9c5f7",
28
- "@theia/preferences": "1.77.0-next.7+b88a5a9c5f7",
29
- "@theia/scm": "1.77.0-next.7+b88a5a9c5f7",
30
- "@theia/search-in-workspace": "1.77.0-next.7+b88a5a9c5f7",
31
- "@theia/task": "1.77.0-next.7+b88a5a9c5f7",
32
- "@theia/telemetry": "1.77.0-next.7+b88a5a9c5f7",
33
- "@theia/terminal": "1.77.0-next.7+b88a5a9c5f7",
34
- "@theia/test": "1.77.0-next.7+b88a5a9c5f7",
35
- "@theia/timeline": "1.77.0-next.7+b88a5a9c5f7",
36
- "@theia/typehierarchy": "1.77.0-next.7+b88a5a9c5f7",
37
- "@theia/variable-resolver": "1.77.0-next.7+b88a5a9c5f7",
38
- "@theia/workspace": "1.77.0-next.7+b88a5a9c5f7",
23
+ "@theia/navigator": "1.77.0-next.77+e4fc9729e",
24
+ "@theia/notebook": "1.77.0-next.77+e4fc9729e",
25
+ "@theia/output": "1.77.0-next.77+e4fc9729e",
26
+ "@theia/plugin": "1.77.0-next.77+e4fc9729e",
27
+ "@theia/plugin-utils": "1.77.0-next.77+e4fc9729e",
28
+ "@theia/preferences": "1.77.0-next.77+e4fc9729e",
29
+ "@theia/scm": "1.77.0-next.77+e4fc9729e",
30
+ "@theia/search-in-workspace": "1.77.0-next.77+e4fc9729e",
31
+ "@theia/task": "1.77.0-next.77+e4fc9729e",
32
+ "@theia/telemetry": "1.77.0-next.77+e4fc9729e",
33
+ "@theia/terminal": "1.77.0-next.77+e4fc9729e",
34
+ "@theia/test": "1.77.0-next.77+e4fc9729e",
35
+ "@theia/timeline": "1.77.0-next.77+e4fc9729e",
36
+ "@theia/typehierarchy": "1.77.0-next.77+e4fc9729e",
37
+ "@theia/variable-resolver": "1.77.0-next.77+e4fc9729e",
38
+ "@theia/workspace": "1.77.0-next.77+e4fc9729e",
39
39
  "@types/mime": "^2.0.3",
40
40
  "@vscode/debugprotocol": "^1.68.0",
41
41
  "@vscode/proxy-agent": "^0.13.2",
@@ -103,5 +103,5 @@
103
103
  "nyc": {
104
104
  "extends": "../../configs/nyc.json"
105
105
  },
106
- "gitHead": "b88a5a9c5f7ba08e59aaef3d9a53e62b17bd0b5a"
106
+ "gitHead": "e4fc9729ea0646a6be4362a1969fbbd35b9ac105"
107
107
  }
@@ -65,7 +65,7 @@ export class CharacterClassifier<T extends number> {
65
65
 
66
66
  public get(charCode: number): T {
67
67
  if (charCode >= 0 && charCode < 256) {
68
- return <T>this._asciiMap[charCode];
68
+ return this._asciiMap[charCode] as T;
69
69
  } else {
70
70
  return <T>(this._map.get(charCode) || this._defaultValue);
71
71
  }
@@ -1104,6 +1104,8 @@ export interface SourceControlGroupFeatures {
1104
1104
  export interface ScmRawResource {
1105
1105
  handle: number,
1106
1106
  sourceUri: UriComponents,
1107
+ multiDiffEditorOriginalUri?: UriComponents,
1108
+ multiDiffEditorModifiedUri?: UriComponents,
1107
1109
  icons: (IconUrl | ThemeIcon | undefined)[], /* icons: light, dark */
1108
1110
  tooltip: string,
1109
1111
  strikeThrough: boolean,
@@ -635,6 +635,24 @@ export interface PluginDeployOptions {
635
635
  ignoreOtherVersions?: boolean;
636
636
  }
637
637
 
638
+ /**
639
+ * Thrown by a {@link PluginDeployerResolver} when the plugin it resolves is already installed.
640
+ * Identified by its `name`, which survives the RPC boundary.
641
+ */
642
+ export namespace DuplicateExtensionError {
643
+ export const NAME = 'DuplicateExtensionError';
644
+
645
+ export function create(message: string): Error {
646
+ const error = new Error(message);
647
+ error.name = NAME;
648
+ return error;
649
+ }
650
+
651
+ export function is(error: unknown): error is Error {
652
+ return error instanceof Error && error.name === NAME;
653
+ }
654
+ }
655
+
638
656
  export const pluginServerJsonRpcPath = '/services/plugin-ext';
639
657
  export const PluginServer = Symbol('PluginServer');
640
658
  export interface PluginServer {
@@ -0,0 +1,66 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 JuliaHub, 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
+ import { enableJSDOM } from '@theia/core/lib/browser/test/jsdom';
18
+ // HostedPluginSupport transitively imports browser widgets (Lumino) that touch `document` at load time.
19
+ const disableJSDOM = enableJSDOM();
20
+
21
+ import { FrontendApplicationConfigProvider } from '@theia/core/lib/browser/frontend-application-config-provider';
22
+ // Some transitively imported modules read the frontend config at load time.
23
+ FrontendApplicationConfigProvider.set({});
24
+
25
+ import { expect } from 'chai';
26
+ import { Disposable, DisposableCollection } from '@theia/core/lib/common';
27
+ import { Deferred } from '@theia/core/lib/common/promise-util';
28
+ import { FrontendApplicationState } from '@theia/core/lib/common/frontend-application-state';
29
+ import { HostedPluginSupport } from './hosted-plugin';
30
+
31
+ disableJSDOM();
32
+
33
+ describe('HostedPluginSupport - plugin view initialization', () => {
34
+
35
+ it('initializes plugin views once the application is ready, after the onDidInitializeLayout hooks', async () => {
36
+ const states = new Map<FrontendApplicationState, Deferred<void>>();
37
+ const reach = (state: FrontendApplicationState): Deferred<void> => {
38
+ if (!states.has(state)) {
39
+ states.set(state, new Deferred<void>());
40
+ }
41
+ return states.get(state)!;
42
+ };
43
+ const calls: string[] = [];
44
+ const support = new HostedPluginSupport();
45
+ Object.assign(support, {
46
+ appState: { reachedState: (state: FrontendApplicationState) => reach(state).promise },
47
+ viewRegistry: {
48
+ initWidgets: async () => { calls.push('initWidgets'); },
49
+ removeStaleWidgets: () => { calls.push('removeStaleWidgets'); }
50
+ },
51
+ workspaceTrustService: { refreshRestrictedModeIndicator: () => { } }
52
+ });
53
+ const flush = () => new Promise(resolve => setTimeout(resolve));
54
+
55
+ await (support as unknown as { afterLoadContributions(toDisconnect: DisposableCollection): Promise<void> })
56
+ .afterLoadContributions(new DisposableCollection(Disposable.NULL));
57
+ reach('initialized_layout').resolve();
58
+ await flush();
59
+ expect(calls).to.deep.equal([]);
60
+
61
+ reach('ready').resolve();
62
+ await flush();
63
+ expect(calls).to.deep.equal(['initWidgets', 'removeStaleWidgets']);
64
+ });
65
+
66
+ });
@@ -288,9 +288,11 @@ export class HostedPluginSupport extends AbstractHostedPluginSupport<PluginManag
288
288
  // must not run while the ShellLayoutRestorer still holds restored plugin view widgets, otherwise
289
289
  // removeStaleWidgets can dispose a restored view container mid-restore and abort the whole
290
290
  // layout restoration (see https://github.com/eclipse-theia/theia/issues/17770).
291
+ // Wait for `ready` rather than `initialized_layout`: only `ready` follows the onDidInitializeLayout
292
+ // hooks, and PluginViewRegistry's hook disposes the data widgets that initWidgets would prepare.
291
293
  // Deliberately not awaited: startPlugins runs after this hook and may register file system
292
294
  // providers the layout restoration depends on (see beforeLoadContributions).
293
- this.appState.reachedState('initialized_layout').then(async () => {
295
+ this.appState.reachedState('ready').then(async () => {
294
296
  if (toDisconnect.disposed) {
295
297
  return;
296
298
  }
@@ -14,9 +14,12 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
- import * as http from 'http';
18
- import * as https from 'https';
19
- import * as tls from 'tls';
17
+ // Default imports resolve to the real Node module objects. With `esModuleInterop`, a namespace
18
+ // import (`import * as http`) is a read-only copy with getter-only properties, and the
19
+ // `Object.assign(http, …)` patches below would throw "Cannot set property … which has only a getter".
20
+ import http from 'http';
21
+ import https from 'https';
22
+ import tls from 'tls';
20
23
 
21
24
  import { createHttpPatch, createProxyResolver, createTlsPatch, ProxySupportSetting } from '@vscode/proxy-agent';
22
25
  import { PreferenceRegistryExtImpl } from '../../plugin/preference-registry';
@@ -16,7 +16,7 @@
16
16
 
17
17
  import * as path from 'path';
18
18
  import * as express from '@theia/core/shared/express';
19
- import * as escape_html from 'escape-html';
19
+ import escape_html from 'escape-html';
20
20
  import { realpath, stat } from 'fs/promises';
21
21
  import { ILogger } from '@theia/core';
22
22
  import { inject, injectable, optional, multiInject, named } from '@theia/core/shared/inversify';
@@ -0,0 +1,44 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2026 EclipseSource GmbH and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { expect } from 'chai';
18
+ import { overridePluginDependencies } from './plugin-require-override';
19
+
20
+ describe('overridePluginDependencies', () => {
21
+
22
+ const nodeModule = require('module');
23
+ let originalLoad: unknown;
24
+
25
+ beforeEach(() => {
26
+ originalLoad = nodeModule._load;
27
+ });
28
+
29
+ afterEach(() => {
30
+ nodeModule._load = originalLoad;
31
+ });
32
+
33
+ it('should provide the real node-pty module for an unresolvable node-pty request', () => {
34
+ overridePluginDependencies();
35
+ const nodePty = require('/nonexistent/vscode/node_modules/node-pty');
36
+ expect(nodePty).to.equal(require('node-pty'));
37
+ expect(nodePty.spawn).to.be.a('function');
38
+ });
39
+
40
+ it('should rethrow for unresolvable requests without an override', () => {
41
+ overridePluginDependencies();
42
+ expect(() => require('/nonexistent/vscode/node_modules/unknown-package')).to.throw();
43
+ });
44
+ });
@@ -14,6 +14,7 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
 
17
+ // node-pty sets __esModule, so a namespace import already yields the real module object (a default import would be undefined).
17
18
  import * as nodePty from 'node-pty';
18
19
 
19
20
  const overrides = [
@@ -20,8 +20,8 @@
20
20
  // based on https://github.com/microsoft/vscode/blob/04c36be045a94fee58e5f8992d3e3fd980294a84/src/vs/workbench/api/browser/mainThreadFileSystem.ts
21
21
 
22
22
  /* eslint-disable max-len */
23
- /* eslint-disable @typescript-eslint/tslint/config */
24
23
  /* eslint-disable @typescript-eslint/no-explicit-any */
24
+ /* eslint-disable @theia/explicit-return-type */
25
25
 
26
26
  import { URI } from '@theia/core/shared/vscode-uri';
27
27
  import { interfaces } from '@theia/core/shared/inversify';
@@ -27,20 +27,16 @@ import { URI } from '@theia/core';
27
27
  import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable';
28
28
  import { FileService } from '@theia/filesystem/lib/browser/file-service';
29
29
  import { FileChangeType, WatchOptions } from '@theia/filesystem/lib/common/files';
30
- import { WorkspaceService } from '@theia/workspace/lib/browser';
31
30
 
32
31
  export class MainFileSystemEventService implements MainFileSystemEventServiceShape {
33
32
 
34
33
  private readonly toDispose = new DisposableCollection();
35
34
  private readonly watches = new Map<number, Disposable>();
36
- /** Ancestor-of-workspace roots already skipped, to avoid logging on every re-registration. */
37
- private readonly skippedWatchRoots = new Set<string>();
38
35
 
39
36
  constructor(
40
37
  rpc: RPCProtocol,
41
38
  container: interfaces.Container,
42
- private readonly fileService = container.get(FileService),
43
- private readonly workspaceService = container.get(WorkspaceService)
39
+ private readonly fileService = container.get(FileService)
44
40
  ) {
45
41
  const proxy = rpc.getProxy(MAIN_RPC_CONTEXT.ExtHostFileSystemEventService);
46
42
 
@@ -85,57 +81,14 @@ export class MainFileSystemEventService implements MainFileSystemEventServiceSha
85
81
  if (this.watches.has(session)) {
86
82
  throw new Error(`There is already a watch request for the key ${session}`);
87
83
  }
88
- const uri = URI.fromComponents(resource);
89
- if (this.shouldSkipWatch(uri, options)) {
90
- // Register a no-op disposable so the session is tracked and `$unwatch` still works.
91
- this.watches.set(session, Disposable.NULL);
92
- return;
93
- }
94
84
  // Plugin/language-server watchers (`vscode.workspace.createFileSystemWatcher`) arrive here
95
85
  // with an empty `excludes` list; `FileService.watch` applies `files.watcherExclude` centrally
96
86
  // for all watchers, so they stay bounded without merging the excludes here.
97
- const watch = this.fileService.watch(uri, options);
87
+ const watch = this.fileService.watch(URI.fromComponents(resource), options);
98
88
  this.toDispose.push(watch);
99
89
  this.watches.set(session, watch);
100
90
  }
101
91
 
102
- /**
103
- * Whether a plugin-requested watch should not be registered at all.
104
- *
105
- * Theia's backend ignores the `recursive` flag and always watches recursively. A NON-recursive
106
- * watch rooted at a strict ancestor of a workspace root - e.g. a language server (such as
107
- * `redhat.java` / JDT-LS) watching the PARENT of the workspace folder via
108
- * `RelativePattern(parentDir, folderName)` purely to detect deletion of the folder itself -
109
- * would therefore be turned into a recursive crawl of every sibling subtree under that parent,
110
- * i.e. thousands of inodes the workspace does not own, which can exhaust the OS file-watch
111
- * budget. `files.watcherExclude` cannot bound it because the root is outside the workspace, so
112
- * the only effective mitigation is to not register the watch.
113
- *
114
- * Explicit recursive requests are honored as-is, and watches on or inside a workspace root are
115
- * left untouched.
116
- */
117
- protected shouldSkipWatch(uri: URI, options: WatchOptions): boolean {
118
- if (options.recursive) {
119
- return false;
120
- }
121
- const roots = this.workspaceService.tryGetRoots();
122
- // A folder that is itself a workspace root must always be watched, even if it also happens to
123
- // be a (strict) ancestor of another root in a multi-root workspace where one root is nested
124
- // inside another. Only watches rooted strictly above every root are dropped.
125
- const isWorkspaceRoot = roots.some(root => uri.isEqual(root.resource));
126
- const isAncestorOfWorkspace = !isWorkspaceRoot && roots.some(root => uri.isEqualOrParent(root.resource));
127
- if (isAncestorOfWorkspace) {
128
- const key = uri.toString();
129
- if (!this.skippedWatchRoots.has(key)) {
130
- this.skippedWatchRoots.add(key);
131
- console.warn('[MainFileSystemEventService] skipping non-recursive watch rooted at an ancestor of the '
132
- + `workspace (the backend would recursively crawl sibling trees): ${key}`);
133
- }
134
- return true;
135
- }
136
- return false;
137
- }
138
-
139
92
  $unwatch(session: number): void {
140
93
  const watch = this.watches.get(session);
141
94
  if (watch) {
@@ -17,7 +17,10 @@
17
17
  /* eslint-disable @typescript-eslint/no-explicit-any */
18
18
 
19
19
  import { inject, injectable, optional, named } from '@theia/core/shared/inversify';
20
- import { MenuPath, CommandRegistry, Disposable, DisposableCollection, nls, CommandMenu, AcceleratorSource, ContextExpressionMatcher, environment, ILogger } from '@theia/core';
20
+ import {
21
+ MenuPath, CommandRegistry, Disposable, DisposableCollection, nls, CommandMenu, AcceleratorSource, AcceleratorForm,
22
+ ContextExpressionMatcher, ILogger
23
+ } from '@theia/core';
21
24
  import { MenuModelRegistry } from '@theia/core/lib/common';
22
25
  import { TabBarToolbarRegistry } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
23
26
  import { DeployedPlugin, IconUrl, Menu } from '../../../common';
@@ -137,18 +140,8 @@ export class MenusContributionPointHandler {
137
140
  run: (effeciveMenuPath: MenuPath, ...args: any[]): Promise<void> =>
138
141
  this.commandRegistry.executeCommand(command, ...this.pluginMenuCommandAdapter.getArgumentAdapter(effeciveMenuPath)(...args)),
139
142
  isToggled: (effectiveMenuPath: MenuPath) => false,
140
- getAccelerator: (context: HTMLElement | undefined): string[] => {
141
- const bindings = this.keybindingRegistry.getKeybindingsForCommand(command);
142
- // Only consider the first active keybinding.
143
- if (bindings.length) {
144
- const binding = bindings.find(b => this.keybindingRegistry.isEnabledInScope(b, context));
145
- if (binding) {
146
- const asciiOnly = environment.electron.is();
147
- return this.keybindingRegistry.acceleratorFor(binding, '+', asciiOnly);
148
- }
149
- }
150
- return [];
151
- }
143
+ getAccelerator: (context: HTMLElement | undefined, form: AcceleratorForm): string[] =>
144
+ this.keybindingRegistry.acceleratorForCommand(command, context, form)
152
145
  };
153
146
  toDispose.push(this.menuRegistry.registerCommandMenu(menuPath, action));
154
147
  });
@@ -73,10 +73,13 @@ interface KernelPreloadModule {
73
73
  export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
74
74
  // workaround to allow rendering of links in outputs for non chromium browsers
75
75
  // see https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API#cross-browser_support_for_trusted_types
76
- if (!window.trustedTypes) {
77
- window.trustedTypes = {
76
+ const windowWithTrustedTypes = window as unknown as {
77
+ trustedTypes?: { createPolicy(name: string, rules: unknown): unknown };
78
+ };
79
+ if (!windowWithTrustedTypes.trustedTypes) {
80
+ windowWithTrustedTypes.trustedTypes = {
78
81
  createPolicy: (name: string, rules: unknown) => rules
79
- } as unknown as typeof window.trustedTypes;
82
+ };
80
83
  }
81
84
 
82
85
  const theia = acquireVsCodeApi();
@@ -87,12 +87,12 @@ export class PluginSharedStyle {
87
87
  selector: string;
88
88
  body: (theme: Theme) => string
89
89
  }): void {
90
- const sheet = (<CSSStyleSheet>this.style.sheet);
90
+ const sheet = this.style.sheet as CSSStyleSheet;
91
91
  const cssBody = body(this.themeService.getCurrentTheme());
92
92
  sheet.insertRule(selector + ' {\n' + cssBody + '\n}', 0);
93
93
  }
94
94
  deleteRule(selector: string): void {
95
- const sheet = (<CSSStyleSheet>this.style.sheet);
95
+ const sheet = this.style.sheet as CSSStyleSheet;
96
96
  const rules = sheet.rules || sheet.cssRules || [];
97
97
  for (let i = rules.length - 1; i >= 0; i--) {
98
98
  const rule = rules[i];
@@ -17,6 +17,9 @@
17
17
  import { expect } from 'chai';
18
18
  import { ScmService } from '@theia/scm/lib/browser/scm-service';
19
19
  import { ScmMainImpl } from './scm-main';
20
+ import { ScmRawResource } from '../../common/plugin-api-rpc';
21
+ import URI from '@theia/core/lib/common/uri';
22
+ import { URI as vscodeURI } from '@theia/core/shared/vscode-uri';
20
23
 
21
24
  interface ScmMainInternals {
22
25
  repositories: Map<number, unknown>;
@@ -53,6 +56,35 @@ describe('ScmMainImpl - cascade dispose of children on $unregisterSourceControl'
53
56
  impl = createScmMainImpl(scmService);
54
57
  });
55
58
 
59
+ it('revives multi-diff URI components and preserves absent added/deleted sides', async () => {
60
+ await impl.$registerSourceControl(1, 'git', 'Main', undefined);
61
+ impl.$registerGroups(1, [{ handle: 2, id: 'changes', label: 'Changes', features: { hideWhenEmpty: undefined, contextValue: undefined } }], []);
62
+ const sourceUri = vscodeURI.file('/repo/file.txt').toJSON();
63
+ const originalUri = vscodeURI.parse('git:/repo/file.txt?ref=HEAD#original').toJSON();
64
+ const modifiedUri = vscodeURI.parse('file:///repo/file.txt?working=true#modified').toJSON();
65
+ const raw: ScmRawResource = {
66
+ handle: 3, sourceUri, icons: [], tooltip: '', strikeThrough: false, faded: false, contextValue: '', command: undefined
67
+ };
68
+ impl.$spliceResourceStates(1, [{
69
+ handle: 2, splices: [{
70
+ start: 0, deleteCount: 0, rawResources: [
71
+ { ...raw, multiDiffEditorOriginalUri: originalUri },
72
+ { ...raw, handle: 4, multiDiffEditorModifiedUri: modifiedUri },
73
+ { ...raw, handle: 5 }
74
+ ]
75
+ }]
76
+ }]);
77
+ const resources = scmService.repositories[0].provider.groups[0].resources;
78
+ expect(resources[0].multiDiffEditorOriginalUri).to.be.instanceOf(URI);
79
+ expect(resources[0].multiDiffEditorOriginalUri?.toString()).to.equal(vscodeURI.revive(originalUri).toString());
80
+ expect(resources[0].multiDiffEditorModifiedUri).to.equal(undefined);
81
+ expect(resources[1].multiDiffEditorOriginalUri).to.equal(undefined);
82
+ expect(resources[1].multiDiffEditorModifiedUri).to.be.instanceOf(URI);
83
+ expect(resources[1].multiDiffEditorModifiedUri?.toString()).to.equal(vscodeURI.revive(modifiedUri).toString());
84
+ expect(resources[2].multiDiffEditorOriginalUri).to.equal(undefined);
85
+ expect(resources[2].multiDiffEditorModifiedUri).to.equal(undefined);
86
+ });
87
+
56
88
  it('should unregister worktree children when their parent is unregistered', async () => {
57
89
  // Parent
58
90
  await impl.$registerSourceControl(1, 'git', 'Main', { scheme: 'file', path: '/repo', authority: '', query: '', fragment: '' });
@@ -106,7 +106,9 @@ export class PluginScmResource implements ScmResource {
106
106
  readonly group: PluginScmResourceGroup,
107
107
  readonly decorations: ScmResourceDecorations,
108
108
  readonly contextValue: string | undefined,
109
- readonly command: ScmCommand | undefined
109
+ readonly command: ScmCommand | undefined,
110
+ readonly multiDiffEditorOriginalUri?: URI,
111
+ readonly multiDiffEditorModifiedUri?: URI
110
112
  ) { }
111
113
 
112
114
  open(): Promise<void> {
@@ -487,7 +489,9 @@ export class PluginScmProvider implements ScmProvider {
487
489
  group,
488
490
  decorations,
489
491
  contextValue || undefined,
490
- command
492
+ command,
493
+ rawResource.multiDiffEditorOriginalUri ? new URI(vscodeURI.revive(rawResource.multiDiffEditorOriginalUri)) : undefined,
494
+ rawResource.multiDiffEditorModifiedUri ? new URI(vscodeURI.revive(rawResource.multiDiffEditorModifiedUri)) : undefined
491
495
  );
492
496
  });
493
497