monaco-editor-core 0.55.0-dev-20251019 → 0.55.0-dev-20251021

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 (49) hide show
  1. package/esm/nls.messages.cs.js +1 -1
  2. package/esm/nls.messages.de.js +1 -1
  3. package/esm/nls.messages.es.js +1 -1
  4. package/esm/nls.messages.fr.js +1 -1
  5. package/esm/nls.messages.it.js +1 -1
  6. package/esm/nls.messages.ja.js +1 -1
  7. package/esm/nls.messages.ko.js +1 -1
  8. package/esm/nls.messages.pl.js +1 -1
  9. package/esm/nls.messages.pt-br.js +1 -1
  10. package/esm/nls.messages.ru.js +1 -1
  11. package/esm/nls.messages.tr.js +1 -1
  12. package/esm/nls.messages.zh-cn.js +1 -1
  13. package/esm/nls.messages.zh-tw.js +1 -1
  14. package/esm/vs/base/browser/ui/findinput/findInput.js +4 -5
  15. package/esm/vs/base/browser/ui/findinput/findInput.js.map +1 -1
  16. package/esm/vs/base/browser/ui/findinput/findInputToggles.js +3 -4
  17. package/esm/vs/base/browser/ui/findinput/findInputToggles.js.map +1 -1
  18. package/esm/vs/base/browser/ui/findinput/replaceInput.js +2 -2
  19. package/esm/vs/base/browser/ui/findinput/replaceInput.js.map +1 -1
  20. package/esm/vs/base/browser/ui/hover/hover.js.map +1 -1
  21. package/esm/vs/base/browser/ui/toggle/toggle.js +9 -6
  22. package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
  23. package/esm/vs/base/browser/ui/tree/abstractTree.js +7 -6
  24. package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
  25. package/esm/vs/base/common/actions.js +5 -0
  26. package/esm/vs/base/common/actions.js.map +1 -1
  27. package/esm/vs/base/common/async.js +5 -5
  28. package/esm/vs/base/common/async.js.map +1 -1
  29. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +20 -12
  30. package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
  31. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js +15 -0
  32. package/esm/vs/editor/browser/services/hoverService/hoverWidget.js.map +1 -1
  33. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js +6 -0
  34. package/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js.map +1 -1
  35. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js +1 -0
  36. package/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js.map +1 -1
  37. package/esm/vs/editor/contrib/find/browser/findOptionsWidget.js +4 -5
  38. package/esm/vs/editor/contrib/find/browser/findOptionsWidget.js.map +1 -1
  39. package/esm/vs/editor/contrib/find/browser/findWidget.js +12 -12
  40. package/esm/vs/editor/contrib/find/browser/findWidget.js.map +1 -1
  41. package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js +22 -2
  42. package/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js.map +1 -1
  43. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js +0 -1
  44. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js.map +1 -1
  45. package/esm/vs/editor/contrib/inlineCompletions/browser/telemetry.js.map +1 -1
  46. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +1 -4
  47. package/esm/vs/editor/contrib/rename/browser/renameWidget.js.map +1 -1
  48. package/package.json +2 -2
  49. package/version.txt +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.ts","vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.ts"],"names":[],"mappings":"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","file":"diffEditorItemTemplate.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 *--------------------------------------------------------------------------------------------*/\nimport { h } from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, globalTransaction, observableValue } from '../../../../base/common/observable.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService, type IScopedContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { IDiffEditorOptions } from '../../../common/config/editorOptions.js';\nimport { OffsetRange } from '../../../common/core/ranges/offsetRange.js';\nimport { observableCodeEditor } from '../../observableCodeEditor.js';\nimport { DiffEditorWidget } from '../diffEditor/diffEditorWidget.js';\nimport { DocumentDiffItemViewModel } from './multiDiffEditorViewModel.js';\nimport { IObjectData, IPooledObject } from './objectPool.js';\nimport { ActionRunnerWithContext } from './utils.js';\nimport { IWorkbenchUIElementFactory } from './workbenchUIElementFactory.js';\n\nexport class TemplateData implements IObjectData {\n\tconstructor(\n\t\tpublic readonly viewModel: DocumentDiffItemViewModel,\n\t\tpublic readonly deltaScrollVertical: (delta: number) => void,\n\t) { }\n\n\n\tgetId(): unknown {\n\t\treturn this.viewModel;\n\t}\n}\n\nexport class DiffEditorItemTemplate extends Disposable implements IPooledObject<TemplateData> {\n\tprivate readonly _viewModel;\n\n\tprivate readonly _collapsed;\n\n\tprivate readonly _editorContentHeight;\n\tpublic readonly contentHeight;\n\n\tprivate readonly _modifiedContentWidth;\n\tprivate readonly _modifiedWidth;\n\tprivate readonly _originalContentWidth;\n\tprivate readonly _originalWidth;\n\n\tpublic readonly maxScroll;\n\n\tprivate readonly _elements;\n\n\tpublic readonly editor;\n\n\tprivate readonly isModifedFocused;\n\tprivate readonly isOriginalFocused;\n\tpublic readonly isFocused;\n\n\tprivate readonly _resourceLabel;\n\n\tprivate readonly _resourceLabel2;\n\n\tprivate readonly _outerEditorHeight: number;\n\tprivate readonly _contextKeyService: IScopedContextKeyService;\n\n\tconstructor(\n\t\tprivate readonly _container: HTMLElement,\n\t\tprivate readonly _overflowWidgetsDomNode: HTMLElement,\n\t\tprivate readonly _workbenchUIElementFactory: IWorkbenchUIElementFactory,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService,\n\t\t@IContextKeyService _parentContextKeyService: IContextKeyService,\n\t) {\n\t\tsuper();\n\t\tthis._viewModel = observableValue<DocumentDiffItemViewModel | undefined>(this, undefined);\n\t\tthis._collapsed = derived(this, reader => this._viewModel.read(reader)?.collapsed.read(reader));\n\t\tthis._editorContentHeight = observableValue<number>(this, 500);\n\t\tthis.contentHeight = derived(this, reader => {\n\t\t\tconst h = this._collapsed.read(reader) ? 0 : this._editorContentHeight.read(reader);\n\t\t\treturn h + this._outerEditorHeight;\n\t\t});\n\t\tthis._modifiedContentWidth = observableValue<number>(this, 0);\n\t\tthis._modifiedWidth = observableValue<number>(this, 0);\n\t\tthis._originalContentWidth = observableValue<number>(this, 0);\n\t\tthis._originalWidth = observableValue<number>(this, 0);\n\t\tthis.maxScroll = derived(this, reader => {\n\t\t\tconst scroll1 = this._modifiedContentWidth.read(reader) - this._modifiedWidth.read(reader);\n\t\t\tconst scroll2 = this._originalContentWidth.read(reader) - this._originalWidth.read(reader);\n\t\t\tif (scroll1 > scroll2) {\n\t\t\t\treturn { maxScroll: scroll1, width: this._modifiedWidth.read(reader) };\n\t\t\t} else {\n\t\t\t\treturn { maxScroll: scroll2, width: this._originalWidth.read(reader) };\n\t\t\t}\n\t\t});\n\t\tthis._elements = h('div.multiDiffEntry', [\n\t\t\th('div.header@header', [\n\t\t\t\th('div.header-content', [\n\t\t\t\t\th('div.collapse-button@collapseButton'),\n\t\t\t\t\th('div.file-path', [\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.modified.show-file-icons@primaryPath', [] as any),\n\t\t\t\t\t\th('div.status.deleted@status', ['R']),\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.original.show-file-icons@secondaryPath', [] as any),\n\t\t\t\t\t]),\n\t\t\t\t\th('div.actions@actions'),\n\t\t\t\t]),\n\t\t\t]),\n\n\t\t\th('div.editorParent', [\n\t\t\t\th('div.editorContainer@editor'),\n\t\t\t])\n\t\t]) as Record<string, HTMLElement>;\n\t\tthis.editor = this._register(this._instantiationService.createInstance(DiffEditorWidget, this._elements.editor, {\n\t\t\toverflowWidgetsDomNode: this._overflowWidgetsDomNode,\n\t\t}, {}));\n\t\tthis.isModifedFocused = observableCodeEditor(this.editor.getModifiedEditor()).isFocused;\n\t\tthis.isOriginalFocused = observableCodeEditor(this.editor.getOriginalEditor()).isFocused;\n\t\tthis.isFocused = derived(this, reader => this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));\n\t\tthis._resourceLabel = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath))\n\t\t\t: undefined;\n\t\tthis._resourceLabel2 = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath))\n\t\t\t: undefined;\n\t\tthis._dataStore = this._register(new DisposableStore());\n\t\tthis._headerHeight = 40;\n\t\tthis._lastScrollTop = -1;\n\t\tthis._isSettingScrollTop = false;\n\n\t\tconst btn = new Button(this._elements.collapseButton, {});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tbtn.element.className = '';\n\t\t\tbtn.icon = this._collapsed.read(reader) ? Codicon.chevronRight : Codicon.chevronDown;\n\t\t}));\n\t\tthis._register(btn.onDidClick(() => {\n\t\t\tthis._viewModel.get()?.collapsed.set(!this._collapsed.get(), undefined);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tthis._elements.editor.style.display = this._collapsed.read(reader) ? 'none' : 'block';\n\t\t}));\n\n\t\tthis._register(this.editor.getModifiedEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getModifiedEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._modifiedWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getOriginalEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._originalWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidContentSizeChange(e => {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._editorContentHeight.set(e.contentHeight, tx);\n\t\t\t\tthis._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(), tx);\n\t\t\t\tthis._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(), tx);\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidScrollChange(e => {\n\t\t\tif (this._isSettingScrollTop) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!e.scrollTopChanged || !this._data) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst delta = e.scrollTop - this._lastScrollTop;\n\t\t\tthis._data.deltaScrollVertical(delta);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst isActive = this._viewModel.read(reader)?.isActive.read(reader);\n\t\t\tthis._elements.root.classList.toggle('active', isActive);\n\t\t}));\n\n\t\tthis._container.appendChild(this._elements.root);\n\t\tthis._outerEditorHeight = this._headerHeight;\n\n\t\tthis._contextKeyService = this._register(_parentContextKeyService.createScoped(this._elements.actions));\n\t\tconst instantiationService = this._register(this._instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n\t\tthis._register(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.actions, MenuId.MultiDiffEditorFileToolbar, {\n\t\t\tactionRunner: this._register(new ActionRunnerWithContext(() => (this._viewModel.get()?.modifiedUri))),\n\t\t\tmenuOptions: {\n\t\t\t\tshouldForwardArgs: true,\n\t\t\t},\n\t\t\ttoolbarOptions: { primaryGroup: g => g.startsWith('navigation') },\n\t\t\tactionViewItemProvider: (action, options) => createActionViewItem(instantiationService, action, options),\n\t\t}));\n\t}\n\n\tpublic setScrollLeft(left: number): void {\n\t\tif (this._modifiedContentWidth.get() - this._modifiedWidth.get() > this._originalContentWidth.get() - this._originalWidth.get()) {\n\t\t\tthis.editor.getModifiedEditor().setScrollLeft(left);\n\t\t} else {\n\t\t\tthis.editor.getOriginalEditor().setScrollLeft(left);\n\t\t}\n\t}\n\n\tprivate readonly _dataStore;\n\n\tprivate _data: TemplateData | undefined;\n\n\tpublic setData(data: TemplateData | undefined): void {\n\t\tthis._data = data;\n\t\tfunction updateOptions(options: IDiffEditorOptions): IDiffEditorOptions {\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tscrollBeyondLastLine: false,\n\t\t\t\thideUnchangedRegions: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t\tscrollbar: {\n\t\t\t\t\tvertical: 'hidden',\n\t\t\t\t\thorizontal: 'hidden',\n\t\t\t\t\thandleMouseWheel: false,\n\t\t\t\t\tuseShadows: false,\n\t\t\t\t},\n\t\t\t\trenderOverviewRuler: false,\n\t\t\t\tfixedOverflowWidgets: true,\n\t\t\t\toverviewRulerBorder: false,\n\t\t\t};\n\t\t}\n\n\t\tif (!data) {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._viewModel.set(undefined, tx);\n\t\t\t\tthis.editor.setDiffModel(null, tx);\n\t\t\t\tthis._dataStore.clear();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = data.viewModel.documentDiffItem;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis._resourceLabel?.setUri(data.viewModel.modifiedUri ?? data.viewModel.originalUri!, { strikethrough: data.viewModel.modifiedUri === undefined });\n\n\t\t\tlet isRenamed = false;\n\t\t\tlet isDeleted = false;\n\t\t\tlet isAdded = false;\n\t\t\tlet flag = '';\n\t\t\tif (data.viewModel.modifiedUri && data.viewModel.originalUri && data.viewModel.modifiedUri.path !== data.viewModel.originalUri.path) {\n\t\t\t\tflag = 'R';\n\t\t\t\tisRenamed = true;\n\t\t\t} else if (!data.viewModel.modifiedUri) {\n\t\t\t\tflag = 'D';\n\t\t\t\tisDeleted = true;\n\t\t\t} else if (!data.viewModel.originalUri) {\n\t\t\t\tflag = 'A';\n\t\t\t\tisAdded = true;\n\t\t\t}\n\t\t\tthis._elements.status.classList.toggle('renamed', isRenamed);\n\t\t\tthis._elements.status.classList.toggle('deleted', isDeleted);\n\t\t\tthis._elements.status.classList.toggle('added', isAdded);\n\t\t\tthis._elements.status.innerText = flag;\n\n\t\t\tthis._resourceLabel2?.setUri(isRenamed ? data.viewModel.originalUri : undefined, { strikethrough: true });\n\n\t\t\tthis._dataStore.clear();\n\t\t\tthis._viewModel.set(data.viewModel, tx);\n\t\t\tthis.editor.setDiffModel(data.viewModel.diffEditorViewModelRef, tx);\n\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t});\n\t\tif (value.onOptionsDidChange) {\n\t\t\tthis._dataStore.add(value.onOptionsDidChange(() => {\n\t\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t\t}));\n\t\t}\n\t\tdata.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore, value => {\n\t\t\tif (!value) {\n\t\t\t\tthis.setData(undefined);\n\t\t\t}\n\t\t});\n\n\t\tif (data.viewModel.documentDiffItem.contextKeys) {\n\t\t\tfor (const [key, value] of Object.entries(data.viewModel.documentDiffItem.contextKeys)) {\n\t\t\t\tthis._contextKeyService.createKey(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate readonly _headerHeight;\n\n\tprivate _lastScrollTop;\n\tprivate _isSettingScrollTop;\n\n\tpublic render(verticalRange: OffsetRange, width: number, editorScroll: number, viewPort: OffsetRange): void {\n\t\tthis._elements.root.style.visibility = 'visible';\n\t\tthis._elements.root.style.top = `${verticalRange.start}px`;\n\t\tthis._elements.root.style.height = `${verticalRange.length}px`;\n\t\tthis._elements.root.style.width = `${width}px`;\n\t\tthis._elements.root.style.position = 'absolute';\n\n\t\t// For sticky scroll\n\t\tconst maxDelta = verticalRange.length - this._headerHeight;\n\t\tconst delta = Math.max(0, Math.min(viewPort.start - verticalRange.start, maxDelta));\n\t\tthis._elements.header.style.transform = `translateY(${delta}px)`;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis.editor.layout({\n\t\t\t\twidth: width - 2 * 8 - 2 * 1,\n\t\t\t\theight: verticalRange.length - this._outerEditorHeight,\n\t\t\t});\n\t\t});\n\t\ttry {\n\t\t\tthis._isSettingScrollTop = true;\n\t\t\tthis._lastScrollTop = editorScroll;\n\t\t\tthis.editor.getOriginalEditor().setScrollTop(editorScroll);\n\t\t} finally {\n\t\t\tthis._isSettingScrollTop = false;\n\t\t}\n\n\t\tthis._elements.header.classList.toggle('shadow', delta > 0 || editorScroll > 0);\n\t\tthis._elements.header.classList.toggle('collapsed', delta === maxDelta);\n\t}\n\n\tpublic hide(): void {\n\t\tthis._elements.root.style.top = `-100000px`;\n\t\tthis._elements.root.style.visibility = 'hidden'; // Some editor parts are still visible\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\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 *--------------------------------------------------------------------------------------------*/\nimport { h } from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, globalTransaction, observableValue } from '../../../../base/common/observable.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService, type IScopedContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { IDiffEditorOptions } from '../../../common/config/editorOptions.js';\nimport { OffsetRange } from '../../../common/core/ranges/offsetRange.js';\nimport { observableCodeEditor } from '../../observableCodeEditor.js';\nimport { DiffEditorWidget } from '../diffEditor/diffEditorWidget.js';\nimport { DocumentDiffItemViewModel } from './multiDiffEditorViewModel.js';\nimport { IObjectData, IPooledObject } from './objectPool.js';\nimport { ActionRunnerWithContext } from './utils.js';\nimport { IWorkbenchUIElementFactory } from './workbenchUIElementFactory.js';\n\nexport class TemplateData implements IObjectData {\n\tconstructor(\n\t\tpublic readonly viewModel: DocumentDiffItemViewModel,\n\t\tpublic readonly deltaScrollVertical: (delta: number) => void,\n\t) { }\n\n\n\tgetId(): unknown {\n\t\treturn this.viewModel;\n\t}\n}\n\nexport class DiffEditorItemTemplate extends Disposable implements IPooledObject<TemplateData> {\n\tprivate readonly _viewModel;\n\n\tprivate readonly _collapsed;\n\n\tprivate readonly _editorContentHeight;\n\tpublic readonly contentHeight;\n\n\tprivate readonly _modifiedContentWidth;\n\tprivate readonly _modifiedWidth;\n\tprivate readonly _originalContentWidth;\n\tprivate readonly _originalWidth;\n\n\tpublic readonly maxScroll;\n\n\tprivate readonly _elements;\n\n\tpublic readonly editor;\n\n\tprivate readonly isModifedFocused;\n\tprivate readonly isOriginalFocused;\n\tpublic readonly isFocused;\n\n\tprivate readonly _resourceLabel;\n\n\tprivate readonly _resourceLabel2;\n\n\tprivate readonly _outerEditorHeight: number;\n\tprivate readonly _contextKeyService: IScopedContextKeyService;\n\n\tconstructor(\n\t\tprivate readonly _container: HTMLElement,\n\t\tprivate readonly _overflowWidgetsDomNode: HTMLElement,\n\t\tprivate readonly _workbenchUIElementFactory: IWorkbenchUIElementFactory,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService,\n\t\t@IContextKeyService _parentContextKeyService: IContextKeyService,\n\t) {\n\t\tsuper();\n\t\tthis._viewModel = observableValue<DocumentDiffItemViewModel | undefined>(this, undefined);\n\t\tthis._collapsed = derived(this, reader => this._viewModel.read(reader)?.collapsed.read(reader));\n\t\tthis._editorContentHeight = observableValue<number>(this, 500);\n\t\tthis.contentHeight = derived(this, reader => {\n\t\t\tconst h = this._collapsed.read(reader) ? 0 : this._editorContentHeight.read(reader);\n\t\t\treturn h + this._outerEditorHeight;\n\t\t});\n\t\tthis._modifiedContentWidth = observableValue<number>(this, 0);\n\t\tthis._modifiedWidth = observableValue<number>(this, 0);\n\t\tthis._originalContentWidth = observableValue<number>(this, 0);\n\t\tthis._originalWidth = observableValue<number>(this, 0);\n\t\tthis.maxScroll = derived(this, reader => {\n\t\t\tconst scroll1 = this._modifiedContentWidth.read(reader) - this._modifiedWidth.read(reader);\n\t\t\tconst scroll2 = this._originalContentWidth.read(reader) - this._originalWidth.read(reader);\n\t\t\tif (scroll1 > scroll2) {\n\t\t\t\treturn { maxScroll: scroll1, width: this._modifiedWidth.read(reader) };\n\t\t\t} else {\n\t\t\t\treturn { maxScroll: scroll2, width: this._originalWidth.read(reader) };\n\t\t\t}\n\t\t});\n\t\tthis._elements = h('div.multiDiffEntry', [\n\t\t\th('div.header@header', [\n\t\t\t\th('div.header-content', [\n\t\t\t\t\th('div.collapse-button@collapseButton'),\n\t\t\t\t\th('div.file-path', [\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.modified.show-file-icons@primaryPath', [] as any),\n\t\t\t\t\t\th('div.status.deleted@status', ['R']),\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.original.show-file-icons@secondaryPath', [] as any),\n\t\t\t\t\t]),\n\t\t\t\t\th('div.actions@actions'),\n\t\t\t\t]),\n\t\t\t]),\n\n\t\t\th('div.editorParent', [\n\t\t\t\th('div.editorContainer@editor'),\n\t\t\t])\n\t\t]) as Record<string, HTMLElement>;\n\t\tthis.editor = this._register(this._instantiationService.createInstance(DiffEditorWidget, this._elements.editor, {\n\t\t\toverflowWidgetsDomNode: this._overflowWidgetsDomNode,\n\t\t}, {}));\n\t\tthis.isModifedFocused = observableCodeEditor(this.editor.getModifiedEditor()).isFocused;\n\t\tthis.isOriginalFocused = observableCodeEditor(this.editor.getOriginalEditor()).isFocused;\n\t\tthis.isFocused = derived(this, reader => this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));\n\t\tthis._resourceLabel = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath))\n\t\t\t: undefined;\n\t\tthis._resourceLabel2 = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath))\n\t\t\t: undefined;\n\t\tthis._dataStore = this._register(new DisposableStore());\n\t\tthis._headerHeight = 40;\n\t\tthis._lastScrollTop = -1;\n\t\tthis._isSettingScrollTop = false;\n\n\t\tconst btn = new Button(this._elements.collapseButton, {});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tbtn.element.className = '';\n\t\t\tbtn.icon = this._collapsed.read(reader) ? Codicon.chevronRight : Codicon.chevronDown;\n\t\t}));\n\t\tthis._register(btn.onDidClick(() => {\n\t\t\tthis._viewModel.get()?.collapsed.set(!this._collapsed.get(), undefined);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tthis._elements.editor.style.display = this._collapsed.read(reader) ? 'none' : 'block';\n\t\t}));\n\n\t\tthis._register(this.editor.getModifiedEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getModifiedEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._modifiedWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getOriginalEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._originalWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidContentSizeChange(e => {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._editorContentHeight.set(e.contentHeight, tx);\n\t\t\t\tthis._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(), tx);\n\t\t\t\tthis._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(), tx);\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidScrollChange(e => {\n\t\t\tif (this._isSettingScrollTop) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!e.scrollTopChanged || !this._data) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst delta = e.scrollTop - this._lastScrollTop;\n\t\t\tthis._data.deltaScrollVertical(delta);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst isActive = this._viewModel.read(reader)?.isActive.read(reader);\n\t\t\tthis._elements.root.classList.toggle('active', isActive);\n\t\t}));\n\n\t\tthis._container.appendChild(this._elements.root);\n\t\tthis._outerEditorHeight = this._headerHeight;\n\n\t\tthis._contextKeyService = this._register(_parentContextKeyService.createScoped(this._elements.actions));\n\t\tconst instantiationService = this._register(this._instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n\t\tthis._register(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.actions, MenuId.MultiDiffEditorFileToolbar, {\n\t\t\tactionRunner: this._register(new ActionRunnerWithContext(() => (this._viewModel.get()?.modifiedUri))),\n\t\t\tmenuOptions: {\n\t\t\t\tshouldForwardArgs: true,\n\t\t\t},\n\t\t\ttoolbarOptions: { primaryGroup: g => g.startsWith('navigation') },\n\t\t\tactionViewItemProvider: (action, options) => createActionViewItem(instantiationService, action, options),\n\t\t}));\n\t}\n\n\tpublic setScrollLeft(left: number): void {\n\t\tif (this._modifiedContentWidth.get() - this._modifiedWidth.get() > this._originalContentWidth.get() - this._originalWidth.get()) {\n\t\t\tthis.editor.getModifiedEditor().setScrollLeft(left);\n\t\t} else {\n\t\t\tthis.editor.getOriginalEditor().setScrollLeft(left);\n\t\t}\n\t}\n\n\tprivate readonly _dataStore;\n\n\tprivate _data: TemplateData | undefined;\n\n\tpublic setData(data: TemplateData | undefined): void {\n\t\tthis._data = data;\n\t\tfunction updateOptions(options: IDiffEditorOptions): IDiffEditorOptions {\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tscrollBeyondLastLine: false,\n\t\t\t\thideUnchangedRegions: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t\tscrollbar: {\n\t\t\t\t\tvertical: 'hidden',\n\t\t\t\t\thorizontal: 'hidden',\n\t\t\t\t\thandleMouseWheel: false,\n\t\t\t\t\tuseShadows: false,\n\t\t\t\t},\n\t\t\t\trenderOverviewRuler: false,\n\t\t\t\tfixedOverflowWidgets: true,\n\t\t\t\toverviewRulerBorder: false,\n\t\t\t};\n\t\t}\n\n\t\tif (!data) {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._viewModel.set(undefined, tx);\n\t\t\t\tthis.editor.setDiffModel(null, tx);\n\t\t\t\tthis._dataStore.clear();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = data.viewModel.documentDiffItem;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis._resourceLabel?.setUri(data.viewModel.modifiedUri ?? data.viewModel.originalUri!, { strikethrough: data.viewModel.modifiedUri === undefined });\n\n\t\t\tlet isRenamed = false;\n\t\t\tlet isDeleted = false;\n\t\t\tlet isAdded = false;\n\t\t\tlet flag = '';\n\t\t\tif (data.viewModel.modifiedUri && data.viewModel.originalUri && data.viewModel.modifiedUri.path !== data.viewModel.originalUri.path) {\n\t\t\t\tflag = 'R';\n\t\t\t\tisRenamed = true;\n\t\t\t} else if (!data.viewModel.modifiedUri) {\n\t\t\t\tflag = 'D';\n\t\t\t\tisDeleted = true;\n\t\t\t} else if (!data.viewModel.originalUri) {\n\t\t\t\tflag = 'A';\n\t\t\t\tisAdded = true;\n\t\t\t}\n\t\t\tthis._elements.status.classList.toggle('renamed', isRenamed);\n\t\t\tthis._elements.status.classList.toggle('deleted', isDeleted);\n\t\t\tthis._elements.status.classList.toggle('added', isAdded);\n\t\t\tthis._elements.status.innerText = flag;\n\n\t\t\tthis._resourceLabel2?.setUri(isRenamed ? data.viewModel.originalUri : undefined, { strikethrough: true });\n\n\t\t\tthis._dataStore.clear();\n\t\t\tthis._viewModel.set(data.viewModel, tx);\n\t\t\tthis.editor.setDiffModel(data.viewModel.diffEditorViewModelRef, tx);\n\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t});\n\t\tif (value.onOptionsDidChange) {\n\t\t\tthis._dataStore.add(value.onOptionsDidChange(() => {\n\t\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t\t}));\n\t\t}\n\t\tdata.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore, value => {\n\t\t\tif (!value) {\n\t\t\t\tthis.setData(undefined);\n\t\t\t}\n\t\t});\n\n\t\tif (data.viewModel.documentDiffItem.contextKeys) {\n\t\t\tfor (const [key, value] of Object.entries(data.viewModel.documentDiffItem.contextKeys)) {\n\t\t\t\tthis._contextKeyService.createKey(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate readonly _headerHeight;\n\n\tprivate _lastScrollTop;\n\tprivate _isSettingScrollTop;\n\n\tpublic render(verticalRange: OffsetRange, width: number, editorScroll: number, viewPort: OffsetRange): void {\n\t\tthis._elements.root.style.visibility = 'visible';\n\t\tthis._elements.root.style.top = `${verticalRange.start}px`;\n\t\tthis._elements.root.style.height = `${verticalRange.length}px`;\n\t\tthis._elements.root.style.width = `${width}px`;\n\t\tthis._elements.root.style.position = 'absolute';\n\n\t\t// For sticky scroll\n\t\tconst maxDelta = verticalRange.length - this._headerHeight;\n\t\tconst delta = Math.max(0, Math.min(viewPort.start - verticalRange.start, maxDelta));\n\t\tthis._elements.header.style.transform = `translateY(${delta}px)`;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis.editor.layout({\n\t\t\t\twidth: width - 2 * 8 - 2 * 1,\n\t\t\t\theight: verticalRange.length - this._outerEditorHeight,\n\t\t\t});\n\t\t});\n\t\ttry {\n\t\t\tthis._isSettingScrollTop = true;\n\t\t\tthis._lastScrollTop = editorScroll;\n\t\t\tthis.editor.getOriginalEditor().setScrollTop(editorScroll);\n\t\t} finally {\n\t\t\tthis._isSettingScrollTop = false;\n\t\t}\n\n\t\tthis._elements.header.classList.toggle('shadow', delta > 0 || editorScroll > 0);\n\t\tthis._elements.header.classList.toggle('collapsed', delta === maxDelta);\n\t}\n\n\tpublic hide(): void {\n\t\tthis._elements.root.style.top = `-100000px`;\n\t\tthis._elements.root.style.visibility = 'hidden'; // Some editor parts are still visible\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.ts","vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.ts"],"names":[],"mappings":"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","file":"diffEditorItemTemplate.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 *--------------------------------------------------------------------------------------------*/\nimport { h } from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, globalTransaction, observableValue } from '../../../../base/common/observable.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService, type IScopedContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { IDiffEditorOptions } from '../../../common/config/editorOptions.js';\nimport { OffsetRange } from '../../../common/core/ranges/offsetRange.js';\nimport { observableCodeEditor } from '../../observableCodeEditor.js';\nimport { DiffEditorWidget } from '../diffEditor/diffEditorWidget.js';\nimport { DocumentDiffItemViewModel } from './multiDiffEditorViewModel.js';\nimport { IObjectData, IPooledObject } from './objectPool.js';\nimport { ActionRunnerWithContext } from './utils.js';\nimport { IWorkbenchUIElementFactory } from './workbenchUIElementFactory.js';\n\nexport class TemplateData implements IObjectData {\n\tconstructor(\n\t\tpublic readonly viewModel: DocumentDiffItemViewModel,\n\t\tpublic readonly deltaScrollVertical: (delta: number) => void,\n\t) { }\n\n\n\tgetId(): unknown {\n\t\treturn this.viewModel;\n\t}\n}\n\nexport class DiffEditorItemTemplate extends Disposable implements IPooledObject<TemplateData> {\n\tprivate readonly _viewModel;\n\n\tprivate readonly _collapsed;\n\n\tprivate readonly _editorContentHeight;\n\tpublic readonly contentHeight;\n\n\tprivate readonly _modifiedContentWidth;\n\tprivate readonly _modifiedWidth;\n\tprivate readonly _originalContentWidth;\n\tprivate readonly _originalWidth;\n\n\tpublic readonly maxScroll;\n\n\tprivate readonly _elements;\n\n\tpublic readonly editor;\n\n\tprivate readonly isModifedFocused;\n\tprivate readonly isOriginalFocused;\n\tpublic readonly isFocused;\n\n\tprivate readonly _resourceLabel;\n\n\tprivate readonly _resourceLabel2;\n\n\tprivate readonly _outerEditorHeight: number;\n\tprivate readonly _contextKeyService: IScopedContextKeyService;\n\n\tconstructor(\n\t\tprivate readonly _container: HTMLElement,\n\t\tprivate readonly _overflowWidgetsDomNode: HTMLElement,\n\t\tprivate readonly _workbenchUIElementFactory: IWorkbenchUIElementFactory,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService,\n\t\t@IContextKeyService _parentContextKeyService: IContextKeyService,\n\t) {\n\t\tsuper();\n\t\tthis._viewModel = observableValue<DocumentDiffItemViewModel | undefined>(this, undefined);\n\t\tthis._collapsed = derived(this, reader => this._viewModel.read(reader)?.collapsed.read(reader));\n\t\tthis._editorContentHeight = observableValue<number>(this, 500);\n\t\tthis.contentHeight = derived(this, reader => {\n\t\t\tconst h = this._collapsed.read(reader) ? 0 : this._editorContentHeight.read(reader);\n\t\t\treturn h + this._outerEditorHeight;\n\t\t});\n\t\tthis._modifiedContentWidth = observableValue<number>(this, 0);\n\t\tthis._modifiedWidth = observableValue<number>(this, 0);\n\t\tthis._originalContentWidth = observableValue<number>(this, 0);\n\t\tthis._originalWidth = observableValue<number>(this, 0);\n\t\tthis.maxScroll = derived(this, reader => {\n\t\t\tconst scroll1 = this._modifiedContentWidth.read(reader) - this._modifiedWidth.read(reader);\n\t\t\tconst scroll2 = this._originalContentWidth.read(reader) - this._originalWidth.read(reader);\n\t\t\tif (scroll1 > scroll2) {\n\t\t\t\treturn { maxScroll: scroll1, width: this._modifiedWidth.read(reader) };\n\t\t\t} else {\n\t\t\t\treturn { maxScroll: scroll2, width: this._originalWidth.read(reader) };\n\t\t\t}\n\t\t});\n\t\tthis._elements = h('div.multiDiffEntry', [\n\t\t\th('div.header@header', [\n\t\t\t\th('div.header-content', [\n\t\t\t\t\th('div.collapse-button@collapseButton'),\n\t\t\t\t\th('div.file-path', [\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.modified.show-file-icons@primaryPath', [] as any),\n\t\t\t\t\t\th('div.status.deleted@status', ['R']),\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.original.show-file-icons@secondaryPath', [] as any),\n\t\t\t\t\t]),\n\t\t\t\t\th('div.actions@actions'),\n\t\t\t\t]),\n\t\t\t]),\n\n\t\t\th('div.editorParent', [\n\t\t\t\th('div.editorContainer@editor'),\n\t\t\t])\n\t\t]) as Record<string, HTMLElement>;\n\t\tthis.editor = this._register(this._instantiationService.createInstance(DiffEditorWidget, this._elements.editor, {\n\t\t\toverflowWidgetsDomNode: this._overflowWidgetsDomNode,\n\t\t\tfixedOverflowWidgets: true\n\t\t}, {}));\n\t\tthis.isModifedFocused = observableCodeEditor(this.editor.getModifiedEditor()).isFocused;\n\t\tthis.isOriginalFocused = observableCodeEditor(this.editor.getOriginalEditor()).isFocused;\n\t\tthis.isFocused = derived(this, reader => this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));\n\t\tthis._resourceLabel = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath))\n\t\t\t: undefined;\n\t\tthis._resourceLabel2 = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath))\n\t\t\t: undefined;\n\t\tthis._dataStore = this._register(new DisposableStore());\n\t\tthis._headerHeight = 40;\n\t\tthis._lastScrollTop = -1;\n\t\tthis._isSettingScrollTop = false;\n\n\t\tconst btn = new Button(this._elements.collapseButton, {});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tbtn.element.className = '';\n\t\t\tbtn.icon = this._collapsed.read(reader) ? Codicon.chevronRight : Codicon.chevronDown;\n\t\t}));\n\t\tthis._register(btn.onDidClick(() => {\n\t\t\tthis._viewModel.get()?.collapsed.set(!this._collapsed.get(), undefined);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tthis._elements.editor.style.display = this._collapsed.read(reader) ? 'none' : 'block';\n\t\t}));\n\n\t\tthis._register(this.editor.getModifiedEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getModifiedEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._modifiedWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getOriginalEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._originalWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidContentSizeChange(e => {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._editorContentHeight.set(e.contentHeight, tx);\n\t\t\t\tthis._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(), tx);\n\t\t\t\tthis._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(), tx);\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidScrollChange(e => {\n\t\t\tif (this._isSettingScrollTop) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!e.scrollTopChanged || !this._data) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst delta = e.scrollTop - this._lastScrollTop;\n\t\t\tthis._data.deltaScrollVertical(delta);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst isActive = this._viewModel.read(reader)?.isActive.read(reader);\n\t\t\tthis._elements.root.classList.toggle('active', isActive);\n\t\t}));\n\n\t\tthis._container.appendChild(this._elements.root);\n\t\tthis._outerEditorHeight = this._headerHeight;\n\n\t\tthis._contextKeyService = this._register(_parentContextKeyService.createScoped(this._elements.actions));\n\t\tconst instantiationService = this._register(this._instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n\t\tthis._register(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.actions, MenuId.MultiDiffEditorFileToolbar, {\n\t\t\tactionRunner: this._register(new ActionRunnerWithContext(() => (this._viewModel.get()?.modifiedUri))),\n\t\t\tmenuOptions: {\n\t\t\t\tshouldForwardArgs: true,\n\t\t\t},\n\t\t\ttoolbarOptions: { primaryGroup: g => g.startsWith('navigation') },\n\t\t\tactionViewItemProvider: (action, options) => createActionViewItem(instantiationService, action, options),\n\t\t}));\n\t}\n\n\tpublic setScrollLeft(left: number): void {\n\t\tif (this._modifiedContentWidth.get() - this._modifiedWidth.get() > this._originalContentWidth.get() - this._originalWidth.get()) {\n\t\t\tthis.editor.getModifiedEditor().setScrollLeft(left);\n\t\t} else {\n\t\t\tthis.editor.getOriginalEditor().setScrollLeft(left);\n\t\t}\n\t}\n\n\tprivate readonly _dataStore;\n\n\tprivate _data: TemplateData | undefined;\n\n\tpublic setData(data: TemplateData | undefined): void {\n\t\tthis._data = data;\n\t\tfunction updateOptions(options: IDiffEditorOptions): IDiffEditorOptions {\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tscrollBeyondLastLine: false,\n\t\t\t\thideUnchangedRegions: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t\tscrollbar: {\n\t\t\t\t\tvertical: 'hidden',\n\t\t\t\t\thorizontal: 'hidden',\n\t\t\t\t\thandleMouseWheel: false,\n\t\t\t\t\tuseShadows: false,\n\t\t\t\t},\n\t\t\t\trenderOverviewRuler: false,\n\t\t\t\tfixedOverflowWidgets: true,\n\t\t\t\toverviewRulerBorder: false,\n\t\t\t};\n\t\t}\n\n\t\tif (!data) {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._viewModel.set(undefined, tx);\n\t\t\t\tthis.editor.setDiffModel(null, tx);\n\t\t\t\tthis._dataStore.clear();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = data.viewModel.documentDiffItem;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis._resourceLabel?.setUri(data.viewModel.modifiedUri ?? data.viewModel.originalUri!, { strikethrough: data.viewModel.modifiedUri === undefined });\n\n\t\t\tlet isRenamed = false;\n\t\t\tlet isDeleted = false;\n\t\t\tlet isAdded = false;\n\t\t\tlet flag = '';\n\t\t\tif (data.viewModel.modifiedUri && data.viewModel.originalUri && data.viewModel.modifiedUri.path !== data.viewModel.originalUri.path) {\n\t\t\t\tflag = 'R';\n\t\t\t\tisRenamed = true;\n\t\t\t} else if (!data.viewModel.modifiedUri) {\n\t\t\t\tflag = 'D';\n\t\t\t\tisDeleted = true;\n\t\t\t} else if (!data.viewModel.originalUri) {\n\t\t\t\tflag = 'A';\n\t\t\t\tisAdded = true;\n\t\t\t}\n\t\t\tthis._elements.status.classList.toggle('renamed', isRenamed);\n\t\t\tthis._elements.status.classList.toggle('deleted', isDeleted);\n\t\t\tthis._elements.status.classList.toggle('added', isAdded);\n\t\t\tthis._elements.status.innerText = flag;\n\n\t\t\tthis._resourceLabel2?.setUri(isRenamed ? data.viewModel.originalUri : undefined, { strikethrough: true });\n\n\t\t\tthis._dataStore.clear();\n\t\t\tthis._viewModel.set(data.viewModel, tx);\n\t\t\tthis.editor.setDiffModel(data.viewModel.diffEditorViewModelRef, tx);\n\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t});\n\t\tif (value.onOptionsDidChange) {\n\t\t\tthis._dataStore.add(value.onOptionsDidChange(() => {\n\t\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t\t}));\n\t\t}\n\t\tdata.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore, value => {\n\t\t\tif (!value) {\n\t\t\t\tthis.setData(undefined);\n\t\t\t}\n\t\t});\n\n\t\tif (data.viewModel.documentDiffItem.contextKeys) {\n\t\t\tfor (const [key, value] of Object.entries(data.viewModel.documentDiffItem.contextKeys)) {\n\t\t\t\tthis._contextKeyService.createKey(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate readonly _headerHeight;\n\n\tprivate _lastScrollTop;\n\tprivate _isSettingScrollTop;\n\n\tpublic render(verticalRange: OffsetRange, width: number, editorScroll: number, viewPort: OffsetRange): void {\n\t\tthis._elements.root.style.visibility = 'visible';\n\t\tthis._elements.root.style.top = `${verticalRange.start}px`;\n\t\tthis._elements.root.style.height = `${verticalRange.length}px`;\n\t\tthis._elements.root.style.width = `${width}px`;\n\t\tthis._elements.root.style.position = 'absolute';\n\n\t\t// For sticky scroll\n\t\tconst maxDelta = verticalRange.length - this._headerHeight;\n\t\tconst delta = Math.max(0, Math.min(viewPort.start - verticalRange.start, maxDelta));\n\t\tthis._elements.header.style.transform = `translateY(${delta}px)`;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis.editor.layout({\n\t\t\t\twidth: width - 2 * 8 - 2 * 1,\n\t\t\t\theight: verticalRange.length - this._outerEditorHeight,\n\t\t\t});\n\t\t});\n\t\ttry {\n\t\t\tthis._isSettingScrollTop = true;\n\t\t\tthis._lastScrollTop = editorScroll;\n\t\t\tthis.editor.getOriginalEditor().setScrollTop(editorScroll);\n\t\t} finally {\n\t\t\tthis._isSettingScrollTop = false;\n\t\t}\n\n\t\tthis._elements.header.classList.toggle('shadow', delta > 0 || editorScroll > 0);\n\t\tthis._elements.header.classList.toggle('collapsed', delta === maxDelta);\n\t}\n\n\tpublic hide(): void {\n\t\tthis._elements.root.style.top = `-100000px`;\n\t\tthis._elements.root.style.visibility = 'hidden'; // Some editor parts are still visible\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\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 *--------------------------------------------------------------------------------------------*/\nimport { h } from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, globalTransaction, observableValue } from '../../../../base/common/observable.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { MenuWorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IContextKeyService, type IScopedContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ServiceCollection } from '../../../../platform/instantiation/common/serviceCollection.js';\nimport { IDiffEditorOptions } from '../../../common/config/editorOptions.js';\nimport { OffsetRange } from '../../../common/core/ranges/offsetRange.js';\nimport { observableCodeEditor } from '../../observableCodeEditor.js';\nimport { DiffEditorWidget } from '../diffEditor/diffEditorWidget.js';\nimport { DocumentDiffItemViewModel } from './multiDiffEditorViewModel.js';\nimport { IObjectData, IPooledObject } from './objectPool.js';\nimport { ActionRunnerWithContext } from './utils.js';\nimport { IWorkbenchUIElementFactory } from './workbenchUIElementFactory.js';\n\nexport class TemplateData implements IObjectData {\n\tconstructor(\n\t\tpublic readonly viewModel: DocumentDiffItemViewModel,\n\t\tpublic readonly deltaScrollVertical: (delta: number) => void,\n\t) { }\n\n\n\tgetId(): unknown {\n\t\treturn this.viewModel;\n\t}\n}\n\nexport class DiffEditorItemTemplate extends Disposable implements IPooledObject<TemplateData> {\n\tprivate readonly _viewModel;\n\n\tprivate readonly _collapsed;\n\n\tprivate readonly _editorContentHeight;\n\tpublic readonly contentHeight;\n\n\tprivate readonly _modifiedContentWidth;\n\tprivate readonly _modifiedWidth;\n\tprivate readonly _originalContentWidth;\n\tprivate readonly _originalWidth;\n\n\tpublic readonly maxScroll;\n\n\tprivate readonly _elements;\n\n\tpublic readonly editor;\n\n\tprivate readonly isModifedFocused;\n\tprivate readonly isOriginalFocused;\n\tpublic readonly isFocused;\n\n\tprivate readonly _resourceLabel;\n\n\tprivate readonly _resourceLabel2;\n\n\tprivate readonly _outerEditorHeight: number;\n\tprivate readonly _contextKeyService: IScopedContextKeyService;\n\n\tconstructor(\n\t\tprivate readonly _container: HTMLElement,\n\t\tprivate readonly _overflowWidgetsDomNode: HTMLElement,\n\t\tprivate readonly _workbenchUIElementFactory: IWorkbenchUIElementFactory,\n\t\t@IInstantiationService private readonly _instantiationService: IInstantiationService,\n\t\t@IContextKeyService _parentContextKeyService: IContextKeyService,\n\t) {\n\t\tsuper();\n\t\tthis._viewModel = observableValue<DocumentDiffItemViewModel | undefined>(this, undefined);\n\t\tthis._collapsed = derived(this, reader => this._viewModel.read(reader)?.collapsed.read(reader));\n\t\tthis._editorContentHeight = observableValue<number>(this, 500);\n\t\tthis.contentHeight = derived(this, reader => {\n\t\t\tconst h = this._collapsed.read(reader) ? 0 : this._editorContentHeight.read(reader);\n\t\t\treturn h + this._outerEditorHeight;\n\t\t});\n\t\tthis._modifiedContentWidth = observableValue<number>(this, 0);\n\t\tthis._modifiedWidth = observableValue<number>(this, 0);\n\t\tthis._originalContentWidth = observableValue<number>(this, 0);\n\t\tthis._originalWidth = observableValue<number>(this, 0);\n\t\tthis.maxScroll = derived(this, reader => {\n\t\t\tconst scroll1 = this._modifiedContentWidth.read(reader) - this._modifiedWidth.read(reader);\n\t\t\tconst scroll2 = this._originalContentWidth.read(reader) - this._originalWidth.read(reader);\n\t\t\tif (scroll1 > scroll2) {\n\t\t\t\treturn { maxScroll: scroll1, width: this._modifiedWidth.read(reader) };\n\t\t\t} else {\n\t\t\t\treturn { maxScroll: scroll2, width: this._originalWidth.read(reader) };\n\t\t\t}\n\t\t});\n\t\tthis._elements = h('div.multiDiffEntry', [\n\t\t\th('div.header@header', [\n\t\t\t\th('div.header-content', [\n\t\t\t\t\th('div.collapse-button@collapseButton'),\n\t\t\t\t\th('div.file-path', [\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.modified.show-file-icons@primaryPath', [] as any),\n\t\t\t\t\t\th('div.status.deleted@status', ['R']),\n\t\t\t\t\t\t// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any\n\t\t\t\t\t\th('div.title.original.show-file-icons@secondaryPath', [] as any),\n\t\t\t\t\t]),\n\t\t\t\t\th('div.actions@actions'),\n\t\t\t\t]),\n\t\t\t]),\n\n\t\t\th('div.editorParent', [\n\t\t\t\th('div.editorContainer@editor'),\n\t\t\t])\n\t\t]) as Record<string, HTMLElement>;\n\t\tthis.editor = this._register(this._instantiationService.createInstance(DiffEditorWidget, this._elements.editor, {\n\t\t\toverflowWidgetsDomNode: this._overflowWidgetsDomNode,\n\t\t\tfixedOverflowWidgets: true\n\t\t}, {}));\n\t\tthis.isModifedFocused = observableCodeEditor(this.editor.getModifiedEditor()).isFocused;\n\t\tthis.isOriginalFocused = observableCodeEditor(this.editor.getOriginalEditor()).isFocused;\n\t\tthis.isFocused = derived(this, reader => this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));\n\t\tthis._resourceLabel = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath))\n\t\t\t: undefined;\n\t\tthis._resourceLabel2 = this._workbenchUIElementFactory.createResourceLabel\n\t\t\t? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath))\n\t\t\t: undefined;\n\t\tthis._dataStore = this._register(new DisposableStore());\n\t\tthis._headerHeight = 40;\n\t\tthis._lastScrollTop = -1;\n\t\tthis._isSettingScrollTop = false;\n\n\t\tconst btn = new Button(this._elements.collapseButton, {});\n\n\t\tthis._register(autorun(reader => {\n\t\t\tbtn.element.className = '';\n\t\t\tbtn.icon = this._collapsed.read(reader) ? Codicon.chevronRight : Codicon.chevronDown;\n\t\t}));\n\t\tthis._register(btn.onDidClick(() => {\n\t\t\tthis._viewModel.get()?.collapsed.set(!this._collapsed.get(), undefined);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tthis._elements.editor.style.display = this._collapsed.read(reader) ? 'none' : 'block';\n\t\t}));\n\n\t\tthis._register(this.editor.getModifiedEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getModifiedEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._modifiedWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidLayoutChange(e => {\n\t\t\tconst width = this.editor.getOriginalEditor().getLayoutInfo().contentWidth;\n\t\t\tthis._originalWidth.set(width, undefined);\n\t\t}));\n\n\t\tthis._register(this.editor.onDidContentSizeChange(e => {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._editorContentHeight.set(e.contentHeight, tx);\n\t\t\t\tthis._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(), tx);\n\t\t\t\tthis._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(), tx);\n\t\t\t});\n\t\t}));\n\n\t\tthis._register(this.editor.getOriginalEditor().onDidScrollChange(e => {\n\t\t\tif (this._isSettingScrollTop) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!e.scrollTopChanged || !this._data) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst delta = e.scrollTop - this._lastScrollTop;\n\t\t\tthis._data.deltaScrollVertical(delta);\n\t\t}));\n\n\t\tthis._register(autorun(reader => {\n\t\t\tconst isActive = this._viewModel.read(reader)?.isActive.read(reader);\n\t\t\tthis._elements.root.classList.toggle('active', isActive);\n\t\t}));\n\n\t\tthis._container.appendChild(this._elements.root);\n\t\tthis._outerEditorHeight = this._headerHeight;\n\n\t\tthis._contextKeyService = this._register(_parentContextKeyService.createScoped(this._elements.actions));\n\t\tconst instantiationService = this._register(this._instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n\t\tthis._register(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.actions, MenuId.MultiDiffEditorFileToolbar, {\n\t\t\tactionRunner: this._register(new ActionRunnerWithContext(() => (this._viewModel.get()?.modifiedUri))),\n\t\t\tmenuOptions: {\n\t\t\t\tshouldForwardArgs: true,\n\t\t\t},\n\t\t\ttoolbarOptions: { primaryGroup: g => g.startsWith('navigation') },\n\t\t\tactionViewItemProvider: (action, options) => createActionViewItem(instantiationService, action, options),\n\t\t}));\n\t}\n\n\tpublic setScrollLeft(left: number): void {\n\t\tif (this._modifiedContentWidth.get() - this._modifiedWidth.get() > this._originalContentWidth.get() - this._originalWidth.get()) {\n\t\t\tthis.editor.getModifiedEditor().setScrollLeft(left);\n\t\t} else {\n\t\t\tthis.editor.getOriginalEditor().setScrollLeft(left);\n\t\t}\n\t}\n\n\tprivate readonly _dataStore;\n\n\tprivate _data: TemplateData | undefined;\n\n\tpublic setData(data: TemplateData | undefined): void {\n\t\tthis._data = data;\n\t\tfunction updateOptions(options: IDiffEditorOptions): IDiffEditorOptions {\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tscrollBeyondLastLine: false,\n\t\t\t\thideUnchangedRegions: {\n\t\t\t\t\tenabled: true,\n\t\t\t\t},\n\t\t\t\tscrollbar: {\n\t\t\t\t\tvertical: 'hidden',\n\t\t\t\t\thorizontal: 'hidden',\n\t\t\t\t\thandleMouseWheel: false,\n\t\t\t\t\tuseShadows: false,\n\t\t\t\t},\n\t\t\t\trenderOverviewRuler: false,\n\t\t\t\tfixedOverflowWidgets: true,\n\t\t\t\toverviewRulerBorder: false,\n\t\t\t};\n\t\t}\n\n\t\tif (!data) {\n\t\t\tglobalTransaction(tx => {\n\t\t\t\tthis._viewModel.set(undefined, tx);\n\t\t\t\tthis.editor.setDiffModel(null, tx);\n\t\t\t\tthis._dataStore.clear();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = data.viewModel.documentDiffItem;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis._resourceLabel?.setUri(data.viewModel.modifiedUri ?? data.viewModel.originalUri!, { strikethrough: data.viewModel.modifiedUri === undefined });\n\n\t\t\tlet isRenamed = false;\n\t\t\tlet isDeleted = false;\n\t\t\tlet isAdded = false;\n\t\t\tlet flag = '';\n\t\t\tif (data.viewModel.modifiedUri && data.viewModel.originalUri && data.viewModel.modifiedUri.path !== data.viewModel.originalUri.path) {\n\t\t\t\tflag = 'R';\n\t\t\t\tisRenamed = true;\n\t\t\t} else if (!data.viewModel.modifiedUri) {\n\t\t\t\tflag = 'D';\n\t\t\t\tisDeleted = true;\n\t\t\t} else if (!data.viewModel.originalUri) {\n\t\t\t\tflag = 'A';\n\t\t\t\tisAdded = true;\n\t\t\t}\n\t\t\tthis._elements.status.classList.toggle('renamed', isRenamed);\n\t\t\tthis._elements.status.classList.toggle('deleted', isDeleted);\n\t\t\tthis._elements.status.classList.toggle('added', isAdded);\n\t\t\tthis._elements.status.innerText = flag;\n\n\t\t\tthis._resourceLabel2?.setUri(isRenamed ? data.viewModel.originalUri : undefined, { strikethrough: true });\n\n\t\t\tthis._dataStore.clear();\n\t\t\tthis._viewModel.set(data.viewModel, tx);\n\t\t\tthis.editor.setDiffModel(data.viewModel.diffEditorViewModelRef, tx);\n\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t});\n\t\tif (value.onOptionsDidChange) {\n\t\t\tthis._dataStore.add(value.onOptionsDidChange(() => {\n\t\t\t\tthis.editor.updateOptions(updateOptions(value.options ?? {}));\n\t\t\t}));\n\t\t}\n\t\tdata.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore, value => {\n\t\t\tif (!value) {\n\t\t\t\tthis.setData(undefined);\n\t\t\t}\n\t\t});\n\n\t\tif (data.viewModel.documentDiffItem.contextKeys) {\n\t\t\tfor (const [key, value] of Object.entries(data.viewModel.documentDiffItem.contextKeys)) {\n\t\t\t\tthis._contextKeyService.createKey(key, value);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate readonly _headerHeight;\n\n\tprivate _lastScrollTop;\n\tprivate _isSettingScrollTop;\n\n\tpublic render(verticalRange: OffsetRange, width: number, editorScroll: number, viewPort: OffsetRange): void {\n\t\tthis._elements.root.style.visibility = 'visible';\n\t\tthis._elements.root.style.top = `${verticalRange.start}px`;\n\t\tthis._elements.root.style.height = `${verticalRange.length}px`;\n\t\tthis._elements.root.style.width = `${width}px`;\n\t\tthis._elements.root.style.position = 'absolute';\n\n\t\t// For sticky scroll\n\t\tconst maxDelta = verticalRange.length - this._headerHeight;\n\t\tconst delta = Math.max(0, Math.min(viewPort.start - verticalRange.start, maxDelta));\n\t\tthis._elements.header.style.transform = `translateY(${delta}px)`;\n\n\t\tglobalTransaction(tx => {\n\t\t\tthis.editor.layout({\n\t\t\t\twidth: width - 2 * 8 - 2 * 1,\n\t\t\t\theight: verticalRange.length - this._outerEditorHeight,\n\t\t\t});\n\t\t});\n\t\ttry {\n\t\t\tthis._isSettingScrollTop = true;\n\t\t\tthis._lastScrollTop = editorScroll;\n\t\t\tthis.editor.getOriginalEditor().setScrollTop(editorScroll);\n\t\t} finally {\n\t\t\tthis._isSettingScrollTop = false;\n\t\t}\n\n\t\tthis._elements.header.classList.toggle('shadow', delta > 0 || editorScroll > 0);\n\t\tthis._elements.header.classList.toggle('collapsed', delta === maxDelta);\n\t}\n\n\tpublic hide(): void {\n\t\tthis._elements.root.style.top = `-100000px`;\n\t\tthis._elements.root.style.visibility = 'hidden'; // Some editor parts are still visible\n\t}\n}\n"]}
@@ -9,7 +9,6 @@ import { Widget } from '../../../../base/browser/ui/widget.js';
9
9
  import { RunOnceScheduler } from '../../../../base/common/async.js';
10
10
  import { FIND_IDS } from './findModel.js';
11
11
  import { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';
12
- import { createInstantHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
13
12
  export class FindOptionsWidget extends Widget {
14
13
  static { this.ID = 'editor.contrib.findOptionsWidget'; }
15
14
  constructor(editor, state, keybindingService) {
@@ -31,11 +30,11 @@ export class FindOptionsWidget extends Widget {
31
30
  inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),
32
31
  inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),
33
32
  };
34
- const hoverDelegate = this._register(createInstantHoverDelegate());
33
+ const hoverLifecycleOptions = { groupId: 'find-options-widget' };
35
34
  this.caseSensitive = this._register(new CaseSensitiveToggle({
36
35
  appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),
37
36
  isChecked: this._state.matchCase,
38
- hoverDelegate,
37
+ hoverLifecycleOptions,
39
38
  ...toggleStyles
40
39
  }));
41
40
  this._domNode.appendChild(this.caseSensitive.domNode);
@@ -47,7 +46,7 @@ export class FindOptionsWidget extends Widget {
47
46
  this.wholeWords = this._register(new WholeWordsToggle({
48
47
  appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),
49
48
  isChecked: this._state.wholeWord,
50
- hoverDelegate,
49
+ hoverLifecycleOptions,
51
50
  ...toggleStyles
52
51
  }));
53
52
  this._domNode.appendChild(this.wholeWords.domNode);
@@ -59,7 +58,7 @@ export class FindOptionsWidget extends Widget {
59
58
  this.regex = this._register(new RegexToggle({
60
59
  appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),
61
60
  isChecked: this._state.isRegex,
62
- hoverDelegate,
61
+ hoverLifecycleOptions,
63
62
  ...toggleStyles
64
63
  }));
65
64
  this._domNode.appendChild(this.regex.domNode);
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/find/browser/findOptionsWidget.ts","vs/editor/contrib/find/browser/findOptionsWidget.ts"],"names":[],"mappings":"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","file":"findOptionsWidget.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 * as dom from '../../../../base/browser/dom.js';\nimport './findOptionsWidget.css';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from '../../../../base/browser/ui/findinput/findInputToggles.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference } from '../../../browser/editorBrowser.js';\nimport { FIND_IDS } from './findModel.js';\nimport { FindReplaceState } from './findState.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { createInstantHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\n\nexport class FindOptionsWidget extends Widget implements IOverlayWidget {\n\n\tprivate static readonly ID = 'editor.contrib.findOptionsWidget';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _state: FindReplaceState;\n\tprivate readonly _keybindingService: IKeybindingService;\n\n\tprivate readonly _domNode: HTMLElement;\n\tprivate readonly regex: RegexToggle;\n\tprivate readonly wholeWords: WholeWordsToggle;\n\tprivate readonly caseSensitive: CaseSensitiveToggle;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\tstate: FindReplaceState,\n\t\tkeybindingService: IKeybindingService\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\t\tthis._state = state;\n\t\tthis._keybindingService = keybindingService;\n\n\t\tthis._domNode = document.createElement('div');\n\t\tthis._domNode.className = 'findOptionsWidget';\n\t\tthis._domNode.style.display = 'none';\n\t\tthis._domNode.style.top = '10px';\n\t\tthis._domNode.style.zIndex = '12';\n\t\tthis._domNode.setAttribute('role', 'presentation');\n\t\tthis._domNode.setAttribute('aria-hidden', 'true');\n\n\t\tconst toggleStyles = {\n\t\t\tinputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n\t\t\tinputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n\t\t\tinputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n\t\t};\n\n\t\tconst hoverDelegate = this._register(createInstantHoverDelegate());\n\n\t\tthis.caseSensitive = this._register(new CaseSensitiveToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n\t\t\tisChecked: this._state.matchCase,\n\t\t\thoverDelegate,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.caseSensitive.domNode);\n\t\tthis._register(this.caseSensitive.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tmatchCase: this.caseSensitive.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.wholeWords = this._register(new WholeWordsToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n\t\t\tisChecked: this._state.wholeWord,\n\t\t\thoverDelegate,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.wholeWords.domNode);\n\t\tthis._register(this.wholeWords.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\twholeWord: this.wholeWords.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.regex = this._register(new RegexToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n\t\t\tisChecked: this._state.isRegex,\n\t\t\thoverDelegate,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.regex.domNode);\n\t\tthis._register(this.regex.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tisRegex: this.regex.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis._editor.addOverlayWidget(this);\n\n\t\tthis._register(this._state.onFindReplaceStateChange((e) => {\n\t\t\tlet somethingChanged = false;\n\t\t\tif (e.isRegex) {\n\t\t\t\tthis.regex.checked = this._state.isRegex;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.wholeWord) {\n\t\t\t\tthis.wholeWords.checked = this._state.wholeWord;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.matchCase) {\n\t\t\t\tthis.caseSensitive.checked = this._state.matchCase;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (!this._state.isRevealed && somethingChanged) {\n\t\t\t\tthis._revealTemporarily();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(dom.addDisposableListener(this._domNode, dom.EventType.MOUSE_LEAVE, (e) => this._onMouseLeave()));\n\t\tthis._register(dom.addDisposableListener(this._domNode, 'mouseover', (e) => this._onMouseOver()));\n\t}\n\n\tprivate _keybindingLabelFor(actionId: string): string {\n\t\tconst kb = this._keybindingService.lookupKeybinding(actionId);\n\t\tif (!kb) {\n\t\t\treturn '';\n\t\t}\n\t\treturn ` (${kb.getLabel()})`;\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._editor.removeOverlayWidget(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ----- IOverlayWidget API\n\n\tpublic getId(): string {\n\t\treturn FindOptionsWidget.ID;\n\t}\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode;\n\t}\n\n\tpublic getPosition(): IOverlayWidgetPosition {\n\t\treturn {\n\t\t\tpreference: OverlayWidgetPositionPreference.TOP_RIGHT_CORNER\n\t\t};\n\t}\n\n\tpublic highlightFindOptions(): void {\n\t\tthis._revealTemporarily();\n\t}\n\n\tprivate _hideSoon = this._register(new RunOnceScheduler(() => this._hide(), 2000));\n\n\tprivate _revealTemporarily(): void {\n\t\tthis._show();\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseLeave(): void {\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseOver(): void {\n\t\tthis._hideSoon.cancel();\n\t}\n\n\tprivate _isVisible: boolean = false;\n\n\tprivate _show(): void {\n\t\tif (this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = true;\n\t\tthis._domNode.style.display = 'block';\n\t}\n\n\tprivate _hide(): void {\n\t\tif (!this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = false;\n\t\tthis._domNode.style.display = 'none';\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\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 * as dom from '../../../../base/browser/dom.js';\nimport './findOptionsWidget.css';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from '../../../../base/browser/ui/findinput/findInputToggles.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference } from '../../../browser/editorBrowser.js';\nimport { FIND_IDS } from './findModel.js';\nimport { FindReplaceState } from './findState.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { createInstantHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\n\nexport class FindOptionsWidget extends Widget implements IOverlayWidget {\n\n\tprivate static readonly ID = 'editor.contrib.findOptionsWidget';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _state: FindReplaceState;\n\tprivate readonly _keybindingService: IKeybindingService;\n\n\tprivate readonly _domNode: HTMLElement;\n\tprivate readonly regex: RegexToggle;\n\tprivate readonly wholeWords: WholeWordsToggle;\n\tprivate readonly caseSensitive: CaseSensitiveToggle;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\tstate: FindReplaceState,\n\t\tkeybindingService: IKeybindingService\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\t\tthis._state = state;\n\t\tthis._keybindingService = keybindingService;\n\n\t\tthis._domNode = document.createElement('div');\n\t\tthis._domNode.className = 'findOptionsWidget';\n\t\tthis._domNode.style.display = 'none';\n\t\tthis._domNode.style.top = '10px';\n\t\tthis._domNode.style.zIndex = '12';\n\t\tthis._domNode.setAttribute('role', 'presentation');\n\t\tthis._domNode.setAttribute('aria-hidden', 'true');\n\n\t\tconst toggleStyles = {\n\t\t\tinputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n\t\t\tinputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n\t\t\tinputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n\t\t};\n\n\t\tconst hoverDelegate = this._register(createInstantHoverDelegate());\n\n\t\tthis.caseSensitive = this._register(new CaseSensitiveToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n\t\t\tisChecked: this._state.matchCase,\n\t\t\thoverDelegate,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.caseSensitive.domNode);\n\t\tthis._register(this.caseSensitive.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tmatchCase: this.caseSensitive.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.wholeWords = this._register(new WholeWordsToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n\t\t\tisChecked: this._state.wholeWord,\n\t\t\thoverDelegate,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.wholeWords.domNode);\n\t\tthis._register(this.wholeWords.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\twholeWord: this.wholeWords.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.regex = this._register(new RegexToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n\t\t\tisChecked: this._state.isRegex,\n\t\t\thoverDelegate,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.regex.domNode);\n\t\tthis._register(this.regex.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tisRegex: this.regex.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis._editor.addOverlayWidget(this);\n\n\t\tthis._register(this._state.onFindReplaceStateChange((e) => {\n\t\t\tlet somethingChanged = false;\n\t\t\tif (e.isRegex) {\n\t\t\t\tthis.regex.checked = this._state.isRegex;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.wholeWord) {\n\t\t\t\tthis.wholeWords.checked = this._state.wholeWord;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.matchCase) {\n\t\t\t\tthis.caseSensitive.checked = this._state.matchCase;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (!this._state.isRevealed && somethingChanged) {\n\t\t\t\tthis._revealTemporarily();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(dom.addDisposableListener(this._domNode, dom.EventType.MOUSE_LEAVE, (e) => this._onMouseLeave()));\n\t\tthis._register(dom.addDisposableListener(this._domNode, 'mouseover', (e) => this._onMouseOver()));\n\t}\n\n\tprivate _keybindingLabelFor(actionId: string): string {\n\t\tconst kb = this._keybindingService.lookupKeybinding(actionId);\n\t\tif (!kb) {\n\t\t\treturn '';\n\t\t}\n\t\treturn ` (${kb.getLabel()})`;\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._editor.removeOverlayWidget(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ----- IOverlayWidget API\n\n\tpublic getId(): string {\n\t\treturn FindOptionsWidget.ID;\n\t}\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode;\n\t}\n\n\tpublic getPosition(): IOverlayWidgetPosition {\n\t\treturn {\n\t\t\tpreference: OverlayWidgetPositionPreference.TOP_RIGHT_CORNER\n\t\t};\n\t}\n\n\tpublic highlightFindOptions(): void {\n\t\tthis._revealTemporarily();\n\t}\n\n\tprivate _hideSoon = this._register(new RunOnceScheduler(() => this._hide(), 2000));\n\n\tprivate _revealTemporarily(): void {\n\t\tthis._show();\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseLeave(): void {\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseOver(): void {\n\t\tthis._hideSoon.cancel();\n\t}\n\n\tprivate _isVisible: boolean = false;\n\n\tprivate _show(): void {\n\t\tif (this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = true;\n\t\tthis._domNode.style.display = 'block';\n\t}\n\n\tprivate _hide(): void {\n\t\tif (!this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = false;\n\t\tthis._domNode.style.display = 'none';\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/contrib/find/browser/findOptionsWidget.ts","vs/editor/contrib/find/browser/findOptionsWidget.ts"],"names":[],"mappings":"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","file":"findOptionsWidget.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 * as dom from '../../../../base/browser/dom.js';\nimport './findOptionsWidget.css';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from '../../../../base/browser/ui/findinput/findInputToggles.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference } from '../../../browser/editorBrowser.js';\nimport { FIND_IDS } from './findModel.js';\nimport { FindReplaceState } from './findState.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IHoverLifecycleOptions } from '../../../../base/browser/ui/hover/hover.js';\n\nexport class FindOptionsWidget extends Widget implements IOverlayWidget {\n\n\tprivate static readonly ID = 'editor.contrib.findOptionsWidget';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _state: FindReplaceState;\n\tprivate readonly _keybindingService: IKeybindingService;\n\n\tprivate readonly _domNode: HTMLElement;\n\tprivate readonly regex: RegexToggle;\n\tprivate readonly wholeWords: WholeWordsToggle;\n\tprivate readonly caseSensitive: CaseSensitiveToggle;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\tstate: FindReplaceState,\n\t\tkeybindingService: IKeybindingService\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\t\tthis._state = state;\n\t\tthis._keybindingService = keybindingService;\n\n\t\tthis._domNode = document.createElement('div');\n\t\tthis._domNode.className = 'findOptionsWidget';\n\t\tthis._domNode.style.display = 'none';\n\t\tthis._domNode.style.top = '10px';\n\t\tthis._domNode.style.zIndex = '12';\n\t\tthis._domNode.setAttribute('role', 'presentation');\n\t\tthis._domNode.setAttribute('aria-hidden', 'true');\n\n\t\tconst toggleStyles = {\n\t\t\tinputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n\t\t\tinputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n\t\t\tinputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n\t\t};\n\n\t\tconst hoverLifecycleOptions: IHoverLifecycleOptions = { groupId: 'find-options-widget' };\n\n\t\tthis.caseSensitive = this._register(new CaseSensitiveToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n\t\t\tisChecked: this._state.matchCase,\n\t\t\thoverLifecycleOptions,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.caseSensitive.domNode);\n\t\tthis._register(this.caseSensitive.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tmatchCase: this.caseSensitive.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.wholeWords = this._register(new WholeWordsToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n\t\t\tisChecked: this._state.wholeWord,\n\t\t\thoverLifecycleOptions,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.wholeWords.domNode);\n\t\tthis._register(this.wholeWords.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\twholeWord: this.wholeWords.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.regex = this._register(new RegexToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n\t\t\tisChecked: this._state.isRegex,\n\t\t\thoverLifecycleOptions,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.regex.domNode);\n\t\tthis._register(this.regex.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tisRegex: this.regex.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis._editor.addOverlayWidget(this);\n\n\t\tthis._register(this._state.onFindReplaceStateChange((e) => {\n\t\t\tlet somethingChanged = false;\n\t\t\tif (e.isRegex) {\n\t\t\t\tthis.regex.checked = this._state.isRegex;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.wholeWord) {\n\t\t\t\tthis.wholeWords.checked = this._state.wholeWord;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.matchCase) {\n\t\t\t\tthis.caseSensitive.checked = this._state.matchCase;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (!this._state.isRevealed && somethingChanged) {\n\t\t\t\tthis._revealTemporarily();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(dom.addDisposableListener(this._domNode, dom.EventType.MOUSE_LEAVE, (e) => this._onMouseLeave()));\n\t\tthis._register(dom.addDisposableListener(this._domNode, 'mouseover', (e) => this._onMouseOver()));\n\t}\n\n\tprivate _keybindingLabelFor(actionId: string): string {\n\t\tconst kb = this._keybindingService.lookupKeybinding(actionId);\n\t\tif (!kb) {\n\t\t\treturn '';\n\t\t}\n\t\treturn ` (${kb.getLabel()})`;\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._editor.removeOverlayWidget(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ----- IOverlayWidget API\n\n\tpublic getId(): string {\n\t\treturn FindOptionsWidget.ID;\n\t}\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode;\n\t}\n\n\tpublic getPosition(): IOverlayWidgetPosition {\n\t\treturn {\n\t\t\tpreference: OverlayWidgetPositionPreference.TOP_RIGHT_CORNER\n\t\t};\n\t}\n\n\tpublic highlightFindOptions(): void {\n\t\tthis._revealTemporarily();\n\t}\n\n\tprivate _hideSoon = this._register(new RunOnceScheduler(() => this._hide(), 2000));\n\n\tprivate _revealTemporarily(): void {\n\t\tthis._show();\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseLeave(): void {\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseOver(): void {\n\t\tthis._hideSoon.cancel();\n\t}\n\n\tprivate _isVisible: boolean = false;\n\n\tprivate _show(): void {\n\t\tif (this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = true;\n\t\tthis._domNode.style.display = 'block';\n\t}\n\n\tprivate _hide(): void {\n\t\tif (!this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = false;\n\t\tthis._domNode.style.display = 'none';\n\t}\n}\n","/*---------------------------------------------------------------------------------------------\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 * as dom from '../../../../base/browser/dom.js';\nimport './findOptionsWidget.css';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from '../../../../base/browser/ui/findinput/findInputToggles.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference } from '../../../browser/editorBrowser.js';\nimport { FIND_IDS } from './findModel.js';\nimport { FindReplaceState } from './findState.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IHoverLifecycleOptions } from '../../../../base/browser/ui/hover/hover.js';\n\nexport class FindOptionsWidget extends Widget implements IOverlayWidget {\n\n\tprivate static readonly ID = 'editor.contrib.findOptionsWidget';\n\n\tprivate readonly _editor: ICodeEditor;\n\tprivate readonly _state: FindReplaceState;\n\tprivate readonly _keybindingService: IKeybindingService;\n\n\tprivate readonly _domNode: HTMLElement;\n\tprivate readonly regex: RegexToggle;\n\tprivate readonly wholeWords: WholeWordsToggle;\n\tprivate readonly caseSensitive: CaseSensitiveToggle;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\tstate: FindReplaceState,\n\t\tkeybindingService: IKeybindingService\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\t\tthis._state = state;\n\t\tthis._keybindingService = keybindingService;\n\n\t\tthis._domNode = document.createElement('div');\n\t\tthis._domNode.className = 'findOptionsWidget';\n\t\tthis._domNode.style.display = 'none';\n\t\tthis._domNode.style.top = '10px';\n\t\tthis._domNode.style.zIndex = '12';\n\t\tthis._domNode.setAttribute('role', 'presentation');\n\t\tthis._domNode.setAttribute('aria-hidden', 'true');\n\n\t\tconst toggleStyles = {\n\t\t\tinputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n\t\t\tinputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n\t\t\tinputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n\t\t};\n\n\t\tconst hoverLifecycleOptions: IHoverLifecycleOptions = { groupId: 'find-options-widget' };\n\n\t\tthis.caseSensitive = this._register(new CaseSensitiveToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n\t\t\tisChecked: this._state.matchCase,\n\t\t\thoverLifecycleOptions,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.caseSensitive.domNode);\n\t\tthis._register(this.caseSensitive.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tmatchCase: this.caseSensitive.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.wholeWords = this._register(new WholeWordsToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n\t\t\tisChecked: this._state.wholeWord,\n\t\t\thoverLifecycleOptions,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.wholeWords.domNode);\n\t\tthis._register(this.wholeWords.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\twholeWord: this.wholeWords.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis.regex = this._register(new RegexToggle({\n\t\t\tappendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n\t\t\tisChecked: this._state.isRegex,\n\t\t\thoverLifecycleOptions,\n\t\t\t...toggleStyles\n\t\t}));\n\t\tthis._domNode.appendChild(this.regex.domNode);\n\t\tthis._register(this.regex.onChange(() => {\n\t\t\tthis._state.change({\n\t\t\t\tisRegex: this.regex.checked\n\t\t\t}, false);\n\t\t}));\n\n\t\tthis._editor.addOverlayWidget(this);\n\n\t\tthis._register(this._state.onFindReplaceStateChange((e) => {\n\t\t\tlet somethingChanged = false;\n\t\t\tif (e.isRegex) {\n\t\t\t\tthis.regex.checked = this._state.isRegex;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.wholeWord) {\n\t\t\t\tthis.wholeWords.checked = this._state.wholeWord;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (e.matchCase) {\n\t\t\t\tthis.caseSensitive.checked = this._state.matchCase;\n\t\t\t\tsomethingChanged = true;\n\t\t\t}\n\t\t\tif (!this._state.isRevealed && somethingChanged) {\n\t\t\t\tthis._revealTemporarily();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(dom.addDisposableListener(this._domNode, dom.EventType.MOUSE_LEAVE, (e) => this._onMouseLeave()));\n\t\tthis._register(dom.addDisposableListener(this._domNode, 'mouseover', (e) => this._onMouseOver()));\n\t}\n\n\tprivate _keybindingLabelFor(actionId: string): string {\n\t\tconst kb = this._keybindingService.lookupKeybinding(actionId);\n\t\tif (!kb) {\n\t\t\treturn '';\n\t\t}\n\t\treturn ` (${kb.getLabel()})`;\n\t}\n\n\tpublic override dispose(): void {\n\t\tthis._editor.removeOverlayWidget(this);\n\t\tsuper.dispose();\n\t}\n\n\t// ----- IOverlayWidget API\n\n\tpublic getId(): string {\n\t\treturn FindOptionsWidget.ID;\n\t}\n\n\tpublic getDomNode(): HTMLElement {\n\t\treturn this._domNode;\n\t}\n\n\tpublic getPosition(): IOverlayWidgetPosition {\n\t\treturn {\n\t\t\tpreference: OverlayWidgetPositionPreference.TOP_RIGHT_CORNER\n\t\t};\n\t}\n\n\tpublic highlightFindOptions(): void {\n\t\tthis._revealTemporarily();\n\t}\n\n\tprivate _hideSoon = this._register(new RunOnceScheduler(() => this._hide(), 2000));\n\n\tprivate _revealTemporarily(): void {\n\t\tthis._show();\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseLeave(): void {\n\t\tthis._hideSoon.schedule();\n\t}\n\n\tprivate _onMouseOver(): void {\n\t\tthis._hideSoon.cancel();\n\t}\n\n\tprivate _isVisible: boolean = false;\n\n\tprivate _show(): void {\n\t\tif (this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = true;\n\t\tthis._domNode.style.display = 'block';\n\t}\n\n\tprivate _hide(): void {\n\t\tif (!this._isVisible) {\n\t\t\treturn;\n\t\t}\n\t\tthis._isVisible = false;\n\t\tthis._domNode.style.display = 'none';\n\t}\n}\n"]}
@@ -26,7 +26,6 @@ import { ThemeIcon } from '../../../../base/common/themables.js';
26
26
  import { isHighContrast } from '../../../../platform/theme/common/theme.js';
27
27
  import { assertReturnsDefined } from '../../../../base/common/types.js';
28
28
  import { defaultInputBoxStyles, defaultToggleStyles } from '../../../../platform/theme/browser/defaultStyles.js';
29
- import { createInstantHoverDelegate, getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';
30
29
  const findCollapsedIcon = registerIcon('find-collapsed', Codicon.chevronRight, nls.localize(952, 'Icon to indicate that the editor find widget is collapsed.'));
31
30
  const findExpandedIcon = registerIcon('find-expanded', Codicon.chevronDown, nls.localize(953, 'Icon to indicate that the editor find widget is expanded.'));
32
31
  export const findSelectionIcon = registerIcon('find-selection', Codicon.selection, nls.localize(954, 'Icon for \'Find in Selection\' in the editor find widget.'));
@@ -813,13 +812,12 @@ export class FindWidget extends Widget {
813
812
  this._matchesCount = document.createElement('div');
814
813
  this._matchesCount.className = 'matchesCount';
815
814
  this._updateMatchesCount();
816
- // Create a scoped hover delegate for all find related buttons
817
- const hoverDelegate = this._register(createInstantHoverDelegate());
815
+ const hoverLifecycleOptions = { groupId: 'find-widget' };
818
816
  // Previous button
819
817
  this._prevBtn = this._register(new SimpleButton({
820
818
  label: NLS_PREVIOUS_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.PreviousMatchFindAction),
821
819
  icon: findPreviousMatchIcon,
822
- hoverDelegate,
820
+ hoverLifecycleOptions,
823
821
  onTrigger: () => {
824
822
  assertReturnsDefined(this._codeEditor.getAction(FIND_IDS.PreviousMatchFindAction)).run().then(undefined, onUnexpectedError);
825
823
  }
@@ -828,7 +826,7 @@ export class FindWidget extends Widget {
828
826
  this._nextBtn = this._register(new SimpleButton({
829
827
  label: NLS_NEXT_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.NextMatchFindAction),
830
828
  icon: findNextMatchIcon,
831
- hoverDelegate,
829
+ hoverLifecycleOptions,
832
830
  onTrigger: () => {
833
831
  assertReturnsDefined(this._codeEditor.getAction(FIND_IDS.NextMatchFindAction)).run().then(undefined, onUnexpectedError);
834
832
  }
@@ -847,7 +845,7 @@ export class FindWidget extends Widget {
847
845
  icon: findSelectionIcon,
848
846
  title: NLS_TOGGLE_SELECTION_FIND_TITLE + this._keybindingLabelFor(FIND_IDS.ToggleSearchScopeCommand),
849
847
  isChecked: false,
850
- hoverDelegate: hoverDelegate,
848
+ hoverLifecycleOptions,
851
849
  inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),
852
850
  inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),
853
851
  inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),
@@ -879,7 +877,7 @@ export class FindWidget extends Widget {
879
877
  this._closeBtn = this._register(new SimpleButton({
880
878
  label: NLS_CLOSE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.CloseFindWidgetCommand),
881
879
  icon: widgetClose,
882
- hoverDelegate,
880
+ hoverLifecycleOptions,
883
881
  onTrigger: () => {
884
882
  this._state.change({ isRevealed: false, searchScope: null }, false);
885
883
  },
@@ -909,6 +907,7 @@ export class FindWidget extends Widget {
909
907
  showHistoryHint: () => showHistoryKeybindingHint(this._keybindingService),
910
908
  inputBoxStyles: defaultInputBoxStyles,
911
909
  toggleStyles: defaultToggleStyles,
910
+ hoverLifecycleOptions,
912
911
  }, this._contextKeyService, true));
913
912
  this._replaceInput.setPreserveCase(!!this._state.preserveCase);
914
913
  this._register(this._replaceInput.onKeyDown((e) => this._onReplaceInputKeyDown(e)));
@@ -942,13 +941,11 @@ export class FindWidget extends Widget {
942
941
  e.preventDefault();
943
942
  }
944
943
  }));
945
- // Create scoped hover delegate for replace actions
946
- const replaceHoverDelegate = this._register(createInstantHoverDelegate());
947
944
  // Replace one button
948
945
  this._replaceBtn = this._register(new SimpleButton({
949
946
  label: NLS_REPLACE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceOneAction),
950
947
  icon: findReplaceIcon,
951
- hoverDelegate: replaceHoverDelegate,
948
+ hoverLifecycleOptions,
952
949
  onTrigger: () => {
953
950
  this._controller.replace();
954
951
  },
@@ -963,7 +960,7 @@ export class FindWidget extends Widget {
963
960
  this._replaceAllBtn = this._register(new SimpleButton({
964
961
  label: NLS_REPLACE_ALL_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceAllAction),
965
962
  icon: findReplaceAllIcon,
966
- hoverDelegate: replaceHoverDelegate,
963
+ hoverLifecycleOptions,
967
964
  onTrigger: () => {
968
965
  this._controller.replaceAll();
969
966
  }
@@ -1093,7 +1090,10 @@ export class SimpleButton extends Widget {
1093
1090
  this._domNode.className = className;
1094
1091
  this._domNode.setAttribute('role', 'button');
1095
1092
  this._domNode.setAttribute('aria-label', this._opts.label);
1096
- this._register(hoverService.setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate('element'), this._domNode, this._opts.label));
1093
+ this._register(hoverService.setupDelayedHover(this._domNode, {
1094
+ content: this._opts.label,
1095
+ style: 1 /* HoverStyle.Pointer */,
1096
+ }, opts.hoverLifecycleOptions));
1097
1097
  this.onclick(this._domNode, (e) => {
1098
1098
  this._opts.onTrigger();
1099
1099
  e.preventDefault();