@codingame/monaco-vscode-api 1.79.0 → 1.79.2-next.0

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 (644) hide show
  1. package/README.md +17 -6
  2. package/dist/api.js +12 -10
  3. package/dist/composite.d.ts +65 -0
  4. package/dist/configurationRegistry.d.ts +212 -0
  5. package/dist/contextkey.d.ts +2 -2
  6. package/dist/default-extension.js +23 -0
  7. package/dist/default-extensions/json.js +1 -0
  8. package/dist/default-extensions/theme-defaults.js +2 -2
  9. package/dist/editor.d.ts +4 -320
  10. package/dist/editorBrowser.d.ts +597 -11
  11. package/dist/event.d.ts +6 -1
  12. package/dist/{extension-tools-d0cfdea1.js → extension-tools-3c2bf0a4.js} +1032 -706
  13. package/dist/extensions.d.ts +6 -6
  14. package/dist/extensions.d2.ts +6 -17
  15. package/dist/extensions.js +4 -37
  16. package/dist/extensionsRegistry.d.ts +15 -9
  17. package/dist/files.d.ts +73 -9
  18. package/dist/jsonSchema.d.ts +1 -1
  19. package/dist/keybinding.d.ts +3 -3
  20. package/dist/languageFeatures.d.ts +706 -65
  21. package/dist/log.d.ts +1 -1
  22. package/dist/monaco.d.ts +33 -33
  23. package/dist/monaco.js +62 -6
  24. package/dist/node_modules/rollup-plugin-styles/dist/runtime/inject-css.js +2 -0
  25. package/dist/override/vs/workbench/contrib/notebook/browser/contrib/find/findMatchDecorationModel.js +2 -0
  26. package/dist/override/vs/workbench/contrib/notebook/browser/notebookEditor.js +2 -0
  27. package/dist/override/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +2 -0
  28. package/dist/override/vs/workbench/contrib/notebook/common/notebookEditorInput.js +5 -0
  29. package/dist/platform.d.ts +11 -0
  30. package/dist/rollup-extension-directory-plugin.js +1 -2
  31. package/dist/rollup-vsix-plugin.js +1 -2
  32. package/dist/service-override/configuration.d.ts +7 -208
  33. package/dist/service-override/editor.d.ts +13 -0
  34. package/dist/service-override/{modelEditor.js → editor.js} +6 -62
  35. package/dist/service-override/files.d.ts +4 -4
  36. package/dist/service-override/files.js +14 -2
  37. package/dist/service-override/keybindings.js +3 -79
  38. package/dist/service-override/layout.js +6 -2
  39. package/dist/service-override/markers.d.ts +7 -0
  40. package/dist/service-override/markers.js +6 -0
  41. package/dist/service-override/model.d.ts +7 -0
  42. package/dist/service-override/model.js +10 -0
  43. package/dist/service-override/output.d.ts +7 -0
  44. package/dist/service-override/output.js +22 -0
  45. package/dist/service-override/preferences.js +7 -1
  46. package/dist/service-override/quickaccess.d.ts +7 -0
  47. package/dist/service-override/quickaccess.js +71 -0
  48. package/dist/service-override/search.d.ts +7 -0
  49. package/dist/service-override/search.js +19 -0
  50. package/dist/service-override/snippets.js +5 -1
  51. package/dist/service-override/terminal.d.ts +607 -0
  52. package/dist/service-override/terminal.js +98 -0
  53. package/dist/service-override/textmate.js +7 -2
  54. package/dist/service-override/theme.d.ts +1 -1
  55. package/dist/service-override/tools/editor.js +73 -0
  56. package/dist/service-override/views.d.ts +569 -481
  57. package/dist/service-override/views.js +149 -15
  58. package/dist/services.d.ts +2819 -203
  59. package/dist/services.js +3 -0
  60. package/dist/severity.d.ts +16 -0
  61. package/dist/uri.d.ts +22 -11
  62. package/dist/views.d.ts +270 -0
  63. package/dist/vscode/vs/base/browser/ui/centered/centeredViewLayout.js +178 -0
  64. package/dist/vscode/vs/base/browser/ui/grid/grid.js +452 -0
  65. package/dist/vscode/vs/base/browser/ui/grid/gridview.css.js +4 -0
  66. package/dist/vscode/vs/base/browser/ui/grid/gridview.js +999 -0
  67. package/dist/vscode/vs/base/browser/ui/iconLabel/simpleIconLabel.js +14 -0
  68. package/dist/vscode/vs/base/browser/ui/menu/menubar.css.js +4 -0
  69. package/dist/vscode/vs/base/browser/ui/menu/menubar.js +1 -1
  70. package/dist/vscode/vs/base/browser/ui/splitview/paneview.css.js +4 -0
  71. package/dist/vscode/vs/base/browser/ui/splitview/paneview.js +1 -1
  72. package/dist/vscode/vs/base/common/processes.js +24 -0
  73. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/decorations.js +20 -0
  74. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/delegatingEditorImpl.js +106 -0
  75. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/diffEditorSash.js +59 -0
  76. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/diffEditorWidget2.contribution.js +41 -0
  77. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/diffEditorWidget2.js +369 -0
  78. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/diffModel.js +247 -0
  79. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/lineAlignment.js +179 -0
  80. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/overviewRulerPart.js +121 -0
  81. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/style.css.js +4 -0
  82. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/unchangedRanges.js +184 -0
  83. package/dist/vscode/vs/editor/browser/widget/diffEditorWidget2/utils.js +88 -0
  84. package/dist/vscode/vs/platform/extensionManagement/common/extensionManagement.js +39 -1
  85. package/dist/vscode/vs/platform/extensionManagement/common/extensionManagementUtil.js +5 -1
  86. package/dist/vscode/vs/platform/extensionManagement/common/extensionStorage.js +1 -1
  87. package/dist/vscode/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +13 -5
  88. package/dist/vscode/vs/platform/files/common/fileService.js +43 -5
  89. package/dist/vscode/vs/platform/files/common/files.js +3 -1
  90. package/dist/vscode/vs/platform/languagePacks/common/languagePacks.js +4 -1
  91. package/dist/vscode/vs/platform/log/common/bufferLog.js +34 -0
  92. package/dist/vscode/vs/platform/log/common/fileLog.js +105 -0
  93. package/dist/vscode/vs/platform/quickinput/browser/quickPickPin.js +94 -0
  94. package/dist/vscode/vs/platform/remote/common/remoteAuthorityResolver.js +20 -1
  95. package/dist/vscode/vs/platform/request/browser/requestService.js +1 -1
  96. package/dist/vscode/vs/platform/request/common/request.js +3 -3
  97. package/dist/vscode/vs/platform/storage/common/storage.js +3 -0
  98. package/dist/vscode/vs/platform/terminal/common/capabilities/bufferMarkCapability.js +39 -0
  99. package/dist/vscode/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +565 -0
  100. package/dist/vscode/vs/platform/terminal/common/capabilities/cwdDetectionCapability.js +27 -0
  101. package/dist/vscode/vs/platform/terminal/common/capabilities/naiveCwdDetectionCapability.js +22 -0
  102. package/dist/vscode/vs/platform/terminal/common/capabilities/partialCommandDetectionCapability.js +46 -0
  103. package/dist/vscode/vs/platform/terminal/common/capabilities/terminalCapabilityStore.js +80 -0
  104. package/dist/vscode/vs/platform/terminal/common/environmentVariable.js +7 -0
  105. package/dist/vscode/vs/platform/terminal/common/environmentVariableCollection.js +196 -0
  106. package/dist/vscode/vs/platform/terminal/common/environmentVariableShared.js +23 -0
  107. package/dist/vscode/vs/platform/terminal/common/terminal.js +23 -0
  108. package/dist/vscode/vs/platform/terminal/common/terminalDataBuffering.js +45 -0
  109. package/dist/vscode/vs/platform/terminal/common/terminalEnvironment.js +37 -0
  110. package/dist/vscode/vs/platform/terminal/common/terminalPlatformConfiguration.js +622 -0
  111. package/dist/vscode/vs/platform/terminal/common/terminalProfiles.js +107 -0
  112. package/dist/vscode/vs/platform/terminal/common/terminalRecorder.js +66 -0
  113. package/dist/vscode/vs/platform/terminal/common/terminalStrings.js +16 -0
  114. package/dist/vscode/vs/platform/terminal/common/xterm/shellIntegrationAddon.js +321 -0
  115. package/dist/vscode/vs/platform/update/common/update.js +11 -1
  116. package/dist/vscode/vs/platform/userDataSync/common/settingsMerge.js +39 -1
  117. package/dist/vscode/vs/platform/userDataSync/common/userDataSync.js +19 -0
  118. package/dist/vscode/vs/platform/workspace/common/canonicalUri.js +3 -0
  119. package/dist/vscode/vs/platform/workspace/common/virtualWorkspace.js +4 -1
  120. package/dist/vscode/vs/platform/workspaces/common/workspaces.js +2 -2
  121. package/dist/vscode/vs/workbench/api/browser/mainThreadCommands.js +2 -3
  122. package/dist/vscode/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +1 -1
  123. package/dist/vscode/vs/workbench/api/browser/mainThreadEditorTabs.js +473 -0
  124. package/dist/vscode/vs/workbench/api/browser/mainThreadLanguageFeatures.js +45 -38
  125. package/dist/vscode/vs/workbench/api/browser/mainThreadSearch.js +146 -0
  126. package/dist/vscode/vs/workbench/api/browser/mainThreadStatusBar.js +49 -0
  127. package/dist/vscode/vs/workbench/api/browser/mainThreadTerminalService.js +395 -0
  128. package/dist/vscode/vs/workbench/api/browser/mainThreadTheming.js +22 -0
  129. package/dist/vscode/vs/workbench/api/browser/mainThreadTreeViews.js +10 -5
  130. package/dist/vscode/vs/workbench/api/browser/mainThreadWindow.js +11 -4
  131. package/dist/vscode/vs/workbench/api/browser/mainThreadWorkspace.js +34 -11
  132. package/dist/vscode/vs/workbench/api/browser/statusBarExtensionPoint.js +81 -0
  133. package/dist/vscode/vs/workbench/api/common/extHost.protocol.js +7 -2
  134. package/dist/vscode/vs/workbench/api/common/extHostDebugService.js +4 -13
  135. package/dist/vscode/vs/workbench/api/common/extHostExtensionService.js +30 -15
  136. package/dist/vscode/vs/workbench/api/common/extHostFileSystemConsumer.js +20 -6
  137. package/dist/vscode/vs/workbench/api/common/extHostLanguageFeatures.js +41 -8
  138. package/dist/vscode/vs/workbench/api/common/extHostManagedSockets.js +3 -0
  139. package/dist/vscode/vs/workbench/api/common/extHostSearch.js +109 -0
  140. package/dist/vscode/vs/workbench/api/common/extHostStatusBar.js +261 -0
  141. package/dist/vscode/vs/workbench/api/common/extHostTerminalService.js +879 -1
  142. package/dist/vscode/vs/workbench/api/common/extHostTheming.js +38 -0
  143. package/dist/vscode/vs/workbench/api/common/extHostTreeViews.js +8 -5
  144. package/dist/vscode/vs/workbench/api/common/extHostTypeConverters.js +15 -17
  145. package/dist/vscode/vs/workbench/api/common/extHostTypes.js +122 -4
  146. package/dist/vscode/vs/workbench/api/common/extHostWindow.js +28 -6
  147. package/dist/vscode/vs/workbench/api/common/extHostWorkspace.js +28 -0
  148. package/dist/vscode/vs/workbench/api/common/shared/dataTransferCache.js +11 -14
  149. package/dist/vscode/vs/workbench/api/node/extHostTerminalService.js +22 -0
  150. package/dist/vscode/vs/workbench/browser/actions/layoutActions.js +22 -18
  151. package/dist/vscode/vs/workbench/browser/actions/quickAccessActions.js +204 -0
  152. package/dist/vscode/vs/workbench/browser/actions/windowActions.js +2 -2
  153. package/dist/vscode/vs/workbench/browser/dnd.js +82 -3
  154. package/dist/vscode/vs/workbench/browser/editor.js +94 -0
  155. package/dist/vscode/vs/workbench/browser/labels.js +23 -2
  156. package/dist/vscode/vs/workbench/browser/media/part.css.js +4 -0
  157. package/dist/vscode/vs/workbench/browser/part.js +1 -1
  158. package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarActions.js +1 -1
  159. package/dist/vscode/vs/workbench/browser/parts/activitybar/activitybarPart.js +3 -3
  160. package/dist/vscode/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +4 -0
  161. package/dist/vscode/vs/workbench/browser/parts/activitybar/media/activitybarpart.css.js +4 -0
  162. package/dist/vscode/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +14 -26
  163. package/dist/vscode/vs/workbench/browser/parts/compositePart.js +2 -2
  164. package/dist/vscode/vs/workbench/browser/parts/dialogs/dialogHandler.js +2 -2
  165. package/dist/vscode/vs/workbench/browser/parts/editor/binaryDiffEditor.js +43 -0
  166. package/dist/vscode/vs/workbench/browser/parts/editor/binaryEditor.js +55 -0
  167. package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbs.js +330 -0
  168. package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbsControl.js +690 -0
  169. package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbsModel.js +142 -0
  170. package/dist/vscode/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +414 -0
  171. package/dist/vscode/vs/workbench/browser/parts/editor/editor.contribution.js +801 -6
  172. package/dist/vscode/vs/workbench/browser/parts/editor/editor.js +57 -1
  173. package/dist/vscode/vs/workbench/browser/parts/editor/editorActions.js +1484 -107
  174. package/dist/vscode/vs/workbench/browser/parts/editor/editorCommands.js +1125 -9
  175. package/dist/vscode/vs/workbench/browser/parts/editor/editorDropTarget.js +499 -0
  176. package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupView.js +1225 -0
  177. package/dist/vscode/vs/workbench/browser/parts/editor/editorGroupWatermark.js +133 -0
  178. package/dist/vscode/vs/workbench/browser/parts/editor/editorPane.js +242 -0
  179. package/dist/vscode/vs/workbench/browser/parts/editor/editorPanes.js +297 -0
  180. package/dist/vscode/vs/workbench/browser/parts/editor/editorPart.js +841 -0
  181. package/dist/vscode/vs/workbench/browser/parts/editor/editorPlaceholder.js +235 -0
  182. package/dist/vscode/vs/workbench/browser/parts/editor/editorQuickAccess.js +1 -1
  183. package/dist/vscode/vs/workbench/browser/parts/editor/editorStatus.js +1152 -0
  184. package/dist/vscode/vs/workbench/browser/parts/editor/editorWithViewState.js +139 -0
  185. package/dist/vscode/vs/workbench/browser/parts/editor/editorsObserver.js +339 -0
  186. package/dist/vscode/vs/workbench/browser/parts/editor/media/breadcrumbscontrol.css.js +4 -0
  187. package/dist/vscode/vs/workbench/browser/parts/editor/media/editordroptarget.css.js +4 -0
  188. package/dist/vscode/vs/workbench/browser/parts/editor/media/editorgroupview.css.js +4 -0
  189. package/dist/vscode/vs/workbench/browser/parts/editor/media/editorplaceholder.css.js +4 -0
  190. package/dist/vscode/vs/workbench/browser/parts/editor/media/editorquickaccess.css.js +4 -0
  191. package/dist/vscode/vs/workbench/browser/parts/editor/media/editorstatus.css.js +4 -0
  192. package/dist/vscode/vs/workbench/browser/parts/editor/media/notabstitlecontrol.css.js +4 -0
  193. package/dist/vscode/vs/workbench/browser/parts/editor/media/sidebysideeditor.css.js +4 -0
  194. package/dist/vscode/vs/workbench/browser/parts/editor/media/tabstitlecontrol.css.js +4 -0
  195. package/dist/vscode/vs/workbench/browser/parts/editor/media/titlecontrol.css.js +4 -0
  196. package/dist/vscode/vs/workbench/browser/parts/editor/noTabsTitleControl.js +245 -0
  197. package/dist/vscode/vs/workbench/browser/parts/editor/sideBySideEditor.js +387 -0
  198. package/dist/vscode/vs/workbench/browser/parts/editor/tabFocus.js +77 -0
  199. package/dist/vscode/vs/workbench/browser/parts/editor/tabsTitleControl.js +1553 -0
  200. package/dist/vscode/vs/workbench/browser/parts/editor/textCodeEditor.js +79 -0
  201. package/dist/vscode/vs/workbench/browser/parts/editor/textDiffEditor.js +310 -0
  202. package/dist/vscode/vs/workbench/browser/parts/editor/textEditor.js +220 -0
  203. package/dist/vscode/vs/workbench/browser/parts/editor/textResourceEditor.js +149 -0
  204. package/dist/vscode/vs/workbench/browser/parts/editor/titleControl.js +284 -0
  205. package/dist/vscode/vs/workbench/browser/parts/media/compositepart.css.js +4 -0
  206. package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsActions.css.js +4 -0
  207. package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsCenter.css.js +4 -0
  208. package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsList.css.js +4 -0
  209. package/dist/vscode/vs/workbench/browser/parts/notifications/media/notificationsToasts.css.js +4 -0
  210. package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsActions.js +8 -8
  211. package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsCenter.js +2 -2
  212. package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsList.js +1 -1
  213. package/dist/vscode/vs/workbench/browser/parts/notifications/notificationsToasts.js +1 -1
  214. package/dist/vscode/vs/workbench/browser/parts/panel/media/basepanelpart.css.js +4 -0
  215. package/dist/vscode/vs/workbench/browser/parts/panel/media/panelpart.css.js +4 -0
  216. package/dist/vscode/vs/workbench/browser/parts/panel/panelActions.js +19 -5
  217. package/dist/vscode/vs/workbench/browser/parts/panel/panelPart.js +2 -2
  218. package/dist/vscode/vs/workbench/browser/parts/sidebar/media/sidebarpart.css.js +4 -0
  219. package/dist/vscode/vs/workbench/browser/parts/sidebar/sidebarPart.js +1 -1
  220. package/dist/vscode/vs/workbench/browser/parts/statusbar/media/statusbarpart.css.js +4 -0
  221. package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarActions.js +109 -0
  222. package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarItem.js +224 -0
  223. package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarModel.js +251 -0
  224. package/dist/vscode/vs/workbench/browser/parts/statusbar/statusbarPart.js +439 -0
  225. package/dist/vscode/vs/workbench/browser/parts/titlebar/media/menubarControl.css.js +4 -0
  226. package/dist/vscode/vs/workbench/browser/parts/titlebar/menubarControl.js +76 -3
  227. package/dist/vscode/vs/workbench/browser/parts/views/checkbox.js +10 -0
  228. package/dist/vscode/vs/workbench/browser/parts/views/media/paneviewlet.css.js +4 -0
  229. package/dist/vscode/vs/workbench/browser/parts/views/media/views.css.js +4 -0
  230. package/dist/vscode/vs/workbench/browser/parts/views/treeView.js +79 -15
  231. package/dist/vscode/vs/workbench/browser/parts/views/viewPane.js +5 -5
  232. package/dist/vscode/vs/workbench/browser/parts/views/viewPaneContainer.js +2 -2
  233. package/dist/vscode/vs/workbench/browser/parts/views/viewsService.js +4 -4
  234. package/dist/vscode/vs/workbench/browser/quickaccess.js +6 -2
  235. package/dist/vscode/vs/workbench/browser/workbench.contribution.js +1167 -0
  236. package/dist/vscode/vs/workbench/common/configuration.js +8 -1
  237. package/dist/vscode/vs/workbench/common/contextkeys.js +42 -1
  238. package/dist/vscode/vs/workbench/common/editor/editorGroupModel.js +678 -0
  239. package/dist/vscode/vs/workbench/common/editor/resourceEditorInput.js +6 -3
  240. package/dist/vscode/vs/workbench/common/editor/textResourceEditorInput.js +9 -6
  241. package/dist/vscode/vs/workbench/common/editor.js +57 -5
  242. package/dist/vscode/vs/workbench/common/resources.js +111 -34
  243. package/dist/vscode/vs/workbench/common/theme.js +35 -35
  244. package/dist/vscode/vs/workbench/common/views.js +1 -1
  245. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkEditService.js +1 -1
  246. package/dist/vscode/vs/workbench/contrib/bulkEdit/browser/bulkTextEdits.js +1 -1
  247. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +4 -4
  248. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/callHierarchyPeek.js +1 -1
  249. package/dist/vscode/vs/workbench/contrib/callHierarchy/browser/media/callHierarchy.css.js +4 -0
  250. package/dist/vscode/vs/workbench/contrib/chat/browser/chat.js +3 -0
  251. package/dist/vscode/vs/workbench/contrib/chat/common/chatService.js +3 -0
  252. package/dist/vscode/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.js +6 -4
  253. package/dist/vscode/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoLineQuickAccess.js +77 -0
  254. package/dist/vscode/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +217 -0
  255. package/dist/vscode/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.css.js +4 -0
  256. package/dist/vscode/vs/workbench/contrib/codeEditor/browser/suggestEnabledInput/suggestEnabledInput.js +250 -0
  257. package/dist/vscode/vs/workbench/contrib/codeEditor/browser/workbenchReferenceSearch.js +24 -0
  258. package/dist/vscode/vs/workbench/contrib/customEditor/browser/customEditorInput.js +290 -0
  259. package/dist/vscode/vs/workbench/contrib/customEditor/common/customEditor.js +3 -0
  260. package/dist/vscode/vs/workbench/contrib/debug/browser/breakpointWidget.js +1 -1
  261. package/dist/vscode/vs/workbench/contrib/debug/browser/callStackEditorContribution.js +1 -1
  262. package/dist/vscode/vs/workbench/contrib/debug/browser/debug.contribution.js +30 -4
  263. package/dist/vscode/vs/workbench/contrib/debug/browser/debugActionViewItems.js +1 -0
  264. package/dist/vscode/vs/workbench/contrib/debug/browser/debugCommands.js +15 -2
  265. package/dist/vscode/vs/workbench/contrib/debug/browser/debugConfigurationManager.js +20 -20
  266. package/dist/vscode/vs/workbench/contrib/debug/browser/debugEditorActions.js +5 -3
  267. package/dist/vscode/vs/workbench/contrib/debug/browser/debugEditorContribution.js +5 -2
  268. package/dist/vscode/vs/workbench/contrib/debug/browser/debugHover.js +33 -6
  269. package/dist/vscode/vs/workbench/contrib/debug/browser/debugIcons.js +77 -127
  270. package/dist/vscode/vs/workbench/contrib/debug/browser/debugSession.js +1 -1
  271. package/dist/vscode/vs/workbench/contrib/debug/browser/debugTaskRunner.js +1 -1
  272. package/dist/vscode/vs/workbench/contrib/debug/browser/debugToolBar.js +1 -1
  273. package/dist/vscode/vs/workbench/contrib/debug/browser/debugViewlet.js +1 -1
  274. package/dist/vscode/vs/workbench/contrib/debug/browser/disassemblyView.js +620 -0
  275. package/dist/vscode/vs/workbench/contrib/debug/browser/exceptionWidget.js +1 -1
  276. package/dist/vscode/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +4 -0
  277. package/dist/vscode/vs/workbench/contrib/debug/browser/media/callStackEditorContribution.css.js +4 -0
  278. package/dist/vscode/vs/workbench/contrib/debug/browser/media/debug.contribution.css.js +4 -0
  279. package/dist/vscode/vs/workbench/contrib/debug/browser/media/debugHover.css.js +4 -0
  280. package/dist/vscode/vs/workbench/contrib/debug/browser/media/debugToolBar.css.js +4 -0
  281. package/dist/vscode/vs/workbench/contrib/debug/browser/media/debugViewlet.css.js +4 -0
  282. package/dist/vscode/vs/workbench/contrib/debug/browser/media/exceptionWidget.css.js +4 -0
  283. package/dist/vscode/vs/workbench/contrib/debug/browser/media/repl.css.js +4 -0
  284. package/dist/vscode/vs/workbench/contrib/debug/browser/repl.js +4 -4
  285. package/dist/vscode/vs/workbench/contrib/debug/common/debug.js +2 -1
  286. package/dist/vscode/vs/workbench/contrib/debug/common/debugModel.js +29 -17
  287. package/dist/vscode/vs/workbench/contrib/debug/common/debugStorage.js +11 -10
  288. package/dist/vscode/vs/workbench/contrib/debug/common/debugger.js +10 -6
  289. package/dist/vscode/vs/workbench/contrib/extensions/browser/extensionsActions.js +2514 -0
  290. package/dist/vscode/vs/workbench/contrib/extensions/browser/extensionsIcons.js +82 -0
  291. package/dist/vscode/vs/workbench/contrib/extensions/browser/media/extensionActions.css.js +4 -0
  292. package/dist/vscode/vs/workbench/contrib/extensions/common/extensions.js +6 -1
  293. package/dist/vscode/vs/workbench/contrib/extensions/common/extensionsFileTemplate.js +16 -0
  294. package/dist/vscode/vs/workbench/contrib/files/browser/editors/binaryFileEditor.js +71 -0
  295. package/dist/vscode/vs/workbench/contrib/files/browser/editors/fileEditorInput.js +2 -3
  296. package/dist/vscode/vs/workbench/contrib/files/browser/editors/textFileEditor.js +225 -0
  297. package/dist/vscode/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +2 -0
  298. package/dist/vscode/vs/workbench/contrib/files/browser/explorerService.js +10 -6
  299. package/dist/vscode/vs/workbench/contrib/files/browser/explorerViewlet.js +8 -22
  300. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.contribution.js +306 -5
  301. package/dist/vscode/vs/workbench/contrib/files/browser/fileActions.js +68 -3
  302. package/dist/vscode/vs/workbench/contrib/files/browser/fileCommands.js +27 -9
  303. package/dist/vscode/vs/workbench/contrib/files/browser/fileConstants.js +10 -1
  304. package/dist/vscode/vs/workbench/contrib/files/browser/files.contribution.js +51 -6
  305. package/dist/vscode/vs/workbench/contrib/files/browser/files.js +1 -0
  306. package/dist/vscode/vs/workbench/contrib/files/browser/media/explorerviewlet.css.js +4 -0
  307. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerView.js +3 -3
  308. package/dist/vscode/vs/workbench/contrib/files/browser/views/explorerViewer.js +6 -2
  309. package/dist/vscode/vs/workbench/contrib/files/browser/views/media/openeditors.css.js +4 -0
  310. package/dist/vscode/vs/workbench/contrib/files/browser/views/openEditorsView.js +608 -0
  311. package/dist/vscode/vs/workbench/contrib/files/common/explorerModel.js +16 -9
  312. package/dist/vscode/vs/workbench/contrib/files/common/files.js +2 -6
  313. package/dist/vscode/vs/workbench/contrib/interactive/browser/interactiveDocumentService.js +3 -0
  314. package/dist/vscode/vs/workbench/contrib/interactive/browser/interactiveEditorInput.js +200 -0
  315. package/dist/vscode/vs/workbench/contrib/interactive/browser/interactiveHistoryService.js +3 -0
  316. package/dist/vscode/vs/workbench/contrib/markers/browser/markers.contribution.js +586 -0
  317. package/dist/vscode/vs/workbench/contrib/markers/browser/markersFilterOptions.js +75 -0
  318. package/dist/vscode/vs/workbench/contrib/markers/browser/markersModel.js +201 -0
  319. package/dist/vscode/vs/workbench/contrib/markers/browser/markersTable.js +451 -0
  320. package/dist/vscode/vs/workbench/contrib/markers/browser/markersTreeViewer.js +670 -0
  321. package/dist/vscode/vs/workbench/contrib/markers/browser/markersView.js +857 -0
  322. package/dist/vscode/vs/workbench/contrib/markers/browser/markersViewActions.css.js +4 -0
  323. package/dist/vscode/vs/workbench/contrib/markers/browser/markersViewActions.js +132 -0
  324. package/dist/vscode/vs/workbench/contrib/markers/browser/media/markers.css.js +4 -0
  325. package/dist/vscode/vs/workbench/contrib/markers/browser/messages.js +171 -0
  326. package/dist/vscode/vs/workbench/contrib/markers/common/markers.js +15 -1
  327. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInput.js +135 -0
  328. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/mergeEditorInputModel.js +421 -0
  329. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/mergeMarkers/mergeMarkersController.js +5 -0
  330. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/diffComputer.js +55 -0
  331. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/editing.js +54 -0
  332. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/lineRange.js +108 -0
  333. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/mapping.js +334 -0
  334. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +606 -0
  335. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/modifiedBaseRange.js +307 -0
  336. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/rangeUtils.js +36 -0
  337. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +165 -0
  338. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/telemetry.js +78 -0
  339. package/dist/vscode/vs/workbench/contrib/mergeEditor/browser/utils.js +68 -0
  340. package/dist/vscode/vs/workbench/contrib/mergeEditor/common/mergeEditor.js +2 -0
  341. package/dist/vscode/vs/workbench/contrib/notebook/browser/contrib/find/findFilters.js +70 -0
  342. package/dist/vscode/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.css.js +4 -0
  343. package/dist/vscode/vs/workbench/contrib/notebook/browser/contrib/find/notebookFindReplaceWidget.js +158 -0
  344. package/dist/vscode/vs/workbench/contrib/notebook/browser/notebookBrowser.js +8 -3
  345. package/dist/vscode/vs/workbench/contrib/notebook/browser/services/notebookEditorService.js +3 -0
  346. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookCommon.js +16 -1
  347. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookService.js +1 -8
  348. package/dist/vscode/vs/workbench/contrib/output/browser/logViewer.js +64 -0
  349. package/dist/vscode/vs/workbench/contrib/output/browser/output.contribution.js +378 -0
  350. package/dist/vscode/vs/workbench/contrib/output/browser/outputServices.js +39 -3
  351. package/dist/vscode/vs/workbench/contrib/output/browser/outputView.js +220 -0
  352. package/dist/vscode/vs/workbench/contrib/output/common/outputChannelModel.js +12 -3
  353. package/dist/vscode/vs/workbench/contrib/output/common/outputLinkComputer.js +129 -0
  354. package/dist/vscode/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +270 -0
  355. package/dist/vscode/vs/workbench/contrib/preferences/browser/keybindingsEditor.js +1080 -0
  356. package/dist/vscode/vs/workbench/contrib/preferences/browser/media/keybindings.css.js +4 -0
  357. package/dist/vscode/vs/workbench/contrib/preferences/browser/media/keybindingsEditor.css.js +4 -0
  358. package/dist/vscode/vs/workbench/contrib/preferences/browser/media/preferences.css.js +4 -0
  359. package/dist/vscode/vs/workbench/contrib/preferences/browser/media/settingsEditor2.css.js +4 -0
  360. package/dist/vscode/vs/workbench/contrib/preferences/browser/media/settingsWidgets.css.js +4 -0
  361. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferences.contribution.js +1154 -0
  362. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferencesActions.js +94 -0
  363. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferencesEditor.js +47 -0
  364. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferencesIcons.js +37 -0
  365. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferencesRenderers.js +731 -0
  366. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferencesSearch.js +271 -0
  367. package/dist/vscode/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +479 -0
  368. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsEditor2.js +1465 -0
  369. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsEditorSettingIndicators.js +506 -0
  370. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsLayout.js +296 -0
  371. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsSearchMenu.js +79 -0
  372. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsTree.js +1984 -0
  373. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +759 -0
  374. package/dist/vscode/vs/workbench/contrib/preferences/browser/settingsWidgets.js +1008 -0
  375. package/dist/vscode/vs/workbench/contrib/preferences/browser/tocTree.js +196 -0
  376. package/dist/vscode/vs/workbench/contrib/preferences/common/preferences.js +68 -0
  377. package/dist/vscode/vs/workbench/contrib/preferences/common/preferencesContribution.js +157 -0
  378. package/dist/vscode/vs/workbench/contrib/preferences/common/settingsEditorColorRegistry.js +67 -0
  379. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/commandsQuickAccess.js +49 -17
  380. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/quickAccess.contribution.js +129 -0
  381. package/dist/vscode/vs/workbench/contrib/quickaccess/browser/viewQuickAccess.js +225 -0
  382. package/dist/vscode/vs/workbench/contrib/remote/browser/media/tunnelView.css.js +4 -0
  383. package/dist/vscode/vs/workbench/contrib/remote/browser/remoteExplorer.js +23 -2
  384. package/dist/vscode/vs/workbench/contrib/remote/browser/remoteIcons.js +21 -17
  385. package/dist/vscode/vs/workbench/contrib/remote/browser/tunnelView.js +6 -6
  386. package/dist/vscode/vs/workbench/contrib/search/browser/anythingQuickAccess.js +757 -0
  387. package/dist/vscode/vs/workbench/contrib/search/browser/media/anythingQuickAccess.css.js +4 -0
  388. package/dist/vscode/vs/workbench/contrib/search/browser/media/searchview.css.js +4 -0
  389. package/dist/vscode/vs/workbench/contrib/search/browser/patternInputWidget.js +217 -0
  390. package/dist/vscode/vs/workbench/contrib/search/browser/replace.js +3 -0
  391. package/dist/vscode/vs/workbench/contrib/search/browser/replaceContributions.js +7 -0
  392. package/dist/vscode/vs/workbench/contrib/search/browser/replaceService.js +222 -0
  393. package/dist/vscode/vs/workbench/contrib/search/browser/search.contribution.js +467 -0
  394. package/dist/vscode/vs/workbench/contrib/search/browser/searchActionsBase.js +17 -0
  395. package/dist/vscode/vs/workbench/contrib/search/browser/searchFindInput.js +41 -0
  396. package/dist/vscode/vs/workbench/contrib/search/browser/searchIcons.js +35 -0
  397. package/dist/vscode/vs/workbench/contrib/search/browser/searchMessage.js +58 -0
  398. package/dist/vscode/vs/workbench/contrib/search/browser/searchModel.js +1842 -0
  399. package/dist/vscode/vs/workbench/contrib/search/browser/searchNotebookHelpers.js +49 -0
  400. package/dist/vscode/vs/workbench/contrib/search/browser/searchResultsView.js +379 -0
  401. package/dist/vscode/vs/workbench/contrib/search/browser/searchView.js +1867 -0
  402. package/dist/vscode/vs/workbench/contrib/search/browser/searchWidget.js +628 -0
  403. package/dist/vscode/vs/workbench/contrib/search/browser/symbolsQuickAccess.js +219 -0
  404. package/dist/vscode/vs/workbench/contrib/search/common/cacheState.js +85 -0
  405. package/dist/vscode/vs/workbench/contrib/search/common/constants.js +31 -0
  406. package/dist/vscode/vs/workbench/contrib/search/common/search.js +127 -1
  407. package/dist/vscode/vs/workbench/contrib/search/common/searchHistoryService.js +42 -0
  408. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/constants.js +11 -0
  409. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/media/searchEditor.css.js +4 -0
  410. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.js +477 -0
  411. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditor.js +697 -0
  412. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorActions.js +188 -0
  413. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorInput.js +295 -0
  414. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorModel.js +135 -0
  415. package/dist/vscode/vs/workbench/contrib/searchEditor/browser/searchEditorSerialization.js +268 -0
  416. package/dist/vscode/vs/workbench/contrib/snippets/browser/tabCompletion.js +2 -2
  417. package/dist/vscode/vs/workbench/contrib/tasks/browser/taskQuickPick.js +385 -0
  418. package/dist/vscode/vs/workbench/contrib/tasks/browser/tasksQuickAccess.js +108 -0
  419. package/dist/vscode/vs/workbench/contrib/tasks/common/taskService.js +16 -1
  420. package/dist/vscode/vs/workbench/contrib/tasks/common/tasks.js +351 -0
  421. package/dist/vscode/vs/workbench/contrib/terminal/browser/environmentVariableInfo.js +119 -0
  422. package/dist/vscode/vs/workbench/contrib/terminal/browser/media/scrollbar.css.js +4 -0
  423. package/dist/vscode/vs/workbench/contrib/terminal/browser/media/terminal.css.js +4 -0
  424. package/dist/vscode/vs/workbench/contrib/terminal/browser/media/widgets.css.js +4 -0
  425. package/dist/vscode/vs/workbench/contrib/terminal/browser/media/xterm.css.js +4 -0
  426. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminal.contribution.js +238 -0
  427. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminal.js +7 -0
  428. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalActions.js +1930 -0
  429. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalCommands.js +22 -0
  430. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalConfigHelper.js +213 -0
  431. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalContextMenu.js +17 -0
  432. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalEditor.js +186 -0
  433. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalEditorInput.js +199 -0
  434. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalEditorService.js +239 -0
  435. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalExtensions.js +22 -0
  436. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalGroup.js +482 -0
  437. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalGroupService.js +372 -0
  438. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalIcon.js +103 -0
  439. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalIcons.js +37 -0
  440. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalInstance.js +2123 -0
  441. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalInstanceService.js +79 -0
  442. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalMainContribution.js +82 -0
  443. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalMenus.js +850 -0
  444. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.js +142 -0
  445. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalProcessManager.js +618 -0
  446. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalProfileQuickpick.js +278 -0
  447. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalProfileResolverService.js +417 -0
  448. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalProfileService.js +213 -0
  449. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalQuickAccess.js +144 -0
  450. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalRunRecentQuickPick.js +267 -0
  451. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalService.js +1063 -0
  452. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalStatusList.js +108 -0
  453. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalTabbedView.js +417 -0
  454. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalTabsList.js +680 -0
  455. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalTooltip.js +72 -0
  456. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalUri.js +39 -0
  457. package/dist/vscode/vs/workbench/contrib/terminal/browser/terminalView.js +535 -0
  458. package/dist/vscode/vs/workbench/contrib/terminal/browser/widgets/widgetManager.js +36 -0
  459. package/dist/vscode/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +469 -0
  460. package/dist/vscode/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +97 -0
  461. package/dist/vscode/vs/workbench/contrib/terminal/browser/xterm/lineDataEventAddon.js +56 -0
  462. package/dist/vscode/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.js +416 -0
  463. package/dist/vscode/vs/workbench/contrib/terminal/browser/xterm/suggestAddon.js +390 -0
  464. package/dist/vscode/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +587 -0
  465. package/dist/vscode/vs/workbench/contrib/terminal/common/environmentVariable.js +3 -0
  466. package/dist/vscode/vs/workbench/contrib/terminal/common/environmentVariableService.js +94 -0
  467. package/dist/vscode/vs/workbench/contrib/terminal/common/history.js +356 -0
  468. package/dist/vscode/vs/workbench/contrib/terminal/common/terminal.js +266 -0
  469. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalColorRegistry.js +169 -16
  470. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalConfiguration.js +965 -0
  471. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalContextKey.js +157 -0
  472. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalEnvironment.js +272 -0
  473. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalExtensionPoints.js +27 -0
  474. package/dist/vscode/vs/workbench/contrib/terminal/common/terminalStrings.js +86 -0
  475. package/dist/vscode/vs/workbench/contrib/terminal/electron-sandbox/terminalProfileResolverService.js +46 -0
  476. package/dist/vscode/vs/workbench/contrib/terminalContrib/links/browser/links.js +3 -0
  477. package/dist/vscode/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkProviderService.js +26 -0
  478. package/dist/vscode/vs/workbench/contrib/terminalContrib/quickFix/browser/quickFix.js +3 -0
  479. package/dist/vscode/vs/workbench/contrib/terminalContrib/quickFix/browser/terminalQuickFixService.js +143 -0
  480. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/media/typeHierarchy.css.js +4 -0
  481. package/dist/vscode/vs/workbench/contrib/typeHierarchy/browser/typeHierarchyPeek.js +1 -1
  482. package/dist/vscode/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput.js +85 -0
  483. package/dist/vscode/vs/workbench/contrib/webviewPanel/browser/webviewWorkbenchService.js +52 -0
  484. package/dist/vscode/vs/workbench/services/actions/common/menusExtensionPoint.js +14 -6
  485. package/dist/vscode/vs/workbench/services/assignment/common/assignmentService.js +3 -0
  486. package/dist/vscode/vs/workbench/services/configuration/browser/configurationService.js +13 -13
  487. package/dist/vscode/vs/workbench/services/configuration/common/configuration.js +2 -1
  488. package/dist/vscode/vs/workbench/services/configuration/common/configurationEditing.js +2 -2
  489. package/dist/vscode/vs/workbench/services/configuration/common/jsonEditingService.js +2 -2
  490. package/dist/vscode/vs/workbench/services/editor/browser/editorDropService.js +3 -0
  491. package/dist/vscode/vs/workbench/services/editor/browser/editorResolverService.js +619 -0
  492. package/dist/vscode/vs/workbench/services/editor/browser/editorService.js +720 -0
  493. package/dist/vscode/vs/workbench/services/editor/common/editorGroupFinder.js +116 -0
  494. package/dist/vscode/vs/workbench/services/editor/common/editorGroupsService.js +6 -1
  495. package/dist/vscode/vs/workbench/services/editor/common/editorResolverService.js +34 -1
  496. package/dist/vscode/vs/workbench/services/extensionManagement/common/extensionManagement.js +3 -2
  497. package/dist/vscode/vs/workbench/services/extensionRecommendations/common/extensionRecommendations.js +4 -0
  498. package/dist/vscode/vs/workbench/services/extensionRecommendations/common/workspaceExtensionsConfig.js +2 -0
  499. package/dist/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.js +3 -0
  500. package/dist/vscode/vs/workbench/services/extensions/common/extensions.js +14 -2
  501. package/dist/vscode/vs/workbench/services/extensions/common/extensionsApiProposals.js +10 -1
  502. package/dist/vscode/vs/workbench/services/filesConfiguration/common/filesConfigurationService.js +70 -3
  503. package/dist/vscode/vs/workbench/services/history/browser/historyService.js +1451 -0
  504. package/dist/vscode/vs/workbench/services/hover/browser/hoverService.js +2 -2
  505. package/dist/vscode/vs/workbench/services/hover/browser/hoverWidget.js +2 -1
  506. package/dist/vscode/vs/workbench/services/hover/browser/media/hover.css.js +4 -0
  507. package/dist/vscode/vs/workbench/services/keybinding/common/keybindingEditing.js +275 -0
  508. package/dist/vscode/vs/workbench/services/languageDetection/common/languageDetectionWorkerService.js +2 -1
  509. package/dist/vscode/vs/workbench/services/localization/common/locale.js +3 -0
  510. package/dist/vscode/vs/workbench/services/log/common/logConstants.js +2 -0
  511. package/dist/vscode/vs/workbench/services/outline/browser/outline.js +3 -0
  512. package/dist/vscode/vs/workbench/services/output/common/output.js +4 -1
  513. package/dist/vscode/vs/workbench/services/preferences/common/preferences.js +22 -1
  514. package/dist/vscode/vs/workbench/services/preferences/common/preferencesModels.js +6 -0
  515. package/dist/vscode/vs/workbench/services/preferences/common/preferencesValidation.js +37 -1
  516. package/dist/vscode/vs/workbench/services/progress/browser/progressIndicator.js +72 -1
  517. package/dist/vscode/vs/workbench/services/quickinput/browser/quickInputService.js +67 -0
  518. package/dist/vscode/vs/workbench/services/remote/common/remoteAgentService.js +69 -0
  519. package/dist/vscode/vs/workbench/services/remote/common/remoteExplorerService.js +66 -27
  520. package/dist/vscode/vs/workbench/services/search/common/fileSearchManager.js +265 -0
  521. package/dist/vscode/vs/workbench/services/search/common/queryBuilder.js +6 -0
  522. package/dist/vscode/vs/workbench/services/search/common/replace.js +203 -0
  523. package/dist/vscode/vs/workbench/services/search/common/search.js +117 -1
  524. package/dist/vscode/vs/workbench/services/search/common/searchExtTypes.js +6 -0
  525. package/dist/vscode/vs/workbench/services/search/common/textSearchManager.js +309 -0
  526. package/dist/vscode/vs/workbench/services/semanticSimilarity/common/semanticSimilarityService.js +54 -1
  527. package/dist/vscode/vs/workbench/services/statusbar/browser/statusbar.js +15 -0
  528. package/dist/vscode/vs/workbench/services/suggest/browser/media/suggest.css.js +4 -0
  529. package/dist/vscode/vs/workbench/services/suggest/browser/simpleCompletionItem.js +10 -0
  530. package/dist/vscode/vs/workbench/services/suggest/browser/simpleCompletionModel.js +98 -0
  531. package/dist/vscode/vs/workbench/services/suggest/browser/simpleSuggestWidget.js +399 -0
  532. package/dist/vscode/vs/workbench/services/suggest/browser/simpleSuggestWidgetRenderer.js +83 -0
  533. package/dist/vscode/vs/workbench/services/terminal/common/embedderTerminalService.js +3 -0
  534. package/dist/vscode/vs/workbench/services/textMate/browser/worker/textMate.worker.js +90 -0
  535. package/dist/vscode/vs/workbench/services/textMate/browser/worker/textMateWorkerModel.js +133 -0
  536. package/dist/vscode/vs/workbench/services/textfile/browser/textFileService.js +1 -1
  537. package/dist/vscode/vs/workbench/services/textfile/common/textFileEditorModel.js +10 -3
  538. package/dist/vscode/vs/workbench/services/themes/browser/fileIconThemeData.js +3 -3
  539. package/dist/vscode/vs/workbench/services/themes/browser/productIconThemeData.js +3 -3
  540. package/dist/vscode/vs/workbench/services/themes/common/colorThemeData.js +3 -3
  541. package/dist/vscode/vs/workbench/services/untitled/common/untitledTextEditorInput.js +6 -4
  542. package/dist/vscode/vs/workbench/services/untitled/common/untitledTextEditorModel.js +3 -0
  543. package/dist/vscode/vs/workbench/services/untitled/common/untitledTextEditorService.js +114 -3
  544. package/dist/vscode/vs/workbench/services/userActivity/common/userActivityRegistry.js +15 -0
  545. package/dist/vscode/vs/workbench/services/userActivity/common/userActivityService.js +37 -0
  546. package/dist/vscode/vs/workbench/services/userDataProfile/common/userDataProfile.js +1 -1
  547. package/dist/vscode/vs/workbench/services/userDataSync/common/userDataSync.js +7 -0
  548. package/dist/vscode/vs/workbench/services/workingCopy/common/workingCopyEditorService.js +40 -0
  549. package/dist/vscode/vs/workbench/services/workingCopy/common/workingCopyService.js +12 -0
  550. package/dist/vscode/vs/workbench/services/workspaces/common/canonicalUriService.js +19 -0
  551. package/dist/vscode-default-extensions/css/syntaxes/css.tmLanguage.json.extensionResource.js +1 -1
  552. package/dist/vscode-default-extensions/json/package.json.js +1 -1
  553. package/dist/vscode-default-extensions/json/syntaxes/JSONC.tmLanguage.json.extensionResource.js +1 -1
  554. package/dist/vscode-default-extensions/json/syntaxes/JSONL.tmLanguage.json.extensionResource.js +2 -0
  555. package/dist/vscode-default-extensions/latex/syntaxes/Bibtex.tmLanguage.json.extensionResource.js +1 -1
  556. package/dist/vscode-default-extensions/latex/syntaxes/LaTeX.tmLanguage.json.extensionResource.js +1 -1
  557. package/dist/vscode-default-extensions/latex/syntaxes/TeX.tmLanguage.json.extensionResource.js +1 -1
  558. package/dist/vscode-default-extensions/latex/syntaxes/cpp-grammar-bailout.tmLanguage.json.extensionResource.js +1 -1
  559. package/dist/vscode-default-extensions/latex/syntaxes/markdown-latex-combined.tmLanguage.json.extensionResource.js +1 -1
  560. package/dist/vscode-default-extensions/lua/syntaxes/lua.tmLanguage.json.extensionResource.js +1 -1
  561. package/dist/vscode-default-extensions/perl/package.json.js +1 -1
  562. package/dist/vscode-default-extensions/php/snippets/php.code-snippets.extensionResource.js +1 -1
  563. package/dist/vscode-default-extensions/sql/language-configuration.json.extensionResource.js +1 -1
  564. package/dist/vscode-default-extensions/theme-abyss/themes/abyss-color-theme.json.extensionResource.js +1 -1
  565. package/dist/vscode-default-extensions/theme-defaults/package.json.js +1 -1
  566. package/dist/vscode-default-extensions/theme-defaults/themes/dark_modern.json.extensionResource.js +2 -0
  567. package/dist/vscode-default-extensions/theme-defaults/themes/dark_vs.json.extensionResource.js +1 -1
  568. package/dist/vscode-default-extensions/theme-defaults/themes/hc_black.json.extensionResource.js +1 -1
  569. package/dist/vscode-default-extensions/theme-defaults/themes/hc_light.json.extensionResource.js +1 -1
  570. package/dist/vscode-default-extensions/theme-defaults/themes/light_modern.json.extensionResource.js +2 -0
  571. package/dist/vscode-default-extensions/theme-defaults/themes/light_vs.json.extensionResource.js +1 -1
  572. package/dist/vscode-default-extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json.extensionResource.js +1 -1
  573. package/dist/vscode-default-extensions/theme-monokai/themes/monokai-color-theme.json.extensionResource.js +1 -1
  574. package/dist/vscode-default-extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json.extensionResource.js +1 -1
  575. package/dist/vscode-default-extensions/theme-quietlight/themes/quietlight-color-theme.json.extensionResource.js +1 -1
  576. package/dist/vscode-default-extensions/theme-red/themes/Red-color-theme.json.extensionResource.js +1 -1
  577. package/dist/vscode-default-extensions/theme-seti/icons/vs-seti-icon-theme.json.extensionResource.js +1 -1
  578. package/dist/vscode-default-extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json.extensionResource.js +1 -1
  579. package/dist/vscode-default-extensions/theme-solarized-light/themes/solarized-light-color-theme.json.extensionResource.js +1 -1
  580. package/dist/vscode-default-extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json.extensionResource.js +1 -1
  581. package/dist/vscode-default-extensions/vb/language-configuration.json.extensionResource.js +1 -1
  582. package/dist/vscode-services/env.js +4 -2
  583. package/dist/vscode-services/extHost.js +41 -50
  584. package/dist/vscode-services/missing-services.js +504 -12
  585. package/dist/vscode-services/window.js +80 -67
  586. package/dist/vscode-services/workspace.js +19 -4
  587. package/dist/workbenchThemeService.d.ts +1 -1
  588. package/dist/workers/outputLinkComputer.worker.d.ts +2 -0
  589. package/dist/workers/outputLinkComputer.worker.js +3 -0
  590. package/dist/workers/textMate.worker.d.ts +2 -0
  591. package/dist/workers/textMate.worker.js +3 -0
  592. package/dist/workspace.d.ts +1 -1
  593. package/monaco-editor-treemending.patch +1305 -1184
  594. package/package.json +98 -32
  595. package/dist/activity.d.ts +0 -2902
  596. package/dist/assets/activityaction.css +0 -224
  597. package/dist/assets/activitybarpart.css +0 -65
  598. package/dist/assets/basepanelpart.css +0 -221
  599. package/dist/assets/breakpointWidget.css +0 -31
  600. package/dist/assets/callHierarchy.css +0 -62
  601. package/dist/assets/callStackEditorContribution.css +0 -12
  602. package/dist/assets/compositepart.css +0 -17
  603. package/dist/assets/debug.contribution.css +0 -138
  604. package/dist/assets/debugHover.css +0 -80
  605. package/dist/assets/debugToolBar.css +0 -49
  606. package/dist/assets/debugViewlet.css +0 -337
  607. package/dist/assets/editorquickaccess.css +0 -8
  608. package/dist/assets/exceptionWidget.css +0 -52
  609. package/dist/assets/explorerviewlet.css +0 -129
  610. package/dist/assets/hover.css +0 -127
  611. package/dist/assets/interactiveSession.css +0 -340
  612. package/dist/assets/menubar.css +0 -111
  613. package/dist/assets/menubarControl.css +0 -61
  614. package/dist/assets/notificationsActions.css +0 -14
  615. package/dist/assets/notificationsCenter.css +0 -69
  616. package/dist/assets/notificationsList.css +0 -152
  617. package/dist/assets/notificationsToasts.css +0 -63
  618. package/dist/assets/panelpart.css +0 -75
  619. package/dist/assets/paneview.css +0 -148
  620. package/dist/assets/paneviewlet.css +0 -79
  621. package/dist/assets/part.css +0 -109
  622. package/dist/assets/repl.css +0 -145
  623. package/dist/assets/sidebarpart.css +0 -61
  624. package/dist/assets/tunnelView.css +0 -107
  625. package/dist/assets/typeHierarchy.css +0 -62
  626. package/dist/assets/views.css +0 -297
  627. package/dist/collections.d.ts +0 -7
  628. package/dist/colorRegistry.d.ts +0 -710
  629. package/dist/override/vs/workbench/browser/parts/editor/textEditor.js +0 -2
  630. package/dist/override/vs/workbench/contrib/files/browser/views/openEditorsView.js +0 -2
  631. package/dist/service-override/modelEditor.d.ts +0 -14
  632. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionFollowups.js +0 -30
  633. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionInputPart.js +0 -196
  634. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionListRenderer.js +0 -622
  635. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionOptions.js +0 -77
  636. package/dist/vscode/vs/workbench/contrib/interactiveSession/browser/interactiveSessionWidget.js +0 -311
  637. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionContextKeys.js +0 -48
  638. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionService.js +0 -8
  639. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionViewModel.js +0 -207
  640. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionWidgetHistoryService.js +0 -3
  641. package/dist/vscode/vs/workbench/contrib/interactiveSession/common/interactiveSessionWordCounter.js +0 -25
  642. package/dist/vscode/vs/workbench/contrib/notebook/common/notebookEditorInput.js +0 -249
  643. package/dist/vscode-default-extensions/theme-defaults/themes/dark_plus_experimental.json.extensionResource.js +0 -2
  644. package/dist/vscode-default-extensions/theme-defaults/themes/light_plus_experimental.json.extensionResource.js +0 -2
@@ -0,0 +1,1152 @@
1
+ import { __decorate, __param } from '../../../../../../node_modules/tslib/tslib.es6.js';
2
+ import './media/editorstatus.css.js';
3
+ import { localize } from 'monaco-editor/esm/vs/nls.js';
4
+ import { runAtThisOrScheduleAtNextAnimationFrame } from 'monaco-editor/esm/vs/base/browser/dom.js';
5
+ import { format, splitLines, compare } from 'monaco-editor/esm/vs/base/common/strings.js';
6
+ import { isEqual, extname, basename } from 'monaco-editor/esm/vs/base/common/resources.js';
7
+ import { withNullAsUndefined, withUndefinedAsNull, areFunctions, assertIsDefined } from 'monaco-editor/esm/vs/base/common/types.js';
8
+ import { URI } from 'monaco-editor/esm/vs/base/common/uri.js';
9
+ import { Action } from 'monaco-editor/esm/vs/base/common/actions.js';
10
+ import { Language } from 'monaco-editor/esm/vs/base/common/platform.js';
11
+ import { UntitledTextEditorInput } from '../../../services/untitled/common/untitledTextEditorInput.js';
12
+ import { EditorResourceAccessor, SideBySideEditor } from '../../../common/editor.js';
13
+ import { Disposable, MutableDisposable, DisposableStore } from 'monaco-editor/esm/vs/base/common/lifecycle.js';
14
+ import { TrimTrailingWhitespaceAction } from 'monaco-editor/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js';
15
+ import { IndentUsingSpaces, IndentUsingTabs, ChangeTabDisplaySize, DetectIndentation, IndentationToSpacesAction, IndentationToTabsAction } from 'monaco-editor/esm/vs/editor/contrib/indentation/browser/indentation.js';
16
+ import { BaseBinaryResourceEditor } from './binaryEditor.js';
17
+ import { BinaryResourceDiffEditor } from './binaryDiffEditor.js';
18
+ import { IEditorService } from '../../../services/editor/common/editorService.js';
19
+ import { FILES_ASSOCIATIONS_CONFIG, IFileService } from 'monaco-editor/esm/vs/platform/files/common/files.js';
20
+ import { IInstantiationService } from 'monaco-editor/esm/vs/platform/instantiation/common/instantiation.js';
21
+ import { ILanguageService } from 'monaco-editor/esm/vs/editor/common/languages/language.js';
22
+ import { Range } from 'monaco-editor/esm/vs/editor/common/core/range.js';
23
+ import { Selection } from 'monaco-editor/esm/vs/editor/common/core/selection.js';
24
+ import { TabFocus } from 'monaco-editor/esm/vs/editor/browser/config/tabFocus.js';
25
+ import { CommandsRegistry, ICommandService } from 'monaco-editor/esm/vs/platform/commands/common/commands.js';
26
+ import { IExtensionGalleryService } from '../../../../platform/extensionManagement/common/extensionManagement.js';
27
+ import { ITextFileService } from '../../../services/textfile/common/textfiles.js';
28
+ import { SUPPORTED_ENCODINGS } from '../../../services/textfile/common/encoding.js';
29
+ import { ITextResourceConfigurationService } from 'monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js';
30
+ import { IConfigurationService } from 'monaco-editor/esm/vs/platform/configuration/common/configuration.js';
31
+ import { deepClone } from 'monaco-editor/esm/vs/base/common/objects.js';
32
+ import { getCodeEditor } from 'monaco-editor/esm/vs/editor/browser/editorBrowser.js';
33
+ import { Schemas } from 'monaco-editor/esm/vs/base/common/network.js';
34
+ import { IPreferencesService } from '../../../services/preferences/common/preferences.js';
35
+ import { IQuickInputService } from 'monaco-editor/esm/vs/platform/quickinput/common/quickInput.js';
36
+ import { getIconClassesForLanguageId } from 'monaco-editor/esm/vs/editor/common/services/getIconClasses.js';
37
+ import { timeout, Promises } from 'monaco-editor/esm/vs/base/common/async.js';
38
+ import { Event } from 'monaco-editor/esm/vs/base/common/event.js';
39
+ import { IStatusbarService } from '../../../services/statusbar/browser/statusbar.js';
40
+ import { IMarkerData, MarkerSeverity, IMarkerService } from 'monaco-editor/esm/vs/platform/markers/common/markers.js';
41
+ import { STATUS_BAR_PROMINENT_ITEM_BACKGROUND, STATUS_BAR_PROMINENT_ITEM_FOREGROUND } from '../../../common/theme.js';
42
+ import { themeColorFromId } from 'monaco-editor/esm/vs/platform/theme/common/themeService.js';
43
+ import { ITelemetryService } from 'monaco-editor/esm/vs/platform/telemetry/common/telemetry.js';
44
+ import { SideBySideEditorInput } from '../../../common/editor/sideBySideEditorInput.js';
45
+ import { ILanguageDetectionService, AutomaticLanguageDetectionLikelyWrongId } from '../../../services/languageDetection/common/languageDetectionWorkerService.js';
46
+ import { ContextKeyExpr, IContextKeyService } from 'monaco-editor/esm/vs/platform/contextkey/common/contextkey.js';
47
+ import { Action2 } from 'monaco-editor/esm/vs/platform/actions/common/actions.js';
48
+ import { KeyChord } from 'monaco-editor/esm/vs/base/common/keyCodes.js';
49
+ import { TabFocusMode } from './tabFocus.js';
50
+ class SideBySideEditorEncodingSupport {
51
+ constructor(primary, secondary) {
52
+ this.primary = primary;
53
+ this.secondary = secondary;
54
+ }
55
+ getEncoding() {
56
+ return this.primary.getEncoding();
57
+ }
58
+ async setEncoding(encoding, mode) {
59
+ await Promises.settled(( [this.primary, this.secondary].map(editor => editor.setEncoding(encoding, mode))));
60
+ }
61
+ }
62
+ class SideBySideEditorLanguageSupport {
63
+ constructor(primary, secondary) {
64
+ this.primary = primary;
65
+ this.secondary = secondary;
66
+ }
67
+ setLanguageId(languageId, source) {
68
+ [this.primary, this.secondary].forEach(editor => editor.setLanguageId(languageId, source));
69
+ }
70
+ }
71
+ function toEditorWithEncodingSupport(input) {
72
+ if (input instanceof UntitledTextEditorInput) {
73
+ return input;
74
+ }
75
+ if (input instanceof SideBySideEditorInput) {
76
+ const primaryEncodingSupport = toEditorWithEncodingSupport(input.primary);
77
+ const secondaryEncodingSupport = toEditorWithEncodingSupport(input.secondary);
78
+ if (primaryEncodingSupport && secondaryEncodingSupport) {
79
+ return ( new SideBySideEditorEncodingSupport(primaryEncodingSupport, secondaryEncodingSupport));
80
+ }
81
+ return primaryEncodingSupport;
82
+ }
83
+ const encodingSupport = input;
84
+ if (areFunctions(encodingSupport.setEncoding, encodingSupport.getEncoding)) {
85
+ return encodingSupport;
86
+ }
87
+ return null;
88
+ }
89
+ function toEditorWithLanguageSupport(input) {
90
+ if (input instanceof UntitledTextEditorInput) {
91
+ return input;
92
+ }
93
+ if (input instanceof SideBySideEditorInput) {
94
+ const primaryLanguageSupport = toEditorWithLanguageSupport(input.primary);
95
+ const secondaryLanguageSupport = toEditorWithLanguageSupport(input.secondary);
96
+ if (primaryLanguageSupport && secondaryLanguageSupport) {
97
+ return ( new SideBySideEditorLanguageSupport(primaryLanguageSupport, secondaryLanguageSupport));
98
+ }
99
+ return primaryLanguageSupport;
100
+ }
101
+ const languageSupport = input;
102
+ if (typeof languageSupport.setLanguageId === 'function') {
103
+ return languageSupport;
104
+ }
105
+ return null;
106
+ }
107
+ class StateChange {
108
+ constructor() {
109
+ this.indentation = false;
110
+ this.selectionStatus = false;
111
+ this.languageId = false;
112
+ this.languageStatus = false;
113
+ this.encoding = false;
114
+ this.EOL = false;
115
+ this.tabFocusMode = false;
116
+ this.columnSelectionMode = false;
117
+ this.metadata = false;
118
+ }
119
+ combine(other) {
120
+ this.indentation = this.indentation || other.indentation;
121
+ this.selectionStatus = this.selectionStatus || other.selectionStatus;
122
+ this.languageId = this.languageId || other.languageId;
123
+ this.languageStatus = this.languageStatus || other.languageStatus;
124
+ this.encoding = this.encoding || other.encoding;
125
+ this.EOL = this.EOL || other.EOL;
126
+ this.tabFocusMode = this.tabFocusMode || other.tabFocusMode;
127
+ this.columnSelectionMode = this.columnSelectionMode || other.columnSelectionMode;
128
+ this.metadata = this.metadata || other.metadata;
129
+ }
130
+ hasChanges() {
131
+ return this.indentation
132
+ || this.selectionStatus
133
+ || this.languageId
134
+ || this.languageStatus
135
+ || this.encoding
136
+ || this.EOL
137
+ || this.tabFocusMode
138
+ || this.columnSelectionMode
139
+ || this.metadata;
140
+ }
141
+ }
142
+ class State {
143
+ get selectionStatus() { return this._selectionStatus; }
144
+ get languageId() { return this._languageId; }
145
+ get encoding() { return this._encoding; }
146
+ get EOL() { return this._EOL; }
147
+ get indentation() { return this._indentation; }
148
+ get tabFocusMode() { return this._tabFocusMode; }
149
+ get columnSelectionMode() { return this._columnSelectionMode; }
150
+ get metadata() { return this._metadata; }
151
+ update(update) {
152
+ const change = ( new StateChange());
153
+ switch (update.type) {
154
+ case 'selectionStatus':
155
+ if (this._selectionStatus !== update.selectionStatus) {
156
+ this._selectionStatus = update.selectionStatus;
157
+ change.selectionStatus = true;
158
+ }
159
+ break;
160
+ case 'indentation':
161
+ if (this._indentation !== update.indentation) {
162
+ this._indentation = update.indentation;
163
+ change.indentation = true;
164
+ }
165
+ break;
166
+ case 'languageId':
167
+ if (this._languageId !== update.languageId) {
168
+ this._languageId = update.languageId;
169
+ change.languageId = true;
170
+ }
171
+ break;
172
+ case 'encoding':
173
+ if (this._encoding !== update.encoding) {
174
+ this._encoding = update.encoding;
175
+ change.encoding = true;
176
+ }
177
+ break;
178
+ case 'EOL':
179
+ if (this._EOL !== update.EOL) {
180
+ this._EOL = update.EOL;
181
+ change.EOL = true;
182
+ }
183
+ break;
184
+ case 'tabFocusMode':
185
+ if (this._tabFocusMode !== update.tabFocusMode) {
186
+ this._tabFocusMode = update.tabFocusMode;
187
+ change.tabFocusMode = true;
188
+ }
189
+ break;
190
+ case 'columnSelectionMode':
191
+ if (this._columnSelectionMode !== update.columnSelectionMode) {
192
+ this._columnSelectionMode = update.columnSelectionMode;
193
+ change.columnSelectionMode = true;
194
+ }
195
+ break;
196
+ case 'metadata':
197
+ if (this._metadata !== update.metadata) {
198
+ this._metadata = update.metadata;
199
+ change.metadata = true;
200
+ }
201
+ break;
202
+ }
203
+ return change;
204
+ }
205
+ }
206
+ const nlsSingleSelectionRange = ( localize('singleSelectionRange', "Ln {0}, Col {1} ({2} selected)"));
207
+ const nlsSingleSelection = ( localize('singleSelection', "Ln {0}, Col {1}"));
208
+ const nlsMultiSelectionRange = ( localize('multiSelectionRange', "{0} selections ({1} characters selected)"));
209
+ const nlsMultiSelection = ( localize('multiSelection', "{0} selections"));
210
+ const nlsEOLLF = ( localize('endOfLineLineFeed', "LF"));
211
+ const nlsEOLCRLF = ( localize('endOfLineCarriageReturnLineFeed', "CRLF"));
212
+ let EditorStatus = class EditorStatus extends Disposable {
213
+ constructor(editorService, quickInputService, languageService, textFileService, statusbarService, instantiationService, contextKeyService) {
214
+ super();
215
+ this.editorService = editorService;
216
+ this.quickInputService = quickInputService;
217
+ this.languageService = languageService;
218
+ this.textFileService = textFileService;
219
+ this.statusbarService = statusbarService;
220
+ this.instantiationService = instantiationService;
221
+ this.contextKeyService = contextKeyService;
222
+ this.tabFocusModeElement = this._register(( new MutableDisposable()));
223
+ this.columnSelectionModeElement = this._register(( new MutableDisposable()));
224
+ this.indentationElement = this._register(( new MutableDisposable()));
225
+ this.selectionElement = this._register(( new MutableDisposable()));
226
+ this.encodingElement = this._register(( new MutableDisposable()));
227
+ this.eolElement = this._register(( new MutableDisposable()));
228
+ this.languageElement = this._register(( new MutableDisposable()));
229
+ this.metadataElement = this._register(( new MutableDisposable()));
230
+ this.currentProblemStatus = this._register(this.instantiationService.createInstance(ShowCurrentMarkerInStatusbarContribution));
231
+ this.state = ( new State());
232
+ this.activeEditorListeners = this._register(( new DisposableStore()));
233
+ this.delayedRender = this._register(( new MutableDisposable()));
234
+ this.toRender = null;
235
+ this.tabFocusMode = instantiationService.createInstance(TabFocusMode);
236
+ this.registerCommands();
237
+ this.registerListeners();
238
+ }
239
+ registerListeners() {
240
+ this._register(this.editorService.onDidActiveEditorChange(() => this.updateStatusBar()));
241
+ this._register(this.textFileService.untitled.onDidChangeEncoding(model => this.onResourceEncodingChange(model.resource)));
242
+ this._register(this.textFileService.files.onDidChangeEncoding(model => this.onResourceEncodingChange((model.resource))));
243
+ this._register(Event.runAndSubscribe(TabFocus.onDidChangeTabFocus, () => this.onTabFocusModeChange()));
244
+ this._register(this.tabFocusMode.onDidChange(() => this.onTabFocusModeChange()));
245
+ }
246
+ registerCommands() {
247
+ CommandsRegistry.registerCommand({ id: 'changeEditorIndentation', handler: () => this.showIndentationPicker() });
248
+ }
249
+ async showIndentationPicker() {
250
+ const activeTextEditorControl = getCodeEditor(this.editorService.activeTextEditorControl);
251
+ if (!activeTextEditorControl) {
252
+ return this.quickInputService.pick([{ label: ( localize('noEditor', "No text editor active at this time")) }]);
253
+ }
254
+ if (this.editorService.activeEditor?.hasCapability(2 )) {
255
+ return this.quickInputService.pick([{ label: ( localize('noWritableCodeEditor', "The active code editor is read-only.")) }]);
256
+ }
257
+ const picks = ( [
258
+ assertIsDefined(activeTextEditorControl.getAction(IndentUsingSpaces.ID)),
259
+ assertIsDefined(activeTextEditorControl.getAction(IndentUsingTabs.ID)),
260
+ assertIsDefined(activeTextEditorControl.getAction(ChangeTabDisplaySize.ID)),
261
+ assertIsDefined(activeTextEditorControl.getAction(DetectIndentation.ID)),
262
+ assertIsDefined(activeTextEditorControl.getAction(IndentationToSpacesAction.ID)),
263
+ assertIsDefined(activeTextEditorControl.getAction(IndentationToTabsAction.ID)),
264
+ assertIsDefined(activeTextEditorControl.getAction(TrimTrailingWhitespaceAction.ID))
265
+ ].map((a) => {
266
+ return {
267
+ id: a.id,
268
+ label: a.label,
269
+ detail: (Language.isDefaultVariant() || a.label === a.alias) ? undefined : a.alias,
270
+ run: () => {
271
+ activeTextEditorControl.focus();
272
+ a.run();
273
+ }
274
+ };
275
+ }));
276
+ picks.splice(3, 0, { type: 'separator', label: ( localize('indentConvert', "convert file")) });
277
+ picks.unshift({ type: 'separator', label: ( localize('indentView', "change view")) });
278
+ const action = await this.quickInputService.pick(picks, { placeHolder: ( localize('pickAction', "Select Action")), matchOnDetail: true });
279
+ return action?.run();
280
+ }
281
+ updateTabFocusModeElement(visible) {
282
+ if (visible) {
283
+ if (!this.tabFocusModeElement.value) {
284
+ const text = ( localize('tabFocusModeEnabled', "Tab Moves Focus"));
285
+ this.tabFocusModeElement.value = this.statusbarService.addEntry({
286
+ name: ( localize('status.editor.tabFocusMode', "Accessibility Mode")),
287
+ text,
288
+ ariaLabel: text,
289
+ tooltip: ( localize('disableTabMode', "Disable Accessibility Mode")),
290
+ command: 'editor.action.toggleTabFocusMode',
291
+ backgroundColor: themeColorFromId(STATUS_BAR_PROMINENT_ITEM_BACKGROUND),
292
+ color: themeColorFromId(STATUS_BAR_PROMINENT_ITEM_FOREGROUND)
293
+ }, 'status.editor.tabFocusMode', 1 , 100.7);
294
+ }
295
+ }
296
+ else {
297
+ this.tabFocusModeElement.clear();
298
+ }
299
+ }
300
+ updateColumnSelectionModeElement(visible) {
301
+ if (visible) {
302
+ if (!this.columnSelectionModeElement.value) {
303
+ const text = ( localize('columnSelectionModeEnabled', "Column Selection"));
304
+ this.columnSelectionModeElement.value = this.statusbarService.addEntry({
305
+ name: ( localize('status.editor.columnSelectionMode', "Column Selection Mode")),
306
+ text,
307
+ ariaLabel: text,
308
+ tooltip: ( localize('disableColumnSelectionMode', "Disable Column Selection Mode")),
309
+ command: 'editor.action.toggleColumnSelection',
310
+ backgroundColor: themeColorFromId(STATUS_BAR_PROMINENT_ITEM_BACKGROUND),
311
+ color: themeColorFromId(STATUS_BAR_PROMINENT_ITEM_FOREGROUND)
312
+ }, 'status.editor.columnSelectionMode', 1 , 100.8);
313
+ }
314
+ }
315
+ else {
316
+ this.columnSelectionModeElement.clear();
317
+ }
318
+ }
319
+ updateSelectionElement(text) {
320
+ if (!text) {
321
+ this.selectionElement.clear();
322
+ return;
323
+ }
324
+ const props = {
325
+ name: ( localize('status.editor.selection', "Editor Selection")),
326
+ text,
327
+ ariaLabel: text,
328
+ tooltip: ( localize('gotoLine', "Go to Line/Column")),
329
+ command: 'workbench.action.gotoLine'
330
+ };
331
+ this.updateElement(this.selectionElement, props, 'status.editor.selection', 1 , 100.5);
332
+ }
333
+ updateIndentationElement(text) {
334
+ if (!text) {
335
+ this.indentationElement.clear();
336
+ return;
337
+ }
338
+ const props = {
339
+ name: ( localize('status.editor.indentation', "Editor Indentation")),
340
+ text,
341
+ ariaLabel: text,
342
+ tooltip: ( localize('selectIndentation', "Select Indentation")),
343
+ command: 'changeEditorIndentation'
344
+ };
345
+ this.updateElement(this.indentationElement, props, 'status.editor.indentation', 1 , 100.4);
346
+ }
347
+ updateEncodingElement(text) {
348
+ if (!text) {
349
+ this.encodingElement.clear();
350
+ return;
351
+ }
352
+ const props = {
353
+ name: ( localize('status.editor.encoding', "Editor Encoding")),
354
+ text,
355
+ ariaLabel: text,
356
+ tooltip: ( localize('selectEncoding', "Select Encoding")),
357
+ command: 'workbench.action.editor.changeEncoding'
358
+ };
359
+ this.updateElement(this.encodingElement, props, 'status.editor.encoding', 1 , 100.3);
360
+ }
361
+ updateEOLElement(text) {
362
+ if (!text) {
363
+ this.eolElement.clear();
364
+ return;
365
+ }
366
+ const props = {
367
+ name: ( localize('status.editor.eol', "Editor End of Line")),
368
+ text,
369
+ ariaLabel: text,
370
+ tooltip: ( localize('selectEOL', "Select End of Line Sequence")),
371
+ command: 'workbench.action.editor.changeEOL'
372
+ };
373
+ this.updateElement(this.eolElement, props, 'status.editor.eol', 1 , 100.2);
374
+ }
375
+ updateLanguageIdElement(text) {
376
+ if (!text) {
377
+ this.languageElement.clear();
378
+ return;
379
+ }
380
+ const props = {
381
+ name: ( localize('status.editor.mode', "Editor Language")),
382
+ text,
383
+ ariaLabel: text,
384
+ tooltip: ( localize('selectLanguageMode', "Select Language Mode")),
385
+ command: 'workbench.action.editor.changeLanguageMode'
386
+ };
387
+ this.updateElement(this.languageElement, props, 'status.editor.mode', 1 , 100.1);
388
+ }
389
+ updateMetadataElement(text) {
390
+ if (!text) {
391
+ this.metadataElement.clear();
392
+ return;
393
+ }
394
+ const props = {
395
+ name: ( localize('status.editor.info', "File Information")),
396
+ text,
397
+ ariaLabel: text,
398
+ tooltip: ( localize('fileInfo', "File Information"))
399
+ };
400
+ this.updateElement(this.metadataElement, props, 'status.editor.info', 1 , 100);
401
+ }
402
+ updateElement(element, props, id, alignment, priority) {
403
+ if (!element.value) {
404
+ element.value = this.statusbarService.addEntry(props, id, alignment, priority);
405
+ }
406
+ else {
407
+ element.value.update(props);
408
+ }
409
+ }
410
+ updateState(update) {
411
+ const changed = this.state.update(update);
412
+ if (!changed.hasChanges()) {
413
+ return;
414
+ }
415
+ if (!this.toRender) {
416
+ this.toRender = changed;
417
+ this.delayedRender.value = runAtThisOrScheduleAtNextAnimationFrame(() => {
418
+ this.delayedRender.clear();
419
+ const toRender = this.toRender;
420
+ this.toRender = null;
421
+ if (toRender) {
422
+ this.doRenderNow(toRender);
423
+ }
424
+ });
425
+ }
426
+ else {
427
+ this.toRender.combine(changed);
428
+ }
429
+ }
430
+ doRenderNow(changed) {
431
+ this.updateTabFocusModeElement(!!this.state.tabFocusMode);
432
+ this.updateColumnSelectionModeElement(!!this.state.columnSelectionMode);
433
+ this.updateIndentationElement(this.state.indentation);
434
+ this.updateSelectionElement(this.state.selectionStatus);
435
+ this.updateEncodingElement(this.state.encoding);
436
+ this.updateEOLElement(this.state.EOL ? this.state.EOL === '\r\n' ? nlsEOLCRLF : nlsEOLLF : undefined);
437
+ this.updateLanguageIdElement(this.state.languageId);
438
+ this.updateMetadataElement(this.state.metadata);
439
+ }
440
+ getSelectionLabel(info) {
441
+ if (!info || !info.selections) {
442
+ return undefined;
443
+ }
444
+ if (info.selections.length === 1) {
445
+ if (info.charactersSelected) {
446
+ return format(nlsSingleSelectionRange, info.selections[0].positionLineNumber, info.selections[0].positionColumn, info.charactersSelected);
447
+ }
448
+ return format(nlsSingleSelection, info.selections[0].positionLineNumber, info.selections[0].positionColumn);
449
+ }
450
+ if (info.charactersSelected) {
451
+ return format(nlsMultiSelectionRange, info.selections.length, info.charactersSelected);
452
+ }
453
+ if (info.selections.length > 0) {
454
+ return format(nlsMultiSelection, info.selections.length);
455
+ }
456
+ return undefined;
457
+ }
458
+ updateStatusBar() {
459
+ const activeInput = this.editorService.activeEditor;
460
+ const activeEditorPane = this.editorService.activeEditorPane;
461
+ const activeCodeEditor = activeEditorPane ? withNullAsUndefined(getCodeEditor(activeEditorPane.getControl())) : undefined;
462
+ this.onColumnSelectionModeChange(activeCodeEditor);
463
+ this.onSelectionChange(activeCodeEditor);
464
+ this.onLanguageChange(activeCodeEditor, activeInput);
465
+ this.onEOLChange(activeCodeEditor);
466
+ this.onEncodingChange(activeEditorPane, activeCodeEditor);
467
+ this.onIndentationChange(activeCodeEditor);
468
+ this.onMetadataChange(activeEditorPane);
469
+ this.currentProblemStatus.update(activeCodeEditor);
470
+ this.activeEditorListeners.clear();
471
+ if (activeEditorPane) {
472
+ this.activeEditorListeners.add(activeEditorPane.onDidChangeControl(() => {
473
+ this.updateStatusBar();
474
+ }));
475
+ }
476
+ if (activeCodeEditor) {
477
+ this.activeEditorListeners.add(activeCodeEditor.onDidChangeConfiguration((event) => {
478
+ if (event.hasChanged(20 )) {
479
+ this.onColumnSelectionModeChange(activeCodeEditor);
480
+ }
481
+ }));
482
+ this.activeEditorListeners.add(Event.defer(activeCodeEditor.onDidChangeCursorPosition)(() => {
483
+ this.onSelectionChange(activeCodeEditor);
484
+ this.currentProblemStatus.update(activeCodeEditor);
485
+ }));
486
+ this.activeEditorListeners.add(activeCodeEditor.onDidChangeModelLanguage(() => {
487
+ this.onLanguageChange(activeCodeEditor, activeInput);
488
+ }));
489
+ this.activeEditorListeners.add(Event.accumulate(activeCodeEditor.onDidChangeModelContent)(e => {
490
+ this.onEOLChange(activeCodeEditor);
491
+ this.currentProblemStatus.update(activeCodeEditor);
492
+ const selections = activeCodeEditor.getSelections();
493
+ if (selections) {
494
+ for (const inner of e) {
495
+ for (const change of inner.changes) {
496
+ if (( selections.some(selection => Range.areIntersecting(selection, change.range)))) {
497
+ this.onSelectionChange(activeCodeEditor);
498
+ break;
499
+ }
500
+ }
501
+ }
502
+ }
503
+ }));
504
+ this.activeEditorListeners.add(activeCodeEditor.onDidChangeModelOptions(() => {
505
+ this.onIndentationChange(activeCodeEditor);
506
+ }));
507
+ }
508
+ else if (activeEditorPane instanceof BaseBinaryResourceEditor || activeEditorPane instanceof BinaryResourceDiffEditor) {
509
+ const binaryEditors = [];
510
+ if (activeEditorPane instanceof BinaryResourceDiffEditor) {
511
+ const primary = activeEditorPane.getPrimaryEditorPane();
512
+ if (primary instanceof BaseBinaryResourceEditor) {
513
+ binaryEditors.push(primary);
514
+ }
515
+ const secondary = activeEditorPane.getSecondaryEditorPane();
516
+ if (secondary instanceof BaseBinaryResourceEditor) {
517
+ binaryEditors.push(secondary);
518
+ }
519
+ }
520
+ else {
521
+ binaryEditors.push(activeEditorPane);
522
+ }
523
+ for (const editor of binaryEditors) {
524
+ this.activeEditorListeners.add(editor.onDidChangeMetadata(() => {
525
+ this.onMetadataChange(activeEditorPane);
526
+ }));
527
+ this.activeEditorListeners.add(editor.onDidOpenInPlace(() => {
528
+ this.updateStatusBar();
529
+ }));
530
+ }
531
+ }
532
+ }
533
+ onLanguageChange(editorWidget, editorInput) {
534
+ const info = { type: 'languageId', languageId: undefined };
535
+ if (editorWidget && editorInput && toEditorWithLanguageSupport(editorInput)) {
536
+ const textModel = editorWidget.getModel();
537
+ if (textModel) {
538
+ const languageId = textModel.getLanguageId();
539
+ info.languageId = withNullAsUndefined(this.languageService.getLanguageName(languageId));
540
+ }
541
+ }
542
+ this.updateState(info);
543
+ }
544
+ onIndentationChange(editorWidget) {
545
+ const update = { type: 'indentation', indentation: undefined };
546
+ if (editorWidget) {
547
+ const model = editorWidget.getModel();
548
+ if (model) {
549
+ const modelOpts = model.getOptions();
550
+ update.indentation = (modelOpts.insertSpaces
551
+ ? modelOpts.tabSize === modelOpts.indentSize
552
+ ? ( localize('spacesSize', "Spaces: {0}", modelOpts.indentSize))
553
+ : ( localize(
554
+ 'spacesAndTabsSize',
555
+ "Spaces: {0} (Tab Size: {1})",
556
+ modelOpts.indentSize,
557
+ modelOpts.tabSize
558
+ ))
559
+ : ( localize(
560
+ { key: 'tabSize', comment: ['Tab corresponds to the tab key'] },
561
+ "Tab Size: {0}",
562
+ modelOpts.tabSize
563
+ )));
564
+ }
565
+ }
566
+ this.updateState(update);
567
+ }
568
+ onMetadataChange(editor) {
569
+ const update = { type: 'metadata', metadata: undefined };
570
+ if (editor instanceof BaseBinaryResourceEditor || editor instanceof BinaryResourceDiffEditor) {
571
+ update.metadata = editor.getMetadata();
572
+ }
573
+ this.updateState(update);
574
+ }
575
+ onColumnSelectionModeChange(editorWidget) {
576
+ const info = { type: 'columnSelectionMode', columnSelectionMode: false };
577
+ if (editorWidget?.getOption(20 )) {
578
+ info.columnSelectionMode = true;
579
+ }
580
+ this.updateState(info);
581
+ }
582
+ onSelectionChange(editorWidget) {
583
+ const info = Object.create(null);
584
+ if (editorWidget) {
585
+ info.selections = editorWidget.getSelections() || [];
586
+ info.charactersSelected = 0;
587
+ const textModel = editorWidget.getModel();
588
+ if (textModel) {
589
+ for (const selection of info.selections) {
590
+ if (typeof info.charactersSelected !== 'number') {
591
+ info.charactersSelected = 0;
592
+ }
593
+ info.charactersSelected += textModel.getCharacterCountInRange(selection);
594
+ }
595
+ }
596
+ if (info.selections.length === 1) {
597
+ const editorPosition = editorWidget.getPosition();
598
+ const selectionClone = ( new Selection(
599
+ info.selections[0].selectionStartLineNumber,
600
+ info.selections[0].selectionStartColumn,
601
+ info.selections[0].positionLineNumber,
602
+ editorPosition ? editorWidget.getStatusbarColumn(editorPosition) : info.selections[0].positionColumn
603
+ ));
604
+ info.selections[0] = selectionClone;
605
+ }
606
+ }
607
+ this.updateState({ type: 'selectionStatus', selectionStatus: this.getSelectionLabel(info) });
608
+ }
609
+ onEOLChange(editorWidget) {
610
+ const info = { type: 'EOL', EOL: undefined };
611
+ if (editorWidget && !editorWidget.getOption(88 )) {
612
+ const codeEditorModel = editorWidget.getModel();
613
+ if (codeEditorModel) {
614
+ info.EOL = codeEditorModel.getEOL();
615
+ }
616
+ }
617
+ this.updateState(info);
618
+ }
619
+ onEncodingChange(editor, editorWidget) {
620
+ if (editor && !this.isActiveEditor(editor)) {
621
+ return;
622
+ }
623
+ const info = { type: 'encoding', encoding: undefined };
624
+ if (editor && editorWidget?.hasModel()) {
625
+ const encodingSupport = editor.input ? toEditorWithEncodingSupport(editor.input) : null;
626
+ if (encodingSupport) {
627
+ const rawEncoding = encodingSupport.getEncoding();
628
+ const encodingInfo = typeof rawEncoding === 'string' ? SUPPORTED_ENCODINGS[rawEncoding] : undefined;
629
+ if (encodingInfo) {
630
+ info.encoding = encodingInfo.labelShort;
631
+ }
632
+ else {
633
+ info.encoding = rawEncoding;
634
+ }
635
+ }
636
+ }
637
+ this.updateState(info);
638
+ }
639
+ onResourceEncodingChange(resource) {
640
+ const activeEditorPane = this.editorService.activeEditorPane;
641
+ if (activeEditorPane) {
642
+ const activeResource = EditorResourceAccessor.getCanonicalUri(activeEditorPane.input, { supportSideBySide: SideBySideEditor.PRIMARY });
643
+ if (activeResource && isEqual(activeResource, resource)) {
644
+ const activeCodeEditor = withNullAsUndefined(getCodeEditor(activeEditorPane.getControl()));
645
+ return this.onEncodingChange(activeEditorPane, activeCodeEditor);
646
+ }
647
+ }
648
+ }
649
+ onTabFocusModeChange() {
650
+ const info = { type: 'tabFocusMode', tabFocusMode: TabFocus.getTabFocusMode(this.contextKeyService.getContextKeyValue('focusedView') === 'terminal' ? "terminalFocus" : "editorFocus" ) };
651
+ this.updateState(info);
652
+ }
653
+ isActiveEditor(control) {
654
+ const activeEditorPane = this.editorService.activeEditorPane;
655
+ return !!activeEditorPane && activeEditorPane === control;
656
+ }
657
+ };
658
+ EditorStatus = ( __decorate([
659
+ ( __param(0, IEditorService)),
660
+ ( __param(1, IQuickInputService)),
661
+ ( __param(2, ILanguageService)),
662
+ ( __param(3, ITextFileService)),
663
+ ( __param(4, IStatusbarService)),
664
+ ( __param(5, IInstantiationService)),
665
+ ( __param(6, IContextKeyService))
666
+ ], EditorStatus));
667
+ let ShowCurrentMarkerInStatusbarContribution = class ShowCurrentMarkerInStatusbarContribution extends Disposable {
668
+ constructor(statusbarService, markerService, configurationService) {
669
+ super();
670
+ this.statusbarService = statusbarService;
671
+ this.markerService = markerService;
672
+ this.configurationService = configurationService;
673
+ this.editor = undefined;
674
+ this.markers = [];
675
+ this.currentMarker = null;
676
+ this.statusBarEntryAccessor = this._register(( new MutableDisposable()));
677
+ this._register(markerService.onMarkerChanged(changedResources => this.onMarkerChanged(changedResources)));
678
+ this._register(Event.filter(configurationService.onDidChangeConfiguration, e => e.affectsConfiguration('problems.showCurrentInStatus'))(() => this.updateStatus()));
679
+ }
680
+ update(editor) {
681
+ this.editor = editor;
682
+ this.updateMarkers();
683
+ this.updateStatus();
684
+ }
685
+ updateStatus() {
686
+ const previousMarker = this.currentMarker;
687
+ this.currentMarker = this.getMarker();
688
+ if (this.hasToUpdateStatus(previousMarker, this.currentMarker)) {
689
+ if (this.currentMarker) {
690
+ const line = splitLines(this.currentMarker.message)[0];
691
+ const text = `${this.getType(this.currentMarker)} ${line}`;
692
+ if (!this.statusBarEntryAccessor.value) {
693
+ this.statusBarEntryAccessor.value = this.statusbarService.addEntry({ name: ( localize('currentProblem', "Current Problem")), text: '', ariaLabel: '' }, 'statusbar.currentProblem', 0 );
694
+ }
695
+ this.statusBarEntryAccessor.value.update({ name: ( localize('currentProblem', "Current Problem")), text, ariaLabel: text });
696
+ }
697
+ else {
698
+ this.statusBarEntryAccessor.clear();
699
+ }
700
+ }
701
+ }
702
+ hasToUpdateStatus(previousMarker, currentMarker) {
703
+ if (!currentMarker) {
704
+ return true;
705
+ }
706
+ if (!previousMarker) {
707
+ return true;
708
+ }
709
+ return IMarkerData.makeKey(previousMarker) !== IMarkerData.makeKey(currentMarker);
710
+ }
711
+ getType(marker) {
712
+ switch (marker.severity) {
713
+ case MarkerSeverity.Error: return '$(error)';
714
+ case MarkerSeverity.Warning: return '$(warning)';
715
+ case MarkerSeverity.Info: return '$(info)';
716
+ }
717
+ return '';
718
+ }
719
+ getMarker() {
720
+ if (!this.configurationService.getValue('problems.showCurrentInStatus')) {
721
+ return null;
722
+ }
723
+ if (!this.editor) {
724
+ return null;
725
+ }
726
+ const model = this.editor.getModel();
727
+ if (!model) {
728
+ return null;
729
+ }
730
+ const position = this.editor.getPosition();
731
+ if (!position) {
732
+ return null;
733
+ }
734
+ return this.markers.find(marker => Range.containsPosition(marker, position)) || null;
735
+ }
736
+ onMarkerChanged(changedResources) {
737
+ if (!this.editor) {
738
+ return;
739
+ }
740
+ const model = this.editor.getModel();
741
+ if (!model) {
742
+ return;
743
+ }
744
+ if (model && !( changedResources.some(r => isEqual(model.uri, r)))) {
745
+ return;
746
+ }
747
+ this.updateMarkers();
748
+ }
749
+ updateMarkers() {
750
+ if (!this.editor) {
751
+ return;
752
+ }
753
+ const model = this.editor.getModel();
754
+ if (!model) {
755
+ return;
756
+ }
757
+ if (model) {
758
+ this.markers = this.markerService.read({
759
+ resource: model.uri,
760
+ severities: MarkerSeverity.Error | MarkerSeverity.Warning | MarkerSeverity.Info
761
+ });
762
+ this.markers.sort(compareMarker);
763
+ }
764
+ else {
765
+ this.markers = [];
766
+ }
767
+ this.updateStatus();
768
+ }
769
+ };
770
+ ShowCurrentMarkerInStatusbarContribution = ( __decorate([
771
+ ( __param(0, IStatusbarService)),
772
+ ( __param(1, IMarkerService)),
773
+ ( __param(2, IConfigurationService))
774
+ ], ShowCurrentMarkerInStatusbarContribution));
775
+ function compareMarker(a, b) {
776
+ let res = compare(( a.resource.toString()), ( b.resource.toString()));
777
+ if (res === 0) {
778
+ res = MarkerSeverity.compare(a.severity, b.severity);
779
+ }
780
+ if (res === 0) {
781
+ res = Range.compareRangesUsingStarts(a, b);
782
+ }
783
+ return res;
784
+ }
785
+ let ShowLanguageExtensionsAction = class ShowLanguageExtensionsAction extends Action {
786
+ constructor(fileExtension, commandService, galleryService) {
787
+ super(ShowLanguageExtensionsAction.ID, ( localize(
788
+ 'showLanguageExtensions',
789
+ "Search Marketplace Extensions for '{0}'...",
790
+ fileExtension
791
+ )));
792
+ this.fileExtension = fileExtension;
793
+ this.commandService = commandService;
794
+ this.enabled = galleryService.isEnabled();
795
+ }
796
+ async run() {
797
+ await this.commandService.executeCommand('workbench.extensions.action.showExtensionsForLanguage', this.fileExtension);
798
+ }
799
+ };
800
+ ShowLanguageExtensionsAction.ID = 'workbench.action.showLanguageExtensions';
801
+ ShowLanguageExtensionsAction = ( __decorate([
802
+ ( __param(1, ICommandService)),
803
+ ( __param(2, IExtensionGalleryService))
804
+ ], ShowLanguageExtensionsAction));
805
+ class ChangeLanguageAction extends Action2 {
806
+ constructor() {
807
+ super({
808
+ id: ChangeLanguageAction.ID,
809
+ title: { value: ( localize('changeMode', "Change Language Mode")), original: 'Change Language Mode' },
810
+ f1: true,
811
+ keybinding: {
812
+ weight: 200 ,
813
+ primary: KeyChord(2048 | 41 , 43 )
814
+ },
815
+ precondition: ContextKeyExpr.not('notebookEditorFocused')
816
+ });
817
+ }
818
+ async run(accessor) {
819
+ const quickInputService = accessor.get(IQuickInputService);
820
+ const editorService = accessor.get(IEditorService);
821
+ const languageService = accessor.get(ILanguageService);
822
+ const languageDetectionService = accessor.get(ILanguageDetectionService);
823
+ const textFileService = accessor.get(ITextFileService);
824
+ const preferencesService = accessor.get(IPreferencesService);
825
+ const instantiationService = accessor.get(IInstantiationService);
826
+ const configurationService = accessor.get(IConfigurationService);
827
+ const telemetryService = accessor.get(ITelemetryService);
828
+ const activeTextEditorControl = getCodeEditor(editorService.activeTextEditorControl);
829
+ if (!activeTextEditorControl) {
830
+ await quickInputService.pick([{ label: ( localize('noEditor', "No text editor active at this time")) }]);
831
+ return;
832
+ }
833
+ const textModel = activeTextEditorControl.getModel();
834
+ const resource = EditorResourceAccessor.getOriginalUri(editorService.activeEditor, { supportSideBySide: SideBySideEditor.PRIMARY });
835
+ let currentLanguageName;
836
+ let currentLanguageId;
837
+ if (textModel) {
838
+ currentLanguageId = textModel.getLanguageId();
839
+ currentLanguageName = withNullAsUndefined(languageService.getLanguageName(currentLanguageId));
840
+ }
841
+ let hasLanguageSupport = !!resource;
842
+ if (resource?.scheme === Schemas.untitled && !textFileService.untitled.get(resource)?.hasAssociatedFilePath) {
843
+ hasLanguageSupport = false;
844
+ }
845
+ const languages = languageService.getSortedRegisteredLanguageNames();
846
+ const picks = ( languages
847
+ .map(({ languageName, languageId }) => {
848
+ const extensions = languageService.getExtensions(languageId).join(' ');
849
+ let description;
850
+ if (currentLanguageName === languageName) {
851
+ description = ( localize('languageDescription', "({0}) - Configured Language", languageId));
852
+ }
853
+ else {
854
+ description = ( localize('languageDescriptionConfigured', "({0})", languageId));
855
+ }
856
+ return {
857
+ label: languageName,
858
+ meta: extensions,
859
+ iconClasses: getIconClassesForLanguageId(languageId),
860
+ description
861
+ };
862
+ }));
863
+ picks.unshift({ type: 'separator', label: ( localize('languagesPicks', "languages (identifier)")) });
864
+ let configureLanguageAssociations;
865
+ let configureLanguageSettings;
866
+ let galleryAction;
867
+ if (hasLanguageSupport && resource) {
868
+ const ext = extname(resource) || basename(resource);
869
+ galleryAction = instantiationService.createInstance(ShowLanguageExtensionsAction, ext);
870
+ if (galleryAction.enabled) {
871
+ picks.unshift(galleryAction);
872
+ }
873
+ configureLanguageSettings = { label: ( localize(
874
+ 'configureModeSettings',
875
+ "Configure '{0}' language based settings...",
876
+ currentLanguageName
877
+ )) };
878
+ picks.unshift(configureLanguageSettings);
879
+ configureLanguageAssociations = { label: ( localize('configureAssociationsExt', "Configure File Association for '{0}'...", ext)) };
880
+ picks.unshift(configureLanguageAssociations);
881
+ }
882
+ const autoDetectLanguage = {
883
+ label: ( localize('autoDetect', "Auto Detect"))
884
+ };
885
+ picks.unshift(autoDetectLanguage);
886
+ const pick = await quickInputService.pick(picks, { placeHolder: ( localize('pickLanguage', "Select Language Mode")), matchOnDescription: true });
887
+ if (!pick) {
888
+ return;
889
+ }
890
+ if (pick === galleryAction) {
891
+ galleryAction.run();
892
+ return;
893
+ }
894
+ if (pick === configureLanguageAssociations) {
895
+ if (resource) {
896
+ this.configureFileAssociation(resource, languageService, quickInputService, configurationService);
897
+ }
898
+ return;
899
+ }
900
+ if (pick === configureLanguageSettings) {
901
+ preferencesService.openUserSettings({ jsonEditor: true, revealSetting: { key: `[${withUndefinedAsNull(currentLanguageId)}]`, edit: true } });
902
+ return;
903
+ }
904
+ const activeEditor = editorService.activeEditor;
905
+ if (activeEditor) {
906
+ const languageSupport = toEditorWithLanguageSupport(activeEditor);
907
+ if (languageSupport) {
908
+ let languageSelection;
909
+ let detectedLanguage;
910
+ if (pick === autoDetectLanguage) {
911
+ if (textModel) {
912
+ const resource = EditorResourceAccessor.getOriginalUri(activeEditor, { supportSideBySide: SideBySideEditor.PRIMARY });
913
+ if (resource) {
914
+ let languageId = withNullAsUndefined(languageService.guessLanguageIdByFilepathOrFirstLine(resource, textModel.getLineContent(1)));
915
+ if (!languageId || languageId === 'unknown') {
916
+ detectedLanguage = await languageDetectionService.detectLanguage(resource);
917
+ languageId = detectedLanguage;
918
+ }
919
+ if (languageId) {
920
+ languageSelection = languageService.createById(languageId);
921
+ }
922
+ }
923
+ }
924
+ }
925
+ else {
926
+ const languageId = languageService.getLanguageIdByLanguageName(pick.label);
927
+ languageSelection = languageService.createById(languageId);
928
+ if (resource) {
929
+ languageDetectionService.detectLanguage(resource).then(detectedLanguageId => {
930
+ const chosenLanguageId = languageService.getLanguageIdByLanguageName(pick.label) || 'unknown';
931
+ if (detectedLanguageId === currentLanguageId && currentLanguageId !== chosenLanguageId) {
932
+ const modelPreference = configurationService.getValue('workbench.editor.preferHistoryBasedLanguageDetection') ? 'history' : 'classic';
933
+ telemetryService.publicLog2(AutomaticLanguageDetectionLikelyWrongId, {
934
+ currentLanguageId: currentLanguageName ?? 'unknown',
935
+ nextLanguageId: pick.label,
936
+ lineCount: textModel?.getLineCount() ?? -1,
937
+ modelPreference,
938
+ });
939
+ }
940
+ });
941
+ }
942
+ }
943
+ if (typeof languageSelection !== 'undefined') {
944
+ languageSupport.setLanguageId(languageSelection.languageId, ChangeLanguageAction.ID);
945
+ if (resource?.scheme === Schemas.untitled) {
946
+ const modelPreference = configurationService.getValue('workbench.editor.preferHistoryBasedLanguageDetection') ? 'history' : 'classic';
947
+ telemetryService.publicLog2('setUntitledDocumentLanguage', {
948
+ to: languageSelection.languageId,
949
+ from: currentLanguageId ?? 'none',
950
+ modelPreference,
951
+ });
952
+ }
953
+ }
954
+ }
955
+ activeTextEditorControl.focus();
956
+ }
957
+ }
958
+ configureFileAssociation(resource, languageService, quickInputService, configurationService) {
959
+ const extension = extname(resource);
960
+ const base = basename(resource);
961
+ const currentAssociation = languageService.guessLanguageIdByFilepathOrFirstLine(URI.file(base));
962
+ const languages = languageService.getSortedRegisteredLanguageNames();
963
+ const picks = ( languages.map(({ languageName, languageId }) => {
964
+ return {
965
+ id: languageId,
966
+ label: languageName,
967
+ iconClasses: getIconClassesForLanguageId(languageId),
968
+ description: (languageId === currentAssociation) ? ( localize('currentAssociation', "Current Association")) : undefined
969
+ };
970
+ }));
971
+ setTimeout(async () => {
972
+ const language = await quickInputService.pick(picks, { placeHolder: ( localize(
973
+ 'pickLanguageToConfigure',
974
+ "Select Language Mode to Associate with '{0}'",
975
+ extension || base
976
+ )) });
977
+ if (language) {
978
+ const fileAssociationsConfig = configurationService.inspect(FILES_ASSOCIATIONS_CONFIG);
979
+ let associationKey;
980
+ if (extension && base[0] !== '.') {
981
+ associationKey = `*${extension}`;
982
+ }
983
+ else {
984
+ associationKey = base;
985
+ }
986
+ let target = 2 ;
987
+ if (fileAssociationsConfig.workspaceValue && !!fileAssociationsConfig.workspaceValue[associationKey]) {
988
+ target = 5 ;
989
+ }
990
+ const currentAssociations = deepClone(((target === 5) ) ? fileAssociationsConfig.workspaceValue : fileAssociationsConfig.userValue) || Object.create(null);
991
+ currentAssociations[associationKey] = language.id;
992
+ configurationService.updateValue(FILES_ASSOCIATIONS_CONFIG, currentAssociations, target);
993
+ }
994
+ }, 50 );
995
+ }
996
+ }
997
+ ChangeLanguageAction.ID = 'workbench.action.editor.changeLanguageMode';
998
+ class ChangeEOLAction extends Action2 {
999
+ constructor() {
1000
+ super({
1001
+ id: 'workbench.action.editor.changeEOL',
1002
+ title: { value: ( localize('changeEndOfLine', "Change End of Line Sequence")), original: 'Change End of Line Sequence' },
1003
+ f1: true
1004
+ });
1005
+ }
1006
+ async run(accessor) {
1007
+ const editorService = accessor.get(IEditorService);
1008
+ const quickInputService = accessor.get(IQuickInputService);
1009
+ const activeTextEditorControl = getCodeEditor(editorService.activeTextEditorControl);
1010
+ if (!activeTextEditorControl) {
1011
+ await quickInputService.pick([{ label: ( localize('noEditor', "No text editor active at this time")) }]);
1012
+ return;
1013
+ }
1014
+ if (editorService.activeEditor?.hasCapability(2 )) {
1015
+ await quickInputService.pick([{ label: ( localize('noWritableCodeEditor', "The active code editor is read-only.")) }]);
1016
+ return;
1017
+ }
1018
+ let textModel = activeTextEditorControl.getModel();
1019
+ const EOLOptions = [
1020
+ { label: nlsEOLLF, eol: 0 },
1021
+ { label: nlsEOLCRLF, eol: 1 },
1022
+ ];
1023
+ const selectedIndex = (textModel?.getEOL() === '\n') ? 0 : 1;
1024
+ const eol = await quickInputService.pick(EOLOptions, { placeHolder: ( localize('pickEndOfLine', "Select End of Line Sequence")), activeItem: EOLOptions[selectedIndex] });
1025
+ if (eol) {
1026
+ const activeCodeEditor = getCodeEditor(editorService.activeTextEditorControl);
1027
+ if (activeCodeEditor?.hasModel() && !editorService.activeEditor?.hasCapability(2 )) {
1028
+ textModel = activeCodeEditor.getModel();
1029
+ textModel.pushStackElement();
1030
+ textModel.pushEOL(eol.eol);
1031
+ textModel.pushStackElement();
1032
+ }
1033
+ }
1034
+ activeTextEditorControl.focus();
1035
+ }
1036
+ }
1037
+ class ChangeEncodingAction extends Action2 {
1038
+ constructor() {
1039
+ super({
1040
+ id: 'workbench.action.editor.changeEncoding',
1041
+ title: { value: ( localize('changeEncoding', "Change File Encoding")), original: 'Change File Encoding' },
1042
+ f1: true
1043
+ });
1044
+ }
1045
+ async run(accessor) {
1046
+ const editorService = accessor.get(IEditorService);
1047
+ const quickInputService = accessor.get(IQuickInputService);
1048
+ const fileService = accessor.get(IFileService);
1049
+ const textFileService = accessor.get(ITextFileService);
1050
+ const textResourceConfigurationService = accessor.get(ITextResourceConfigurationService);
1051
+ const activeTextEditorControl = getCodeEditor(editorService.activeTextEditorControl);
1052
+ if (!activeTextEditorControl) {
1053
+ await quickInputService.pick([{ label: ( localize('noEditor', "No text editor active at this time")) }]);
1054
+ return;
1055
+ }
1056
+ const activeEditorPane = editorService.activeEditorPane;
1057
+ if (!activeEditorPane) {
1058
+ await quickInputService.pick([{ label: ( localize('noEditor', "No text editor active at this time")) }]);
1059
+ return;
1060
+ }
1061
+ const encodingSupport = toEditorWithEncodingSupport(activeEditorPane.input);
1062
+ if (!encodingSupport) {
1063
+ await quickInputService.pick([{ label: ( localize('noFileEditor', "No file active at this time")) }]);
1064
+ return;
1065
+ }
1066
+ const saveWithEncodingPick = { label: ( localize('saveWithEncoding', "Save with Encoding")) };
1067
+ const reopenWithEncodingPick = { label: ( localize('reopenWithEncoding', "Reopen with Encoding")) };
1068
+ if (!Language.isDefaultVariant()) {
1069
+ const saveWithEncodingAlias = 'Save with Encoding';
1070
+ if (saveWithEncodingAlias !== saveWithEncodingPick.label) {
1071
+ saveWithEncodingPick.detail = saveWithEncodingAlias;
1072
+ }
1073
+ const reopenWithEncodingAlias = 'Reopen with Encoding';
1074
+ if (reopenWithEncodingAlias !== reopenWithEncodingPick.label) {
1075
+ reopenWithEncodingPick.detail = reopenWithEncodingAlias;
1076
+ }
1077
+ }
1078
+ let action;
1079
+ if (encodingSupport instanceof UntitledTextEditorInput) {
1080
+ action = saveWithEncodingPick;
1081
+ }
1082
+ else if (activeEditorPane.input.hasCapability(2 )) {
1083
+ action = reopenWithEncodingPick;
1084
+ }
1085
+ else {
1086
+ action = await quickInputService.pick([reopenWithEncodingPick, saveWithEncodingPick], { placeHolder: ( localize('pickAction', "Select Action")), matchOnDetail: true });
1087
+ }
1088
+ if (!action) {
1089
+ return;
1090
+ }
1091
+ await timeout(50);
1092
+ const resource = EditorResourceAccessor.getOriginalUri(activeEditorPane.input, { supportSideBySide: SideBySideEditor.PRIMARY });
1093
+ if (!resource || (!fileService.hasProvider(resource) && resource.scheme !== Schemas.untitled)) {
1094
+ return;
1095
+ }
1096
+ let guessedEncoding = undefined;
1097
+ if (fileService.hasProvider(resource)) {
1098
+ const content = await textFileService.readStream(resource, { autoGuessEncoding: true });
1099
+ guessedEncoding = content.encoding;
1100
+ }
1101
+ const isReopenWithEncoding = (action === reopenWithEncodingPick);
1102
+ const configuredEncoding = textResourceConfigurationService.getValue(withNullAsUndefined(resource), 'files.encoding');
1103
+ let directMatchIndex;
1104
+ let aliasMatchIndex;
1105
+ const picks = ( ( Object.keys(SUPPORTED_ENCODINGS))
1106
+ .sort((k1, k2) => {
1107
+ if (k1 === configuredEncoding) {
1108
+ return -1;
1109
+ }
1110
+ else if (k2 === configuredEncoding) {
1111
+ return 1;
1112
+ }
1113
+ return SUPPORTED_ENCODINGS[k1].order - SUPPORTED_ENCODINGS[k2].order;
1114
+ })
1115
+ .filter(k => {
1116
+ if (k === guessedEncoding && guessedEncoding !== configuredEncoding) {
1117
+ return false;
1118
+ }
1119
+ return !isReopenWithEncoding || !SUPPORTED_ENCODINGS[k].encodeOnly;
1120
+ })
1121
+ .map((key, index) => {
1122
+ if (key === encodingSupport.getEncoding()) {
1123
+ directMatchIndex = index;
1124
+ }
1125
+ else if (SUPPORTED_ENCODINGS[key].alias === encodingSupport.getEncoding()) {
1126
+ aliasMatchIndex = index;
1127
+ }
1128
+ return { id: key, label: SUPPORTED_ENCODINGS[key].labelLong, description: key };
1129
+ }));
1130
+ const items = picks.slice();
1131
+ if (guessedEncoding && configuredEncoding !== guessedEncoding && SUPPORTED_ENCODINGS[guessedEncoding]) {
1132
+ picks.unshift({ type: 'separator' });
1133
+ picks.unshift({ id: guessedEncoding, label: SUPPORTED_ENCODINGS[guessedEncoding].labelLong, description: ( localize('guessedEncoding', "Guessed from content")) });
1134
+ }
1135
+ const encoding = await quickInputService.pick(picks, {
1136
+ placeHolder: isReopenWithEncoding ? ( localize('pickEncodingForReopen', "Select File Encoding to Reopen File")) : ( localize('pickEncodingForSave', "Select File Encoding to Save with")),
1137
+ activeItem: items[typeof directMatchIndex === 'number' ? directMatchIndex : typeof aliasMatchIndex === 'number' ? aliasMatchIndex : -1]
1138
+ });
1139
+ if (!encoding) {
1140
+ return;
1141
+ }
1142
+ if (!editorService.activeEditorPane) {
1143
+ return;
1144
+ }
1145
+ const activeEncodingSupport = toEditorWithEncodingSupport(editorService.activeEditorPane.input);
1146
+ if (typeof encoding.id !== 'undefined' && activeEncodingSupport) {
1147
+ await activeEncodingSupport.setEncoding(encoding.id, isReopenWithEncoding ? 1 : 0 );
1148
+ }
1149
+ activeTextEditorControl.focus();
1150
+ }
1151
+ }
1152
+ export { ChangeEOLAction, ChangeEncodingAction, ChangeLanguageAction, EditorStatus, ShowLanguageExtensionsAction };