@theia/plugin-ext 1.53.2 → 1.55.0-next.14

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 (310) hide show
  1. package/lib/common/plugin-api-rpc-model.d.ts +10 -1
  2. package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
  3. package/lib/common/plugin-api-rpc-model.js.map +1 -1
  4. package/lib/common/plugin-api-rpc.d.ts +7 -6
  5. package/lib/common/plugin-api-rpc.d.ts.map +1 -1
  6. package/lib/common/plugin-api-rpc.js.map +1 -1
  7. package/lib/common/test-types.d.ts +11 -1
  8. package/lib/common/test-types.d.ts.map +1 -1
  9. package/lib/common/test-types.js +9 -1
  10. package/lib/common/test-types.js.map +1 -1
  11. package/lib/main/browser/authentication-main.d.ts +6 -6
  12. package/lib/main/browser/authentication-main.d.ts.map +1 -1
  13. package/lib/main/browser/authentication-main.js +15 -9
  14. package/lib/main/browser/authentication-main.js.map +1 -1
  15. package/lib/main/browser/command-registry-main.d.ts +0 -1
  16. package/lib/main/browser/command-registry-main.d.ts.map +1 -1
  17. package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +5 -3
  18. package/lib/main/browser/custom-editors/custom-editor-opener.d.ts.map +1 -1
  19. package/lib/main/browser/custom-editors/custom-editor-opener.js +16 -3
  20. package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
  21. package/lib/main/browser/custom-editors/custom-editors-main.d.ts +0 -1
  22. package/lib/main/browser/custom-editors/custom-editors-main.d.ts.map +1 -1
  23. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts +2 -1
  24. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts.map +1 -1
  25. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +6 -2
  26. package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js.map +1 -1
  27. package/lib/main/browser/debug/plugin-debug-service.d.ts +0 -1
  28. package/lib/main/browser/debug/plugin-debug-service.d.ts.map +1 -1
  29. package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
  30. package/lib/main/browser/editors-and-documents-main.js +17 -2
  31. package/lib/main/browser/editors-and-documents-main.js.map +1 -1
  32. package/lib/main/browser/languages-main.d.ts +0 -1
  33. package/lib/main/browser/languages-main.d.ts.map +1 -1
  34. package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts.map +1 -1
  35. package/lib/main/browser/menus/plugin-menu-command-adapter.js +2 -2
  36. package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
  37. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts.map +1 -1
  38. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js +10 -7
  39. package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js.map +1 -1
  40. package/lib/main/browser/notebooks/notebooks-main.d.ts +0 -1
  41. package/lib/main/browser/notebooks/notebooks-main.d.ts.map +1 -1
  42. package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +22 -12
  43. package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
  44. package/lib/main/browser/notebooks/renderers/cell-output-webview.js +145 -74
  45. package/lib/main/browser/notebooks/renderers/cell-output-webview.js.map +1 -1
  46. package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
  47. package/lib/main/browser/notebooks/renderers/output-webview-internal.js +198 -69
  48. package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
  49. package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +56 -6
  50. package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.map +1 -1
  51. package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
  52. package/lib/main/browser/plugin-ext-frontend-module.js +2 -1
  53. package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
  54. package/lib/main/browser/quick-open-main.d.ts +0 -1
  55. package/lib/main/browser/quick-open-main.d.ts.map +1 -1
  56. package/lib/main/browser/tabs/tabs-main.d.ts +1 -1
  57. package/lib/main/browser/tabs/tabs-main.d.ts.map +1 -1
  58. package/lib/main/browser/tabs/tabs-main.js +1 -1
  59. package/lib/main/browser/tabs/tabs-main.js.map +1 -1
  60. package/lib/main/browser/terminal-main.d.ts +0 -1
  61. package/lib/main/browser/terminal-main.d.ts.map +1 -1
  62. package/lib/main/browser/test-main.d.ts.map +1 -1
  63. package/lib/main/browser/test-main.js.map +1 -1
  64. package/lib/main/browser/text-editor-main.d.ts +6 -3
  65. package/lib/main/browser/text-editor-main.d.ts.map +1 -1
  66. package/lib/main/browser/text-editor-main.js +39 -5
  67. package/lib/main/browser/text-editor-main.js.map +1 -1
  68. package/lib/main/browser/view/tree-view-decorator-service.d.ts +0 -1
  69. package/lib/main/browser/view/tree-view-decorator-service.d.ts.map +1 -1
  70. package/lib/main/browser/view/tree-view-widget.d.ts +0 -1
  71. package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
  72. package/lib/main/browser/view/tree-views-main.d.ts +0 -1
  73. package/lib/main/browser/view/tree-views-main.d.ts.map +1 -1
  74. package/lib/main/browser/webview/webview.d.ts +0 -1
  75. package/lib/main/browser/webview/webview.d.ts.map +1 -1
  76. package/lib/main/browser/webview-views/webview-views-main.d.ts +0 -1
  77. package/lib/main/browser/webview-views/webview-views-main.d.ts.map +1 -1
  78. package/lib/main/browser/webviews-main.d.ts +0 -1
  79. package/lib/main/browser/webviews-main.d.ts.map +1 -1
  80. package/lib/main/browser/workspace-main.d.ts +0 -1
  81. package/lib/main/browser/workspace-main.d.ts.map +1 -1
  82. package/lib/plugin/authentication-ext.d.ts +3 -3
  83. package/lib/plugin/authentication-ext.d.ts.map +1 -1
  84. package/lib/plugin/authentication-ext.js +8 -5
  85. package/lib/plugin/authentication-ext.js.map +1 -1
  86. package/lib/plugin/clipboard-ext.d.ts +0 -1
  87. package/lib/plugin/clipboard-ext.d.ts.map +1 -1
  88. package/lib/plugin/command-registry.d.ts +0 -1
  89. package/lib/plugin/command-registry.d.ts.map +1 -1
  90. package/lib/plugin/comments.d.ts +0 -1
  91. package/lib/plugin/comments.d.ts.map +1 -1
  92. package/lib/plugin/custom-editors.d.ts +0 -1
  93. package/lib/plugin/custom-editors.d.ts.map +1 -1
  94. package/lib/plugin/debug/debug-ext.d.ts +0 -1
  95. package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
  96. package/lib/plugin/debug/plugin-debug-adapter-creator.d.ts +0 -1
  97. package/lib/plugin/debug/plugin-debug-adapter-creator.d.ts.map +1 -1
  98. package/lib/plugin/debug/plugin-debug-adapter-session.d.ts +0 -1
  99. package/lib/plugin/debug/plugin-debug-adapter-session.d.ts.map +1 -1
  100. package/lib/plugin/debug/plugin-debug-adapter-tracker.d.ts +0 -1
  101. package/lib/plugin/debug/plugin-debug-adapter-tracker.d.ts.map +1 -1
  102. package/lib/plugin/decorations.d.ts +0 -1
  103. package/lib/plugin/decorations.d.ts.map +1 -1
  104. package/lib/plugin/dialogs.d.ts +0 -1
  105. package/lib/plugin/dialogs.d.ts.map +1 -1
  106. package/lib/plugin/document-data.d.ts +0 -1
  107. package/lib/plugin/document-data.d.ts.map +1 -1
  108. package/lib/plugin/documents.d.ts +0 -1
  109. package/lib/plugin/documents.d.ts.map +1 -1
  110. package/lib/plugin/env.d.ts +0 -1
  111. package/lib/plugin/env.d.ts.map +1 -1
  112. package/lib/plugin/file-system-event-service-ext-impl.d.ts +0 -1
  113. package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
  114. package/lib/plugin/file-system-ext-impl.d.ts +27 -4
  115. package/lib/plugin/file-system-ext-impl.d.ts.map +1 -1
  116. package/lib/plugin/file-system-ext-impl.js +4 -2
  117. package/lib/plugin/file-system-ext-impl.js.map +1 -1
  118. package/lib/plugin/label-service.d.ts +0 -1
  119. package/lib/plugin/label-service.d.ts.map +1 -1
  120. package/lib/plugin/languages/call-hierarchy.d.ts +0 -1
  121. package/lib/plugin/languages/call-hierarchy.d.ts.map +1 -1
  122. package/lib/plugin/languages/code-action.d.ts +0 -1
  123. package/lib/plugin/languages/code-action.d.ts.map +1 -1
  124. package/lib/plugin/languages/color.d.ts +0 -1
  125. package/lib/plugin/languages/color.d.ts.map +1 -1
  126. package/lib/plugin/languages/completion.d.ts +0 -1
  127. package/lib/plugin/languages/completion.d.ts.map +1 -1
  128. package/lib/plugin/languages/declaration.d.ts +0 -1
  129. package/lib/plugin/languages/declaration.d.ts.map +1 -1
  130. package/lib/plugin/languages/definition.d.ts +0 -1
  131. package/lib/plugin/languages/definition.d.ts.map +1 -1
  132. package/lib/plugin/languages/diagnostics.d.ts +0 -1
  133. package/lib/plugin/languages/diagnostics.d.ts.map +1 -1
  134. package/lib/plugin/languages/document-drop-edit.d.ts +0 -1
  135. package/lib/plugin/languages/document-drop-edit.d.ts.map +1 -1
  136. package/lib/plugin/languages/document-formatting.d.ts +0 -1
  137. package/lib/plugin/languages/document-formatting.d.ts.map +1 -1
  138. package/lib/plugin/languages/document-highlight.d.ts +0 -1
  139. package/lib/plugin/languages/document-highlight.d.ts.map +1 -1
  140. package/lib/plugin/languages/evaluatable-expression.d.ts +0 -1
  141. package/lib/plugin/languages/evaluatable-expression.d.ts.map +1 -1
  142. package/lib/plugin/languages/folding.d.ts +0 -1
  143. package/lib/plugin/languages/folding.d.ts.map +1 -1
  144. package/lib/plugin/languages/hover.d.ts +0 -1
  145. package/lib/plugin/languages/hover.d.ts.map +1 -1
  146. package/lib/plugin/languages/implementation.d.ts +0 -1
  147. package/lib/plugin/languages/implementation.d.ts.map +1 -1
  148. package/lib/plugin/languages/inlay-hints.d.ts +0 -1
  149. package/lib/plugin/languages/inlay-hints.d.ts.map +1 -1
  150. package/lib/plugin/languages/inline-completion.d.ts +0 -1
  151. package/lib/plugin/languages/inline-completion.d.ts.map +1 -1
  152. package/lib/plugin/languages/inline-values.d.ts +0 -1
  153. package/lib/plugin/languages/inline-values.d.ts.map +1 -1
  154. package/lib/plugin/languages/lens.d.ts +0 -1
  155. package/lib/plugin/languages/lens.d.ts.map +1 -1
  156. package/lib/plugin/languages/link-provider.d.ts +0 -1
  157. package/lib/plugin/languages/link-provider.d.ts.map +1 -1
  158. package/lib/plugin/languages/linked-editing-range.d.ts +0 -1
  159. package/lib/plugin/languages/linked-editing-range.d.ts.map +1 -1
  160. package/lib/plugin/languages/on-type-formatting.d.ts +0 -1
  161. package/lib/plugin/languages/on-type-formatting.d.ts.map +1 -1
  162. package/lib/plugin/languages/outline.d.ts +0 -1
  163. package/lib/plugin/languages/outline.d.ts.map +1 -1
  164. package/lib/plugin/languages/range-formatting.d.ts +0 -1
  165. package/lib/plugin/languages/range-formatting.d.ts.map +1 -1
  166. package/lib/plugin/languages/reference.d.ts +0 -1
  167. package/lib/plugin/languages/reference.d.ts.map +1 -1
  168. package/lib/plugin/languages/rename.d.ts +0 -1
  169. package/lib/plugin/languages/rename.d.ts.map +1 -1
  170. package/lib/plugin/languages/selection-range.d.ts +0 -1
  171. package/lib/plugin/languages/selection-range.d.ts.map +1 -1
  172. package/lib/plugin/languages/semantic-highlighting.d.ts +0 -1
  173. package/lib/plugin/languages/semantic-highlighting.d.ts.map +1 -1
  174. package/lib/plugin/languages/signature.d.ts +0 -1
  175. package/lib/plugin/languages/signature.d.ts.map +1 -1
  176. package/lib/plugin/languages/type-definition.d.ts +0 -1
  177. package/lib/plugin/languages/type-definition.d.ts.map +1 -1
  178. package/lib/plugin/languages/type-hierarchy.d.ts +0 -1
  179. package/lib/plugin/languages/type-hierarchy.d.ts.map +1 -1
  180. package/lib/plugin/languages/util.d.ts +0 -1
  181. package/lib/plugin/languages/util.d.ts.map +1 -1
  182. package/lib/plugin/languages/workspace-symbol.d.ts +0 -1
  183. package/lib/plugin/languages/workspace-symbol.d.ts.map +1 -1
  184. package/lib/plugin/languages-utils.d.ts +0 -1
  185. package/lib/plugin/languages-utils.d.ts.map +1 -1
  186. package/lib/plugin/languages.d.ts +0 -1
  187. package/lib/plugin/languages.d.ts.map +1 -1
  188. package/lib/plugin/markdown-string.d.ts +0 -1
  189. package/lib/plugin/markdown-string.d.ts.map +1 -1
  190. package/lib/plugin/message-registry.d.ts +0 -1
  191. package/lib/plugin/message-registry.d.ts.map +1 -1
  192. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.d.ts +0 -1
  193. package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.d.ts.map +1 -1
  194. package/lib/plugin/notebook/notebook-document.d.ts +0 -1
  195. package/lib/plugin/notebook/notebook-document.d.ts.map +1 -1
  196. package/lib/plugin/notebook/notebook-documents.d.ts +0 -1
  197. package/lib/plugin/notebook/notebook-documents.d.ts.map +1 -1
  198. package/lib/plugin/notebook/notebook-editor.d.ts +0 -1
  199. package/lib/plugin/notebook/notebook-editor.d.ts.map +1 -1
  200. package/lib/plugin/notebook/notebook-editors.d.ts +0 -1
  201. package/lib/plugin/notebook/notebook-editors.d.ts.map +1 -1
  202. package/lib/plugin/notebook/notebook-kernels.d.ts +0 -1
  203. package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
  204. package/lib/plugin/notebook/notebook-renderers.d.ts +0 -1
  205. package/lib/plugin/notebook/notebook-renderers.d.ts.map +1 -1
  206. package/lib/plugin/notebook/notebooks.d.ts +1 -1
  207. package/lib/plugin/notebook/notebooks.d.ts.map +1 -1
  208. package/lib/plugin/notebook/notebooks.js +23 -3
  209. package/lib/plugin/notebook/notebooks.js.map +1 -1
  210. package/lib/plugin/notification.d.ts +0 -1
  211. package/lib/plugin/notification.d.ts.map +1 -1
  212. package/lib/plugin/output-channel/log-output-channel.d.ts +0 -1
  213. package/lib/plugin/output-channel/log-output-channel.d.ts.map +1 -1
  214. package/lib/plugin/output-channel/output-channel-item.d.ts +0 -1
  215. package/lib/plugin/output-channel/output-channel-item.d.ts.map +1 -1
  216. package/lib/plugin/output-channel-registry.d.ts +0 -1
  217. package/lib/plugin/output-channel-registry.d.ts.map +1 -1
  218. package/lib/plugin/plugin-context.d.ts +1 -1
  219. package/lib/plugin/plugin-context.d.ts.map +1 -1
  220. package/lib/plugin/plugin-context.js +37 -15
  221. package/lib/plugin/plugin-context.js.map +1 -1
  222. package/lib/plugin/plugin-manager.d.ts +0 -1
  223. package/lib/plugin/plugin-manager.d.ts.map +1 -1
  224. package/lib/plugin/plugin-storage.d.ts +0 -1
  225. package/lib/plugin/plugin-storage.d.ts.map +1 -1
  226. package/lib/plugin/preference-registry.d.ts +0 -1
  227. package/lib/plugin/preference-registry.d.ts.map +1 -1
  228. package/lib/plugin/quick-open.d.ts +0 -1
  229. package/lib/plugin/quick-open.d.ts.map +1 -1
  230. package/lib/plugin/scm.d.ts +1 -1
  231. package/lib/plugin/scm.d.ts.map +1 -1
  232. package/lib/plugin/scm.js +3 -3
  233. package/lib/plugin/scm.js.map +1 -1
  234. package/lib/plugin/secrets-ext.d.ts +0 -1
  235. package/lib/plugin/secrets-ext.d.ts.map +1 -1
  236. package/lib/plugin/status-bar/status-bar-item.d.ts +0 -1
  237. package/lib/plugin/status-bar/status-bar-item.d.ts.map +1 -1
  238. package/lib/plugin/status-bar-message-registry.d.ts +0 -1
  239. package/lib/plugin/status-bar-message-registry.d.ts.map +1 -1
  240. package/lib/plugin/tabs.d.ts +0 -1
  241. package/lib/plugin/tabs.d.ts.map +1 -1
  242. package/lib/plugin/tasks/task-provider.d.ts +0 -1
  243. package/lib/plugin/tasks/task-provider.d.ts.map +1 -1
  244. package/lib/plugin/tasks/tasks.d.ts +0 -1
  245. package/lib/plugin/tasks/tasks.d.ts.map +1 -1
  246. package/lib/plugin/terminal-ext.d.ts +1 -1
  247. package/lib/plugin/terminal-ext.d.ts.map +1 -1
  248. package/lib/plugin/terminal-ext.js +1 -0
  249. package/lib/plugin/terminal-ext.js.map +1 -1
  250. package/lib/plugin/test-item.d.ts +0 -1
  251. package/lib/plugin/test-item.d.ts.map +1 -1
  252. package/lib/plugin/tests.d.ts +8 -2
  253. package/lib/plugin/tests.d.ts.map +1 -1
  254. package/lib/plugin/tests.js +24 -1
  255. package/lib/plugin/tests.js.map +1 -1
  256. package/lib/plugin/text-editor.d.ts +1 -2
  257. package/lib/plugin/text-editor.d.ts.map +1 -1
  258. package/lib/plugin/text-editor.js.map +1 -1
  259. package/lib/plugin/text-editors.d.ts +0 -1
  260. package/lib/plugin/text-editors.d.ts.map +1 -1
  261. package/lib/plugin/timeline.d.ts +0 -1
  262. package/lib/plugin/timeline.d.ts.map +1 -1
  263. package/lib/plugin/tree/tree-views.d.ts +0 -1
  264. package/lib/plugin/tree/tree-views.d.ts.map +1 -1
  265. package/lib/plugin/type-converters.d.ts +13 -2
  266. package/lib/plugin/type-converters.d.ts.map +1 -1
  267. package/lib/plugin/type-converters.js +55 -5
  268. package/lib/plugin/type-converters.js.map +1 -1
  269. package/lib/plugin/types-impl.d.ts +7 -1
  270. package/lib/plugin/types-impl.d.ts.map +1 -1
  271. package/lib/plugin/types-impl.js +9 -1
  272. package/lib/plugin/types-impl.js.map +1 -1
  273. package/lib/plugin/uri-ext.d.ts +0 -1
  274. package/lib/plugin/uri-ext.d.ts.map +1 -1
  275. package/lib/plugin/webview-views.d.ts +0 -1
  276. package/lib/plugin/webview-views.d.ts.map +1 -1
  277. package/lib/plugin/webviews.d.ts +0 -1
  278. package/lib/plugin/webviews.d.ts.map +1 -1
  279. package/lib/plugin/window-state.d.ts +0 -1
  280. package/lib/plugin/window-state.d.ts.map +1 -1
  281. package/lib/plugin/workspace.d.ts +0 -1
  282. package/lib/plugin/workspace.d.ts.map +1 -1
  283. package/package.json +29 -29
  284. package/src/common/plugin-api-rpc-model.ts +11 -0
  285. package/src/common/plugin-api-rpc.ts +7 -5
  286. package/src/common/test-types.ts +15 -1
  287. package/src/main/browser/authentication-main.ts +24 -11
  288. package/src/main/browser/custom-editors/custom-editor-opener.tsx +19 -4
  289. package/src/main/browser/custom-editors/plugin-custom-editor-registry.ts +7 -3
  290. package/src/main/browser/editors-and-documents-main.ts +27 -2
  291. package/src/main/browser/menus/plugin-menu-command-adapter.ts +2 -2
  292. package/src/main/browser/notebooks/notebook-documents-and-editors-main.ts +13 -9
  293. package/src/main/browser/notebooks/notebook-kernels-main.ts +2 -2
  294. package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +170 -74
  295. package/src/main/browser/notebooks/renderers/output-webview-internal.ts +237 -73
  296. package/src/main/browser/notebooks/renderers/webview-communication.ts +78 -7
  297. package/src/main/browser/plugin-ext-frontend-module.ts +6 -5
  298. package/src/main/browser/tabs/tabs-main.ts +6 -2
  299. package/src/main/browser/test-main.ts +4 -1
  300. package/src/main/browser/text-editor-main.ts +55 -14
  301. package/src/plugin/authentication-ext.ts +9 -5
  302. package/src/plugin/file-system-ext-impl.ts +7 -3
  303. package/src/plugin/notebook/notebooks.ts +22 -1
  304. package/src/plugin/plugin-context.ts +40 -15
  305. package/src/plugin/scm.ts +5 -4
  306. package/src/plugin/terminal-ext.ts +1 -0
  307. package/src/plugin/tests.ts +34 -3
  308. package/src/plugin/text-editor.ts +1 -1
  309. package/src/plugin/type-converters.ts +58 -6
  310. package/src/plugin/types-impl.ts +10 -1
package/package.json CHANGED
@@ -1,37 +1,37 @@
1
1
  {
2
2
  "name": "@theia/plugin-ext",
3
- "version": "1.53.2",
3
+ "version": "1.55.0-next.14+d999fe031",
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/bulk-edit": "1.53.2",
9
- "@theia/callhierarchy": "1.53.2",
10
- "@theia/console": "1.53.2",
11
- "@theia/core": "1.53.2",
12
- "@theia/debug": "1.53.2",
13
- "@theia/editor": "1.53.2",
14
- "@theia/editor-preview": "1.53.2",
15
- "@theia/file-search": "1.53.2",
16
- "@theia/filesystem": "1.53.2",
17
- "@theia/markers": "1.53.2",
18
- "@theia/messages": "1.53.2",
19
- "@theia/monaco": "1.53.2",
8
+ "@theia/bulk-edit": "1.55.0-next.14+d999fe031",
9
+ "@theia/callhierarchy": "1.55.0-next.14+d999fe031",
10
+ "@theia/console": "1.55.0-next.14+d999fe031",
11
+ "@theia/core": "1.55.0-next.14+d999fe031",
12
+ "@theia/debug": "1.55.0-next.14+d999fe031",
13
+ "@theia/editor": "1.55.0-next.14+d999fe031",
14
+ "@theia/editor-preview": "1.55.0-next.14+d999fe031",
15
+ "@theia/file-search": "1.55.0-next.14+d999fe031",
16
+ "@theia/filesystem": "1.55.0-next.14+d999fe031",
17
+ "@theia/markers": "1.55.0-next.14+d999fe031",
18
+ "@theia/messages": "1.55.0-next.14+d999fe031",
19
+ "@theia/monaco": "1.55.0-next.14+d999fe031",
20
20
  "@theia/monaco-editor-core": "1.83.101",
21
- "@theia/navigator": "1.53.2",
22
- "@theia/notebook": "1.53.2",
23
- "@theia/output": "1.53.2",
24
- "@theia/plugin": "1.53.2",
25
- "@theia/preferences": "1.53.2",
26
- "@theia/scm": "1.53.2",
27
- "@theia/search-in-workspace": "1.53.2",
28
- "@theia/task": "1.53.2",
29
- "@theia/terminal": "1.53.2",
30
- "@theia/test": "1.53.2",
31
- "@theia/timeline": "1.53.2",
32
- "@theia/typehierarchy": "1.53.2",
33
- "@theia/variable-resolver": "1.53.2",
34
- "@theia/workspace": "1.53.2",
21
+ "@theia/navigator": "1.55.0-next.14+d999fe031",
22
+ "@theia/notebook": "1.55.0-next.14+d999fe031",
23
+ "@theia/output": "1.55.0-next.14+d999fe031",
24
+ "@theia/plugin": "1.55.0-next.14+d999fe031",
25
+ "@theia/preferences": "1.55.0-next.14+d999fe031",
26
+ "@theia/scm": "1.55.0-next.14+d999fe031",
27
+ "@theia/search-in-workspace": "1.55.0-next.14+d999fe031",
28
+ "@theia/task": "1.55.0-next.14+d999fe031",
29
+ "@theia/terminal": "1.55.0-next.14+d999fe031",
30
+ "@theia/test": "1.55.0-next.14+d999fe031",
31
+ "@theia/timeline": "1.55.0-next.14+d999fe031",
32
+ "@theia/typehierarchy": "1.55.0-next.14+d999fe031",
33
+ "@theia/variable-resolver": "1.55.0-next.14+d999fe031",
34
+ "@theia/workspace": "1.55.0-next.14+d999fe031",
35
35
  "@types/mime": "^2.0.1",
36
36
  "@vscode/debugprotocol": "^1.51.0",
37
37
  "@vscode/proxy-agent": "^0.13.2",
@@ -88,7 +88,7 @@
88
88
  "watch": "theiaext watch"
89
89
  },
90
90
  "devDependencies": {
91
- "@theia/ext-scripts": "1.53.2",
91
+ "@theia/ext-scripts": "1.54.0",
92
92
  "@types/decompress": "^4.2.2",
93
93
  "@types/escape-html": "^0.0.20",
94
94
  "@types/lodash.clonedeep": "^4.5.3",
@@ -97,5 +97,5 @@
97
97
  "nyc": {
98
98
  "extends": "../../configs/nyc.json"
99
99
  },
100
- "gitHead": "4f6f158bd27c5dd608dddc036910698a51d8c953"
100
+ "gitHead": "d999fe0315a29bc5b154067621dbc1eb180fa567"
101
101
  }
@@ -72,6 +72,17 @@ export interface Range {
72
72
  readonly endColumn: number;
73
73
  }
74
74
 
75
+ export interface Position {
76
+ /**
77
+ * line number (starts at 1)
78
+ */
79
+ readonly lineNumber: number,
80
+ /**
81
+ * column (starts at 1)
82
+ */
83
+ readonly column: number
84
+ }
85
+
75
86
  export { MarkdownStringDTO as MarkdownString };
76
87
 
77
88
  export interface SerializedDocumentFilter {
@@ -805,9 +805,9 @@ export interface RegisterTreeDataProviderOptions {
805
805
  }
806
806
 
807
807
  export interface TreeViewRevealOptions {
808
- select: boolean
809
- focus: boolean
810
- expand: boolean | number
808
+ readonly select: boolean
809
+ readonly focus: boolean
810
+ readonly expand: boolean | number
811
811
  }
812
812
 
813
813
  export interface TreeViewsMain {
@@ -2398,13 +2398,14 @@ export interface TasksMain {
2398
2398
  }
2399
2399
 
2400
2400
  export interface AuthenticationExt {
2401
- $getSessions(id: string, scopes?: string[]): Promise<ReadonlyArray<theia.AuthenticationSession>>;
2402
- $createSession(id: string, scopes: string[]): Promise<theia.AuthenticationSession>;
2401
+ $getSessions(providerId: string, scopes: string[] | undefined, options: theia.AuthenticationProviderSessionOptions): Promise<ReadonlyArray<theia.AuthenticationSession>>;
2402
+ $createSession(id: string, scopes: string[], options: theia.AuthenticationProviderSessionOptions): Promise<theia.AuthenticationSession>;
2403
2403
  $removeSession(id: string, sessionId: string): Promise<void>;
2404
2404
  $onDidChangeAuthenticationSessions(provider: theia.AuthenticationProviderInformation): Promise<void>;
2405
2405
  }
2406
2406
 
2407
2407
  export interface AuthenticationMain {
2408
+ $getAccounts(providerId: string): Thenable<readonly theia.AuthenticationSessionAccountInformation[]>;
2408
2409
  $registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean): void;
2409
2410
  $unregisterAuthenticationProvider(id: string): void;
2410
2411
  $onDidChangeSessions(providerId: string, event: AuthenticationProviderAuthenticationSessionsChangeEvent): void;
@@ -2672,6 +2673,7 @@ export interface NotebookDocumentsExt {
2672
2673
 
2673
2674
  export interface NotebookDocumentsAndEditorsExt {
2674
2675
  $acceptDocumentsAndEditorsDelta(delta: NotebookDocumentsAndEditorsDelta): Promise<void>;
2676
+ $acceptActiveCellEditorChange(newActiveEditor: string | null): void;
2675
2677
  }
2676
2678
 
2677
2679
  export interface NotebookDocumentsAndEditorsMain extends Disposable {
@@ -27,6 +27,7 @@ import { MarkdownString } from '@theia/core/lib/common/markdown-rendering';
27
27
  import { UriComponents } from './uri-components';
28
28
  import { Location, Range } from './plugin-api-rpc-model';
29
29
  import { isObject } from '@theia/core';
30
+ import * as languageProtocol from '@theia/core/shared/vscode-languageserver-protocol';
30
31
 
31
32
  export enum TestRunProfileKind {
32
33
  Run = 1,
@@ -74,17 +75,30 @@ export interface TestFailureDTO extends TestStateChangeDTO {
74
75
  readonly duration?: number;
75
76
  }
76
77
 
78
+ export namespace TestFailureDTO {
79
+ export function is(ref: unknown): ref is TestFailureDTO {
80
+ return isObject<TestFailureDTO>(ref)
81
+ && (ref.state === TestExecutionState.Failed || ref.state === TestExecutionState.Errored);
82
+ }
83
+ }
77
84
  export interface TestSuccessDTO extends TestStateChangeDTO {
78
85
  readonly state: TestExecutionState.Passed;
79
86
  readonly duration?: number;
80
87
  }
81
88
 
89
+ export interface TestMessageStackFrameDTO {
90
+ uri?: languageProtocol.DocumentUri;
91
+ position?: languageProtocol.Position;
92
+ label: string;
93
+ }
94
+
82
95
  export interface TestMessageDTO {
83
96
  readonly expected?: string;
84
97
  readonly actual?: string;
85
- readonly location?: Location;
98
+ readonly location?: languageProtocol.Location;
86
99
  readonly message: string | MarkdownString;
87
100
  readonly contextValue?: string;
101
+ readonly stackTrace?: TestMessageStackFrameDTO[];
88
102
  }
89
103
 
90
104
  export interface TestItemDTO {
@@ -27,7 +27,10 @@ import { MessageService } from '@theia/core/lib/common/message-service';
27
27
  import { ConfirmDialog, Dialog, StorageService } from '@theia/core/lib/browser';
28
28
  import {
29
29
  AuthenticationProvider,
30
+ AuthenticationProviderSessionOptions,
30
31
  AuthenticationService,
32
+ AuthenticationSession,
33
+ AuthenticationSessionAccountInformation,
31
34
  readAllowedExtensions
32
35
  } from '@theia/core/lib/browser/authentication-service';
33
36
  import { QuickPickService } from '@theia/core/lib/common/quick-pick-service';
@@ -77,9 +80,13 @@ export class AuthenticationMainImpl implements AuthenticationMain {
77
80
  return this.authenticationService.requestNewSession(providerId, scopes, extensionId, extensionName);
78
81
  }
79
82
 
83
+ $getAccounts(providerId: string): Thenable<readonly theia.AuthenticationSessionAccountInformation[]> {
84
+ return this.authenticationService.getSessions(providerId).then(sessions => sessions.map(session => session.account));
85
+ }
86
+
80
87
  async $getSession(providerId: string, scopes: string[], extensionId: string, extensionName: string,
81
88
  options: theia.AuthenticationGetSessionOptions): Promise<theia.AuthenticationSession | undefined> {
82
- const sessions = await this.authenticationService.getSessions(providerId, scopes);
89
+ const sessions = await this.authenticationService.getSessions(providerId, scopes, options?.account);
83
90
 
84
91
  // Error cases
85
92
  if (options.forceNewSession && !sessions.length) {
@@ -140,26 +147,32 @@ export class AuthenticationMainImpl implements AuthenticationMain {
140
147
  }
141
148
 
142
149
  protected async selectSession(providerId: string, providerName: string, extensionId: string, extensionName: string,
143
- potentialSessions: Readonly<theia.AuthenticationSession[]>, scopes: string[], clearSessionPreference: boolean): Promise<theia.AuthenticationSession> {
150
+ potentialSessions: Readonly<AuthenticationSession[]>, scopes: string[], clearSessionPreference: boolean): Promise<theia.AuthenticationSession> {
151
+
144
152
  if (!potentialSessions.length) {
145
153
  throw new Error('No potential sessions found');
146
154
  }
147
155
 
148
156
  return new Promise(async (resolve, reject) => {
149
- const items: QuickPickValue<{ session?: theia.AuthenticationSession }>[] = potentialSessions.map(session => ({
157
+ const items: QuickPickValue<{ session?: AuthenticationSession, account?: AuthenticationSessionAccountInformation }>[] = potentialSessions.map(session => ({
150
158
  label: session.account.label,
151
159
  value: { session }
152
160
  }));
153
161
  items.push({
154
162
  label: nls.localizeByDefault('Sign in to another account'),
155
- value: { session: undefined }
163
+ value: {}
156
164
  });
165
+
166
+ // VS Code has code here that pushes accounts that have no active sessions. However, since we do not store
167
+ // any accounts that don't have sessions, we dont' do this.
157
168
  const selected = await this.quickPickService.show(items,
158
169
  {
159
170
  title: nls.localizeByDefault("The extension '{0}' wants to access a {1} account", extensionName, providerName),
160
171
  ignoreFocusOut: true
161
172
  });
162
173
  if (selected) {
174
+
175
+ // if we ever have accounts without sessions, pass the account to the login call
163
176
  const session = selected.value?.session ?? await this.authenticationService.login(providerId, scopes);
164
177
  const accountName = session.account.label;
165
178
 
@@ -318,13 +331,13 @@ export class AuthenticationProviderImpl implements AuthenticationProvider {
318
331
  }
319
332
  }
320
333
 
321
- async getSessions(scopes?: string[]): Promise<ReadonlyArray<theia.AuthenticationSession>> {
322
- return this.proxy.$getSessions(this.id, scopes);
334
+ async getSessions(scopes?: string[], account?: AuthenticationSessionAccountInformation): Promise<ReadonlyArray<theia.AuthenticationSession>> {
335
+ return this.proxy.$getSessions(this.id, scopes, { account: account });
323
336
  }
324
337
 
325
338
  async updateSessionItems(event: theia.AuthenticationProviderAuthenticationSessionsChangeEvent): Promise<void> {
326
339
  const { added, removed } = event;
327
- const session = await this.proxy.$getSessions(this.id);
340
+ const session = await this.proxy.$getSessions(this.id, undefined, {});
328
341
  const addedSessions = added ? session.filter(s => added.some(addedSession => addedSession.id === s.id)) : [];
329
342
 
330
343
  removed?.forEach(removedSession => {
@@ -347,16 +360,16 @@ export class AuthenticationProviderImpl implements AuthenticationProvider {
347
360
  addedSessions.forEach(s => this.registerSession(s));
348
361
  }
349
362
 
350
- async login(scopes: string[]): Promise<theia.AuthenticationSession> {
351
- return this.createSession(scopes);
363
+ async login(scopes: string[], options: AuthenticationProviderSessionOptions): Promise<theia.AuthenticationSession> {
364
+ return this.createSession(scopes, options);
352
365
  }
353
366
 
354
367
  async logout(sessionId: string): Promise<void> {
355
368
  return this.removeSession(sessionId);
356
369
  }
357
370
 
358
- createSession(scopes: string[]): Thenable<theia.AuthenticationSession> {
359
- return this.proxy.$createSession(this.id, scopes);
371
+ createSession(scopes: string[], options: AuthenticationProviderSessionOptions): Thenable<theia.AuthenticationSession> {
372
+ return this.proxy.$createSession(this.id, scopes, options);
360
373
  }
361
374
 
362
375
  removeSession(sessionId: string): Thenable<void> {
@@ -15,7 +15,9 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import URI from '@theia/core/lib/common/uri';
18
- import { ApplicationShell, DiffUris, OpenHandler, SplitWidget, Widget, WidgetManager, WidgetOpenerOptions } from '@theia/core/lib/browser';
18
+ import {
19
+ ApplicationShell, DiffUris, OpenHandler, OpenerOptions, PreferenceService, SplitWidget, Widget, WidgetManager, WidgetOpenerOptions, getDefaultHandler, defaultHandlerPriority
20
+ } from '@theia/core/lib/browser';
19
21
  import { CustomEditor, CustomEditorPriority, CustomEditorSelector } from '../../../common';
20
22
  import { CustomEditorWidget } from './custom-editor-widget';
21
23
  import { PluginCustomEditorRegistry } from './plugin-custom-editor-registry';
@@ -35,7 +37,8 @@ export class CustomEditorOpener implements OpenHandler {
35
37
  private readonly editor: CustomEditor,
36
38
  protected readonly shell: ApplicationShell,
37
39
  protected readonly widgetManager: WidgetManager,
38
- protected readonly editorRegistry: PluginCustomEditorRegistry
40
+ protected readonly editorRegistry: PluginCustomEditorRegistry,
41
+ protected readonly preferenceService: PreferenceService
39
42
  ) {
40
43
  this.id = CustomEditorOpener.toCustomEditorId(this.editor.viewType);
41
44
  this.label = this.editor.displayName;
@@ -45,14 +48,26 @@ export class CustomEditorOpener implements OpenHandler {
45
48
  return `custom-editor-${editorViewType}`;
46
49
  }
47
50
 
48
- canHandle(uri: URI): number {
51
+ canHandle(uri: URI, options?: OpenerOptions): number {
52
+ let priority = 0;
49
53
  const { selector } = this.editor;
50
54
  if (DiffUris.isDiffUri(uri)) {
51
55
  const [left, right] = DiffUris.decode(uri);
52
56
  if (this.matches(selector, right) && this.matches(selector, left)) {
53
- return this.getPriority();
57
+ priority = this.getPriority();
54
58
  }
55
59
  } else if (this.matches(selector, uri)) {
60
+ if (getDefaultHandler(uri, this.preferenceService) === this.editor.viewType) {
61
+ priority = defaultHandlerPriority;
62
+ } else {
63
+ priority = this.getPriority();
64
+ }
65
+ }
66
+ return priority;
67
+ }
68
+
69
+ canOpenWith(uri: URI): number {
70
+ if (this.matches(this.editor.selector, uri)) {
56
71
  return this.getPriority();
57
72
  }
58
73
  return 0;
@@ -20,7 +20,7 @@ import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposa
20
20
  import { Deferred } from '@theia/core/lib/common/promise-util';
21
21
  import { CustomEditorOpener } from './custom-editor-opener';
22
22
  import { Emitter } from '@theia/core';
23
- import { ApplicationShell, DefaultOpenerService, OpenWithService, WidgetManager } from '@theia/core/lib/browser';
23
+ import { ApplicationShell, DefaultOpenerService, OpenWithService, PreferenceService, WidgetManager } from '@theia/core/lib/browser';
24
24
  import { CustomEditorWidget } from './custom-editor-widget';
25
25
 
26
26
  @injectable()
@@ -44,6 +44,9 @@ export class PluginCustomEditorRegistry {
44
44
  @inject(OpenWithService)
45
45
  protected readonly openWithService: OpenWithService;
46
46
 
47
+ @inject(PreferenceService)
48
+ protected readonly preferenceService: PreferenceService;
49
+
47
50
  @postConstruct()
48
51
  protected init(): void {
49
52
  this.widgetManager.onDidCreateWidget(({ factoryId, widget }) => {
@@ -76,7 +79,8 @@ export class PluginCustomEditorRegistry {
76
79
  editor,
77
80
  this.shell,
78
81
  this.widgetManager,
79
- this
82
+ this,
83
+ this.preferenceService
80
84
  );
81
85
  toDispose.push(this.defaultOpenerService.addHandler(editorOpenHandler));
82
86
  toDispose.push(
@@ -84,7 +88,7 @@ export class PluginCustomEditorRegistry {
84
88
  id: editor.viewType,
85
89
  label: editorOpenHandler.label,
86
90
  providerName: plugin.metadata.model.displayName,
87
- canHandle: uri => editorOpenHandler.canHandle(uri),
91
+ canHandle: uri => editorOpenHandler.canOpenWith(uri),
88
92
  open: uri => editorOpenHandler.open(uri)
89
93
  })
90
94
  );
@@ -34,6 +34,8 @@ import { DisposableCollection, Emitter, URI } from '@theia/core';
34
34
  import { EditorManager, EditorWidget } from '@theia/editor/lib/browser';
35
35
  import { SaveableService } from '@theia/core/lib/browser/saveable-service';
36
36
  import { TabsMainImpl } from './tabs/tabs-main';
37
+ import { NotebookCellEditorService, NotebookEditorWidgetService } from '@theia/notebook/lib/browser';
38
+ import { SimpleMonacoEditor } from '@theia/monaco/lib/browser/simple-monaco-editor';
37
39
 
38
40
  export class EditorsAndDocumentsMain implements Disposable {
39
41
 
@@ -67,7 +69,11 @@ export class EditorsAndDocumentsMain implements Disposable {
67
69
  this.modelService = container.get(EditorModelService);
68
70
  this.saveResourceService = container.get(SaveableService);
69
71
 
70
- this.stateComputer = new EditorAndDocumentStateComputer(d => this.onDelta(d), this.editorManager, this.modelService, tabsMain);
72
+ this.stateComputer = new EditorAndDocumentStateComputer(d => this.onDelta(d),
73
+ this.editorManager,
74
+ container.get(NotebookCellEditorService),
75
+ container.get(NotebookEditorWidgetService),
76
+ this.modelService, tabsMain);
71
77
  this.toDispose.push(this.stateComputer);
72
78
  this.toDispose.push(this.onTextEditorAddEmitter);
73
79
  this.toDispose.push(this.onTextEditorRemoveEmitter);
@@ -218,6 +224,8 @@ class EditorAndDocumentStateComputer implements Disposable {
218
224
  constructor(
219
225
  private callback: (delta: EditorAndDocumentStateDelta) => void,
220
226
  private readonly editorService: EditorManager,
227
+ private readonly cellEditorService: NotebookCellEditorService,
228
+ private readonly notebookWidgetService: NotebookEditorWidgetService,
221
229
  private readonly modelService: EditorModelService,
222
230
  private readonly tabsMain: TabsMainImpl
223
231
  ) { }
@@ -240,6 +248,16 @@ class EditorAndDocumentStateComputer implements Disposable {
240
248
  this.toDispose.push(this.modelService.onModelAdded(this.onModelAdded, this));
241
249
  this.toDispose.push(this.modelService.onModelRemoved(() => this.update()));
242
250
 
251
+ this.toDispose.push(this.cellEditorService.onDidChangeCellEditors(() => this.update()));
252
+
253
+ this.toDispose.push(this.notebookWidgetService.onDidChangeCurrentEditor(() => {
254
+ this.currentState = this.currentState && new EditorAndDocumentState(
255
+ this.currentState.documents,
256
+ this.currentState.editors,
257
+ undefined
258
+ );
259
+ }));
260
+
243
261
  for (const widget of this.editorService.all) {
244
262
  this.onTextEditorAdd(widget);
245
263
  }
@@ -318,6 +336,13 @@ class EditorAndDocumentStateComputer implements Disposable {
318
336
  }
319
337
  }
320
338
 
339
+ for (const editor of this.cellEditorService.allCellEditors) {
340
+ if (editor.getControl()?.getModel()) {
341
+ const editorSnapshot = new EditorSnapshot(editor);
342
+ editors.set(editorSnapshot.id, editorSnapshot);
343
+ }
344
+ };
345
+
321
346
  const newState = new EditorAndDocumentState(models, editors, activeId);
322
347
  const delta = EditorAndDocumentState.compute(this.currentState, newState);
323
348
  if (!delta.isEmpty) {
@@ -384,7 +409,7 @@ class EditorAndDocumentState {
384
409
 
385
410
  class EditorSnapshot {
386
411
  readonly id: string;
387
- constructor(readonly editor: MonacoEditor) {
412
+ constructor(readonly editor: MonacoEditor | SimpleMonacoEditor) {
388
413
  this.id = `${editor.getControl().getId()},${editor.getControl().getModel()!.id}`;
389
414
  }
390
415
  }
@@ -32,7 +32,6 @@ import { TreeViewWidget } from '../view/tree-view-widget';
32
32
  import { CodeEditorWidgetUtil, codeToTheiaMappings, ContributionPoint } from './vscode-theia-menu-mappings';
33
33
  import { TAB_BAR_TOOLBAR_CONTEXT_MENU } from '@theia/core/lib/browser/shell/tab-bar-toolbar';
34
34
  import { TestItem, TestMessage } from '@theia/test/lib/browser/test-service';
35
- import { fromLocation } from '../hierarchy/hierarchy-types-converters';
36
35
 
37
36
  export type ArgumentAdapter = (...args: unknown[]) => unknown[];
38
37
 
@@ -315,7 +314,8 @@ export class PluginMenuCommandAdapter implements MenuCommandAdapter {
315
314
  actual: testMessage.actual,
316
315
  expected: testMessage.expected,
317
316
  contextValue: testMessage.contextValue,
318
- location: testMessage.location ? fromLocation(testMessage.location) : undefined
317
+ location: testMessage.location,
318
+ stackTrace: testMessage.stackTrace
319
319
  };
320
320
  return [TestMessageArg.create(testItemReference, testMessageDTO)];
321
321
  }
@@ -21,7 +21,7 @@
21
21
  import { Disposable, DisposableCollection } from '@theia/core';
22
22
  import { interfaces } from '@theia/core/shared/inversify';
23
23
  import { UriComponents } from '@theia/core/lib/common/uri';
24
- import { NotebookEditorWidget, NotebookService, NotebookEditorWidgetService } from '@theia/notebook/lib/browser';
24
+ import { NotebookEditorWidget, NotebookService, NotebookEditorWidgetService, NotebookCellEditorService } from '@theia/notebook/lib/browser';
25
25
  import { NotebookModel } from '@theia/notebook/lib/browser/view-model/notebook-model';
26
26
  import { MAIN_RPC_CONTEXT, NotebookDocumentsAndEditorsDelta, NotebookDocumentsAndEditorsMain, NotebookEditorAddData, NotebookModelAddedData, NotebooksExt } from '../../../common';
27
27
  import { RPCProtocol } from '../../../common/rpc-protocol';
@@ -55,7 +55,6 @@ class NotebookAndEditorState {
55
55
  const documentDelta = diffSets(before.documents, after.documents);
56
56
  const editorDelta = diffMaps(before.textEditors, after.textEditors);
57
57
 
58
- const newActiveEditor = before.activeEditor !== after.activeEditor ? after.activeEditor : undefined;
59
58
  const visibleEditorDelta = diffMaps(before.visibleEditors, after.visibleEditors);
60
59
 
61
60
  return {
@@ -63,7 +62,7 @@ class NotebookAndEditorState {
63
62
  removedDocuments: documentDelta.removed.map(e => e.uri.toComponents()),
64
63
  addedEditors: editorDelta.added,
65
64
  removedEditors: editorDelta.removed.map(removed => removed.id),
66
- newActiveEditor: newActiveEditor,
65
+ newActiveEditor: after.activeEditor,
67
66
  visibleEditors: visibleEditorDelta.added.length === 0 && visibleEditorDelta.removed.length === 0
68
67
  ? undefined
69
68
  : [...after.visibleEditors].map(editor => editor[0])
@@ -105,13 +104,16 @@ export class NotebooksAndEditorsMain implements NotebookDocumentsAndEditorsMain
105
104
  this.notebookService = container.get(NotebookService);
106
105
  this.notebookEditorService = container.get(NotebookEditorWidgetService);
107
106
  this.WidgetManager = container.get(WidgetManager);
107
+ const notebookCellEditorService = container.get(NotebookCellEditorService);
108
+
109
+ notebookCellEditorService.onDidChangeFocusedCellEditor(editor => this.proxy.$acceptActiveCellEditorChange(editor?.uri.toString() ?? null), this, this.disposables);
108
110
 
109
111
  this.notebookService.onDidAddNotebookDocument(async () => this.updateState(), this, this.disposables);
110
112
  this.notebookService.onDidRemoveNotebookDocument(async () => this.updateState(), this, this.disposables);
111
113
  // this.WidgetManager.onActiveEditorChanged(() => this.updateState(), this, this.disposables);
112
114
  this.notebookEditorService.onDidAddNotebookEditor(async editor => this.handleEditorAdd(editor), this, this.disposables);
113
115
  this.notebookEditorService.onDidRemoveNotebookEditor(async editor => this.handleEditorRemove(editor), this, this.disposables);
114
- this.notebookEditorService.onDidChangeFocusedEditor(async editor => this.updateState(editor), this, this.disposables);
116
+ this.notebookEditorService.onDidChangeCurrentEditor(async editor => this.updateState(editor), this, this.disposables);
115
117
  }
116
118
 
117
119
  dispose(): void {
@@ -192,14 +194,16 @@ export class NotebooksAndEditorsMain implements NotebookDocumentsAndEditorsMain
192
194
  addedEditors: delta.addedEditors.map(NotebooksAndEditorsMain.asEditorAddData),
193
195
  };
194
196
 
195
- // send to extension FIRST
196
- await this.proxy.$acceptDocumentsAndEditorsDelta(dto);
197
-
198
- // handle internally
197
+ // Handle internally first
198
+ // In case the plugin wants to perform documents edits immediately
199
+ // we want to make sure that all events have already been setup
199
200
  this.notebookEditorsMain.handleEditorsRemoved(delta.removedEditors);
200
201
  this.notebookDocumentsMain.handleNotebooksRemoved(delta.removedDocuments);
201
202
  this.notebookDocumentsMain.handleNotebooksAdded(delta.addedDocuments);
202
203
  this.notebookEditorsMain.handleEditorsAdded(delta.addedEditors);
204
+
205
+ // Send to plugin last
206
+ await this.proxy.$acceptDocumentsAndEditorsDelta(dto);
203
207
  }
204
208
 
205
209
  private static isDeltaEmpty(delta: NotebookAndEditorDelta): boolean {
@@ -218,7 +222,7 @@ export class NotebooksAndEditorsMain implements NotebookDocumentsAndEditorsMain
218
222
  if (delta.visibleEditors?.length) {
219
223
  return false;
220
224
  }
221
- if (delta.newActiveEditor) {
225
+ if (delta.newActiveEditor !== undefined) {
222
226
  return false;
223
227
  }
224
228
  return true;
@@ -25,13 +25,13 @@ import { CellExecuteUpdateDto, CellExecutionCompleteDto, MAIN_RPC_CONTEXT, Noteb
25
25
  import { RPCProtocol } from '../../../common/rpc-protocol';
26
26
  import {
27
27
  CellExecution, NotebookEditorWidgetService, NotebookExecutionStateService,
28
- NotebookKernelChangeEvent, NotebookKernelService, NotebookService
28
+ NotebookKernelChangeEvent, NotebookKernelService, NotebookService, NotebookKernel as NotebookKernelServiceKernel
29
29
  } from '@theia/notebook/lib/browser';
30
30
  import { interfaces } from '@theia/core/shared/inversify';
31
31
  import { NotebookKernelSourceAction } from '@theia/notebook/lib/common';
32
32
  import { NotebookDto } from './notebook-dto';
33
33
 
34
- abstract class NotebookKernel {
34
+ abstract class NotebookKernel implements NotebookKernelServiceKernel {
35
35
  private readonly onDidChangeEmitter = new Emitter<NotebookKernelChangeEvent>();
36
36
  private readonly preloads: { uri: URI; provides: readonly string[] }[];
37
37
  readonly onDidChange: Event<NotebookKernelChangeEvent> = this.onDidChangeEmitter.event;