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.
- package/esm/nls.messages.de.js +1 -1
- package/esm/nls.messages.es.js +1 -1
- package/esm/nls.messages.fr.js +1 -1
- package/esm/nls.messages.it.js +1 -1
- package/esm/nls.messages.ja.js +1 -1
- package/esm/nls.messages.ko.js +1 -1
- package/esm/nls.messages.ru.js +1 -1
- package/esm/nls.messages.zh-cn.js +1 -1
- package/esm/nls.messages.zh-tw.js +1 -1
- package/esm/vs/base/browser/canIUse.js +1 -0
- package/esm/vs/base/browser/canIUse.js.map +1 -1
- package/esm/vs/base/browser/dom.js +9 -0
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/fastDomNode.js.map +1 -1
- package/esm/vs/base/browser/mouseEvent.js +3 -0
- package/esm/vs/base/browser/mouseEvent.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js +2 -0
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/list/listWidget.js +5 -5
- package/esm/vs/base/browser/ui/list/listWidget.js.map +1 -1
- package/esm/vs/base/browser/ui/sash/sash.css +1 -1
- package/esm/vs/base/browser/ui/sash/sash.js +4 -0
- package/esm/vs/base/browser/ui/sash/sash.js.map +1 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js +1 -1
- package/esm/vs/base/browser/ui/scrollbar/scrollableElement.js.map +1 -1
- package/esm/vs/base/browser/ui/table/table.css +2 -2
- package/esm/vs/base/browser/ui/tree/abstractTree.js +7 -3
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +4 -0
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js +1 -0
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/media/tree.css +2 -2
- package/esm/vs/base/browser/webWorkerFactory.js +3 -0
- package/esm/vs/base/browser/webWorkerFactory.js.map +1 -1
- package/esm/vs/base/common/buffer.js.map +1 -1
- package/esm/vs/base/common/decorators.js +1 -0
- package/esm/vs/base/common/decorators.js.map +1 -1
- package/esm/vs/base/common/errors.js +1 -0
- package/esm/vs/base/common/errors.js.map +1 -1
- package/esm/vs/base/common/glob.js +1 -1
- package/esm/vs/base/common/glob.js.map +1 -1
- package/esm/vs/base/common/hash.js.map +1 -1
- package/esm/vs/base/common/hotReload.js +2 -0
- package/esm/vs/base/common/hotReload.js.map +1 -1
- package/esm/vs/base/common/hotReloadHelpers.js +1 -0
- package/esm/vs/base/common/hotReloadHelpers.js.map +1 -1
- package/esm/vs/base/common/lifecycle.js +19 -0
- package/esm/vs/base/common/lifecycle.js.map +1 -1
- package/esm/vs/base/common/map.js.map +1 -1
- package/esm/vs/base/common/marshalling.js +4 -0
- package/esm/vs/base/common/marshalling.js.map +1 -1
- package/esm/vs/base/common/network.js +1 -0
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/objects.js +1 -0
- package/esm/vs/base/common/objects.js.map +1 -1
- package/esm/vs/base/common/observableInternal/changeTracker.js +4 -0
- package/esm/vs/base/common/observableInternal/changeTracker.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugLocation.js +1 -0
- package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugName.js +1 -0
- package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js +1 -0
- package/esm/vs/base/common/observableInternal/logging/debugger/rpc.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derived.js +7 -1
- package/esm/vs/base/common/observableInternal/observables/derived.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +2 -0
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js +1 -0
- package/esm/vs/base/common/observableInternal/observables/observableFromEvent.js.map +1 -1
- package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js +1 -0
- package/esm/vs/base/common/observableInternal/reactions/autorunImpl.js.map +1 -1
- package/esm/vs/base/common/process.js +1 -0
- package/esm/vs/base/common/process.js.map +1 -1
- package/esm/vs/base/common/product.js.map +1 -1
- package/esm/vs/base/common/types.js +2 -0
- package/esm/vs/base/common/types.js.map +1 -1
- package/esm/vs/base/common/worker/webWorker.js +26 -14
- package/esm/vs/base/common/worker/webWorker.js.map +1 -1
- package/esm/vs/base/parts/sandbox/common/sandboxTypes.js +2 -0
- package/esm/vs/base/parts/sandbox/common/sandboxTypes.js.map +1 -0
- package/esm/vs/editor/browser/config/editorConfiguration.js +3 -2
- package/esm/vs/editor/browser/config/editorConfiguration.js.map +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js +2 -0
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js +2 -1
- package/esm/vs/editor/browser/controller/mouseHandler.js.map +1 -1
- package/esm/vs/editor/browser/controller/mouseTarget.js +7 -0
- package/esm/vs/editor/browser/controller/mouseTarget.js.map +1 -1
- package/esm/vs/editor/browser/controller/pointerHandler.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/editorDom.js.map +1 -1
- package/esm/vs/editor/browser/editorExtensions.js.map +1 -1
- package/esm/vs/editor/browser/gpu/gpuUtils.js +1 -0
- package/esm/vs/editor/browser/gpu/gpuUtils.js.map +1 -1
- package/esm/vs/editor/browser/gpu/viewGpuContext.js +1 -0
- package/esm/vs/editor/browser/gpu/viewGpuContext.js.map +1 -1
- package/esm/vs/editor/browser/services/abstractCodeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/bulkEditService.js.map +1 -1
- package/esm/vs/editor/browser/services/codeEditorService.js.map +1 -1
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/hoverService/hover.css +2 -0
- package/esm/vs/editor/browser/services/hoverService/hoverService.js.map +1 -1
- package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +1 -1
- package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
- package/esm/vs/editor/browser/services/inlineCompletionsService.js +8 -8
- package/esm/vs/editor/browser/services/inlineCompletionsService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js +1 -1
- package/esm/vs/editor/browser/view/viewLayer.js.map +1 -1
- package/esm/vs/editor/browser/view.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js +1 -0
- package/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js +1 -0
- package/esm/vs/editor/browser/viewParts/viewZones/viewZones.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +4 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/utils.js +2 -0
- package/esm/vs/editor/browser/widget/diffEditor/utils.js.map +1 -1
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +2 -0
- package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +122 -68
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/config/fontInfo.js +32 -16
- package/esm/vs/editor/common/config/fontInfo.js.map +1 -1
- package/esm/vs/editor/common/config/fontInfoFromSettings.js +16 -0
- package/esm/vs/editor/common/config/fontInfoFromSettings.js.map +1 -0
- package/esm/vs/editor/common/core/edits/edit.js +1 -0
- package/esm/vs/editor/common/core/edits/edit.js.map +1 -1
- package/esm/vs/editor/common/core/edits/stringEdit.js +2 -0
- package/esm/vs/editor/common/core/edits/stringEdit.js.map +1 -1
- package/esm/vs/editor/common/core/position.js +1 -1
- package/esm/vs/editor/common/core/position.js.map +1 -1
- package/esm/vs/editor/common/core/range.js +1 -1
- package/esm/vs/editor/common/core/range.js.map +1 -1
- package/esm/vs/editor/common/core/selection.js +1 -1
- package/esm/vs/editor/common/core/selection.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorCommon.js.map +1 -1
- package/esm/vs/editor/common/languages.js +1 -1
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js +14 -0
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js.map +1 -1
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js +2 -0
- package/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js.map +1 -1
- package/esm/vs/editor/common/model/textModel.js +1 -1
- package/esm/vs/editor/common/model/textModel.js.map +1 -1
- package/esm/vs/editor/common/model.js +1 -1
- package/esm/vs/editor/common/model.js.map +1 -1
- package/esm/vs/editor/common/services/editorBaseApi.js.map +1 -1
- package/esm/vs/editor/common/services/editorWebWorker.js +1 -0
- package/esm/vs/editor/common/services/editorWebWorker.js.map +1 -1
- package/esm/vs/editor/common/services/editorWorkerHost.js.map +1 -1
- package/esm/vs/editor/common/services/modelService.js +14 -21
- package/esm/vs/editor/common/services/modelService.js.map +1 -1
- package/esm/vs/editor/common/textModelEditSource.js +2 -0
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +40 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js.map +1 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js +2 -1
- package/esm/vs/editor/common/viewModel/viewModelImpl.js.map +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js.map +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js +1 -0
- package/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js.map +1 -1
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +1 -0
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findModel.js +1 -0
- package/esm/vs/editor/contrib/find/browser/findModel.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findWidget.css +5 -5
- package/esm/vs/editor/contrib/folding/browser/folding.css +4 -4
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js.map +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js.map +1 -1
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +30 -14
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +4 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +56 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +2 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.css +2 -0
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +2 -0
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +8 -8
- package/esm/vs/editor/editor.api.js +4 -0
- package/esm/vs/editor/editor.api.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneCodeEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneEditor.js +37 -0
- package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneLanguages.js +37 -0
- package/esm/vs/editor/standalone/browser/standaloneLanguages.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
- package/esm/vs/editor/standalone/common/monarch/monarchCompile.js +3 -0
- package/esm/vs/editor/standalone/common/monarch/monarchCompile.js.map +1 -1
- package/esm/vs/platform/accessibility/browser/accessibilityService.js +2 -2
- package/esm/vs/platform/accessibility/browser/accessibilityService.js.map +1 -1
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/commands/common/commands.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +5 -0
- package/esm/vs/platform/contextkey/common/contextkey.js.map +1 -1
- package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js +1 -0
- package/esm/vs/platform/dataChannel/browser/forwardingTelemetryService.js.map +1 -1
- package/esm/vs/platform/dnd/browser/dnd.js +2 -0
- package/esm/vs/platform/dnd/browser/dnd.js.map +1 -1
- package/esm/vs/platform/instantiation/common/descriptors.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiation.js.map +1 -1
- package/esm/vs/platform/instantiation/common/instantiationService.js +1 -0
- package/esm/vs/platform/instantiation/common/instantiationService.js.map +1 -1
- package/esm/vs/platform/list/browser/listService.js +5 -0
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/log/common/log.js.map +1 -1
- package/esm/vs/platform/log/common/logService.js.map +1 -1
- package/esm/vs/platform/observable/common/wrapInHotClass.js +2 -0
- package/esm/vs/platform/observable/common/wrapInHotClass.js.map +1 -1
- package/esm/vs/platform/observable/common/wrapInReloadableClass.js +3 -0
- package/esm/vs/platform/observable/common/wrapInReloadableClass.js.map +1 -1
- package/esm/vs/platform/product/common/product.js +69 -0
- package/esm/vs/platform/product/common/product.js.map +1 -0
- package/esm/vs/platform/quickinput/browser/quickInput.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
- package/monaco.d.ts +8 -8
- 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/
|
|
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
|
-
|
|
180
|
-
cts = new CancellationTokenSource();
|
|
181
|
-
const listener = model.onWillDispose(() => cts?.cancel());
|
|
203
|
+
const { store, token } = cancellationStore.reset();
|
|
182
204
|
try {
|
|
183
|
-
const
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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
|