@theia/core 1.65.0-next.6 → 1.65.1

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 (440) hide show
  1. package/README.md +6 -6
  2. package/i18n/nls.cs.json +117 -15
  3. package/i18n/nls.de.json +117 -15
  4. package/i18n/nls.es.json +117 -15
  5. package/i18n/nls.fr.json +117 -15
  6. package/i18n/nls.hu.json +117 -15
  7. package/i18n/nls.it.json +117 -15
  8. package/i18n/nls.ja.json +117 -15
  9. package/i18n/nls.json +121 -19
  10. package/i18n/nls.ko.json +117 -15
  11. package/i18n/nls.pl.json +117 -15
  12. package/i18n/nls.pt-br.json +117 -15
  13. package/i18n/nls.ru.json +117 -15
  14. package/i18n/nls.tr.json +117 -15
  15. package/i18n/nls.zh-cn.json +117 -15
  16. package/i18n/nls.zh-tw.json +117 -15
  17. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts +1 -1
  18. package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
  19. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +1 -1
  20. package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
  21. package/lib/browser/catalog.json +227 -32
  22. package/lib/browser/common-frontend-contribution.d.ts +2 -3
  23. package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
  24. package/lib/browser/common-frontend-contribution.js +3 -4
  25. package/lib/browser/common-frontend-contribution.js.map +1 -1
  26. package/lib/browser/dialogs/react-dialog.d.ts.map +1 -1
  27. package/lib/browser/dialogs/react-dialog.js +1 -0
  28. package/lib/browser/dialogs/react-dialog.js.map +1 -1
  29. package/lib/browser/encoding-registry.d.ts +1 -1
  30. package/lib/browser/encoding-registry.d.ts.map +1 -1
  31. package/lib/browser/encoding-registry.js +1 -1
  32. package/lib/browser/encoding-registry.js.map +1 -1
  33. package/lib/browser/frontend-application-bindings.d.ts.map +1 -1
  34. package/lib/browser/frontend-application-bindings.js +10 -17
  35. package/lib/browser/frontend-application-bindings.js.map +1 -1
  36. package/lib/browser/frontend-application-module.d.ts.map +1 -1
  37. package/lib/browser/frontend-application-module.js +10 -6
  38. package/lib/browser/frontend-application-module.js.map +1 -1
  39. package/lib/browser/frontend-application.d.ts +1 -1
  40. package/lib/browser/frontend-application.d.ts.map +1 -1
  41. package/lib/browser/frontend-application.js +1 -1
  42. package/lib/browser/frontend-application.js.map +1 -1
  43. package/lib/browser/hover-service.d.ts +1 -2
  44. package/lib/browser/hover-service.d.ts.map +1 -1
  45. package/lib/browser/hover-service.js +1 -2
  46. package/lib/browser/hover-service.js.map +1 -1
  47. package/lib/browser/icon-theme-service.d.ts +3 -2
  48. package/lib/browser/icon-theme-service.d.ts.map +1 -1
  49. package/lib/browser/icon-theme-service.js +4 -3
  50. package/lib/browser/icon-theme-service.js.map +1 -1
  51. package/lib/browser/index.d.ts +0 -1
  52. package/lib/browser/index.d.ts.map +1 -1
  53. package/lib/browser/index.js +0 -1
  54. package/lib/browser/index.js.map +1 -1
  55. package/lib/browser/json-schema-store.d.ts +2 -0
  56. package/lib/browser/json-schema-store.d.ts.map +1 -1
  57. package/lib/browser/json-schema-store.js +10 -3
  58. package/lib/browser/json-schema-store.js.map +1 -1
  59. package/lib/browser/keybinding.d.ts +1 -1
  60. package/lib/browser/keybinding.d.ts.map +1 -1
  61. package/lib/browser/keybinding.js +1 -1
  62. package/lib/browser/keybinding.js.map +1 -1
  63. package/lib/browser/keybinding.spec.js +1 -1
  64. package/lib/browser/keybinding.spec.js.map +1 -1
  65. package/lib/browser/menu/browser-menu-plugin.d.ts +3 -3
  66. package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
  67. package/lib/browser/menu/browser-menu-plugin.js +4 -5
  68. package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
  69. package/lib/browser/open-with-service.d.ts +1 -1
  70. package/lib/browser/open-with-service.d.ts.map +1 -1
  71. package/lib/browser/open-with-service.js +3 -3
  72. package/lib/browser/open-with-service.js.map +1 -1
  73. package/lib/browser/opener-service.d.ts +1 -2
  74. package/lib/browser/opener-service.d.ts.map +1 -1
  75. package/lib/browser/opener-service.js.map +1 -1
  76. package/lib/browser/preferences/frontend-config-preference-contributions.d.ts +6 -0
  77. package/lib/browser/preferences/frontend-config-preference-contributions.d.ts.map +1 -0
  78. package/lib/browser/preferences/frontend-config-preference-contributions.js +60 -0
  79. package/lib/browser/preferences/frontend-config-preference-contributions.js.map +1 -0
  80. package/lib/browser/preferences/index.d.ts +0 -5
  81. package/lib/browser/preferences/index.d.ts.map +1 -1
  82. package/lib/browser/preferences/index.js +0 -5
  83. package/lib/browser/preferences/index.js.map +1 -1
  84. package/lib/browser/preferences/preference-contribution.d.ts +0 -96
  85. package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
  86. package/lib/browser/preferences/preference-contribution.js +14 -355
  87. package/lib/browser/preferences/preference-contribution.js.map +1 -1
  88. package/lib/browser/preferences/preference-proxy.spec.js +25 -17
  89. package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
  90. package/lib/browser/preferences/preference-schema-provider.spec.js +21 -34
  91. package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
  92. package/lib/browser/preferences/preference-service.spec.js +57 -80
  93. package/lib/browser/preferences/preference-service.spec.js.map +1 -1
  94. package/lib/browser/preferences/preference-validation-service.d.ts +24 -26
  95. package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
  96. package/lib/browser/preferences/preference-validation-service.js +40 -20
  97. package/lib/browser/preferences/preference-validation-service.js.map +1 -1
  98. package/lib/browser/preferences/preference-validation-service.spec.js +10 -6
  99. package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
  100. package/lib/browser/preferences/test/mock-preference-provider.d.ts +2 -3
  101. package/lib/browser/preferences/test/mock-preference-provider.d.ts.map +1 -1
  102. package/lib/browser/preferences/test/mock-preference-provider.js +5 -7
  103. package/lib/browser/preferences/test/mock-preference-provider.js.map +1 -1
  104. package/lib/browser/preferences/test/mock-preference-proxy.d.ts.map +1 -1
  105. package/lib/browser/preferences/test/mock-preference-proxy.js.map +1 -1
  106. package/lib/browser/preferences/test/mock-preference-service.d.ts +1 -4
  107. package/lib/browser/preferences/test/mock-preference-service.d.ts.map +1 -1
  108. package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
  109. package/lib/browser/quick-input/quick-command-service.d.ts +1 -1
  110. package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
  111. package/lib/browser/quick-input/quick-command-service.js +1 -1
  112. package/lib/browser/quick-input/quick-command-service.js.map +1 -1
  113. package/lib/browser/request/browser-request-service.d.ts +1 -1
  114. package/lib/browser/request/browser-request-service.d.ts.map +1 -1
  115. package/lib/browser/request/browser-request-service.js +2 -2
  116. package/lib/browser/request/browser-request-service.js.map +1 -1
  117. package/lib/browser/saveable.d.ts +9 -0
  118. package/lib/browser/saveable.d.ts.map +1 -1
  119. package/lib/browser/saveable.js.map +1 -1
  120. package/lib/browser/secondary-window-handler.d.ts +21 -9
  121. package/lib/browser/secondary-window-handler.d.ts.map +1 -1
  122. package/lib/browser/secondary-window-handler.js +162 -21
  123. package/lib/browser/secondary-window-handler.js.map +1 -1
  124. package/lib/browser/shell/application-shell.d.ts +7 -2
  125. package/lib/browser/shell/application-shell.d.ts.map +1 -1
  126. package/lib/browser/shell/application-shell.js +27 -10
  127. package/lib/browser/shell/application-shell.js.map +1 -1
  128. package/lib/browser/shell/shell-layout-restorer.d.ts +13 -0
  129. package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
  130. package/lib/browser/shell/shell-layout-restorer.js +8 -1
  131. package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
  132. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +30 -16
  133. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
  134. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +116 -33
  135. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
  136. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
  137. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +8 -3
  138. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
  139. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +1 -1
  140. package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
  141. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +2 -2
  142. package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -1
  143. package/lib/browser/shell/tab-bars.d.ts +1 -1
  144. package/lib/browser/shell/tab-bars.d.ts.map +1 -1
  145. package/lib/browser/shell/theia-dock-panel.d.ts +19 -2
  146. package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
  147. package/lib/browser/shell/theia-dock-panel.js +82 -0
  148. package/lib/browser/shell/theia-dock-panel.js.map +1 -1
  149. package/lib/browser/status-bar/status-bar.d.ts +1 -1
  150. package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
  151. package/lib/browser/status-bar/status-bar.js +3 -2
  152. package/lib/browser/status-bar/status-bar.js.map +1 -1
  153. package/lib/browser/theming.d.ts +5 -4
  154. package/lib/browser/theming.d.ts.map +1 -1
  155. package/lib/browser/theming.js +7 -6
  156. package/lib/browser/theming.js.map +1 -1
  157. package/lib/browser/tooltip-service.d.ts +1 -1
  158. package/lib/browser/tooltip-service.d.ts.map +1 -1
  159. package/lib/browser/tooltip-service.js +1 -1
  160. package/lib/browser/tooltip-service.js.map +1 -1
  161. package/lib/browser/tree/index.d.ts +0 -1
  162. package/lib/browser/tree/index.d.ts.map +1 -1
  163. package/lib/browser/tree/index.js +0 -1
  164. package/lib/browser/tree/index.js.map +1 -1
  165. package/lib/browser/tree/tree-widget.d.ts +2 -2
  166. package/lib/browser/tree/tree-widget.d.ts.map +1 -1
  167. package/lib/browser/tree/tree-widget.js +5 -4
  168. package/lib/browser/tree/tree-widget.js.map +1 -1
  169. package/lib/browser/view-container.d.ts.map +1 -1
  170. package/lib/browser/view-container.js +2 -2
  171. package/lib/browser/view-container.js.map +1 -1
  172. package/lib/browser/widgets/extractable-widget.d.ts +3 -0
  173. package/lib/browser/widgets/extractable-widget.d.ts.map +1 -1
  174. package/lib/browser/widgets/extractable-widget.js.map +1 -1
  175. package/lib/browser/widgets/widget.js +4 -4
  176. package/lib/browser/widgets/widget.js.map +1 -1
  177. package/lib/browser/window/default-secondary-window-service.d.ts +10 -5
  178. package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
  179. package/lib/browser/window/default-secondary-window-service.js +53 -13
  180. package/lib/browser/window/default-secondary-window-service.js.map +1 -1
  181. package/lib/browser/window/default-window-service.d.ts +1 -1
  182. package/lib/browser/window/default-window-service.d.ts.map +1 -1
  183. package/lib/browser/window/default-window-service.js +1 -1
  184. package/lib/browser/window/default-window-service.js.map +1 -1
  185. package/lib/browser/window/default-window-service.spec.js +1 -1
  186. package/lib/browser/window/default-window-service.spec.js.map +1 -1
  187. package/lib/browser/window/secondary-window-service.d.ts +15 -2
  188. package/lib/browser/window/secondary-window-service.d.ts.map +1 -1
  189. package/lib/browser/window/secondary-window-service.js +12 -1
  190. package/lib/browser/window/secondary-window-service.js.map +1 -1
  191. package/lib/browser/window/window-title-service.d.ts +1 -1
  192. package/lib/browser/window/window-title-service.d.ts.map +1 -1
  193. package/lib/browser/window/window-title-service.js +1 -1
  194. package/lib/browser/window/window-title-service.js.map +1 -1
  195. package/lib/{browser → common}/core-preferences.d.ts +2 -1
  196. package/lib/common/core-preferences.d.ts.map +1 -0
  197. package/lib/{browser → common}/core-preferences.js +17 -18
  198. package/lib/common/core-preferences.js.map +1 -0
  199. package/lib/common/index.d.ts +4 -0
  200. package/lib/common/index.d.ts.map +1 -1
  201. package/lib/common/index.js +4 -0
  202. package/lib/common/index.js.map +1 -1
  203. package/lib/common/inversify-utils.d.ts +31 -0
  204. package/lib/common/inversify-utils.d.ts.map +1 -0
  205. package/lib/common/inversify-utils.js +60 -0
  206. package/lib/common/inversify-utils.js.map +1 -0
  207. package/lib/common/json-schema.d.ts +1 -0
  208. package/lib/common/json-schema.d.ts.map +1 -1
  209. package/lib/common/menu/menu-types.d.ts +1 -0
  210. package/lib/common/menu/menu-types.d.ts.map +1 -1
  211. package/lib/common/menu/menu-types.js.map +1 -1
  212. package/lib/common/preferences/defaults-preference-provider.d.ts +21 -0
  213. package/lib/common/preferences/defaults-preference-provider.d.ts.map +1 -0
  214. package/lib/common/preferences/defaults-preference-provider.js +99 -0
  215. package/lib/common/preferences/defaults-preference-provider.js.map +1 -0
  216. package/lib/common/preferences/index.d.ts +12 -0
  217. package/lib/common/preferences/index.d.ts.map +1 -0
  218. package/lib/common/preferences/index.js +30 -0
  219. package/lib/common/preferences/index.js.map +1 -0
  220. package/lib/{browser → common}/preferences/injectable-preference-proxy.d.ts +1 -1
  221. package/lib/common/preferences/injectable-preference-proxy.d.ts.map +1 -0
  222. package/lib/{browser → common}/preferences/injectable-preference-proxy.js +2 -2
  223. package/lib/common/preferences/injectable-preference-proxy.js.map +1 -0
  224. package/lib/common/preferences/preference-configurations.d.ts.map +1 -0
  225. package/lib/common/preferences/preference-configurations.js.map +1 -0
  226. package/lib/{browser → common}/preferences/preference-language-override-service.d.ts +4 -13
  227. package/lib/common/preferences/preference-language-override-service.d.ts.map +1 -0
  228. package/lib/{browser → common}/preferences/preference-language-override-service.js +14 -30
  229. package/lib/common/preferences/preference-language-override-service.js.map +1 -0
  230. package/lib/common/preferences/preference-provider-impl.d.ts +52 -0
  231. package/lib/common/preferences/preference-provider-impl.d.ts.map +1 -0
  232. package/lib/{browser/preferences/preference-provider.js → common/preferences/preference-provider-impl.js} +23 -95
  233. package/lib/common/preferences/preference-provider-impl.js.map +1 -0
  234. package/lib/{browser → common}/preferences/preference-provider.d.ts +34 -59
  235. package/lib/common/preferences/preference-provider.d.ts.map +1 -0
  236. package/lib/common/preferences/preference-provider.js +71 -0
  237. package/lib/common/preferences/preference-provider.js.map +1 -0
  238. package/lib/common/preferences/preference-provider.spec.d.ts.map +1 -0
  239. package/lib/{browser → common}/preferences/preference-provider.spec.js +4 -4
  240. package/lib/common/preferences/preference-provider.spec.js.map +1 -0
  241. package/lib/{browser → common}/preferences/preference-proxy.d.ts +2 -2
  242. package/lib/common/preferences/preference-proxy.d.ts.map +1 -0
  243. package/lib/{browser → common}/preferences/preference-proxy.js +10 -10
  244. package/lib/common/preferences/preference-proxy.js.map +1 -0
  245. package/lib/common/preferences/preference-schema-service.d.ts +55 -0
  246. package/lib/common/preferences/preference-schema-service.d.ts.map +1 -0
  247. package/lib/common/preferences/preference-schema-service.js +402 -0
  248. package/lib/common/preferences/preference-schema-service.js.map +1 -0
  249. package/lib/common/preferences/preference-schema.d.ts +145 -43
  250. package/lib/common/preferences/preference-schema.d.ts.map +1 -1
  251. package/lib/common/preferences/preference-schema.js +3 -41
  252. package/lib/common/preferences/preference-schema.js.map +1 -1
  253. package/lib/common/preferences/preference-scope.d.ts +4 -1
  254. package/lib/common/preferences/preference-scope.d.ts.map +1 -1
  255. package/lib/common/preferences/preference-scope.js +5 -14
  256. package/lib/common/preferences/preference-scope.js.map +1 -1
  257. package/lib/{browser → common}/preferences/preference-service.d.ts +9 -10
  258. package/lib/common/preferences/preference-service.d.ts.map +1 -0
  259. package/lib/{browser → common}/preferences/preference-service.js +68 -58
  260. package/lib/common/preferences/preference-service.js.map +1 -0
  261. package/lib/common/stream.d.ts +9 -0
  262. package/lib/common/stream.d.ts.map +1 -1
  263. package/lib/common/stream.js +93 -2
  264. package/lib/common/stream.js.map +1 -1
  265. package/lib/common/supported-encodings.d.ts.map +1 -0
  266. package/lib/common/supported-encodings.js.map +1 -0
  267. package/lib/{browser/tree → common}/tree-preference.d.ts +1 -1
  268. package/lib/common/tree-preference.d.ts.map +1 -0
  269. package/lib/{browser/tree → common}/tree-preference.js +3 -5
  270. package/lib/common/tree-preference.js.map +1 -0
  271. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +2 -1
  272. package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
  273. package/lib/electron-browser/menu/electron-context-menu-renderer.js +2 -1
  274. package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
  275. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -2
  276. package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
  277. package/lib/electron-browser/menu/electron-main-menu-factory.js +11 -10
  278. package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
  279. package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -2
  280. package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
  281. package/lib/electron-browser/menu/electron-menu-contribution.js +6 -6
  282. package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
  283. package/lib/electron-browser/preload.d.ts.map +1 -1
  284. package/lib/electron-browser/preload.js +3 -0
  285. package/lib/electron-browser/preload.js.map +1 -1
  286. package/lib/electron-browser/window/electron-secondary-window-service.d.ts.map +1 -1
  287. package/lib/electron-browser/window/electron-secondary-window-service.js +5 -4
  288. package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
  289. package/lib/electron-browser/window/electron-window-module.js +1 -1
  290. package/lib/electron-browser/window/electron-window-module.js.map +1 -1
  291. package/lib/electron-browser/window/electron-window-service.d.ts +1 -1
  292. package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
  293. package/lib/electron-browser/window/electron-window-service.js +1 -1
  294. package/lib/electron-browser/window/electron-window-service.js.map +1 -1
  295. package/lib/electron-common/electron-api.d.ts +2 -0
  296. package/lib/electron-common/electron-api.d.ts.map +1 -1
  297. package/lib/electron-common/electron-api.js +2 -1
  298. package/lib/electron-common/electron-api.js.map +1 -1
  299. package/lib/{electron-browser/window → electron-common}/electron-window-preferences.d.ts +2 -1
  300. package/lib/electron-common/electron-window-preferences.d.ts.map +1 -0
  301. package/lib/{electron-browser/window → electron-common}/electron-window-preferences.js +7 -7
  302. package/lib/electron-common/electron-window-preferences.js.map +1 -0
  303. package/lib/electron-main/electron-api-main.d.ts.map +1 -1
  304. package/lib/electron-main/electron-api-main.js +9 -0
  305. package/lib/electron-main/electron-api-main.js.map +1 -1
  306. package/lib/electron-node/window/electron-window-module.d.ts +4 -0
  307. package/lib/electron-node/window/electron-window-module.d.ts.map +1 -0
  308. package/lib/{browser/preferences/preference-scope.js → electron-node/window/electron-window-module.js} +7 -5
  309. package/lib/electron-node/window/electron-window-module.js.map +1 -0
  310. package/lib/node/backend-application-module.d.ts.map +1 -1
  311. package/lib/node/backend-application-module.js +13 -0
  312. package/lib/node/backend-application-module.js.map +1 -1
  313. package/lib/node/backend-application.js +1 -1
  314. package/lib/node/logger-cli-contribution.d.ts +7 -1
  315. package/lib/node/logger-cli-contribution.d.ts.map +1 -1
  316. package/lib/node/logger-cli-contribution.js +22 -10
  317. package/lib/node/logger-cli-contribution.js.map +1 -1
  318. package/lib/node/logger-cli-contribution.spec.js +13 -2
  319. package/lib/node/logger-cli-contribution.spec.js.map +1 -1
  320. package/package.json +8 -7
  321. package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +1 -1
  322. package/src/browser/common-frontend-contribution.ts +2 -3
  323. package/src/browser/dialogs/react-dialog.tsx +1 -0
  324. package/src/browser/encoding-registry.ts +1 -1
  325. package/src/browser/frontend-application-bindings.ts +8 -13
  326. package/src/browser/frontend-application-module.ts +13 -6
  327. package/src/browser/frontend-application.ts +1 -1
  328. package/src/browser/hover-service.ts +1 -2
  329. package/src/browser/icon-theme-service.ts +3 -2
  330. package/src/browser/index.ts +0 -1
  331. package/src/browser/json-schema-store.ts +9 -1
  332. package/src/browser/keybinding.spec.ts +1 -1
  333. package/src/browser/keybinding.ts +1 -1
  334. package/src/browser/menu/browser-menu-plugin.ts +7 -7
  335. package/src/browser/open-with-service.ts +1 -1
  336. package/src/browser/opener-service.ts +1 -2
  337. package/src/browser/preferences/frontend-config-preference-contributions.ts +52 -0
  338. package/src/browser/preferences/index.ts +0 -5
  339. package/src/browser/preferences/preference-contribution.ts +16 -398
  340. package/src/browser/preferences/preference-proxy.spec.ts +27 -17
  341. package/src/browser/preferences/preference-schema-provider.spec.ts +25 -37
  342. package/src/browser/preferences/preference-service.spec.ts +32 -56
  343. package/src/browser/preferences/preference-validation-service.spec.ts +27 -19
  344. package/src/browser/preferences/preference-validation-service.ts +60 -41
  345. package/src/browser/preferences/test/mock-preference-provider.ts +2 -5
  346. package/src/browser/preferences/test/mock-preference-proxy.ts +1 -2
  347. package/src/browser/preferences/test/mock-preference-service.ts +1 -4
  348. package/src/browser/quick-input/quick-command-service.ts +1 -1
  349. package/src/browser/request/browser-request-service.ts +4 -4
  350. package/src/browser/saveable.ts +8 -0
  351. package/src/browser/secondary-window-handler.ts +189 -29
  352. package/src/browser/shell/application-shell.ts +36 -13
  353. package/src/browser/shell/shell-layout-restorer.ts +15 -0
  354. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +139 -40
  355. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +12 -6
  356. package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +2 -2
  357. package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +2 -2
  358. package/src/browser/shell/tab-bars.ts +1 -1
  359. package/src/browser/shell/theia-dock-panel.ts +101 -2
  360. package/src/browser/status-bar/status-bar.tsx +3 -2
  361. package/src/browser/style/dockpanel.css +7 -0
  362. package/src/browser/theming.ts +7 -6
  363. package/src/browser/tooltip-service.tsx +1 -1
  364. package/src/browser/tree/index.ts +0 -1
  365. package/src/browser/tree/tree-widget.tsx +6 -5
  366. package/src/browser/view-container.ts +5 -5
  367. package/src/browser/widgets/extractable-widget.ts +3 -0
  368. package/src/browser/widgets/widget.ts +4 -4
  369. package/src/browser/window/default-secondary-window-service.ts +54 -17
  370. package/src/browser/window/default-window-service.spec.ts +1 -1
  371. package/src/browser/window/default-window-service.ts +1 -1
  372. package/src/browser/window/secondary-window-service.ts +23 -2
  373. package/src/browser/window/window-title-service.ts +1 -1
  374. package/src/{browser → common}/core-preferences.ts +16 -17
  375. package/src/common/index.ts +4 -0
  376. package/src/common/inversify-utils.ts +63 -0
  377. package/src/common/json-schema.ts +1 -0
  378. package/src/common/menu/menu-types.ts +2 -0
  379. package/src/common/preferences/defaults-preference-provider.ts +91 -0
  380. package/src/common/preferences/index.ts +27 -0
  381. package/src/{browser → common}/preferences/injectable-preference-proxy.ts +3 -3
  382. package/src/{browser → common}/preferences/preference-language-override-service.ts +12 -29
  383. package/src/common/preferences/preference-provider-impl.ts +165 -0
  384. package/src/{browser → common}/preferences/preference-provider.spec.ts +6 -5
  385. package/src/common/preferences/preference-provider.ts +164 -0
  386. package/src/{browser → common}/preferences/preference-proxy.ts +15 -14
  387. package/src/common/preferences/preference-schema-service.ts +434 -0
  388. package/src/common/preferences/preference-schema.ts +156 -64
  389. package/src/common/preferences/preference-scope.ts +5 -13
  390. package/src/{browser → common}/preferences/preference-service.ts +76 -63
  391. package/src/common/stream.ts +102 -1
  392. package/src/{browser/tree → common}/tree-preference.ts +2 -4
  393. package/src/electron-browser/menu/electron-context-menu-renderer.ts +2 -1
  394. package/src/electron-browser/menu/electron-main-menu-factory.ts +13 -11
  395. package/src/electron-browser/menu/electron-menu-contribution.ts +9 -6
  396. package/src/electron-browser/preload.ts +4 -1
  397. package/src/electron-browser/window/electron-secondary-window-service.ts +7 -4
  398. package/src/electron-browser/window/electron-window-module.ts +1 -1
  399. package/src/electron-browser/window/electron-window-service.ts +1 -1
  400. package/src/electron-common/electron-api.ts +2 -0
  401. package/src/{electron-browser/window → electron-common}/electron-window-preferences.ts +6 -6
  402. package/src/electron-main/electron-api-main.ts +11 -1
  403. package/src/{browser/preferences/preference-scope.ts → electron-node/window/electron-window-module.ts} +7 -3
  404. package/src/node/backend-application-module.ts +28 -1
  405. package/src/node/backend-application.ts +1 -1
  406. package/src/node/logger-cli-contribution.spec.ts +17 -2
  407. package/src/node/logger-cli-contribution.ts +18 -3
  408. package/lib/browser/core-preferences.d.ts.map +0 -1
  409. package/lib/browser/core-preferences.js.map +0 -1
  410. package/lib/browser/preferences/injectable-preference-proxy.d.ts.map +0 -1
  411. package/lib/browser/preferences/injectable-preference-proxy.js.map +0 -1
  412. package/lib/browser/preferences/preference-configurations.d.ts.map +0 -1
  413. package/lib/browser/preferences/preference-configurations.js.map +0 -1
  414. package/lib/browser/preferences/preference-language-override-service.d.ts.map +0 -1
  415. package/lib/browser/preferences/preference-language-override-service.js.map +0 -1
  416. package/lib/browser/preferences/preference-provider.d.ts.map +0 -1
  417. package/lib/browser/preferences/preference-provider.js.map +0 -1
  418. package/lib/browser/preferences/preference-provider.spec.d.ts.map +0 -1
  419. package/lib/browser/preferences/preference-provider.spec.js.map +0 -1
  420. package/lib/browser/preferences/preference-proxy.d.ts.map +0 -1
  421. package/lib/browser/preferences/preference-proxy.js.map +0 -1
  422. package/lib/browser/preferences/preference-scope.d.ts +0 -3
  423. package/lib/browser/preferences/preference-scope.d.ts.map +0 -1
  424. package/lib/browser/preferences/preference-scope.js.map +0 -1
  425. package/lib/browser/preferences/preference-service.d.ts.map +0 -1
  426. package/lib/browser/preferences/preference-service.js.map +0 -1
  427. package/lib/browser/supported-encodings.d.ts.map +0 -1
  428. package/lib/browser/supported-encodings.js.map +0 -1
  429. package/lib/browser/tree/tree-preference.d.ts.map +0 -1
  430. package/lib/browser/tree/tree-preference.js.map +0 -1
  431. package/lib/electron-browser/window/electron-window-preferences.d.ts.map +0 -1
  432. package/lib/electron-browser/window/electron-window-preferences.js.map +0 -1
  433. package/src/browser/preferences/preference-provider.ts +0 -277
  434. /package/lib/{browser → common}/preferences/preference-configurations.d.ts +0 -0
  435. /package/lib/{browser → common}/preferences/preference-configurations.js +0 -0
  436. /package/lib/{browser → common}/preferences/preference-provider.spec.d.ts +0 -0
  437. /package/lib/{browser → common}/supported-encodings.d.ts +0 -0
  438. /package/lib/{browser → common}/supported-encodings.js +0 -0
  439. /package/src/{browser → common}/preferences/preference-configurations.ts +0 -0
  440. /package/src/{browser → common}/supported-encodings.ts +0 -0
@@ -14,21 +14,18 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { PreferenceItem } from '../../common/preferences/preference-schema';
18
17
  import { JSONObject, JSONValue } from '../../../shared/@lumino/coreutils';
19
- import { PreferenceSchemaProvider } from './preference-contribution';
20
- import { PreferenceLanguageOverrideService } from './preference-language-override-service';
21
18
  import { inject, injectable } from '../../../shared/inversify';
22
19
  import { IJSONSchema, JsonType } from '../../common/json-schema';
23
20
  import { deepClone, unreachable } from '../../common';
24
- import { PreferenceProvider } from './preference-provider';
21
+ import { PreferenceLanguageOverrideService } from '../../common/preferences/preference-language-override-service';
22
+ import { PreferenceSchemaService, PreferenceScope, PreferenceUtils, PreferenceDataProperty } from '../../common/preferences';
25
23
 
26
24
  export interface PreferenceValidator<T> {
27
25
  name: string;
28
26
  validate(value: unknown): T;
29
27
  }
30
28
 
31
- export interface ValidatablePreference extends IJSONSchema, Pick<PreferenceItem, 'defaultValue'> { }
32
29
  export type ValueValidator = (value: JSONValue) => JSONValue;
33
30
 
34
31
  export interface PreferenceValidationResult<T extends JSONValue> {
@@ -37,11 +34,11 @@ export interface PreferenceValidationResult<T extends JSONValue> {
37
34
  messages: string[];
38
35
  }
39
36
 
40
- type ValidatablePreferenceTuple = ValidatablePreference & ({ items: ValidatablePreference[] } | { prefixItems: ValidatablePreference[] });
37
+ type ValidatablePreferenceTuple = IJSONSchema & ({ items: IJSONSchema[] } | { prefixItems: IJSONSchema[] });
41
38
 
42
39
  @injectable()
43
40
  export class PreferenceValidationService {
44
- @inject(PreferenceSchemaProvider) protected readonly schemaProvider: PreferenceSchemaProvider;
41
+ @inject(PreferenceSchemaService) protected readonly schemaService: PreferenceSchemaService;
45
42
  @inject(PreferenceLanguageOverrideService) protected readonly languageOverrideService: PreferenceLanguageOverrideService;
46
43
 
47
44
  validateOptions(options: Record<string, JSONValue>): Record<string, JSONValue> {
@@ -71,30 +68,30 @@ export class PreferenceValidationService {
71
68
  return this.validateBySchema(preferenceName, value, schema);
72
69
  }
73
70
 
74
- validateBySchema(key: string, value: JSONValue, schema: ValidatablePreference | undefined): JSONValue {
71
+ validateBySchema(key: string, value: JSONValue, schema: IJSONSchema | undefined): JSONValue {
75
72
  try {
76
73
  if (!schema) {
77
74
  console.warn('Request to validate preference with no schema registered:', key);
78
75
  return value;
79
76
  }
80
77
  if (schema.const !== undefined) {
81
- return this.validateConst(key, value, schema as ValidatablePreference & { const: JSONValue });
78
+ return this.validateConst(key, value, schema as IJSONSchema & { const: JSONValue });
82
79
  }
83
80
  if (Array.isArray(schema.enum)) {
84
- return this.validateEnum(key, value, schema as ValidatablePreference & { enum: JSONValue[] });
81
+ return this.validateEnum(key, value, schema as IJSONSchema & { enum: JSONValue[] });
85
82
  }
86
83
  if (Array.isArray(schema.anyOf)) {
87
- return this.validateAnyOf(key, value, schema as ValidatablePreference & { anyOf: ValidatablePreference[] });
84
+ return this.validateAnyOf(key, value, schema as IJSONSchema & { anyOf: IJSONSchema[] });
88
85
  }
89
86
  if (Array.isArray(schema.oneOf)) {
90
- return this.validateOneOf(key, value, schema as ValidatablePreference & { oneOf: ValidatablePreference[] });
87
+ return this.validateOneOf(key, value, schema as IJSONSchema & { oneOf: IJSONSchema[] });
91
88
  }
92
89
  if (schema.type === undefined) {
93
90
  console.warn('Request to validate preference with no type information:', key);
94
91
  return value;
95
92
  }
96
93
  if (Array.isArray(schema.type)) {
97
- return this.validateMultiple(key, value, schema as ValidatablePreference & { type: JsonType[] });
94
+ return this.validateMultiple(key, value, schema as IJSONSchema & { type: JsonType[] });
98
95
  }
99
96
  switch (schema.type) {
100
97
  case 'array':
@@ -120,8 +117,8 @@ export class PreferenceValidationService {
120
117
  }
121
118
  }
122
119
 
123
- protected getSchema(name: string): ValidatablePreference | undefined {
124
- const combinedSchema = this.schemaProvider.getCombinedSchema().properties;
120
+ protected getSchema(name: string): IJSONSchema | undefined {
121
+ const combinedSchema = this.schemaService.getJSONSchema(PreferenceScope.Folder).properties!;
125
122
  if (combinedSchema[name]) {
126
123
  return combinedSchema[name];
127
124
  }
@@ -129,35 +126,35 @@ export class PreferenceValidationService {
129
126
  return baseName !== undefined ? combinedSchema[baseName] : undefined;
130
127
  }
131
128
 
132
- protected validateMultiple(key: string, value: JSONValue, schema: ValidatablePreference & { type: JsonType[] }): JSONValue {
133
- const validation: ValidatablePreference = deepClone(schema);
129
+ protected validateMultiple(key: string, value: JSONValue, schema: IJSONSchema & { type: JsonType[] }): JSONValue {
130
+ const validation: IJSONSchema = deepClone(schema);
134
131
  const candidate = this.mapValidators(key, value, (function* (this: PreferenceValidationService): Iterable<ValueValidator> {
135
132
  for (const type of schema.type) {
136
133
  validation.type = type as JsonType;
137
134
  yield toValidate => this.validateBySchema(key, toValidate, validation);
138
135
  }
139
136
  }).bind(this)());
140
- if (candidate !== value && (schema.default !== undefined || schema.defaultValue !== undefined)) {
137
+ if (candidate !== value && (schema.default !== undefined || schema.default !== undefined)) {
141
138
  const configuredDefault = this.getDefaultFromSchema(schema);
142
- return this.validateMultiple(key, configuredDefault, { ...schema, default: undefined, defaultValue: undefined });
139
+ return this.validateMultiple(key, configuredDefault, { ...schema, default: undefined });
143
140
  }
144
141
  return candidate;
145
142
  }
146
143
 
147
- protected validateAnyOf(key: string, value: JSONValue, schema: ValidatablePreference & { anyOf: ValidatablePreference[] }): JSONValue {
144
+ protected validateAnyOf(key: string, value: JSONValue, schema: IJSONSchema & { anyOf: IJSONSchema[] }): JSONValue {
148
145
  const candidate = this.mapValidators(key, value, (function* (this: PreferenceValidationService): Iterable<ValueValidator> {
149
146
  for (const option of schema.anyOf) {
150
147
  yield toValidate => this.validateBySchema(key, toValidate, option);
151
148
  }
152
149
  }).bind(this)());
153
- if (candidate !== value && (schema.default !== undefined || schema.defaultValue !== undefined)) {
150
+ if (candidate !== value && (schema.default !== undefined)) {
154
151
  const configuredDefault = this.getDefaultFromSchema(schema);
155
- return this.validateAnyOf(key, configuredDefault, { ...schema, default: undefined, defaultValue: undefined });
152
+ return this.validateAnyOf(key, configuredDefault, { ...schema, default: undefined });
156
153
  }
157
154
  return candidate;
158
155
  }
159
156
 
160
- protected validateOneOf(key: string, value: JSONValue, schema: ValidatablePreference & { oneOf: ValidatablePreference[] }): JSONValue {
157
+ protected validateOneOf(key: string, value: JSONValue, schema: IJSONSchema & { oneOf: IJSONSchema[] }): JSONValue {
161
158
  let passed = false;
162
159
  for (const subSchema of schema.oneOf) {
163
160
  const validValue = this.validateBySchema(key, value, subSchema);
@@ -171,9 +168,9 @@ export class PreferenceValidationService {
171
168
  if (passed) {
172
169
  return value;
173
170
  }
174
- if (schema.default !== undefined || schema.defaultValue !== undefined) {
171
+ if (schema.default !== undefined) {
175
172
  const configuredDefault = this.getDefaultFromSchema(schema);
176
- return this.validateOneOf(key, configuredDefault, { ...schema, default: undefined, defaultValue: undefined });
173
+ return this.validateOneOf(key, configuredDefault, { ...schema, default: undefined });
177
174
  }
178
175
  console.log(`While validating ${key}, failed to find a valid value or default value. Using configured value ${value}.`);
179
176
  return value;
@@ -190,7 +187,7 @@ export class PreferenceValidationService {
190
187
  }
191
188
  return candidates[0];
192
189
  }
193
- protected validateArray(key: string, value: JSONValue, schema: ValidatablePreference): JSONValue[] {
190
+ protected validateArray(key: string, value: JSONValue, schema: IJSONSchema): JSONValue[] {
194
191
  const candidate = Array.isArray(value) ? value : this.getDefaultFromSchema(schema);
195
192
  if (!Array.isArray(candidate)) {
196
193
  return [];
@@ -211,11 +208,11 @@ export class PreferenceValidationService {
211
208
  const defaultValue = this.getDefaultFromSchema(schema);
212
209
  const maybeCandidate = Array.isArray(value) ? value : defaultValue;
213
210
  // If we find that the provided value is not valid, we immediately bail and try the default value instead.
214
- const shouldTryDefault = Array.isArray(schema.defaultValue ?? schema.default) && !PreferenceProvider.deepEqual(defaultValue, maybeCandidate);
211
+ const shouldTryDefault = Array.isArray(schema.default) && !PreferenceUtils.deepEqual(defaultValue, maybeCandidate);
215
212
  const tryDefault = () => this.validateTuple(key, defaultValue, schema);
216
213
  const candidate = Array.isArray(maybeCandidate) ? maybeCandidate : [];
217
214
  // Only `prefixItems` is officially part of the JSON Schema spec, but `items` as array was part of a draft and was used by VSCode.
218
- const tuple = (schema.prefixItems ?? schema.items) as Required<ValidatablePreference>['prefixItems'];
215
+ const tuple = (schema.prefixItems ?? schema.items) as Required<IJSONSchema>['prefixItems'];
219
216
  const lengthIsWrong = candidate.length < tuple.length || (candidate.length > tuple.length && !schema.additionalItems);
220
217
  if (lengthIsWrong && shouldTryDefault) { return tryDefault(); }
221
218
  let valid = true;
@@ -250,26 +247,26 @@ export class PreferenceValidationService {
250
247
  return valid ? candidate : validItems;
251
248
  }
252
249
 
253
- protected validateConst(key: string, value: JSONValue, schema: ValidatablePreference & { const: JSONValue }): JSONValue {
254
- if (PreferenceProvider.deepEqual(value, schema.const)) {
250
+ protected validateConst(key: string, value: JSONValue, schema: IJSONSchema & { const: JSONValue }): JSONValue {
251
+ if (PreferenceUtils.deepEqual(value, schema.const)) {
255
252
  return value;
256
253
  }
257
254
  return schema.const;
258
255
  }
259
256
 
260
- protected validateEnum(key: string, value: JSONValue, schema: ValidatablePreference & { enum: JSONValue[] }): JSONValue {
257
+ protected validateEnum(key: string, value: JSONValue, schema: IJSONSchema & { enum: JSONValue[] }): JSONValue {
261
258
  const options = schema.enum;
262
- if (options.some(option => PreferenceProvider.deepEqual(option, value))) {
259
+ if (options.some(option => PreferenceUtils.deepEqual(option, value))) {
263
260
  return value;
264
261
  }
265
262
  const configuredDefault = this.getDefaultFromSchema(schema);
266
- if (options.some(option => PreferenceProvider.deepEqual(option, configuredDefault))) {
263
+ if (options.some(option => PreferenceUtils.deepEqual(option, configuredDefault))) {
267
264
  return configuredDefault;
268
265
  }
269
266
  return options[0];
270
267
  }
271
268
 
272
- protected validateBoolean(key: string, value: JSONValue, schema: ValidatablePreference): boolean {
269
+ protected validateBoolean(key: string, value: JSONValue, schema: IJSONSchema): boolean {
273
270
  if (value === true || value === false) {
274
271
  return value;
275
272
  }
@@ -282,11 +279,11 @@ export class PreferenceValidationService {
282
279
  return Boolean(this.getDefaultFromSchema(schema));
283
280
  }
284
281
 
285
- protected validateInteger(key: string, value: JSONValue, schema: ValidatablePreference): number {
282
+ protected validateInteger(key: string, value: JSONValue, schema: IJSONSchema): number {
286
283
  return Math.round(this.validateNumber(key, value, schema));
287
284
  }
288
285
 
289
- protected validateNumber(key: string, value: JSONValue, schema: ValidatablePreference): number {
286
+ protected validateNumber(key: string, value: JSONValue, schema: IJSONSchema): number {
290
287
  let validated = Number(value);
291
288
  if (isNaN(validated)) {
292
289
  const configuredDefault = Number(this.getDefaultFromSchema(schema));
@@ -301,7 +298,7 @@ export class PreferenceValidationService {
301
298
  return validated;
302
299
  }
303
300
 
304
- protected validateObject(key: string, value: JSONValue, schema: ValidatablePreference): JSONObject {
301
+ protected validateObject(key: string, value: JSONValue, schema: IJSONSchema): JSONObject {
305
302
  if (this.objectMatchesSchema(key, value, schema)) {
306
303
  return value;
307
304
  }
@@ -313,7 +310,7 @@ export class PreferenceValidationService {
313
310
  }
314
311
 
315
312
  // This evaluates most of the fields that commonly appear on PreferenceItem, but it could be improved to evaluate all possible JSON schema specifications.
316
- protected objectMatchesSchema(key: string, value: JSONValue, schema: ValidatablePreference): value is JSONObject {
313
+ protected objectMatchesSchema(key: string, value: JSONValue, schema: IJSONSchema): value is JSONObject {
317
314
  if (!value || typeof value !== 'object') {
318
315
  return false;
319
316
  }
@@ -341,7 +338,7 @@ export class PreferenceValidationService {
341
338
  return true;
342
339
  }
343
340
 
344
- protected validateString(key: string, value: JSONValue, schema: ValidatablePreference): string {
341
+ protected validateString(key: string, value: JSONValue, schema: IJSONSchema): string {
345
342
  if (typeof value === 'string') {
346
343
  return value;
347
344
  }
@@ -352,7 +349,29 @@ export class PreferenceValidationService {
352
349
  return (configuredDefault ?? '').toString();
353
350
  }
354
351
 
355
- protected getDefaultFromSchema(schema: ValidatablePreference): JSONValue {
356
- return this.schemaProvider.getDefaultValue(schema as PreferenceItem);
352
+ protected getDefaultFromSchema(schema: IJSONSchema): JSONValue {
353
+ return this.getDefaultValue(schema);
354
+ }
355
+
356
+ getDefaultValue(property: PreferenceDataProperty): JSONValue {
357
+ if (property.default !== undefined) {
358
+ return property.default;
359
+ }
360
+ const type = Array.isArray(property.type) ? property.type[0] : property.type;
361
+ switch (type) {
362
+ case 'boolean':
363
+ return false;
364
+ case 'integer':
365
+ case 'number':
366
+ return 0;
367
+ case 'string':
368
+ return '';
369
+ case 'array':
370
+ return [];
371
+ case 'object':
372
+ return {};
373
+ }
374
+ // eslint-disable-next-line no-null/no-null
375
+ return null;
357
376
  }
358
377
  }
@@ -17,10 +17,9 @@
17
17
  /* eslint-disable @typescript-eslint/no-explicit-any */
18
18
 
19
19
  import { interfaces } from 'inversify';
20
- import { PreferenceProvider } from '../preference-provider';
21
- import { PreferenceScope } from '../preference-scope';
20
+ import { PreferenceProviderImpl, PreferenceScope, PreferenceProvider } from '../../../common/preferences';
22
21
 
23
- export class MockPreferenceProvider extends PreferenceProvider {
22
+ export class MockPreferenceProvider extends PreferenceProviderImpl {
24
23
  readonly prefs: { [p: string]: any } = {};
25
24
 
26
25
  constructor(protected scope: PreferenceScope) {
@@ -42,8 +41,6 @@ export class MockPreferenceProvider extends PreferenceProvider {
42
41
  }
43
42
 
44
43
  export function bindMockPreferenceProviders(bind: interfaces.Bind, unbind: interfaces.Unbind): void {
45
- unbind(PreferenceProvider);
46
-
47
44
  bind(PreferenceProvider).toDynamicValue(ctx => new MockPreferenceProvider(PreferenceScope.User)).inSingletonScope().whenTargetNamed(PreferenceScope.User);
48
45
  bind(PreferenceProvider).toDynamicValue(ctx => new MockPreferenceProvider(PreferenceScope.Workspace)).inSingletonScope().whenTargetNamed(PreferenceScope.Workspace);
49
46
  bind(PreferenceProvider).toDynamicValue(ctx => new MockPreferenceProvider(PreferenceScope.Folder)).inSingletonScope().whenTargetNamed(PreferenceScope.Folder);
@@ -14,8 +14,7 @@
14
14
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
15
  // *****************************************************************************
16
16
 
17
- import { Emitter } from '../../../common';
18
- import { PreferenceChange } from '../preference-service';
17
+ import { Emitter, PreferenceChange } from '../../../common';
19
18
 
20
19
  /* eslint-disable @typescript-eslint/no-explicit-any */
21
20
  export function createMockPreferenceProxy(preferences: { [p: string]: any }): any {
@@ -15,11 +15,8 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  import { injectable } from 'inversify';
18
- import { Emitter, Event } from '../../../common';
18
+ import { Emitter, Event, OverridePreferenceName, PreferenceChange, PreferenceChanges, PreferenceInspection, PreferenceScope, PreferenceService } from '../../../common';
19
19
  import URI from '../../../common/uri';
20
- import { PreferenceChange, PreferenceChanges, PreferenceInspection, PreferenceService } from '../preference-service';
21
- import { PreferenceScope } from '../preference-scope';
22
- import { OverridePreferenceName } from '../preference-language-override-service';
23
20
 
24
21
  @injectable()
25
22
  export class MockPreferenceService implements PreferenceService {
@@ -18,7 +18,7 @@ import { inject, injectable } from 'inversify';
18
18
  import { KeybindingRegistry } from '../keybinding';
19
19
  import { Disposable, Command, CommandRegistry, CancellationToken, nls } from '../../common';
20
20
  import { ContextKeyService } from '../context-key-service';
21
- import { CorePreferences } from '../core-preferences';
21
+ import { CorePreferences } from '../../common/core-preferences';
22
22
  import { QuickAccessContribution, QuickAccessProvider, QuickAccessRegistry } from './quick-access';
23
23
  import { filterItems, QuickPickItem, QuickPicks } from './quick-input-service';
24
24
  import { KeySequence } from '../keys';
@@ -16,7 +16,7 @@
16
16
 
17
17
  import { inject, injectable, postConstruct } from 'inversify';
18
18
  import { BackendRequestService, RequestConfiguration, RequestContext, RequestOptions, RequestService, CancellationToken } from '@theia/request';
19
- import { PreferenceService } from '../preferences/preference-service';
19
+ import { PreferenceService } from '../../common';
20
20
 
21
21
  @injectable()
22
22
  export abstract class AbstractBrowserRequestService implements RequestService {
@@ -40,9 +40,9 @@ export abstract class AbstractBrowserRequestService implements RequestService {
40
40
  });
41
41
  this.preferenceService.onPreferencesChanged(e => {
42
42
  this.configurePromise.then(() => this.configure({
43
- proxyUrl: e['http.proxy']?.newValue,
44
- proxyAuthorization: e['http.proxyAuthorization']?.newValue,
45
- strictSSL: e['http.proxyStrictSSL']?.newValue
43
+ proxyUrl: e['http.proxy']?.newValue as string,
44
+ proxyAuthorization: e['http.proxyAuthorization']?.newValue as string,
45
+ strictSSL: e['http.proxyStrictSSL']?.newValue as boolean
46
46
  }));
47
47
  });
48
48
  }
@@ -64,6 +64,14 @@ export interface Saveable {
64
64
  * Serializes the full state of the saveable item to a binary buffer.
65
65
  */
66
66
  serialize?(): Promise<BinaryBuffer>;
67
+
68
+ /**
69
+ * Optionally return file filters for the "Save As" dialog.
70
+ * The keys of the returned object are the names of the filters and the values are arrays of file extensions.
71
+ * For example: `{ 'Text Files': ['txt', 'text'], 'All Files': ['*'] }`
72
+ * If no filters are provided, a default filter of `All Files (*.*)` will be used.
73
+ */
74
+ filters?(): { [name: string]: string[] };
67
75
  }
68
76
 
69
77
  export interface SaveableSource {