monaco-editor-core 0.54.0 → 0.55.0-dev-20251007

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 (251) hide show
  1. package/esm/nls.messages.de.js +1 -1
  2. package/esm/nls.messages.es.js +1 -1
  3. package/esm/nls.messages.fr.js +1 -1
  4. package/esm/nls.messages.it.js +1 -1
  5. package/esm/nls.messages.ja.js +1 -1
  6. package/esm/nls.messages.ko.js +1 -1
  7. package/esm/nls.messages.ru.js +1 -1
  8. package/esm/nls.messages.zh-cn.js +1 -1
  9. package/esm/nls.messages.zh-tw.js +1 -1
  10. package/esm/vs/base/browser/canIUse.js +1 -0
  11. package/esm/vs/base/browser/canIUse.js.map +1 -1
  12. package/esm/vs/base/browser/dom.js +9 -0
  13. package/esm/vs/base/browser/dom.js.map +1 -1
  14. package/esm/vs/base/browser/fastDomNode.js.map +1 -1
  15. package/esm/vs/base/browser/mouseEvent.js +3 -0
  16. package/esm/vs/base/browser/mouseEvent.js.map +1 -1
  17. package/esm/vs/base/browser/trustedTypes.js +2 -0
  18. package/esm/vs/base/browser/trustedTypes.js.map +1 -1
  19. package/esm/vs/base/browser/ui/list/listWidget.js +5 -5
  20. package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
  21. package/esm/vs/base/browser/ui/sash/sash.css +1 -1
  22. package/esm/vs/base/browser/ui/sash/sash.js +4 -0
  23. package/esm/vs/base/browser/ui/sash/sash.js.map +1 -1
  24. package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +1 -1
  25. package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
  26. package/esm/vs/base/browser/ui/table/table.css +2 -2
  27. package/esm/vs/base/browser/ui/tree/abstractTree.js +7 -3
  28. package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
  29. package/esm/vs/base/browser/ui/tree/asyncDataTree.js +4 -0
  30. package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
  31. package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -0
  32. package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
  33. package/esm/vs/base/browser/ui/tree/media/tree.css +2 -2
  34. package/esm/vs/base/browser/webWorkerFactory.js +3 -0
  35. package/esm/vs/base/browser/webWorkerFactory.js.map +1 -1
  36. package/esm/vs/base/common/buffer.js.map +1 -1
  37. package/esm/vs/base/common/decorators.js +1 -0
  38. package/esm/vs/base/common/decorators.js.map +1 -1
  39. package/esm/vs/base/common/errors.js +1 -0
  40. package/esm/vs/base/common/errors.js.map +1 -1
  41. package/esm/vs/base/common/glob.js +1 -1
  42. package/esm/vs/base/common/glob.js.map +1 -1
  43. package/esm/vs/base/common/hash.js.map +1 -1
  44. package/esm/vs/base/common/hotReload.js +2 -0
  45. package/esm/vs/base/common/hotReload.js.map +1 -1
  46. package/esm/vs/base/common/hotReloadHelpers.js +1 -0
  47. package/esm/vs/base/common/hotReloadHelpers.js.map +1 -1
  48. package/esm/vs/base/common/lifecycle.js +19 -0
  49. package/esm/vs/base/common/lifecycle.js.map +1 -1
  50. package/esm/vs/base/common/map.js.map +1 -1
  51. package/esm/vs/base/common/marshalling.js +4 -0
  52. package/esm/vs/base/common/marshalling.js.map +1 -1
  53. package/esm/vs/base/common/network.js +1 -0
  54. package/esm/vs/base/common/network.js.map +1 -1
  55. package/esm/vs/base/common/objects.js +1 -0
  56. package/esm/vs/base/common/objects.js.map +1 -1
  57. package/esm/vs/base/common/observableInternal/changeTracker.js +4 -0
  58. package/esm/vs/base/common/observableInternal/changeTracker.js.map +1 -1
  59. package/esm/vs/base/common/observableInternal/debugLocation.js +1 -0
  60. package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
  61. package/esm/vs/base/common/observableInternal/debugName.js +1 -0
  62. package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
  63. package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js +1 -0
  64. package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js.map +1 -1
  65. package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js +1 -0
  66. package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js.map +1 -1
  67. package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js +1 -0
  68. package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
  69. package/esm/vs/base/common/observableInternal/observables/derived.js +7 -1
  70. package/esm/vs/base/common/observableInternal/observables/derived.js.map +1 -1
  71. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +2 -0
  72. package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
  73. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -0
  74. package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
  75. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +1 -0
  76. package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
  77. package/esm/vs/base/common/process.js +1 -0
  78. package/esm/vs/base/common/process.js.map +1 -1
  79. package/esm/vs/base/common/product.js.map +1 -1
  80. package/esm/vs/base/common/types.js +2 -0
  81. package/esm/vs/base/common/types.js.map +1 -1
  82. package/esm/vs/base/common/worker/webWorker.js +26 -14
  83. package/esm/vs/base/common/worker/webWorker.js.map +1 -1
  84. package/esm/vs/base/parts/sandbox/common/sandboxTypes.js +2 -0
  85. package/esm/vs/base/parts/sandbox/common/sandboxTypes.js.map +1 -0
  86. package/esm/vs/editor/browser/config/editorConfiguration.js +3 -2
  87. package/esm/vs/editor/browser/config/editorConfiguration.js.map +1 -1
  88. package/esm/vs/editor/browser/config/migrateOptions.js +1 -1
  89. package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
  90. package/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js.map +1 -1
  91. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -0
  92. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js.map +1 -1
  93. package/esm/vs/editor/browser/controller/mouseHandler.js +2 -1
  94. package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
  95. package/esm/vs/editor/browser/controller/mouseTarget.js +7 -0
  96. package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
  97. package/esm/vs/editor/browser/controller/pointerHandler.js.map +1 -1
  98. package/esm/vs/editor/browser/coreCommands.js.map +1 -1
  99. package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
  100. package/esm/vs/editor/browser/editorDom.js.map +1 -1
  101. package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
  102. package/esm/vs/editor/browser/gpu/gpuUtils.js +1 -0
  103. package/esm/vs/editor/browser/gpu/gpuUtils.js.map +1 -1
  104. package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -0
  105. package/esm/vs/editor/browser/gpu/viewGpuContext.js.map +1 -1
  106. package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
  107. package/esm/vs/editor/browser/services/bulkEditService.js.map +1 -1
  108. package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
  109. package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
  110. package/esm/vs/editor/browser/services/hoverService/hover.css +2 -0
  111. package/esm/vs/editor/browser/services/hoverService/hoverService.js.map +1 -1
  112. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +1 -1
  113. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
  114. package/esm/vs/editor/browser/services/inlineCompletionsService.js +8 -8
  115. package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
  116. package/esm/vs/editor/browser/services/openerService.js.map +1 -1
  117. package/esm/vs/editor/browser/view/viewLayer.js +1 -1
  118. package/esm/vs/editor/browser/view/viewLayer.js.map +1 -1
  119. package/esm/vs/editor/browser/view.js.map +1 -1
  120. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -0
  121. package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
  122. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +1 -0
  123. package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js.map +1 -1
  124. package/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js.map +1 -1
  125. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +4 -1
  126. package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
  127. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -0
  128. package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js.map +1 -1
  129. package/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js.map +1 -1
  130. package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
  131. package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js.map +1 -1
  132. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +1 -0
  133. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
  134. package/esm/vs/editor/browser/widget/diffEditor/utils.js +2 -0
  135. package/esm/vs/editor/browser/widget/diffEditor/utils.js.map +1 -1
  136. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -0
  137. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
  138. package/esm/vs/editor/common/config/editorOptions.js +122 -68
  139. package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
  140. package/esm/vs/editor/common/config/fontInfo.js +32 -16
  141. package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
  142. package/esm/vs/editor/common/config/fontInfoFromSettings.js +16 -0
  143. package/esm/vs/editor/common/config/fontInfoFromSettings.js.map +1 -0
  144. package/esm/vs/editor/common/core/edits/edit.js +1 -0
  145. package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
  146. package/esm/vs/editor/common/core/edits/stringEdit.js +2 -0
  147. package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
  148. package/esm/vs/editor/common/core/position.js +1 -1
  149. package/esm/vs/editor/common/core/position.js.map +1 -1
  150. package/esm/vs/editor/common/core/range.js +1 -1
  151. package/esm/vs/editor/common/core/range.js.map +1 -1
  152. package/esm/vs/editor/common/core/selection.js +1 -1
  153. package/esm/vs/editor/common/core/selection.js.map +1 -1
  154. package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
  155. package/esm/vs/editor/common/editorCommon.js.map +1 -1
  156. package/esm/vs/editor/common/languages.js +1 -1
  157. package/esm/vs/editor/common/languages.js.map +1 -1
  158. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +14 -0
  159. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js.map +1 -1
  160. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +2 -0
  161. package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js.map +1 -1
  162. package/esm/vs/editor/common/model/textModel.js +1 -1
  163. package/esm/vs/editor/common/model/textModel.js.map +1 -1
  164. package/esm/vs/editor/common/model.js +1 -1
  165. package/esm/vs/editor/common/model.js.map +1 -1
  166. package/esm/vs/editor/common/services/editorBaseApi.js.map +1 -1
  167. package/esm/vs/editor/common/services/editorWebWorker.js +1 -0
  168. package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
  169. package/esm/vs/editor/common/services/editorWorkerHost.js.map +1 -1
  170. package/esm/vs/editor/common/services/modelService.js +14 -21
  171. package/esm/vs/editor/common/services/modelService.js.map +1 -1
  172. package/esm/vs/editor/common/textModelEditSource.js +2 -0
  173. package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
  174. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +40 -1
  175. package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
  176. package/esm/vs/editor/common/viewModel/viewModelImpl.js +2 -1
  177. package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
  178. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +1 -1
  179. package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js.map +1 -1
  180. package/esm/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
  181. package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
  182. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +1 -0
  183. package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
  184. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -0
  185. package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
  186. package/esm/vs/editor/contrib/find/browser/findModel.js +1 -0
  187. package/esm/vs/editor/contrib/find/browser/findModel.js.map +1 -1
  188. package/esm/vs/editor/contrib/find/browser/findWidget.css +5 -5
  189. package/esm/vs/editor/contrib/folding/browser/folding.css +4 -4
  190. package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
  191. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
  192. package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js.map +1 -1
  193. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +30 -14
  194. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
  195. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +4 -3
  196. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  197. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +56 -7
  198. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  199. package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js +1 -0
  200. package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js.map +1 -1
  201. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -0
  202. package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
  203. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -0
  204. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
  205. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
  206. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
  207. package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
  208. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css +2 -0
  209. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +2 -0
  210. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
  211. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js.map +1 -1
  212. package/esm/vs/editor/editor.api.d.ts +8 -8
  213. package/esm/vs/editor/editor.api.js +4 -0
  214. package/esm/vs/editor/editor.api.js.map +1 -1
  215. package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
  216. package/esm/vs/editor/standalone/browser/standaloneEditor.js +37 -0
  217. package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
  218. package/esm/vs/editor/standalone/browser/standaloneLanguages.js +37 -0
  219. package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
  220. package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
  221. package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
  222. package/esm/vs/editor/standalone/common/monarch/monarchCompile.js +3 -0
  223. package/esm/vs/editor/standalone/common/monarch/monarchCompile.js.map +1 -1
  224. package/esm/vs/platform/accessibility/browser/accessibilityService.js +2 -2
  225. package/esm/vs/platform/accessibility/browser/accessibilityService.js.map +1 -1
  226. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  227. package/esm/vs/platform/commands/common/commands.js.map +1 -1
  228. package/esm/vs/platform/contextkey/common/contextkey.js +5 -0
  229. package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
  230. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -0
  231. package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
  232. package/esm/vs/platform/dnd/browser/dnd.js +2 -0
  233. package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
  234. package/esm/vs/platform/instantiation/common/descriptors.js.map +1 -1
  235. package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
  236. package/esm/vs/platform/instantiation/common/instantiationService.js +1 -0
  237. package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
  238. package/esm/vs/platform/list/browser/listService.js +5 -0
  239. package/esm/vs/platform/list/browser/listService.js.map +1 -1
  240. package/esm/vs/platform/log/common/log.js.map +1 -1
  241. package/esm/vs/platform/log/common/logService.js.map +1 -1
  242. package/esm/vs/platform/observable/common/wrapInHotClass.js +2 -0
  243. package/esm/vs/platform/observable/common/wrapInHotClass.js.map +1 -1
  244. package/esm/vs/platform/observable/common/wrapInReloadableClass.js +3 -0
  245. package/esm/vs/platform/observable/common/wrapInReloadableClass.js.map +1 -1
  246. package/esm/vs/platform/product/common/product.js +69 -0
  247. package/esm/vs/platform/product/common/product.js.map +1 -0
  248. package/esm/vs/platform/quickinput/browser/quickInput.js +1 -1
  249. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  250. package/monaco.d.ts +8 -8
  251. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/folding/browser/foldingDecorations.ts"],"names":[],"mappings":"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","file":"foldingDecorations.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { IModelDecorationOptions, IModelDecorationsChangeAccessor, MinimapPosition, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IDecorationProvider } from './foldingModel.js';\nimport { localize } from '../../../../nls.js';\nimport { editorSelectionBackground, iconForeground, registerColor, transparent } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\n\nconst foldBackground = registerColor('editor.foldBackground', { light: transparent(editorSelectionBackground, 0.3), dark: transparent(editorSelectionBackground, 0.3), hcDark: null, hcLight: null }, localize('foldBackgroundBackground', \"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor('editor.foldPlaceholderForeground', { light: '#808080', dark: '#808080', hcDark: null, hcLight: null }, localize('collapsedTextColor', \"Color of the collapsed text after the first line of a folded range.\"));\nregisterColor('editorGutter.foldingControlForeground', iconForeground, localize('editorGutter.foldingControlForeground', 'Color of the folding control in the editor gutter.'));\n\nexport const foldingExpandedIcon = registerIcon('folding-expanded', Codicon.chevronDown, localize('foldingExpandedIcon', 'Icon for expanded ranges in the editor glyph margin.'));\nexport const foldingCollapsedIcon = registerIcon('folding-collapsed', Codicon.chevronRight, localize('foldingCollapsedIcon', 'Icon for collapsed ranges in the editor glyph margin.'));\nexport const foldingManualCollapsedIcon = registerIcon('folding-manual-collapsed', foldingCollapsedIcon, localize('foldingManualCollapedIcon', 'Icon for manually collapsed ranges in the editor glyph margin.'));\nexport const foldingManualExpandedIcon = registerIcon('folding-manual-expanded', foldingExpandedIcon, localize('foldingManualExpandedIcon', 'Icon for manually expanded ranges in the editor glyph margin.'));\n\nconst foldedBackgroundMinimap = { color: themeColorFromId(foldBackground), position: MinimapPosition.Inline };\n\nconst collapsed = localize('linesCollapsed', \"Click to expand the range.\");\nconst expanded = localize('linesExpanded', \"Click to collapse the range.\");\n\nexport class FoldingDecorationProvider implements IDecorationProvider {\n\n\tprivate static readonly COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-collapsed-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon),\n\t});\n\n\tprivate static readonly COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-collapsed-highlighted-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tclassName: 'folded-background',\n\t\tminimap: foldedBackgroundMinimap,\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon)\n\t});\n\n\tprivate static readonly MANUALLY_COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-collapsed-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n\t});\n\n\tprivate static readonly MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-collapsed-highlighted-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tclassName: 'folded-background',\n\t\tminimap: foldedBackgroundMinimap,\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n\t});\n\n\tprivate static readonly NO_CONTROLS_COLLAPSED_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-no-controls-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t});\n\n\tprivate static readonly NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-no-controls-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tclassName: 'folded-background',\n\t\tminimap: foldedBackgroundMinimap,\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t});\n\n\tprivate static readonly EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-expanded-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-expanded-auto-hide-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly MANUALLY_EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-expanded-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingManualExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-expanded-auto-hide-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingManualExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly NO_CONTROLS_EXPANDED_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-no-controls-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true\n\t});\n\n\tprivate static readonly HIDDEN_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-hidden-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges\n\t});\n\n\tpublic showFoldingControls: 'always' | 'never' | 'mouseover' = 'mouseover';\n\n\tpublic showFoldingHighlights: boolean = true;\n\n\tconstructor(private readonly editor: ICodeEditor) {\n\t}\n\n\tgetDecorationOption(isCollapsed: boolean, isHidden: boolean, isManual: boolean): IModelDecorationOptions {\n\t\tif (isHidden) { // is inside another collapsed region\n\t\t\treturn FoldingDecorationProvider.HIDDEN_RANGE_DECORATION;\n\t\t}\n\t\tif (this.showFoldingControls === 'never') {\n\t\t\tif (isCollapsed) {\n\t\t\t\treturn this.showFoldingHighlights ? FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION : FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;\n\t\t\t}\n\t\t\treturn FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION;\n\t\t}\n\t\tif (isCollapsed) {\n\t\t\treturn isManual ?\n\t\t\t\t(this.showFoldingHighlights ? FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION)\n\t\t\t\t: (this.showFoldingHighlights ? FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION);\n\t\t} else if (this.showFoldingControls === 'mouseover') {\n\t\t\treturn isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;\n\t\t} else {\n\t\t\treturn isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION;\n\t\t}\n\t}\n\n\tchangeDecorations<T>(callback: (changeAccessor: IModelDecorationsChangeAccessor) => T): T {\n\t\treturn this.editor.changeDecorations(callback);\n\t}\n\n\tremoveDecorations(decorationIds: string[]): void {\n\t\tthis.editor.removeDecorations(decorationIds);\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/folding/browser/foldingDecorations.ts"],"names":[],"mappings":"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","file":"foldingDecorations.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { IModelDecorationOptions, IModelDecorationsChangeAccessor, MinimapPosition, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IDecorationProvider } from './foldingModel.js';\nimport { localize } from '../../../../nls.js';\nimport { editorSelectionBackground, iconForeground, registerColor, transparent } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\n\nconst foldBackground = registerColor('editor.foldBackground', { light: transparent(editorSelectionBackground, 0.3), dark: transparent(editorSelectionBackground, 0.3), hcDark: null, hcLight: null }, localize('foldBackgroundBackground', \"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor('editor.foldPlaceholderForeground', { light: '#808080', dark: '#808080', hcDark: null, hcLight: null }, localize('collapsedTextColor', \"Color of the collapsed text after the first line of a folded range.\"));\nregisterColor('editorGutter.foldingControlForeground', iconForeground, localize('editorGutter.foldingControlForeground', 'Color of the folding control in the editor gutter.'));\n\nexport const foldingExpandedIcon = registerIcon('folding-expanded', Codicon.chevronDown, localize('foldingExpandedIcon', 'Icon for expanded ranges in the editor glyph margin.'));\nexport const foldingCollapsedIcon = registerIcon('folding-collapsed', Codicon.chevronRight, localize('foldingCollapsedIcon', 'Icon for collapsed ranges in the editor glyph margin.'));\nexport const foldingManualCollapsedIcon = registerIcon('folding-manual-collapsed', foldingCollapsedIcon, localize('foldingManualCollapedIcon', 'Icon for manually collapsed ranges in the editor glyph margin.'));\nexport const foldingManualExpandedIcon = registerIcon('folding-manual-expanded', foldingExpandedIcon, localize('foldingManualExpandedIcon', 'Icon for manually expanded ranges in the editor glyph margin.'));\n\nconst foldedBackgroundMinimap = { color: themeColorFromId(foldBackground), position: MinimapPosition.Inline };\n\nconst collapsed = localize('linesCollapsed', \"Click to expand the range.\");\nconst expanded = localize('linesExpanded', \"Click to collapse the range.\");\n\nexport class FoldingDecorationProvider implements IDecorationProvider {\n\n\tprivate static readonly COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-collapsed-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon),\n\t});\n\n\tprivate static readonly COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-collapsed-highlighted-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tclassName: 'folded-background',\n\t\tminimap: foldedBackgroundMinimap,\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon)\n\t});\n\n\tprivate static readonly MANUALLY_COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-collapsed-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n\t});\n\n\tprivate static readonly MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-collapsed-highlighted-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tclassName: 'folded-background',\n\t\tminimap: foldedBackgroundMinimap,\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n\t});\n\n\tprivate static readonly NO_CONTROLS_COLLAPSED_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-no-controls-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t});\n\n\tprivate static readonly NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-no-controls-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tafterContentClassName: 'inline-folded',\n\t\tclassName: 'folded-background',\n\t\tminimap: foldedBackgroundMinimap,\n\t\tisWholeLine: true,\n\t\tlinesDecorationsTooltip: collapsed,\n\t});\n\n\tprivate static readonly EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-expanded-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-expanded-auto-hide-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly MANUALLY_EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-expanded-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingManualExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-manually-expanded-auto-hide-visual-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true,\n\t\tfirstLineDecorationClassName: ThemeIcon.asClassName(foldingManualExpandedIcon),\n\t\tlinesDecorationsTooltip: expanded,\n\t});\n\n\tprivate static readonly NO_CONTROLS_EXPANDED_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-no-controls-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,\n\t\tisWholeLine: true\n\t});\n\n\tprivate static readonly HIDDEN_RANGE_DECORATION = ModelDecorationOptions.register({\n\t\tdescription: 'folding-hidden-range-decoration',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges\n\t});\n\n\tpublic showFoldingControls: 'always' | 'never' | 'mouseover' = 'mouseover';\n\n\tpublic showFoldingHighlights: boolean = true;\n\n\tconstructor(private readonly editor: ICodeEditor) {\n\t}\n\n\tgetDecorationOption(isCollapsed: boolean, isHidden: boolean, isManual: boolean): IModelDecorationOptions {\n\t\tif (isHidden) { // is inside another collapsed region\n\t\t\treturn FoldingDecorationProvider.HIDDEN_RANGE_DECORATION;\n\t\t}\n\t\tif (this.showFoldingControls === 'never') {\n\t\t\tif (isCollapsed) {\n\t\t\t\treturn this.showFoldingHighlights ? FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION : FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;\n\t\t\t}\n\t\t\treturn FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION;\n\t\t}\n\t\tif (isCollapsed) {\n\t\t\treturn isManual ?\n\t\t\t\t(this.showFoldingHighlights ? FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION)\n\t\t\t\t: (this.showFoldingHighlights ? FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION);\n\t\t} else if (this.showFoldingControls === 'mouseover') {\n\t\t\treturn isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;\n\t\t} else {\n\t\t\treturn isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION;\n\t\t}\n\t}\n\n\tchangeDecorations<T>(callback: (changeAccessor: IModelDecorationsChangeAccessor) => T): T | null {\n\t\treturn this.editor.changeDecorations(callback);\n\t}\n\n\tremoveDecorations(decorationIds: string[]): void {\n\t\tthis.editor.removeDecorations(decorationIds);\n\t}\n}\n"]}
@@ -239,7 +239,7 @@ let GotoDefinitionAtPositionEditorContribution = class GotoDefinitionAtPositionE
239
239
  }
240
240
  return getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider, model, position, false, token);
241
241
  }
242
- gotoDefinition(position, openToSide) {
242
+ async gotoDefinition(position, openToSide) {
243
243
  this.editor.setPosition(position);
244
244
  return this.editor.invokeWithinContext((accessor) => {
245
245
  const canPeek = !openToSide && this.editor.getOption(101 /* EditorOption.definitionLinkOpensInPeek */) && !this.isInPeekEditor(accessor);
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts"],"names":[],"mappings":"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","file":"goToDefinitionAtPosition.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IKeyboardEvent } from '../../../../../base/browser/keyboardEvent.js';\nimport { CancelablePromise, createCancelablePromise } from '../../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../../base/common/errors.js';\nimport { MarkdownString } from '../../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../../base/common/lifecycle.js';\nimport './goToDefinitionAtPosition.css';\nimport { CodeEditorStateFlag, EditorState } from '../../../editorState/browser/editorState.js';\nimport { ICodeEditor, MouseTargetType } from '../../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../../browser/editorExtensions.js';\nimport { EditorOption } from '../../../../common/config/editorOptions.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { IRange, Range } from '../../../../common/core/range.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../../common/editorCommon.js';\nimport { IModelDeltaDecoration, ITextModel } from '../../../../common/model.js';\nimport { LocationLink } from '../../../../common/languages.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { ClickLinkGesture, ClickLinkKeyboardEvent, ClickLinkMouseEvent } from './clickLinkGesture.js';\nimport { PeekContext } from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { IContextKeyService } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { DefinitionAction } from '../goToCommands.js';\nimport { getDefinitionsAtPosition } from '../goToSymbol.js';\nimport { IWordAtPosition } from '../../../../common/core/wordHelper.js';\nimport { ILanguageFeaturesService } from '../../../../common/services/languageFeatures.js';\nimport { ModelDecorationInjectedTextOptions } from '../../../../common/model/textModel.js';\n\nexport class GotoDefinitionAtPositionEditorContribution implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.gotodefinitionatposition';\n\tstatic readonly MAX_SOURCE_PREVIEW_LINES = 8;\n\n\tprivate readonly editor: ICodeEditor;\n\tprivate readonly toUnhook = new DisposableStore();\n\tprivate readonly toUnhookForKeyboard = new DisposableStore();\n\tprivate readonly linkDecorations: IEditorDecorationsCollection;\n\tprivate currentWordAtPosition: IWordAtPosition | null = null;\n\tprivate previousPromise: CancelablePromise<LocationLink[] | null> | null = null;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@ITextModelService private readonly textModelResolverService: ITextModelService,\n\t\t@ILanguageService private readonly languageService: ILanguageService,\n\t\t@ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tthis.editor = editor;\n\t\tthis.linkDecorations = this.editor.createDecorationsCollection();\n\n\t\tconst linkGesture = new ClickLinkGesture(editor);\n\t\tthis.toUnhook.add(linkGesture);\n\n\t\tthis.toUnhook.add(linkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {\n\t\t\tthis.startFindDefinitionFromMouse(mouseEvent, keyboardEvent ?? undefined);\n\t\t}));\n\n\t\tthis.toUnhook.add(linkGesture.onExecute((mouseEvent: ClickLinkMouseEvent) => {\n\t\t\tif (this.isEnabled(mouseEvent)) {\n\t\t\t\tthis.gotoDefinition(mouseEvent.target.position!, mouseEvent.hasSideBySideModifier)\n\t\t\t\t\t.catch((error: Error) => {\n\t\t\t\t\t\tonUnexpectedError(error);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tthis.removeLinkDecorations();\n\t\t\t\t\t});\n\t\t\t}\n\t\t}));\n\n\t\tthis.toUnhook.add(linkGesture.onCancel(() => {\n\t\t\tthis.removeLinkDecorations();\n\t\t\tthis.currentWordAtPosition = null;\n\t\t}));\n\t}\n\n\tstatic get(editor: ICodeEditor): GotoDefinitionAtPositionEditorContribution | null {\n\t\treturn editor.getContribution<GotoDefinitionAtPositionEditorContribution>(GotoDefinitionAtPositionEditorContribution.ID);\n\t}\n\n\tasync startFindDefinitionFromCursor(position: Position) {\n\t\t// For issue: https://github.com/microsoft/vscode/issues/46257\n\t\t// equivalent to mouse move with meta/ctrl key\n\n\t\t// First find the definition and add decorations\n\t\t// to the editor to be shown with the content hover widget\n\t\tawait this.startFindDefinition(position);\n\t\t// Add listeners for editor cursor move and key down events\n\t\t// Dismiss the \"extended\" editor decorations when the user hides\n\t\t// the hover widget. There is no event for the widget itself so these\n\t\t// serve as a best effort. After removing the link decorations, the hover\n\t\t// widget is clean and will only show declarations per next request.\n\t\tthis.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(() => {\n\t\t\tthis.currentWordAtPosition = null;\n\t\t\tthis.removeLinkDecorations();\n\t\t\tthis.toUnhookForKeyboard.clear();\n\t\t}));\n\t\tthis.toUnhookForKeyboard.add(this.editor.onKeyDown((e: IKeyboardEvent) => {\n\t\t\tif (e) {\n\t\t\t\tthis.currentWordAtPosition = null;\n\t\t\t\tthis.removeLinkDecorations();\n\t\t\t\tthis.toUnhookForKeyboard.clear();\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate startFindDefinitionFromMouse(mouseEvent: ClickLinkMouseEvent, withKey?: ClickLinkKeyboardEvent): void {\n\n\t\t// check if we are active and on a content widget\n\t\tif (mouseEvent.target.type === MouseTargetType.CONTENT_WIDGET && this.linkDecorations.length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.editor.hasModel() || !this.isEnabled(mouseEvent, withKey)) {\n\t\t\tthis.currentWordAtPosition = null;\n\t\t\tthis.removeLinkDecorations();\n\t\t\treturn;\n\t\t}\n\n\t\tconst position = mouseEvent.target.position!;\n\n\t\tthis.startFindDefinition(position);\n\t}\n\n\tprivate async startFindDefinition(position: Position): Promise<void> {\n\n\t\t// Dispose listeners for updating decorations when using keyboard to show definition hover\n\t\tthis.toUnhookForKeyboard.clear();\n\n\t\t// Find word at mouse position\n\t\tconst word = position ? this.editor.getModel()?.getWordAtPosition(position) : null;\n\t\tif (!word) {\n\t\t\tthis.currentWordAtPosition = null;\n\t\t\tthis.removeLinkDecorations();\n\t\t\treturn;\n\t\t}\n\n\t\t// Return early if word at position is still the same\n\t\tif (this.currentWordAtPosition && this.currentWordAtPosition.startColumn === word.startColumn && this.currentWordAtPosition.endColumn === word.endColumn && this.currentWordAtPosition.word === word.word) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentWordAtPosition = word;\n\n\t\t// Find definition and decorate word if found\n\t\tconst state = new EditorState(this.editor, CodeEditorStateFlag.Position | CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection | CodeEditorStateFlag.Scroll);\n\n\t\tif (this.previousPromise) {\n\t\t\tthis.previousPromise.cancel();\n\t\t\tthis.previousPromise = null;\n\t\t}\n\n\t\tthis.previousPromise = createCancelablePromise(token => this.findDefinition(position, token));\n\n\t\tlet results: LocationLink[] | null;\n\t\ttry {\n\t\t\tresults = await this.previousPromise;\n\n\t\t} catch (error) {\n\t\t\tonUnexpectedError(error);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!results || !results.length || !state.validate(this.editor)) {\n\t\t\tthis.removeLinkDecorations();\n\t\t\treturn;\n\t\t}\n\n\t\tconst linkRange = results[0].originSelectionRange\n\t\t\t? Range.lift(results[0].originSelectionRange)\n\t\t\t: new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n\n\t\t// Multiple results\n\t\tif (results.length > 1) {\n\n\t\t\tlet combinedRange = linkRange;\n\t\t\tfor (const { originSelectionRange } of results) {\n\t\t\t\tif (originSelectionRange) {\n\t\t\t\t\tcombinedRange = Range.plusRange(combinedRange, originSelectionRange);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.addDecoration(\n\t\t\t\tcombinedRange,\n\t\t\t\tnew MarkdownString().appendText(nls.localize('multipleResults', \"Click to show {0} definitions.\", results.length))\n\t\t\t);\n\t\t} else {\n\t\t\t// Single result\n\t\t\tconst result = results[0];\n\n\t\t\tif (!result.uri) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn this.textModelResolverService.createModelReference(result.uri).then(ref => {\n\n\t\t\t\tif (!ref.object || !ref.object.textEditorModel) {\n\t\t\t\t\tref.dispose();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { object: { textEditorModel } } = ref;\n\t\t\t\tconst { startLineNumber } = result.range;\n\n\t\t\t\tif (startLineNumber < 1 || startLineNumber > textEditorModel.getLineCount()) {\n\t\t\t\t\t// invalid range\n\t\t\t\t\tref.dispose();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst previewValue = this.getPreviewValue(textEditorModel, startLineNumber, result);\n\t\t\t\tconst languageId = this.languageService.guessLanguageIdByFilepathOrFirstLine(textEditorModel.uri);\n\t\t\t\tthis.addDecoration(\n\t\t\t\t\tlinkRange,\n\t\t\t\t\tpreviewValue ? new MarkdownString().appendCodeblock(languageId ? languageId : '', previewValue) : undefined\n\t\t\t\t);\n\t\t\t\tref.dispose();\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getPreviewValue(textEditorModel: ITextModel, startLineNumber: number, result: LocationLink) {\n\t\tlet rangeToUse = result.range;\n\t\tconst numberOfLinesInRange = rangeToUse.endLineNumber - rangeToUse.startLineNumber;\n\t\tif (numberOfLinesInRange >= GotoDefinitionAtPositionEditorContribution.MAX_SOURCE_PREVIEW_LINES) {\n\t\t\trangeToUse = this.getPreviewRangeBasedOnIndentation(textEditorModel, startLineNumber);\n\t\t}\n\t\trangeToUse = textEditorModel.validateRange(rangeToUse);\n\t\tconst previewValue = this.stripIndentationFromPreviewRange(textEditorModel, startLineNumber, rangeToUse);\n\t\treturn previewValue;\n\t}\n\n\tprivate stripIndentationFromPreviewRange(textEditorModel: ITextModel, startLineNumber: number, previewRange: IRange) {\n\t\tconst startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n\t\tlet minIndent = startIndent;\n\n\t\tfor (let endLineNumber = startLineNumber + 1; endLineNumber < previewRange.endLineNumber; endLineNumber++) {\n\t\t\tconst endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n\t\t\tminIndent = Math.min(minIndent, endIndent);\n\t\t}\n\n\t\tconst previewValue = textEditorModel.getValueInRange(previewRange).replace(new RegExp(`^\\\\s{${minIndent - 1}}`, 'gm'), '').trim();\n\t\treturn previewValue;\n\t}\n\n\tprivate getPreviewRangeBasedOnIndentation(textEditorModel: ITextModel, startLineNumber: number) {\n\t\tconst startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n\t\tconst maxLineNumber = Math.min(textEditorModel.getLineCount(), startLineNumber + GotoDefinitionAtPositionEditorContribution.MAX_SOURCE_PREVIEW_LINES);\n\t\tlet endLineNumber = startLineNumber + 1;\n\n\t\tfor (; endLineNumber < maxLineNumber; endLineNumber++) {\n\t\t\tconst endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n\n\t\t\tif (startIndent === endIndent) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn new Range(startLineNumber, 1, endLineNumber + 1, 1);\n\t}\n\n\tprivate addDecoration(range: Range, hoverMessage: MarkdownString | undefined): void {\n\n\t\tconst newDecorations: IModelDeltaDecoration = {\n\t\t\trange: range,\n\t\t\toptions: {\n\t\t\t\tdescription: 'goto-definition-link',\n\t\t\t\tinlineClassName: 'goto-definition-link',\n\t\t\t\thoverMessage\n\t\t\t}\n\t\t};\n\n\t\tthis.linkDecorations.set([newDecorations]);\n\t}\n\n\tprivate removeLinkDecorations(): void {\n\t\tthis.linkDecorations.clear();\n\t}\n\n\tprivate isEnabled(mouseEvent: ClickLinkMouseEvent, withKey?: ClickLinkKeyboardEvent): boolean {\n\t\treturn this.editor.hasModel()\n\t\t\t&& mouseEvent.isLeftClick\n\t\t\t&& mouseEvent.isNoneOrSingleMouseDown\n\t\t\t&& mouseEvent.target.type === MouseTargetType.CONTENT_TEXT\n\t\t\t&& !(mouseEvent.target.detail.injectedText?.options instanceof ModelDecorationInjectedTextOptions)\n\t\t\t&& (mouseEvent.hasTriggerModifier || (withKey ? withKey.keyCodeIsTriggerKey : false))\n\t\t\t&& this.languageFeaturesService.definitionProvider.has(this.editor.getModel());\n\t}\n\n\tprivate findDefinition(position: Position, token: CancellationToken): Promise<LocationLink[] | null> {\n\t\tconst model = this.editor.getModel();\n\t\tif (!model) {\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\n\t\treturn getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider, model, position, false, token);\n\t}\n\n\tprivate gotoDefinition(position: Position, openToSide: boolean): Promise<any> {\n\t\tthis.editor.setPosition(position);\n\t\treturn this.editor.invokeWithinContext((accessor) => {\n\t\t\tconst canPeek = !openToSide && this.editor.getOption(EditorOption.definitionLinkOpensInPeek) && !this.isInPeekEditor(accessor);\n\t\t\tconst action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { title: { value: '', original: '' }, id: '', precondition: undefined });\n\t\t\treturn action.run(accessor);\n\t\t});\n\t}\n\n\tprivate isInPeekEditor(accessor: ServicesAccessor): boolean | undefined {\n\t\tconst contextKeyService = accessor.get(IContextKeyService);\n\t\treturn PeekContext.inPeekEditor.getValue(contextKeyService);\n\t}\n\n\tpublic dispose(): void {\n\t\tthis.toUnhook.dispose();\n\t\tthis.toUnhookForKeyboard.dispose();\n\t}\n}\n\nregisterEditorContribution(GotoDefinitionAtPositionEditorContribution.ID, GotoDefinitionAtPositionEditorContribution, EditorContributionInstantiation.BeforeFirstInteraction);\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.ts"],"names":[],"mappings":"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","file":"goToDefinitionAtPosition.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { IKeyboardEvent } from '../../../../../base/browser/keyboardEvent.js';\nimport { CancelablePromise, createCancelablePromise } from '../../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../../base/common/errors.js';\nimport { MarkdownString } from '../../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../../base/common/lifecycle.js';\nimport './goToDefinitionAtPosition.css';\nimport { CodeEditorStateFlag, EditorState } from '../../../editorState/browser/editorState.js';\nimport { ICodeEditor, MouseTargetType } from '../../../../browser/editorBrowser.js';\nimport { EditorContributionInstantiation, registerEditorContribution } from '../../../../browser/editorExtensions.js';\nimport { EditorOption } from '../../../../common/config/editorOptions.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { IRange, Range } from '../../../../common/core/range.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../../common/editorCommon.js';\nimport { IModelDeltaDecoration, ITextModel } from '../../../../common/model.js';\nimport { LocationLink } from '../../../../common/languages.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { ClickLinkGesture, ClickLinkKeyboardEvent, ClickLinkMouseEvent } from './clickLinkGesture.js';\nimport { PeekContext } from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { IContextKeyService } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { ServicesAccessor } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { DefinitionAction } from '../goToCommands.js';\nimport { getDefinitionsAtPosition } from '../goToSymbol.js';\nimport { IWordAtPosition } from '../../../../common/core/wordHelper.js';\nimport { ILanguageFeaturesService } from '../../../../common/services/languageFeatures.js';\nimport { ModelDecorationInjectedTextOptions } from '../../../../common/model/textModel.js';\n\nexport class GotoDefinitionAtPositionEditorContribution implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.gotodefinitionatposition';\n\tstatic readonly MAX_SOURCE_PREVIEW_LINES = 8;\n\n\tprivate readonly editor: ICodeEditor;\n\tprivate readonly toUnhook = new DisposableStore();\n\tprivate readonly toUnhookForKeyboard = new DisposableStore();\n\tprivate readonly linkDecorations: IEditorDecorationsCollection;\n\tprivate currentWordAtPosition: IWordAtPosition | null = null;\n\tprivate previousPromise: CancelablePromise<LocationLink[] | null> | null = null;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@ITextModelService private readonly textModelResolverService: ITextModelService,\n\t\t@ILanguageService private readonly languageService: ILanguageService,\n\t\t@ILanguageFeaturesService private readonly languageFeaturesService: ILanguageFeaturesService,\n\t) {\n\t\tthis.editor = editor;\n\t\tthis.linkDecorations = this.editor.createDecorationsCollection();\n\n\t\tconst linkGesture = new ClickLinkGesture(editor);\n\t\tthis.toUnhook.add(linkGesture);\n\n\t\tthis.toUnhook.add(linkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {\n\t\t\tthis.startFindDefinitionFromMouse(mouseEvent, keyboardEvent ?? undefined);\n\t\t}));\n\n\t\tthis.toUnhook.add(linkGesture.onExecute((mouseEvent: ClickLinkMouseEvent) => {\n\t\t\tif (this.isEnabled(mouseEvent)) {\n\t\t\t\tthis.gotoDefinition(mouseEvent.target.position!, mouseEvent.hasSideBySideModifier)\n\t\t\t\t\t.catch((error: Error) => {\n\t\t\t\t\t\tonUnexpectedError(error);\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tthis.removeLinkDecorations();\n\t\t\t\t\t});\n\t\t\t}\n\t\t}));\n\n\t\tthis.toUnhook.add(linkGesture.onCancel(() => {\n\t\t\tthis.removeLinkDecorations();\n\t\t\tthis.currentWordAtPosition = null;\n\t\t}));\n\t}\n\n\tstatic get(editor: ICodeEditor): GotoDefinitionAtPositionEditorContribution | null {\n\t\treturn editor.getContribution<GotoDefinitionAtPositionEditorContribution>(GotoDefinitionAtPositionEditorContribution.ID);\n\t}\n\n\tasync startFindDefinitionFromCursor(position: Position) {\n\t\t// For issue: https://github.com/microsoft/vscode/issues/46257\n\t\t// equivalent to mouse move with meta/ctrl key\n\n\t\t// First find the definition and add decorations\n\t\t// to the editor to be shown with the content hover widget\n\t\tawait this.startFindDefinition(position);\n\t\t// Add listeners for editor cursor move and key down events\n\t\t// Dismiss the \"extended\" editor decorations when the user hides\n\t\t// the hover widget. There is no event for the widget itself so these\n\t\t// serve as a best effort. After removing the link decorations, the hover\n\t\t// widget is clean and will only show declarations per next request.\n\t\tthis.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(() => {\n\t\t\tthis.currentWordAtPosition = null;\n\t\t\tthis.removeLinkDecorations();\n\t\t\tthis.toUnhookForKeyboard.clear();\n\t\t}));\n\t\tthis.toUnhookForKeyboard.add(this.editor.onKeyDown((e: IKeyboardEvent) => {\n\t\t\tif (e) {\n\t\t\t\tthis.currentWordAtPosition = null;\n\t\t\t\tthis.removeLinkDecorations();\n\t\t\t\tthis.toUnhookForKeyboard.clear();\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate startFindDefinitionFromMouse(mouseEvent: ClickLinkMouseEvent, withKey?: ClickLinkKeyboardEvent): void {\n\n\t\t// check if we are active and on a content widget\n\t\tif (mouseEvent.target.type === MouseTargetType.CONTENT_WIDGET && this.linkDecorations.length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.editor.hasModel() || !this.isEnabled(mouseEvent, withKey)) {\n\t\t\tthis.currentWordAtPosition = null;\n\t\t\tthis.removeLinkDecorations();\n\t\t\treturn;\n\t\t}\n\n\t\tconst position = mouseEvent.target.position!;\n\n\t\tthis.startFindDefinition(position);\n\t}\n\n\tprivate async startFindDefinition(position: Position): Promise<void> {\n\n\t\t// Dispose listeners for updating decorations when using keyboard to show definition hover\n\t\tthis.toUnhookForKeyboard.clear();\n\n\t\t// Find word at mouse position\n\t\tconst word = position ? this.editor.getModel()?.getWordAtPosition(position) : null;\n\t\tif (!word) {\n\t\t\tthis.currentWordAtPosition = null;\n\t\t\tthis.removeLinkDecorations();\n\t\t\treturn;\n\t\t}\n\n\t\t// Return early if word at position is still the same\n\t\tif (this.currentWordAtPosition && this.currentWordAtPosition.startColumn === word.startColumn && this.currentWordAtPosition.endColumn === word.endColumn && this.currentWordAtPosition.word === word.word) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentWordAtPosition = word;\n\n\t\t// Find definition and decorate word if found\n\t\tconst state = new EditorState(this.editor, CodeEditorStateFlag.Position | CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection | CodeEditorStateFlag.Scroll);\n\n\t\tif (this.previousPromise) {\n\t\t\tthis.previousPromise.cancel();\n\t\t\tthis.previousPromise = null;\n\t\t}\n\n\t\tthis.previousPromise = createCancelablePromise(token => this.findDefinition(position, token));\n\n\t\tlet results: LocationLink[] | null;\n\t\ttry {\n\t\t\tresults = await this.previousPromise;\n\n\t\t} catch (error) {\n\t\t\tonUnexpectedError(error);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!results || !results.length || !state.validate(this.editor)) {\n\t\t\tthis.removeLinkDecorations();\n\t\t\treturn;\n\t\t}\n\n\t\tconst linkRange = results[0].originSelectionRange\n\t\t\t? Range.lift(results[0].originSelectionRange)\n\t\t\t: new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n\n\t\t// Multiple results\n\t\tif (results.length > 1) {\n\n\t\t\tlet combinedRange = linkRange;\n\t\t\tfor (const { originSelectionRange } of results) {\n\t\t\t\tif (originSelectionRange) {\n\t\t\t\t\tcombinedRange = Range.plusRange(combinedRange, originSelectionRange);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.addDecoration(\n\t\t\t\tcombinedRange,\n\t\t\t\tnew MarkdownString().appendText(nls.localize('multipleResults', \"Click to show {0} definitions.\", results.length))\n\t\t\t);\n\t\t} else {\n\t\t\t// Single result\n\t\t\tconst result = results[0];\n\n\t\t\tif (!result.uri) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn this.textModelResolverService.createModelReference(result.uri).then(ref => {\n\n\t\t\t\tif (!ref.object || !ref.object.textEditorModel) {\n\t\t\t\t\tref.dispose();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst { object: { textEditorModel } } = ref;\n\t\t\t\tconst { startLineNumber } = result.range;\n\n\t\t\t\tif (startLineNumber < 1 || startLineNumber > textEditorModel.getLineCount()) {\n\t\t\t\t\t// invalid range\n\t\t\t\t\tref.dispose();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst previewValue = this.getPreviewValue(textEditorModel, startLineNumber, result);\n\t\t\t\tconst languageId = this.languageService.guessLanguageIdByFilepathOrFirstLine(textEditorModel.uri);\n\t\t\t\tthis.addDecoration(\n\t\t\t\t\tlinkRange,\n\t\t\t\t\tpreviewValue ? new MarkdownString().appendCodeblock(languageId ? languageId : '', previewValue) : undefined\n\t\t\t\t);\n\t\t\t\tref.dispose();\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getPreviewValue(textEditorModel: ITextModel, startLineNumber: number, result: LocationLink) {\n\t\tlet rangeToUse = result.range;\n\t\tconst numberOfLinesInRange = rangeToUse.endLineNumber - rangeToUse.startLineNumber;\n\t\tif (numberOfLinesInRange >= GotoDefinitionAtPositionEditorContribution.MAX_SOURCE_PREVIEW_LINES) {\n\t\t\trangeToUse = this.getPreviewRangeBasedOnIndentation(textEditorModel, startLineNumber);\n\t\t}\n\t\trangeToUse = textEditorModel.validateRange(rangeToUse);\n\t\tconst previewValue = this.stripIndentationFromPreviewRange(textEditorModel, startLineNumber, rangeToUse);\n\t\treturn previewValue;\n\t}\n\n\tprivate stripIndentationFromPreviewRange(textEditorModel: ITextModel, startLineNumber: number, previewRange: IRange) {\n\t\tconst startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n\t\tlet minIndent = startIndent;\n\n\t\tfor (let endLineNumber = startLineNumber + 1; endLineNumber < previewRange.endLineNumber; endLineNumber++) {\n\t\t\tconst endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n\t\t\tminIndent = Math.min(minIndent, endIndent);\n\t\t}\n\n\t\tconst previewValue = textEditorModel.getValueInRange(previewRange).replace(new RegExp(`^\\\\s{${minIndent - 1}}`, 'gm'), '').trim();\n\t\treturn previewValue;\n\t}\n\n\tprivate getPreviewRangeBasedOnIndentation(textEditorModel: ITextModel, startLineNumber: number) {\n\t\tconst startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n\t\tconst maxLineNumber = Math.min(textEditorModel.getLineCount(), startLineNumber + GotoDefinitionAtPositionEditorContribution.MAX_SOURCE_PREVIEW_LINES);\n\t\tlet endLineNumber = startLineNumber + 1;\n\n\t\tfor (; endLineNumber < maxLineNumber; endLineNumber++) {\n\t\t\tconst endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n\n\t\t\tif (startIndent === endIndent) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn new Range(startLineNumber, 1, endLineNumber + 1, 1);\n\t}\n\n\tprivate addDecoration(range: Range, hoverMessage: MarkdownString | undefined): void {\n\n\t\tconst newDecorations: IModelDeltaDecoration = {\n\t\t\trange: range,\n\t\t\toptions: {\n\t\t\t\tdescription: 'goto-definition-link',\n\t\t\t\tinlineClassName: 'goto-definition-link',\n\t\t\t\thoverMessage\n\t\t\t}\n\t\t};\n\n\t\tthis.linkDecorations.set([newDecorations]);\n\t}\n\n\tprivate removeLinkDecorations(): void {\n\t\tthis.linkDecorations.clear();\n\t}\n\n\tprivate isEnabled(mouseEvent: ClickLinkMouseEvent, withKey?: ClickLinkKeyboardEvent): boolean {\n\t\treturn this.editor.hasModel()\n\t\t\t&& mouseEvent.isLeftClick\n\t\t\t&& mouseEvent.isNoneOrSingleMouseDown\n\t\t\t&& mouseEvent.target.type === MouseTargetType.CONTENT_TEXT\n\t\t\t&& !(mouseEvent.target.detail.injectedText?.options instanceof ModelDecorationInjectedTextOptions)\n\t\t\t&& (mouseEvent.hasTriggerModifier || (withKey ? withKey.keyCodeIsTriggerKey : false))\n\t\t\t&& this.languageFeaturesService.definitionProvider.has(this.editor.getModel());\n\t}\n\n\tprivate findDefinition(position: Position, token: CancellationToken): Promise<LocationLink[] | null> {\n\t\tconst model = this.editor.getModel();\n\t\tif (!model) {\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\n\t\treturn getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider, model, position, false, token);\n\t}\n\n\tprivate async gotoDefinition(position: Position, openToSide: boolean): Promise<unknown> {\n\t\tthis.editor.setPosition(position);\n\t\treturn this.editor.invokeWithinContext((accessor) => {\n\t\t\tconst canPeek = !openToSide && this.editor.getOption(EditorOption.definitionLinkOpensInPeek) && !this.isInPeekEditor(accessor);\n\t\t\tconst action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { title: { value: '', original: '' }, id: '', precondition: undefined });\n\t\t\treturn action.run(accessor);\n\t\t});\n\t}\n\n\tprivate isInPeekEditor(accessor: ServicesAccessor): boolean | undefined {\n\t\tconst contextKeyService = accessor.get(IContextKeyService);\n\t\treturn PeekContext.inPeekEditor.getValue(contextKeyService);\n\t}\n\n\tpublic dispose(): void {\n\t\tthis.toUnhook.dispose();\n\t\tthis.toUnhookForKeyboard.dispose();\n\t}\n}\n\nregisterEditorContribution(GotoDefinitionAtPositionEditorContribution.ID, GotoDefinitionAtPositionEditorContribution, EditorContributionInstantiation.BeforeFirstInteraction);\n"]}
@@ -23,7 +23,7 @@ import { assertType } from '../../../../base/common/types.js';
23
23
  import { URI } from '../../../../base/common/uri.js';
24
24
  import { DynamicCssRules } from '../../../browser/editorDom.js';
25
25
  import { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';
26
- import { EDITOR_FONT_DEFAULTS } from '../../../common/config/editorOptions.js';
26
+ import { EDITOR_FONT_DEFAULTS } from '../../../common/config/fontInfo.js';
27
27
  import { EditOperation } from '../../../common/core/editOperation.js';
28
28
  import { Range } from '../../../common/core/range.js';
29
29
  import * as languages from '../../../common/languages.js';
@@ -82,6 +82,28 @@ class ActiveInlayHintInfo {
82
82
  this.hasTriggerModifier = hasTriggerModifier;
83
83
  }
84
84
  }
85
+ /**
86
+ * Mix of CancellationTokenSource, DisposableStore and MutableDisposable
87
+ */
88
+ class CancellationStore {
89
+ constructor() {
90
+ this._store = new MutableDisposable();
91
+ this._tokenSource = new CancellationTokenSource();
92
+ }
93
+ dispose() {
94
+ this._store.dispose();
95
+ this._tokenSource.dispose(true);
96
+ }
97
+ reset() {
98
+ this._tokenSource.dispose(true);
99
+ this._tokenSource = new CancellationTokenSource();
100
+ this._store.value = new DisposableStore();
101
+ return {
102
+ store: this._store.value,
103
+ token: this._tokenSource.token
104
+ };
105
+ }
106
+ }
85
107
  // --- controller
86
108
  let InlayHintsController = class InlayHintsController {
87
109
  static { InlayHintsController_1 = this; }
@@ -174,16 +196,15 @@ let InlayHintsController = class InlayHintsController {
174
196
  }));
175
197
  let cts;
176
198
  const watchedProviders = new Set();
199
+ this._sessionDisposables.add(model.onWillDispose(() => cts?.cancel()));
200
+ const cancellationStore = this._sessionDisposables.add(new CancellationStore());
177
201
  const scheduler = new RunOnceScheduler(async () => {
178
202
  const t1 = Date.now();
179
- cts?.dispose(true);
180
- cts = new CancellationTokenSource();
181
- const listener = model.onWillDispose(() => cts?.cancel());
203
+ const { store, token } = cancellationStore.reset();
182
204
  try {
183
- const myToken = cts.token;
184
- const inlayHints = await InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider, model, this._getHintsRanges(), myToken);
205
+ const inlayHints = await InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider, model, this._getHintsRanges(), token);
185
206
  scheduler.delay = this._debounceInfo.update(model, Date.now() - t1);
186
- if (myToken.isCancellationRequested) {
207
+ if (token.isCancellationRequested) {
187
208
  inlayHints.dispose();
188
209
  return;
189
210
  }
@@ -191,27 +212,22 @@ let InlayHintsController = class InlayHintsController {
191
212
  for (const provider of inlayHints.provider) {
192
213
  if (typeof provider.onDidChangeInlayHints === 'function' && !watchedProviders.has(provider)) {
193
214
  watchedProviders.add(provider);
194
- this._sessionDisposables.add(provider.onDidChangeInlayHints(() => {
215
+ store.add(provider.onDidChangeInlayHints(() => {
195
216
  if (!scheduler.isScheduled()) { // ignore event when request is already scheduled
196
217
  scheduler.schedule();
197
218
  }
198
219
  }));
199
220
  }
200
221
  }
201
- this._sessionDisposables.add(inlayHints);
222
+ store.add(inlayHints);
202
223
  this._updateHintsDecorators(inlayHints.ranges, inlayHints.items);
203
224
  this._cacheHintsForFastRestore(model);
204
225
  }
205
226
  catch (err) {
206
227
  onUnexpectedError(err);
207
228
  }
208
- finally {
209
- cts.dispose();
210
- listener.dispose();
211
- }
212
229
  }, this._debounceInfo.get(model));
213
230
  this._sessionDisposables.add(scheduler);
214
- this._sessionDisposables.add(toDisposable(() => cts?.dispose(true)));
215
231
  scheduler.schedule(0);
216
232
  this._sessionDisposables.add(this._editor.onDidScrollChange((e) => {
217
233
  // update when scroll position changes