@codingame/monaco-vscode-api 2.2.2 → 3.0.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 (578) hide show
  1. package/README.md +16 -3
  2. package/api.js +8 -10
  3. package/contributions.js +3 -3
  4. package/debugProtocol.d.ts +143 -51
  5. package/extensions.d.ts +9 -5
  6. package/external/@xterm/xterm/typings/xterm.d.ts +2 -2
  7. package/missing-services.js +48 -13
  8. package/monaco.js +30 -14
  9. package/package.json +8 -8
  10. package/service-override/tools/editor.js +31 -8
  11. package/service-override/tools/views.d.ts +5 -6
  12. package/service-override/tools/views.js +10 -11
  13. package/services.d.ts +2 -2
  14. package/services.js +4 -3
  15. package/vscode/src/vs/base/browser/browser.js +2 -66
  16. package/vscode/src/vs/base/browser/dom.js +10 -22
  17. package/vscode/src/vs/base/browser/markdownRenderer.js +13 -5
  18. package/vscode/src/vs/base/browser/mouseEvent.js +9 -3
  19. package/vscode/src/vs/base/browser/pixelRatio.js +72 -0
  20. package/vscode/src/vs/base/browser/ui/actionbar/actionViewItems.js +4 -3
  21. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.css.js +1 -1
  22. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.d.ts +1 -1
  23. package/vscode/src/vs/base/browser/ui/actionbar/actionbar.js +3 -4
  24. package/vscode/src/vs/base/browser/ui/button/button.js +16 -4
  25. package/vscode/src/vs/base/browser/ui/codicons/codicon/codicon.css.js +1 -1
  26. package/vscode/src/vs/base/browser/ui/contextview/contextview.js +1 -3
  27. package/vscode/src/vs/base/browser/ui/dropdown/dropdown.js +8 -1
  28. package/vscode/src/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +6 -2
  29. package/vscode/src/vs/base/browser/ui/hover/hoverDelegate.js +22 -0
  30. package/vscode/src/vs/base/browser/ui/iconLabel/iconHoverDelegate.d.ts +1 -0
  31. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabel.js +3 -2
  32. package/vscode/src/vs/base/browser/ui/iconLabel/iconLabelHover.js +2 -1
  33. package/vscode/src/vs/base/browser/ui/list/listView.js +27 -42
  34. package/vscode/src/vs/base/browser/ui/menu/menu.js +0 -4
  35. package/vscode/src/vs/base/browser/ui/selectBox/selectBoxCustom.js +7 -4
  36. package/vscode/src/vs/base/browser/ui/table/tableWidget.js +8 -4
  37. package/vscode/src/vs/base/browser/ui/toggle/toggle.js +4 -2
  38. package/vscode/src/vs/base/browser/ui/toolbar/toolbar.js +7 -2
  39. package/vscode/src/vs/base/browser/ui/tree/asyncDataTree.js +1 -0
  40. package/vscode/src/vs/base/common/actions.js +1 -1
  41. package/vscode/src/vs/base/common/assert.js +1 -1
  42. package/vscode/src/vs/base/common/async.js +11 -7
  43. package/vscode/src/vs/base/common/codicons.d.ts +4 -0
  44. package/vscode/src/vs/base/common/codicons.js +4 -0
  45. package/vscode/src/vs/base/common/date.js +55 -1
  46. package/vscode/src/vs/base/common/event.js +5 -3
  47. package/vscode/src/vs/base/common/filters.js +1 -1
  48. package/vscode/src/vs/base/common/hotReload.js +5 -4
  49. package/vscode/src/vs/base/common/network.js +3 -0
  50. package/vscode/src/vs/base/common/observableInternal/autorun.js +19 -35
  51. package/vscode/src/vs/base/common/observableInternal/base.js +3 -82
  52. package/vscode/src/vs/base/common/observableInternal/debugName.js +100 -0
  53. package/vscode/src/vs/base/common/observableInternal/derived.js +14 -46
  54. package/vscode/src/vs/base/common/observableInternal/promise.js +94 -0
  55. package/vscode/src/vs/base/common/observableInternal/utils.js +5 -27
  56. package/vscode/src/vs/base/common/prefixTree.js +56 -22
  57. package/vscode/src/vs/base/common/product.d.ts +1 -1
  58. package/vscode/src/vs/base/common/strings.js +9 -1
  59. package/vscode/src/vs/editor/browser/config/charWidthReader.js +5 -6
  60. package/vscode/src/vs/editor/browser/config/editorConfiguration.js +7 -4
  61. package/vscode/src/vs/editor/browser/config/fontMeasurements.js +39 -26
  62. package/vscode/src/vs/editor/browser/controller/mouseHandler.js +10 -10
  63. package/vscode/src/vs/editor/browser/controller/mouseTarget.js +4 -4
  64. package/vscode/src/vs/editor/browser/controller/textAreaHandler.js +12 -12
  65. package/vscode/src/vs/editor/browser/coreCommands.js +2 -2
  66. package/vscode/src/vs/editor/browser/view/viewController.js +3 -3
  67. package/vscode/src/vs/editor/browser/view/viewLayer.js +1 -1
  68. package/vscode/src/vs/editor/browser/view/viewOverlays.js +6 -6
  69. package/vscode/src/vs/editor/browser/view.js +2 -2
  70. package/vscode/src/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js +1 -1
  71. package/vscode/src/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +5 -5
  72. package/vscode/src/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +8 -8
  73. package/vscode/src/vs/editor/browser/viewParts/decorations/decorations.js +2 -2
  74. package/vscode/src/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js +11 -11
  75. package/vscode/src/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +4 -4
  76. package/vscode/src/vs/editor/browser/viewParts/indentGuides/indentGuides.js +4 -4
  77. package/vscode/src/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js +4 -4
  78. package/vscode/src/vs/editor/browser/viewParts/lines/viewLine.js +4 -4
  79. package/vscode/src/vs/editor/browser/viewParts/lines/viewLines.js +13 -13
  80. package/vscode/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js +2 -2
  81. package/vscode/src/vs/editor/browser/viewParts/margin/margin.js +2 -2
  82. package/vscode/src/vs/editor/browser/viewParts/minimap/minimap.js +7 -7
  83. package/vscode/src/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +2 -2
  84. package/vscode/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js +7 -7
  85. package/vscode/src/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +6 -6
  86. package/vscode/src/vs/editor/browser/viewParts/rulers/rulers.js +2 -2
  87. package/vscode/src/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +3 -3
  88. package/vscode/src/vs/editor/browser/viewParts/selections/selections.js +4 -4
  89. package/vscode/src/vs/editor/browser/viewParts/viewCursors/viewCursor.js +2 -2
  90. package/vscode/src/vs/editor/browser/viewParts/viewCursors/viewCursors.js +2 -2
  91. package/vscode/src/vs/editor/browser/viewParts/viewZones/viewZones.js +5 -5
  92. package/vscode/src/vs/editor/browser/viewParts/whitespace/whitespace.js +5 -5
  93. package/vscode/src/vs/editor/browser/widget/codeEditorContributions.js +2 -2
  94. package/vscode/src/vs/editor/browser/widget/codeEditorWidget.js +34 -32
  95. package/vscode/src/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.css.js +1 -1
  96. package/vscode/src/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js +82 -37
  97. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +3 -1
  98. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js +7 -7
  99. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js +3 -3
  100. package/vscode/src/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js +6 -6
  101. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js +10 -16
  102. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js +2 -1
  103. package/vscode/src/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +12 -12
  104. package/vscode/src/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js +2 -4
  105. package/vscode/src/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js +1 -1
  106. package/vscode/src/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js +17 -18
  107. package/vscode/src/vs/editor/browser/widget/diffEditor/utils.js +1 -1
  108. package/vscode/src/vs/editor/browser/widget/embeddedCodeEditorWidget.js +4 -4
  109. package/vscode/src/vs/editor/browser/widget/markdownRenderer/browser/renderedMarkdown.css.js +1 -1
  110. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/colors.js +2 -2
  111. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/diffEditorItemTemplate.js +43 -16
  112. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidget.js +3 -0
  113. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/multiDiffEditorWidgetImpl.js +42 -8
  114. package/vscode/src/vs/editor/browser/widget/multiDiffEditorWidget/style.css.js +1 -1
  115. package/vscode/src/vs/editor/common/config/editorOptions.d.ts +18 -1
  116. package/vscode/src/vs/editor/common/config/editorOptions.js +188 -107
  117. package/vscode/src/vs/editor/common/config/fontInfo.js +2 -2
  118. package/vscode/src/vs/editor/common/cursorCommon.js +14 -14
  119. package/vscode/src/vs/editor/common/editorContextKeys.js +1 -1
  120. package/vscode/src/vs/editor/common/languageSelector.js +12 -1
  121. package/vscode/src/vs/editor/common/languages.d.ts +28 -1
  122. package/vscode/src/vs/editor/common/languages.js +6 -1
  123. package/vscode/src/vs/editor/common/services/languageFeatures.d.ts +3 -1
  124. package/vscode/src/vs/editor/common/services/languageFeaturesService.js +2 -0
  125. package/vscode/src/vs/editor/common/standalone/standaloneEnums.js +96 -86
  126. package/vscode/src/vs/editor/common/standaloneStrings.js +5 -5
  127. package/vscode/src/vs/editor/common/viewLayout/viewLayout.js +19 -19
  128. package/vscode/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.js +2 -2
  129. package/vscode/src/vs/editor/common/viewModel/viewModelImpl.js +12 -12
  130. package/vscode/src/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +3 -3
  131. package/vscode/src/vs/editor/contrib/clipboard/browser/clipboard.js +6 -6
  132. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionController.js +5 -1
  133. package/vscode/src/vs/editor/contrib/codeAction/browser/codeActionModel.js +3 -3
  134. package/vscode/src/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +2 -2
  135. package/vscode/src/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
  136. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorContributions.js +1 -1
  137. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorDetector.js +3 -3
  138. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js +2 -2
  139. package/vscode/src/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js +3 -3
  140. package/vscode/src/vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions.js +2 -3
  141. package/vscode/src/vs/editor/contrib/contextmenu/browser/contextmenu.js +3 -3
  142. package/vscode/src/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +3 -3
  143. package/vscode/src/vs/editor/contrib/find/browser/findController.js +1 -1
  144. package/vscode/src/vs/editor/contrib/find/browser/findModel.js +6 -6
  145. package/vscode/src/vs/editor/contrib/find/browser/findWidget.css.js +1 -1
  146. package/vscode/src/vs/editor/contrib/find/browser/findWidget.js +9 -62
  147. package/vscode/src/vs/editor/contrib/folding/browser/folding.js +3 -3
  148. package/vscode/src/vs/editor/contrib/format/browser/format.js +5 -5
  149. package/vscode/src/vs/editor/contrib/format/browser/formatActions.js +5 -5
  150. package/vscode/src/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +1 -1
  151. package/vscode/src/vs/editor/contrib/gotoError/browser/markerNavigationService.js +1 -1
  152. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +58 -84
  153. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +3 -3
  154. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  155. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +8 -2
  156. package/vscode/src/vs/editor/contrib/hover/browser/contentHover.js +1 -1
  157. package/vscode/src/vs/editor/contrib/hover/browser/hover.js +1 -1
  158. package/vscode/src/vs/editor/contrib/hover/browser/marginHover.js +1 -1
  159. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +1 -1
  160. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +18 -15
  161. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +3 -3
  162. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +1 -1
  163. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js +2 -2
  164. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/commands.js +1 -1
  165. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostText.js +14 -6
  166. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js +10 -10
  167. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js +1 -1
  168. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys.js +3 -3
  169. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js +54 -27
  170. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js +1 -1
  171. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js +115 -45
  172. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js +1 -1
  173. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/singleTextEdit.js +6 -5
  174. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/utils.js +46 -1
  175. package/vscode/src/vs/editor/contrib/inlineEdit/browser/commandIds.js +5 -0
  176. package/vscode/src/vs/editor/contrib/inlineEdit/browser/commands.js +145 -0
  177. package/vscode/src/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js +188 -0
  178. package/vscode/src/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js +91 -0
  179. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEdit.contribution.js +12 -0
  180. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEdit.css.js +4 -0
  181. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditController.js +309 -0
  182. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.css.js +4 -0
  183. package/vscode/src/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js +193 -0
  184. package/vscode/src/vs/editor/contrib/inlineProgress/browser/inlineProgress.js +2 -2
  185. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +1 -1
  186. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  187. package/vscode/src/vs/editor/contrib/links/browser/links.js +5 -5
  188. package/vscode/src/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js +1 -1
  189. package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.js +10 -10
  190. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js +3 -3
  191. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +1 -1
  192. package/vscode/src/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +1 -1
  193. package/vscode/src/vs/editor/contrib/readOnlyMessage/browser/contribution.js +1 -1
  194. package/vscode/src/vs/editor/contrib/rename/browser/rename.js +143 -9
  195. package/vscode/src/vs/editor/contrib/rename/browser/renameInputField.css.js +1 -1
  196. package/vscode/src/vs/editor/contrib/rename/browser/renameInputField.js +347 -17
  197. package/vscode/src/vs/editor/contrib/smartSelect/browser/smartSelect.js +1 -1
  198. package/vscode/src/vs/editor/contrib/snippet/browser/snippetSession.js +2 -2
  199. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +23 -37
  200. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js +11 -10
  201. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js +2 -2
  202. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +8 -8
  203. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +4 -4
  204. package/vscode/src/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js +2 -2
  205. package/vscode/src/vs/editor/contrib/suggest/browser/suggestModel.js +11 -11
  206. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +6 -6
  207. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +3 -3
  208. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +3 -3
  209. package/vscode/src/vs/editor/contrib/suggest/browser/wordContextKey.js +2 -2
  210. package/vscode/src/vs/editor/contrib/suggest/browser/wordDistance.js +1 -1
  211. package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +3 -3
  212. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +3 -3
  213. package/vscode/src/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +4 -4
  214. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +26 -16
  215. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
  216. package/vscode/src/vs/editor/contrib/zoneWidget/browser/zoneWidget.js +7 -3
  217. package/vscode/src/vs/editor/editor.api.d.ts +146 -85
  218. package/vscode/src/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js +1 -1
  219. package/vscode/src/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js +3 -5
  220. package/vscode/src/vs/editor/standalone/browser/standaloneCodeEditor.js +7 -4
  221. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +10 -10
  222. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.d.ts +99 -0
  223. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +608 -0
  224. package/vscode/src/vs/platform/action/common/actionCommonCategories.d.ts +1 -4
  225. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +3 -3
  226. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +26 -41
  227. package/vscode/src/vs/platform/actions/browser/dropdownWithPrimaryActionViewItem.js +6 -4
  228. package/vscode/src/vs/platform/actions/common/actions.d.ts +11 -0
  229. package/vscode/src/vs/platform/actions/common/actions.js +11 -0
  230. package/vscode/src/vs/platform/configuration/common/configuration.d.ts +17 -33
  231. package/vscode/src/vs/platform/configuration/common/configurationModels.js +42 -29
  232. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +3 -4
  233. package/vscode/src/vs/platform/extensions/common/extensions.d.ts +2 -2
  234. package/vscode/src/vs/platform/hover/browser/hover.js +69 -1
  235. package/vscode/src/vs/platform/product/common/product.js +1 -1
  236. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +14 -20
  237. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +11 -5
  238. package/vscode/src/vs/platform/quickinput/browser/quickInputList.js +22 -2
  239. package/vscode/src/vs/platform/quickinput/browser/quickInputService.js +9 -7
  240. package/vscode/src/vs/platform/remote/common/remoteAgentConnection.js +2 -5
  241. package/vscode/src/vs/platform/request/common/request.js +111 -0
  242. package/vscode/src/vs/platform/terminal/common/capabilities/capabilities.d.ts +1 -0
  243. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetection/terminalCommand.js +15 -0
  244. package/vscode/src/vs/platform/terminal/common/capabilities/commandDetectionCapability.js +9 -0
  245. package/vscode/src/vs/platform/terminal/common/terminal.d.ts +5 -3
  246. package/vscode/src/vs/platform/theme/common/colorRegistry.js +5 -5
  247. package/vscode/src/vs/platform/theme/common/tokenClassificationRegistry.js +6 -2
  248. package/vscode/src/vs/platform/window/common/window.js +4 -1
  249. package/vscode/src/vs/platform/workspace/common/workspace.js +2 -1
  250. package/vscode/src/vs/workbench/api/browser/statusBarExtensionPoint.js +2 -2
  251. package/vscode/src/vs/workbench/api/browser/viewsExtensionPoint.js +130 -14
  252. package/vscode/src/vs/workbench/api/common/extHost.api.impl.js +76 -24
  253. package/vscode/src/vs/workbench/api/common/extHostAuthentication.js +4 -1
  254. package/vscode/src/vs/workbench/api/common/extHostChat.js +0 -39
  255. package/vscode/src/vs/workbench/api/common/extHostChatAgents2.js +309 -137
  256. package/vscode/src/vs/workbench/api/common/extHostChatProvider.js +164 -49
  257. package/vscode/src/vs/workbench/api/common/extHostChatVariables.js +67 -7
  258. package/vscode/src/vs/workbench/api/common/extHostComments.js +28 -0
  259. package/vscode/src/vs/workbench/api/common/extHostDebugService.js +129 -48
  260. package/vscode/src/vs/workbench/api/common/extHostDocumentData.js +1 -2
  261. package/vscode/src/vs/workbench/api/common/extHostDocumentsAndEditors.js +1 -1
  262. package/vscode/src/vs/workbench/api/common/extHostInlineChat.js +5 -4
  263. package/vscode/src/vs/workbench/api/common/extHostInteractive.js +0 -1
  264. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +130 -16
  265. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +12 -1
  266. package/vscode/src/vs/workbench/api/common/extHostNotebookDocument.js +14 -5
  267. package/vscode/src/vs/workbench/api/common/extHostNotebookKernels.js +19 -1
  268. package/vscode/src/vs/workbench/api/common/extHostSpeech.js +2 -2
  269. package/vscode/src/vs/workbench/api/common/extHostTypeConverters.js +301 -75
  270. package/vscode/src/vs/workbench/api/common/extHostTypes.js +127 -45
  271. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +46 -7
  272. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +55 -2
  273. package/vscode/src/vs/workbench/api/worker/extensionHostWorker.js +1 -1
  274. package/vscode/src/vs/workbench/browser/actions/layoutActions.js +146 -99
  275. package/vscode/src/vs/workbench/browser/actions/listCommands.js +2 -3
  276. package/vscode/src/vs/workbench/browser/actions/widgetNavigationCommands.js +3 -4
  277. package/vscode/src/vs/workbench/browser/actions/windowActions.js +4 -8
  278. package/vscode/src/vs/workbench/browser/composite.d.ts +2 -1
  279. package/vscode/src/vs/workbench/browser/composite.js +1 -1
  280. package/vscode/src/vs/workbench/browser/editor.js +11 -1
  281. package/vscode/src/vs/workbench/browser/media/style.css.js +1 -1
  282. package/vscode/src/vs/workbench/browser/panecomposite.d.ts +2 -1
  283. package/vscode/src/vs/workbench/browser/panecomposite.js +2 -2
  284. package/vscode/src/vs/workbench/browser/parts/activitybar/activitybarPart.js +4 -6
  285. package/vscode/src/vs/workbench/browser/parts/activitybar/media/activityaction.css.js +1 -1
  286. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarActions.js +4 -4
  287. package/vscode/src/vs/workbench/browser/parts/auxiliarybar/auxiliaryBarPart.js +1 -1
  288. package/vscode/src/vs/workbench/browser/parts/compositeBar.js +1 -1
  289. package/vscode/src/vs/workbench/browser/parts/compositeBarActions.js +10 -10
  290. package/vscode/src/vs/workbench/browser/parts/compositePart.js +8 -5
  291. package/vscode/src/vs/workbench/browser/parts/editor/auxiliaryEditorPart.js +39 -29
  292. package/vscode/src/vs/workbench/browser/parts/editor/binaryEditor.js +1 -1
  293. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsControl.js +20 -24
  294. package/vscode/src/vs/workbench/browser/parts/editor/breadcrumbsPicker.js +6 -4
  295. package/vscode/src/vs/workbench/browser/parts/editor/editor.autosave.contribution.js +2 -3
  296. package/vscode/src/vs/workbench/browser/parts/editor/editor.contribution.js +52 -54
  297. package/vscode/src/vs/workbench/browser/parts/editor/editorActions.js +30 -30
  298. package/vscode/src/vs/workbench/browser/parts/editor/editorAutoSave.js +1 -0
  299. package/vscode/src/vs/workbench/browser/parts/editor/editorCommands.js +12 -18
  300. package/vscode/src/vs/workbench/browser/parts/editor/editorConfiguration.js +1 -0
  301. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupView.js +1 -1
  302. package/vscode/src/vs/workbench/browser/parts/editor/editorGroupWatermark.js +7 -6
  303. package/vscode/src/vs/workbench/browser/parts/editor/editorStatus.js +17 -6
  304. package/vscode/src/vs/workbench/browser/parts/editor/editorTabsControl.js +13 -5
  305. package/vscode/src/vs/workbench/browser/parts/editor/media/multieditortabscontrol.css.js +1 -1
  306. package/vscode/src/vs/workbench/browser/parts/editor/multiEditorTabsControl.js +84 -71
  307. package/vscode/src/vs/workbench/browser/parts/editor/singleEditorTabsControl.js +2 -6
  308. package/vscode/src/vs/workbench/browser/parts/editor/textDiffEditor.js +4 -1
  309. package/vscode/src/vs/workbench/browser/parts/editor/textResourceEditor.js +2 -2
  310. package/vscode/src/vs/workbench/browser/parts/globalCompositeBar.js +29 -29
  311. package/vscode/src/vs/workbench/browser/parts/media/paneCompositePart.css.js +1 -1
  312. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCenter.js +5 -5
  313. package/vscode/src/vs/workbench/browser/parts/notifications/notificationsCommands.js +3 -3
  314. package/vscode/src/vs/workbench/browser/parts/paneCompositeBar.js +1 -5
  315. package/vscode/src/vs/workbench/browser/parts/paneCompositePart.js +9 -6
  316. package/vscode/src/vs/workbench/browser/parts/panel/panelActions.js +56 -74
  317. package/vscode/src/vs/workbench/browser/parts/panel/panelPart.js +1 -1
  318. package/vscode/src/vs/workbench/browser/parts/sidebar/sidebarPart.js +6 -9
  319. package/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.js +4 -4
  320. package/vscode/src/vs/workbench/browser/parts/titlebar/titlebarPart.d.ts +9 -1
  321. package/vscode/src/vs/workbench/browser/parts/titlebar/windowTitle.js +55 -12
  322. package/vscode/src/vs/workbench/browser/parts/views/treeView.js +9 -16
  323. package/vscode/src/vs/workbench/browser/parts/views/viewPane.js +1 -1
  324. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.d.ts +2 -1
  325. package/vscode/src/vs/workbench/browser/parts/views/viewPaneContainer.js +4 -4
  326. package/vscode/src/vs/workbench/browser/quickaccess.js +8 -1
  327. package/vscode/src/vs/workbench/browser/workbench.contribution.js +22 -20
  328. package/vscode/src/vs/workbench/common/configuration.js +146 -43
  329. package/vscode/src/vs/workbench/common/contextkeys.js +4 -4
  330. package/vscode/src/vs/workbench/common/contributions.js +136 -20
  331. package/vscode/src/vs/workbench/common/editor/diffEditorInput.js +5 -5
  332. package/vscode/src/vs/workbench/common/editor/editorGroupModel.js +1 -1
  333. package/vscode/src/vs/workbench/common/editor/editorInput.d.ts +17 -11
  334. package/vscode/src/vs/workbench/common/editor/editorInput.js +1 -1
  335. package/vscode/src/vs/workbench/common/editor/sideBySideEditorInput.js +2 -2
  336. package/vscode/src/vs/workbench/common/editor.d.ts +4 -0
  337. package/vscode/src/vs/workbench/common/theme.js +11 -1
  338. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +1064 -118
  339. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.js +7 -7
  340. package/vscode/src/vs/workbench/contrib/accessibility/browser/editorAccessibilityHelp.js +5 -5
  341. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/accessibilitySignal.contribution.js +306 -0
  342. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/accessibilitySignalDebuggerContribution.js +46 -0
  343. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/accessibilitySignalLineFeatureContribution.js +177 -0
  344. package/vscode/src/vs/workbench/contrib/accessibilitySignals/browser/commands.js +163 -0
  345. package/vscode/src/vs/workbench/contrib/callHierarchy/browser/callHierarchy.contribution.js +1 -1
  346. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.js +2 -2
  347. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatActions.js +31 -17
  348. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatExecuteActions.js +11 -17
  349. package/vscode/src/vs/workbench/contrib/chat/browser/actions/chatQuickInputActions.js +18 -27
  350. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditorInput.js +2 -5
  351. package/vscode/src/vs/workbench/contrib/chat/browser/chatFollowups.js +34 -8
  352. package/vscode/src/vs/workbench/contrib/chat/browser/chatInputPart.js +8 -7
  353. package/vscode/src/vs/workbench/contrib/chat/browser/chatListRenderer.js +142 -109
  354. package/vscode/src/vs/workbench/contrib/chat/browser/chatMarkdownDecorationsRenderer.js +80 -52
  355. package/vscode/src/vs/workbench/contrib/chat/browser/chatSlashCommandContentWidget.js +1 -1
  356. package/vscode/src/vs/workbench/contrib/chat/browser/chatWidget.js +44 -13
  357. package/vscode/src/vs/workbench/contrib/chat/browser/codeBlockPart.js +230 -74
  358. package/vscode/src/vs/workbench/contrib/chat/browser/media/chat.css.js +1 -1
  359. package/vscode/src/vs/workbench/contrib/chat/common/chatAgents.js +5 -5
  360. package/vscode/src/vs/workbench/contrib/chat/common/chatModel.js +87 -29
  361. package/vscode/src/vs/workbench/contrib/chat/common/chatParserTypes.js +19 -3
  362. package/vscode/src/vs/workbench/contrib/chat/common/chatProvider.js +18 -3
  363. package/vscode/src/vs/workbench/contrib/chat/common/chatRequestParser.js +11 -8
  364. package/vscode/src/vs/workbench/contrib/chat/common/chatService.js +6 -6
  365. package/vscode/src/vs/workbench/contrib/chat/common/chatViewModel.js +11 -5
  366. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActions.contribution.js +2 -2
  367. package/vscode/src/vs/workbench/contrib/codeActions/common/codeActionsExtensionPoint.js +71 -0
  368. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.css.js +4 -0
  369. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +256 -0
  370. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +2 -2
  371. package/vscode/src/vs/workbench/contrib/codeEditor/browser/editorFeatures.js +3 -4
  372. package/vscode/src/vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess.js +8 -6
  373. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +11 -11
  374. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +3 -4
  375. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -3
  376. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +2 -3
  377. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +9 -10
  378. package/vscode/src/vs/workbench/contrib/comments/browser/commentFormActions.js +9 -2
  379. package/vscode/src/vs/workbench/contrib/comments/browser/commentNode.js +27 -13
  380. package/vscode/src/vs/workbench/contrib/comments/browser/commentReply.js +41 -23
  381. package/vscode/src/vs/workbench/contrib/comments/browser/commentService.js +15 -7
  382. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadAdditionalActions.js +22 -10
  383. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadBody.js +1 -1
  384. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadWidget.js +1 -0
  385. package/vscode/src/vs/workbench/contrib/comments/browser/commentThreadZoneWidget.js +3 -3
  386. package/vscode/src/vs/workbench/contrib/comments/browser/commentsController.js +3 -3
  387. package/vscode/src/vs/workbench/contrib/comments/browser/commentsView.js +2 -2
  388. package/vscode/src/vs/workbench/contrib/comments/browser/simpleCommentEditor.js +3 -1
  389. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditor.contribution.js +2 -3
  390. package/vscode/src/vs/workbench/contrib/customEditor/browser/customEditorInputFactory.js +1 -0
  391. package/vscode/src/vs/workbench/contrib/customEditor/common/extensionPoint.js +66 -2
  392. package/vscode/src/vs/workbench/contrib/debug/browser/baseDebugView.js +31 -2
  393. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointEditorContribution.js +2 -2
  394. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointWidget.js +37 -7
  395. package/vscode/src/vs/workbench/contrib/debug/browser/breakpointsView.js +118 -25
  396. package/vscode/src/vs/workbench/contrib/debug/browser/media/breakpointWidget.css.js +1 -1
  397. package/vscode/src/vs/workbench/contrib/debug/common/debug.d.ts +37 -5
  398. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +24 -1
  399. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.d.ts +18 -0
  400. package/vscode/src/vs/workbench/contrib/debug/common/debugModel.js +237 -140
  401. package/vscode/src/vs/workbench/contrib/debug/common/debugVisualizers.js +72 -25
  402. package/vscode/src/vs/workbench/contrib/editSessions/common/editSessions.js +5 -8
  403. package/vscode/src/vs/workbench/contrib/extensions/browser/extensionsActions.js +29 -4
  404. package/vscode/src/vs/workbench/contrib/files/browser/editors/fileEditorHandler.js +1 -0
  405. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileEditorTracker.js +1 -0
  406. package/vscode/src/vs/workbench/contrib/files/browser/editors/textFileSaveErrorHandler.js +2 -1
  407. package/vscode/src/vs/workbench/contrib/files/browser/explorerViewlet.js +8 -7
  408. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.contribution.js +21 -19
  409. package/vscode/src/vs/workbench/contrib/files/browser/fileActions.js +152 -120
  410. package/vscode/src/vs/workbench/contrib/files/browser/fileCommands.js +24 -1
  411. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
  412. package/vscode/src/vs/workbench/contrib/files/browser/files.contribution.js +26 -25
  413. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerView.js +5 -5
  414. package/vscode/src/vs/workbench/contrib/files/browser/views/explorerViewer.js +51 -12
  415. package/vscode/src/vs/workbench/contrib/files/browser/views/media/openeditors.css.js +1 -1
  416. package/vscode/src/vs/workbench/contrib/files/browser/views/openEditorsView.js +24 -9
  417. package/vscode/src/vs/workbench/contrib/files/browser/workspaceWatcher.js +1 -1
  418. package/vscode/src/vs/workbench/contrib/files/common/dirtyFilesIndicator.js +1 -0
  419. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +16 -22
  420. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChat.css.js +1 -1
  421. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatController.js +48 -27
  422. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget.js +2 -2
  423. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatSession.js +23 -8
  424. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.js +48 -6
  425. package/vscode/src/vs/workbench/contrib/inlineChat/browser/inlineChatWidget.js +145 -73
  426. package/vscode/src/vs/workbench/contrib/inlineChat/common/inlineChat.js +31 -9
  427. package/vscode/src/vs/workbench/contrib/languageStatus/browser/languageStatus.contribution.js +8 -10
  428. package/vscode/src/vs/workbench/contrib/list/browser/list.contribution.js +3 -3
  429. package/vscode/src/vs/workbench/contrib/markdown/browser/markdownDocumentRenderer.js +7 -3
  430. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/commands.js +95 -152
  431. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/commands/devCommands.js +16 -25
  432. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/mergeEditor.contribution.js +2 -4
  433. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel.js +2 -1
  434. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/model/textModelDiffs.js +19 -19
  435. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/conflictActions.js +1 -1
  436. package/vscode/src/vs/workbench/contrib/mergeEditor/browser/view/mergeEditor.js +1 -0
  437. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/cellOutputActions.js +17 -3
  438. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/editActions.js +102 -15
  439. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/foldingController.js +2 -2
  440. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/notebookIndentationActions.js +234 -0
  441. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditor.js +1 -2
  442. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.js +48 -24
  443. package/vscode/src/vs/workbench/contrib/notebook/browser/notebookOptions.js +52 -22
  444. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellActionView.js +62 -3
  445. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellEditorOptions.js +40 -0
  446. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellOutput.js +20 -6
  447. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/cellToolbars.js +4 -4
  448. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatPart.js +3 -27
  449. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/codeCell.js +28 -6
  450. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/markupCell.js +28 -3
  451. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.js +78 -18
  452. package/vscode/src/vs/workbench/contrib/notebook/browser/view/notebookCellListView.js +208 -1
  453. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/backLayerWebView.js +1 -1
  454. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.js +4 -4
  455. package/vscode/src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.js +85 -71
  456. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/baseCellViewModel.js +1 -2
  457. package/vscode/src/vs/workbench/contrib/notebook/browser/viewModel/notebookViewModelImpl.js +1 -4
  458. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorStickyScroll.js +2 -3
  459. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookEditorToolbar.js +82 -14
  460. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelQuickPickStrategy.js +1 -1
  461. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookKernelView.js +0 -1
  462. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookOverviewRuler.js +4 -3
  463. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookTopCellToolbar.js +92 -33
  464. package/vscode/src/vs/workbench/contrib/notebook/browser/viewParts/notebookViewZones.js +136 -0
  465. package/vscode/src/vs/workbench/contrib/notebook/common/notebookEditorInput.js +6 -1
  466. package/vscode/src/vs/workbench/contrib/notebook/common/notebookRange.js +5 -1
  467. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingWidgets.js +279 -0
  468. package/vscode/src/vs/workbench/contrib/preferences/browser/keyboardLayoutPicker.js +6 -7
  469. package/vscode/src/vs/workbench/contrib/preferences/browser/media/keybindings.css.js +4 -0
  470. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesIcons.js +64 -0
  471. package/vscode/src/vs/workbench/contrib/preferences/browser/preferencesWidgets.js +507 -0
  472. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsLayout.js +478 -0
  473. package/vscode/src/vs/workbench/contrib/preferences/browser/settingsTreeModels.js +796 -0
  474. package/vscode/src/vs/workbench/contrib/remote/browser/remoteExplorer.js +8 -10
  475. package/vscode/src/vs/workbench/contrib/remote/browser/tunnelView.js +14 -20
  476. package/vscode/src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.js +12 -12
  477. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsBase.js +3 -3
  478. package/vscode/src/vs/workbench/contrib/search/browser/searchActionsFind.js +44 -54
  479. package/vscode/src/vs/workbench/contrib/search/common/constants.js +26 -65
  480. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/abstractSnippetsActions.js +6 -9
  481. package/vscode/src/vs/workbench/contrib/snippets/browser/commands/fileTemplateSnippets.js +6 -9
  482. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +2 -2
  483. package/vscode/src/vs/workbench/contrib/snippets/browser/tabCompletion.js +2 -2
  484. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +3 -124
  485. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +2 -2
  486. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +2 -2
  487. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.js +5 -5
  488. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/decorationStyles.js +61 -24
  489. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.d.ts +3 -3
  490. package/vscode/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.js +5 -5
  491. package/vscode/src/vs/workbench/contrib/terminal/common/terminalContextKey.js +24 -1
  492. package/vscode/src/vs/workbench/contrib/terminal/common/terminalExtensionPoints.js +1 -1
  493. package/vscode/src/vs/workbench/contrib/testing/common/testCoverage.js +4 -4
  494. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +10 -10
  495. package/vscode/src/vs/workbench/contrib/testing/common/testingContinuousRunService.js +45 -20
  496. package/vscode/src/vs/workbench/contrib/update/common/update.js +2 -1
  497. package/vscode/src/vs/workbench/contrib/webview/browser/webviewElement.js +3 -4
  498. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewCommands.js +3 -3
  499. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditor.js +1 -1
  500. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewEditorInputSerializer.js +1 -1
  501. package/vscode/src/vs/workbench/contrib/webviewPanel/browser/webviewPanel.contribution.js +15 -18
  502. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewPane.js +2 -5
  503. package/vscode/src/vs/workbench/contrib/webviewView/browser/webviewViewService.js +4 -4
  504. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedExtensionPoint.js +2 -2
  505. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStartedService.js +5 -5
  506. package/vscode/src/vs/workbench/services/authentication/browser/authenticationService.js +193 -54
  507. package/vscode/src/vs/workbench/services/authentication/common/authentication.js +2 -1
  508. package/vscode/src/vs/workbench/services/auxiliaryWindow/browser/auxiliaryWindowService.js +9 -3
  509. package/vscode/src/vs/workbench/services/editor/browser/editorPaneService.js +10 -0
  510. package/vscode/src/vs/workbench/services/editor/browser/editorService.d.ts +3 -1
  511. package/vscode/src/vs/workbench/services/editor/browser/editorService.js +5 -0
  512. package/vscode/src/vs/workbench/services/editor/common/editorGroupsService.d.ts +1 -6
  513. package/vscode/src/vs/workbench/services/editor/common/editorPaneService.js +3 -0
  514. package/vscode/src/vs/workbench/services/editor/common/editorService.d.ts +5 -1
  515. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionFeatures.js +29 -0
  516. package/vscode/src/vs/workbench/services/extensionManagement/common/extensionManagement.js +1 -1
  517. package/vscode/src/vs/workbench/services/extensions/browser/extensionUrlHandler.js +3 -4
  518. package/vscode/src/vs/workbench/services/extensions/common/extensionDescriptionRegistry.js +4 -3
  519. package/vscode/src/vs/workbench/services/extensions/common/extensionsApiProposals.js +11 -5
  520. package/vscode/src/vs/workbench/services/extensions/common/workspaceContains.js +5 -5
  521. package/vscode/src/vs/workbench/services/history/browser/historyService.js +25 -4
  522. package/vscode/src/vs/workbench/services/history/common/history.d.ts +5 -0
  523. package/vscode/src/vs/workbench/services/language/common/languageService.js +111 -2
  524. package/vscode/src/vs/workbench/services/layout/browser/layoutService.d.ts +2 -2
  525. package/vscode/src/vs/workbench/services/layout/browser/layoutService.js +59 -1
  526. package/vscode/src/vs/workbench/services/preferences/common/preferencesModels.js +1008 -0
  527. package/vscode/src/vs/workbench/services/preferences/common/preferencesValidation.js +477 -0
  528. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +2 -2
  529. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.d.ts +4 -1
  530. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +53 -13
  531. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -0
  532. package/vscode/src/vs/workbench/services/textMate/common/TMGrammars.js +2 -2
  533. package/vscode/src/vs/workbench/services/textfile/common/textFileEditorModel.js +1 -1
  534. package/vscode/src/vs/workbench/services/textfile/common/textfiles.d.ts +22 -9
  535. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +76 -4
  536. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +2 -2
  537. package/vscode/src/vs/workbench/services/themes/common/tokenClassificationExtensionPoint.js +7 -7
  538. package/vscode/src/vs/workbench/services/timer/browser/timerService.js +1 -0
  539. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorHandler.js +3 -2
  540. package/vscode/src/vs/workbench/services/untitled/common/untitledTextEditorInput.js +1 -1
  541. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +2 -2
  542. package/vscode/src/vs/workbench/services/views/browser/viewDescriptorService.js +6 -9
  543. package/vscode/src/vs/workbench/services/views/browser/viewsService.js +12 -12
  544. package/vscode/src/vs/workbench/services/views/common/viewContainerModel.js +6 -1
  545. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.d.ts +43 -4
  546. package/vscode/src/vs/workbench/services/workingCopy/common/storedFileWorkingCopy.js +1 -1
  547. package/vscode/src/vs/workbench/services/workingCopy/common/workingCopyFileService.d.ts +16 -7
  548. package/vscode/src/vs/workbench/services/workspaces/common/workspaceTrust.js +3 -6
  549. package/vscode-dts/vscode.proposed.activeComment.d.ts +23 -0
  550. package/vscode-dts/vscode.proposed.chatParticipant.d.ts +509 -0
  551. package/vscode-dts/vscode.proposed.chatParticipantAdditions.d.ts +288 -0
  552. package/vscode-dts/vscode.proposed.chatProvider.d.ts +10 -1
  553. package/vscode-dts/vscode.proposed.chatVariableResolver.d.ts +56 -0
  554. package/vscode-dts/vscode.proposed.codeActionRanges.d.ts +2 -4
  555. package/vscode-dts/{vscode.proposed.chat.d.ts → vscode.proposed.contribIssueReporter.d.ts} +2 -20
  556. package/vscode-dts/vscode.proposed.contribSourceControlHistoryItemGroupMenu.d.ts +2 -0
  557. package/vscode-dts/vscode.proposed.contribSourceControlTitleMenu.d.ts +7 -0
  558. package/vscode-dts/vscode.proposed.debugVisualization.d.ts +76 -6
  559. package/vscode-dts/vscode.proposed.defaultChatParticipant.d.ts +49 -0
  560. package/vscode-dts/vscode.proposed.findFiles2.d.ts +89 -0
  561. package/vscode-dts/vscode.proposed.inlineEdit.d.ts +86 -0
  562. package/vscode-dts/vscode.proposed.interactive.d.ts +6 -3
  563. package/vscode-dts/vscode.proposed.languageModels.d.ts +184 -0
  564. package/vscode-dts/vscode.proposed.newSymbolNamesProvider.d.ts +36 -0
  565. package/vscode-dts/vscode.proposed.notebookVariableProvider.d.ts +6 -0
  566. package/vscode-dts/vscode.proposed.quickPickSortByLabel.d.ts +3 -0
  567. package/vscode-dts/vscode.proposed.speech.d.ts +5 -1
  568. package/vscode-dts/vscode.proposed.testCoverage.d.ts +40 -27
  569. package/vscode/src/vs/platform/audioCues/browser/audioCueService.d.ts +0 -98
  570. package/vscode/src/vs/platform/audioCues/browser/audioCueService.js +0 -576
  571. package/vscode/src/vs/workbench/contrib/notebook/browser/controller/insertCellActions.js +0 -348
  572. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatActions.js +0 -554
  573. package/vscode/src/vs/workbench/contrib/notebook/browser/view/cellParts/chat/cellChatController.js +0 -471
  574. package/vscode/src/vs/workbench/contrib/welcomeGettingStarted/browser/featuredExtensionService.js +0 -159
  575. package/vscode-dts/vscode.proposed.chatAgents2.d.ts +0 -440
  576. package/vscode-dts/vscode.proposed.chatAgents2Additions.d.ts +0 -139
  577. package/vscode-dts/vscode.proposed.chatRequestAccess.d.ts +0 -105
  578. package/vscode-dts/vscode.proposed.defaultChatAgent.d.ts +0 -30
@@ -0,0 +1,1008 @@
1
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { coalesce, tail, flatten } from '../../../../base/common/arrays.js';
3
+ import { Emitter } from '../../../../base/common/event.js';
4
+ import { visit } from '../../../../base/common/json.js';
5
+ import { Disposable } from '../../../../base/common/lifecycle.js';
6
+ import { Range } from '../../../../editor/common/core/range.js';
7
+ import { Selection } from '../../../../editor/common/core/selection.js';
8
+ import { localizeWithPath } from '../../../../nls.js';
9
+ import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
10
+ import { Extensions, OVERRIDE_PROPERTY_REGEX } from '../../../../platform/configuration/common/configurationRegistry.js';
11
+ import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
12
+ import { Registry } from '../../../../platform/registry/common/platform.js';
13
+ import { EditorModel } from '../../../common/editor/editorModel.js';
14
+ import { SettingMatchType } from './preferences.js';
15
+ import { FOLDER_SCOPES, WORKSPACE_SCOPES } from '../../configuration/common/configuration.js';
16
+ import { createValidator } from './preferencesValidation.js';
17
+ const nullRange = { startLineNumber: -1, startColumn: -1, endLineNumber: -1, endColumn: -1 };
18
+ function isNullRange(range) { return range.startLineNumber === -1 && range.startColumn === -1 && range.endLineNumber === -1 && range.endColumn === -1; }
19
+ class AbstractSettingsModel extends EditorModel {
20
+ constructor() {
21
+ super(...arguments);
22
+ this._currentResultGroups = ( new Map());
23
+ }
24
+ updateResultGroup(id, resultGroup) {
25
+ if (resultGroup) {
26
+ this._currentResultGroups.set(id, resultGroup);
27
+ }
28
+ else {
29
+ this._currentResultGroups.delete(id);
30
+ }
31
+ this.removeDuplicateResults();
32
+ return this.update();
33
+ }
34
+ removeDuplicateResults() {
35
+ const settingKeys = ( new Set());
36
+ [...( this._currentResultGroups.keys())]
37
+ .sort((a, b) => this._currentResultGroups.get(a).order - this._currentResultGroups.get(b).order)
38
+ .forEach(groupId => {
39
+ const group = this._currentResultGroups.get(groupId);
40
+ group.result.filterMatches = group.result.filterMatches.filter(s => !( settingKeys.has(s.setting.key)));
41
+ group.result.filterMatches.forEach(s => settingKeys.add(s.setting.key));
42
+ });
43
+ }
44
+ filterSettings(filter, groupFilter, settingMatcher) {
45
+ const allGroups = this.filterGroups;
46
+ const filterMatches = [];
47
+ for (const group of allGroups) {
48
+ const groupMatched = groupFilter(group);
49
+ for (const section of group.sections) {
50
+ for (const setting of section.settings) {
51
+ const settingMatchResult = settingMatcher(setting, group);
52
+ if (groupMatched || settingMatchResult) {
53
+ filterMatches.push({
54
+ setting,
55
+ matches: settingMatchResult && settingMatchResult.matches,
56
+ matchType: settingMatchResult?.matchType ?? SettingMatchType.None,
57
+ score: settingMatchResult?.score ?? 0
58
+ });
59
+ }
60
+ }
61
+ }
62
+ }
63
+ return filterMatches;
64
+ }
65
+ getPreference(key) {
66
+ for (const group of this.settingsGroups) {
67
+ for (const section of group.sections) {
68
+ for (const setting of section.settings) {
69
+ if (key === setting.key) {
70
+ return setting;
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return undefined;
76
+ }
77
+ collectMetadata(groups) {
78
+ const metadata = Object.create(null);
79
+ let hasMetadata = false;
80
+ groups.forEach(g => {
81
+ if (g.result.metadata) {
82
+ metadata[g.id] = g.result.metadata;
83
+ hasMetadata = true;
84
+ }
85
+ });
86
+ return hasMetadata ? metadata : null;
87
+ }
88
+ get filterGroups() {
89
+ return this.settingsGroups;
90
+ }
91
+ }
92
+ class SettingsEditorModel extends AbstractSettingsModel {
93
+ constructor(reference, _configurationTarget) {
94
+ super();
95
+ this._configurationTarget = _configurationTarget;
96
+ this._onDidChangeGroups = this._register(( new Emitter()));
97
+ this.onDidChangeGroups = this._onDidChangeGroups.event;
98
+ this.settingsModel = reference.object.textEditorModel;
99
+ this._register(this.onWillDispose(() => reference.dispose()));
100
+ this._register(this.settingsModel.onDidChangeContent(() => {
101
+ this._settingsGroups = undefined;
102
+ this._onDidChangeGroups.fire();
103
+ }));
104
+ }
105
+ get uri() {
106
+ return this.settingsModel.uri;
107
+ }
108
+ get configurationTarget() {
109
+ return this._configurationTarget;
110
+ }
111
+ get settingsGroups() {
112
+ if (!this._settingsGroups) {
113
+ this.parse();
114
+ }
115
+ return this._settingsGroups;
116
+ }
117
+ get content() {
118
+ return this.settingsModel.getValue();
119
+ }
120
+ findValueMatches(filter, setting) {
121
+ return ( this.settingsModel.findMatches(filter, setting.valueRange, false, false, null, false).map(match => match.range));
122
+ }
123
+ isSettingsProperty(property, previousParents) {
124
+ return previousParents.length === 0;
125
+ }
126
+ parse() {
127
+ this._settingsGroups = parse(this.settingsModel, (property, previousParents) => this.isSettingsProperty(property, previousParents));
128
+ }
129
+ update() {
130
+ const resultGroups = [...( this._currentResultGroups.values())];
131
+ if (!resultGroups.length) {
132
+ return undefined;
133
+ }
134
+ const filteredSettings = [];
135
+ const matches = [];
136
+ resultGroups.forEach(group => {
137
+ group.result.filterMatches.forEach(filterMatch => {
138
+ filteredSettings.push(filterMatch.setting);
139
+ if (filterMatch.matches) {
140
+ matches.push(...filterMatch.matches);
141
+ }
142
+ });
143
+ });
144
+ let filteredGroup;
145
+ const modelGroup = this.settingsGroups[0];
146
+ if (modelGroup) {
147
+ filteredGroup = {
148
+ id: modelGroup.id,
149
+ range: modelGroup.range,
150
+ sections: [{
151
+ settings: filteredSettings
152
+ }],
153
+ title: modelGroup.title,
154
+ titleRange: modelGroup.titleRange,
155
+ order: modelGroup.order,
156
+ extensionInfo: modelGroup.extensionInfo
157
+ };
158
+ }
159
+ const metadata = this.collectMetadata(resultGroups);
160
+ return {
161
+ allGroups: this.settingsGroups,
162
+ filteredGroups: filteredGroup ? [filteredGroup] : [],
163
+ matches,
164
+ metadata
165
+ };
166
+ }
167
+ }
168
+ let Settings2EditorModel = class Settings2EditorModel extends AbstractSettingsModel {
169
+ constructor(_defaultSettings, configurationService) {
170
+ super();
171
+ this._defaultSettings = _defaultSettings;
172
+ this._onDidChangeGroups = this._register(( new Emitter()));
173
+ this.onDidChangeGroups = this._onDidChangeGroups.event;
174
+ this.dirty = false;
175
+ this._register(configurationService.onDidChangeConfiguration(e => {
176
+ if (e.source === 7 ) {
177
+ this.dirty = true;
178
+ this._onDidChangeGroups.fire();
179
+ }
180
+ }));
181
+ this._register(( Registry.as(Extensions.Configuration)).onDidSchemaChange(e => {
182
+ this.dirty = true;
183
+ this._onDidChangeGroups.fire();
184
+ }));
185
+ }
186
+ get filterGroups() {
187
+ return this.settingsGroups.slice(1);
188
+ }
189
+ get settingsGroups() {
190
+ const groups = this._defaultSettings.getSettingsGroups(this.dirty);
191
+ if (this.additionalGroups?.length) {
192
+ groups.push(...this.additionalGroups);
193
+ }
194
+ this.dirty = false;
195
+ return groups;
196
+ }
197
+ setAdditionalGroups(groups) {
198
+ this.additionalGroups = groups;
199
+ }
200
+ findValueMatches(filter, setting) {
201
+ return [];
202
+ }
203
+ update() {
204
+ throw new Error('Not supported');
205
+ }
206
+ };
207
+ Settings2EditorModel = ( __decorate([
208
+ ( __param(1, IConfigurationService))
209
+ ], Settings2EditorModel));
210
+ function parse(model, isSettingsProperty) {
211
+ const settings = [];
212
+ let overrideSetting = null;
213
+ let currentProperty = null;
214
+ let currentParent = [];
215
+ const previousParents = [];
216
+ let settingsPropertyIndex = -1;
217
+ const range = {
218
+ startLineNumber: 0,
219
+ startColumn: 0,
220
+ endLineNumber: 0,
221
+ endColumn: 0
222
+ };
223
+ function onValue(value, offset, length) {
224
+ if (Array.isArray(currentParent)) {
225
+ currentParent.push(value);
226
+ }
227
+ else if (currentProperty) {
228
+ currentParent[currentProperty] = value;
229
+ }
230
+ if (previousParents.length === settingsPropertyIndex + 1 || (previousParents.length === settingsPropertyIndex + 2 && overrideSetting !== null)) {
231
+ const setting = previousParents.length === settingsPropertyIndex + 1 ? settings[settings.length - 1] : overrideSetting.overrides[overrideSetting.overrides.length - 1];
232
+ if (setting) {
233
+ const valueStartPosition = model.getPositionAt(offset);
234
+ const valueEndPosition = model.getPositionAt(offset + length);
235
+ setting.value = value;
236
+ setting.valueRange = {
237
+ startLineNumber: valueStartPosition.lineNumber,
238
+ startColumn: valueStartPosition.column,
239
+ endLineNumber: valueEndPosition.lineNumber,
240
+ endColumn: valueEndPosition.column
241
+ };
242
+ setting.range = Object.assign(setting.range, {
243
+ endLineNumber: valueEndPosition.lineNumber,
244
+ endColumn: valueEndPosition.column
245
+ });
246
+ }
247
+ }
248
+ }
249
+ const visitor = {
250
+ onObjectBegin: (offset, length) => {
251
+ if (isSettingsProperty(currentProperty, previousParents)) {
252
+ settingsPropertyIndex = previousParents.length;
253
+ const position = model.getPositionAt(offset);
254
+ range.startLineNumber = position.lineNumber;
255
+ range.startColumn = position.column;
256
+ }
257
+ const object = {};
258
+ onValue(object, offset, length);
259
+ currentParent = object;
260
+ currentProperty = null;
261
+ previousParents.push(currentParent);
262
+ },
263
+ onObjectProperty: (name, offset, length) => {
264
+ currentProperty = name;
265
+ if (previousParents.length === settingsPropertyIndex + 1 || (previousParents.length === settingsPropertyIndex + 2 && overrideSetting !== null)) {
266
+ const settingStartPosition = model.getPositionAt(offset);
267
+ const setting = {
268
+ description: [],
269
+ descriptionIsMarkdown: false,
270
+ key: name,
271
+ keyRange: {
272
+ startLineNumber: settingStartPosition.lineNumber,
273
+ startColumn: settingStartPosition.column + 1,
274
+ endLineNumber: settingStartPosition.lineNumber,
275
+ endColumn: settingStartPosition.column + length
276
+ },
277
+ range: {
278
+ startLineNumber: settingStartPosition.lineNumber,
279
+ startColumn: settingStartPosition.column,
280
+ endLineNumber: 0,
281
+ endColumn: 0
282
+ },
283
+ value: null,
284
+ valueRange: nullRange,
285
+ descriptionRanges: [],
286
+ overrides: [],
287
+ overrideOf: overrideSetting ?? undefined,
288
+ };
289
+ if (previousParents.length === settingsPropertyIndex + 1) {
290
+ settings.push(setting);
291
+ if (OVERRIDE_PROPERTY_REGEX.test(name)) {
292
+ overrideSetting = setting;
293
+ }
294
+ }
295
+ else {
296
+ overrideSetting.overrides.push(setting);
297
+ }
298
+ }
299
+ },
300
+ onObjectEnd: (offset, length) => {
301
+ currentParent = previousParents.pop();
302
+ if (settingsPropertyIndex !== -1 && (previousParents.length === settingsPropertyIndex + 1 || (previousParents.length === settingsPropertyIndex + 2 && overrideSetting !== null))) {
303
+ const setting = previousParents.length === settingsPropertyIndex + 1 ? settings[settings.length - 1] : overrideSetting.overrides[overrideSetting.overrides.length - 1];
304
+ if (setting) {
305
+ const valueEndPosition = model.getPositionAt(offset + length);
306
+ setting.valueRange = Object.assign(setting.valueRange, {
307
+ endLineNumber: valueEndPosition.lineNumber,
308
+ endColumn: valueEndPosition.column
309
+ });
310
+ setting.range = Object.assign(setting.range, {
311
+ endLineNumber: valueEndPosition.lineNumber,
312
+ endColumn: valueEndPosition.column
313
+ });
314
+ }
315
+ if (previousParents.length === settingsPropertyIndex + 1) {
316
+ overrideSetting = null;
317
+ }
318
+ }
319
+ if (previousParents.length === settingsPropertyIndex) {
320
+ const position = model.getPositionAt(offset);
321
+ range.endLineNumber = position.lineNumber;
322
+ range.endColumn = position.column;
323
+ settingsPropertyIndex = -1;
324
+ }
325
+ },
326
+ onArrayBegin: (offset, length) => {
327
+ const array = [];
328
+ onValue(array, offset, length);
329
+ previousParents.push(currentParent);
330
+ currentParent = array;
331
+ currentProperty = null;
332
+ },
333
+ onArrayEnd: (offset, length) => {
334
+ currentParent = previousParents.pop();
335
+ if (previousParents.length === settingsPropertyIndex + 1 || (previousParents.length === settingsPropertyIndex + 2 && overrideSetting !== null)) {
336
+ const setting = previousParents.length === settingsPropertyIndex + 1 ? settings[settings.length - 1] : overrideSetting.overrides[overrideSetting.overrides.length - 1];
337
+ if (setting) {
338
+ const valueEndPosition = model.getPositionAt(offset + length);
339
+ setting.valueRange = Object.assign(setting.valueRange, {
340
+ endLineNumber: valueEndPosition.lineNumber,
341
+ endColumn: valueEndPosition.column
342
+ });
343
+ setting.range = Object.assign(setting.range, {
344
+ endLineNumber: valueEndPosition.lineNumber,
345
+ endColumn: valueEndPosition.column
346
+ });
347
+ }
348
+ }
349
+ },
350
+ onLiteralValue: onValue,
351
+ onError: (error) => {
352
+ const setting = settings[settings.length - 1];
353
+ if (setting && (isNullRange(setting.range) || isNullRange(setting.keyRange) || isNullRange(setting.valueRange))) {
354
+ settings.pop();
355
+ }
356
+ }
357
+ };
358
+ if (!model.isDisposed()) {
359
+ visit(model.getValue(), visitor);
360
+ }
361
+ return settings.length > 0 ? [{
362
+ sections: [
363
+ {
364
+ settings
365
+ }
366
+ ],
367
+ title: '',
368
+ titleRange: nullRange,
369
+ range
370
+ }] : [];
371
+ }
372
+ class WorkspaceConfigurationEditorModel extends SettingsEditorModel {
373
+ constructor() {
374
+ super(...arguments);
375
+ this._configurationGroups = [];
376
+ }
377
+ get configurationGroups() {
378
+ return this._configurationGroups;
379
+ }
380
+ parse() {
381
+ super.parse();
382
+ this._configurationGroups = parse(this.settingsModel, (property, previousParents) => previousParents.length === 0);
383
+ }
384
+ isSettingsProperty(property, previousParents) {
385
+ return property === 'settings' && previousParents.length === 1;
386
+ }
387
+ }
388
+ class DefaultSettings extends Disposable {
389
+ constructor(_mostCommonlyUsedSettingsKeys, target) {
390
+ super();
391
+ this._mostCommonlyUsedSettingsKeys = _mostCommonlyUsedSettingsKeys;
392
+ this.target = target;
393
+ this._settingsByName = ( new Map());
394
+ this._onDidChange = this._register(( new Emitter()));
395
+ this.onDidChange = this._onDidChange.event;
396
+ }
397
+ getContent(forceUpdate = false) {
398
+ if (!this._content || forceUpdate) {
399
+ this.initialize();
400
+ }
401
+ return this._content;
402
+ }
403
+ getContentWithoutMostCommonlyUsed(forceUpdate = false) {
404
+ if (!this._contentWithoutMostCommonlyUsed || forceUpdate) {
405
+ this.initialize();
406
+ }
407
+ return this._contentWithoutMostCommonlyUsed;
408
+ }
409
+ getSettingsGroups(forceUpdate = false) {
410
+ if (!this._allSettingsGroups || forceUpdate) {
411
+ this.initialize();
412
+ }
413
+ return this._allSettingsGroups;
414
+ }
415
+ initialize() {
416
+ this._allSettingsGroups = this.parse();
417
+ this._content = this.toContent(this._allSettingsGroups, 0);
418
+ this._contentWithoutMostCommonlyUsed = this.toContent(this._allSettingsGroups, 1);
419
+ }
420
+ parse() {
421
+ const settingsGroups = this.getRegisteredGroups();
422
+ this.initAllSettingsMap(settingsGroups);
423
+ const mostCommonlyUsed = this.getMostCommonlyUsedSettings(settingsGroups);
424
+ return [mostCommonlyUsed, ...settingsGroups];
425
+ }
426
+ getRegisteredGroups() {
427
+ const configurations = ( Registry.as(Extensions.Configuration)).getConfigurations().slice();
428
+ const groups = this.removeEmptySettingsGroups(configurations.sort(this.compareConfigurationNodes)
429
+ .reduce((result, config, index, array) => this.parseConfig(config, result, array), []));
430
+ return this.sortGroups(groups);
431
+ }
432
+ sortGroups(groups) {
433
+ groups.forEach(group => {
434
+ group.sections.forEach(section => {
435
+ section.settings.sort((a, b) => a.key.localeCompare(b.key));
436
+ });
437
+ });
438
+ return groups;
439
+ }
440
+ initAllSettingsMap(allSettingsGroups) {
441
+ this._settingsByName = ( new Map());
442
+ for (const group of allSettingsGroups) {
443
+ for (const section of group.sections) {
444
+ for (const setting of section.settings) {
445
+ this._settingsByName.set(setting.key, setting);
446
+ }
447
+ }
448
+ }
449
+ }
450
+ getMostCommonlyUsedSettings(allSettingsGroups) {
451
+ const settings = coalesce(( this._mostCommonlyUsedSettingsKeys.map(key => {
452
+ const setting = this._settingsByName.get(key);
453
+ if (setting) {
454
+ return {
455
+ description: setting.description,
456
+ key: setting.key,
457
+ value: setting.value,
458
+ keyRange: nullRange,
459
+ range: nullRange,
460
+ valueRange: nullRange,
461
+ overrides: [],
462
+ scope: 4 ,
463
+ type: setting.type,
464
+ enum: setting.enum,
465
+ enumDescriptions: setting.enumDescriptions,
466
+ descriptionRanges: []
467
+ };
468
+ }
469
+ return null;
470
+ })));
471
+ return {
472
+ id: 'mostCommonlyUsed',
473
+ range: nullRange,
474
+ title: ( localizeWithPath(
475
+ 'vs/workbench/services/preferences/common/preferencesModels',
476
+ 'commonlyUsed',
477
+ "Commonly Used"
478
+ )),
479
+ titleRange: nullRange,
480
+ sections: [
481
+ {
482
+ settings
483
+ }
484
+ ]
485
+ };
486
+ }
487
+ parseConfig(config, result, configurations, settingsGroup, seenSettings) {
488
+ seenSettings = seenSettings ? seenSettings : {};
489
+ let title = config.title;
490
+ if (!title) {
491
+ const configWithTitleAndSameId = configurations.find(c => (c.id === config.id) && c.title);
492
+ if (configWithTitleAndSameId) {
493
+ title = configWithTitleAndSameId.title;
494
+ }
495
+ }
496
+ if (title) {
497
+ if (!settingsGroup) {
498
+ settingsGroup = result.find(g => g.title === title && g.extensionInfo?.id === config.extensionInfo?.id);
499
+ if (!settingsGroup) {
500
+ settingsGroup = { sections: [{ settings: [] }], id: config.id || '', title: title || '', titleRange: nullRange, order: config.order, range: nullRange, extensionInfo: config.extensionInfo };
501
+ result.push(settingsGroup);
502
+ }
503
+ }
504
+ else {
505
+ settingsGroup.sections[settingsGroup.sections.length - 1].title = title;
506
+ }
507
+ }
508
+ if (config.properties) {
509
+ if (!settingsGroup) {
510
+ settingsGroup = { sections: [{ settings: [] }], id: config.id || '', title: config.id || '', titleRange: nullRange, order: config.order, range: nullRange, extensionInfo: config.extensionInfo };
511
+ result.push(settingsGroup);
512
+ }
513
+ const configurationSettings = [];
514
+ for (const setting of [...settingsGroup.sections[settingsGroup.sections.length - 1].settings, ...this.parseSettings(config)]) {
515
+ if (!seenSettings[setting.key]) {
516
+ configurationSettings.push(setting);
517
+ seenSettings[setting.key] = true;
518
+ }
519
+ }
520
+ if (configurationSettings.length) {
521
+ settingsGroup.sections[settingsGroup.sections.length - 1].settings = configurationSettings;
522
+ }
523
+ }
524
+ config.allOf?.forEach(c => this.parseConfig(c, result, configurations, settingsGroup, seenSettings));
525
+ return result;
526
+ }
527
+ removeEmptySettingsGroups(settingsGroups) {
528
+ const result = [];
529
+ for (const settingsGroup of settingsGroups) {
530
+ settingsGroup.sections = settingsGroup.sections.filter(section => section.settings.length > 0);
531
+ if (settingsGroup.sections.length) {
532
+ result.push(settingsGroup);
533
+ }
534
+ }
535
+ return result;
536
+ }
537
+ parseSettings(config) {
538
+ const result = [];
539
+ const settingsObject = config.properties;
540
+ const extensionInfo = config.extensionInfo;
541
+ const categoryLabel = config.extensionInfo?.id === config.id ? config.title : config.id;
542
+ for (const key in settingsObject) {
543
+ const prop = settingsObject[key];
544
+ if (this.matchesScope(prop)) {
545
+ const value = prop.default;
546
+ let description = (prop.markdownDescription || prop.description || '');
547
+ if (typeof description !== 'string') {
548
+ description = '';
549
+ }
550
+ const descriptionLines = description.split('\n');
551
+ const overrides = OVERRIDE_PROPERTY_REGEX.test(key) ? this.parseOverrideSettings(prop.default) : [];
552
+ let listItemType;
553
+ if (prop.type === 'array' && prop.items && !Array.isArray(prop.items) && prop.items.type) {
554
+ if (prop.items.enum) {
555
+ listItemType = 'enum';
556
+ }
557
+ else if (!Array.isArray(prop.items.type)) {
558
+ listItemType = prop.items.type;
559
+ }
560
+ }
561
+ const objectProperties = prop.type === 'object' ? prop.properties : undefined;
562
+ const objectPatternProperties = prop.type === 'object' ? prop.patternProperties : undefined;
563
+ const objectAdditionalProperties = prop.type === 'object' ? prop.additionalProperties : undefined;
564
+ let enumToUse = prop.enum;
565
+ let enumDescriptions = prop.markdownEnumDescriptions ?? prop.enumDescriptions;
566
+ let enumDescriptionsAreMarkdown = !!prop.markdownEnumDescriptions;
567
+ if (listItemType === 'enum' && !Array.isArray(prop.items)) {
568
+ enumToUse = prop.items.enum;
569
+ enumDescriptions = prop.items.markdownEnumDescriptions ?? prop.items.enumDescriptions;
570
+ enumDescriptionsAreMarkdown = !!prop.items.markdownEnumDescriptions;
571
+ }
572
+ let allKeysAreBoolean = false;
573
+ if (prop.type === 'object' && !prop.additionalProperties && prop.properties && ( Object.keys(prop.properties)).length) {
574
+ allKeysAreBoolean = ( Object.keys(prop.properties)).every(key => {
575
+ return prop.properties[key].type === 'boolean';
576
+ });
577
+ }
578
+ let isLanguageTagSetting = false;
579
+ if (OVERRIDE_PROPERTY_REGEX.test(key)) {
580
+ isLanguageTagSetting = true;
581
+ }
582
+ let defaultValueSource;
583
+ if (!isLanguageTagSetting) {
584
+ const registeredConfigurationProp = prop;
585
+ if (registeredConfigurationProp && registeredConfigurationProp.defaultValueSource) {
586
+ defaultValueSource = registeredConfigurationProp.defaultValueSource;
587
+ }
588
+ }
589
+ if (!enumToUse && (prop.enumItemLabels || enumDescriptions || enumDescriptionsAreMarkdown)) {
590
+ console.error(`The setting ${key} has enum-related fields, but doesn't have an enum field. This setting may render improperly in the Settings editor.`);
591
+ }
592
+ result.push({
593
+ key,
594
+ value,
595
+ description: descriptionLines,
596
+ descriptionIsMarkdown: !!prop.markdownDescription,
597
+ range: nullRange,
598
+ keyRange: nullRange,
599
+ valueRange: nullRange,
600
+ descriptionRanges: [],
601
+ overrides,
602
+ scope: prop.scope,
603
+ type: prop.type,
604
+ arrayItemType: listItemType,
605
+ objectProperties,
606
+ objectPatternProperties,
607
+ objectAdditionalProperties,
608
+ enum: enumToUse,
609
+ enumDescriptions: enumDescriptions,
610
+ enumDescriptionsAreMarkdown: enumDescriptionsAreMarkdown,
611
+ enumItemLabels: prop.enumItemLabels,
612
+ uniqueItems: prop.uniqueItems,
613
+ tags: prop.tags,
614
+ disallowSyncIgnore: prop.disallowSyncIgnore,
615
+ restricted: prop.restricted,
616
+ extensionInfo: extensionInfo,
617
+ deprecationMessage: prop.markdownDeprecationMessage || prop.deprecationMessage,
618
+ deprecationMessageIsMarkdown: !!prop.markdownDeprecationMessage,
619
+ validator: createValidator(prop),
620
+ allKeysAreBoolean,
621
+ editPresentation: prop.editPresentation,
622
+ order: prop.order,
623
+ nonLanguageSpecificDefaultValueSource: defaultValueSource,
624
+ isLanguageTagSetting,
625
+ categoryLabel
626
+ });
627
+ }
628
+ }
629
+ return result;
630
+ }
631
+ parseOverrideSettings(overrideSettings) {
632
+ return ( ( Object.keys(overrideSettings)).map((key) => ({
633
+ key,
634
+ value: overrideSettings[key],
635
+ description: [],
636
+ descriptionIsMarkdown: false,
637
+ range: nullRange,
638
+ keyRange: nullRange,
639
+ valueRange: nullRange,
640
+ descriptionRanges: [],
641
+ overrides: []
642
+ })));
643
+ }
644
+ matchesScope(property) {
645
+ if (!property.scope) {
646
+ return true;
647
+ }
648
+ if (this.target === 6 ) {
649
+ return FOLDER_SCOPES.indexOf(property.scope) !== -1;
650
+ }
651
+ if (this.target === 5 ) {
652
+ return WORKSPACE_SCOPES.indexOf(property.scope) !== -1;
653
+ }
654
+ return true;
655
+ }
656
+ compareConfigurationNodes(c1, c2) {
657
+ if (typeof c1.order !== 'number') {
658
+ return 1;
659
+ }
660
+ if (typeof c2.order !== 'number') {
661
+ return -1;
662
+ }
663
+ if (c1.order === c2.order) {
664
+ const title1 = c1.title || '';
665
+ const title2 = c2.title || '';
666
+ return title1.localeCompare(title2);
667
+ }
668
+ return c1.order - c2.order;
669
+ }
670
+ toContent(settingsGroups, startIndex) {
671
+ const builder = ( new SettingsContentBuilder());
672
+ for (let i = startIndex; i < settingsGroups.length; i++) {
673
+ builder.pushGroup(settingsGroups[i], i === startIndex, i === settingsGroups.length - 1);
674
+ }
675
+ return builder.getContent();
676
+ }
677
+ }
678
+ class DefaultSettingsEditorModel extends AbstractSettingsModel {
679
+ constructor(_uri, reference, defaultSettings) {
680
+ super();
681
+ this._uri = _uri;
682
+ this.defaultSettings = defaultSettings;
683
+ this._onDidChangeGroups = this._register(( new Emitter()));
684
+ this.onDidChangeGroups = this._onDidChangeGroups.event;
685
+ this._register(defaultSettings.onDidChange(() => this._onDidChangeGroups.fire()));
686
+ this._model = reference.object.textEditorModel;
687
+ this._register(this.onWillDispose(() => reference.dispose()));
688
+ }
689
+ get uri() {
690
+ return this._uri;
691
+ }
692
+ get target() {
693
+ return this.defaultSettings.target;
694
+ }
695
+ get settingsGroups() {
696
+ return this.defaultSettings.getSettingsGroups();
697
+ }
698
+ get filterGroups() {
699
+ return this.settingsGroups.slice(1);
700
+ }
701
+ update() {
702
+ if (this._model.isDisposed()) {
703
+ return undefined;
704
+ }
705
+ const resultGroups = [...( this._currentResultGroups.values())]
706
+ .sort((a, b) => a.order - b.order);
707
+ const nonEmptyResultGroups = resultGroups.filter(group => group.result.filterMatches.length);
708
+ const startLine = tail(this.settingsGroups).range.endLineNumber + 2;
709
+ const { settingsGroups: filteredGroups, matches } = this.writeResultGroups(nonEmptyResultGroups, startLine);
710
+ const metadata = this.collectMetadata(resultGroups);
711
+ return resultGroups.length ?
712
+ {
713
+ allGroups: this.settingsGroups,
714
+ filteredGroups,
715
+ matches,
716
+ metadata
717
+ } :
718
+ undefined;
719
+ }
720
+ writeResultGroups(groups, startLine) {
721
+ const contentBuilderOffset = startLine - 1;
722
+ const builder = ( new SettingsContentBuilder(contentBuilderOffset));
723
+ const settingsGroups = [];
724
+ const matches = [];
725
+ if (groups.length) {
726
+ builder.pushLine(',');
727
+ groups.forEach(resultGroup => {
728
+ const settingsGroup = this.getGroup(resultGroup);
729
+ settingsGroups.push(settingsGroup);
730
+ matches.push(...this.writeSettingsGroupToBuilder(builder, settingsGroup, resultGroup.result.filterMatches));
731
+ });
732
+ }
733
+ const groupContent = builder.getContent() + '\n';
734
+ const groupEndLine = this._model.getLineCount();
735
+ const cursorPosition = ( new Selection(startLine, 1, startLine, 1));
736
+ const edit = {
737
+ text: groupContent,
738
+ forceMoveMarkers: true,
739
+ range: ( new Range(startLine, 1, groupEndLine, 1))
740
+ };
741
+ this._model.pushEditOperations([cursorPosition], [edit], () => [cursorPosition]);
742
+ const tokenizeTo = Math.min(startLine + 60, this._model.getLineCount());
743
+ this._model.tokenization.forceTokenization(tokenizeTo);
744
+ return { matches, settingsGroups };
745
+ }
746
+ writeSettingsGroupToBuilder(builder, settingsGroup, filterMatches) {
747
+ filterMatches = ( filterMatches
748
+ .map(filteredMatch => {
749
+ return {
750
+ setting: filteredMatch.setting,
751
+ score: filteredMatch.score,
752
+ matches: filteredMatch.matches && ( filteredMatch.matches.map(match => {
753
+ return ( new Range(
754
+ match.startLineNumber - filteredMatch.setting.range.startLineNumber,
755
+ match.startColumn,
756
+ match.endLineNumber - filteredMatch.setting.range.startLineNumber,
757
+ match.endColumn
758
+ ));
759
+ }))
760
+ };
761
+ }));
762
+ builder.pushGroup(settingsGroup);
763
+ const fixedMatches = flatten(( ( filterMatches
764
+ .map(m => m.matches || []))
765
+ .map((settingMatches, i) => {
766
+ const setting = settingsGroup.sections[0].settings[i];
767
+ return ( settingMatches.map(range => {
768
+ return ( new Range(
769
+ range.startLineNumber + setting.range.startLineNumber,
770
+ range.startColumn,
771
+ range.endLineNumber + setting.range.startLineNumber,
772
+ range.endColumn
773
+ ));
774
+ }));
775
+ })));
776
+ return fixedMatches;
777
+ }
778
+ copySetting(setting) {
779
+ return {
780
+ description: setting.description,
781
+ scope: setting.scope,
782
+ type: setting.type,
783
+ enum: setting.enum,
784
+ enumDescriptions: setting.enumDescriptions,
785
+ key: setting.key,
786
+ value: setting.value,
787
+ range: setting.range,
788
+ overrides: [],
789
+ overrideOf: setting.overrideOf,
790
+ tags: setting.tags,
791
+ deprecationMessage: setting.deprecationMessage,
792
+ keyRange: nullRange,
793
+ valueRange: nullRange,
794
+ descriptionIsMarkdown: undefined,
795
+ descriptionRanges: []
796
+ };
797
+ }
798
+ findValueMatches(filter, setting) {
799
+ return [];
800
+ }
801
+ getPreference(key) {
802
+ for (const group of this.settingsGroups) {
803
+ for (const section of group.sections) {
804
+ for (const setting of section.settings) {
805
+ if (setting.key === key) {
806
+ return setting;
807
+ }
808
+ }
809
+ }
810
+ }
811
+ return undefined;
812
+ }
813
+ getGroup(resultGroup) {
814
+ return {
815
+ id: resultGroup.id,
816
+ range: nullRange,
817
+ title: resultGroup.label,
818
+ titleRange: nullRange,
819
+ sections: [
820
+ {
821
+ settings: ( resultGroup.result.filterMatches.map(m => this.copySetting(m.setting)))
822
+ }
823
+ ]
824
+ };
825
+ }
826
+ }
827
+ class SettingsContentBuilder {
828
+ get lineCountWithOffset() {
829
+ return this._contentByLines.length + this._rangeOffset;
830
+ }
831
+ get lastLine() {
832
+ return this._contentByLines[this._contentByLines.length - 1] || '';
833
+ }
834
+ constructor(_rangeOffset = 0) {
835
+ this._rangeOffset = _rangeOffset;
836
+ this._contentByLines = [];
837
+ }
838
+ pushLine(...lineText) {
839
+ this._contentByLines.push(...lineText);
840
+ }
841
+ pushGroup(settingsGroups, isFirst, isLast) {
842
+ this._contentByLines.push(isFirst ? '[{' : '{');
843
+ const lastSetting = this._pushGroup(settingsGroups, ' ');
844
+ if (lastSetting) {
845
+ const lineIdx = lastSetting.range.endLineNumber - this._rangeOffset;
846
+ const content = this._contentByLines[lineIdx - 2];
847
+ this._contentByLines[lineIdx - 2] = content.substring(0, content.length - 1);
848
+ }
849
+ this._contentByLines.push(isLast ? '}]' : '},');
850
+ }
851
+ _pushGroup(group, indent) {
852
+ let lastSetting = null;
853
+ const groupStart = this.lineCountWithOffset + 1;
854
+ for (const section of group.sections) {
855
+ if (section.title) {
856
+ const sectionTitleStart = this.lineCountWithOffset + 1;
857
+ this.addDescription([section.title], indent, this._contentByLines);
858
+ section.titleRange = { startLineNumber: sectionTitleStart, startColumn: 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length };
859
+ }
860
+ if (section.settings.length) {
861
+ for (const setting of section.settings) {
862
+ this.pushSetting(setting, indent);
863
+ lastSetting = setting;
864
+ }
865
+ }
866
+ }
867
+ group.range = { startLineNumber: groupStart, startColumn: 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length };
868
+ return lastSetting;
869
+ }
870
+ getContent() {
871
+ return this._contentByLines.join('\n');
872
+ }
873
+ pushSetting(setting, indent) {
874
+ const settingStart = this.lineCountWithOffset + 1;
875
+ this.pushSettingDescription(setting, indent);
876
+ let preValueContent = indent;
877
+ const keyString = JSON.stringify(setting.key);
878
+ preValueContent += keyString;
879
+ setting.keyRange = { startLineNumber: this.lineCountWithOffset + 1, startColumn: preValueContent.indexOf(setting.key) + 1, endLineNumber: this.lineCountWithOffset + 1, endColumn: setting.key.length };
880
+ preValueContent += ': ';
881
+ const valueStart = this.lineCountWithOffset + 1;
882
+ this.pushValue(setting, preValueContent, indent);
883
+ setting.valueRange = { startLineNumber: valueStart, startColumn: preValueContent.length + 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length + 1 };
884
+ this._contentByLines[this._contentByLines.length - 1] += ',';
885
+ this._contentByLines.push('');
886
+ setting.range = { startLineNumber: settingStart, startColumn: 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length };
887
+ }
888
+ pushSettingDescription(setting, indent) {
889
+ const fixSettingLink = (line) => line.replace(/`#(.*)#`/g, (match, settingName) => `\`${settingName}\``);
890
+ setting.descriptionRanges = [];
891
+ const descriptionPreValue = indent + '// ';
892
+ const deprecationMessageLines = setting.deprecationMessage?.split(/\n/g) ?? [];
893
+ for (let line of [...deprecationMessageLines, ...setting.description]) {
894
+ line = fixSettingLink(line);
895
+ this._contentByLines.push(descriptionPreValue + line);
896
+ setting.descriptionRanges.push({ startLineNumber: this.lineCountWithOffset, startColumn: this.lastLine.indexOf(line) + 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length });
897
+ }
898
+ if (setting.enum && setting.enumDescriptions?.some(desc => !!desc)) {
899
+ setting.enumDescriptions.forEach((desc, i) => {
900
+ const displayEnum = escapeInvisibleChars(String(setting.enum[i]));
901
+ const line = desc ?
902
+ `${displayEnum}: ${fixSettingLink(desc)}` :
903
+ displayEnum;
904
+ const lines = line.split(/\n/g);
905
+ lines[0] = ' - ' + lines[0];
906
+ this._contentByLines.push(...( lines.map(l => `${indent}// ${l}`)));
907
+ setting.descriptionRanges.push({ startLineNumber: this.lineCountWithOffset, startColumn: this.lastLine.indexOf(line) + 1, endLineNumber: this.lineCountWithOffset, endColumn: this.lastLine.length });
908
+ });
909
+ }
910
+ }
911
+ pushValue(setting, preValueConent, indent) {
912
+ const valueString = JSON.stringify(setting.value, null, indent);
913
+ if (valueString && (typeof setting.value === 'object')) {
914
+ if (setting.overrides && setting.overrides.length) {
915
+ this._contentByLines.push(preValueConent + ' {');
916
+ for (const subSetting of setting.overrides) {
917
+ this.pushSetting(subSetting, indent + indent);
918
+ this._contentByLines.pop();
919
+ }
920
+ const lastSetting = setting.overrides[setting.overrides.length - 1];
921
+ const content = this._contentByLines[lastSetting.range.endLineNumber - 2];
922
+ this._contentByLines[lastSetting.range.endLineNumber - 2] = content.substring(0, content.length - 1);
923
+ this._contentByLines.push(indent + '}');
924
+ }
925
+ else {
926
+ const mulitLineValue = valueString.split('\n');
927
+ this._contentByLines.push(preValueConent + mulitLineValue[0]);
928
+ for (let i = 1; i < mulitLineValue.length; i++) {
929
+ this._contentByLines.push(indent + mulitLineValue[i]);
930
+ }
931
+ }
932
+ }
933
+ else {
934
+ this._contentByLines.push(preValueConent + valueString);
935
+ }
936
+ }
937
+ addDescription(description, indent, result) {
938
+ for (const line of description) {
939
+ result.push(indent + '// ' + line);
940
+ }
941
+ }
942
+ }
943
+ class RawSettingsContentBuilder extends SettingsContentBuilder {
944
+ constructor(indent = '\t') {
945
+ super(0);
946
+ this.indent = indent;
947
+ }
948
+ pushGroup(settingsGroups) {
949
+ this._pushGroup(settingsGroups, this.indent);
950
+ }
951
+ }
952
+ class DefaultRawSettingsEditorModel extends Disposable {
953
+ constructor(defaultSettings) {
954
+ super();
955
+ this.defaultSettings = defaultSettings;
956
+ this._content = null;
957
+ this._register(defaultSettings.onDidChange(() => this._content = null));
958
+ }
959
+ get content() {
960
+ if (this._content === null) {
961
+ const builder = ( new RawSettingsContentBuilder());
962
+ builder.pushLine('{');
963
+ for (const settingsGroup of this.defaultSettings.getRegisteredGroups()) {
964
+ builder.pushGroup(settingsGroup);
965
+ }
966
+ builder.pushLine('}');
967
+ this._content = builder.getContent();
968
+ }
969
+ return this._content;
970
+ }
971
+ }
972
+ function escapeInvisibleChars(enumValue) {
973
+ return enumValue && enumValue
974
+ .replace(/\n/g, '\\n')
975
+ .replace(/\r/g, '\\r');
976
+ }
977
+ function defaultKeybindingsContents(keybindingService) {
978
+ const defaultsHeader = '// ' + ( localizeWithPath(
979
+ 'vs/workbench/services/preferences/common/preferencesModels',
980
+ 'defaultKeybindingsHeader',
981
+ "Override key bindings by placing them into your key bindings file."
982
+ ));
983
+ return defaultsHeader + '\n' + keybindingService.getDefaultKeybindingsContent();
984
+ }
985
+ let DefaultKeybindingsEditorModel = class DefaultKeybindingsEditorModel {
986
+ constructor(_uri, keybindingService) {
987
+ this._uri = _uri;
988
+ this.keybindingService = keybindingService;
989
+ }
990
+ get uri() {
991
+ return this._uri;
992
+ }
993
+ get content() {
994
+ if (!this._content) {
995
+ this._content = defaultKeybindingsContents(this.keybindingService);
996
+ }
997
+ return this._content;
998
+ }
999
+ getPreference() {
1000
+ return null;
1001
+ }
1002
+ dispose() {
1003
+ }
1004
+ };
1005
+ DefaultKeybindingsEditorModel = ( __decorate([
1006
+ ( __param(1, IKeybindingService))
1007
+ ], DefaultKeybindingsEditorModel));
1008
+ export { DefaultKeybindingsEditorModel, DefaultRawSettingsEditorModel, DefaultSettings, DefaultSettingsEditorModel, Settings2EditorModel, SettingsEditorModel, WorkspaceConfigurationEditorModel, defaultKeybindingsContents, nullRange };