@theia/core 1.46.0-next.200 → 1.46.0-next.226

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 (872) hide show
  1. package/README.md +6 -6
  2. package/i18n/nls.cs.json +12 -1
  3. package/i18n/nls.de.json +12 -1
  4. package/i18n/nls.es.json +12 -1
  5. package/i18n/nls.fr.json +12 -1
  6. package/i18n/nls.hu.json +12 -1
  7. package/i18n/nls.it.json +12 -1
  8. package/i18n/nls.ja.json +12 -1
  9. package/i18n/nls.json +12 -1
  10. package/i18n/nls.pl.json +12 -1
  11. package/i18n/nls.pt-br.json +12 -1
  12. package/i18n/nls.pt-pt.json +12 -1
  13. package/i18n/nls.ru.json +12 -1
  14. package/i18n/nls.zh-cn.json +12 -1
  15. package/lib/browser/about-dialog.js +14 -14
  16. package/lib/browser/about-dialog.js.map +1 -1
  17. package/lib/browser/authentication-service.js +12 -12
  18. package/lib/browser/authentication-service.js.map +1 -1
  19. package/lib/browser/breadcrumbs/breadcrumb-popup-container.d.ts +1 -1
  20. package/lib/browser/breadcrumbs/breadcrumb-popup-container.d.ts.map +1 -1
  21. package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +12 -12
  22. package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -1
  23. package/lib/browser/breadcrumbs/breadcrumb-renderer.js +2 -2
  24. package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -1
  25. package/lib/browser/breadcrumbs/breadcrumbs-constants.js +1 -1
  26. package/lib/browser/breadcrumbs/breadcrumbs-constants.js.map +1 -1
  27. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +14 -14
  28. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
  29. package/lib/browser/breadcrumbs/breadcrumbs-service.js +10 -10
  30. package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -1
  31. package/lib/browser/breadcrumbs/index.js +5 -5
  32. package/lib/browser/breadcrumbs/index.js.map +1 -1
  33. package/lib/browser/browser-clipboard-service.js +6 -6
  34. package/lib/browser/browser-clipboard-service.js.map +1 -1
  35. package/lib/browser/browser.d.ts +1 -1
  36. package/lib/browser/browser.d.ts.map +1 -1
  37. package/lib/browser/browser.js.map +1 -1
  38. package/lib/browser/color-application-contribution.js +10 -10
  39. package/lib/browser/color-application-contribution.js.map +1 -1
  40. package/lib/browser/color-registry.js +2 -2
  41. package/lib/browser/color-registry.js.map +1 -1
  42. package/lib/browser/command-open-handler.js +4 -4
  43. package/lib/browser/command-open-handler.js.map +1 -1
  44. package/lib/browser/common-frontend-contribution.d.ts +3 -3
  45. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  46. package/lib/browser/common-frontend-contribution.js +54 -54
  47. package/lib/browser/common-frontend-contribution.js.map +1 -1
  48. package/lib/browser/common-styling-participants.js +16 -16
  49. package/lib/browser/common-styling-participants.js.map +1 -1
  50. package/lib/browser/connection-status-service.js +26 -26
  51. package/lib/browser/connection-status-service.js.map +1 -1
  52. package/lib/browser/connection-status-service.spec.js.map +1 -1
  53. package/lib/browser/context-key-service.d.ts +2 -2
  54. package/lib/browser/context-key-service.d.ts.map +1 -1
  55. package/lib/browser/context-key-service.js +3 -3
  56. package/lib/browser/context-key-service.js.map +1 -1
  57. package/lib/browser/context-menu-renderer.d.ts +1 -1
  58. package/lib/browser/context-menu-renderer.d.ts.map +1 -1
  59. package/lib/browser/context-menu-renderer.js +2 -2
  60. package/lib/browser/context-menu-renderer.js.map +1 -1
  61. package/lib/browser/core-preferences.d.ts +1 -1
  62. package/lib/browser/core-preferences.d.ts.map +1 -1
  63. package/lib/browser/core-preferences.js +1 -1
  64. package/lib/browser/core-preferences.js.map +1 -1
  65. package/lib/browser/credentials-service.js +4 -4
  66. package/lib/browser/credentials-service.js.map +1 -1
  67. package/lib/browser/decoration-style.js +1 -1
  68. package/lib/browser/decoration-style.js.map +1 -1
  69. package/lib/browser/decorations-service.js +2 -2
  70. package/lib/browser/decorations-service.js.map +1 -1
  71. package/lib/browser/dialogs/react-dialog.js +4 -4
  72. package/lib/browser/dialogs/react-dialog.js.map +1 -1
  73. package/lib/browser/dialogs.d.ts +2 -2
  74. package/lib/browser/dialogs.d.ts.map +1 -1
  75. package/lib/browser/dialogs.js +31 -31
  76. package/lib/browser/dialogs.js.map +1 -1
  77. package/lib/browser/diff-uris.js +5 -5
  78. package/lib/browser/diff-uris.js.map +1 -1
  79. package/lib/browser/encoding-registry.js +6 -6
  80. package/lib/browser/encoding-registry.js.map +1 -1
  81. package/lib/browser/endpoint.js +1 -1
  82. package/lib/browser/endpoint.js.map +1 -1
  83. package/lib/browser/external-uri-service.js +2 -2
  84. package/lib/browser/external-uri-service.js.map +1 -1
  85. package/lib/browser/frontend-application-bindings.js.map +1 -1
  86. package/lib/browser/frontend-application-config-provider.js.map +1 -1
  87. package/lib/browser/frontend-application-contribution.js +3 -3
  88. package/lib/browser/frontend-application-contribution.js.map +1 -1
  89. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  90. package/lib/browser/frontend-application-module.js +8 -5
  91. package/lib/browser/frontend-application-module.js.map +1 -1
  92. package/lib/browser/frontend-application-state.js +4 -4
  93. package/lib/browser/frontend-application-state.js.map +1 -1
  94. package/lib/browser/frontend-application.js +21 -21
  95. package/lib/browser/frontend-application.js.map +1 -1
  96. package/lib/browser/hover-service.d.ts +1 -1
  97. package/lib/browser/hover-service.d.ts.map +1 -1
  98. package/lib/browser/hover-service.js +7 -7
  99. package/lib/browser/hover-service.js.map +1 -1
  100. package/lib/browser/http-open-handler.js +6 -6
  101. package/lib/browser/http-open-handler.js.map +1 -1
  102. package/lib/browser/i18n/language-quick-pick-service.js +8 -8
  103. package/lib/browser/i18n/language-quick-pick-service.js.map +1 -1
  104. package/lib/browser/icon-theme-contribution.js +8 -8
  105. package/lib/browser/icon-theme-contribution.js.map +1 -1
  106. package/lib/browser/icon-theme-service.js +14 -14
  107. package/lib/browser/icon-theme-service.js.map +1 -1
  108. package/lib/browser/index.d.ts +1 -0
  109. package/lib/browser/index.d.ts.map +1 -1
  110. package/lib/browser/index.js +33 -32
  111. package/lib/browser/index.js.map +1 -1
  112. package/lib/browser/json-schema-store.js +8 -8
  113. package/lib/browser/json-schema-store.js.map +1 -1
  114. package/lib/browser/keybinding.d.ts +1 -1
  115. package/lib/browser/keybinding.d.ts.map +1 -1
  116. package/lib/browser/keybinding.js +22 -23
  117. package/lib/browser/keybinding.js.map +1 -1
  118. package/lib/browser/keybinding.spec.js +4 -4
  119. package/lib/browser/keybinding.spec.js.map +1 -1
  120. package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +7 -7
  121. package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
  122. package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts +2 -2
  123. package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts.map +1 -1
  124. package/lib/browser/keyboard/browser-keyboard-layout-provider.js +13 -13
  125. package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
  126. package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +1 -1
  127. package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
  128. package/lib/browser/keyboard/index.js +4 -4
  129. package/lib/browser/keyboard/index.js.map +1 -1
  130. package/lib/browser/keyboard/keyboard-layout-service.js +8 -8
  131. package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
  132. package/lib/browser/keyboard/keyboard-layout-service.spec.js +1 -1
  133. package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
  134. package/lib/browser/keyboard/keys.js +1 -1
  135. package/lib/browser/keyboard/keys.js.map +1 -1
  136. package/lib/browser/label-parser.d.ts +1 -1
  137. package/lib/browser/label-parser.d.ts.map +1 -1
  138. package/lib/browser/label-parser.js +3 -3
  139. package/lib/browser/label-parser.js.map +1 -1
  140. package/lib/browser/label-provider.js +13 -13
  141. package/lib/browser/label-provider.js.map +1 -1
  142. package/lib/browser/label-provider.spec.js.map +1 -1
  143. package/lib/browser/language-icon-provider.js +10 -10
  144. package/lib/browser/language-icon-provider.js.map +1 -1
  145. package/lib/browser/language-service.js +2 -2
  146. package/lib/browser/language-service.js.map +1 -1
  147. package/lib/browser/logger-frontend-module.js.map +1 -1
  148. package/lib/browser/markdown-rendering/markdown-renderer.js +8 -8
  149. package/lib/browser/markdown-rendering/markdown-renderer.js.map +1 -1
  150. package/lib/browser/menu/browser-context-menu-renderer.js +4 -4
  151. package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
  152. package/lib/browser/menu/browser-menu-plugin.js +27 -27
  153. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  154. package/lib/browser/menu/context-menu-context.js +8 -8
  155. package/lib/browser/menu/context-menu-context.js.map +1 -1
  156. package/lib/browser/messaging/frontend-id-provider.js +2 -2
  157. package/lib/browser/messaging/frontend-id-provider.js.map +1 -1
  158. package/lib/browser/messaging/index.js +2 -2
  159. package/lib/browser/messaging/index.js.map +1 -1
  160. package/lib/browser/messaging/service-connection-provider.js +8 -8
  161. package/lib/browser/messaging/service-connection-provider.js.map +1 -1
  162. package/lib/browser/messaging/ws-connection-provider.js +4 -4
  163. package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
  164. package/lib/browser/messaging/ws-connection-source.js +16 -16
  165. package/lib/browser/messaging/ws-connection-source.js.map +1 -1
  166. package/lib/browser/mime-service.js +2 -2
  167. package/lib/browser/mime-service.js.map +1 -1
  168. package/lib/browser/navigatable-types.d.ts +1 -1
  169. package/lib/browser/navigatable-types.d.ts.map +1 -1
  170. package/lib/browser/navigatable-types.js +3 -3
  171. package/lib/browser/navigatable-types.js.map +1 -1
  172. package/lib/browser/navigatable.js +1 -1
  173. package/lib/browser/navigatable.js.map +1 -1
  174. package/lib/browser/open-with-service.js +4 -4
  175. package/lib/browser/open-with-service.js.map +1 -1
  176. package/lib/browser/opener-service.js +5 -5
  177. package/lib/browser/opener-service.js.map +1 -1
  178. package/lib/browser/performance/frontend-stopwatch.js +3 -3
  179. package/lib/browser/performance/frontend-stopwatch.js.map +1 -1
  180. package/lib/browser/performance/index.js +2 -2
  181. package/lib/browser/performance/index.js.map +1 -1
  182. package/lib/browser/preferences/index.js +7 -7
  183. package/lib/browser/preferences/index.js.map +1 -1
  184. package/lib/browser/preferences/injectable-preference-proxy.js +14 -14
  185. package/lib/browser/preferences/injectable-preference-proxy.js.map +1 -1
  186. package/lib/browser/preferences/preference-configurations.js +4 -4
  187. package/lib/browser/preferences/preference-configurations.js.map +1 -1
  188. package/lib/browser/preferences/preference-contribution.js +11 -11
  189. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  190. package/lib/browser/preferences/preference-language-override-service.js +3 -3
  191. package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
  192. package/lib/browser/preferences/preference-provider.js +6 -6
  193. package/lib/browser/preferences/preference-provider.js.map +1 -1
  194. package/lib/browser/preferences/preference-proxy.d.ts +2 -2
  195. package/lib/browser/preferences/preference-proxy.d.ts.map +1 -1
  196. package/lib/browser/preferences/preference-proxy.js.map +1 -1
  197. package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
  198. package/lib/browser/preferences/preference-service.d.ts +2 -2
  199. package/lib/browser/preferences/preference-service.d.ts.map +1 -1
  200. package/lib/browser/preferences/preference-service.js +14 -14
  201. package/lib/browser/preferences/preference-service.js.map +1 -1
  202. package/lib/browser/preferences/preference-service.spec.js.map +1 -1
  203. package/lib/browser/preferences/preference-validation-service.d.ts +2 -2
  204. package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
  205. package/lib/browser/preferences/preference-validation-service.js +6 -6
  206. package/lib/browser/preferences/preference-validation-service.js.map +1 -1
  207. package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
  208. package/lib/browser/preferences/test/index.js +3 -3
  209. package/lib/browser/preferences/test/index.js.map +1 -1
  210. package/lib/browser/preferences/test/mock-preference-proxy.js.map +1 -1
  211. package/lib/browser/preferences/test/mock-preference-service.js +3 -3
  212. package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
  213. package/lib/browser/preload/i18n-preload-contribution.js +4 -4
  214. package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
  215. package/lib/browser/preload/os-preload-contribution.js +4 -4
  216. package/lib/browser/preload/os-preload-contribution.js.map +1 -1
  217. package/lib/browser/preload/preloader.js +4 -4
  218. package/lib/browser/preload/preloader.js.map +1 -1
  219. package/lib/browser/preload/theme-preload-contribution.js +2 -2
  220. package/lib/browser/preload/theme-preload-contribution.js.map +1 -1
  221. package/lib/browser/progress-bar.js +14 -14
  222. package/lib/browser/progress-bar.js.map +1 -1
  223. package/lib/browser/progress-client.js +6 -6
  224. package/lib/browser/progress-client.js.map +1 -1
  225. package/lib/browser/progress-location-service.js +2 -2
  226. package/lib/browser/progress-location-service.js.map +1 -1
  227. package/lib/browser/progress-status-bar-item.js +4 -4
  228. package/lib/browser/progress-status-bar-item.js.map +1 -1
  229. package/lib/browser/quick-input/index.js +8 -8
  230. package/lib/browser/quick-input/index.js.map +1 -1
  231. package/lib/browser/quick-input/quick-command-frontend-contribution.js +6 -6
  232. package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
  233. package/lib/browser/quick-input/quick-command-service.js +12 -12
  234. package/lib/browser/quick-input/quick-command-service.js.map +1 -1
  235. package/lib/browser/quick-input/quick-help-service.js +6 -6
  236. package/lib/browser/quick-input/quick-help-service.js.map +1 -1
  237. package/lib/browser/quick-input/quick-input-frontend-contribution.js +4 -4
  238. package/lib/browser/quick-input/quick-input-frontend-contribution.js.map +1 -1
  239. package/lib/browser/quick-input/quick-input-service.js +1 -1
  240. package/lib/browser/quick-input/quick-input-service.js.map +1 -1
  241. package/lib/browser/quick-input/quick-pick-service-impl.js +4 -4
  242. package/lib/browser/quick-input/quick-pick-service-impl.js.map +1 -1
  243. package/lib/browser/quick-input/quick-view-service.js +6 -6
  244. package/lib/browser/quick-input/quick-view-service.js.map +1 -1
  245. package/lib/browser/request/browser-request-service.js +14 -14
  246. package/lib/browser/request/browser-request-service.js.map +1 -1
  247. package/lib/browser/resource-context-key.js +10 -10
  248. package/lib/browser/resource-context-key.js.map +1 -1
  249. package/lib/browser/saveable-service.d.ts +72 -0
  250. package/lib/browser/saveable-service.d.ts.map +1 -0
  251. package/lib/browser/saveable-service.js +294 -0
  252. package/lib/browser/saveable-service.js.map +1 -0
  253. package/lib/browser/saveable.d.ts +27 -6
  254. package/lib/browser/saveable.d.ts.map +1 -1
  255. package/lib/browser/saveable.js +33 -98
  256. package/lib/browser/saveable.js.map +1 -1
  257. package/lib/browser/secondary-window-handler.js +8 -8
  258. package/lib/browser/secondary-window-handler.js.map +1 -1
  259. package/lib/browser/shell/additional-views-menu-widget.d.ts +3 -3
  260. package/lib/browser/shell/additional-views-menu-widget.d.ts.map +1 -1
  261. package/lib/browser/shell/additional-views-menu-widget.js +14 -10
  262. package/lib/browser/shell/additional-views-menu-widget.js.map +1 -1
  263. package/lib/browser/shell/application-shell-mouse-tracker.js +5 -6
  264. package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
  265. package/lib/browser/shell/application-shell.d.ts +4 -4
  266. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  267. package/lib/browser/shell/application-shell.js +53 -57
  268. package/lib/browser/shell/application-shell.js.map +1 -1
  269. package/lib/browser/shell/current-widget-command-adapter.d.ts +2 -2
  270. package/lib/browser/shell/current-widget-command-adapter.d.ts.map +1 -1
  271. package/lib/browser/shell/current-widget-command-adapter.js.map +1 -1
  272. package/lib/browser/shell/index.js +7 -7
  273. package/lib/browser/shell/index.js.map +1 -1
  274. package/lib/browser/shell/shell-layout-restorer.js +15 -16
  275. package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
  276. package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
  277. package/lib/browser/shell/side-panel-handler.js +25 -24
  278. package/lib/browser/shell/side-panel-handler.js.map +1 -1
  279. package/lib/browser/shell/side-panel-toolbar.js.map +1 -1
  280. package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -2
  281. package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
  282. package/lib/browser/shell/sidebar-menu-widget.js +7 -7
  283. package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
  284. package/lib/browser/shell/sidebar-top-menu-widget.js +2 -2
  285. package/lib/browser/shell/sidebar-top-menu-widget.js.map +1 -1
  286. package/lib/browser/shell/split-panels.js +2 -2
  287. package/lib/browser/shell/split-panels.js.map +1 -1
  288. package/lib/browser/shell/tab-bar-decorator.js +8 -8
  289. package/lib/browser/shell/tab-bar-decorator.js.map +1 -1
  290. package/lib/browser/shell/tab-bar-toolbar/index.js +3 -3
  291. package/lib/browser/shell/tab-bar-toolbar/index.js.map +1 -1
  292. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +10 -10
  293. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  294. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +4 -4
  295. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
  296. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +24 -25
  297. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  298. package/lib/browser/shell/tab-bars.d.ts +6 -5
  299. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  300. package/lib/browser/shell/tab-bars.js +41 -52
  301. package/lib/browser/shell/tab-bars.js.map +1 -1
  302. package/lib/browser/shell/theia-dock-panel.js +4 -4
  303. package/lib/browser/shell/theia-dock-panel.js.map +1 -1
  304. package/lib/browser/shell/view-column-service.d.ts +24 -0
  305. package/lib/browser/shell/view-column-service.d.ts.map +1 -0
  306. package/lib/browser/shell/view-column-service.js +119 -0
  307. package/lib/browser/shell/view-column-service.js.map +1 -0
  308. package/lib/browser/shell/view-contribution.js +9 -9
  309. package/lib/browser/shell/view-contribution.js.map +1 -1
  310. package/lib/browser/source-tree/index.js +3 -3
  311. package/lib/browser/source-tree/index.js.map +1 -1
  312. package/lib/browser/source-tree/source-tree-widget.js +6 -6
  313. package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
  314. package/lib/browser/source-tree/source-tree.d.ts +1 -1
  315. package/lib/browser/source-tree/source-tree.d.ts.map +1 -1
  316. package/lib/browser/source-tree/source-tree.js +5 -5
  317. package/lib/browser/source-tree/source-tree.js.map +1 -1
  318. package/lib/browser/source-tree/tree-source.js +8 -8
  319. package/lib/browser/source-tree/tree-source.js.map +1 -1
  320. package/lib/browser/status-bar/index.js +3 -3
  321. package/lib/browser/status-bar/index.js.map +1 -1
  322. package/lib/browser/status-bar/status-bar-types.js +1 -1
  323. package/lib/browser/status-bar/status-bar-types.js.map +1 -1
  324. package/lib/browser/status-bar/status-bar-view-model.js +2 -2
  325. package/lib/browser/status-bar/status-bar-view-model.js.map +1 -1
  326. package/lib/browser/status-bar/status-bar.js +9 -9
  327. package/lib/browser/status-bar/status-bar.js.map +1 -1
  328. package/lib/browser/storage-service.js +12 -12
  329. package/lib/browser/storage-service.js.map +1 -1
  330. package/lib/browser/styling-service.js +10 -10
  331. package/lib/browser/styling-service.js.map +1 -1
  332. package/lib/browser/test/jsdom.js.map +1 -1
  333. package/lib/browser/test/mock-opener-service.js +2 -2
  334. package/lib/browser/test/mock-opener-service.js.map +1 -1
  335. package/lib/browser/test/mock-storage-service.d.ts +1 -1
  336. package/lib/browser/test/mock-storage-service.d.ts.map +1 -1
  337. package/lib/browser/test/mock-storage-service.js +2 -2
  338. package/lib/browser/test/mock-storage-service.js.map +1 -1
  339. package/lib/browser/theming.js +10 -10
  340. package/lib/browser/theming.js.map +1 -1
  341. package/lib/browser/tooltip-service.js +11 -11
  342. package/lib/browser/tooltip-service.js.map +1 -1
  343. package/lib/browser/tree/fuzzy-search.js +2 -2
  344. package/lib/browser/tree/fuzzy-search.js.map +1 -1
  345. package/lib/browser/tree/index.js +13 -13
  346. package/lib/browser/tree/index.js.map +1 -1
  347. package/lib/browser/tree/search-box-debounce.js +1 -1
  348. package/lib/browser/tree/search-box-debounce.js.map +1 -1
  349. package/lib/browser/tree/search-box.js +2 -2
  350. package/lib/browser/tree/search-box.js.map +1 -1
  351. package/lib/browser/tree/test/mock-selectable-tree-model.js +1 -1
  352. package/lib/browser/tree/test/mock-selectable-tree-model.js.map +1 -1
  353. package/lib/browser/tree/test/mock-tree-model.js +1 -1
  354. package/lib/browser/tree/test/mock-tree-model.js.map +1 -1
  355. package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js +6 -6
  356. package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js.map +1 -1
  357. package/lib/browser/tree/tree-compression/compressed-tree-model.js +6 -6
  358. package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -1
  359. package/lib/browser/tree/tree-compression/compressed-tree-widget.js +10 -10
  360. package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
  361. package/lib/browser/tree/tree-compression/index.js +4 -4
  362. package/lib/browser/tree/tree-compression/index.js.map +1 -1
  363. package/lib/browser/tree/tree-compression/tree-compression-service.d.ts +1 -1
  364. package/lib/browser/tree/tree-compression/tree-compression-service.d.ts.map +1 -1
  365. package/lib/browser/tree/tree-compression/tree-compression-service.js +2 -2
  366. package/lib/browser/tree/tree-compression/tree-compression-service.js.map +1 -1
  367. package/lib/browser/tree/tree-consistency.spec.js +1 -1
  368. package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
  369. package/lib/browser/tree/tree-container.d.ts +2 -2
  370. package/lib/browser/tree/tree-container.d.ts.map +1 -1
  371. package/lib/browser/tree/tree-container.js.map +1 -1
  372. package/lib/browser/tree/tree-decorator.js +6 -6
  373. package/lib/browser/tree/tree-decorator.js.map +1 -1
  374. package/lib/browser/tree/tree-expansion.js +9 -9
  375. package/lib/browser/tree/tree-expansion.js.map +1 -1
  376. package/lib/browser/tree/tree-focus-service.js +4 -4
  377. package/lib/browser/tree/tree-focus-service.js.map +1 -1
  378. package/lib/browser/tree/tree-iterator.js +2 -2
  379. package/lib/browser/tree/tree-iterator.js.map +1 -1
  380. package/lib/browser/tree/tree-iterator.spec.js.map +1 -1
  381. package/lib/browser/tree/tree-label-provider.js +2 -2
  382. package/lib/browser/tree/tree-label-provider.js.map +1 -1
  383. package/lib/browser/tree/tree-model.js +20 -20
  384. package/lib/browser/tree/tree-model.js.map +1 -1
  385. package/lib/browser/tree/tree-navigation.js +2 -2
  386. package/lib/browser/tree/tree-navigation.js.map +1 -1
  387. package/lib/browser/tree/tree-preference.d.ts +1 -1
  388. package/lib/browser/tree/tree-preference.d.ts.map +1 -1
  389. package/lib/browser/tree/tree-search.js +12 -12
  390. package/lib/browser/tree/tree-search.js.map +1 -1
  391. package/lib/browser/tree/tree-selectable.spec.js.map +1 -1
  392. package/lib/browser/tree/tree-selection-impl.js +10 -10
  393. package/lib/browser/tree/tree-selection-impl.js.map +1 -1
  394. package/lib/browser/tree/tree-selection-state.js +1 -1
  395. package/lib/browser/tree/tree-selection-state.js.map +1 -1
  396. package/lib/browser/tree/tree-selection-state.spec.js +2 -2
  397. package/lib/browser/tree/tree-selection-state.spec.js.map +1 -1
  398. package/lib/browser/tree/tree-selection.js +2 -2
  399. package/lib/browser/tree/tree-selection.js.map +1 -1
  400. package/lib/browser/tree/tree-view-welcome-widget.d.ts +1 -1
  401. package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
  402. package/lib/browser/tree/tree-view-welcome-widget.js +8 -8
  403. package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
  404. package/lib/browser/tree/tree-widget-selection.d.ts +1 -1
  405. package/lib/browser/tree/tree-widget-selection.d.ts.map +1 -1
  406. package/lib/browser/tree/tree-widget-selection.js +1 -1
  407. package/lib/browser/tree/tree-widget-selection.js.map +1 -1
  408. package/lib/browser/tree/tree-widget.js +27 -28
  409. package/lib/browser/tree/tree-widget.js.map +1 -1
  410. package/lib/browser/tree/tree.js +5 -5
  411. package/lib/browser/tree/tree.js.map +1 -1
  412. package/lib/browser/tree/tree.spec.js.map +1 -1
  413. package/lib/browser/user-working-directory-provider.js +6 -6
  414. package/lib/browser/user-working-directory-provider.js.map +1 -1
  415. package/lib/browser/view-container.js +37 -38
  416. package/lib/browser/view-container.js.map +1 -1
  417. package/lib/browser/widget-decoration.js +1 -1
  418. package/lib/browser/widget-decoration.js.map +1 -1
  419. package/lib/browser/widget-manager.js +6 -6
  420. package/lib/browser/widget-manager.js.map +1 -1
  421. package/lib/browser/widget-open-handler.d.ts +1 -1
  422. package/lib/browser/widget-open-handler.d.ts.map +1 -1
  423. package/lib/browser/widget-open-handler.js +10 -10
  424. package/lib/browser/widget-open-handler.js.map +1 -1
  425. package/lib/browser/widgets/alert-message.d.ts +1 -1
  426. package/lib/browser/widgets/alert-message.d.ts.map +1 -1
  427. package/lib/browser/widgets/enhanced-preview-widget.js +1 -1
  428. package/lib/browser/widgets/enhanced-preview-widget.js.map +1 -1
  429. package/lib/browser/widgets/extractable-widget.js +1 -1
  430. package/lib/browser/widgets/extractable-widget.js.map +1 -1
  431. package/lib/browser/widgets/index.js +4 -4
  432. package/lib/browser/widgets/index.js.map +1 -1
  433. package/lib/browser/widgets/previewable-widget.js +1 -1
  434. package/lib/browser/widgets/previewable-widget.js.map +1 -1
  435. package/lib/browser/widgets/react-renderer.d.ts +1 -1
  436. package/lib/browser/widgets/react-renderer.d.ts.map +1 -1
  437. package/lib/browser/widgets/react-renderer.js +5 -5
  438. package/lib/browser/widgets/react-renderer.js.map +1 -1
  439. package/lib/browser/widgets/react-widget.js +4 -4
  440. package/lib/browser/widgets/react-widget.js.map +1 -1
  441. package/lib/browser/widgets/select-component.js.map +1 -1
  442. package/lib/browser/widgets/widget.d.ts +2 -2
  443. package/lib/browser/widgets/widget.d.ts.map +1 -1
  444. package/lib/browser/widgets/widget.js +7 -7
  445. package/lib/browser/widgets/widget.js.map +1 -1
  446. package/lib/browser/window/default-secondary-window-service.d.ts +2 -0
  447. package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
  448. package/lib/browser/window/default-secondary-window-service.js +17 -12
  449. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  450. package/lib/browser/window/default-window-service.js +6 -6
  451. package/lib/browser/window/default-window-service.js.map +1 -1
  452. package/lib/browser/window/test/mock-window-service.js +2 -2
  453. package/lib/browser/window/test/mock-window-service.js.map +1 -1
  454. package/lib/browser/window/window-title-service.js +8 -8
  455. package/lib/browser/window/window-title-service.js.map +1 -1
  456. package/lib/browser/window/window-title-updater.js +6 -6
  457. package/lib/browser/window/window-title-updater.js.map +1 -1
  458. package/lib/browser/window-contribution.js +5 -5
  459. package/lib/browser/window-contribution.js.map +1 -1
  460. package/lib/browser-only/frontend-only-application-module.js.map +1 -1
  461. package/lib/browser-only/logger-frontend-only-module.js.map +1 -1
  462. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +4 -4
  463. package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -1
  464. package/lib/browser-only/messaging/messaging-frontend-only-module.js.map +1 -1
  465. package/lib/browser-only/preload/frontend-only-preload-module.js.map +1 -1
  466. package/lib/common/application-error.js +1 -1
  467. package/lib/common/application-error.js.map +1 -1
  468. package/lib/common/array-utils.d.ts +2 -2
  469. package/lib/common/array-utils.d.ts.map +1 -1
  470. package/lib/common/array-utils.js +1 -1
  471. package/lib/common/array-utils.js.map +1 -1
  472. package/lib/common/buffer.js +8 -8
  473. package/lib/common/buffer.js.map +1 -1
  474. package/lib/common/cancellation.js +1 -1
  475. package/lib/common/cancellation.js.map +1 -1
  476. package/lib/common/char-code.d.ts +180 -180
  477. package/lib/common/char-code.d.ts.map +1 -1
  478. package/lib/common/collections.js.map +1 -1
  479. package/lib/common/color.d.ts +1 -1
  480. package/lib/common/color.d.ts.map +1 -1
  481. package/lib/common/color.js +1 -1
  482. package/lib/common/color.js.map +1 -1
  483. package/lib/common/command.js +6 -6
  484. package/lib/common/command.js.map +1 -1
  485. package/lib/common/contribution-filter/contribution-filter-registry.js +5 -5
  486. package/lib/common/contribution-filter/contribution-filter-registry.js.map +1 -1
  487. package/lib/common/contribution-filter/contribution-filter.d.ts +1 -1
  488. package/lib/common/contribution-filter/contribution-filter.d.ts.map +1 -1
  489. package/lib/common/contribution-filter/filter.d.ts +1 -1
  490. package/lib/common/contribution-filter/filter.d.ts.map +1 -1
  491. package/lib/common/contribution-filter/index.js +3 -3
  492. package/lib/common/contribution-filter/index.js.map +1 -1
  493. package/lib/common/contribution-provider.d.ts +1 -1
  494. package/lib/common/contribution-provider.d.ts.map +1 -1
  495. package/lib/common/contribution-provider.js +1 -1
  496. package/lib/common/contribution-provider.js.map +1 -1
  497. package/lib/common/disposable.d.ts +1 -1
  498. package/lib/common/disposable.d.ts.map +1 -1
  499. package/lib/common/disposable.js +2 -2
  500. package/lib/common/disposable.js.map +1 -1
  501. package/lib/common/encoding-service.js +2 -2
  502. package/lib/common/encoding-service.js.map +1 -1
  503. package/lib/common/env-variables/index.js +1 -1
  504. package/lib/common/env-variables/index.js.map +1 -1
  505. package/lib/common/event.d.ts +2 -2
  506. package/lib/common/event.d.ts.map +1 -1
  507. package/lib/common/event.js +2 -2
  508. package/lib/common/event.js.map +1 -1
  509. package/lib/common/file-uri.js +1 -1
  510. package/lib/common/file-uri.js.map +1 -1
  511. package/lib/common/frontend-application-state.d.ts +1 -1
  512. package/lib/common/frontend-application-state.d.ts.map +1 -1
  513. package/lib/common/frontend-application-state.js +1 -1
  514. package/lib/common/frontend-application-state.js.map +1 -1
  515. package/lib/common/glob.d.ts +2 -2
  516. package/lib/common/glob.d.ts.map +1 -1
  517. package/lib/common/glob.js +1 -1
  518. package/lib/common/glob.js.map +1 -1
  519. package/lib/common/hash.js.map +1 -1
  520. package/lib/common/i18n/localization.d.ts +1 -1
  521. package/lib/common/i18n/localization.d.ts.map +1 -1
  522. package/lib/common/i18n/localization.js +1 -1
  523. package/lib/common/i18n/localization.js.map +1 -1
  524. package/lib/common/index.js +33 -33
  525. package/lib/common/index.js.map +1 -1
  526. package/lib/common/json-schema.d.ts +1 -1
  527. package/lib/common/json-schema.d.ts.map +1 -1
  528. package/lib/common/keybinding.js +2 -2
  529. package/lib/common/keybinding.js.map +1 -1
  530. package/lib/common/keyboard/keyboard-layout-provider.d.ts +1 -0
  531. package/lib/common/keyboard/keyboard-layout-provider.d.ts.map +1 -1
  532. package/lib/common/keys.d.ts +2 -2
  533. package/lib/common/keys.d.ts.map +1 -1
  534. package/lib/common/keys.js +7 -7
  535. package/lib/common/keys.js.map +1 -1
  536. package/lib/common/logger-protocol.js +5 -5
  537. package/lib/common/logger-protocol.js.map +1 -1
  538. package/lib/common/logger-watcher.js +2 -2
  539. package/lib/common/logger-watcher.js.map +1 -1
  540. package/lib/common/logger.d.ts +3 -3
  541. package/lib/common/logger.d.ts.map +1 -1
  542. package/lib/common/logger.js +14 -14
  543. package/lib/common/logger.js.map +1 -1
  544. package/lib/common/logger.spec.js.map +1 -1
  545. package/lib/common/lsp-types.js +1 -1
  546. package/lib/common/lsp-types.js.map +1 -1
  547. package/lib/common/markdown-rendering/icon-utilities.js +1 -1
  548. package/lib/common/markdown-rendering/icon-utilities.js.map +1 -1
  549. package/lib/common/markdown-rendering/index.js +2 -2
  550. package/lib/common/markdown-rendering/index.js.map +1 -1
  551. package/lib/common/markdown-rendering/markdown-string.js +2 -2
  552. package/lib/common/markdown-rendering/markdown-string.js.map +1 -1
  553. package/lib/common/menu/action-menu-node.js.map +1 -1
  554. package/lib/common/menu/composite-menu-node.js +1 -1
  555. package/lib/common/menu/composite-menu-node.js.map +1 -1
  556. package/lib/common/menu/composite-menu-node.spec.js +5 -5
  557. package/lib/common/menu/composite-menu-node.spec.js.map +1 -1
  558. package/lib/common/menu/index.js +5 -5
  559. package/lib/common/menu/index.js.map +1 -1
  560. package/lib/common/menu/menu-adapter.d.ts +1 -1
  561. package/lib/common/menu/menu-adapter.d.ts.map +1 -1
  562. package/lib/common/menu/menu-adapter.js +8 -8
  563. package/lib/common/menu/menu-adapter.js.map +1 -1
  564. package/lib/common/menu/menu-model-registry.js +6 -6
  565. package/lib/common/menu/menu-model-registry.js.map +1 -1
  566. package/lib/common/menu/menu-types.d.ts +2 -2
  567. package/lib/common/menu/menu-types.d.ts.map +1 -1
  568. package/lib/common/menu/menu-types.js +5 -5
  569. package/lib/common/menu/menu-types.js.map +1 -1
  570. package/lib/common/menu/menu.spec.js.map +1 -1
  571. package/lib/common/message-rpc/channel.d.ts +1 -1
  572. package/lib/common/message-rpc/channel.d.ts.map +1 -1
  573. package/lib/common/message-rpc/channel.js +11 -11
  574. package/lib/common/message-rpc/channel.js.map +1 -1
  575. package/lib/common/message-rpc/msg-pack-extension-manager.d.ts +1 -1
  576. package/lib/common/message-rpc/msg-pack-extension-manager.d.ts.map +1 -1
  577. package/lib/common/message-rpc/msg-pack-extension-manager.js +3 -3
  578. package/lib/common/message-rpc/msg-pack-extension-manager.js.map +1 -1
  579. package/lib/common/message-rpc/rpc-message-encoder.d.ts +1 -1
  580. package/lib/common/message-rpc/rpc-message-encoder.d.ts.map +1 -1
  581. package/lib/common/message-rpc/rpc-message-encoder.js +5 -5
  582. package/lib/common/message-rpc/rpc-message-encoder.js.map +1 -1
  583. package/lib/common/message-rpc/rpc-protocol.d.ts +1 -1
  584. package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
  585. package/lib/common/message-rpc/rpc-protocol.js +8 -8
  586. package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
  587. package/lib/common/message-rpc/uint8-array-message-buffer.js.map +1 -1
  588. package/lib/common/message-service-protocol.js +4 -4
  589. package/lib/common/message-service-protocol.js.map +1 -1
  590. package/lib/common/message-service.js +4 -4
  591. package/lib/common/message-service.js.map +1 -1
  592. package/lib/common/messaging/connection-error-handler.d.ts +1 -1
  593. package/lib/common/messaging/connection-error-handler.d.ts.map +1 -1
  594. package/lib/common/messaging/connection-error-handler.js.map +1 -1
  595. package/lib/common/messaging/connection-management.js +1 -1
  596. package/lib/common/messaging/connection-management.js.map +1 -1
  597. package/lib/common/messaging/index.js +3 -3
  598. package/lib/common/messaging/index.js.map +1 -1
  599. package/lib/common/messaging/proxy-factory.d.ts +6 -6
  600. package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
  601. package/lib/common/messaging/proxy-factory.js.map +1 -1
  602. package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
  603. package/lib/common/messaging/socket-write-buffer.js.map +1 -1
  604. package/lib/common/messaging/web-socket-channel.d.ts +1 -1
  605. package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
  606. package/lib/common/messaging/web-socket-channel.js.map +1 -1
  607. package/lib/common/nls.js +1 -1
  608. package/lib/common/nls.js.map +1 -1
  609. package/lib/common/objects.js.map +1 -1
  610. package/lib/common/os.d.ts +1 -1
  611. package/lib/common/os.d.ts.map +1 -1
  612. package/lib/common/os.js +1 -1
  613. package/lib/common/os.js.map +1 -1
  614. package/lib/common/path.js +17 -17
  615. package/lib/common/path.js.map +1 -1
  616. package/lib/common/paths.js +11 -11
  617. package/lib/common/paths.js.map +1 -1
  618. package/lib/common/performance/index.js +3 -3
  619. package/lib/common/performance/index.js.map +1 -1
  620. package/lib/common/performance/measurement-protocol.d.ts +1 -1
  621. package/lib/common/performance/measurement-protocol.d.ts.map +1 -1
  622. package/lib/common/performance/measurement-protocol.js +6 -6
  623. package/lib/common/performance/measurement-protocol.js.map +1 -1
  624. package/lib/common/performance/stopwatch.js +8 -8
  625. package/lib/common/performance/stopwatch.js.map +1 -1
  626. package/lib/common/preferences/preference-schema.js +3 -3
  627. package/lib/common/preferences/preference-schema.js.map +1 -1
  628. package/lib/common/preferences/preference-scope.js +2 -2
  629. package/lib/common/preferences/preference-scope.js.map +1 -1
  630. package/lib/common/prioritizeable.js +1 -1
  631. package/lib/common/prioritizeable.js.map +1 -1
  632. package/lib/common/progress-service.js +6 -6
  633. package/lib/common/progress-service.js.map +1 -1
  634. package/lib/common/promise-util.js.map +1 -1
  635. package/lib/common/promise-util.spec.js.map +1 -1
  636. package/lib/common/quick-pick-service.d.ts +3 -3
  637. package/lib/common/quick-pick-service.d.ts.map +1 -1
  638. package/lib/common/quick-pick-service.js +3 -3
  639. package/lib/common/quick-pick-service.js.map +1 -1
  640. package/lib/common/reference.js.map +1 -1
  641. package/lib/common/resource.d.ts +1 -1
  642. package/lib/common/resource.d.ts.map +1 -1
  643. package/lib/common/resource.js +16 -16
  644. package/lib/common/resource.js.map +1 -1
  645. package/lib/common/selection-command-handler.d.ts +1 -1
  646. package/lib/common/selection-command-handler.d.ts.map +1 -1
  647. package/lib/common/selection-command-handler.js.map +1 -1
  648. package/lib/common/selection-service.js +2 -2
  649. package/lib/common/selection-service.js.map +1 -1
  650. package/lib/common/selection.js +1 -1
  651. package/lib/common/selection.js.map +1 -1
  652. package/lib/common/severity.js +2 -2
  653. package/lib/common/severity.js.map +1 -1
  654. package/lib/common/stream.js +1 -1
  655. package/lib/common/stream.js.map +1 -1
  656. package/lib/common/strings.js +2 -2
  657. package/lib/common/strings.js.map +1 -1
  658. package/lib/common/ternary-search-tree.js +21 -21
  659. package/lib/common/ternary-search-tree.js.map +1 -1
  660. package/lib/common/test/expect.js.map +1 -1
  661. package/lib/common/test/mock-logger.js +2 -2
  662. package/lib/common/test/mock-logger.js.map +1 -1
  663. package/lib/common/test/mock-resource-provider.js +3 -3
  664. package/lib/common/test/mock-resource-provider.js.map +1 -1
  665. package/lib/common/theme.d.ts +1 -1
  666. package/lib/common/theme.d.ts.map +1 -1
  667. package/lib/common/types.d.ts +8 -8
  668. package/lib/common/types.d.ts.map +1 -1
  669. package/lib/common/types.js.map +1 -1
  670. package/lib/common/types.spec.js.map +1 -1
  671. package/lib/common/uri-command-handler.js +1 -1
  672. package/lib/common/uri-command-handler.js.map +1 -1
  673. package/lib/common/uri.js +6 -6
  674. package/lib/common/uri.js.map +1 -1
  675. package/lib/common/view-column.js +1 -1
  676. package/lib/common/view-column.js.map +1 -1
  677. package/lib/electron-browser/electron-clipboard-service.js +2 -2
  678. package/lib/electron-browser/electron-clipboard-service.js.map +1 -1
  679. package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +6 -6
  680. package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -1
  681. package/lib/electron-browser/menu/electron-context-menu-renderer.js +17 -17
  682. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  683. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -1
  684. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
  685. package/lib/electron-browser/menu/electron-main-menu-factory.js +12 -12
  686. package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
  687. package/lib/electron-browser/menu/electron-menu-contribution.d.ts +1 -1
  688. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  689. package/lib/electron-browser/menu/electron-menu-contribution.js +31 -31
  690. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  691. package/lib/electron-browser/menu/electron-menu-module.js.map +1 -1
  692. package/lib/electron-browser/messaging/electron-frontend-id-provider.js +2 -2
  693. package/lib/electron-browser/messaging/electron-frontend-id-provider.js.map +1 -1
  694. package/lib/electron-browser/messaging/electron-ipc-connection-source.js +3 -3
  695. package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -1
  696. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js +2 -2
  697. package/lib/electron-browser/messaging/electron-local-ws-connection-source.js.map +1 -1
  698. package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
  699. package/lib/electron-browser/messaging/electron-ws-connection-source.js +3 -3
  700. package/lib/electron-browser/messaging/electron-ws-connection-source.js.map +1 -1
  701. package/lib/electron-browser/preload.js.map +1 -1
  702. package/lib/electron-browser/window/electron-frontend-application-state.js +2 -2
  703. package/lib/electron-browser/window/electron-frontend-application-state.js.map +1 -1
  704. package/lib/electron-browser/window/electron-secondary-window-service.js +2 -2
  705. package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
  706. package/lib/electron-browser/window/electron-window-preferences.d.ts +1 -1
  707. package/lib/electron-browser/window/electron-window-preferences.d.ts.map +1 -1
  708. package/lib/electron-browser/window/electron-window-preferences.js +2 -2
  709. package/lib/electron-browser/window/electron-window-preferences.js.map +1 -1
  710. package/lib/electron-browser/window/electron-window-service.js +14 -14
  711. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  712. package/lib/electron-common/electron-api.d.ts +3 -3
  713. package/lib/electron-common/electron-api.d.ts.map +1 -1
  714. package/lib/electron-main/electron-api-main.js +5 -5
  715. package/lib/electron-main/electron-api-main.js.map +1 -1
  716. package/lib/electron-main/electron-main-application.d.ts.map +1 -1
  717. package/lib/electron-main/electron-main-application.js +17 -16
  718. package/lib/electron-main/electron-main-application.js.map +1 -1
  719. package/lib/electron-main/electron-main-window-service-impl.js +4 -4
  720. package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
  721. package/lib/electron-main/electron-security-token-service.js +4 -4
  722. package/lib/electron-main/electron-security-token-service.js.map +1 -1
  723. package/lib/electron-main/event-utils.js.map +1 -1
  724. package/lib/electron-main/messaging/electron-messaging-contribution.js +10 -10
  725. package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
  726. package/lib/electron-main/messaging/electron-messaging-service.js +1 -1
  727. package/lib/electron-main/messaging/electron-messaging-service.js.map +1 -1
  728. package/lib/electron-main/theia-electron-window.d.ts +1 -1
  729. package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
  730. package/lib/electron-main/theia-electron-window.js +12 -12
  731. package/lib/electron-main/theia-electron-window.js.map +1 -1
  732. package/lib/electron-node/cli/electron-backend-cli-module.d.ts +4 -0
  733. package/lib/electron-node/cli/electron-backend-cli-module.d.ts.map +1 -0
  734. package/lib/electron-node/cli/electron-backend-cli-module.js +25 -0
  735. package/lib/electron-node/cli/electron-backend-cli-module.js.map +1 -0
  736. package/lib/electron-node/cli/electron-cli-contribution.d.ts +23 -0
  737. package/lib/electron-node/cli/electron-cli-contribution.d.ts.map +1 -0
  738. package/lib/electron-node/cli/electron-cli-contribution.js +35 -0
  739. package/lib/electron-node/cli/electron-cli-contribution.js.map +1 -0
  740. package/lib/electron-node/hosting/electron-ws-origin-validator.js +4 -4
  741. package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
  742. package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js +2 -2
  743. package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js.map +1 -1
  744. package/lib/electron-node/request/electron-backend-request-service.js +2 -2
  745. package/lib/electron-node/request/electron-backend-request-service.js.map +1 -1
  746. package/lib/electron-node/token/electron-token-backend-contribution.js +4 -4
  747. package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
  748. package/lib/electron-node/token/electron-token-validator.js +6 -6
  749. package/lib/electron-node/token/electron-token-validator.js.map +1 -1
  750. package/lib/node/application-server.js +4 -4
  751. package/lib/node/application-server.js.map +1 -1
  752. package/lib/node/backend-application-config-provider.js.map +1 -1
  753. package/lib/node/backend-application-module.js.map +1 -1
  754. package/lib/node/backend-application.d.ts +3 -1
  755. package/lib/node/backend-application.d.ts.map +1 -1
  756. package/lib/node/backend-application.js +16 -16
  757. package/lib/node/backend-application.js.map +1 -1
  758. package/lib/node/cli.js +7 -7
  759. package/lib/node/cli.js.map +1 -1
  760. package/lib/node/cli.spec.js.map +1 -1
  761. package/lib/node/console-logger-server.js +10 -10
  762. package/lib/node/console-logger-server.js.map +1 -1
  763. package/lib/node/console-logger-server.spec.js +5 -5
  764. package/lib/node/debug.js.map +1 -1
  765. package/lib/node/dynamic-require.js.map +1 -1
  766. package/lib/node/env-variables/env-variables-server.js +3 -3
  767. package/lib/node/env-variables/env-variables-server.js.map +1 -1
  768. package/lib/node/env-variables/index.js +1 -1
  769. package/lib/node/env-variables/index.js.map +1 -1
  770. package/lib/node/environment-utils.js +2 -2
  771. package/lib/node/environment-utils.js.map +1 -1
  772. package/lib/node/environment-utils.spec.js.map +1 -1
  773. package/lib/node/file-uri.spec.js.map +1 -1
  774. package/lib/node/filesystem-locking.js +2 -2
  775. package/lib/node/filesystem-locking.js.map +1 -1
  776. package/lib/node/hosting/backend-application-hosts.js +6 -6
  777. package/lib/node/hosting/backend-application-hosts.js.map +1 -1
  778. package/lib/node/hosting/ws-origin-validator.js +4 -4
  779. package/lib/node/hosting/ws-origin-validator.js.map +1 -1
  780. package/lib/node/i18n/localization-contribution.js +6 -6
  781. package/lib/node/i18n/localization-contribution.js.map +1 -1
  782. package/lib/node/i18n/localization-provider.js +3 -3
  783. package/lib/node/i18n/localization-provider.js.map +1 -1
  784. package/lib/node/i18n/localization-server.js +6 -6
  785. package/lib/node/i18n/localization-server.js.map +1 -1
  786. package/lib/node/i18n/theia-localization-contribution.js +2 -2
  787. package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
  788. package/lib/node/index.js +5 -5
  789. package/lib/node/index.js.map +1 -1
  790. package/lib/node/key-store-server.js +2 -2
  791. package/lib/node/key-store-server.js.map +1 -1
  792. package/lib/node/logger-backend-module.js.map +1 -1
  793. package/lib/node/logger-cli-contribution.js +4 -4
  794. package/lib/node/logger-cli-contribution.js.map +1 -1
  795. package/lib/node/logger-cli-contribution.spec.js.map +1 -1
  796. package/lib/node/main.d.ts +2 -0
  797. package/lib/node/main.d.ts.map +1 -1
  798. package/lib/node/messaging/binary-message-pipe.js +3 -3
  799. package/lib/node/messaging/binary-message-pipe.js.map +1 -1
  800. package/lib/node/messaging/connection-container-module.d.ts +3 -3
  801. package/lib/node/messaging/connection-container-module.d.ts.map +1 -1
  802. package/lib/node/messaging/default-messaging-service.js +10 -10
  803. package/lib/node/messaging/default-messaging-service.js.map +1 -1
  804. package/lib/node/messaging/index.js +3 -3
  805. package/lib/node/messaging/index.js.map +1 -1
  806. package/lib/node/messaging/ipc-channel.js.map +1 -1
  807. package/lib/node/messaging/ipc-connection-provider.d.ts +2 -1
  808. package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
  809. package/lib/node/messaging/ipc-connection-provider.js +4 -4
  810. package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
  811. package/lib/node/messaging/ipc-protocol.d.ts +1 -1
  812. package/lib/node/messaging/ipc-protocol.d.ts.map +1 -1
  813. package/lib/node/messaging/ipc-protocol.js +1 -1
  814. package/lib/node/messaging/ipc-protocol.js.map +1 -1
  815. package/lib/node/messaging/messaging-listeners.js +4 -4
  816. package/lib/node/messaging/messaging-listeners.js.map +1 -1
  817. package/lib/node/messaging/messaging-service.js +1 -1
  818. package/lib/node/messaging/messaging-service.js.map +1 -1
  819. package/lib/node/messaging/test/test-web-socket-channel.d.ts +1 -0
  820. package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
  821. package/lib/node/messaging/test/test-web-socket-channel.js +2 -2
  822. package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
  823. package/lib/node/messaging/websocket-endpoint.d.ts +1 -0
  824. package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -1
  825. package/lib/node/messaging/websocket-endpoint.js +6 -6
  826. package/lib/node/messaging/websocket-endpoint.js.map +1 -1
  827. package/lib/node/messaging/websocket-frontend-connection-service.js +4 -4
  828. package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -1
  829. package/lib/node/os-backend-provider.js +2 -2
  830. package/lib/node/os-backend-provider.js.map +1 -1
  831. package/lib/node/performance/index.js +2 -2
  832. package/lib/node/performance/index.js.map +1 -1
  833. package/lib/node/performance/node-stopwatch.js +3 -3
  834. package/lib/node/performance/node-stopwatch.js.map +1 -1
  835. package/lib/node/process-utils.js +2 -2
  836. package/lib/node/process-utils.js.map +1 -1
  837. package/lib/node/remote/backend-remote-service.js +2 -2
  838. package/lib/node/remote/backend-remote-service.js.map +1 -1
  839. package/lib/node/request/backend-request-facade.js +4 -4
  840. package/lib/node/request/backend-request-facade.js.map +1 -1
  841. package/lib/node/request/proxy-cli-contribution.js +4 -4
  842. package/lib/node/request/proxy-cli-contribution.js.map +1 -1
  843. package/lib/node/ws-request-validators.js +4 -4
  844. package/lib/node/ws-request-validators.js.map +1 -1
  845. package/package.json +10 -7
  846. package/src/browser/common-frontend-contribution.ts +3 -3
  847. package/src/browser/core-preferences.ts +1 -1
  848. package/src/browser/frontend-application-module.ts +13 -7
  849. package/src/browser/index.ts +1 -0
  850. package/src/browser/keybinding.spec.ts +2 -1
  851. package/src/browser/saveable-service.ts +328 -0
  852. package/src/browser/saveable.ts +43 -97
  853. package/src/browser/shell/additional-views-menu-widget.tsx +5 -5
  854. package/src/browser/shell/application-shell.ts +8 -15
  855. package/src/browser/shell/side-panel-handler.ts +2 -1
  856. package/src/browser/shell/tab-bars.ts +39 -56
  857. package/src/browser/shell/view-column-service.ts +125 -0
  858. package/src/browser/test/mock-storage-service.ts +1 -1
  859. package/src/browser/window/default-secondary-window-service.ts +6 -2
  860. package/src/common/encoding-service.ts +1 -1
  861. package/src/common/i18n/nls.metadata.json +11381 -8583
  862. package/src/common/selection-command-handler.ts +1 -1
  863. package/src/electron-browser/window/electron-window-preferences.ts +1 -1
  864. package/src/electron-main/electron-main-application.ts +1 -0
  865. package/src/electron-node/cli/electron-backend-cli-module.ts +24 -0
  866. package/src/electron-node/cli/electron-cli-contribution.ts +35 -0
  867. package/src/node/cli.ts +2 -2
  868. package/lib/browser/save-resource-service.d.ts +0 -36
  869. package/lib/browser/save-resource-service.d.ts.map +0 -1
  870. package/lib/browser/save-resource-service.js +0 -65
  871. package/lib/browser/save-resource-service.js.map +0 -1
  872. package/src/browser/save-resource-service.ts +0 -60
@@ -20,14 +20,23 @@ import { Emitter, Event } from '../common/event';
20
20
  import { MaybePromise } from '../common/types';
21
21
  import { Key } from './keyboard/keys';
22
22
  import { AbstractDialog } from './dialogs';
23
- import { waitForClosed } from './widgets';
24
23
  import { nls } from '../common/nls';
25
- import { Disposable, isObject } from '../common';
24
+ import { DisposableCollection, isObject } from '../common';
25
+
26
+ export type AutoSaveMode = 'off' | 'afterDelay' | 'onFocusChange' | 'onWindowChange';
26
27
 
27
28
  export interface Saveable {
28
29
  readonly dirty: boolean;
30
+ /**
31
+ * This event is fired when the content of the `dirty` variable changes.
32
+ */
29
33
  readonly onDirtyChanged: Event<void>;
30
- readonly autoSave: 'off' | 'afterDelay' | 'onFocusChange' | 'onWindowChange';
34
+ /**
35
+ * This event is fired when the content of the saveable changes.
36
+ * While `onDirtyChanged` is fired to notify the UI that the widget is dirty,
37
+ * `onContentChanged` is used for the auto save throttling.
38
+ */
39
+ readonly onContentChanged: Event<void>;
31
40
  /**
32
41
  * Saves dirty changes.
33
42
  */
@@ -53,11 +62,15 @@ export interface SaveableSource {
53
62
  export class DelegatingSaveable implements Saveable {
54
63
  dirty = false;
55
64
  protected readonly onDirtyChangedEmitter = new Emitter<void>();
65
+ protected readonly onContentChangedEmitter = new Emitter<void>();
56
66
 
57
67
  get onDirtyChanged(): Event<void> {
58
68
  return this.onDirtyChangedEmitter.event;
59
69
  }
60
- autoSave: 'off' | 'afterDelay' | 'onFocusChange' | 'onWindowChange' = 'off';
70
+
71
+ get onContentChanged(): Event<void> {
72
+ return this.onContentChangedEmitter.event;
73
+ }
61
74
 
62
75
  async save(options?: SaveOptions): Promise<void> {
63
76
  await this._delegate?.save(options);
@@ -68,16 +81,19 @@ export class DelegatingSaveable implements Saveable {
68
81
  applySnapshot?(snapshot: object): void;
69
82
 
70
83
  protected _delegate?: Saveable;
71
- protected toDispose?: Disposable;
84
+ protected toDispose = new DisposableCollection();
72
85
 
73
86
  set delegate(delegate: Saveable) {
74
- this.toDispose?.dispose();
87
+ this.toDispose.dispose();
88
+ this.toDispose = new DisposableCollection();
75
89
  this._delegate = delegate;
76
- this.toDispose = delegate.onDirtyChanged(() => {
90
+ this.toDispose.push(delegate.onDirtyChanged(() => {
77
91
  this.dirty = delegate.dirty;
78
92
  this.onDirtyChangedEmitter.fire();
79
- });
80
- this.autoSave = delegate.autoSave;
93
+ }));
94
+ this.toDispose.push(delegate.onContentChanged(() => {
95
+ this.onContentChangedEmitter.fire();
96
+ }));
81
97
  if (this.dirty !== delegate.dirty) {
82
98
  this.dirty = delegate.dirty;
83
99
  this.onDirtyChangedEmitter.fire();
@@ -131,52 +147,6 @@ export namespace Saveable {
131
147
  }
132
148
  }
133
149
 
134
- async function closeWithoutSaving(this: PostCreationSaveableWidget, doRevert: boolean = true): Promise<void> {
135
- const saveable = get(this);
136
- if (saveable && doRevert && saveable.dirty && saveable.revert) {
137
- await saveable.revert();
138
- }
139
- this[close]();
140
- return waitForClosed(this);
141
- }
142
-
143
- function createCloseWithSaving(
144
- getOtherSaveables?: () => Array<Widget | SaveableWidget>,
145
- doSave?: (widget: Widget, options?: SaveOptions) => Promise<void>
146
- ): (this: SaveableWidget, options?: SaveableWidget.CloseOptions) => Promise<void> {
147
- let closing = false;
148
- return async function (this: SaveableWidget, options: SaveableWidget.CloseOptions): Promise<void> {
149
- if (closing) { return; }
150
- const saveable = get(this);
151
- if (!saveable) { return; }
152
- closing = true;
153
- try {
154
- const result = await shouldSave(saveable, () => {
155
- const notLastWithDocument = !closingWidgetWouldLoseSaveable(this, getOtherSaveables?.() ?? []);
156
- if (notLastWithDocument) {
157
- return this.closeWithoutSaving(false).then(() => undefined);
158
- }
159
- if (options && options.shouldSave) {
160
- return options.shouldSave();
161
- }
162
- return new ShouldSaveDialog(this).open();
163
- });
164
- if (typeof result === 'boolean') {
165
- if (result) {
166
- await (doSave?.(this) ?? Saveable.save(this));
167
- if (!isDirty(this)) {
168
- await this.closeWithoutSaving();
169
- }
170
- } else {
171
- await this.closeWithoutSaving();
172
- }
173
- }
174
- } finally {
175
- closing = false;
176
- }
177
- };
178
- }
179
-
180
150
  export async function confirmSaveBeforeClose(toClose: Iterable<Widget>, others: Widget[]): Promise<boolean | undefined> {
181
151
  for (const widget of toClose) {
182
152
  const saveable = Saveable.get(widget);
@@ -197,49 +167,9 @@ export namespace Saveable {
197
167
  return true;
198
168
  }
199
169
 
200
- /**
201
- * @param widget the widget that may be closed
202
- * @param others widgets that will not be closed.
203
- * @returns `true` if widget is saveable and no widget among the `others` refers to the same saveable. `false` otherwise.
204
- */
205
- function closingWidgetWouldLoseSaveable(widget: Widget, others: Widget[]): boolean {
206
- const saveable = get(widget);
207
- return !!saveable && !others.some(otherWidget => otherWidget !== widget && get(otherWidget) === saveable);
208
- }
209
-
210
- export function apply(
211
- widget: Widget,
212
- getOtherSaveables?: () => Array<Widget | SaveableWidget>,
213
- doSave?: (widget: Widget, options?: SaveOptions) => Promise<void>,
214
- ): SaveableWidget | undefined {
215
- if (SaveableWidget.is(widget)) {
216
- return widget;
217
- }
170
+ export function closingWidgetWouldLoseSaveable(widget: Widget, others: Widget[]): boolean {
218
171
  const saveable = Saveable.get(widget);
219
- if (!saveable) {
220
- return undefined;
221
- }
222
- const saveableWidget = widget as SaveableWidget;
223
- setDirty(saveableWidget, saveable.dirty);
224
- saveable.onDirtyChanged(() => setDirty(saveableWidget, saveable.dirty));
225
- const closeWithSaving = createCloseWithSaving(getOtherSaveables, doSave);
226
- return Object.assign(saveableWidget, {
227
- closeWithoutSaving,
228
- closeWithSaving,
229
- close: closeWithSaving,
230
- [close]: saveableWidget.close,
231
- });
232
- }
233
- export async function shouldSave(saveable: Saveable, cb: () => MaybePromise<boolean | undefined>): Promise<boolean | undefined> {
234
- if (!saveable.dirty) {
235
- return false;
236
- }
237
-
238
- if (saveable.autoSave !== 'off') {
239
- return true;
240
- }
241
-
242
- return cb();
172
+ return !!saveable && !others.some(otherWidget => otherWidget !== widget && Saveable.get(otherWidget) === saveable);
243
173
  }
244
174
  }
245
175
 
@@ -302,11 +232,27 @@ export const enum FormatType {
302
232
  DIRTY
303
233
  };
304
234
 
235
+ export enum SaveReason {
236
+ Manual = 1,
237
+ AfterDelay = 2,
238
+ FocusChange = 3
239
+ }
240
+
241
+ export namespace SaveReason {
242
+ export function isManual(reason?: number): reason is typeof SaveReason.Manual {
243
+ return reason === SaveReason.Manual;
244
+ }
245
+ }
246
+
305
247
  export interface SaveOptions {
306
248
  /**
307
249
  * Formatting type to apply when saving.
308
250
  */
309
251
  readonly formatType?: FormatType;
252
+ /**
253
+ * The reason for saving the resource.
254
+ */
255
+ readonly saveReason?: SaveReason;
310
256
  }
311
257
 
312
258
  /**
@@ -23,13 +23,13 @@ import { SideTabBar } from './tab-bars';
23
23
  export const AdditionalViewsMenuWidgetFactory = Symbol('AdditionalViewsMenuWidgetFactory');
24
24
  export type AdditionalViewsMenuWidgetFactory = (side: 'left' | 'right') => AdditionalViewsMenuWidget;
25
25
 
26
- export const ADDITIONAL_VIEWS_MENU_PATH: MenuPath = ['additional_views_menu'];
27
-
26
+ export const AdditionalViewsMenuPath = Symbol('AdditionalViewsMenuPath');
28
27
  @injectable()
29
28
  export class AdditionalViewsMenuWidget extends SidebarMenuWidget {
30
29
  static readonly ID = 'sidebar.additional.views';
31
30
 
32
- side: 'left' | 'right';
31
+ @inject(AdditionalViewsMenuPath)
32
+ protected menuPath: MenuPath;
33
33
 
34
34
  @inject(CommandRegistry)
35
35
  protected readonly commandRegistry: CommandRegistry;
@@ -47,7 +47,7 @@ export class AdditionalViewsMenuWidget extends SidebarMenuWidget {
47
47
  title: nls.localizeByDefault('Additional Views'),
48
48
  iconClass: codicon('ellipsis'),
49
49
  id: AdditionalViewsMenuWidget.ID,
50
- menuPath: ADDITIONAL_VIEWS_MENU_PATH,
50
+ menuPath: this.menuPath,
51
51
  order: 0
52
52
  });
53
53
  }
@@ -66,6 +66,6 @@ export class AdditionalViewsMenuWidget extends SidebarMenuWidget {
66
66
  });
67
67
  }
68
68
  }));
69
- this.menuDisposables.push(this.menuModelRegistry.registerMenuAction(ADDITIONAL_VIEWS_MENU_PATH, { commandId: command.id, order: index.toString() }));
69
+ this.menuDisposables.push(this.menuModelRegistry.registerMenuAction(this.menuPath, { commandId: command.id, order: index.toString() }));
70
70
  }
71
71
  }
@@ -24,7 +24,7 @@ import { Message } from '@phosphor/messaging';
24
24
  import { IDragEvent } from '@phosphor/dragdrop';
25
25
  import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, isObject } from '../../common';
26
26
  import { animationFrame } from '../browser';
27
- import { Saveable, SaveableWidget, SaveOptions, SaveableSource } from '../saveable';
27
+ import { Saveable, SaveableWidget, SaveOptions } from '../saveable';
28
28
  import { StatusBarImpl, StatusBarEntry, StatusBarAlignment } from '../status-bar/status-bar';
29
29
  import { TheiaDockPanel, BOTTOM_AREA_ID, MAIN_AREA_ID } from './theia-dock-panel';
30
30
  import { SidePanelHandler, SidePanel, SidePanelHandlerFactory } from './side-panel-handler';
@@ -38,7 +38,7 @@ import { waitForRevealed, waitForClosed, PINNED_CLASS } from '../widgets';
38
38
  import { CorePreferences } from '../core-preferences';
39
39
  import { BreadcrumbsRendererFactory } from '../breadcrumbs/breadcrumbs-renderer';
40
40
  import { Deferred } from '../../common/promise-util';
41
- import { SaveResourceService } from '../save-resource-service';
41
+ import { SaveableService } from '../saveable-service';
42
42
  import { nls } from '../../common/nls';
43
43
  import { SecondaryWindowHandler } from '../secondary-window-handler';
44
44
  import URI from '../../common/uri';
@@ -272,7 +272,7 @@ export class ApplicationShell extends Widget {
272
272
  @inject(FrontendApplicationStateService) protected readonly applicationStateService: FrontendApplicationStateService,
273
273
  @inject(ApplicationShellOptions) @optional() options: RecursivePartial<ApplicationShell.Options> = {},
274
274
  @inject(CorePreferences) protected readonly corePreferences: CorePreferences,
275
- @inject(SaveResourceService) protected readonly saveResourceService: SaveResourceService,
275
+ @inject(SaveableService) protected readonly saveableService: SaveableService,
276
276
  @inject(SecondaryWindowHandler) protected readonly secondaryWindowHandler: SecondaryWindowHandler,
277
277
  @inject(WindowService) protected readonly windowService: WindowService
278
278
  ) {
@@ -1231,13 +1231,6 @@ export class ApplicationShell extends Widget {
1231
1231
  }
1232
1232
  this.tracker.add(widget);
1233
1233
  this.checkActivation(widget);
1234
- Saveable.apply(
1235
- widget,
1236
- () => this.widgets.filter((maybeSaveable): maybeSaveable is Widget & SaveableSource => !!Saveable.get(maybeSaveable)),
1237
- async (toSave, options) => {
1238
- await this.saveResourceService.save(toSave, options);
1239
- },
1240
- );
1241
1234
  if (ApplicationShell.TrackableWidgetProvider.is(widget)) {
1242
1235
  for (const toTrack of widget.getTrackableWidgets()) {
1243
1236
  this.track(toTrack);
@@ -2043,21 +2036,21 @@ export class ApplicationShell extends Widget {
2043
2036
  * Test whether the current widget is dirty.
2044
2037
  */
2045
2038
  canSave(): boolean {
2046
- return this.saveResourceService.canSave(this.currentWidget);
2039
+ return this.saveableService.canSave(this.currentWidget);
2047
2040
  }
2048
2041
 
2049
2042
  /**
2050
2043
  * Save the current widget if it is dirty.
2051
2044
  */
2052
2045
  async save(options?: SaveOptions): Promise<void> {
2053
- await this.saveResourceService.save(this.currentWidget, options);
2046
+ await this.saveableService.save(this.currentWidget, options);
2054
2047
  }
2055
2048
 
2056
2049
  /**
2057
2050
  * Test whether there is a dirty widget.
2058
2051
  */
2059
2052
  canSaveAll(): boolean {
2060
- return this.tracker.widgets.some(widget => this.saveResourceService.canSave(widget));
2053
+ return this.tracker.widgets.some(widget => this.saveableService.canSave(widget));
2061
2054
  }
2062
2055
 
2063
2056
  /**
@@ -2065,8 +2058,8 @@ export class ApplicationShell extends Widget {
2065
2058
  */
2066
2059
  async saveAll(options?: SaveOptions): Promise<void> {
2067
2060
  for (const widget of this.widgets) {
2068
- if (this.saveResourceService.canSaveNotSaveAs(widget)) {
2069
- await this.saveResourceService.save(widget, options);
2061
+ if (this.saveableService.canSaveNotSaveAs(widget)) {
2062
+ await this.saveableService.save(widget, options);
2070
2063
  }
2071
2064
  }
2072
2065
  }
@@ -211,6 +211,7 @@ export class SidePanelHandler {
211
211
  protected createAdditionalViewsWidget(): AdditionalViewsMenuWidget {
212
212
  const widget = this.additionalViewsMenuFactory(this.side);
213
213
  widget.addClass('theia-sidebar-menu');
214
+ widget.addClass('theia-additional-views-menu');
214
215
  return widget;
215
216
  }
216
217
 
@@ -653,7 +654,7 @@ export class SidePanelHandler {
653
654
  }
654
655
 
655
656
  protected onTabsOverflowChanged(sender: SideTabBar, event: { titles: Title<Widget>[], startIndex: number }): void {
656
- if (event.startIndex >= 0 && event.startIndex <= sender.currentIndex) {
657
+ if (event.startIndex > 0 && event.startIndex <= sender.currentIndex) {
657
658
  sender.revealTab(sender.currentIndex);
658
659
  } else {
659
660
  this.additionalViewsMenu.updateAdditionalViews(sender, event);
@@ -1084,8 +1084,6 @@ export class SideTabBar extends ScrollableTabBar {
1084
1084
  startIndex: number
1085
1085
  };
1086
1086
 
1087
- protected _rowGap: number;
1088
-
1089
1087
  constructor(options?: TabBar.IOptions<Widget> & PerfectScrollbar.Options) {
1090
1088
  super(options);
1091
1089
 
@@ -1142,31 +1140,6 @@ export class SideTabBar extends ScrollableTabBar {
1142
1140
  }
1143
1141
  }
1144
1142
 
1145
- // Queries the tabRowGap value of the content node. Needed to properly compute overflowing
1146
- // tabs that should be hidden
1147
- protected get tabRowGap(): number {
1148
- // We assume that the tab row gap is static i.e. we compute it once an then cache it
1149
- if (!this._rowGap) {
1150
- this._rowGap = this.computeTabRowGap();
1151
- }
1152
- return this._rowGap;
1153
-
1154
- }
1155
-
1156
- protected computeTabRowGap(): number {
1157
- const style = window.getComputedStyle(this.contentNode);
1158
- const rowGapStyle = style.getPropertyValue('row-gap');
1159
- const numericValue = parseFloat(rowGapStyle);
1160
- const unit = rowGapStyle.match(/[a-zA-Z]+/)?.[0];
1161
-
1162
- const tempDiv = document.createElement('div');
1163
- tempDiv.style.height = '1' + unit;
1164
- document.body.appendChild(tempDiv);
1165
- const rowGapValue = numericValue * tempDiv.offsetHeight;
1166
- document.body.removeChild(tempDiv);
1167
- return rowGapValue;
1168
- }
1169
-
1170
1143
  /**
1171
1144
  * Reveal the tab with the given index by moving it into the non-overflowing tabBar section
1172
1145
  * if necessary.
@@ -1207,18 +1180,13 @@ export class SideTabBar extends ScrollableTabBar {
1207
1180
  const hiddenContent = this.hiddenContentNode;
1208
1181
  const n = hiddenContent.children.length;
1209
1182
  const renderData = new Array<Partial<SideBarRenderData>>(n);
1210
- const availableWidth = this.node.clientHeight - this.tabRowGap;
1211
- let actualWidth = 0;
1212
- let overflowStartIndex = -1;
1213
1183
  for (let i = 0; i < n; i++) {
1214
1184
  const hiddenTab = hiddenContent.children[i];
1215
- // Extract tab padding from the computed style
1185
+ // Extract tab padding, and margin from the computed style
1216
1186
  const tabStyle = window.getComputedStyle(hiddenTab);
1217
- const paddingTop = parseFloat(tabStyle.paddingTop!);
1218
- const paddingBottom = parseFloat(tabStyle.paddingBottom!);
1219
1187
  const rd: Partial<SideBarRenderData> = {
1220
- paddingTop,
1221
- paddingBottom
1188
+ paddingTop: parseFloat(tabStyle.paddingTop!),
1189
+ paddingBottom: parseFloat(tabStyle.paddingBottom!)
1222
1190
  };
1223
1191
  // Extract label size from the DOM
1224
1192
  const labelElements = hiddenTab.getElementsByClassName('p-TabBar-tabLabel');
@@ -1231,38 +1199,21 @@ export class SideTabBar extends ScrollableTabBar {
1231
1199
  if (iconElements.length === 1) {
1232
1200
  const icon = iconElements[0];
1233
1201
  rd.iconSize = { width: icon.clientWidth, height: icon.clientHeight };
1234
- actualWidth += icon.clientHeight + paddingTop + paddingBottom + this.tabRowGap;
1235
-
1236
- if (actualWidth > availableWidth && i !== 0) {
1237
- rd.visible = false;
1238
- if (overflowStartIndex === -1) {
1239
- overflowStartIndex = i;
1240
- }
1241
- }
1242
- renderData[i] = rd;
1243
1202
  }
1244
- }
1245
1203
 
1246
- // Special handling if only one element is overflowing.
1247
- if (overflowStartIndex === n - 1 && renderData[overflowStartIndex]) {
1248
- if (!this.tabsOverflowData) {
1249
- overflowStartIndex--;
1250
- renderData[overflowStartIndex].visible = false;
1251
- } else {
1252
- renderData[overflowStartIndex].visible = true;
1253
- overflowStartIndex = -1;
1254
- }
1204
+ renderData[i] = rd;
1255
1205
  }
1256
1206
  // Render into the visible node
1257
1207
  this.renderTabs(this.contentNode, renderData);
1258
- this.computeOverflowingTabsData(overflowStartIndex);
1208
+ this.computeOverflowingTabsData();
1259
1209
  });
1260
1210
  }
1261
1211
  }
1262
1212
 
1263
- protected computeOverflowingTabsData(startIndex: number): void {
1213
+ protected computeOverflowingTabsData(): void {
1264
1214
  // ensure that render tabs has completed
1265
1215
  window.requestAnimationFrame(() => {
1216
+ const startIndex = this.hideOverflowingTabs();
1266
1217
  if (startIndex === -1) {
1267
1218
  if (this.tabsOverflowData) {
1268
1219
  this.tabsOverflowData = undefined;
@@ -1286,6 +1237,38 @@ export class SideTabBar extends ScrollableTabBar {
1286
1237
  });
1287
1238
  }
1288
1239
 
1240
+ /**
1241
+ * Hide overflowing tabs and return the index of the first hidden tab.
1242
+ */
1243
+ protected hideOverflowingTabs(): number {
1244
+ const availableHeight = this.node.clientHeight;
1245
+ const invisibleClass = 'p-mod-invisible';
1246
+ let startIndex = -1;
1247
+ const n = this.contentNode.children.length;
1248
+ for (let i = 0; i < n; i++) {
1249
+ const tab = this.contentNode.children[i] as HTMLLIElement;
1250
+ if (tab.offsetTop + tab.offsetHeight >= availableHeight) {
1251
+ tab.classList.add(invisibleClass);
1252
+ if (startIndex === -1) {
1253
+ startIndex = i;
1254
+ /* If only one element is overflowing and the additional menu widget is visible (i.e. this.tabsOverflowData is set)
1255
+ * there might already be enough space to show the last tab. In this case, we need to include the size of the
1256
+ * additional menu widget and recheck if the last tab is visible */
1257
+ if (startIndex === n - 1 && this.tabsOverflowData) {
1258
+ const additionalViewsMenu = this.node.parentElement?.querySelector('.theia-additional-views-menu') as HTMLDivElement;
1259
+ if (tab.offsetTop + tab.offsetHeight < availableHeight + additionalViewsMenu.offsetHeight) {
1260
+ tab.classList.remove(invisibleClass);
1261
+ startIndex = -1;
1262
+ }
1263
+ }
1264
+ }
1265
+ } else {
1266
+ tab.classList.remove(invisibleClass);
1267
+ }
1268
+ }
1269
+ return startIndex;
1270
+ }
1271
+
1289
1272
  /**
1290
1273
  * Render the tab bar using the given DOM element as host. The optional `renderData` is forwarded
1291
1274
  * to the TabBarRenderer.
@@ -0,0 +1,125 @@
1
+ // *****************************************************************************
2
+ // Copyright (C) 2019 Red Hat, Inc. and others.
3
+ //
4
+ // This program and the accompanying materials are made available under the
5
+ // terms of the Eclipse Public License v. 2.0 which is available at
6
+ // http://www.eclipse.org/legal/epl-2.0.
7
+ //
8
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import { injectable, inject } from 'inversify';
18
+ import { Emitter, Event } from '../../common/event';
19
+ import { ApplicationShell } from './application-shell';
20
+ import { toArray } from '@phosphor/algorithm';
21
+ import { TabBar, Widget } from '@phosphor/widgets';
22
+
23
+ @injectable()
24
+ export class ViewColumnService {
25
+ private readonly columnValues = new Map<string, number>();
26
+ private readonly viewColumnIds = new Map<number, string[]>();
27
+
28
+ protected readonly onViewColumnChangedEmitter = new Emitter<{ id: string, viewColumn: number }>();
29
+
30
+ constructor(
31
+ @inject(ApplicationShell) private readonly shell: ApplicationShell,
32
+ ) {
33
+ let oldColumnValues = new Map<string, number>();
34
+ const update = async () => {
35
+ await new Promise<void>((resolve => setTimeout(resolve)));
36
+ this.updateViewColumns();
37
+ this.viewColumnIds.forEach((ids: string[], viewColumn: number) => {
38
+ ids.forEach((id: string) => {
39
+ if (!oldColumnValues.has(id) || oldColumnValues.get(id) !== viewColumn) {
40
+ this.onViewColumnChangedEmitter.fire({ id, viewColumn });
41
+ }
42
+ });
43
+ });
44
+ oldColumnValues = new Map(this.columnValues.entries());
45
+ };
46
+ this.shell.mainPanel.widgetAdded.connect(() => update());
47
+ this.shell.mainPanel.widgetRemoved.connect(() => update());
48
+ }
49
+
50
+ get onViewColumnChanged(): Event<{ id: string, viewColumn: number }> {
51
+ return this.onViewColumnChangedEmitter.event;
52
+ }
53
+
54
+ updateViewColumns(): void {
55
+ this.columnValues.clear();
56
+ this.viewColumnIds.clear();
57
+
58
+ const rows = new Map<number, Set<number>>();
59
+ const columns = new Map<number, Map<number, TabBar<Widget>>>();
60
+ for (const tabBar of toArray(this.shell.mainPanel.tabBars())) {
61
+ if (!tabBar.node.style.top || !tabBar.node.style.left) {
62
+ continue;
63
+ }
64
+ const top = parseInt(tabBar.node.style.top);
65
+ const left = parseInt(tabBar.node.style.left);
66
+
67
+ const row = rows.get(top) || new Set<number>();
68
+ row.add(left);
69
+ rows.set(top, row);
70
+
71
+ const column = columns.get(left) || new Map<number, TabBar<Widget>>();
72
+ column.set(top, tabBar);
73
+ columns.set(left, column);
74
+ }
75
+ const firstRow = rows.get([...rows.keys()].sort()[0]);
76
+ if (!firstRow) {
77
+ return;
78
+ }
79
+ const lefts = [...firstRow.keys()].sort();
80
+ for (let i = 0; i < lefts.length; i++) {
81
+ const column = columns.get(lefts[i]);
82
+ if (!column) {
83
+ break;
84
+ }
85
+ const cellIndexes = [...column.keys()].sort();
86
+ let viewColumn = Math.min(i, 2);
87
+ for (let j = 0; j < cellIndexes.length; j++) {
88
+ const cell = column.get(cellIndexes[j]);
89
+ if (!cell) {
90
+ break;
91
+ }
92
+ this.setViewColumn(cell, viewColumn);
93
+ if (viewColumn < 7) {
94
+ viewColumn += 3;
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ protected setViewColumn(tabBar: TabBar<Widget>, viewColumn: number): void {
101
+ const ids = [];
102
+ for (const title of tabBar.titles) {
103
+ const id = title.owner.id;
104
+ ids.push(id);
105
+ this.columnValues.set(id, viewColumn);
106
+ }
107
+ this.viewColumnIds.set(viewColumn, ids);
108
+ }
109
+
110
+ getViewColumnIds(viewColumn: number): string[] {
111
+ return this.viewColumnIds.get(viewColumn) || [];
112
+ }
113
+
114
+ getViewColumn(id: string): number | undefined {
115
+ return this.columnValues.get(id);
116
+ }
117
+
118
+ hasViewColumn(id: string): boolean {
119
+ return this.columnValues.has(id);
120
+ }
121
+
122
+ viewColumnsSize(): number {
123
+ return this.viewColumnIds.size;
124
+ }
125
+ }
@@ -22,7 +22,7 @@ import { injectable } from 'inversify';
22
22
  */
23
23
  @injectable()
24
24
  export class MockStorageService implements StorageService {
25
- readonly data = new Map<string, {} | undefined>();
25
+ readonly data = new Map<string, unknown | undefined>();
26
26
 
27
27
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
28
  onSetDataCallback?: (key: string, data?: any) => void;
@@ -21,6 +21,7 @@ import { ApplicationShell } from '../shell';
21
21
  import { Saveable } from '../saveable';
22
22
  import { PreferenceService } from '../preferences';
23
23
  import { environment } from '../../common';
24
+ import { SaveableService } from '../saveable-service';
24
25
 
25
26
  @injectable()
26
27
  export class DefaultSecondaryWindowService implements SecondaryWindowService {
@@ -43,6 +44,9 @@ export class DefaultSecondaryWindowService implements SecondaryWindowService {
43
44
  @inject(PreferenceService)
44
45
  protected readonly preferenceService: PreferenceService;
45
46
 
47
+ @inject(SaveableService)
48
+ protected readonly saveResourceService: SaveableService;
49
+
46
50
  @postConstruct()
47
51
  init(): void {
48
52
  // Set up messaging with secondary windows
@@ -93,7 +97,7 @@ export class DefaultSecondaryWindowService implements SecondaryWindowService {
93
97
  newWindow.addEventListener('DOMContentLoaded', () => {
94
98
  newWindow.addEventListener('beforeunload', evt => {
95
99
  const saveable = Saveable.get(widget);
96
- const wouldLoseState = !!saveable && saveable.dirty && saveable.autoSave === 'off';
100
+ const wouldLoseState = !!saveable && saveable.dirty && this.saveResourceService.autoSave === 'off';
97
101
  if (wouldLoseState) {
98
102
  evt.returnValue = '';
99
103
  evt.preventDefault();
@@ -104,7 +108,7 @@ export class DefaultSecondaryWindowService implements SecondaryWindowService {
104
108
  newWindow.addEventListener('unload', () => {
105
109
  const saveable = Saveable.get(widget);
106
110
  shell.closeWidget(widget.id, {
107
- save: !!saveable && saveable.dirty && saveable.autoSave !== 'off'
111
+ save: !!saveable && saveable.dirty && this.saveResourceService.autoSave !== 'off'
108
112
  });
109
113
 
110
114
  const extIndex = this.secondaryWindows.indexOf(newWindow);
@@ -318,7 +318,7 @@ export class EncodingService {
318
318
  });
319
319
  }
320
320
 
321
- encodeStream(value: string | Readable<string>, options?: ResourceEncoding): Promise<BinaryBuffer | BinaryBufferReadable>
321
+ encodeStream(value: string | Readable<string>, options?: ResourceEncoding): Promise<BinaryBuffer | BinaryBufferReadable>;
322
322
  encodeStream(value?: string | Readable<string>, options?: ResourceEncoding): Promise<BinaryBuffer | BinaryBufferReadable | undefined>;
323
323
  async encodeStream(value: string | Readable<string> | undefined, options?: ResourceEncoding): Promise<BinaryBuffer | BinaryBufferReadable | undefined> {
324
324
  let encoding = options?.encoding;