@theia/core 1.45.0 → 1.46.0-next.106

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 (710) hide show
  1. package/README.md +6 -6
  2. package/i18n/nls.cs.json +20 -3
  3. package/i18n/nls.de.json +20 -3
  4. package/i18n/nls.es.json +20 -3
  5. package/i18n/nls.fr.json +20 -3
  6. package/i18n/nls.hu.json +20 -3
  7. package/i18n/nls.it.json +20 -3
  8. package/i18n/nls.ja.json +20 -3
  9. package/i18n/nls.json +20 -3
  10. package/i18n/nls.pl.json +20 -3
  11. package/i18n/nls.pt-br.json +20 -3
  12. package/i18n/nls.pt-pt.json +20 -3
  13. package/i18n/nls.ru.json +20 -3
  14. package/i18n/nls.zh-cn.json +20 -3
  15. package/lib/browser/about-dialog.js +13 -24
  16. package/lib/browser/about-dialog.js.map +1 -1
  17. package/lib/browser/authentication-service.js +12 -20
  18. package/lib/browser/authentication-service.js.map +1 -1
  19. package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +12 -20
  20. package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -1
  21. package/lib/browser/breadcrumbs/breadcrumb-renderer.js +2 -7
  22. package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -1
  23. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +14 -22
  24. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
  25. package/lib/browser/breadcrumbs/breadcrumbs-service.js +10 -18
  26. package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -1
  27. package/lib/browser/breadcrumbs/index.js +6 -15
  28. package/lib/browser/breadcrumbs/index.js.map +1 -1
  29. package/lib/browser/browser-clipboard-service.js +6 -14
  30. package/lib/browser/browser-clipboard-service.js.map +1 -1
  31. package/lib/browser/browser.d.ts +3 -0
  32. package/lib/browser/browser.d.ts.map +1 -1
  33. package/lib/browser/browser.js +5 -1
  34. package/lib/browser/browser.js.map +1 -1
  35. package/lib/browser/color-application-contribution.js +8 -16
  36. package/lib/browser/color-application-contribution.js.map +1 -1
  37. package/lib/browser/color-registry.js +2 -7
  38. package/lib/browser/color-registry.js.map +1 -1
  39. package/lib/browser/command-open-handler.js +4 -12
  40. package/lib/browser/command-open-handler.js.map +1 -1
  41. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  42. package/lib/browser/common-frontend-contribution.js +49 -60
  43. package/lib/browser/common-frontend-contribution.js.map +1 -1
  44. package/lib/browser/common-styling-participants.js +9 -14
  45. package/lib/browser/common-styling-participants.js.map +1 -1
  46. package/lib/browser/connection-status-service.js +22 -33
  47. package/lib/browser/connection-status-service.js.map +1 -1
  48. package/lib/browser/context-key-service.d.ts +1 -2
  49. package/lib/browser/context-key-service.d.ts.map +1 -1
  50. package/lib/browser/context-key-service.js +2 -7
  51. package/lib/browser/context-key-service.js.map +1 -1
  52. package/lib/browser/context-menu-renderer.d.ts +0 -1
  53. package/lib/browser/context-menu-renderer.d.ts.map +1 -1
  54. package/lib/browser/context-menu-renderer.js +3 -12
  55. package/lib/browser/context-menu-renderer.js.map +1 -1
  56. package/lib/browser/core-preferences.d.ts +1 -0
  57. package/lib/browser/core-preferences.d.ts.map +1 -1
  58. package/lib/browser/core-preferences.js +5 -0
  59. package/lib/browser/core-preferences.js.map +1 -1
  60. package/lib/browser/credentials-service.js +4 -15
  61. package/lib/browser/credentials-service.js.map +1 -1
  62. package/lib/browser/decorations-service.js +6 -12
  63. package/lib/browser/decorations-service.js.map +1 -1
  64. package/lib/browser/dialogs/react-dialog.js +4 -15
  65. package/lib/browser/dialogs/react-dialog.js.map +1 -1
  66. package/lib/browser/dialogs.js +18 -29
  67. package/lib/browser/dialogs.js.map +1 -1
  68. package/lib/browser/diff-uris.js +4 -15
  69. package/lib/browser/diff-uris.js.map +1 -1
  70. package/lib/browser/encoding-registry.js +6 -14
  71. package/lib/browser/encoding-registry.js.map +1 -1
  72. package/lib/browser/external-uri-service.js +2 -7
  73. package/lib/browser/external-uri-service.js.map +1 -1
  74. package/lib/browser/frontend-application-contribution.js +2 -7
  75. package/lib/browser/frontend-application-contribution.js.map +1 -1
  76. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  77. package/lib/browser/frontend-application-module.js +4 -2
  78. package/lib/browser/frontend-application-module.js.map +1 -1
  79. package/lib/browser/frontend-application-state.js +4 -12
  80. package/lib/browser/frontend-application-state.js.map +1 -1
  81. package/lib/browser/frontend-application.js +21 -32
  82. package/lib/browser/frontend-application.js.map +1 -1
  83. package/lib/browser/hover-service.js +6 -14
  84. package/lib/browser/hover-service.js.map +1 -1
  85. package/lib/browser/http-open-handler.js +6 -14
  86. package/lib/browser/http-open-handler.js.map +1 -1
  87. package/lib/browser/i18n/language-quick-pick-service.js +8 -16
  88. package/lib/browser/i18n/language-quick-pick-service.js.map +1 -1
  89. package/lib/browser/icon-registry.d.ts +1 -7
  90. package/lib/browser/icon-registry.d.ts.map +1 -1
  91. package/lib/browser/icon-registry.js.map +1 -1
  92. package/lib/browser/icon-theme-contribution.js +7 -15
  93. package/lib/browser/icon-theme-contribution.js.map +1 -1
  94. package/lib/browser/icon-theme-service.js +13 -21
  95. package/lib/browser/icon-theme-service.js.map +1 -1
  96. package/lib/browser/index.js +32 -41
  97. package/lib/browser/index.js.map +1 -1
  98. package/lib/browser/json-schema-store.js +7 -15
  99. package/lib/browser/json-schema-store.js.map +1 -1
  100. package/lib/browser/keybinding.d.ts.map +1 -1
  101. package/lib/browser/keybinding.js +21 -26
  102. package/lib/browser/keybinding.js.map +1 -1
  103. package/lib/browser/keybinding.spec.js +4 -9
  104. package/lib/browser/keybinding.spec.js.map +1 -1
  105. package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +6 -14
  106. package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
  107. package/lib/browser/keyboard/browser-keyboard-layout-provider.js +10 -18
  108. package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
  109. package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +2 -7
  110. package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
  111. package/lib/browser/keyboard/index.js +5 -14
  112. package/lib/browser/keyboard/index.js.map +1 -1
  113. package/lib/browser/keyboard/keyboard-layout-service.js +8 -16
  114. package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
  115. package/lib/browser/keyboard/keyboard-layout-service.spec.js +2 -7
  116. package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
  117. package/lib/browser/keyboard/keys.js +2 -11
  118. package/lib/browser/keyboard/keys.js.map +1 -1
  119. package/lib/browser/label-parser.js +2 -7
  120. package/lib/browser/label-parser.js.map +1 -1
  121. package/lib/browser/label-provider.js +11 -19
  122. package/lib/browser/label-provider.js.map +1 -1
  123. package/lib/browser/language-icon-provider.js +10 -18
  124. package/lib/browser/language-icon-provider.js.map +1 -1
  125. package/lib/browser/language-service.js +2 -7
  126. package/lib/browser/language-service.js.map +1 -1
  127. package/lib/browser/markdown-rendering/markdown-renderer.d.ts +1 -1
  128. package/lib/browser/markdown-rendering/markdown-renderer.d.ts.map +1 -1
  129. package/lib/browser/markdown-rendering/markdown-renderer.js +8 -16
  130. package/lib/browser/markdown-rendering/markdown-renderer.js.map +1 -1
  131. package/lib/browser/menu/browser-context-menu-renderer.js +4 -15
  132. package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
  133. package/lib/browser/menu/browser-menu-plugin.js +23 -34
  134. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  135. package/lib/browser/menu/context-menu-context.js +3 -11
  136. package/lib/browser/menu/context-menu-context.js.map +1 -1
  137. package/lib/browser/messaging/frontend-id-provider.js +2 -7
  138. package/lib/browser/messaging/frontend-id-provider.js.map +1 -1
  139. package/lib/browser/messaging/index.js +2 -11
  140. package/lib/browser/messaging/index.js.map +1 -1
  141. package/lib/browser/messaging/service-connection-provider.js +8 -16
  142. package/lib/browser/messaging/service-connection-provider.js.map +1 -1
  143. package/lib/browser/messaging/ws-connection-provider.js +4 -12
  144. package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
  145. package/lib/browser/messaging/ws-connection-source.d.ts +2 -0
  146. package/lib/browser/messaging/ws-connection-source.d.ts.map +1 -1
  147. package/lib/browser/messaging/ws-connection-source.js +47 -39
  148. package/lib/browser/messaging/ws-connection-source.js.map +1 -1
  149. package/lib/browser/mime-service.js +2 -7
  150. package/lib/browser/mime-service.js.map +1 -1
  151. package/lib/browser/navigatable.js +2 -11
  152. package/lib/browser/navigatable.js.map +1 -1
  153. package/lib/browser/opener-service.js +5 -16
  154. package/lib/browser/opener-service.js.map +1 -1
  155. package/lib/browser/performance/frontend-stopwatch.js +3 -11
  156. package/lib/browser/performance/frontend-stopwatch.js.map +1 -1
  157. package/lib/browser/performance/index.js +3 -12
  158. package/lib/browser/performance/index.js.map +1 -1
  159. package/lib/browser/preferences/index.js +8 -17
  160. package/lib/browser/preferences/index.js.map +1 -1
  161. package/lib/browser/preferences/injectable-preference-proxy.js +14 -22
  162. package/lib/browser/preferences/injectable-preference-proxy.js.map +1 -1
  163. package/lib/browser/preferences/preference-configurations.js +4 -12
  164. package/lib/browser/preferences/preference-configurations.js.map +1 -1
  165. package/lib/browser/preferences/preference-contribution.js +10 -18
  166. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  167. package/lib/browser/preferences/preference-language-override-service.js +2 -7
  168. package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
  169. package/lib/browser/preferences/preference-provider.js +5 -13
  170. package/lib/browser/preferences/preference-provider.js.map +1 -1
  171. package/lib/browser/preferences/preference-service.js +14 -22
  172. package/lib/browser/preferences/preference-service.js.map +1 -1
  173. package/lib/browser/preferences/preference-validation-service.js +6 -14
  174. package/lib/browser/preferences/preference-validation-service.js.map +1 -1
  175. package/lib/browser/preferences/test/index.js +4 -13
  176. package/lib/browser/preferences/test/index.js.map +1 -1
  177. package/lib/browser/preferences/test/mock-preference-service.js +3 -11
  178. package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
  179. package/lib/browser/preload/i18n-preload-contribution.js +4 -12
  180. package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
  181. package/lib/browser/preload/os-preload-contribution.js +4 -12
  182. package/lib/browser/preload/os-preload-contribution.js.map +1 -1
  183. package/lib/browser/preload/preloader.js +4 -12
  184. package/lib/browser/preload/preloader.js.map +1 -1
  185. package/lib/browser/preload/theme-preload-contribution.js +2 -7
  186. package/lib/browser/preload/theme-preload-contribution.js.map +1 -1
  187. package/lib/browser/progress-bar.js +11 -19
  188. package/lib/browser/progress-bar.js.map +1 -1
  189. package/lib/browser/progress-client.js +6 -14
  190. package/lib/browser/progress-client.js.map +1 -1
  191. package/lib/browser/progress-location-service.js +2 -7
  192. package/lib/browser/progress-location-service.js.map +1 -1
  193. package/lib/browser/progress-status-bar-item.js +4 -12
  194. package/lib/browser/progress-status-bar-item.js.map +1 -1
  195. package/lib/browser/quick-input/index.js +9 -18
  196. package/lib/browser/quick-input/index.js.map +1 -1
  197. package/lib/browser/quick-input/quick-command-frontend-contribution.js +6 -14
  198. package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
  199. package/lib/browser/quick-input/quick-command-service.js +12 -20
  200. package/lib/browser/quick-input/quick-command-service.js.map +1 -1
  201. package/lib/browser/quick-input/quick-help-service.js +6 -14
  202. package/lib/browser/quick-input/quick-help-service.js.map +1 -1
  203. package/lib/browser/quick-input/quick-input-frontend-contribution.js +4 -12
  204. package/lib/browser/quick-input/quick-input-frontend-contribution.js.map +1 -1
  205. package/lib/browser/quick-input/quick-input-service.js +2 -11
  206. package/lib/browser/quick-input/quick-input-service.js.map +1 -1
  207. package/lib/browser/quick-input/quick-pick-service-impl.js +4 -12
  208. package/lib/browser/quick-input/quick-pick-service-impl.js.map +1 -1
  209. package/lib/browser/quick-input/quick-view-service.js +6 -14
  210. package/lib/browser/quick-input/quick-view-service.js.map +1 -1
  211. package/lib/browser/request/browser-request-service.js +12 -20
  212. package/lib/browser/request/browser-request-service.js.map +1 -1
  213. package/lib/browser/resource-context-key.js +10 -18
  214. package/lib/browser/resource-context-key.js.map +1 -1
  215. package/lib/browser/save-resource-service.d.ts +3 -3
  216. package/lib/browser/save-resource-service.d.ts.map +1 -1
  217. package/lib/browser/save-resource-service.js +6 -13
  218. package/lib/browser/save-resource-service.js.map +1 -1
  219. package/lib/browser/secondary-window-handler.js +12 -20
  220. package/lib/browser/secondary-window-handler.js.map +1 -1
  221. package/lib/browser/shell/additional-views-menu-widget.js +6 -14
  222. package/lib/browser/shell/additional-views-menu-widget.js.map +1 -1
  223. package/lib/browser/shell/application-shell-mouse-tracker.js +4 -12
  224. package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
  225. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  226. package/lib/browser/shell/application-shell.js +40 -46
  227. package/lib/browser/shell/application-shell.js.map +1 -1
  228. package/lib/browser/shell/index.js +8 -17
  229. package/lib/browser/shell/index.js.map +1 -1
  230. package/lib/browser/shell/shell-layout-restorer.js +12 -23
  231. package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
  232. package/lib/browser/shell/side-panel-handler.js +22 -30
  233. package/lib/browser/shell/side-panel-handler.js.map +1 -1
  234. package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -7
  235. package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
  236. package/lib/browser/shell/sidebar-menu-widget.js +7 -15
  237. package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
  238. package/lib/browser/shell/sidebar-top-menu-widget.js +2 -7
  239. package/lib/browser/shell/sidebar-top-menu-widget.js.map +1 -1
  240. package/lib/browser/shell/split-panels.js +2 -7
  241. package/lib/browser/shell/split-panels.js.map +1 -1
  242. package/lib/browser/shell/tab-bar-decorator.d.ts +7 -2
  243. package/lib/browser/shell/tab-bar-decorator.d.ts.map +1 -1
  244. package/lib/browser/shell/tab-bar-decorator.js +39 -16
  245. package/lib/browser/shell/tab-bar-decorator.js.map +1 -1
  246. package/lib/browser/shell/tab-bar-toolbar/index.js +4 -13
  247. package/lib/browser/shell/tab-bar-toolbar/index.js.map +1 -1
  248. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +10 -18
  249. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  250. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +23 -31
  251. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  252. package/lib/browser/shell/tab-bars.d.ts +4 -1
  253. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  254. package/lib/browser/shell/tab-bars.js +39 -4
  255. package/lib/browser/shell/tab-bars.js.map +1 -1
  256. package/lib/browser/shell/view-contribution.js +9 -17
  257. package/lib/browser/shell/view-contribution.js.map +1 -1
  258. package/lib/browser/source-tree/index.js +4 -13
  259. package/lib/browser/source-tree/index.js.map +1 -1
  260. package/lib/browser/source-tree/source-tree-widget.js +6 -14
  261. package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
  262. package/lib/browser/source-tree/source-tree.js +2 -7
  263. package/lib/browser/source-tree/source-tree.js.map +1 -1
  264. package/lib/browser/source-tree/tree-source.js +4 -15
  265. package/lib/browser/source-tree/tree-source.js.map +1 -1
  266. package/lib/browser/status-bar/index.js +4 -13
  267. package/lib/browser/status-bar/index.js.map +1 -1
  268. package/lib/browser/status-bar/status-bar-view-model.js +2 -7
  269. package/lib/browser/status-bar/status-bar-view-model.js.map +1 -1
  270. package/lib/browser/status-bar/status-bar.js +9 -20
  271. package/lib/browser/status-bar/status-bar.js.map +1 -1
  272. package/lib/browser/storage-service.js +12 -20
  273. package/lib/browser/storage-service.js.map +1 -1
  274. package/lib/browser/styling-service.js +8 -16
  275. package/lib/browser/styling-service.js.map +1 -1
  276. package/lib/browser/test/mock-opener-service.js +2 -7
  277. package/lib/browser/test/mock-opener-service.js.map +1 -1
  278. package/lib/browser/test/mock-storage-service.js +2 -7
  279. package/lib/browser/test/mock-storage-service.js.map +1 -1
  280. package/lib/browser/theming.js +10 -18
  281. package/lib/browser/theming.js.map +1 -1
  282. package/lib/browser/tooltip-service.js +13 -24
  283. package/lib/browser/tooltip-service.js.map +1 -1
  284. package/lib/browser/tree/fuzzy-search.js +2 -7
  285. package/lib/browser/tree/fuzzy-search.js.map +1 -1
  286. package/lib/browser/tree/index.d.ts +1 -0
  287. package/lib/browser/tree/index.d.ts.map +1 -1
  288. package/lib/browser/tree/index.js +14 -22
  289. package/lib/browser/tree/index.js.map +1 -1
  290. package/lib/browser/tree/test/mock-selectable-tree-model.d.ts +15 -0
  291. package/lib/browser/tree/test/mock-selectable-tree-model.d.ts.map +1 -0
  292. package/lib/browser/tree/test/mock-selectable-tree-model.js +103 -0
  293. package/lib/browser/tree/test/mock-selectable-tree-model.js.map +1 -0
  294. package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js +6 -14
  295. package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js.map +1 -1
  296. package/lib/browser/tree/tree-compression/compressed-tree-model.js +6 -14
  297. package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -1
  298. package/lib/browser/tree/tree-compression/compressed-tree-widget.js +10 -21
  299. package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
  300. package/lib/browser/tree/tree-compression/index.js +5 -14
  301. package/lib/browser/tree/tree-compression/index.js.map +1 -1
  302. package/lib/browser/tree/tree-compression/tree-compression-service.js +2 -7
  303. package/lib/browser/tree/tree-compression/tree-compression-service.js.map +1 -1
  304. package/lib/browser/tree/tree-consistency.spec.js +2 -7
  305. package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
  306. package/lib/browser/tree/tree-decorator.js +4 -12
  307. package/lib/browser/tree/tree-decorator.js.map +1 -1
  308. package/lib/browser/tree/tree-expansion.js +8 -16
  309. package/lib/browser/tree/tree-expansion.js.map +1 -1
  310. package/lib/browser/tree/tree-focus-service.js +4 -12
  311. package/lib/browser/tree/tree-focus-service.js.map +1 -1
  312. package/lib/browser/tree/tree-label-provider.js +2 -7
  313. package/lib/browser/tree/tree-label-provider.js.map +1 -1
  314. package/lib/browser/tree/tree-model.d.ts +24 -0
  315. package/lib/browser/tree/tree-model.d.ts.map +1 -1
  316. package/lib/browser/tree/tree-model.js +66 -28
  317. package/lib/browser/tree/tree-model.js.map +1 -1
  318. package/lib/browser/tree/tree-navigation.js +2 -7
  319. package/lib/browser/tree/tree-navigation.js.map +1 -1
  320. package/lib/browser/tree/tree-preference.d.ts +11 -0
  321. package/lib/browser/tree/tree-preference.d.ts.map +1 -0
  322. package/lib/browser/tree/tree-preference.js +47 -0
  323. package/lib/browser/tree/tree-preference.js.map +1 -0
  324. package/lib/browser/tree/tree-search.js +12 -20
  325. package/lib/browser/tree/tree-search.js.map +1 -1
  326. package/lib/browser/tree/tree-selectable.spec.d.ts +2 -0
  327. package/lib/browser/tree/tree-selectable.spec.d.ts.map +1 -0
  328. package/lib/browser/tree/tree-selectable.spec.js +147 -0
  329. package/lib/browser/tree/tree-selectable.spec.js.map +1 -0
  330. package/lib/browser/tree/tree-selection-impl.js +10 -18
  331. package/lib/browser/tree/tree-selection-impl.js.map +1 -1
  332. package/lib/browser/tree/tree-view-welcome-widget.js +8 -16
  333. package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
  334. package/lib/browser/tree/tree-widget.d.ts +6 -3
  335. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  336. package/lib/browser/tree/tree-widget.js +48 -38
  337. package/lib/browser/tree/tree-widget.js.map +1 -1
  338. package/lib/browser/tree/tree.d.ts.map +1 -1
  339. package/lib/browser/tree/tree.js +7 -12
  340. package/lib/browser/tree/tree.js.map +1 -1
  341. package/lib/browser/user-working-directory-provider.js +6 -14
  342. package/lib/browser/user-working-directory-provider.js.map +1 -1
  343. package/lib/browser/view-container.js +31 -39
  344. package/lib/browser/view-container.js.map +1 -1
  345. package/lib/browser/widget-manager.d.ts +9 -0
  346. package/lib/browser/widget-manager.d.ts.map +1 -1
  347. package/lib/browser/widget-manager.js +29 -14
  348. package/lib/browser/widget-manager.js.map +1 -1
  349. package/lib/browser/widget-open-handler.js +10 -18
  350. package/lib/browser/widget-open-handler.js.map +1 -1
  351. package/lib/browser/widgets/index.js +5 -14
  352. package/lib/browser/widgets/index.js.map +1 -1
  353. package/lib/browser/widgets/react-renderer.js +5 -16
  354. package/lib/browser/widgets/react-renderer.js.map +1 -1
  355. package/lib/browser/widgets/react-widget.js +4 -15
  356. package/lib/browser/widgets/react-widget.js.map +1 -1
  357. package/lib/browser/widgets/select-component.d.ts.map +1 -1
  358. package/lib/browser/widgets/select-component.js +1 -0
  359. package/lib/browser/widgets/select-component.js.map +1 -1
  360. package/lib/browser/widgets/widget.d.ts +2 -0
  361. package/lib/browser/widgets/widget.d.ts.map +1 -1
  362. package/lib/browser/widgets/widget.js +14 -24
  363. package/lib/browser/widgets/widget.js.map +1 -1
  364. package/lib/browser/window/default-secondary-window-service.js +10 -18
  365. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  366. package/lib/browser/window/default-window-service.js +6 -14
  367. package/lib/browser/window/default-window-service.js.map +1 -1
  368. package/lib/browser/window/test/mock-window-service.js +2 -7
  369. package/lib/browser/window/test/mock-window-service.js.map +1 -1
  370. package/lib/browser/window/window-service.d.ts +6 -2
  371. package/lib/browser/window/window-service.d.ts.map +1 -1
  372. package/lib/browser/window/window-service.js.map +1 -1
  373. package/lib/browser/window/window-title-service.js +8 -16
  374. package/lib/browser/window/window-title-service.js.map +1 -1
  375. package/lib/browser/window/window-title-updater.js +6 -14
  376. package/lib/browser/window/window-title-updater.js.map +1 -1
  377. package/lib/browser/window-contribution.js +4 -12
  378. package/lib/browser/window-contribution.js.map +1 -1
  379. package/lib/browser-only/frontend-only-application-module.d.ts +5 -0
  380. package/lib/browser-only/frontend-only-application-module.d.ts.map +1 -0
  381. package/lib/browser-only/frontend-only-application-module.js +115 -0
  382. package/lib/browser-only/frontend-only-application-module.js.map +1 -0
  383. package/lib/browser-only/i18n/i18n-frontend-only-module.d.ts +4 -0
  384. package/lib/browser-only/i18n/i18n-frontend-only-module.d.ts.map +1 -0
  385. package/lib/browser-only/i18n/i18n-frontend-only-module.js +35 -0
  386. package/lib/browser-only/i18n/i18n-frontend-only-module.js.map +1 -0
  387. package/lib/browser-only/logger-frontend-only-module.d.ts +3 -0
  388. package/lib/browser-only/logger-frontend-only-module.d.ts.map +1 -0
  389. package/lib/browser-only/logger-frontend-only-module.js +61 -0
  390. package/lib/browser-only/logger-frontend-only-module.js.map +1 -0
  391. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts +14 -0
  392. package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts.map +1 -0
  393. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +52 -0
  394. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -0
  395. package/lib/browser-only/messaging/messaging-frontend-only-module.d.ts +3 -0
  396. package/lib/browser-only/messaging/messaging-frontend-only-module.d.ts.map +1 -0
  397. package/lib/browser-only/messaging/messaging-frontend-only-module.js +48 -0
  398. package/lib/browser-only/messaging/messaging-frontend-only-module.js.map +1 -0
  399. package/lib/browser-only/preload/frontend-only-preload-module.d.ts +4 -0
  400. package/lib/browser-only/preload/frontend-only-preload-module.d.ts.map +1 -0
  401. package/lib/browser-only/preload/frontend-only-preload-module.js +52 -0
  402. package/lib/browser-only/preload/frontend-only-preload-module.js.map +1 -0
  403. package/lib/common/application-protocol.d.ts +1 -0
  404. package/lib/common/application-protocol.d.ts.map +1 -1
  405. package/lib/common/command.js +5 -16
  406. package/lib/common/command.js.map +1 -1
  407. package/lib/common/contribution-filter/contribution-filter-registry.js +5 -16
  408. package/lib/common/contribution-filter/contribution-filter-registry.js.map +1 -1
  409. package/lib/common/contribution-filter/index.js +4 -13
  410. package/lib/common/contribution-filter/index.js.map +1 -1
  411. package/lib/common/disposable.d.ts +37 -0
  412. package/lib/common/disposable.d.ts.map +1 -1
  413. package/lib/common/disposable.js +54 -1
  414. package/lib/common/disposable.js.map +1 -1
  415. package/lib/common/disposable.spec.js +51 -0
  416. package/lib/common/disposable.spec.js.map +1 -1
  417. package/lib/common/encoding-service.js +2 -7
  418. package/lib/common/encoding-service.js.map +1 -1
  419. package/lib/common/env-variables/index.js +2 -11
  420. package/lib/common/env-variables/index.js.map +1 -1
  421. package/lib/{node → common}/file-uri.d.ts +1 -1
  422. package/lib/common/file-uri.d.ts.map +1 -0
  423. package/lib/{node → common}/file-uri.js +2 -2
  424. package/lib/common/file-uri.js.map +1 -0
  425. package/lib/common/index.d.ts +1 -0
  426. package/lib/common/index.d.ts.map +1 -1
  427. package/lib/common/index.js +34 -42
  428. package/lib/common/index.js.map +1 -1
  429. package/lib/common/logger-protocol.js +2 -7
  430. package/lib/common/logger-protocol.js.map +1 -1
  431. package/lib/common/logger-watcher.js +2 -7
  432. package/lib/common/logger-watcher.js.map +1 -1
  433. package/lib/common/logger.js +14 -22
  434. package/lib/common/logger.js.map +1 -1
  435. package/lib/common/markdown-rendering/index.js +3 -12
  436. package/lib/common/markdown-rendering/index.js.map +1 -1
  437. package/lib/common/markdown-rendering/markdown-string.d.ts +5 -2
  438. package/lib/common/markdown-rendering/markdown-string.d.ts.map +1 -1
  439. package/lib/common/markdown-rendering/markdown-string.js.map +1 -1
  440. package/lib/common/menu/composite-menu-node.js +5 -5
  441. package/lib/common/menu/composite-menu-node.js.map +1 -1
  442. package/lib/common/menu/composite-menu-node.spec.d.ts +2 -0
  443. package/lib/common/menu/composite-menu-node.spec.d.ts.map +1 -0
  444. package/lib/common/menu/composite-menu-node.spec.js +68 -0
  445. package/lib/common/menu/composite-menu-node.spec.js.map +1 -0
  446. package/lib/common/menu/index.js +6 -15
  447. package/lib/common/menu/index.js.map +1 -1
  448. package/lib/common/menu/menu-adapter.js +7 -15
  449. package/lib/common/menu/menu-adapter.js.map +1 -1
  450. package/lib/common/menu/menu-model-registry.d.ts +2 -2
  451. package/lib/common/menu/menu-model-registry.d.ts.map +1 -1
  452. package/lib/common/menu/menu-model-registry.js +22 -19
  453. package/lib/common/menu/menu-model-registry.js.map +1 -1
  454. package/lib/common/menu/menu.spec.js +28 -1
  455. package/lib/common/menu/menu.spec.js.map +1 -1
  456. package/lib/common/message-rpc/msg-pack-extension-manager.d.ts +1 -1
  457. package/lib/common/message-rpc/msg-pack-extension-manager.js +1 -1
  458. package/lib/common/message-rpc/rpc-protocol.d.ts +3 -1
  459. package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
  460. package/lib/common/message-rpc/rpc-protocol.js +19 -1
  461. package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
  462. package/lib/common/message-service-protocol.js +2 -7
  463. package/lib/common/message-service-protocol.js.map +1 -1
  464. package/lib/common/message-service.js +4 -15
  465. package/lib/common/message-service.js.map +1 -1
  466. package/lib/common/messaging/index.js +4 -13
  467. package/lib/common/messaging/index.js.map +1 -1
  468. package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
  469. package/lib/common/messaging/proxy-factory.js +1 -8
  470. package/lib/common/messaging/proxy-factory.js.map +1 -1
  471. package/lib/common/nls.js +3 -1
  472. package/lib/common/nls.js.map +1 -1
  473. package/lib/common/performance/index.js +4 -13
  474. package/lib/common/performance/index.js.map +1 -1
  475. package/lib/common/performance/measurement-protocol.js +5 -13
  476. package/lib/common/performance/measurement-protocol.js.map +1 -1
  477. package/lib/common/performance/stopwatch.js +5 -13
  478. package/lib/common/performance/stopwatch.js.map +1 -1
  479. package/lib/common/progress-service.js +6 -14
  480. package/lib/common/progress-service.js.map +1 -1
  481. package/lib/common/promise-util.spec.js +31 -6
  482. package/lib/common/promise-util.spec.js.map +1 -1
  483. package/lib/common/quick-pick-service.d.ts +16 -26
  484. package/lib/common/quick-pick-service.d.ts.map +1 -1
  485. package/lib/common/quick-pick-service.js +1 -26
  486. package/lib/common/quick-pick-service.js.map +1 -1
  487. package/lib/common/reference.d.ts +55 -0
  488. package/lib/common/reference.d.ts.map +1 -1
  489. package/lib/common/reference.js +55 -0
  490. package/lib/common/reference.js.map +1 -1
  491. package/lib/common/resource.d.ts +3 -1
  492. package/lib/common/resource.d.ts.map +1 -1
  493. package/lib/common/resource.js +8 -19
  494. package/lib/common/resource.js.map +1 -1
  495. package/lib/common/selection-service.js +2 -7
  496. package/lib/common/selection-service.js.map +1 -1
  497. package/lib/common/test/mock-logger.js +2 -7
  498. package/lib/common/test/mock-logger.js.map +1 -1
  499. package/lib/common/test/mock-resource-provider.js +3 -11
  500. package/lib/common/test/mock-resource-provider.js.map +1 -1
  501. package/lib/common/theme.d.ts +25 -0
  502. package/lib/common/theme.d.ts.map +1 -1
  503. package/lib/common/theme.js.map +1 -1
  504. package/lib/common/uri.d.ts +1 -0
  505. package/lib/common/uri.d.ts.map +1 -1
  506. package/lib/common/uri.js +1 -1
  507. package/lib/common/uri.js.map +1 -1
  508. package/lib/common/uuid.d.ts +7 -1
  509. package/lib/common/uuid.d.ts.map +1 -1
  510. package/lib/common/uuid.js +17 -58
  511. package/lib/common/uuid.js.map +1 -1
  512. package/lib/electron-browser/electron-clipboard-service.js +2 -7
  513. package/lib/electron-browser/electron-clipboard-service.js.map +1 -1
  514. package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +6 -14
  515. package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -1
  516. package/lib/electron-browser/menu/electron-context-menu-renderer.js +15 -26
  517. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  518. package/lib/electron-browser/menu/electron-main-menu-factory.js +8 -16
  519. package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
  520. package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -1
  521. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  522. package/lib/electron-browser/menu/electron-menu-contribution.js +33 -35
  523. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  524. package/lib/electron-browser/messaging/electron-frontend-id-provider.js +2 -7
  525. package/lib/electron-browser/messaging/electron-frontend-id-provider.js.map +1 -1
  526. package/lib/electron-browser/messaging/electron-ipc-connection-source.js +2 -7
  527. package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -1
  528. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js +2 -7
  529. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js.map +1 -1
  530. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +3 -3
  531. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
  532. package/lib/electron-browser/messaging/electron-ws-connection-source.js +3 -11
  533. package/lib/electron-browser/messaging/electron-ws-connection-source.js.map +1 -1
  534. package/lib/electron-browser/window/electron-frontend-application-state.js +2 -7
  535. package/lib/electron-browser/window/electron-frontend-application-state.js.map +1 -1
  536. package/lib/electron-browser/window/electron-secondary-window-service.js +2 -7
  537. package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
  538. package/lib/electron-browser/window/electron-window-service.d.ts +2 -1
  539. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  540. package/lib/electron-browser/window/electron-window-service.js +23 -24
  541. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  542. package/lib/electron-main/electron-api-main.js +4 -12
  543. package/lib/electron-main/electron-api-main.js.map +1 -1
  544. package/lib/electron-main/electron-main-application-module.js +2 -2
  545. package/lib/electron-main/electron-main-application-module.js.map +1 -1
  546. package/lib/electron-main/electron-main-application.js +16 -24
  547. package/lib/electron-main/electron-main-application.js.map +1 -1
  548. package/lib/electron-main/electron-main-window-service-impl.js +4 -12
  549. package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
  550. package/lib/electron-main/electron-security-token-service.js +4 -12
  551. package/lib/electron-main/electron-security-token-service.js.map +1 -1
  552. package/lib/electron-main/messaging/electron-messaging-contribution.js +10 -18
  553. package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
  554. package/lib/electron-main/theia-electron-window.js +13 -21
  555. package/lib/electron-main/theia-electron-window.js.map +1 -1
  556. package/lib/electron-node/hosting/electron-ws-origin-validator.js +4 -12
  557. package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
  558. package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js +2 -7
  559. package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js.map +1 -1
  560. package/lib/electron-node/request/electron-backend-request-service.js +2 -7
  561. package/lib/electron-node/request/electron-backend-request-service.js.map +1 -1
  562. package/lib/electron-node/token/electron-token-backend-contribution.js +4 -12
  563. package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
  564. package/lib/electron-node/token/electron-token-validator.js +6 -14
  565. package/lib/electron-node/token/electron-token-validator.js.map +1 -1
  566. package/lib/node/application-server.d.ts +1 -0
  567. package/lib/node/application-server.d.ts.map +1 -1
  568. package/lib/node/application-server.js +11 -13
  569. package/lib/node/application-server.js.map +1 -1
  570. package/lib/node/backend-application.js +17 -28
  571. package/lib/node/backend-application.js.map +1 -1
  572. package/lib/node/backend-remote-service.js +2 -7
  573. package/lib/node/backend-remote-service.js.map +1 -1
  574. package/lib/node/cli.js +5 -16
  575. package/lib/node/cli.js.map +1 -1
  576. package/lib/node/console-logger-server.js +10 -18
  577. package/lib/node/console-logger-server.js.map +1 -1
  578. package/lib/node/console-logger-server.spec.js +6 -14
  579. package/lib/node/console-logger-server.spec.js.map +1 -1
  580. package/lib/node/env-variables/env-variables-server.js +4 -12
  581. package/lib/node/env-variables/env-variables-server.js.map +1 -1
  582. package/lib/node/env-variables/index.js +2 -11
  583. package/lib/node/env-variables/index.js.map +1 -1
  584. package/lib/node/environment-utils.js +2 -7
  585. package/lib/node/environment-utils.js.map +1 -1
  586. package/lib/node/file-uri.spec.js +1 -1
  587. package/lib/node/file-uri.spec.js.map +1 -1
  588. package/lib/node/filesystem-locking.js +2 -7
  589. package/lib/node/filesystem-locking.js.map +1 -1
  590. package/lib/node/hosting/backend-application-hosts.js +6 -14
  591. package/lib/node/hosting/backend-application-hosts.js.map +1 -1
  592. package/lib/node/hosting/ws-origin-validator.js +4 -12
  593. package/lib/node/hosting/ws-origin-validator.js.map +1 -1
  594. package/lib/node/i18n/localization-contribution.js +6 -14
  595. package/lib/node/i18n/localization-contribution.js.map +1 -1
  596. package/lib/node/i18n/localization-provider.js +2 -7
  597. package/lib/node/i18n/localization-provider.js.map +1 -1
  598. package/lib/node/i18n/localization-server.js +6 -14
  599. package/lib/node/i18n/localization-server.js.map +1 -1
  600. package/lib/node/i18n/theia-localization-contribution.js +2 -7
  601. package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
  602. package/lib/node/index.d.ts +1 -1
  603. package/lib/node/index.d.ts.map +1 -1
  604. package/lib/node/index.js +6 -15
  605. package/lib/node/index.js.map +1 -1
  606. package/lib/node/key-store-server.js +2 -7
  607. package/lib/node/key-store-server.js.map +1 -1
  608. package/lib/node/logger-cli-contribution.js +2 -7
  609. package/lib/node/logger-cli-contribution.js.map +1 -1
  610. package/lib/node/messaging/default-messaging-service.js +10 -18
  611. package/lib/node/messaging/default-messaging-service.js.map +1 -1
  612. package/lib/node/messaging/index.js +4 -13
  613. package/lib/node/messaging/index.js.map +1 -1
  614. package/lib/node/messaging/ipc-connection-provider.js +4 -12
  615. package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
  616. package/lib/node/messaging/messaging-listeners.js +4 -12
  617. package/lib/node/messaging/messaging-listeners.js.map +1 -1
  618. package/lib/node/messaging/test/test-web-socket-channel.js +3 -11
  619. package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
  620. package/lib/node/messaging/websocket-endpoint.js +6 -14
  621. package/lib/node/messaging/websocket-endpoint.js.map +1 -1
  622. package/lib/node/messaging/websocket-frontend-connection-service.d.ts +2 -1
  623. package/lib/node/messaging/websocket-frontend-connection-service.d.ts.map +1 -1
  624. package/lib/node/messaging/websocket-frontend-connection-service.js +12 -15
  625. package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -1
  626. package/lib/node/os-backend-provider.js +2 -7
  627. package/lib/node/os-backend-provider.js.map +1 -1
  628. package/lib/node/performance/index.js +3 -12
  629. package/lib/node/performance/index.js.map +1 -1
  630. package/lib/node/performance/node-stopwatch.js +3 -11
  631. package/lib/node/performance/node-stopwatch.js.map +1 -1
  632. package/lib/node/process-utils.js +2 -7
  633. package/lib/node/process-utils.js.map +1 -1
  634. package/lib/node/request/backend-request-facade.js +4 -12
  635. package/lib/node/request/backend-request-facade.js.map +1 -1
  636. package/lib/node/request/proxy-cli-contribution.js +4 -12
  637. package/lib/node/request/proxy-cli-contribution.js.map +1 -1
  638. package/lib/node/ws-request-validators.js +4 -12
  639. package/lib/node/ws-request-validators.js.map +1 -1
  640. package/package.json +14 -8
  641. package/src/browser/browser.ts +6 -1
  642. package/src/browser/common-frontend-contribution.ts +3 -3
  643. package/src/browser/context-key-service.ts +1 -2
  644. package/src/browser/context-menu-renderer.ts +0 -4
  645. package/src/browser/core-preferences.ts +6 -0
  646. package/src/browser/decorations-service.ts +4 -4
  647. package/src/browser/frontend-application-module.ts +5 -2
  648. package/src/browser/icon-registry.ts +1 -10
  649. package/src/browser/keybinding.ts +3 -0
  650. package/src/browser/markdown-rendering/markdown-renderer.ts +1 -1
  651. package/src/browser/messaging/ws-connection-source.ts +41 -21
  652. package/src/browser/save-resource-service.ts +5 -4
  653. package/src/browser/shell/application-shell.ts +8 -3
  654. package/src/browser/shell/tab-bar-decorator.ts +36 -6
  655. package/src/browser/shell/tab-bars.ts +41 -5
  656. package/src/browser/style/index.css +153 -148
  657. package/src/browser/style/select-component.css +12 -13
  658. package/src/browser/style/tabs.css +6 -0
  659. package/src/browser/tooltip-service.tsx +2 -2
  660. package/src/browser/tree/index.ts +1 -0
  661. package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -0
  662. package/src/browser/tree/tree-model.ts +74 -0
  663. package/src/browser/tree/tree-preference.ts +50 -0
  664. package/src/browser/tree/tree-selectable.spec.ts +152 -0
  665. package/src/browser/tree/tree-widget.tsx +24 -5
  666. package/src/browser/tree/tree.ts +2 -1
  667. package/src/browser/widget-manager.ts +25 -0
  668. package/src/browser/widgets/select-component.tsx +1 -0
  669. package/src/browser/widgets/widget.ts +8 -0
  670. package/src/browser/window/window-service.ts +7 -2
  671. package/src/browser-only/frontend-only-application-module.ts +115 -0
  672. package/src/browser-only/i18n/i18n-frontend-only-module.ts +37 -0
  673. package/src/browser-only/logger-frontend-only-module.ts +63 -0
  674. package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +39 -0
  675. package/src/browser-only/messaging/messaging-frontend-only-module.ts +42 -0
  676. package/src/browser-only/preload/frontend-only-preload-module.ts +49 -0
  677. package/src/common/application-protocol.ts +1 -0
  678. package/src/common/disposable.spec.ts +66 -1
  679. package/src/common/disposable.ts +53 -0
  680. package/src/{node → common}/file-uri.ts +2 -2
  681. package/src/common/index.ts +1 -0
  682. package/src/common/markdown-rendering/markdown-string.ts +6 -3
  683. package/src/common/menu/composite-menu-node.spec.ts +67 -0
  684. package/src/common/menu/composite-menu-node.ts +5 -5
  685. package/src/common/menu/menu-model-registry.ts +22 -5
  686. package/src/common/menu/menu.spec.ts +30 -2
  687. package/src/common/message-rpc/msg-pack-extension-manager.ts +1 -1
  688. package/src/common/message-rpc/rpc-protocol.ts +22 -2
  689. package/src/common/messaging/proxy-factory.ts +1 -8
  690. package/src/common/nls.ts +3 -1
  691. package/src/common/promise-util.spec.ts +48 -18
  692. package/src/common/quick-pick-service.ts +13 -34
  693. package/src/common/reference.ts +55 -0
  694. package/src/common/resource.ts +5 -1
  695. package/src/common/theme.ts +32 -0
  696. package/src/common/uri.ts +4 -2
  697. package/src/common/uuid.ts +15 -69
  698. package/src/electron-browser/menu/electron-menu-contribution.ts +9 -1
  699. package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +1 -1
  700. package/src/electron-browser/window/electron-window-service.ts +12 -3
  701. package/src/electron-main/electron-main-application-module.ts +2 -2
  702. package/src/electron-main/electron-main-application.ts +1 -1
  703. package/src/electron-main/theia-electron-window.ts +1 -1
  704. package/src/node/application-server.ts +8 -1
  705. package/src/node/env-variables/env-variables-server.ts +1 -1
  706. package/src/node/file-uri.spec.ts +1 -1
  707. package/src/node/index.ts +1 -1
  708. package/src/node/messaging/websocket-frontend-connection-service.ts +10 -5
  709. package/lib/node/file-uri.d.ts.map +0 -1
  710. package/lib/node/file-uri.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/core",
3
- "version": "1.45.0",
3
+ "version": "1.46.0-next.106+cf038c17c",
4
4
  "description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
5
5
  "main": "lib/common/index.js",
6
6
  "typings": "lib/common/index.d.ts",
@@ -16,8 +16,8 @@
16
16
  "@phosphor/signaling": "1",
17
17
  "@phosphor/virtualdom": "1",
18
18
  "@phosphor/widgets": "1",
19
- "@theia/application-package": "1.45.0",
20
- "@theia/request": "1.45.0",
19
+ "@theia/application-package": "1.46.0-next.106+cf038c17c",
20
+ "@theia/request": "1.46.0-next.106+cf038c17c",
21
21
  "@types/body-parser": "^1.16.4",
22
22
  "@types/cookie": "^0.3.3",
23
23
  "@types/dompurify": "^2.2.2",
@@ -30,6 +30,7 @@
30
30
  "@types/react-dom": "^18.0.6",
31
31
  "@types/route-parser": "^0.1.1",
32
32
  "@types/safer-buffer": "^2.1.0",
33
+ "@types/uuid": "^9.0.8",
33
34
  "@types/ws": "^8.5.5",
34
35
  "@types/yargs": "^15",
35
36
  "@vscode/codicons": "*",
@@ -55,7 +56,7 @@
55
56
  "lodash.debounce": "^4.0.8",
56
57
  "lodash.throttle": "^4.1.1",
57
58
  "markdown-it": "^12.3.2",
58
- "msgpackr": "1.6.1",
59
+ "msgpackr": "^1.10.1",
59
60
  "nsfw": "^2.2.4",
60
61
  "p-debounce": "^2.1.0",
61
62
  "perfect-scrollbar": "^1.3.0",
@@ -68,7 +69,8 @@
68
69
  "safer-buffer": "^2.1.2",
69
70
  "socket.io": "^4.5.3",
70
71
  "socket.io-client": "^4.5.3",
71
- "uuid": "^8.3.2",
72
+ "tslib": "^2.6.2",
73
+ "uuid": "^9.0.1",
72
74
  "vscode-languageserver-protocol": "^3.17.2",
73
75
  "vscode-uri": "^2.1.1",
74
76
  "ws": "^8.14.1",
@@ -134,8 +136,12 @@
134
136
  "frontendPreload": "lib/browser/preload/preload-module",
135
137
  "preload": "lib/electron-browser/preload"
136
138
  },
139
+ {
140
+ "frontendOnlyPreload": "lib/browser-only/preload/frontend-only-preload-module"
141
+ },
137
142
  {
138
143
  "frontend": "lib/browser/i18n/i18n-frontend-module",
144
+ "frontendOnly": "lib/browser-only/i18n/i18n-frontend-only-module",
139
145
  "backend": "lib/node/i18n/i18n-backend-module"
140
146
  },
141
147
  {
@@ -200,12 +206,12 @@
200
206
  "watch": "theiaext watch"
201
207
  },
202
208
  "devDependencies": {
203
- "@theia/ext-scripts": "1.45.0",
204
- "@theia/re-exports": "1.45.0",
209
+ "@theia/ext-scripts": "1.47.0",
210
+ "@theia/re-exports": "1.47.0",
205
211
  "minimist": "^1.2.0"
206
212
  },
207
213
  "nyc": {
208
214
  "extends": "../../configs/nyc.json"
209
215
  },
210
- "gitHead": "2b20a60a0f9b54b19838a0f71760989a19622495"
216
+ "gitHead": "cf038c17c3b3b210d9ae02b09d64921f639247f9"
211
217
  }
@@ -18,6 +18,8 @@
18
18
  * Licensed under the MIT License. See License.txt in the project root for license information.
19
19
  *--------------------------------------------------------------------------------------------*/
20
20
 
21
+ import { environment } from '../common';
22
+
21
23
  const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent : '';
22
24
 
23
25
  export const isIE = (userAgent.indexOf('Trident') >= 0);
@@ -31,7 +33,10 @@ export const isChrome = (userAgent.indexOf('Chrome') >= 0);
31
33
  export const isSafari = (userAgent.indexOf('Chrome') === -1) && (userAgent.indexOf('Safari') >= 0);
32
34
  export const isIPad = (userAgent.indexOf('iPad') >= 0);
33
35
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
- export const isNative = typeof (window as any).process !== 'undefined';
36
+ /**
37
+ * @deprecated us Environment.electron.is
38
+ */
39
+ export const isNative = environment.electron.is();
35
40
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
41
  export const isBasicWasmSupported = typeof (window as any).WebAssembly !== 'undefined';
37
42
 
@@ -351,12 +351,12 @@ export namespace CommonCommands {
351
351
  });
352
352
  }
353
353
 
354
- export const supportCut = browser.isNative || document.queryCommandSupported('cut');
355
- export const supportCopy = browser.isNative || document.queryCommandSupported('copy');
354
+ export const supportCut = environment.electron.is() || document.queryCommandSupported('cut');
355
+ export const supportCopy = environment.electron.is() || document.queryCommandSupported('copy');
356
356
  // Chrome incorrectly returns true for document.queryCommandSupported('paste')
357
357
  // when the paste feature is available but the calling script has insufficient
358
358
  // privileges to actually perform the action
359
- export const supportPaste = browser.isNative || (!browser.isChrome && document.queryCommandSupported('paste'));
359
+ export const supportPaste = environment.electron.is() || (!browser.isChrome && document.queryCommandSupported('paste'));
360
360
 
361
361
  export const RECENT_COMMANDS_STORAGE_KEY = 'commands';
362
362
 
@@ -15,7 +15,6 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable } from 'inversify';
18
- import { Disposable } from '../common';
19
18
  import { Emitter, Event } from '../common/event';
20
19
 
21
20
  export type ContextKeyValue = null | undefined | boolean | number | string
@@ -43,7 +42,7 @@ export interface ContextKeyChangeEvent {
43
42
 
44
43
  export const ContextKeyService = Symbol('ContextKeyService');
45
44
 
46
- export interface ContextMatcher extends Disposable {
45
+ export interface ContextMatcher {
47
46
  /**
48
47
  * Whether the expression is satisfied. If `context` provided, the service will attempt to retrieve a context object associated with that element.
49
48
  */
@@ -26,10 +26,6 @@ export const Coordinate = Symbol('Coordinate');
26
26
 
27
27
  export type Anchor = MouseEvent | Coordinate;
28
28
 
29
- export function toAnchor(anchor: HTMLElement | Coordinate): Anchor {
30
- return anchor instanceof HTMLElement ? { x: anchor.offsetLeft, y: anchor.offsetTop } : anchor;
31
- }
32
-
33
29
  export function coordinateFromAnchor(anchor: Anchor): Coordinate {
34
30
  const { x, y } = anchor instanceof MouseEvent ? { x: anchor.clientX, y: anchor.clientY } : anchor;
35
31
  return { x, y };
@@ -200,6 +200,11 @@ export const corePreferenceSchema: PreferenceSchema = {
200
200
  'description': nls.localizeByDefault('Controls whether an editor is revealed in any of the visible groups if opened. If disabled, an editor will prefer to open in the currently active editor group. If enabled, an already opened editor will be revealed instead of opened again in the currently active editor group. Note that there are some cases where this setting is ignored, such as when forcing an editor to open in a specific group or to the side of the currently active group.'),
201
201
  'default': false
202
202
  },
203
+ 'workbench.editor.decorations.badges': {
204
+ 'type': 'boolean',
205
+ 'description': nls.localizeByDefault('Controls whether editor file decorations should use badges.'),
206
+ 'default': true
207
+ },
203
208
  'workbench.commandPalette.history': {
204
209
  type: 'number',
205
210
  default: 50,
@@ -295,6 +300,7 @@ export interface CoreConfiguration {
295
300
  'workbench.editor.mouseBackForwardToNavigate': boolean;
296
301
  'workbench.editor.closeOnFileDelete': boolean;
297
302
  'workbench.editor.revealIfOpen': boolean;
303
+ 'workbench.editor.decorations.badges': boolean;
298
304
  'workbench.colorTheme': string;
299
305
  'workbench.iconTheme': string;
300
306
  'workbench.silentNotifications': boolean;
@@ -78,7 +78,7 @@ class DecorationProviderWrapper {
78
78
  this.data.clear();
79
79
  } else {
80
80
  for (const uri of uris) {
81
- this.fetchData(new URI(uri.toString()));
81
+ this.fetchData(uri);
82
82
  const decoration = await provider.provideDecorations(uri, CancellationToken.None);
83
83
  if (decoration) {
84
84
  this.decorations.set(uri.toString(), decoration);
@@ -131,14 +131,14 @@ class DecorationProviderWrapper {
131
131
  private fetchData(uri: URI): Decoration | undefined {
132
132
 
133
133
  // check for pending request and cancel it
134
- const pendingRequest = this.data.get(new URI(uri.toString()));
134
+ const pendingRequest = this.data.get(uri);
135
135
  if (pendingRequest instanceof DecorationDataRequest) {
136
136
  pendingRequest.source.cancel();
137
137
  this.data.delete(uri);
138
138
  }
139
139
 
140
140
  const source = new CancellationTokenSource();
141
- const dataOrThenable = this.provider.provideDecorations(new URI(uri.toString()), source.token);
141
+ const dataOrThenable = this.provider.provideDecorations(uri, source.token);
142
142
  if (!isThenable<Decoration | Promise<Decoration | undefined> | undefined>(dataOrThenable)) {
143
143
  // sync -> we have a result now
144
144
  return this.keepItem(uri, dataOrThenable);
@@ -197,7 +197,7 @@ export class DecorationsServiceImpl implements DecorationsService {
197
197
  const data: Decoration[] = [];
198
198
  let containsChildren: boolean = false;
199
199
  for (const wrapper of this.data) {
200
- wrapper.getOrRetrieve(new URI(uri.toString()), includeChildren, (deco, isChild) => {
200
+ wrapper.getOrRetrieve(uri, includeChildren, (deco, isChild) => {
201
201
  if (!isChild || deco.bubble) {
202
202
  data.push(deco);
203
203
  containsChildren = isChild || containsChildren;
@@ -139,6 +139,7 @@ import { bindCommonStylingParticipants } from './common-styling-participants';
139
139
  import { HoverService } from './hover-service';
140
140
  import { AdditionalViewsMenuWidget, AdditionalViewsMenuWidgetFactory } from './shell/additional-views-menu-widget';
141
141
  import { LanguageIconLabelProvider } from './language-icon-provider';
142
+ import { bindTreePreferences } from './tree';
142
143
 
143
144
  export { bindResourceProvider, bindMessageService, bindPreferenceService };
144
145
 
@@ -199,7 +200,9 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
199
200
  const commandService = container.get<CommandService>(CommandService);
200
201
  const corePreferences = container.get<CorePreferences>(CorePreferences);
201
202
  const hoverService = container.get(HoverService);
202
- return new TabBarRenderer(contextMenuRenderer, tabBarDecoratorService, iconThemeService, selectionService, commandService, corePreferences, hoverService);
203
+ const contextKeyService: ContextKeyService = container.get(ContextKeyService);
204
+ return new TabBarRenderer(contextMenuRenderer, tabBarDecoratorService, iconThemeService,
205
+ selectionService, commandService, corePreferences, hoverService, contextKeyService);
203
206
  });
204
207
  bind(TheiaDockPanel.Factory).toFactory(({ container }) => (options?: DockPanel.IOptions) => {
205
208
  const corePreferences = container.get<CorePreferences>(CorePreferences);
@@ -346,7 +349,6 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
346
349
  });
347
350
  bind(FrontendConnectionStatusService).toSelf().inSingletonScope();
348
351
  bind(ConnectionStatusService).toService(FrontendConnectionStatusService);
349
- bind(FrontendApplicationContribution).toService(FrontendConnectionStatusService);
350
352
  bind(ApplicationConnectionStatusContribution).toSelf().inSingletonScope();
351
353
  bind(FrontendApplicationContribution).toService(ApplicationConnectionStatusContribution);
352
354
 
@@ -366,6 +368,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
366
368
  bind(ThemeService).toSelf().inSingletonScope();
367
369
 
368
370
  bindCorePreferences(bind);
371
+ bindTreePreferences(bind);
369
372
 
370
373
  bind(MimeService).toSelf().inSingletonScope();
371
374
 
@@ -19,6 +19,7 @@
19
19
  *--------------------------------------------------------------------------------------------*/
20
20
  // code copied and modified from https://github.com/Microsoft/vscode/blob/main/src/vs/platform/theme/common/iconRegistry.ts
21
21
 
22
+ import { ThemeIcon } from '../common/theme';
22
23
  import { URI } from 'vscode-uri';
23
24
 
24
25
  export interface IconDefinition {
@@ -48,16 +49,6 @@ export interface IconFontSource {
48
49
  readonly location: URI;
49
50
  readonly format: string;
50
51
  }
51
-
52
- export interface ThemeIcon {
53
- readonly id: string;
54
- readonly color?: ThemeColor;
55
- }
56
-
57
- export interface ThemeColor {
58
- id: string;
59
- }
60
-
61
52
  export const IconRegistry = Symbol('IconRegistry');
62
53
  export interface IconRegistry {
63
54
  /**
@@ -497,6 +497,9 @@ export class KeybindingRegistry {
497
497
 
498
498
  isEnabledInScope(binding: common.Keybinding, target: HTMLElement | undefined): boolean {
499
499
  const context = binding.context && this.contexts[binding.context];
500
+ if (binding.command && !this.commandRegistry.isEnabled(binding.command, binding.args)) {
501
+ return false;
502
+ }
500
503
  if (context && !context.isEnabled(binding)) {
501
504
  return false;
502
505
  }
@@ -24,7 +24,7 @@ import { codicon } from '../widgets';
24
24
 
25
25
  // #region Copied from Copied from https://github.com/microsoft/vscode/blob/7d9b1c37f8e5ae3772782ba3b09d827eb3fdd833/src/vs/base/browser/formattedTextRenderer.ts
26
26
  export interface ContentActionHandler {
27
- callback: (content: string, event?: MouseEvent) => void;
27
+ callback: (content: string, event?: MouseEvent | KeyboardEvent) => void;
28
28
  readonly disposables: DisposableGroup;
29
29
  }
30
30
 
@@ -87,38 +87,58 @@ export class WebSocketConnectionSource implements ConnectionSource {
87
87
  this._socket.connect();
88
88
  }
89
89
 
90
- protected handleSocketConnected(): void {
91
- if (this.currentChannel) {
92
- const reconnectListener = (hasConnection: boolean) => {
93
- this._socket.off(ConnectionManagementMessages.RECONNECT, reconnectListener);
94
- if (hasConnection) {
95
- this.writeBuffer.flush(this.socket);
90
+ protected negogiateReconnect(): void {
91
+ const reconnectListener = (hasConnection: boolean) => {
92
+ this._socket.off(ConnectionManagementMessages.RECONNECT, reconnectListener);
93
+ if (hasConnection) {
94
+ console.info(`reconnect succeeded on ${this.socket.id}`);
95
+ this.writeBuffer!.flush(this.socket);
96
+ } else {
97
+ if (FrontendApplicationConfigProvider.get().reloadOnReconnect) {
98
+ window.location.reload(); // this might happen in the preload module, when we have no window service yet
96
99
  } else {
97
- if (FrontendApplicationConfigProvider.get().reloadOnReconnect) {
98
- window.location.reload(); // this might happen in the preload module, when we have no window service yet
99
- } else {
100
- this.connectNewChannel();
101
- }
100
+ console.info(`reconnect failed on ${this.socket.id}`);
101
+ this.currentChannel.onCloseEmitter.fire({ reason: 'reconnecting channel' });
102
+ this.currentChannel.close();
103
+ this.writeBuffer.drain();
104
+ this.socket.disconnect();
105
+ this.socket.connect();
106
+ this.negotiateInitialConnect();
102
107
  }
103
- };
104
- this._socket.on(ConnectionManagementMessages.RECONNECT, reconnectListener);
105
- this._socket.emit(ConnectionManagementMessages.RECONNECT, this.frontendIdProvider.getId());
108
+ }
109
+ };
110
+ this._socket.on(ConnectionManagementMessages.RECONNECT, reconnectListener);
111
+ console.info(`sending reconnect on ${this.socket.id}`);
112
+ this._socket.emit(ConnectionManagementMessages.RECONNECT, this.frontendIdProvider.getId());
113
+ }
114
+
115
+ protected negotiateInitialConnect(): void {
116
+ const initialConnectListener = () => {
117
+ console.info(`initial connect received on ${this.socket.id}`);
118
+
119
+ this._socket.off(ConnectionManagementMessages.INITIAL_CONNECT, initialConnectListener);
120
+ this.connectNewChannel();
121
+ };
122
+ this._socket.on(ConnectionManagementMessages.INITIAL_CONNECT, initialConnectListener);
123
+ console.info(`sending initial connect on ${this.socket.id}`);
124
+
125
+ this._socket.emit(ConnectionManagementMessages.INITIAL_CONNECT, this.frontendIdProvider.getId());
126
+ }
127
+
128
+ protected handleSocketConnected(): void {
129
+ if (this.currentChannel) {
130
+ this.negogiateReconnect();
106
131
  } else {
107
- const initialConnectListener = () => {
108
- this._socket.off(ConnectionManagementMessages.INITIAL_CONNECT, initialConnectListener);
109
- this.connectNewChannel();
110
- };
111
- this._socket.on(ConnectionManagementMessages.INITIAL_CONNECT, initialConnectListener);
112
- this._socket.emit(ConnectionManagementMessages.INITIAL_CONNECT, this.frontendIdProvider.getId());
132
+ this.negotiateInitialConnect();
113
133
  }
114
134
  }
115
135
 
116
136
  connectNewChannel(): void {
117
137
  if (this.currentChannel) {
118
- this.writeBuffer.drain();
119
138
  this.currentChannel.close();
120
139
  this.currentChannel.onCloseEmitter.fire({ reason: 'reconnecting channel' });
121
140
  }
141
+ this.writeBuffer.drain();
122
142
  this.currentChannel = this.createChannel();
123
143
  this.onConnectionDidOpenEmitter.fire(this.currentChannel);
124
144
  }
@@ -15,7 +15,7 @@
15
15
  ********************************************************************************/
16
16
 
17
17
  import { inject, injectable } from 'inversify';
18
- import { MessageService, UNTITLED_SCHEME } from '../common';
18
+ import { MessageService, UNTITLED_SCHEME, URI } from '../common';
19
19
  import { Navigatable, NavigatableWidget } from './navigatable-types';
20
20
  import { Saveable, SaveableSource, SaveOptions } from './saveable';
21
21
  import { Widget } from './widgets';
@@ -41,11 +41,12 @@ export class SaveResourceService {
41
41
  *
42
42
  * No op if the widget is not saveable.
43
43
  */
44
- async save(widget: Widget | undefined, options?: SaveOptions): Promise<void> {
44
+ async save(widget: Widget | undefined, options?: SaveOptions): Promise<URI | undefined> {
45
45
  if (this.canSaveNotSaveAs(widget)) {
46
46
  await Saveable.save(widget, options);
47
+ return NavigatableWidget.getUri(widget);
47
48
  } else if (this.canSaveAs(widget)) {
48
- await this.saveAs(widget, options);
49
+ return this.saveAs(widget, options);
49
50
  }
50
51
  }
51
52
 
@@ -53,7 +54,7 @@ export class SaveResourceService {
53
54
  return false;
54
55
  }
55
56
 
56
- saveAs(sourceWidget: Widget & SaveableSource & Navigatable, options?: SaveOptions): Promise<void> {
57
+ saveAs(sourceWidget: Widget & SaveableSource & Navigatable, options?: SaveOptions): Promise<URI | undefined> {
57
58
  return Promise.reject('Unsupported: The base SaveResourceService does not support saveAs action.');
58
59
  }
59
60
  }
@@ -132,16 +132,19 @@ export class DockPanelRenderer implements DockLayout.IRenderer {
132
132
  getDynamicTabOptions());
133
133
  this.tabBarClasses.forEach(c => tabBar.addClass(c));
134
134
  renderer.tabBar = tabBar;
135
- tabBar.disposed.connect(() => renderer.dispose());
136
135
  renderer.contextMenuPath = SHELL_TABBAR_CONTEXT_MENU;
137
136
  tabBar.currentChanged.connect(this.onCurrentTabChanged, this);
138
- this.corePreferences.onPreferenceChanged(change => {
137
+ const prefChangeDisposable = this.corePreferences.onPreferenceChanged(change => {
139
138
  if (change.preferenceName === 'workbench.tab.shrinkToFit.enabled' ||
140
139
  change.preferenceName === 'workbench.tab.shrinkToFit.minimumSize' ||
141
140
  change.preferenceName === 'workbench.tab.shrinkToFit.defaultSize') {
142
141
  tabBar.dynamicTabOptions = getDynamicTabOptions();
143
142
  }
144
143
  });
144
+ tabBar.disposed.connect(() => {
145
+ prefChangeDisposable.dispose();
146
+ renderer.dispose();
147
+ });
145
148
  this.onDidCreateTabBarEmitter.fire(tabBar);
146
149
  return tabBar;
147
150
  }
@@ -1229,7 +1232,9 @@ export class ApplicationShell extends Widget {
1229
1232
  Saveable.apply(
1230
1233
  widget,
1231
1234
  () => this.widgets.filter((maybeSaveable): maybeSaveable is Widget & SaveableSource => !!Saveable.get(maybeSaveable)),
1232
- (toSave, options) => this.saveResourceService.save(toSave, options),
1235
+ async (toSave, options) => {
1236
+ await this.saveResourceService.save(toSave, options);
1237
+ },
1233
1238
  );
1234
1239
  if (ApplicationShell.TrackableWidgetProvider.is(widget)) {
1235
1240
  for (const toTrack of widget.getTrackableWidgets()) {
@@ -17,9 +17,12 @@
17
17
  import debounce = require('lodash.debounce');
18
18
  import { Title, Widget } from '@phosphor/widgets';
19
19
  import { inject, injectable, named } from 'inversify';
20
- import { Event, Emitter, ContributionProvider } from '../../common';
21
- import { WidgetDecoration } from '../widget-decoration';
20
+ import { ContributionProvider, Emitter, Event } from '../../common';
21
+ import { ColorRegistry } from '../color-registry';
22
+ import { Decoration, DecorationsService, DecorationsServiceImpl } from '../decorations-service';
22
23
  import { FrontendApplicationContribution } from '../frontend-application-contribution';
24
+ import { Navigatable } from '../navigatable-types';
25
+ import { WidgetDecoration } from '../widget-decoration';
23
26
 
24
27
  export const TabBarDecorator = Symbol('TabBarDecorator');
25
28
 
@@ -53,6 +56,12 @@ export class TabBarDecoratorService implements FrontendApplicationContribution {
53
56
  @inject(ContributionProvider) @named(TabBarDecorator)
54
57
  protected readonly contributions: ContributionProvider<TabBarDecorator>;
55
58
 
59
+ @inject(DecorationsService)
60
+ protected readonly decorationsService: DecorationsServiceImpl;
61
+
62
+ @inject(ColorRegistry)
63
+ protected readonly colors: ColorRegistry;
64
+
56
65
  initialize(): void {
57
66
  this.contributions.getContributions().map(decorator => decorator.onDidChangeDecorations(this.fireDidChangeDecorations));
58
67
  }
@@ -66,11 +75,32 @@ export class TabBarDecoratorService implements FrontendApplicationContribution {
66
75
  */
67
76
  getDecorations(title: Title<Widget>): WidgetDecoration.Data[] {
68
77
  const decorators = this.contributions.getContributions();
69
- let all: WidgetDecoration.Data[] = [];
78
+ const decorations: WidgetDecoration.Data[] = [];
70
79
  for (const decorator of decorators) {
71
- const decorations = decorator.decorate(title);
72
- all = all.concat(decorations);
80
+ decorations.push(...decorator.decorate(title));
73
81
  }
74
- return all;
82
+ if (Navigatable.is(title.owner)) {
83
+ const resourceUri = title.owner.getResourceUri();
84
+ if (resourceUri) {
85
+ const serviceDecorations = this.decorationsService.getDecoration(resourceUri, false);
86
+ decorations.push(...serviceDecorations.map(d => this.fromDecoration(d)));
87
+ }
88
+ }
89
+ return decorations;
90
+ }
91
+
92
+ protected fromDecoration(decoration: Decoration): WidgetDecoration.Data {
93
+ const colorVariable = decoration.colorId && this.colors.toCssVariableName(decoration.colorId);
94
+ return {
95
+ tailDecorations: [
96
+ {
97
+ data: decoration.letter ? decoration.letter : '',
98
+ fontData: {
99
+ color: colorVariable && `var(${colorVariable})`
100
+ },
101
+ tooltip: decoration.tooltip ? decoration.tooltip : ''
102
+ }
103
+ ]
104
+ };
75
105
  }
76
106
  }
@@ -17,7 +17,7 @@
17
17
  import PerfectScrollbar from 'perfect-scrollbar';
18
18
  import { TabBar, Title, Widget } from '@phosphor/widgets';
19
19
  import { VirtualElement, h, VirtualDOM, ElementInlineStyle } from '@phosphor/virtualdom';
20
- import { Disposable, DisposableCollection, MenuPath, notEmpty, SelectionService, CommandService, nls } from '../../common';
20
+ import { Disposable, DisposableCollection, MenuPath, notEmpty, SelectionService, CommandService, nls, ArrayUtils } from '../../common';
21
21
  import { ContextMenuRenderer } from '../context-menu-renderer';
22
22
  import { Signal, Slot } from '@phosphor/signaling';
23
23
  import { Message, MessageLoop } from '@phosphor/messaging';
@@ -39,6 +39,7 @@ import { SelectComponent } from '../widgets/select-component';
39
39
  import { createElement } from 'react';
40
40
  import { PreviewableWidget } from '../widgets/previewable-widget';
41
41
  import { EnhancedPreviewWidget } from '../widgets/enhanced-preview-widget';
42
+ import { ContextKeyService } from '../context-key-service';
42
43
 
43
44
  /** The class name added to hidden content nodes, which are required to render vertical side bars. */
44
45
  const HIDDEN_CONTENT_CLASS = 'theia-TabBar-hidden-content';
@@ -102,7 +103,8 @@ export class TabBarRenderer extends TabBar.Renderer {
102
103
  protected readonly selectionService?: SelectionService,
103
104
  protected readonly commandService?: CommandService,
104
105
  protected readonly corePreferences?: CorePreferences,
105
- protected readonly hoverService?: HoverService
106
+ protected readonly hoverService?: HoverService,
107
+ protected readonly contextKeyService?: ContextKeyService,
106
108
  ) {
107
109
  super();
108
110
  if (this.decoratorService) {
@@ -170,8 +172,8 @@ export class TabBarRenderer extends TabBar.Renderer {
170
172
  const hover = this.tabBar && (this.tabBar.orientation === 'horizontal' && this.corePreferences?.['window.tabbar.enhancedPreview'] === 'classic')
171
173
  ? { title: title.caption }
172
174
  : {
173
- onmouseenter: this.handleMouseEnterEvent
174
- };
175
+ onmouseenter: this.handleMouseEnterEvent
176
+ };
175
177
 
176
178
  return h.li(
177
179
  {
@@ -188,6 +190,7 @@ export class TabBarRenderer extends TabBar.Renderer {
188
190
  { className: 'theia-tab-icon-label' },
189
191
  this.renderIcon(data, isInSidePanel),
190
192
  this.renderLabel(data, isInSidePanel),
193
+ this.renderTailDecorations(data, isInSidePanel),
191
194
  this.renderBadge(data, isInSidePanel),
192
195
  this.renderLock(data, isInSidePanel)
193
196
  ),
@@ -289,6 +292,37 @@ export class TabBarRenderer extends TabBar.Renderer {
289
292
  return h.div({ className: 'p-TabBar-tabLabel', style }, data.title.label);
290
293
  }
291
294
 
295
+ protected renderTailDecorations(renderData: SideBarRenderData, isInSidePanel?: boolean): VirtualElement[] {
296
+ if (!this.corePreferences?.get('workbench.editor.decorations.badges')) {
297
+ return [];
298
+ }
299
+ const tailDecorations = ArrayUtils.coalesce(this.getDecorationData(renderData.title, 'tailDecorations')).flat();
300
+ if (tailDecorations === undefined || tailDecorations.length === 0) {
301
+ return [];
302
+ }
303
+ let dotDecoration: WidgetDecoration.TailDecoration.AnyPartial | undefined;
304
+ const otherDecorations: WidgetDecoration.TailDecoration.AnyPartial[] = [];
305
+ tailDecorations.reverse().forEach(decoration => {
306
+ const partial = decoration as WidgetDecoration.TailDecoration.AnyPartial;
307
+ if (WidgetDecoration.TailDecoration.isDotDecoration(partial)) {
308
+ dotDecoration ||= partial;
309
+ } else if (partial.data || partial.icon || partial.iconClass) {
310
+ otherDecorations.push(partial);
311
+ }
312
+ });
313
+ const decorationsToRender = dotDecoration ? [dotDecoration, ...otherDecorations] : otherDecorations;
314
+ return decorationsToRender.map((decoration, index) => {
315
+ const { tooltip, data, fontData, color, icon, iconClass } = decoration;
316
+ const iconToRender = icon ?? iconClass;
317
+ const className = ['p-TabBar-tail', 'flex'].join(' ');
318
+ const style = fontData ? fontData : color ? { color } : undefined;
319
+ const content = (data ? data : iconToRender
320
+ ? h.span({ className: this.getIconClass(iconToRender, iconToRender === 'circle' ? [WidgetDecoration.Styles.DECORATOR_SIZE_CLASS] : []) })
321
+ : '') + (index !== decorationsToRender.length - 1 ? ',' : '');
322
+ return h.span({ key: ('tailDecoration_' + index), className, style, title: tooltip ?? content }, content);
323
+ });
324
+ }
325
+
292
326
  renderBadge(data: SideBarRenderData, isInSidePanel?: boolean): VirtualElement {
293
327
  const totalBadge = this.getDecorationData(data.title, 'badge').reduce((sum, badge) => sum! + badge!, 0);
294
328
  if (!totalBadge) {
@@ -614,10 +648,12 @@ export class TabBarRenderer extends TabBar.Renderer {
614
648
  this.selectionService.selection = NavigatableWidget.is(widget) ? { uri: widget.getResourceUri() } : widget;
615
649
  }
616
650
 
651
+ const contextKeyServiceOverlay = this.contextKeyService?.createOverlay([['isTerminalTab', widget && 'terminalId' in widget]]);
617
652
  this.contextMenuRenderer.render({
618
653
  menuPath: this.contextMenuPath!,
619
654
  anchor: event,
620
655
  args: [event],
656
+ contextKeyService: contextKeyServiceOverlay,
621
657
  // We'd like to wait until the command triggered by the context menu has been run, but this should let it get through the preamble, at least.
622
658
  onHide: () => setTimeout(() => { if (this.selectionService) { this.selectionService.selection = oldSelection; } })
623
659
  });
@@ -967,7 +1003,7 @@ export class ToolbarAwareTabBar extends ScrollableTabBar {
967
1003
 
968
1004
  protected override onBeforeDetach(msg: Message): void {
969
1005
  if (this.toolbar && this.toolbar.isAttached) {
970
- Widget.detach(this.toolbar);
1006
+ this.toolbar.dispose();
971
1007
  }
972
1008
  super.onBeforeDetach(msg);
973
1009
  }