monaco-editor-core 0.56.0-dev-20260106 → 0.56.0-dev-20260107

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.
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -1,6 +1,6 @@
1
1
  /*!-----------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
- * Version: 0.56.0-dev-20260106(ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8)
3
+ * Version: 0.56.0-dev-20260107(de983bf5d7efbd36622f44bc0e44097a0531a58c)
4
4
  * Released under the MIT license
5
5
  * https://github.com/microsoft/vscode/blob/main/LICENSE.txt
6
6
  *-----------------------------------------------------------*/
@@ -75,6 +75,7 @@ export function computePasteData(e, context, logService) {
75
75
  return;
76
76
  }
77
77
  PasteOptions.electronBugWorkaroundPasteEventHasFired = true;
78
+ logService.trace('(computePasteData) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);
78
79
  metadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);
79
80
  return getPasteDataFromMetadata(text, metadata, context);
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/controller/editContext/clipboardUtils.ts","vs/editor/browser/controller/editContext/clipboardUtils.ts"],"names":[],"mappings":"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","file":"clipboardUtils.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 { IViewModel } from '../../../common/viewModel.js';\nimport { Range } from '../../../common/core/range.js';\nimport { isWindows } from '../../../../base/common/platform.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport { ILogService, LogLevel } from '../../../../platform/log/common/log.js';\nimport { EditorOption, IComputedEditorOptions } from '../../../common/config/editorOptions.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\n\nexport function ensureClipboardGetsEditorSelection(e: ClipboardEvent, context: ViewContext, logService: ILogService, isFirefox: boolean): void {\n\tconst viewModel = context.viewModel;\n\tconst options = context.configuration.options;\n\tlet id: string | undefined = undefined;\n\tif (logService.getLevel() === LogLevel.Trace) {\n\t\tid = generateUuid();\n\t}\n\n\tconst { dataToCopy, storedMetadata } = generateDataToCopyAndStoreInMemory(viewModel, options, id, isFirefox);\n\n\t// !!!!!\n\t// This is a workaround for what we think is an Electron bug where\n\t// execCommand('copy') does not always work (it does not fire a clipboard event)\n\t// !!!!!\n\t// We signal that we have executed a copy command\n\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\n\te.preventDefault();\n\tif (e.clipboardData) {\n\t\tClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n\t}\n\tlogService.trace('ensureClipboardGetsEditorSelection with id : ', id, ' with text.length: ', dataToCopy.text.length);\n}\n\nexport function generateDataToCopyAndStoreInMemory(viewModel: IViewModel, options: IComputedEditorOptions, id: string | undefined, isFirefox: boolean) {\n\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\tconst copyWithSyntaxHighlighting = options.get(EditorOption.copyWithSyntaxHighlighting);\n\tconst selections = viewModel.getCursorStates().map(cursorState => cursorState.modelState.selection);\n\tconst dataToCopy = getDataToCopy(viewModel, selections, emptySelectionClipboard, copyWithSyntaxHighlighting);\n\tconst storedMetadata: ClipboardStoredMetadata = {\n\t\tversion: 1,\n\t\tid,\n\t\tisFromEmptySelection: dataToCopy.isFromEmptySelection,\n\t\tmulticursorText: dataToCopy.multicursorText,\n\t\tmode: dataToCopy.mode\n\t};\n\tInMemoryClipboardMetadataManager.INSTANCE.set(\n\t\t// When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n\t\t// Firefox pastes \"LINE\\n\", so let's work around this quirk\n\t\t(isFirefox ? dataToCopy.text.replace(/\\r\\n/g, '\\n') : dataToCopy.text),\n\t\tstoredMetadata\n\t);\n\treturn { dataToCopy, storedMetadata };\n}\n\nfunction getDataToCopy(viewModel: IViewModel, modelSelections: Range[], emptySelectionClipboard: boolean, copyWithSyntaxHighlighting: boolean): ClipboardDataToCopy {\n\tconst rawTextToCopy = viewModel.getPlainTextToCopy(modelSelections, emptySelectionClipboard, isWindows);\n\tconst newLineCharacter = viewModel.model.getEOL();\n\n\tconst isFromEmptySelection = (emptySelectionClipboard && modelSelections.length === 1 && modelSelections[0].isEmpty());\n\tconst multicursorText = (Array.isArray(rawTextToCopy) ? rawTextToCopy : null);\n\tconst text = (Array.isArray(rawTextToCopy) ? rawTextToCopy.join(newLineCharacter) : rawTextToCopy);\n\n\tlet html: string | null | undefined = undefined;\n\tlet mode: string | null = null;\n\tif (CopyOptions.forceCopyWithSyntaxHighlighting || (copyWithSyntaxHighlighting && text.length < 65536)) {\n\t\tconst richText = viewModel.getRichTextToCopy(modelSelections, emptySelectionClipboard);\n\t\tif (richText) {\n\t\t\thtml = richText.html;\n\t\t\tmode = richText.mode;\n\t\t}\n\t}\n\tconst dataToCopy: ClipboardDataToCopy = {\n\t\tisFromEmptySelection,\n\t\tmulticursorText,\n\t\ttext,\n\t\thtml,\n\t\tmode\n\t};\n\treturn dataToCopy;\n}\n\nexport interface IPasteData {\n\ttext: string;\n\tpasteOnNewLine: boolean;\n\tmulticursorText: string[] | null;\n\tmode: string | null;\n}\n\nexport function computePasteData(e: ClipboardEvent, context: ViewContext, logService: ILogService): IPasteData | undefined {\n\te.preventDefault();\n\tif (!e.clipboardData) {\n\t\treturn;\n\t}\n\tlet [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\tlogService.trace('computePasteData with id : ', metadata?.id, ' with text.length: ', text.length);\n\tif (!text) {\n\t\treturn;\n\t}\n\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\tmetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\treturn getPasteDataFromMetadata(text, metadata, context);\n}\n\nexport function getPasteDataFromMetadata(text: string, metadata: ClipboardStoredMetadata | null, context: ViewContext): IPasteData {\n\tlet pasteOnNewLine = false;\n\tlet multicursorText: string[] | null = null;\n\tlet mode: string | null = null;\n\tif (metadata) {\n\t\tconst options = context.configuration.options;\n\t\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\t\tpasteOnNewLine = emptySelectionClipboard && !!metadata.isFromEmptySelection;\n\t\tmulticursorText = typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null;\n\t\tmode = metadata.mode;\n\t}\n\treturn { text, pasteOnNewLine, multicursorText, mode };\n}\n/**\n * Every time we write to the clipboard, we record a bit of extra metadata here.\n * Every time we read from the cipboard, if the text matches our last written text,\n * we can fetch the previous metadata.\n */\nexport class InMemoryClipboardMetadataManager {\n\tpublic static readonly INSTANCE = new InMemoryClipboardMetadataManager();\n\n\tprivate _lastState: InMemoryClipboardMetadata | null;\n\n\tconstructor() {\n\t\tthis._lastState = null;\n\t}\n\n\tpublic set(lastCopiedValue: string, data: ClipboardStoredMetadata): void {\n\t\tthis._lastState = { lastCopiedValue, data };\n\t}\n\n\tpublic get(pastedText: string): ClipboardStoredMetadata | null {\n\t\tif (this._lastState && this._lastState.lastCopiedValue === pastedText) {\n\t\t\t// match!\n\t\t\treturn this._lastState.data;\n\t\t}\n\t\tthis._lastState = null;\n\t\treturn null;\n\t}\n}\n\nexport interface ClipboardDataToCopy {\n\tisFromEmptySelection: boolean;\n\tmulticursorText: string[] | null | undefined;\n\ttext: string;\n\thtml: string | null | undefined;\n\tmode: string | null;\n}\n\nexport interface ClipboardStoredMetadata {\n\tversion: 1;\n\tid: string | undefined;\n\tisFromEmptySelection: boolean | undefined;\n\tmulticursorText: string[] | null | undefined;\n\tmode: string | null;\n}\n\nexport const CopyOptions = {\n\tforceCopyWithSyntaxHighlighting: false,\n\telectronBugWorkaroundCopyEventHasFired: false\n};\n\nexport const PasteOptions = {\n\telectronBugWorkaroundPasteEventHasFired: false,\n\telectronBugWorkaroundPasteEventLock: false\n};\n\ninterface InMemoryClipboardMetadata {\n\tlastCopiedValue: string;\n\tdata: ClipboardStoredMetadata;\n}\n\nexport const ClipboardEventUtils = {\n\n\tgetTextData(clipboardData: DataTransfer): [string, ClipboardStoredMetadata | null] {\n\t\tconst text = clipboardData.getData(Mimes.text);\n\t\tlet metadata: ClipboardStoredMetadata | null = null;\n\t\tconst rawmetadata = clipboardData.getData('vscode-editor-data');\n\t\tif (typeof rawmetadata === 'string') {\n\t\t\ttry {\n\t\t\t\tmetadata = <ClipboardStoredMetadata>JSON.parse(rawmetadata);\n\t\t\t\tif (metadata.version !== 1) {\n\t\t\t\t\tmetadata = null;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// no problem!\n\t\t\t}\n\t\t}\n\t\tif (text.length === 0 && metadata === null && clipboardData.files.length > 0) {\n\t\t\t// no textual data pasted, generate text from file names\n\t\t\tconst files: File[] = Array.prototype.slice.call(clipboardData.files, 0);\n\t\t\treturn [files.map(file => file.name).join('\\n'), null];\n\t\t}\n\t\treturn [text, metadata];\n\t},\n\n\tsetTextData(clipboardData: DataTransfer, text: string, html: string | null | undefined, metadata: ClipboardStoredMetadata): void {\n\t\tclipboardData.setData(Mimes.text, text);\n\t\tif (typeof html === 'string') {\n\t\t\tclipboardData.setData('text/html', html);\n\t\t}\n\t\tclipboardData.setData('vscode-editor-data', JSON.stringify(metadata));\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 { IViewModel } from '../../../common/viewModel.js';\nimport { Range } from '../../../common/core/range.js';\nimport { isWindows } from '../../../../base/common/platform.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport { ILogService, LogLevel } from '../../../../platform/log/common/log.js';\nimport { EditorOption, IComputedEditorOptions } from '../../../common/config/editorOptions.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\n\nexport function ensureClipboardGetsEditorSelection(e: ClipboardEvent, context: ViewContext, logService: ILogService, isFirefox: boolean): void {\n\tconst viewModel = context.viewModel;\n\tconst options = context.configuration.options;\n\tlet id: string | undefined = undefined;\n\tif (logService.getLevel() === LogLevel.Trace) {\n\t\tid = generateUuid();\n\t}\n\n\tconst { dataToCopy, storedMetadata } = generateDataToCopyAndStoreInMemory(viewModel, options, id, isFirefox);\n\n\t// !!!!!\n\t// This is a workaround for what we think is an Electron bug where\n\t// execCommand('copy') does not always work (it does not fire a clipboard event)\n\t// !!!!!\n\t// We signal that we have executed a copy command\n\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\n\te.preventDefault();\n\tif (e.clipboardData) {\n\t\tClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n\t}\n\tlogService.trace('ensureClipboardGetsEditorSelection with id : ', id, ' with text.length: ', dataToCopy.text.length);\n}\n\nexport function generateDataToCopyAndStoreInMemory(viewModel: IViewModel, options: IComputedEditorOptions, id: string | undefined, isFirefox: boolean) {\n\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\tconst copyWithSyntaxHighlighting = options.get(EditorOption.copyWithSyntaxHighlighting);\n\tconst selections = viewModel.getCursorStates().map(cursorState => cursorState.modelState.selection);\n\tconst dataToCopy = getDataToCopy(viewModel, selections, emptySelectionClipboard, copyWithSyntaxHighlighting);\n\tconst storedMetadata: ClipboardStoredMetadata = {\n\t\tversion: 1,\n\t\tid,\n\t\tisFromEmptySelection: dataToCopy.isFromEmptySelection,\n\t\tmulticursorText: dataToCopy.multicursorText,\n\t\tmode: dataToCopy.mode\n\t};\n\tInMemoryClipboardMetadataManager.INSTANCE.set(\n\t\t// When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n\t\t// Firefox pastes \"LINE\\n\", so let's work around this quirk\n\t\t(isFirefox ? dataToCopy.text.replace(/\\r\\n/g, '\\n') : dataToCopy.text),\n\t\tstoredMetadata\n\t);\n\treturn { dataToCopy, storedMetadata };\n}\n\nfunction getDataToCopy(viewModel: IViewModel, modelSelections: Range[], emptySelectionClipboard: boolean, copyWithSyntaxHighlighting: boolean): ClipboardDataToCopy {\n\tconst rawTextToCopy = viewModel.getPlainTextToCopy(modelSelections, emptySelectionClipboard, isWindows);\n\tconst newLineCharacter = viewModel.model.getEOL();\n\n\tconst isFromEmptySelection = (emptySelectionClipboard && modelSelections.length === 1 && modelSelections[0].isEmpty());\n\tconst multicursorText = (Array.isArray(rawTextToCopy) ? rawTextToCopy : null);\n\tconst text = (Array.isArray(rawTextToCopy) ? rawTextToCopy.join(newLineCharacter) : rawTextToCopy);\n\n\tlet html: string | null | undefined = undefined;\n\tlet mode: string | null = null;\n\tif (CopyOptions.forceCopyWithSyntaxHighlighting || (copyWithSyntaxHighlighting && text.length < 65536)) {\n\t\tconst richText = viewModel.getRichTextToCopy(modelSelections, emptySelectionClipboard);\n\t\tif (richText) {\n\t\t\thtml = richText.html;\n\t\t\tmode = richText.mode;\n\t\t}\n\t}\n\tconst dataToCopy: ClipboardDataToCopy = {\n\t\tisFromEmptySelection,\n\t\tmulticursorText,\n\t\ttext,\n\t\thtml,\n\t\tmode\n\t};\n\treturn dataToCopy;\n}\n\nexport interface IPasteData {\n\ttext: string;\n\tpasteOnNewLine: boolean;\n\tmulticursorText: string[] | null;\n\tmode: string | null;\n}\n\nexport function computePasteData(e: ClipboardEvent, context: ViewContext, logService: ILogService): IPasteData | undefined {\n\te.preventDefault();\n\tif (!e.clipboardData) {\n\t\treturn;\n\t}\n\tlet [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\tlogService.trace('computePasteData with id : ', metadata?.id, ' with text.length: ', text.length);\n\tif (!text) {\n\t\treturn;\n\t}\n\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\tmetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\treturn getPasteDataFromMetadata(text, metadata, context);\n}\n\nexport function getPasteDataFromMetadata(text: string, metadata: ClipboardStoredMetadata | null, context: ViewContext): IPasteData {\n\tlet pasteOnNewLine = false;\n\tlet multicursorText: string[] | null = null;\n\tlet mode: string | null = null;\n\tif (metadata) {\n\t\tconst options = context.configuration.options;\n\t\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\t\tpasteOnNewLine = emptySelectionClipboard && !!metadata.isFromEmptySelection;\n\t\tmulticursorText = typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null;\n\t\tmode = metadata.mode;\n\t}\n\treturn { text, pasteOnNewLine, multicursorText, mode };\n}\n/**\n * Every time we write to the clipboard, we record a bit of extra metadata here.\n * Every time we read from the cipboard, if the text matches our last written text,\n * we can fetch the previous metadata.\n */\nexport class InMemoryClipboardMetadataManager {\n\tpublic static readonly INSTANCE = new InMemoryClipboardMetadataManager();\n\n\tprivate _lastState: InMemoryClipboardMetadata | null;\n\n\tconstructor() {\n\t\tthis._lastState = null;\n\t}\n\n\tpublic set(lastCopiedValue: string, data: ClipboardStoredMetadata): void {\n\t\tthis._lastState = { lastCopiedValue, data };\n\t}\n\n\tpublic get(pastedText: string): ClipboardStoredMetadata | null {\n\t\tif (this._lastState && this._lastState.lastCopiedValue === pastedText) {\n\t\t\t// match!\n\t\t\treturn this._lastState.data;\n\t\t}\n\t\tthis._lastState = null;\n\t\treturn null;\n\t}\n}\n\nexport interface ClipboardDataToCopy {\n\tisFromEmptySelection: boolean;\n\tmulticursorText: string[] | null | undefined;\n\ttext: string;\n\thtml: string | null | undefined;\n\tmode: string | null;\n}\n\nexport interface ClipboardStoredMetadata {\n\tversion: 1;\n\tid: string | undefined;\n\tisFromEmptySelection: boolean | undefined;\n\tmulticursorText: string[] | null | undefined;\n\tmode: string | null;\n}\n\nexport const CopyOptions = {\n\tforceCopyWithSyntaxHighlighting: false,\n\telectronBugWorkaroundCopyEventHasFired: false\n};\n\nexport const PasteOptions = {\n\telectronBugWorkaroundPasteEventHasFired: false,\n\telectronBugWorkaroundPasteEventLock: false\n};\n\ninterface InMemoryClipboardMetadata {\n\tlastCopiedValue: string;\n\tdata: ClipboardStoredMetadata;\n}\n\nexport const ClipboardEventUtils = {\n\n\tgetTextData(clipboardData: DataTransfer): [string, ClipboardStoredMetadata | null] {\n\t\tconst text = clipboardData.getData(Mimes.text);\n\t\tlet metadata: ClipboardStoredMetadata | null = null;\n\t\tconst rawmetadata = clipboardData.getData('vscode-editor-data');\n\t\tif (typeof rawmetadata === 'string') {\n\t\t\ttry {\n\t\t\t\tmetadata = <ClipboardStoredMetadata>JSON.parse(rawmetadata);\n\t\t\t\tif (metadata.version !== 1) {\n\t\t\t\t\tmetadata = null;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// no problem!\n\t\t\t}\n\t\t}\n\t\tif (text.length === 0 && metadata === null && clipboardData.files.length > 0) {\n\t\t\t// no textual data pasted, generate text from file names\n\t\t\tconst files: File[] = Array.prototype.slice.call(clipboardData.files, 0);\n\t\t\treturn [files.map(file => file.name).join('\\n'), null];\n\t\t}\n\t\treturn [text, metadata];\n\t},\n\n\tsetTextData(clipboardData: DataTransfer, text: string, html: string | null | undefined, metadata: ClipboardStoredMetadata): void {\n\t\tclipboardData.setData(Mimes.text, text);\n\t\tif (typeof html === 'string') {\n\t\t\tclipboardData.setData('text/html', html);\n\t\t}\n\t\tclipboardData.setData('vscode-editor-data', JSON.stringify(metadata));\n\t}\n};\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/editor/browser/controller/editContext/clipboardUtils.ts","vs/editor/browser/controller/editContext/clipboardUtils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAExD,OAAO,EAAe,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,MAAM,UAAU,kCAAkC,CAAC,CAAiB,EAAE,OAAoB,EAAE,UAAuB,EAAE,SAAkB;IACtI,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;IAC9C,IAAI,EAAE,GAAuB,SAAS,CAAC;IACvC,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC9C,EAAE,GAAG,YAAY,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,kCAAkC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAE7G,QAAQ;IACR,kEAAkE;IAClE,gFAAgF;IAChF,QAAQ;IACR,iDAAiD;IACjD,WAAW,CAAC,sCAAsC,GAAG,IAAI,CAAC;IAE1D,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC;QACrB,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACpG,CAAC;IACD,UAAU,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAE,EAAE,qBAAqB,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,SAAqB,EAAE,OAA+B,EAAE,EAAsB,EAAE,SAAkB;IACpJ,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,+CAAsC,CAAC;IAClF,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,kDAAyC,CAAC;IACxF,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpG,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,uBAAuB,EAAE,0BAA0B,CAAC,CAAC;IAC7G,MAAM,cAAc,GAA4B;QAC/C,OAAO,EAAE,CAAC;QACV,EAAE;QACF,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;QACrD,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,IAAI,EAAE,UAAU,CAAC,IAAI;KACrB,CAAC;IACF,gCAAgC,CAAC,QAAQ,CAAC,GAAG;IAC5C,6DAA6D;IAC7D,2DAA2D;IAC3D,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EACtE,cAAc,CACd,CAAC;IACF,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,aAAa,CAAC,SAAqB,EAAE,eAAwB,EAAE,uBAAgC,EAAE,0BAAmC;IAC5I,MAAM,aAAa,GAAG,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE,uBAAuB,EAAE,SAAS,CAAC,CAAC;IACxG,MAAM,gBAAgB,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAElD,MAAM,oBAAoB,GAAG,CAAC,uBAAuB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACvH,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEnG,IAAI,IAAI,GAA8B,SAAS,CAAC;IAChD,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,WAAW,CAAC,+BAA+B,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;QACxG,MAAM,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;QACvF,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YACrB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACtB,CAAC;IACF,CAAC;IACD,MAAM,UAAU,GAAwB;QACvC,oBAAoB;QACpB,eAAe;QACf,IAAI;QACJ,IAAI;QACJ,IAAI;KACJ,CAAC;IACF,OAAO,UAAU,CAAC;AACnB,CAAC;AASD,MAAM,UAAU,gBAAgB,CAAC,CAAiB,EAAE,OAAoB,EAAE,UAAuB;IAChG,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtB,OAAO;IACR,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IACxE,UAAU,CAAC,KAAK,CAAC,6BAA6B,EAAE,QAAQ,EAAE,EAAE,EAAE,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAClG,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO;IACR,CAAC;IACD,YAAY,CAAC,uCAAuC,GAAG,IAAI,CAAC;IAC5D,UAAU,CAAC,KAAK,CAAC,4EAA4E,EAAE,YAAY,CAAC,uCAAuC,CAAC,CAAC;IACrJ,QAAQ,GAAG,QAAQ,IAAI,gCAAgC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,QAAwC,EAAE,OAAoB;IACpH,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,eAAe,GAAoB,IAAI,CAAC;IAC5C,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,QAAQ,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;QAC9C,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,+CAAsC,CAAC;QAClF,cAAc,GAAG,uBAAuB,IAAI,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC5E,eAAe,GAAG,OAAO,QAAQ,CAAC,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;QACpG,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC;AACD;;;;GAIG;AACH,MAAM,OAAO,gCAAgC;aACrB,aAAQ,GAAG,IAAI,gCAAgC,EAAE,CAAC;IAIzE;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,GAAG,CAAC,eAAuB,EAAE,IAA6B;QAChE,IAAI,CAAC,UAAU,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IAEM,GAAG,CAAC,UAAkB;QAC5B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YACvE,SAAS;YACT,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;;AAmBF,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,+BAA+B,EAAE,KAAK;IACtC,sCAAsC,EAAE,KAAK;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,uCAAuC,EAAE,KAAK;IAC9C,mCAAmC,EAAE,KAAK;CAC1C,CAAC;AAOF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAElC,WAAW,CAAC,aAA2B;QACtC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,GAAmC,IAAI,CAAC;QACpD,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAChE,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC;gBACJ,QAAQ,GAA4B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC5D,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;oBAC5B,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,cAAc;YACf,CAAC;QACF,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,wDAAwD;YACxD,MAAM,KAAK,GAAW,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,aAA2B,EAAE,IAAY,EAAE,IAA+B,EAAE,QAAiC;QACxH,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC;CACD,CAAC","file":"clipboardUtils.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 { IViewModel } from '../../../common/viewModel.js';\nimport { Range } from '../../../common/core/range.js';\nimport { isWindows } from '../../../../base/common/platform.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport { ILogService, LogLevel } from '../../../../platform/log/common/log.js';\nimport { EditorOption, IComputedEditorOptions } from '../../../common/config/editorOptions.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\n\nexport function ensureClipboardGetsEditorSelection(e: ClipboardEvent, context: ViewContext, logService: ILogService, isFirefox: boolean): void {\n\tconst viewModel = context.viewModel;\n\tconst options = context.configuration.options;\n\tlet id: string | undefined = undefined;\n\tif (logService.getLevel() === LogLevel.Trace) {\n\t\tid = generateUuid();\n\t}\n\n\tconst { dataToCopy, storedMetadata } = generateDataToCopyAndStoreInMemory(viewModel, options, id, isFirefox);\n\n\t// !!!!!\n\t// This is a workaround for what we think is an Electron bug where\n\t// execCommand('copy') does not always work (it does not fire a clipboard event)\n\t// !!!!!\n\t// We signal that we have executed a copy command\n\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\n\te.preventDefault();\n\tif (e.clipboardData) {\n\t\tClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n\t}\n\tlogService.trace('ensureClipboardGetsEditorSelection with id : ', id, ' with text.length: ', dataToCopy.text.length);\n}\n\nexport function generateDataToCopyAndStoreInMemory(viewModel: IViewModel, options: IComputedEditorOptions, id: string | undefined, isFirefox: boolean) {\n\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\tconst copyWithSyntaxHighlighting = options.get(EditorOption.copyWithSyntaxHighlighting);\n\tconst selections = viewModel.getCursorStates().map(cursorState => cursorState.modelState.selection);\n\tconst dataToCopy = getDataToCopy(viewModel, selections, emptySelectionClipboard, copyWithSyntaxHighlighting);\n\tconst storedMetadata: ClipboardStoredMetadata = {\n\t\tversion: 1,\n\t\tid,\n\t\tisFromEmptySelection: dataToCopy.isFromEmptySelection,\n\t\tmulticursorText: dataToCopy.multicursorText,\n\t\tmode: dataToCopy.mode\n\t};\n\tInMemoryClipboardMetadataManager.INSTANCE.set(\n\t\t// When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n\t\t// Firefox pastes \"LINE\\n\", so let's work around this quirk\n\t\t(isFirefox ? dataToCopy.text.replace(/\\r\\n/g, '\\n') : dataToCopy.text),\n\t\tstoredMetadata\n\t);\n\treturn { dataToCopy, storedMetadata };\n}\n\nfunction getDataToCopy(viewModel: IViewModel, modelSelections: Range[], emptySelectionClipboard: boolean, copyWithSyntaxHighlighting: boolean): ClipboardDataToCopy {\n\tconst rawTextToCopy = viewModel.getPlainTextToCopy(modelSelections, emptySelectionClipboard, isWindows);\n\tconst newLineCharacter = viewModel.model.getEOL();\n\n\tconst isFromEmptySelection = (emptySelectionClipboard && modelSelections.length === 1 && modelSelections[0].isEmpty());\n\tconst multicursorText = (Array.isArray(rawTextToCopy) ? rawTextToCopy : null);\n\tconst text = (Array.isArray(rawTextToCopy) ? rawTextToCopy.join(newLineCharacter) : rawTextToCopy);\n\n\tlet html: string | null | undefined = undefined;\n\tlet mode: string | null = null;\n\tif (CopyOptions.forceCopyWithSyntaxHighlighting || (copyWithSyntaxHighlighting && text.length < 65536)) {\n\t\tconst richText = viewModel.getRichTextToCopy(modelSelections, emptySelectionClipboard);\n\t\tif (richText) {\n\t\t\thtml = richText.html;\n\t\t\tmode = richText.mode;\n\t\t}\n\t}\n\tconst dataToCopy: ClipboardDataToCopy = {\n\t\tisFromEmptySelection,\n\t\tmulticursorText,\n\t\ttext,\n\t\thtml,\n\t\tmode\n\t};\n\treturn dataToCopy;\n}\n\nexport interface IPasteData {\n\ttext: string;\n\tpasteOnNewLine: boolean;\n\tmulticursorText: string[] | null;\n\tmode: string | null;\n}\n\nexport function computePasteData(e: ClipboardEvent, context: ViewContext, logService: ILogService): IPasteData | undefined {\n\te.preventDefault();\n\tif (!e.clipboardData) {\n\t\treturn;\n\t}\n\tlet [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\tlogService.trace('computePasteData with id : ', metadata?.id, ' with text.length: ', text.length);\n\tif (!text) {\n\t\treturn;\n\t}\n\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\tlogService.trace('(computePasteData) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);\n\tmetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\treturn getPasteDataFromMetadata(text, metadata, context);\n}\n\nexport function getPasteDataFromMetadata(text: string, metadata: ClipboardStoredMetadata | null, context: ViewContext): IPasteData {\n\tlet pasteOnNewLine = false;\n\tlet multicursorText: string[] | null = null;\n\tlet mode: string | null = null;\n\tif (metadata) {\n\t\tconst options = context.configuration.options;\n\t\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\t\tpasteOnNewLine = emptySelectionClipboard && !!metadata.isFromEmptySelection;\n\t\tmulticursorText = typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null;\n\t\tmode = metadata.mode;\n\t}\n\treturn { text, pasteOnNewLine, multicursorText, mode };\n}\n/**\n * Every time we write to the clipboard, we record a bit of extra metadata here.\n * Every time we read from the cipboard, if the text matches our last written text,\n * we can fetch the previous metadata.\n */\nexport class InMemoryClipboardMetadataManager {\n\tpublic static readonly INSTANCE = new InMemoryClipboardMetadataManager();\n\n\tprivate _lastState: InMemoryClipboardMetadata | null;\n\n\tconstructor() {\n\t\tthis._lastState = null;\n\t}\n\n\tpublic set(lastCopiedValue: string, data: ClipboardStoredMetadata): void {\n\t\tthis._lastState = { lastCopiedValue, data };\n\t}\n\n\tpublic get(pastedText: string): ClipboardStoredMetadata | null {\n\t\tif (this._lastState && this._lastState.lastCopiedValue === pastedText) {\n\t\t\t// match!\n\t\t\treturn this._lastState.data;\n\t\t}\n\t\tthis._lastState = null;\n\t\treturn null;\n\t}\n}\n\nexport interface ClipboardDataToCopy {\n\tisFromEmptySelection: boolean;\n\tmulticursorText: string[] | null | undefined;\n\ttext: string;\n\thtml: string | null | undefined;\n\tmode: string | null;\n}\n\nexport interface ClipboardStoredMetadata {\n\tversion: 1;\n\tid: string | undefined;\n\tisFromEmptySelection: boolean | undefined;\n\tmulticursorText: string[] | null | undefined;\n\tmode: string | null;\n}\n\nexport const CopyOptions = {\n\tforceCopyWithSyntaxHighlighting: false,\n\telectronBugWorkaroundCopyEventHasFired: false\n};\n\nexport const PasteOptions = {\n\telectronBugWorkaroundPasteEventHasFired: false,\n\telectronBugWorkaroundPasteEventLock: false\n};\n\ninterface InMemoryClipboardMetadata {\n\tlastCopiedValue: string;\n\tdata: ClipboardStoredMetadata;\n}\n\nexport const ClipboardEventUtils = {\n\n\tgetTextData(clipboardData: DataTransfer): [string, ClipboardStoredMetadata | null] {\n\t\tconst text = clipboardData.getData(Mimes.text);\n\t\tlet metadata: ClipboardStoredMetadata | null = null;\n\t\tconst rawmetadata = clipboardData.getData('vscode-editor-data');\n\t\tif (typeof rawmetadata === 'string') {\n\t\t\ttry {\n\t\t\t\tmetadata = <ClipboardStoredMetadata>JSON.parse(rawmetadata);\n\t\t\t\tif (metadata.version !== 1) {\n\t\t\t\t\tmetadata = null;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// no problem!\n\t\t\t}\n\t\t}\n\t\tif (text.length === 0 && metadata === null && clipboardData.files.length > 0) {\n\t\t\t// no textual data pasted, generate text from file names\n\t\t\tconst files: File[] = Array.prototype.slice.call(clipboardData.files, 0);\n\t\t\treturn [files.map(file => file.name).join('\\n'), null];\n\t\t}\n\t\treturn [text, metadata];\n\t},\n\n\tsetTextData(clipboardData: DataTransfer, text: string, html: string | null | undefined, metadata: ClipboardStoredMetadata): void {\n\t\tclipboardData.setData(Mimes.text, text);\n\t\tif (typeof html === 'string') {\n\t\t\tclipboardData.setData('text/html', html);\n\t\t}\n\t\tclipboardData.setData('vscode-editor-data', JSON.stringify(metadata));\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 { IViewModel } from '../../../common/viewModel.js';\nimport { Range } from '../../../common/core/range.js';\nimport { isWindows } from '../../../../base/common/platform.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport { ViewContext } from '../../../common/viewModel/viewContext.js';\nimport { ILogService, LogLevel } from '../../../../platform/log/common/log.js';\nimport { EditorOption, IComputedEditorOptions } from '../../../common/config/editorOptions.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\n\nexport function ensureClipboardGetsEditorSelection(e: ClipboardEvent, context: ViewContext, logService: ILogService, isFirefox: boolean): void {\n\tconst viewModel = context.viewModel;\n\tconst options = context.configuration.options;\n\tlet id: string | undefined = undefined;\n\tif (logService.getLevel() === LogLevel.Trace) {\n\t\tid = generateUuid();\n\t}\n\n\tconst { dataToCopy, storedMetadata } = generateDataToCopyAndStoreInMemory(viewModel, options, id, isFirefox);\n\n\t// !!!!!\n\t// This is a workaround for what we think is an Electron bug where\n\t// execCommand('copy') does not always work (it does not fire a clipboard event)\n\t// !!!!!\n\t// We signal that we have executed a copy command\n\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\n\te.preventDefault();\n\tif (e.clipboardData) {\n\t\tClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n\t}\n\tlogService.trace('ensureClipboardGetsEditorSelection with id : ', id, ' with text.length: ', dataToCopy.text.length);\n}\n\nexport function generateDataToCopyAndStoreInMemory(viewModel: IViewModel, options: IComputedEditorOptions, id: string | undefined, isFirefox: boolean) {\n\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\tconst copyWithSyntaxHighlighting = options.get(EditorOption.copyWithSyntaxHighlighting);\n\tconst selections = viewModel.getCursorStates().map(cursorState => cursorState.modelState.selection);\n\tconst dataToCopy = getDataToCopy(viewModel, selections, emptySelectionClipboard, copyWithSyntaxHighlighting);\n\tconst storedMetadata: ClipboardStoredMetadata = {\n\t\tversion: 1,\n\t\tid,\n\t\tisFromEmptySelection: dataToCopy.isFromEmptySelection,\n\t\tmulticursorText: dataToCopy.multicursorText,\n\t\tmode: dataToCopy.mode\n\t};\n\tInMemoryClipboardMetadataManager.INSTANCE.set(\n\t\t// When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n\t\t// Firefox pastes \"LINE\\n\", so let's work around this quirk\n\t\t(isFirefox ? dataToCopy.text.replace(/\\r\\n/g, '\\n') : dataToCopy.text),\n\t\tstoredMetadata\n\t);\n\treturn { dataToCopy, storedMetadata };\n}\n\nfunction getDataToCopy(viewModel: IViewModel, modelSelections: Range[], emptySelectionClipboard: boolean, copyWithSyntaxHighlighting: boolean): ClipboardDataToCopy {\n\tconst rawTextToCopy = viewModel.getPlainTextToCopy(modelSelections, emptySelectionClipboard, isWindows);\n\tconst newLineCharacter = viewModel.model.getEOL();\n\n\tconst isFromEmptySelection = (emptySelectionClipboard && modelSelections.length === 1 && modelSelections[0].isEmpty());\n\tconst multicursorText = (Array.isArray(rawTextToCopy) ? rawTextToCopy : null);\n\tconst text = (Array.isArray(rawTextToCopy) ? rawTextToCopy.join(newLineCharacter) : rawTextToCopy);\n\n\tlet html: string | null | undefined = undefined;\n\tlet mode: string | null = null;\n\tif (CopyOptions.forceCopyWithSyntaxHighlighting || (copyWithSyntaxHighlighting && text.length < 65536)) {\n\t\tconst richText = viewModel.getRichTextToCopy(modelSelections, emptySelectionClipboard);\n\t\tif (richText) {\n\t\t\thtml = richText.html;\n\t\t\tmode = richText.mode;\n\t\t}\n\t}\n\tconst dataToCopy: ClipboardDataToCopy = {\n\t\tisFromEmptySelection,\n\t\tmulticursorText,\n\t\ttext,\n\t\thtml,\n\t\tmode\n\t};\n\treturn dataToCopy;\n}\n\nexport interface IPasteData {\n\ttext: string;\n\tpasteOnNewLine: boolean;\n\tmulticursorText: string[] | null;\n\tmode: string | null;\n}\n\nexport function computePasteData(e: ClipboardEvent, context: ViewContext, logService: ILogService): IPasteData | undefined {\n\te.preventDefault();\n\tif (!e.clipboardData) {\n\t\treturn;\n\t}\n\tlet [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\tlogService.trace('computePasteData with id : ', metadata?.id, ' with text.length: ', text.length);\n\tif (!text) {\n\t\treturn;\n\t}\n\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\tlogService.trace('(computePasteData) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);\n\tmetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\treturn getPasteDataFromMetadata(text, metadata, context);\n}\n\nexport function getPasteDataFromMetadata(text: string, metadata: ClipboardStoredMetadata | null, context: ViewContext): IPasteData {\n\tlet pasteOnNewLine = false;\n\tlet multicursorText: string[] | null = null;\n\tlet mode: string | null = null;\n\tif (metadata) {\n\t\tconst options = context.configuration.options;\n\t\tconst emptySelectionClipboard = options.get(EditorOption.emptySelectionClipboard);\n\t\tpasteOnNewLine = emptySelectionClipboard && !!metadata.isFromEmptySelection;\n\t\tmulticursorText = typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null;\n\t\tmode = metadata.mode;\n\t}\n\treturn { text, pasteOnNewLine, multicursorText, mode };\n}\n/**\n * Every time we write to the clipboard, we record a bit of extra metadata here.\n * Every time we read from the cipboard, if the text matches our last written text,\n * we can fetch the previous metadata.\n */\nexport class InMemoryClipboardMetadataManager {\n\tpublic static readonly INSTANCE = new InMemoryClipboardMetadataManager();\n\n\tprivate _lastState: InMemoryClipboardMetadata | null;\n\n\tconstructor() {\n\t\tthis._lastState = null;\n\t}\n\n\tpublic set(lastCopiedValue: string, data: ClipboardStoredMetadata): void {\n\t\tthis._lastState = { lastCopiedValue, data };\n\t}\n\n\tpublic get(pastedText: string): ClipboardStoredMetadata | null {\n\t\tif (this._lastState && this._lastState.lastCopiedValue === pastedText) {\n\t\t\t// match!\n\t\t\treturn this._lastState.data;\n\t\t}\n\t\tthis._lastState = null;\n\t\treturn null;\n\t}\n}\n\nexport interface ClipboardDataToCopy {\n\tisFromEmptySelection: boolean;\n\tmulticursorText: string[] | null | undefined;\n\ttext: string;\n\thtml: string | null | undefined;\n\tmode: string | null;\n}\n\nexport interface ClipboardStoredMetadata {\n\tversion: 1;\n\tid: string | undefined;\n\tisFromEmptySelection: boolean | undefined;\n\tmulticursorText: string[] | null | undefined;\n\tmode: string | null;\n}\n\nexport const CopyOptions = {\n\tforceCopyWithSyntaxHighlighting: false,\n\telectronBugWorkaroundCopyEventHasFired: false\n};\n\nexport const PasteOptions = {\n\telectronBugWorkaroundPasteEventHasFired: false,\n\telectronBugWorkaroundPasteEventLock: false\n};\n\ninterface InMemoryClipboardMetadata {\n\tlastCopiedValue: string;\n\tdata: ClipboardStoredMetadata;\n}\n\nexport const ClipboardEventUtils = {\n\n\tgetTextData(clipboardData: DataTransfer): [string, ClipboardStoredMetadata | null] {\n\t\tconst text = clipboardData.getData(Mimes.text);\n\t\tlet metadata: ClipboardStoredMetadata | null = null;\n\t\tconst rawmetadata = clipboardData.getData('vscode-editor-data');\n\t\tif (typeof rawmetadata === 'string') {\n\t\t\ttry {\n\t\t\t\tmetadata = <ClipboardStoredMetadata>JSON.parse(rawmetadata);\n\t\t\t\tif (metadata.version !== 1) {\n\t\t\t\t\tmetadata = null;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// no problem!\n\t\t\t}\n\t\t}\n\t\tif (text.length === 0 && metadata === null && clipboardData.files.length > 0) {\n\t\t\t// no textual data pasted, generate text from file names\n\t\t\tconst files: File[] = Array.prototype.slice.call(clipboardData.files, 0);\n\t\t\treturn [files.map(file => file.name).join('\\n'), null];\n\t\t}\n\t\treturn [text, metadata];\n\t},\n\n\tsetTextData(clipboardData: DataTransfer, text: string, html: string | null | undefined, metadata: ClipboardStoredMetadata): void {\n\t\tclipboardData.setData(Mimes.text, text);\n\t\tif (typeof html === 'string') {\n\t\t\tclipboardData.setData('text/html', html);\n\t\t}\n\t\tclipboardData.setData('vscode-editor-data', JSON.stringify(metadata));\n\t}\n};\n"]}
@@ -56,7 +56,7 @@ const editorConfiguration = {
56
56
  description: nls.localize(153, "Special handling for large files to disable certain memory intensive features.")
57
57
  },
58
58
  'editor.wordBasedSuggestions': {
59
- enum: ['off', 'currentDocument', 'matchingDocuments', 'allDocuments', 'offWithInlineSuggestions'],
59
+ enum: ['off', 'offWithInlineSuggestions', 'currentDocument', 'matchingDocuments', 'allDocuments'],
60
60
  default: 'matchingDocuments',
61
61
  enumDescriptions: [
62
62
  nls.localize(154, 'Turn off Word Based Suggestions.'),
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/common/config/editorConfigurationSchema.ts"],"names":[],"mappings":"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","file":"editorConfigurationSchema.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\nimport { diffEditorDefaultOptions } from './diffEditor.js';\nimport { editorOptionsRegistry } from './editorOptions.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/misc/textModelDefaults.js';\nimport * as nls from '../../../nls.js';\nimport { ConfigurationScope, Extensions, IConfigurationNode, IConfigurationPropertySchema, IConfigurationRegistry } from '../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\n\nexport const editorConfigurationBaseNode = Object.freeze<IConfigurationNode>({\n\tid: 'editor',\n\torder: 5,\n\ttype: 'object',\n\ttitle: nls.localize('editorConfigurationTitle', \"Editor\"),\n\tscope: ConfigurationScope.LANGUAGE_OVERRIDABLE,\n});\n\nconst editorConfiguration: IConfigurationNode = {\n\t...editorConfigurationBaseNode,\n\tproperties: {\n\t\t'editor.tabSize': {\n\t\t\ttype: 'number',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.tabSize,\n\t\t\tminimum: 1,\n\t\t\tmaximum: 100,\n\t\t\tmarkdownDescription: nls.localize('tabSize', \"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.\", '`#editor.detectIndentation#`')\n\t\t},\n\t\t'editor.indentSize': {\n\t\t\t'anyOf': [\n\t\t\t\t{\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tenum: ['tabSize']\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tminimum: 1\n\t\t\t\t}\n\t\t\t],\n\t\t\tdefault: 'tabSize',\n\t\t\tmarkdownDescription: nls.localize('indentSize', \"The number of spaces used for indentation or `\\\"tabSize\\\"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n\t\t},\n\t\t'editor.insertSpaces': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.insertSpaces,\n\t\t\tmarkdownDescription: nls.localize('insertSpaces', \"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.\", '`#editor.detectIndentation#`')\n\t\t},\n\t\t'editor.detectIndentation': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.detectIndentation,\n\t\t\tmarkdownDescription: nls.localize('detectIndentation', \"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.\", '`#editor.tabSize#`', '`#editor.insertSpaces#`')\n\t\t},\n\t\t'editor.trimAutoWhitespace': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n\t\t\tdescription: nls.localize('trimAutoWhitespace', \"Remove trailing auto inserted whitespace.\")\n\t\t},\n\t\t'editor.largeFileOptimizations': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n\t\t\tdescription: nls.localize('largeFileOptimizations', \"Special handling for large files to disable certain memory intensive features.\")\n\t\t},\n\t\t'editor.wordBasedSuggestions': {\n\t\t\tenum: ['off', 'currentDocument', 'matchingDocuments', 'allDocuments', 'offWithInlineSuggestions'],\n\t\t\tdefault: 'matchingDocuments',\n\t\t\tenumDescriptions: [\n\t\t\t\tnls.localize('wordBasedSuggestions.off', 'Turn off Word Based Suggestions.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.offWithInlineSuggestions', 'Turn off Word Based Suggestions when Inline Suggestions are present.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.currentDocument', 'Only suggest words from the active document.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.matchingDocuments', 'Suggest words from all open documents of the same language.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.allDocuments', 'Suggest words from all open documents.'),\n\t\t\t],\n\t\t\tdescription: nls.localize('wordBasedSuggestions', \"Controls whether completions should be computed based on words in the document and from which documents they are computed.\"),\n\t\t\texperiment: { mode: 'auto' },\n\t\t},\n\t\t'editor.semanticHighlighting.enabled': {\n\t\t\tenum: [true, false, 'configuredByTheme'],\n\t\t\tenumDescriptions: [\n\t\t\t\tnls.localize('semanticHighlighting.true', 'Semantic highlighting enabled for all color themes.'),\n\t\t\t\tnls.localize('semanticHighlighting.false', 'Semantic highlighting disabled for all color themes.'),\n\t\t\t\tnls.localize('semanticHighlighting.configuredByTheme', 'Semantic highlighting is configured by the current color theme\\'s `semanticHighlighting` setting.')\n\t\t\t],\n\t\t\tdefault: 'configuredByTheme',\n\t\t\tdescription: nls.localize('semanticHighlighting.enabled', \"Controls whether the semanticHighlighting is shown for the languages that support it.\")\n\t\t},\n\t\t'editor.stablePeek': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('stablePeek', \"Keep peek editors open even when double-clicking their content or when hitting `Escape`.\")\n\t\t},\n\t\t'editor.maxTokenizationLineLength': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: 20_000,\n\t\t\tdescription: nls.localize('maxTokenizationLineLength', \"Lines above this length will not be tokenized for performance reasons\")\n\t\t},\n\t\t'editor.experimental.asyncTokenization': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tdescription: nls.localize('editor.experimental.asyncTokenization', \"Controls whether the tokenization should happen asynchronously on a web worker.\"),\n\t\t\ttags: ['experimental'],\n\t\t},\n\t\t'editor.experimental.asyncTokenizationLogging': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: nls.localize('editor.experimental.asyncTokenizationLogging', \"Controls whether async tokenization should be logged. For debugging only.\"),\n\t\t},\n\t\t'editor.experimental.asyncTokenizationVerification': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: nls.localize('editor.experimental.asyncTokenizationVerification', \"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only.\"),\n\t\t\ttags: ['experimental'],\n\t\t},\n\t\t'editor.experimental.treeSitterTelemetry': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.treeSitterTelemetry', \"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `#editor.experimental.preferTreeSitter#` for specific languages will take precedence.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.css': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.css', \"Controls whether tree sitter parsing should be turned on for css. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for css.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.typescript': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.typescript', \"Controls whether tree sitter parsing should be turned on for typescript. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for typescript.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.ini': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.ini', \"Controls whether tree sitter parsing should be turned on for ini. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for ini.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.regex': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.regex', \"Controls whether tree sitter parsing should be turned on for regex. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for regex.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.language.brackets': {\n\t\t\ttype: ['array', 'null'],\n\t\t\tdefault: null, // We want to distinguish the empty array from not configured.\n\t\t\tdescription: nls.localize('schema.brackets', 'Defines the bracket symbols that increase or decrease the indentation.'),\n\t\t\titems: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.openBracket', 'The opening bracket character or string sequence.')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.closeBracket', 'The closing bracket character or string sequence.')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'editor.language.colorizedBracketPairs': {\n\t\t\ttype: ['array', 'null'],\n\t\t\tdefault: null, // We want to distinguish the empty array from not configured.\n\t\t\tdescription: nls.localize('schema.colorizedBracketPairs', 'Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.'),\n\t\t\titems: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.openBracket', 'The opening bracket character or string sequence.')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.closeBracket', 'The closing bracket character or string sequence.')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'diffEditor.maxComputationTime': {\n\t\t\ttype: 'number',\n\t\t\tdefault: diffEditorDefaultOptions.maxComputationTime,\n\t\t\tdescription: nls.localize('maxComputationTime', \"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\")\n\t\t},\n\t\t'diffEditor.maxFileSize': {\n\t\t\ttype: 'number',\n\t\t\tdefault: diffEditorDefaultOptions.maxFileSize,\n\t\t\tdescription: nls.localize('maxFileSize', \"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\")\n\t\t},\n\t\t'diffEditor.renderSideBySide': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderSideBySide,\n\t\t\tdescription: nls.localize('sideBySide', \"Controls whether the diff editor shows the diff side by side or inline.\")\n\t\t},\n\t\t'diffEditor.renderSideBySideInlineBreakpoint': {\n\t\t\ttype: 'number',\n\t\t\tdefault: diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,\n\t\t\tdescription: nls.localize('renderSideBySideInlineBreakpoint', \"If the diff editor width is smaller than this value, the inline view is used.\")\n\t\t},\n\t\t'diffEditor.useInlineViewWhenSpaceIsLimited': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,\n\t\t\tdescription: nls.localize('useInlineViewWhenSpaceIsLimited', \"If enabled and the editor width is too small, the inline view is used.\")\n\t\t},\n\t\t'diffEditor.renderMarginRevertIcon': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderMarginRevertIcon,\n\t\t\tdescription: nls.localize('renderMarginRevertIcon', \"When enabled, the diff editor shows arrows in its glyph margin to revert changes.\")\n\t\t},\n\t\t'diffEditor.renderGutterMenu': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderGutterMenu,\n\t\t\tdescription: nls.localize('renderGutterMenu', \"When enabled, the diff editor shows a special gutter for revert and stage actions.\")\n\t\t},\n\t\t'diffEditor.ignoreTrimWhitespace': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.ignoreTrimWhitespace,\n\t\t\tdescription: nls.localize('ignoreTrimWhitespace', \"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")\n\t\t},\n\t\t'diffEditor.renderIndicators': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderIndicators,\n\t\t\tdescription: nls.localize('renderIndicators', \"Controls whether the diff editor shows +/- indicators for added/removed changes.\")\n\t\t},\n\t\t'diffEditor.codeLens': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.diffCodeLens,\n\t\t\tdescription: nls.localize('codeLens', \"Controls whether the editor shows CodeLens.\")\n\t\t},\n\t\t'diffEditor.wordWrap': {\n\t\t\ttype: 'string',\n\t\t\tenum: ['off', 'on', 'inherit'],\n\t\t\tdefault: diffEditorDefaultOptions.diffWordWrap,\n\t\t\tmarkdownEnumDescriptions: [\n\t\t\t\tnls.localize('wordWrap.off', \"Lines will never wrap.\"),\n\t\t\t\tnls.localize('wordWrap.on', \"Lines will wrap at the viewport width.\"),\n\t\t\t\tnls.localize('wordWrap.inherit', \"Lines will wrap according to the {0} setting.\", '`#editor.wordWrap#`'),\n\t\t\t]\n\t\t},\n\t\t'diffEditor.diffAlgorithm': {\n\t\t\ttype: 'string',\n\t\t\tenum: ['legacy', 'advanced'],\n\t\t\tdefault: diffEditorDefaultOptions.diffAlgorithm,\n\t\t\tmarkdownEnumDescriptions: [\n\t\t\t\tnls.localize('diffAlgorithm.legacy', \"Uses the legacy diffing algorithm.\"),\n\t\t\t\tnls.localize('diffAlgorithm.advanced', \"Uses the advanced diffing algorithm.\"),\n\t\t\t]\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.enabled': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.enabled,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.enabled', \"Controls whether the diff editor shows unchanged regions.\"),\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.revealLineCount': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.revealLineCount', \"Controls how many lines are used for unchanged regions.\"),\n\t\t\tminimum: 1,\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.minimumLineCount': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.minimumLineCount', \"Controls how many lines are used as a minimum for unchanged regions.\"),\n\t\t\tminimum: 1,\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.contextLineCount': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.contextLineCount', \"Controls how many lines are used as context when comparing unchanged regions.\"),\n\t\t\tminimum: 1,\n\t\t},\n\t\t'diffEditor.experimental.showMoves': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.experimental.showMoves,\n\t\t\tmarkdownDescription: nls.localize('showMoves', \"Controls whether the diff editor should show detected code moves.\")\n\t\t},\n\t\t'diffEditor.experimental.showEmptyDecorations': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.experimental.showEmptyDecorations,\n\t\t\tdescription: nls.localize('showEmptyDecorations', \"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.\"),\n\t\t},\n\t\t'diffEditor.experimental.useTrueInlineView': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.experimental.useTrueInlineView,\n\t\t\tdescription: nls.localize('useTrueInlineView', \"If enabled and the editor uses the inline view, word changes are rendered inline.\"),\n\t\t},\n\t}\n};\n\nfunction isConfigurationPropertySchema(x: IConfigurationPropertySchema | { [path: string]: IConfigurationPropertySchema }): x is IConfigurationPropertySchema {\n\treturn (typeof x.type !== 'undefined' || typeof x.anyOf !== 'undefined');\n}\n\n// Add properties from the Editor Option Registry\nfor (const editorOption of editorOptionsRegistry) {\n\tconst schema = editorOption.schema;\n\tif (typeof schema !== 'undefined') {\n\t\tif (isConfigurationPropertySchema(schema)) {\n\t\t\t// This is a single schema contribution\n\t\t\teditorConfiguration.properties![`editor.${editorOption.name}`] = schema;\n\t\t} else {\n\t\t\tfor (const key in schema) {\n\t\t\t\tif (Object.hasOwnProperty.call(schema, key)) {\n\t\t\t\t\teditorConfiguration.properties![key] = schema[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nlet cachedEditorConfigurationKeys: { [key: string]: boolean } | null = null;\nfunction getEditorConfigurationKeys(): { [key: string]: boolean } {\n\tif (cachedEditorConfigurationKeys === null) {\n\t\tcachedEditorConfigurationKeys = <{ [key: string]: boolean }>Object.create(null);\n\t\tObject.keys(editorConfiguration.properties!).forEach((prop) => {\n\t\t\tcachedEditorConfigurationKeys![prop] = true;\n\t\t});\n\t}\n\treturn cachedEditorConfigurationKeys;\n}\n\nexport function isEditorConfigurationKey(key: string): boolean {\n\tconst editorConfigurationKeys = getEditorConfigurationKeys();\n\treturn (editorConfigurationKeys[`editor.${key}`] || false);\n}\n\nexport function isDiffEditorConfigurationKey(key: string): boolean {\n\tconst editorConfigurationKeys = getEditorConfigurationKeys();\n\treturn (editorConfigurationKeys[`diffEditor.${key}`] || false);\n}\n\nconst configurationRegistry = Registry.as<IConfigurationRegistry>(Extensions.Configuration);\nconfigurationRegistry.registerConfiguration(editorConfiguration);\n"]}
1
+ {"version":3,"sources":["vs/editor/common/config/editorConfigurationSchema.ts"],"names":[],"mappings":"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","file":"editorConfigurationSchema.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\nimport { diffEditorDefaultOptions } from './diffEditor.js';\nimport { editorOptionsRegistry } from './editorOptions.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/misc/textModelDefaults.js';\nimport * as nls from '../../../nls.js';\nimport { ConfigurationScope, Extensions, IConfigurationNode, IConfigurationPropertySchema, IConfigurationRegistry } from '../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\n\nexport const editorConfigurationBaseNode = Object.freeze<IConfigurationNode>({\n\tid: 'editor',\n\torder: 5,\n\ttype: 'object',\n\ttitle: nls.localize('editorConfigurationTitle', \"Editor\"),\n\tscope: ConfigurationScope.LANGUAGE_OVERRIDABLE,\n});\n\nconst editorConfiguration: IConfigurationNode = {\n\t...editorConfigurationBaseNode,\n\tproperties: {\n\t\t'editor.tabSize': {\n\t\t\ttype: 'number',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.tabSize,\n\t\t\tminimum: 1,\n\t\t\tmaximum: 100,\n\t\t\tmarkdownDescription: nls.localize('tabSize', \"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.\", '`#editor.detectIndentation#`')\n\t\t},\n\t\t'editor.indentSize': {\n\t\t\t'anyOf': [\n\t\t\t\t{\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tenum: ['tabSize']\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tminimum: 1\n\t\t\t\t}\n\t\t\t],\n\t\t\tdefault: 'tabSize',\n\t\t\tmarkdownDescription: nls.localize('indentSize', \"The number of spaces used for indentation or `\\\"tabSize\\\"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.\")\n\t\t},\n\t\t'editor.insertSpaces': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.insertSpaces,\n\t\t\tmarkdownDescription: nls.localize('insertSpaces', \"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.\", '`#editor.detectIndentation#`')\n\t\t},\n\t\t'editor.detectIndentation': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.detectIndentation,\n\t\t\tmarkdownDescription: nls.localize('detectIndentation', \"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.\", '`#editor.tabSize#`', '`#editor.insertSpaces#`')\n\t\t},\n\t\t'editor.trimAutoWhitespace': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n\t\t\tdescription: nls.localize('trimAutoWhitespace', \"Remove trailing auto inserted whitespace.\")\n\t\t},\n\t\t'editor.largeFileOptimizations': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n\t\t\tdescription: nls.localize('largeFileOptimizations', \"Special handling for large files to disable certain memory intensive features.\")\n\t\t},\n\t\t'editor.wordBasedSuggestions': {\n\t\t\tenum: ['off', 'offWithInlineSuggestions', 'currentDocument', 'matchingDocuments', 'allDocuments'],\n\t\t\tdefault: 'matchingDocuments',\n\t\t\tenumDescriptions: [\n\t\t\t\tnls.localize('wordBasedSuggestions.off', 'Turn off Word Based Suggestions.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.offWithInlineSuggestions', 'Turn off Word Based Suggestions when Inline Suggestions are present.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.currentDocument', 'Only suggest words from the active document.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.matchingDocuments', 'Suggest words from all open documents of the same language.'),\n\t\t\t\tnls.localize('wordBasedSuggestions.allDocuments', 'Suggest words from all open documents.'),\n\t\t\t],\n\t\t\tdescription: nls.localize('wordBasedSuggestions', \"Controls whether completions should be computed based on words in the document and from which documents they are computed.\"),\n\t\t\texperiment: { mode: 'auto' },\n\t\t},\n\t\t'editor.semanticHighlighting.enabled': {\n\t\t\tenum: [true, false, 'configuredByTheme'],\n\t\t\tenumDescriptions: [\n\t\t\t\tnls.localize('semanticHighlighting.true', 'Semantic highlighting enabled for all color themes.'),\n\t\t\t\tnls.localize('semanticHighlighting.false', 'Semantic highlighting disabled for all color themes.'),\n\t\t\t\tnls.localize('semanticHighlighting.configuredByTheme', 'Semantic highlighting is configured by the current color theme\\'s `semanticHighlighting` setting.')\n\t\t\t],\n\t\t\tdefault: 'configuredByTheme',\n\t\t\tdescription: nls.localize('semanticHighlighting.enabled', \"Controls whether the semanticHighlighting is shown for the languages that support it.\")\n\t\t},\n\t\t'editor.stablePeek': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('stablePeek', \"Keep peek editors open even when double-clicking their content or when hitting `Escape`.\")\n\t\t},\n\t\t'editor.maxTokenizationLineLength': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: 20_000,\n\t\t\tdescription: nls.localize('maxTokenizationLineLength', \"Lines above this length will not be tokenized for performance reasons\")\n\t\t},\n\t\t'editor.experimental.asyncTokenization': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tdescription: nls.localize('editor.experimental.asyncTokenization', \"Controls whether the tokenization should happen asynchronously on a web worker.\"),\n\t\t\ttags: ['experimental'],\n\t\t},\n\t\t'editor.experimental.asyncTokenizationLogging': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: nls.localize('editor.experimental.asyncTokenizationLogging', \"Controls whether async tokenization should be logged. For debugging only.\"),\n\t\t},\n\t\t'editor.experimental.asyncTokenizationVerification': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tdescription: nls.localize('editor.experimental.asyncTokenizationVerification', \"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only.\"),\n\t\t\ttags: ['experimental'],\n\t\t},\n\t\t'editor.experimental.treeSitterTelemetry': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.treeSitterTelemetry', \"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `#editor.experimental.preferTreeSitter#` for specific languages will take precedence.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.css': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.css', \"Controls whether tree sitter parsing should be turned on for css. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for css.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.typescript': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.typescript', \"Controls whether tree sitter parsing should be turned on for typescript. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for typescript.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.ini': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.ini', \"Controls whether tree sitter parsing should be turned on for ini. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for ini.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.experimental.preferTreeSitter.regex': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tmarkdownDescription: nls.localize('editor.experimental.preferTreeSitter.regex', \"Controls whether tree sitter parsing should be turned on for regex. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for regex.\"),\n\t\t\ttags: ['experimental'],\n\t\t\texperiment: {\n\t\t\t\tmode: 'auto'\n\t\t\t}\n\t\t},\n\t\t'editor.language.brackets': {\n\t\t\ttype: ['array', 'null'],\n\t\t\tdefault: null, // We want to distinguish the empty array from not configured.\n\t\t\tdescription: nls.localize('schema.brackets', 'Defines the bracket symbols that increase or decrease the indentation.'),\n\t\t\titems: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.openBracket', 'The opening bracket character or string sequence.')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.closeBracket', 'The closing bracket character or string sequence.')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'editor.language.colorizedBracketPairs': {\n\t\t\ttype: ['array', 'null'],\n\t\t\tdefault: null, // We want to distinguish the empty array from not configured.\n\t\t\tdescription: nls.localize('schema.colorizedBracketPairs', 'Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.'),\n\t\t\titems: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.openBracket', 'The opening bracket character or string sequence.')\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdescription: nls.localize('schema.closeBracket', 'The closing bracket character or string sequence.')\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t'diffEditor.maxComputationTime': {\n\t\t\ttype: 'number',\n\t\t\tdefault: diffEditorDefaultOptions.maxComputationTime,\n\t\t\tdescription: nls.localize('maxComputationTime', \"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\")\n\t\t},\n\t\t'diffEditor.maxFileSize': {\n\t\t\ttype: 'number',\n\t\t\tdefault: diffEditorDefaultOptions.maxFileSize,\n\t\t\tdescription: nls.localize('maxFileSize', \"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\")\n\t\t},\n\t\t'diffEditor.renderSideBySide': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderSideBySide,\n\t\t\tdescription: nls.localize('sideBySide', \"Controls whether the diff editor shows the diff side by side or inline.\")\n\t\t},\n\t\t'diffEditor.renderSideBySideInlineBreakpoint': {\n\t\t\ttype: 'number',\n\t\t\tdefault: diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,\n\t\t\tdescription: nls.localize('renderSideBySideInlineBreakpoint', \"If the diff editor width is smaller than this value, the inline view is used.\")\n\t\t},\n\t\t'diffEditor.useInlineViewWhenSpaceIsLimited': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,\n\t\t\tdescription: nls.localize('useInlineViewWhenSpaceIsLimited', \"If enabled and the editor width is too small, the inline view is used.\")\n\t\t},\n\t\t'diffEditor.renderMarginRevertIcon': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderMarginRevertIcon,\n\t\t\tdescription: nls.localize('renderMarginRevertIcon', \"When enabled, the diff editor shows arrows in its glyph margin to revert changes.\")\n\t\t},\n\t\t'diffEditor.renderGutterMenu': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderGutterMenu,\n\t\t\tdescription: nls.localize('renderGutterMenu', \"When enabled, the diff editor shows a special gutter for revert and stage actions.\")\n\t\t},\n\t\t'diffEditor.ignoreTrimWhitespace': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.ignoreTrimWhitespace,\n\t\t\tdescription: nls.localize('ignoreTrimWhitespace', \"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")\n\t\t},\n\t\t'diffEditor.renderIndicators': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.renderIndicators,\n\t\t\tdescription: nls.localize('renderIndicators', \"Controls whether the diff editor shows +/- indicators for added/removed changes.\")\n\t\t},\n\t\t'diffEditor.codeLens': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.diffCodeLens,\n\t\t\tdescription: nls.localize('codeLens', \"Controls whether the editor shows CodeLens.\")\n\t\t},\n\t\t'diffEditor.wordWrap': {\n\t\t\ttype: 'string',\n\t\t\tenum: ['off', 'on', 'inherit'],\n\t\t\tdefault: diffEditorDefaultOptions.diffWordWrap,\n\t\t\tmarkdownEnumDescriptions: [\n\t\t\t\tnls.localize('wordWrap.off', \"Lines will never wrap.\"),\n\t\t\t\tnls.localize('wordWrap.on', \"Lines will wrap at the viewport width.\"),\n\t\t\t\tnls.localize('wordWrap.inherit', \"Lines will wrap according to the {0} setting.\", '`#editor.wordWrap#`'),\n\t\t\t]\n\t\t},\n\t\t'diffEditor.diffAlgorithm': {\n\t\t\ttype: 'string',\n\t\t\tenum: ['legacy', 'advanced'],\n\t\t\tdefault: diffEditorDefaultOptions.diffAlgorithm,\n\t\t\tmarkdownEnumDescriptions: [\n\t\t\t\tnls.localize('diffAlgorithm.legacy', \"Uses the legacy diffing algorithm.\"),\n\t\t\t\tnls.localize('diffAlgorithm.advanced', \"Uses the advanced diffing algorithm.\"),\n\t\t\t]\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.enabled': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.enabled,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.enabled', \"Controls whether the diff editor shows unchanged regions.\"),\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.revealLineCount': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.revealLineCount', \"Controls how many lines are used for unchanged regions.\"),\n\t\t\tminimum: 1,\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.minimumLineCount': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.minimumLineCount', \"Controls how many lines are used as a minimum for unchanged regions.\"),\n\t\t\tminimum: 1,\n\t\t},\n\t\t'diffEditor.hideUnchangedRegions.contextLineCount': {\n\t\t\ttype: 'integer',\n\t\t\tdefault: diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,\n\t\t\tmarkdownDescription: nls.localize('hideUnchangedRegions.contextLineCount', \"Controls how many lines are used as context when comparing unchanged regions.\"),\n\t\t\tminimum: 1,\n\t\t},\n\t\t'diffEditor.experimental.showMoves': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.experimental.showMoves,\n\t\t\tmarkdownDescription: nls.localize('showMoves', \"Controls whether the diff editor should show detected code moves.\")\n\t\t},\n\t\t'diffEditor.experimental.showEmptyDecorations': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.experimental.showEmptyDecorations,\n\t\t\tdescription: nls.localize('showEmptyDecorations', \"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.\"),\n\t\t},\n\t\t'diffEditor.experimental.useTrueInlineView': {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: diffEditorDefaultOptions.experimental.useTrueInlineView,\n\t\t\tdescription: nls.localize('useTrueInlineView', \"If enabled and the editor uses the inline view, word changes are rendered inline.\"),\n\t\t},\n\t}\n};\n\nfunction isConfigurationPropertySchema(x: IConfigurationPropertySchema | { [path: string]: IConfigurationPropertySchema }): x is IConfigurationPropertySchema {\n\treturn (typeof x.type !== 'undefined' || typeof x.anyOf !== 'undefined');\n}\n\n// Add properties from the Editor Option Registry\nfor (const editorOption of editorOptionsRegistry) {\n\tconst schema = editorOption.schema;\n\tif (typeof schema !== 'undefined') {\n\t\tif (isConfigurationPropertySchema(schema)) {\n\t\t\t// This is a single schema contribution\n\t\t\teditorConfiguration.properties![`editor.${editorOption.name}`] = schema;\n\t\t} else {\n\t\t\tfor (const key in schema) {\n\t\t\t\tif (Object.hasOwnProperty.call(schema, key)) {\n\t\t\t\t\teditorConfiguration.properties![key] = schema[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nlet cachedEditorConfigurationKeys: { [key: string]: boolean } | null = null;\nfunction getEditorConfigurationKeys(): { [key: string]: boolean } {\n\tif (cachedEditorConfigurationKeys === null) {\n\t\tcachedEditorConfigurationKeys = <{ [key: string]: boolean }>Object.create(null);\n\t\tObject.keys(editorConfiguration.properties!).forEach((prop) => {\n\t\t\tcachedEditorConfigurationKeys![prop] = true;\n\t\t});\n\t}\n\treturn cachedEditorConfigurationKeys;\n}\n\nexport function isEditorConfigurationKey(key: string): boolean {\n\tconst editorConfigurationKeys = getEditorConfigurationKeys();\n\treturn (editorConfigurationKeys[`editor.${key}`] || false);\n}\n\nexport function isDiffEditorConfigurationKey(key: string): boolean {\n\tconst editorConfigurationKeys = getEditorConfigurationKeys();\n\treturn (editorConfigurationKeys[`diffEditor.${key}`] || false);\n}\n\nconst configurationRegistry = Registry.as<IConfigurationRegistry>(Extensions.Configuration);\nconfigurationRegistry.registerConfiguration(editorConfiguration);\n"]}
@@ -287,15 +287,18 @@ if (PasteAction) {
287
287
  }
288
288
  logService.trace('registerExecCommandImpl (before triggerPaste)');
289
289
  PasteOptions.electronBugWorkaroundPasteEventHasFired = false;
290
+ logService.trace('(before triggerPaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);
290
291
  const triggerPaste = clipboardService.triggerPaste(getActiveWindow().vscodeWindowId);
291
292
  if (triggerPaste) {
292
293
  logService.trace('registerExecCommandImpl (triggerPaste defined)');
293
294
  PasteOptions.electronBugWorkaroundPasteEventLock = false;
294
295
  return triggerPaste.then(async () => {
296
+ logService.trace('(triggerPaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);
295
297
  if (PasteOptions.electronBugWorkaroundPasteEventHasFired === false) {
296
298
  // Ensure this doesn't run twice, what appears to be happening is
297
299
  // triggerPasteis called once but it's handler is called multiple times
298
300
  // when it reproduces
301
+ logService.trace('(triggerPaste) PasteOptions.electronBugWorkaroundPasteEventLock : ', PasteOptions.electronBugWorkaroundPasteEventLock);
299
302
  if (PasteOptions.electronBugWorkaroundPasteEventLock === true) {
300
303
  return;
301
304
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/clipboard/browser/clipboard.ts"],"names":[],"mappings":"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","file":"clipboard.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 browser from '../../../../base/browser/browser.js';\nimport { getActiveDocument, getActiveWindow } from '../../../../base/browser/dom.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { CopyOptions, generateDataToCopyAndStoreInMemory, InMemoryClipboardMetadataManager, PasteOptions } from '../../../browser/controller/editContext/clipboardUtils.js';\nimport { NativeEditContextRegistry } from '../../../browser/controller/editContext/native/nativeEditContextRegistry.js';\nimport { IActiveCodeEditor, ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { Command, EditorAction, MultiCommand, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Handler } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CopyPasteController } from '../../dropOrPasteInto/browser/copyPasteController.js';\n\nconst CLIPBOARD_CONTEXT_MENU_GROUP = '9_cutcopypaste';\n\nconst supportsCut = (platform.isNative || document.queryCommandSupported('cut'));\nconst supportsCopy = (platform.isNative || document.queryCommandSupported('copy'));\n// Firefox only supports navigator.clipboard.readText() in browser extensions.\n// See https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText#Browser_compatibility\n// When loading over http, navigator.clipboard can be undefined. See https://github.com/microsoft/monaco-editor/issues/2313\nconst supportsPaste = (typeof navigator.clipboard === 'undefined' || browser.isFirefox) ? document.queryCommandSupported('paste') : true;\n\nfunction registerCommand<T extends Command>(command: T): T {\n\tcommand.register();\n\treturn command;\n}\n\nexport const CutAction = supportsCut ? registerCommand(new MultiCommand({\n\tid: 'editor.action.clipboardCutAction',\n\tprecondition: undefined,\n\tkbOpts: (\n\t\t// Do not bind cut keybindings in the browser,\n\t\t// since browsers do that for us and it avoids security prompts\n\t\tplatform.isNative ? {\n\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyX,\n\t\t\twin: { primary: KeyMod.CtrlCmd | KeyCode.KeyX, secondary: [KeyMod.Shift | KeyCode.Delete] },\n\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t} : undefined\n\t),\n\tmenuOpts: [{\n\t\tmenuId: MenuId.MenubarEditMenu,\n\t\tgroup: '2_ccp',\n\t\ttitle: nls.localize({ key: 'miCut', comment: ['&& denotes a mnemonic'] }, \"Cu&&t\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.EditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 1,\n\t}, {\n\t\tmenuId: MenuId.CommandPalette,\n\t\tgroup: '',\n\t\ttitle: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.SimpleEditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 1,\n\t}]\n})) : undefined;\n\nexport const CopyAction = supportsCopy ? registerCommand(new MultiCommand({\n\tid: 'editor.action.clipboardCopyAction',\n\tprecondition: undefined,\n\tkbOpts: (\n\t\t// Do not bind copy keybindings in the browser,\n\t\t// since browsers do that for us and it avoids security prompts\n\t\tplatform.isNative ? {\n\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyC,\n\t\t\twin: { primary: KeyMod.CtrlCmd | KeyCode.KeyC, secondary: [KeyMod.CtrlCmd | KeyCode.Insert] },\n\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t} : undefined\n\t),\n\tmenuOpts: [{\n\t\tmenuId: MenuId.MenubarEditMenu,\n\t\tgroup: '2_ccp',\n\t\ttitle: nls.localize({ key: 'miCopy', comment: ['&& denotes a mnemonic'] }, \"&&Copy\"),\n\t\torder: 2\n\t}, {\n\t\tmenuId: MenuId.EditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n\t\torder: 2,\n\t}, {\n\t\tmenuId: MenuId.CommandPalette,\n\t\tgroup: '',\n\t\ttitle: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.SimpleEditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n\t\torder: 2,\n\t}]\n})) : undefined;\n\nMenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: nls.localize2('copy as', \"Copy As\"), group: '2_ccp', order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: nls.localize2('copy as', \"Copy As\"), group: CLIPBOARD_CONTEXT_MENU_GROUP, order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1, when: ContextKeyExpr.and(ContextKeyExpr.notEquals('resourceScheme', 'output'), EditorContextKeys.editorTextFocus) });\nMenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1 });\n\nexport const PasteAction = supportsPaste ? registerCommand(new MultiCommand({\n\tid: 'editor.action.clipboardPasteAction',\n\tprecondition: undefined,\n\tkbOpts: (\n\t\t// Do not bind paste keybindings in the browser,\n\t\t// since browsers do that for us and it avoids security prompts\n\t\tplatform.isNative ? {\n\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyV,\n\t\t\twin: { primary: KeyMod.CtrlCmd | KeyCode.KeyV, secondary: [KeyMod.Shift | KeyCode.Insert] },\n\t\t\tlinux: { primary: KeyMod.CtrlCmd | KeyCode.KeyV, secondary: [KeyMod.Shift | KeyCode.Insert] },\n\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t} : undefined\n\t),\n\tmenuOpts: [{\n\t\tmenuId: MenuId.MenubarEditMenu,\n\t\tgroup: '2_ccp',\n\t\ttitle: nls.localize({ key: 'miPaste', comment: ['&& denotes a mnemonic'] }, \"&&Paste\"),\n\t\torder: 4\n\t}, {\n\t\tmenuId: MenuId.EditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 4,\n\t}, {\n\t\tmenuId: MenuId.CommandPalette,\n\t\tgroup: '',\n\t\ttitle: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.SimpleEditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 4,\n\t}]\n})) : undefined;\n\nclass ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.clipboardCopyWithSyntaxHighlightingAction',\n\t\t\tlabel: nls.localize2('actions.clipboard.copyWithSyntaxHighlightingLabel', \"Copy with Syntax Highlighting\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.textInputFocus,\n\t\t\t\tprimary: 0,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst logService = accessor.get(ILogService);\n\t\tconst clipboardService = accessor.get(IClipboardService);\n\t\tlogService.trace('ExecCommandCopyWithSyntaxHighlightingAction#run');\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst emptySelectionClipboard = editor.getOption(EditorOption.emptySelectionClipboard);\n\n\t\tif (!emptySelectionClipboard && editor.getSelection().isEmpty()) {\n\t\t\treturn;\n\t\t}\n\n\t\tCopyOptions.forceCopyWithSyntaxHighlighting = true;\n\t\teditor.focus();\n\t\tlogService.trace('ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)');\n\t\texecuteClipboardCopyWithWorkaround(editor, clipboardService);\n\t\tlogService.trace('ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)');\n\t\tCopyOptions.forceCopyWithSyntaxHighlighting = false;\n\t}\n}\n\nfunction executeClipboardCopyWithWorkaround(editor: IActiveCodeEditor, clipboardService: IClipboardService) {\n\t// !!!!!\n\t// This is a workaround for what we think is an Electron bug where\n\t// execCommand('copy') does not always work (it does not fire a clipboard event)\n\t// We will use this as a signal that we have executed a copy command\n\t// !!!!!\n\tCopyOptions.electronBugWorkaroundCopyEventHasFired = false;\n\teditor.getContainerDomNode().ownerDocument.execCommand('copy');\n\tif (platform.isNative && CopyOptions.electronBugWorkaroundCopyEventHasFired === false) {\n\t\t// We have encountered the Electron bug!\n\t\t// As a workaround, we will write (only the plaintext data) to the clipboard in a different way\n\t\t// We will use the clipboard service (which in the native case will go to electron's clipboard API)\n\t\tconst { dataToCopy } = generateDataToCopyAndStoreInMemory(editor._getViewModel(), editor.getOptions(), undefined, browser.isFirefox);\n\t\tclipboardService.writeText(dataToCopy.text);\n\t}\n}\n\nasync function pasteWithNavigatorAPI(editor: IActiveCodeEditor, clipboardService: IClipboardService, logService: ILogService): Promise<void> {\n\tconst clipboardText = await clipboardService.readText();\n\tif (clipboardText !== '') {\n\t\tconst metadata = InMemoryClipboardMetadataManager.INSTANCE.get(clipboardText);\n\t\tlet pasteOnNewLine = false;\n\t\tlet multicursorText: string[] | null = null;\n\t\tlet mode: string | null = null;\n\t\tif (metadata) {\n\t\t\tpasteOnNewLine = (editor.getOption(EditorOption.emptySelectionClipboard) && !!metadata.isFromEmptySelection);\n\t\t\tmulticursorText = (typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null);\n\t\t\tmode = metadata.mode;\n\t\t}\n\t\tlogService.trace('pasteWithNavigatorAPI with id : ', metadata?.id, ', clipboardText.length : ', clipboardText.length);\n\t\teditor.trigger('keyboard', Handler.Paste, {\n\t\t\ttext: clipboardText,\n\t\t\tpasteOnNewLine,\n\t\t\tmulticursorText,\n\t\t\tmode\n\t\t});\n\t}\n}\n\nfunction registerExecCommandImpl(target: MultiCommand | undefined, browserCommand: 'cut' | 'copy'): void {\n\tif (!target) {\n\t\treturn;\n\t}\n\n\t// 1. handle case when focus is in editor.\n\ttarget.addImplementation(10000, 'code-editor', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tconst clipboardService = accessor.get(IClipboardService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation code-editor for : ', browserCommand, ')');\n\t\t// Only if editor text focus (i.e. not if editor has widget focus).\n\t\tconst focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n\t\tif (focusedEditor && focusedEditor.hasTextFocus() && focusedEditor.hasModel()) {\n\t\t\t// Do not execute if there is no selection and empty selection clipboard is off\n\t\t\tconst emptySelectionClipboard = focusedEditor.getOption(EditorOption.emptySelectionClipboard);\n\t\t\tconst selection = focusedEditor.getSelection();\n\t\t\tif (selection && selection.isEmpty() && !emptySelectionClipboard) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t// TODO this is very ugly. The entire copy/paste/cut system needs a complete refactoring.\n\t\t\tif (focusedEditor.getOption(EditorOption.effectiveEditContext) && browserCommand === 'cut') {\n\t\t\t\tlogCopyCommand(focusedEditor);\n\t\t\t\t// execCommand(copy) works for edit context, but not execCommand(cut).\n\t\t\t\tlogService.trace('registerExecCommandImpl (before execCommand copy)');\n\t\t\t\texecuteClipboardCopyWithWorkaround(focusedEditor, clipboardService);\n\t\t\t\tfocusedEditor.trigger(undefined, Handler.Cut, undefined);\n\t\t\t\tlogService.trace('registerExecCommandImpl (after execCommand copy)');\n\t\t\t} else {\n\t\t\t\tlogCopyCommand(focusedEditor);\n\t\t\t\tlogService.trace('registerExecCommandImpl (before execCommand ' + browserCommand + ')');\n\t\t\t\tif (browserCommand === 'copy') {\n\t\t\t\t\texecuteClipboardCopyWithWorkaround(focusedEditor, clipboardService);\n\t\t\t\t} else {\n\t\t\t\t\tfocusedEditor.getContainerDomNode().ownerDocument.execCommand(browserCommand);\n\t\t\t\t}\n\t\t\t\tlogService.trace('registerExecCommandImpl (after execCommand ' + browserCommand + ')');\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// 2. (default) handle case when focus is somewhere else.\n\ttarget.addImplementation(0, 'generic-dom', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation generic-dom for : ', browserCommand, ')');\n\t\tlogService.trace('registerExecCommandImpl (before execCommand ' + browserCommand + ')');\n\t\tgetActiveDocument().execCommand(browserCommand);\n\t\tlogService.trace('registerExecCommandImpl (after execCommand ' + browserCommand + ')');\n\t\treturn true;\n\t});\n}\n\nfunction logCopyCommand(editor: ICodeEditor) {\n\tconst editContextEnabled = editor.getOption(EditorOption.effectiveEditContext);\n\tif (editContextEnabled) {\n\t\tconst nativeEditContext = NativeEditContextRegistry.get(editor.getId());\n\t\tif (nativeEditContext) {\n\t\t\tnativeEditContext.onWillCopy();\n\t\t}\n\t}\n}\n\nregisterExecCommandImpl(CutAction, 'cut');\nregisterExecCommandImpl(CopyAction, 'copy');\n\nif (PasteAction) {\n\t// 1. Paste: handle case when focus is in editor.\n\tPasteAction.addImplementation(10000, 'code-editor', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation code-editor for : paste)');\n\t\tconst codeEditorService = accessor.get(ICodeEditorService);\n\t\tconst clipboardService = accessor.get(IClipboardService);\n\n\t\t// Only if editor text focus (i.e. not if editor has widget focus).\n\t\tconst focusedEditor = codeEditorService.getFocusedCodeEditor();\n\t\tif (focusedEditor && focusedEditor.hasModel() && focusedEditor.hasTextFocus()) {\n\t\t\t// execCommand(paste) does not work with edit context\n\t\t\tconst editContextEnabled = focusedEditor.getOption(EditorOption.effectiveEditContext);\n\t\t\tif (editContextEnabled) {\n\t\t\t\tconst nativeEditContext = NativeEditContextRegistry.get(focusedEditor.getId());\n\t\t\t\tif (nativeEditContext) {\n\t\t\t\t\tnativeEditContext.onWillPaste();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlogService.trace('registerExecCommandImpl (before triggerPaste)');\n\t\t\tPasteOptions.electronBugWorkaroundPasteEventHasFired = false;\n\t\t\tconst triggerPaste = clipboardService.triggerPaste(getActiveWindow().vscodeWindowId);\n\t\t\tif (triggerPaste) {\n\t\t\t\tlogService.trace('registerExecCommandImpl (triggerPaste defined)');\n\t\t\t\tPasteOptions.electronBugWorkaroundPasteEventLock = false;\n\t\t\t\treturn triggerPaste.then(async () => {\n\t\t\t\t\tif (PasteOptions.electronBugWorkaroundPasteEventHasFired === false) {\n\t\t\t\t\t\t// Ensure this doesn't run twice, what appears to be happening is\n\t\t\t\t\t\t// triggerPasteis called once but it's handler is called multiple times\n\t\t\t\t\t\t// when it reproduces\n\t\t\t\t\t\tif (PasteOptions.electronBugWorkaroundPasteEventLock === true) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tPasteOptions.electronBugWorkaroundPasteEventLock = true;\n\t\t\t\t\t\treturn pasteWithNavigatorAPI(focusedEditor, clipboardService, logService);\n\t\t\t\t\t}\n\t\t\t\t\tlogService.trace('registerExecCommandImpl (after triggerPaste)');\n\t\t\t\t\treturn CopyPasteController.get(focusedEditor)?.finishedPaste() ?? Promise.resolve();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlogService.trace('registerExecCommandImpl (triggerPaste undefined)');\n\t\t\t}\n\t\t\tif (platform.isWeb) {\n\t\t\t\tlogService.trace('registerExecCommandImpl (Paste handling on web)');\n\t\t\t\t// Use the clipboard service if document.execCommand('paste') was not successful\n\t\t\t\treturn pasteWithNavigatorAPI(focusedEditor, clipboardService, logService);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// 2. Paste: (default) handle case when focus is somewhere else.\n\tPasteAction.addImplementation(0, 'generic-dom', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation generic-dom for : paste)');\n\t\tconst triggerPaste = accessor.get(IClipboardService).triggerPaste(getActiveWindow().vscodeWindowId);\n\t\treturn triggerPaste ?? false;\n\t});\n}\n\nif (supportsCopy) {\n\tregisterEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/clipboard/browser/clipboard.ts"],"names":[],"mappings":"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","file":"clipboard.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 browser from '../../../../base/browser/browser.js';\nimport { getActiveDocument, getActiveWindow } from '../../../../base/browser/dom.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ServicesAccessor } from '../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { CopyOptions, generateDataToCopyAndStoreInMemory, InMemoryClipboardMetadataManager, PasteOptions } from '../../../browser/controller/editContext/clipboardUtils.js';\nimport { NativeEditContextRegistry } from '../../../browser/controller/editContext/native/nativeEditContextRegistry.js';\nimport { IActiveCodeEditor, ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { Command, EditorAction, MultiCommand, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Handler } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CopyPasteController } from '../../dropOrPasteInto/browser/copyPasteController.js';\n\nconst CLIPBOARD_CONTEXT_MENU_GROUP = '9_cutcopypaste';\n\nconst supportsCut = (platform.isNative || document.queryCommandSupported('cut'));\nconst supportsCopy = (platform.isNative || document.queryCommandSupported('copy'));\n// Firefox only supports navigator.clipboard.readText() in browser extensions.\n// See https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText#Browser_compatibility\n// When loading over http, navigator.clipboard can be undefined. See https://github.com/microsoft/monaco-editor/issues/2313\nconst supportsPaste = (typeof navigator.clipboard === 'undefined' || browser.isFirefox) ? document.queryCommandSupported('paste') : true;\n\nfunction registerCommand<T extends Command>(command: T): T {\n\tcommand.register();\n\treturn command;\n}\n\nexport const CutAction = supportsCut ? registerCommand(new MultiCommand({\n\tid: 'editor.action.clipboardCutAction',\n\tprecondition: undefined,\n\tkbOpts: (\n\t\t// Do not bind cut keybindings in the browser,\n\t\t// since browsers do that for us and it avoids security prompts\n\t\tplatform.isNative ? {\n\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyX,\n\t\t\twin: { primary: KeyMod.CtrlCmd | KeyCode.KeyX, secondary: [KeyMod.Shift | KeyCode.Delete] },\n\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t} : undefined\n\t),\n\tmenuOpts: [{\n\t\tmenuId: MenuId.MenubarEditMenu,\n\t\tgroup: '2_ccp',\n\t\ttitle: nls.localize({ key: 'miCut', comment: ['&& denotes a mnemonic'] }, \"Cu&&t\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.EditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 1,\n\t}, {\n\t\tmenuId: MenuId.CommandPalette,\n\t\tgroup: '',\n\t\ttitle: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.SimpleEditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 1,\n\t}]\n})) : undefined;\n\nexport const CopyAction = supportsCopy ? registerCommand(new MultiCommand({\n\tid: 'editor.action.clipboardCopyAction',\n\tprecondition: undefined,\n\tkbOpts: (\n\t\t// Do not bind copy keybindings in the browser,\n\t\t// since browsers do that for us and it avoids security prompts\n\t\tplatform.isNative ? {\n\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyC,\n\t\t\twin: { primary: KeyMod.CtrlCmd | KeyCode.KeyC, secondary: [KeyMod.CtrlCmd | KeyCode.Insert] },\n\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t} : undefined\n\t),\n\tmenuOpts: [{\n\t\tmenuId: MenuId.MenubarEditMenu,\n\t\tgroup: '2_ccp',\n\t\ttitle: nls.localize({ key: 'miCopy', comment: ['&& denotes a mnemonic'] }, \"&&Copy\"),\n\t\torder: 2\n\t}, {\n\t\tmenuId: MenuId.EditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n\t\torder: 2,\n\t}, {\n\t\tmenuId: MenuId.CommandPalette,\n\t\tgroup: '',\n\t\ttitle: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.SimpleEditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n\t\torder: 2,\n\t}]\n})) : undefined;\n\nMenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: nls.localize2('copy as', \"Copy As\"), group: '2_ccp', order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: nls.localize2('copy as', \"Copy As\"), group: CLIPBOARD_CONTEXT_MENU_GROUP, order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1, when: ContextKeyExpr.and(ContextKeyExpr.notEquals('resourceScheme', 'output'), EditorContextKeys.editorTextFocus) });\nMenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1 });\n\nexport const PasteAction = supportsPaste ? registerCommand(new MultiCommand({\n\tid: 'editor.action.clipboardPasteAction',\n\tprecondition: undefined,\n\tkbOpts: (\n\t\t// Do not bind paste keybindings in the browser,\n\t\t// since browsers do that for us and it avoids security prompts\n\t\tplatform.isNative ? {\n\t\t\tprimary: KeyMod.CtrlCmd | KeyCode.KeyV,\n\t\t\twin: { primary: KeyMod.CtrlCmd | KeyCode.KeyV, secondary: [KeyMod.Shift | KeyCode.Insert] },\n\t\t\tlinux: { primary: KeyMod.CtrlCmd | KeyCode.KeyV, secondary: [KeyMod.Shift | KeyCode.Insert] },\n\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t} : undefined\n\t),\n\tmenuOpts: [{\n\t\tmenuId: MenuId.MenubarEditMenu,\n\t\tgroup: '2_ccp',\n\t\ttitle: nls.localize({ key: 'miPaste', comment: ['&& denotes a mnemonic'] }, \"&&Paste\"),\n\t\torder: 4\n\t}, {\n\t\tmenuId: MenuId.EditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 4,\n\t}, {\n\t\tmenuId: MenuId.CommandPalette,\n\t\tgroup: '',\n\t\ttitle: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n\t\torder: 1\n\t}, {\n\t\tmenuId: MenuId.SimpleEditorContext,\n\t\tgroup: CLIPBOARD_CONTEXT_MENU_GROUP,\n\t\ttitle: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n\t\twhen: EditorContextKeys.writable,\n\t\torder: 4,\n\t}]\n})) : undefined;\n\nclass ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.clipboardCopyWithSyntaxHighlightingAction',\n\t\t\tlabel: nls.localize2('actions.clipboard.copyWithSyntaxHighlightingLabel', \"Copy with Syntax Highlighting\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.textInputFocus,\n\t\t\t\tprimary: 0,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tconst logService = accessor.get(ILogService);\n\t\tconst clipboardService = accessor.get(IClipboardService);\n\t\tlogService.trace('ExecCommandCopyWithSyntaxHighlightingAction#run');\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst emptySelectionClipboard = editor.getOption(EditorOption.emptySelectionClipboard);\n\n\t\tif (!emptySelectionClipboard && editor.getSelection().isEmpty()) {\n\t\t\treturn;\n\t\t}\n\n\t\tCopyOptions.forceCopyWithSyntaxHighlighting = true;\n\t\teditor.focus();\n\t\tlogService.trace('ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)');\n\t\texecuteClipboardCopyWithWorkaround(editor, clipboardService);\n\t\tlogService.trace('ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)');\n\t\tCopyOptions.forceCopyWithSyntaxHighlighting = false;\n\t}\n}\n\nfunction executeClipboardCopyWithWorkaround(editor: IActiveCodeEditor, clipboardService: IClipboardService) {\n\t// !!!!!\n\t// This is a workaround for what we think is an Electron bug where\n\t// execCommand('copy') does not always work (it does not fire a clipboard event)\n\t// We will use this as a signal that we have executed a copy command\n\t// !!!!!\n\tCopyOptions.electronBugWorkaroundCopyEventHasFired = false;\n\teditor.getContainerDomNode().ownerDocument.execCommand('copy');\n\tif (platform.isNative && CopyOptions.electronBugWorkaroundCopyEventHasFired === false) {\n\t\t// We have encountered the Electron bug!\n\t\t// As a workaround, we will write (only the plaintext data) to the clipboard in a different way\n\t\t// We will use the clipboard service (which in the native case will go to electron's clipboard API)\n\t\tconst { dataToCopy } = generateDataToCopyAndStoreInMemory(editor._getViewModel(), editor.getOptions(), undefined, browser.isFirefox);\n\t\tclipboardService.writeText(dataToCopy.text);\n\t}\n}\n\nasync function pasteWithNavigatorAPI(editor: IActiveCodeEditor, clipboardService: IClipboardService, logService: ILogService): Promise<void> {\n\tconst clipboardText = await clipboardService.readText();\n\tif (clipboardText !== '') {\n\t\tconst metadata = InMemoryClipboardMetadataManager.INSTANCE.get(clipboardText);\n\t\tlet pasteOnNewLine = false;\n\t\tlet multicursorText: string[] | null = null;\n\t\tlet mode: string | null = null;\n\t\tif (metadata) {\n\t\t\tpasteOnNewLine = (editor.getOption(EditorOption.emptySelectionClipboard) && !!metadata.isFromEmptySelection);\n\t\t\tmulticursorText = (typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null);\n\t\t\tmode = metadata.mode;\n\t\t}\n\t\tlogService.trace('pasteWithNavigatorAPI with id : ', metadata?.id, ', clipboardText.length : ', clipboardText.length);\n\t\teditor.trigger('keyboard', Handler.Paste, {\n\t\t\ttext: clipboardText,\n\t\t\tpasteOnNewLine,\n\t\t\tmulticursorText,\n\t\t\tmode\n\t\t});\n\t}\n}\n\nfunction registerExecCommandImpl(target: MultiCommand | undefined, browserCommand: 'cut' | 'copy'): void {\n\tif (!target) {\n\t\treturn;\n\t}\n\n\t// 1. handle case when focus is in editor.\n\ttarget.addImplementation(10000, 'code-editor', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tconst clipboardService = accessor.get(IClipboardService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation code-editor for : ', browserCommand, ')');\n\t\t// Only if editor text focus (i.e. not if editor has widget focus).\n\t\tconst focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n\t\tif (focusedEditor && focusedEditor.hasTextFocus() && focusedEditor.hasModel()) {\n\t\t\t// Do not execute if there is no selection and empty selection clipboard is off\n\t\t\tconst emptySelectionClipboard = focusedEditor.getOption(EditorOption.emptySelectionClipboard);\n\t\t\tconst selection = focusedEditor.getSelection();\n\t\t\tif (selection && selection.isEmpty() && !emptySelectionClipboard) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t// TODO this is very ugly. The entire copy/paste/cut system needs a complete refactoring.\n\t\t\tif (focusedEditor.getOption(EditorOption.effectiveEditContext) && browserCommand === 'cut') {\n\t\t\t\tlogCopyCommand(focusedEditor);\n\t\t\t\t// execCommand(copy) works for edit context, but not execCommand(cut).\n\t\t\t\tlogService.trace('registerExecCommandImpl (before execCommand copy)');\n\t\t\t\texecuteClipboardCopyWithWorkaround(focusedEditor, clipboardService);\n\t\t\t\tfocusedEditor.trigger(undefined, Handler.Cut, undefined);\n\t\t\t\tlogService.trace('registerExecCommandImpl (after execCommand copy)');\n\t\t\t} else {\n\t\t\t\tlogCopyCommand(focusedEditor);\n\t\t\t\tlogService.trace('registerExecCommandImpl (before execCommand ' + browserCommand + ')');\n\t\t\t\tif (browserCommand === 'copy') {\n\t\t\t\t\texecuteClipboardCopyWithWorkaround(focusedEditor, clipboardService);\n\t\t\t\t} else {\n\t\t\t\t\tfocusedEditor.getContainerDomNode().ownerDocument.execCommand(browserCommand);\n\t\t\t\t}\n\t\t\t\tlogService.trace('registerExecCommandImpl (after execCommand ' + browserCommand + ')');\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// 2. (default) handle case when focus is somewhere else.\n\ttarget.addImplementation(0, 'generic-dom', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation generic-dom for : ', browserCommand, ')');\n\t\tlogService.trace('registerExecCommandImpl (before execCommand ' + browserCommand + ')');\n\t\tgetActiveDocument().execCommand(browserCommand);\n\t\tlogService.trace('registerExecCommandImpl (after execCommand ' + browserCommand + ')');\n\t\treturn true;\n\t});\n}\n\nfunction logCopyCommand(editor: ICodeEditor) {\n\tconst editContextEnabled = editor.getOption(EditorOption.effectiveEditContext);\n\tif (editContextEnabled) {\n\t\tconst nativeEditContext = NativeEditContextRegistry.get(editor.getId());\n\t\tif (nativeEditContext) {\n\t\t\tnativeEditContext.onWillCopy();\n\t\t}\n\t}\n}\n\nregisterExecCommandImpl(CutAction, 'cut');\nregisterExecCommandImpl(CopyAction, 'copy');\n\nif (PasteAction) {\n\t// 1. Paste: handle case when focus is in editor.\n\tPasteAction.addImplementation(10000, 'code-editor', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation code-editor for : paste)');\n\t\tconst codeEditorService = accessor.get(ICodeEditorService);\n\t\tconst clipboardService = accessor.get(IClipboardService);\n\n\t\t// Only if editor text focus (i.e. not if editor has widget focus).\n\t\tconst focusedEditor = codeEditorService.getFocusedCodeEditor();\n\t\tif (focusedEditor && focusedEditor.hasModel() && focusedEditor.hasTextFocus()) {\n\t\t\t// execCommand(paste) does not work with edit context\n\t\t\tconst editContextEnabled = focusedEditor.getOption(EditorOption.effectiveEditContext);\n\t\t\tif (editContextEnabled) {\n\t\t\t\tconst nativeEditContext = NativeEditContextRegistry.get(focusedEditor.getId());\n\t\t\t\tif (nativeEditContext) {\n\t\t\t\t\tnativeEditContext.onWillPaste();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlogService.trace('registerExecCommandImpl (before triggerPaste)');\n\t\t\tPasteOptions.electronBugWorkaroundPasteEventHasFired = false;\n\t\t\tlogService.trace('(before triggerPaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);\n\t\t\tconst triggerPaste = clipboardService.triggerPaste(getActiveWindow().vscodeWindowId);\n\t\t\tif (triggerPaste) {\n\t\t\t\tlogService.trace('registerExecCommandImpl (triggerPaste defined)');\n\t\t\t\tPasteOptions.electronBugWorkaroundPasteEventLock = false;\n\t\t\t\treturn triggerPaste.then(async () => {\n\t\t\t\t\tlogService.trace('(triggerPaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);\n\t\t\t\t\tif (PasteOptions.electronBugWorkaroundPasteEventHasFired === false) {\n\t\t\t\t\t\t// Ensure this doesn't run twice, what appears to be happening is\n\t\t\t\t\t\t// triggerPasteis called once but it's handler is called multiple times\n\t\t\t\t\t\t// when it reproduces\n\t\t\t\t\t\tlogService.trace('(triggerPaste) PasteOptions.electronBugWorkaroundPasteEventLock : ', PasteOptions.electronBugWorkaroundPasteEventLock);\n\t\t\t\t\t\tif (PasteOptions.electronBugWorkaroundPasteEventLock === true) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tPasteOptions.electronBugWorkaroundPasteEventLock = true;\n\t\t\t\t\t\treturn pasteWithNavigatorAPI(focusedEditor, clipboardService, logService);\n\t\t\t\t\t}\n\t\t\t\t\tlogService.trace('registerExecCommandImpl (after triggerPaste)');\n\t\t\t\t\treturn CopyPasteController.get(focusedEditor)?.finishedPaste() ?? Promise.resolve();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tlogService.trace('registerExecCommandImpl (triggerPaste undefined)');\n\t\t\t}\n\t\t\tif (platform.isWeb) {\n\t\t\t\tlogService.trace('registerExecCommandImpl (Paste handling on web)');\n\t\t\t\t// Use the clipboard service if document.execCommand('paste') was not successful\n\t\t\t\treturn pasteWithNavigatorAPI(focusedEditor, clipboardService, logService);\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// 2. Paste: (default) handle case when focus is somewhere else.\n\tPasteAction.addImplementation(0, 'generic-dom', (accessor: ServicesAccessor, args: unknown) => {\n\t\tconst logService = accessor.get(ILogService);\n\t\tlogService.trace('registerExecCommandImpl (addImplementation generic-dom for : paste)');\n\t\tconst triggerPaste = accessor.get(IClipboardService).triggerPaste(getActiveWindow().vscodeWindowId);\n\t\treturn triggerPaste ?? false;\n\t});\n}\n\nif (supportsCopy) {\n\tregisterEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);\n}\n"]}
@@ -177,6 +177,7 @@ let CopyPasteController = class CopyPasteController extends Disposable {
177
177
  }
178
178
  async handlePaste(e) {
179
179
  PasteOptions.electronBugWorkaroundPasteEventHasFired = true;
180
+ this._logService.trace('(handlePaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);
180
181
  if (e.clipboardData) {
181
182
  const [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);
182
183
  const metadataComputed = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts"],"names":[],"mappings":"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","file":"copyPasteController.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 { addDisposableListener } from '../../../../base/browser/dom.js';\nimport { IAction } from '../../../../base/common/actions.js';\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancelablePromise, createCancelablePromise, DeferredPromise, raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { createStringDataTransferItem, IReadonlyVSDataTransfer, matchesMimeType, UriList, VSDataTransfer } from '../../../../base/common/dataTransfer.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { upcast } from '../../../../base/common/types.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { localize } from '../../../../nls.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IProgressService, ProgressLocation } from '../../../../platform/progress/common/progress.js';\nimport { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ClipboardEventUtils, CopyOptions, InMemoryClipboardMetadataManager, PasteOptions } from '../../../browser/controller/editContext/clipboardUtils.js';\nimport { toExternalVSDataTransfer, toVSDataTransfer } from '../../../browser/dataTransfer.js';\nimport { ICodeEditor, PastePayload } from '../../../browser/editorBrowser.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { IRange, Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { Handler, IEditorContribution } from '../../../common/editorCommon.js';\nimport { DocumentPasteContext, DocumentPasteEdit, DocumentPasteEditProvider, DocumentPasteTriggerKind } from '../../../common/languages.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CodeEditorStateFlag, EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { PreferredPasteConfiguration } from './copyPasteContribution.js';\nimport { DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport { createCombinedWorkspaceEdit, sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\n\nexport const changePasteTypeCommandId = 'editor.changePasteType';\n\nexport const pasteAsPreferenceConfig = 'editor.pasteAs.preferences';\n\nexport const pasteWidgetVisibleCtx = new RawContextKey<boolean>('pasteWidgetVisible', false, localize('pasteWidgetVisible', \"Whether the paste widget is showing\"));\n\nconst vscodeClipboardMime = 'application/vnd.code.copymetadata';\n\ninterface CopyMetadata {\n\treadonly id?: string;\n\treadonly providerCopyMimeTypes?: readonly string[];\n\n\treadonly defaultPastePayload: Omit<PastePayload, 'text'>;\n}\n\ntype PasteEditWithProvider = DocumentPasteEdit & {\n\tprovider: DocumentPasteEditProvider;\n};\n\n\ninterface DocumentPasteWithProviderEditsSession {\n\tedits: readonly PasteEditWithProvider[];\n\tdispose(): void;\n}\n\nexport type PastePreference =\n\t| { readonly only: HierarchicalKind }\n\t| { readonly preferences: readonly HierarchicalKind[] }\n\t| { readonly providerId: string } // Only used internally\n\t;\n\ninterface CopyOperation {\n\treadonly providerMimeTypes: readonly string[];\n\treadonly operation: CancelablePromise<IReadonlyVSDataTransfer | undefined>;\n}\n\nexport class CopyPasteController extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.copyPasteActionController';\n\n\tpublic static get(editor: ICodeEditor): CopyPasteController | null {\n\t\treturn editor.getContribution<CopyPasteController>(CopyPasteController.ID);\n\t}\n\n\tprivate static _configureDefaultAction?: IAction;\n\n\t/**\n\t * Global tracking the last copy operation.\n\t *\n\t * This is shared across all editors so that you can copy and paste between groups.\n\t *\n\t * TODO: figure out how to make this work with multiple windows\n\t */\n\tprivate static _currentCopyOperation?: {\n\t\treadonly handle: string;\n\t\treadonly operations: ReadonlyArray<CopyOperation>;\n\t};\n\n\tprivate readonly _editor: ICodeEditor;\n\n\tprivate _currentPasteOperation?: CancelablePromise<void>;\n\tprivate _pasteAsActionContext?: { readonly preferred?: PastePreference };\n\n\tprivate readonly _pasteProgressManager: InlineProgressManager;\n\tprivate readonly _postPasteWidgetManager: PostEditWidgetManager<PasteEditWithProvider>;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILogService private readonly _logService: ILogService,\n\t\t@IBulkEditService private readonly _bulkEditService: IBulkEditService,\n\t\t@IClipboardService private readonly _clipboardService: IClipboardService,\n\t\t@ICommandService private readonly _commandService: ICommandService,\n\t\t@IConfigurationService private readonly _configService: IConfigurationService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t\t@IQuickInputService private readonly _quickInputService: IQuickInputService,\n\t\t@IProgressService private readonly _progressService: IProgressService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\n\t\tconst container = editor.getContainerDomNode();\n\t\tthis._register(addDisposableListener(container, 'copy', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'cut', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'paste', e => this.handlePaste(e), true));\n\n\t\tthis._pasteProgressManager = this._register(new InlineProgressManager('pasteIntoEditor', editor, instantiationService));\n\n\t\tthis._postPasteWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'pasteIntoEditor', editor, pasteWidgetVisibleCtx,\n\t\t\t{ id: changePasteTypeCommandId, label: localize('postPasteWidgetTitle', \"Show paste options...\") },\n\t\t\t() => CopyPasteController._configureDefaultAction ? [CopyPasteController._configureDefaultAction] : []\n\t\t));\n\t}\n\n\tpublic changePasteType() {\n\t\tthis._postPasteWidgetManager.tryShowSelector();\n\t}\n\n\tpublic async pasteAs(preferred?: PastePreference) {\n\t\tthis._logService.trace('CopyPasteController.pasteAs');\n\t\tthis._editor.focus();\n\t\ttry {\n\t\t\tthis._logService.trace('Before calling editor.action.clipboardPasteAction');\n\t\t\tthis._pasteAsActionContext = { preferred };\n\t\t\tawait this._commandService.executeCommand('editor.action.clipboardPasteAction');\n\t\t} finally {\n\t\t\tthis._pasteAsActionContext = undefined;\n\t\t}\n\t}\n\n\tpublic clearWidgets() {\n\t\tthis._postPasteWidgetManager.clear();\n\t}\n\n\tprivate isPasteAsEnabled(): boolean {\n\t\treturn this._editor.getOption(EditorOption.pasteAs).enabled;\n\t}\n\n\tpublic async finishedPaste(): Promise<void> {\n\t\tawait this._currentPasteOperation;\n\t}\n\n\tprivate handleCopy(e: ClipboardEvent) {\n\t\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\t\tlet id: string | null = null;\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst storedMetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tid = storedMetadata?.id || null;\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy for id : ', id, ' with text.length : ', text.length);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy');\n\t\t}\n\t\tif (!this._editor.hasTextFocus()) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn1');\n\t\t\treturn;\n\t\t}\n\n\t\t// Explicitly clear the clipboard internal state.\n\t\t// This is needed because on web, the browser clipboard is faked out using an in-memory store.\n\t\t// This means the resources clipboard is not properly updated when copying from the editor.\n\t\tthis._clipboardService.clearInternalState?.();\n\n\t\tif (!e.clipboardData || !this.isPasteAsEnabled()) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn2');\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!model || !selections?.length) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn3');\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableEmptySelectionClipboard = this._editor.getOption(EditorOption.emptySelectionClipboard);\n\n\t\tlet ranges: readonly IRange[] = selections;\n\t\tconst wasFromEmptySelection = selections.length === 1 && selections[0].isEmpty();\n\t\tif (wasFromEmptySelection) {\n\t\t\tif (!enableEmptySelectionClipboard) {\n\t\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn4');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tranges = [new Range(ranges[0].startLineNumber, 1, ranges[0].startLineNumber, 1 + model.getLineLength(ranges[0].startLineNumber))];\n\t\t}\n\n\t\tconst toCopy = this._editor._getViewModel()?.getPlainTextToCopy(selections, enableEmptySelectionClipboard, platform.isWindows);\n\t\tconst multicursorText = Array.isArray(toCopy) ? toCopy : null;\n\n\t\tconst defaultPastePayload = {\n\t\t\tmulticursorText,\n\t\t\tpasteOnNewLine: wasFromEmptySelection,\n\t\t\tmode: null\n\t\t};\n\n\t\tconst providers = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(x => !!x.prepareDocumentPaste);\n\t\tif (!providers.length) {\n\t\t\tthis.setCopyMetadata(e.clipboardData, { defaultPastePayload });\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn5');\n\t\t\treturn;\n\t\t}\n\n\t\tconst dataTransfer = toVSDataTransfer(e.clipboardData);\n\t\tconst providerCopyMimeTypes = providers.flatMap(x => x.copyMimeTypes ?? []);\n\n\t\t// Save off a handle pointing to data that VS Code maintains.\n\t\tconst handle = id ?? generateUuid();\n\t\tthis.setCopyMetadata(e.clipboardData, {\n\t\t\tid: handle,\n\t\t\tproviderCopyMimeTypes,\n\t\t\tdefaultPastePayload\n\t\t});\n\n\t\tconst operations = providers.map((provider): CopyOperation => {\n\t\t\treturn {\n\t\t\t\tproviderMimeTypes: provider.copyMimeTypes,\n\t\t\t\toperation: createCancelablePromise(token =>\n\t\t\t\t\tprovider.prepareDocumentPaste!(model, ranges, dataTransfer, token)\n\t\t\t\t\t\t.catch(err => {\n\t\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}))\n\t\t\t};\n\t\t});\n\n\t\tCopyPasteController._currentCopyOperation?.operations.forEach(entry => entry.operation.cancel());\n\t\tCopyPasteController._currentCopyOperation = { handle, operations };\n\t\tthis._logService.trace('CopyPasteController#handleCopy/end');\n\t}\n\n\tprivate async handlePaste(e: ClipboardEvent) {\n\t\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst metadataComputed = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste for id : ', metadataComputed?.id);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste');\n\t\t}\n\t\tif (!e.clipboardData || !this._editor.hasTextFocus()) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn1');\n\t\t\treturn;\n\t\t}\n\n\t\tMessageController.get(this._editor)?.closeMessage();\n\t\tthis._currentPasteOperation?.cancel();\n\t\tthis._currentPasteOperation = undefined;\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!selections?.length || !model) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn2');\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tthis._editor.getOption(EditorOption.readOnly) // Never enabled if editor is readonly.\n\t\t\t|| (!this.isPasteAsEnabled() && !this._pasteAsActionContext) // Or feature disabled (but still enable if paste was explicitly requested)\n\t\t) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn3');\n\t\t\treturn;\n\t\t}\n\n\t\tconst metadata = this.fetchCopyMetadata(e);\n\t\tthis._logService.trace('CopyPasteController#handlePaste with metadata : ', metadata?.id, ' and text.length : ', e.clipboardData.getData('text/plain').length);\n\t\tconst dataTransfer = toExternalVSDataTransfer(e.clipboardData);\n\t\tdataTransfer.delete(vscodeClipboardMime);\n\n\t\tconst fileTypes = Array.from(e.clipboardData.files).map(file => file.type);\n\n\t\tconst allPotentialMimeTypes = [\n\t\t\t...e.clipboardData.types,\n\t\t\t...fileTypes,\n\t\t\t...metadata?.providerCopyMimeTypes ?? [],\n\t\t\t// TODO: always adds `uri-list` because this get set if there are resources in the system clipboard.\n\t\t\t// However we can only check the system clipboard async. For this early check, just add it in.\n\t\t\t// We filter providers again once we have the final dataTransfer we will use.\n\t\t\tMimes.uriList,\n\t\t];\n\n\t\tconst allProviders = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(provider => {\n\t\t\t\t// Filter out providers that don't match the requested paste types\n\t\t\t\tconst preference = this._pasteAsActionContext?.preferred;\n\t\t\t\tif (preference) {\n\t\t\t\t\tif (!this.providerMatchesPreference(provider, preference)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// And providers that don't handle any of mime types in the clipboard\n\t\t\t\treturn provider.pasteMimeTypes?.some(type => matchesMimeType(type, allPotentialMimeTypes));\n\t\t\t});\n\t\tif (!allProviders.length) {\n\t\t\tif (this._pasteAsActionContext?.preferred) {\n\t\t\t\tthis.showPasteAsNoEditMessage(selections, this._pasteAsActionContext.preferred);\n\n\t\t\t\t// Also prevent default paste from applying\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn4');\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent the editor's default paste handler from running.\n\t\t// Note that after this point, we are fully responsible for handling paste.\n\t\t// If we can't provider a paste for any reason, we need to explicitly delegate pasting back to the editor.\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\n\t\tif (this._pasteAsActionContext) {\n\t\t\tthis.showPasteAsPick(this._pasteAsActionContext.preferred, allProviders, selections, dataTransfer, metadata);\n\t\t} else {\n\t\t\tthis.doPasteInline(allProviders, selections, dataTransfer, metadata, e);\n\t\t}\n\t\tthis._logService.trace('CopyPasteController#handlePaste/end');\n\t}\n\n\tprivate showPasteAsNoEditMessage(selections: readonly Selection[], preference: PastePreference) {\n\t\tconst kindLabel = 'only' in preference\n\t\t\t? preference.only.value\n\t\t\t: 'preferences' in preference\n\t\t\t\t? (preference.preferences.length ? preference.preferences.map(preference => preference.value).join(', ') : localize('noPreferences', \"empty\"))\n\t\t\t\t: preference.providerId;\n\n\t\tMessageController.get(this._editor)?.showMessage(localize('pasteAsError', \"No paste edits for '{0}' found\", kindLabel), selections[0].getStartPosition());\n\t}\n\n\tprivate doPasteInline(allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, clipboardEvent: ClipboardEvent): void {\n\t\tthis._logService.trace('CopyPasteController#doPasteInline');\n\t\tconst editor = this._editor;\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editorStateCts = new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined);\n\n\t\tconst p = createCancelablePromise(async (pToken) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst cts = disposables.add(new CancellationTokenSource(pToken));\n\t\t\tdisposables.add(editorStateCts.token.onCancellationRequested(() => cts.cancel()));\n\n\t\t\tconst token = cts.token;\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, token);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));\n\t\t\t\tif (!supportedProviders.length\n\t\t\t\t\t|| (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider) // Only our default text provider is active\n\t\t\t\t) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.Automatic,\n\t\t\t\t};\n\n\t\t\t\tconst editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);\n\t\t\t\tdisposables.add(editSession);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If the only edit returned is our default text edit, use the default paste handler\n\t\t\t\tif (editSession.edits.length === 1 && editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tif (editSession.edits.length) {\n\t\t\t\t\tconst canShowWidget = editor.getOption(EditorOption.pasteAs).showPasteSelector === 'afterPaste';\n\t\t\t\t\treturn this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: this.getInitialActiveEditIndex(model, editSession.edits), allEdits: editSession.edits }, canShowWidget, async (edit, resolveToken) => {\n\t\t\t\t\t\tif (!edit.provider.resolveDocumentPasteEdit) {\n\t\t\t\t\t\t\treturn edit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst resolveP = edit.provider.resolveDocumentPasteEdit(edit, resolveToken);\n\t\t\t\t\t\tconst showP = new DeferredPromise<void>();\n\t\t\t\t\t\tconst resolved = await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('resolveProcess', \"Resolving paste edit for '{0}'. Click to cancel\", edit.title), raceCancellation(Promise.race([showP.p, resolveP]), resolveToken), {\n\t\t\t\t\t\t\tcancel: () => showP.cancel()\n\t\t\t\t\t\t}, 0);\n\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tedit.insertText = resolved.insertText;\n\t\t\t\t\t\t\tedit.additionalEdit = resolved.additionalEdit;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn edit;\n\t\t\t\t\t}, token);\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('pasteIntoEditorProgress', \"Running paste handlers. Click to cancel and do basic paste\"), p, {\n\t\t\tcancel: async () => {\n\t\t\t\tp.cancel();\n\t\t\t\tif (editorStateCts.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);\n\t\t\t}\n\t\t}).finally(() => {\n\t\t\teditorStateCts.dispose();\n\t\t});\n\t\tthis._currentPasteOperation = p;\n\t}\n\n\tprivate showPasteAsPick(preference: PastePreference | undefined, allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined): void {\n\t\tthis._logService.trace('CopyPasteController#showPasteAsPick');\n\t\tconst p = createCancelablePromise(async (token) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined, token));\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, tokenSource.token);\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any providers the don't match the full data transfer we will send them.\n\t\t\t\tlet supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer, preference));\n\t\t\t\tif (preference) {\n\t\t\t\t\t// We are looking for a specific edit\n\t\t\t\t\tsupportedProviders = supportedProviders.filter(provider => this.providerMatchesPreference(provider, preference));\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.PasteAs,\n\t\t\t\t\tonly: preference && 'only' in preference ? preference.only : undefined,\n\t\t\t\t};\n\t\t\t\tlet editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any edits that don't match the requested kind\n\t\t\t\tif (preference) {\n\t\t\t\t\teditSession = {\n\t\t\t\t\t\tedits: editSession.edits.filter(edit => {\n\t\t\t\t\t\t\tif ('only' in preference) {\n\t\t\t\t\t\t\t\treturn preference.only.contains(edit.kind);\n\t\t\t\t\t\t\t} else if ('preferences' in preference) {\n\t\t\t\t\t\t\t\treturn preference.preferences.some(preference => preference.contains(edit.kind));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn preference.providerId === edit.provider.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tdispose: editSession.dispose\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (!editSession.edits.length) {\n\t\t\t\t\tif (preference) {\n\t\t\t\t\t\tthis.showPasteAsNoEditMessage(selections, preference);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet pickedEdit: DocumentPasteEdit | undefined;\n\t\t\t\tif (preference) {\n\t\t\t\t\tpickedEdit = editSession.edits.at(0);\n\t\t\t\t} else {\n\t\t\t\t\ttype ItemWithEdit = IQuickPickItem & { edit?: DocumentPasteEdit };\n\t\t\t\t\tconst configureDefaultItem: ItemWithEdit = {\n\t\t\t\t\t\tid: 'editor.pasteAs.default',\n\t\t\t\t\t\tlabel: localize('pasteAsDefault', \"Configure default paste action\"),\n\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst selected = await this._quickInputService.pick<ItemWithEdit>(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t...editSession.edits.map((edit): ItemWithEdit => ({\n\t\t\t\t\t\t\t\tlabel: edit.title,\n\t\t\t\t\t\t\t\tdescription: edit.kind?.value,\n\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t...(CopyPasteController._configureDefaultAction ? [\n\t\t\t\t\t\t\t\tupcast<IQuickPickSeparator>({ type: 'separator' }),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: CopyPasteController._configureDefaultAction.label,\n\t\t\t\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t] : [])\n\t\t\t\t\t\t], {\n\t\t\t\t\t\tplaceHolder: localize('pasteAsPickerPlaceholder', \"Select Paste Action\"),\n\t\t\t\t\t});\n\n\t\t\t\t\tif (selected === configureDefaultItem) {\n\t\t\t\t\t\tCopyPasteController._configureDefaultAction?.run();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tpickedEdit = selected?.edit;\n\t\t\t\t}\n\n\t\t\t\tif (!pickedEdit) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, selections, pickedEdit);\n\t\t\t\tawait this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._progressService.withProgress({\n\t\t\tlocation: ProgressLocation.Window,\n\t\t\ttitle: localize('pasteAsProgress', \"Running paste handlers\"),\n\t\t}, () => p);\n\t}\n\n\tprivate setCopyMetadata(dataTransfer: DataTransfer, metadata: CopyMetadata) {\n\t\tthis._logService.trace('CopyPasteController#setCopyMetadata new id : ', metadata.id);\n\t\tdataTransfer.setData(vscodeClipboardMime, JSON.stringify(metadata));\n\t}\n\n\tprivate fetchCopyMetadata(e: ClipboardEvent): CopyMetadata | undefined {\n\t\tthis._logService.trace('CopyPasteController#fetchCopyMetadata');\n\t\tif (!e.clipboardData) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prefer using the clipboard data we saved off\n\t\tconst rawMetadata = e.clipboardData.getData(vscodeClipboardMime);\n\t\tif (rawMetadata) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(rawMetadata);\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise try to extract the generic text editor metadata\n\t\tconst [_, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\tif (metadata) {\n\t\t\treturn {\n\t\t\t\tdefaultPastePayload: {\n\t\t\t\t\tmode: metadata.mode,\n\t\t\t\t\tmulticursorText: metadata.multicursorText ?? null,\n\t\t\t\t\tpasteOnNewLine: !!metadata.isFromEmptySelection,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate async mergeInDataFromCopy(allProviders: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken): Promise<void> {\n\t\tthis._logService.trace('CopyPasteController#mergeInDataFromCopy with metadata : ', metadata?.id);\n\t\tif (metadata?.id && CopyPasteController._currentCopyOperation?.handle === metadata.id) {\n\t\t\t// Only resolve providers that have data we may care about\n\t\t\tconst toResolve = CopyPasteController._currentCopyOperation.operations\n\t\t\t\t.filter(op => allProviders.some(provider => provider.pasteMimeTypes.some(type => matchesMimeType(type, op.providerMimeTypes))))\n\t\t\t\t.map(op => op.operation);\n\n\t\t\tconst toMergeResults = await Promise.all(toResolve);\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Values from higher priority providers should overwrite values from lower priority ones.\n\t\t\t// Reverse the array to so that the calls to `DataTransfer.replace` later will do this\n\t\t\tfor (const toMergeData of toMergeResults.reverse()) {\n\t\t\t\tif (toMergeData) {\n\t\t\t\t\tfor (const [key, value] of toMergeData) {\n\t\t\t\t\t\tdataTransfer.replace(key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!dataTransfer.has(Mimes.uriList)) {\n\t\t\tconst resources = await this._clipboardService.readResources();\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (resources.length) {\n\t\t\t\tdataTransfer.append(Mimes.uriList, createStringDataTransferItem(UriList.create(resources)));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getPasteEdits(providers: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, model: ITextModel, selections: readonly Selection[], context: DocumentPasteContext, token: CancellationToken): Promise<DocumentPasteWithProviderEditsSession> {\n\t\tconst disposables = new DisposableStore();\n\n\t\tconst results = await raceCancellation(\n\t\t\tPromise.all(providers.map(async provider => {\n\t\t\t\ttry {\n\t\t\t\t\tconst edits = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);\n\t\t\t\t\tif (edits) {\n\t\t\t\t\t\tdisposables.add(edits);\n\t\t\t\t\t}\n\t\t\t\t\treturn edits?.edits?.map(edit => ({ ...edit, provider }));\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isCancellationError(err)) {\n\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t}\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t})),\n\t\t\ttoken);\n\t\tconst edits = coalesce(results ?? []).flat().filter(edit => {\n\t\t\treturn !context.only || context.only.contains(edit.kind);\n\t\t});\n\t\treturn {\n\t\t\tedits: sortEditsByYieldTo(edits),\n\t\t\tdispose: () => disposables.dispose()\n\t\t};\n\t}\n\n\tprivate async applyDefaultPasteHandler(dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken, clipboardEvent: ClipboardEvent) {\n\t\tconst textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get('text');\n\t\tconst text = (await textDataTransfer?.asString()) ?? '';\n\t\tif (token.isCancellationRequested) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst payload: PastePayload = {\n\t\t\tclipboardEvent,\n\t\t\ttext,\n\t\t\tpasteOnNewLine: metadata?.defaultPastePayload.pasteOnNewLine ?? false,\n\t\t\tmulticursorText: metadata?.defaultPastePayload.multicursorText ?? null,\n\t\t\tmode: null,\n\t\t};\n\t\tthis._logService.trace('CopyPasteController#applyDefaultPasteHandler for id : ', metadata?.id);\n\t\tthis._editor.trigger('keyboard', Handler.Paste, payload);\n\t}\n\n\t/**\n\t * Filter out providers if they:\n\t * - Don't handle any of the data transfer types we have\n\t * - Don't match the preferred paste kind\n\t */\n\tprivate isSupportedPasteProvider(provider: DocumentPasteEditProvider, dataTransfer: VSDataTransfer, preference?: PastePreference): boolean {\n\t\tif (!provider.pasteMimeTypes?.some(type => dataTransfer.matches(type))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !preference || this.providerMatchesPreference(provider, preference);\n\t}\n\n\tprivate providerMatchesPreference(provider: DocumentPasteEditProvider, preference: PastePreference): boolean {\n\t\tif ('only' in preference) {\n\t\t\treturn provider.providedPasteEditKinds.some(providedKind => preference.only.contains(providedKind));\n\t\t} else if ('preferences' in preference) {\n\t\t\treturn preference.preferences.some(providedKind => preference.preferences.some(preferredKind => preferredKind.contains(providedKind)));\n\t\t} else {\n\t\t\treturn provider.id === preference.providerId;\n\t\t}\n\t}\n\n\tprivate getInitialActiveEditIndex(model: ITextModel, edits: readonly DocumentPasteEdit[]): number {\n\t\tconst preferredProviders = this._configService.getValue<PreferredPasteConfiguration[]>(pasteAsPreferenceConfig, { resource: model.uri });\n\t\tfor (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n\t\t\tconst desiredKind = new HierarchicalKind(config);\n\t\t\tconst editIndex = edits.findIndex(edit => desiredKind.contains(edit.kind));\n\t\t\tif (editIndex >= 0) {\n\t\t\t\treturn editIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.ts"],"names":[],"mappings":"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","file":"copyPasteController.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 { addDisposableListener } from '../../../../base/browser/dom.js';\nimport { IAction } from '../../../../base/common/actions.js';\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancelablePromise, createCancelablePromise, DeferredPromise, raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { createStringDataTransferItem, IReadonlyVSDataTransfer, matchesMimeType, UriList, VSDataTransfer } from '../../../../base/common/dataTransfer.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Mimes } from '../../../../base/common/mime.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { upcast } from '../../../../base/common/types.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { localize } from '../../../../nls.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { IProgressService, ProgressLocation } from '../../../../platform/progress/common/progress.js';\nimport { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from '../../../../platform/quickinput/common/quickInput.js';\nimport { ClipboardEventUtils, CopyOptions, InMemoryClipboardMetadataManager, PasteOptions } from '../../../browser/controller/editContext/clipboardUtils.js';\nimport { toExternalVSDataTransfer, toVSDataTransfer } from '../../../browser/dataTransfer.js';\nimport { ICodeEditor, PastePayload } from '../../../browser/editorBrowser.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { IRange, Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { Handler, IEditorContribution } from '../../../common/editorCommon.js';\nimport { DocumentPasteContext, DocumentPasteEdit, DocumentPasteEditProvider, DocumentPasteTriggerKind } from '../../../common/languages.js';\nimport { ITextModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CodeEditorStateFlag, EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport { PreferredPasteConfiguration } from './copyPasteContribution.js';\nimport { DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport { createCombinedWorkspaceEdit, sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\n\nexport const changePasteTypeCommandId = 'editor.changePasteType';\n\nexport const pasteAsPreferenceConfig = 'editor.pasteAs.preferences';\n\nexport const pasteWidgetVisibleCtx = new RawContextKey<boolean>('pasteWidgetVisible', false, localize('pasteWidgetVisible', \"Whether the paste widget is showing\"));\n\nconst vscodeClipboardMime = 'application/vnd.code.copymetadata';\n\ninterface CopyMetadata {\n\treadonly id?: string;\n\treadonly providerCopyMimeTypes?: readonly string[];\n\n\treadonly defaultPastePayload: Omit<PastePayload, 'text'>;\n}\n\ntype PasteEditWithProvider = DocumentPasteEdit & {\n\tprovider: DocumentPasteEditProvider;\n};\n\n\ninterface DocumentPasteWithProviderEditsSession {\n\tedits: readonly PasteEditWithProvider[];\n\tdispose(): void;\n}\n\nexport type PastePreference =\n\t| { readonly only: HierarchicalKind }\n\t| { readonly preferences: readonly HierarchicalKind[] }\n\t| { readonly providerId: string } // Only used internally\n\t;\n\ninterface CopyOperation {\n\treadonly providerMimeTypes: readonly string[];\n\treadonly operation: CancelablePromise<IReadonlyVSDataTransfer | undefined>;\n}\n\nexport class CopyPasteController extends Disposable implements IEditorContribution {\n\n\tpublic static readonly ID = 'editor.contrib.copyPasteActionController';\n\n\tpublic static get(editor: ICodeEditor): CopyPasteController | null {\n\t\treturn editor.getContribution<CopyPasteController>(CopyPasteController.ID);\n\t}\n\n\tprivate static _configureDefaultAction?: IAction;\n\n\t/**\n\t * Global tracking the last copy operation.\n\t *\n\t * This is shared across all editors so that you can copy and paste between groups.\n\t *\n\t * TODO: figure out how to make this work with multiple windows\n\t */\n\tprivate static _currentCopyOperation?: {\n\t\treadonly handle: string;\n\t\treadonly operations: ReadonlyArray<CopyOperation>;\n\t};\n\n\tprivate readonly _editor: ICodeEditor;\n\n\tprivate _currentPasteOperation?: CancelablePromise<void>;\n\tprivate _pasteAsActionContext?: { readonly preferred?: PastePreference };\n\n\tprivate readonly _pasteProgressManager: InlineProgressManager;\n\tprivate readonly _postPasteWidgetManager: PostEditWidgetManager<PasteEditWithProvider>;\n\n\tconstructor(\n\t\teditor: ICodeEditor,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@ILogService private readonly _logService: ILogService,\n\t\t@IBulkEditService private readonly _bulkEditService: IBulkEditService,\n\t\t@IClipboardService private readonly _clipboardService: IClipboardService,\n\t\t@ICommandService private readonly _commandService: ICommandService,\n\t\t@IConfigurationService private readonly _configService: IConfigurationService,\n\t\t@ILanguageFeaturesService private readonly _languageFeaturesService: ILanguageFeaturesService,\n\t\t@IQuickInputService private readonly _quickInputService: IQuickInputService,\n\t\t@IProgressService private readonly _progressService: IProgressService,\n\t) {\n\t\tsuper();\n\n\t\tthis._editor = editor;\n\n\t\tconst container = editor.getContainerDomNode();\n\t\tthis._register(addDisposableListener(container, 'copy', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'cut', e => this.handleCopy(e)));\n\t\tthis._register(addDisposableListener(container, 'paste', e => this.handlePaste(e), true));\n\n\t\tthis._pasteProgressManager = this._register(new InlineProgressManager('pasteIntoEditor', editor, instantiationService));\n\n\t\tthis._postPasteWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'pasteIntoEditor', editor, pasteWidgetVisibleCtx,\n\t\t\t{ id: changePasteTypeCommandId, label: localize('postPasteWidgetTitle', \"Show paste options...\") },\n\t\t\t() => CopyPasteController._configureDefaultAction ? [CopyPasteController._configureDefaultAction] : []\n\t\t));\n\t}\n\n\tpublic changePasteType() {\n\t\tthis._postPasteWidgetManager.tryShowSelector();\n\t}\n\n\tpublic async pasteAs(preferred?: PastePreference) {\n\t\tthis._logService.trace('CopyPasteController.pasteAs');\n\t\tthis._editor.focus();\n\t\ttry {\n\t\t\tthis._logService.trace('Before calling editor.action.clipboardPasteAction');\n\t\t\tthis._pasteAsActionContext = { preferred };\n\t\t\tawait this._commandService.executeCommand('editor.action.clipboardPasteAction');\n\t\t} finally {\n\t\t\tthis._pasteAsActionContext = undefined;\n\t\t}\n\t}\n\n\tpublic clearWidgets() {\n\t\tthis._postPasteWidgetManager.clear();\n\t}\n\n\tprivate isPasteAsEnabled(): boolean {\n\t\treturn this._editor.getOption(EditorOption.pasteAs).enabled;\n\t}\n\n\tpublic async finishedPaste(): Promise<void> {\n\t\tawait this._currentPasteOperation;\n\t}\n\n\tprivate handleCopy(e: ClipboardEvent) {\n\t\tCopyOptions.electronBugWorkaroundCopyEventHasFired = true;\n\t\tlet id: string | null = null;\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst storedMetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tid = storedMetadata?.id || null;\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy for id : ', id, ' with text.length : ', text.length);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy');\n\t\t}\n\t\tif (!this._editor.hasTextFocus()) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn1');\n\t\t\treturn;\n\t\t}\n\n\t\t// Explicitly clear the clipboard internal state.\n\t\t// This is needed because on web, the browser clipboard is faked out using an in-memory store.\n\t\t// This means the resources clipboard is not properly updated when copying from the editor.\n\t\tthis._clipboardService.clearInternalState?.();\n\n\t\tif (!e.clipboardData || !this.isPasteAsEnabled()) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn2');\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!model || !selections?.length) {\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn3');\n\t\t\treturn;\n\t\t}\n\n\t\tconst enableEmptySelectionClipboard = this._editor.getOption(EditorOption.emptySelectionClipboard);\n\n\t\tlet ranges: readonly IRange[] = selections;\n\t\tconst wasFromEmptySelection = selections.length === 1 && selections[0].isEmpty();\n\t\tif (wasFromEmptySelection) {\n\t\t\tif (!enableEmptySelectionClipboard) {\n\t\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn4');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tranges = [new Range(ranges[0].startLineNumber, 1, ranges[0].startLineNumber, 1 + model.getLineLength(ranges[0].startLineNumber))];\n\t\t}\n\n\t\tconst toCopy = this._editor._getViewModel()?.getPlainTextToCopy(selections, enableEmptySelectionClipboard, platform.isWindows);\n\t\tconst multicursorText = Array.isArray(toCopy) ? toCopy : null;\n\n\t\tconst defaultPastePayload = {\n\t\t\tmulticursorText,\n\t\t\tpasteOnNewLine: wasFromEmptySelection,\n\t\t\tmode: null\n\t\t};\n\n\t\tconst providers = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(x => !!x.prepareDocumentPaste);\n\t\tif (!providers.length) {\n\t\t\tthis.setCopyMetadata(e.clipboardData, { defaultPastePayload });\n\t\t\tthis._logService.trace('CopyPasteController#handleCopy/earlyReturn5');\n\t\t\treturn;\n\t\t}\n\n\t\tconst dataTransfer = toVSDataTransfer(e.clipboardData);\n\t\tconst providerCopyMimeTypes = providers.flatMap(x => x.copyMimeTypes ?? []);\n\n\t\t// Save off a handle pointing to data that VS Code maintains.\n\t\tconst handle = id ?? generateUuid();\n\t\tthis.setCopyMetadata(e.clipboardData, {\n\t\t\tid: handle,\n\t\t\tproviderCopyMimeTypes,\n\t\t\tdefaultPastePayload\n\t\t});\n\n\t\tconst operations = providers.map((provider): CopyOperation => {\n\t\t\treturn {\n\t\t\t\tproviderMimeTypes: provider.copyMimeTypes,\n\t\t\t\toperation: createCancelablePromise(token =>\n\t\t\t\t\tprovider.prepareDocumentPaste!(model, ranges, dataTransfer, token)\n\t\t\t\t\t\t.catch(err => {\n\t\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}))\n\t\t\t};\n\t\t});\n\n\t\tCopyPasteController._currentCopyOperation?.operations.forEach(entry => entry.operation.cancel());\n\t\tCopyPasteController._currentCopyOperation = { handle, operations };\n\t\tthis._logService.trace('CopyPasteController#handleCopy/end');\n\t}\n\n\tprivate async handlePaste(e: ClipboardEvent) {\n\t\tPasteOptions.electronBugWorkaroundPasteEventHasFired = true;\n\t\tthis._logService.trace('(handlePaste) PasteOptions.electronBugWorkaroundPasteEventHasFired : ', PasteOptions.electronBugWorkaroundPasteEventHasFired);\n\t\tif (e.clipboardData) {\n\t\t\tconst [text, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\t\tconst metadataComputed = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text);\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste for id : ', metadataComputed?.id);\n\t\t} else {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste');\n\t\t}\n\t\tif (!e.clipboardData || !this._editor.hasTextFocus()) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn1');\n\t\t\treturn;\n\t\t}\n\n\t\tMessageController.get(this._editor)?.closeMessage();\n\t\tthis._currentPasteOperation?.cancel();\n\t\tthis._currentPasteOperation = undefined;\n\n\t\tconst model = this._editor.getModel();\n\t\tconst selections = this._editor.getSelections();\n\t\tif (!selections?.length || !model) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn2');\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tthis._editor.getOption(EditorOption.readOnly) // Never enabled if editor is readonly.\n\t\t\t|| (!this.isPasteAsEnabled() && !this._pasteAsActionContext) // Or feature disabled (but still enable if paste was explicitly requested)\n\t\t) {\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn3');\n\t\t\treturn;\n\t\t}\n\n\t\tconst metadata = this.fetchCopyMetadata(e);\n\t\tthis._logService.trace('CopyPasteController#handlePaste with metadata : ', metadata?.id, ' and text.length : ', e.clipboardData.getData('text/plain').length);\n\t\tconst dataTransfer = toExternalVSDataTransfer(e.clipboardData);\n\t\tdataTransfer.delete(vscodeClipboardMime);\n\n\t\tconst fileTypes = Array.from(e.clipboardData.files).map(file => file.type);\n\n\t\tconst allPotentialMimeTypes = [\n\t\t\t...e.clipboardData.types,\n\t\t\t...fileTypes,\n\t\t\t...metadata?.providerCopyMimeTypes ?? [],\n\t\t\t// TODO: always adds `uri-list` because this get set if there are resources in the system clipboard.\n\t\t\t// However we can only check the system clipboard async. For this early check, just add it in.\n\t\t\t// We filter providers again once we have the final dataTransfer we will use.\n\t\t\tMimes.uriList,\n\t\t];\n\n\t\tconst allProviders = this._languageFeaturesService.documentPasteEditProvider\n\t\t\t.ordered(model)\n\t\t\t.filter(provider => {\n\t\t\t\t// Filter out providers that don't match the requested paste types\n\t\t\t\tconst preference = this._pasteAsActionContext?.preferred;\n\t\t\t\tif (preference) {\n\t\t\t\t\tif (!this.providerMatchesPreference(provider, preference)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// And providers that don't handle any of mime types in the clipboard\n\t\t\t\treturn provider.pasteMimeTypes?.some(type => matchesMimeType(type, allPotentialMimeTypes));\n\t\t\t});\n\t\tif (!allProviders.length) {\n\t\t\tif (this._pasteAsActionContext?.preferred) {\n\t\t\t\tthis.showPasteAsNoEditMessage(selections, this._pasteAsActionContext.preferred);\n\n\t\t\t\t// Also prevent default paste from applying\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t\tthis._logService.trace('CopyPasteController#handlePaste/earlyReturn4');\n\t\t\treturn;\n\t\t}\n\n\t\t// Prevent the editor's default paste handler from running.\n\t\t// Note that after this point, we are fully responsible for handling paste.\n\t\t// If we can't provider a paste for any reason, we need to explicitly delegate pasting back to the editor.\n\t\te.preventDefault();\n\t\te.stopImmediatePropagation();\n\n\t\tif (this._pasteAsActionContext) {\n\t\t\tthis.showPasteAsPick(this._pasteAsActionContext.preferred, allProviders, selections, dataTransfer, metadata);\n\t\t} else {\n\t\t\tthis.doPasteInline(allProviders, selections, dataTransfer, metadata, e);\n\t\t}\n\t\tthis._logService.trace('CopyPasteController#handlePaste/end');\n\t}\n\n\tprivate showPasteAsNoEditMessage(selections: readonly Selection[], preference: PastePreference) {\n\t\tconst kindLabel = 'only' in preference\n\t\t\t? preference.only.value\n\t\t\t: 'preferences' in preference\n\t\t\t\t? (preference.preferences.length ? preference.preferences.map(preference => preference.value).join(', ') : localize('noPreferences', \"empty\"))\n\t\t\t\t: preference.providerId;\n\n\t\tMessageController.get(this._editor)?.showMessage(localize('pasteAsError', \"No paste edits for '{0}' found\", kindLabel), selections[0].getStartPosition());\n\t}\n\n\tprivate doPasteInline(allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, clipboardEvent: ClipboardEvent): void {\n\t\tthis._logService.trace('CopyPasteController#doPasteInline');\n\t\tconst editor = this._editor;\n\t\tif (!editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst editorStateCts = new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined);\n\n\t\tconst p = createCancelablePromise(async (pToken) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst cts = disposables.add(new CancellationTokenSource(pToken));\n\t\t\tdisposables.add(editorStateCts.token.onCancellationRequested(() => cts.cancel()));\n\n\t\t\tconst token = cts.token;\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, token);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer));\n\t\t\t\tif (!supportedProviders.length\n\t\t\t\t\t|| (supportedProviders.length === 1 && supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider) // Only our default text provider is active\n\t\t\t\t) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.Automatic,\n\t\t\t\t};\n\n\t\t\t\tconst editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);\n\t\t\t\tdisposables.add(editSession);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// If the only edit returned is our default text edit, use the default paste handler\n\t\t\t\tif (editSession.edits.length === 1 && editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {\n\t\t\t\t\treturn this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t\t}\n\n\t\t\t\tif (editSession.edits.length) {\n\t\t\t\t\tconst canShowWidget = editor.getOption(EditorOption.pasteAs).showPasteSelector === 'afterPaste';\n\t\t\t\t\treturn this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: this.getInitialActiveEditIndex(model, editSession.edits), allEdits: editSession.edits }, canShowWidget, async (edit, resolveToken) => {\n\t\t\t\t\t\tif (!edit.provider.resolveDocumentPasteEdit) {\n\t\t\t\t\t\t\treturn edit;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst resolveP = edit.provider.resolveDocumentPasteEdit(edit, resolveToken);\n\t\t\t\t\t\tconst showP = new DeferredPromise<void>();\n\t\t\t\t\t\tconst resolved = await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('resolveProcess', \"Resolving paste edit for '{0}'. Click to cancel\", edit.title), raceCancellation(Promise.race([showP.p, resolveP]), resolveToken), {\n\t\t\t\t\t\t\tcancel: () => showP.cancel()\n\t\t\t\t\t\t}, 0);\n\n\t\t\t\t\t\tif (resolved) {\n\t\t\t\t\t\t\tedit.insertText = resolved.insertText;\n\t\t\t\t\t\t\tedit.additionalEdit = resolved.additionalEdit;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn edit;\n\t\t\t\t\t}, token);\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize('pasteIntoEditorProgress', \"Running paste handlers. Click to cancel and do basic paste\"), p, {\n\t\t\tcancel: async () => {\n\t\t\t\tp.cancel();\n\t\t\t\tif (editorStateCts.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tawait this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);\n\t\t\t}\n\t\t}).finally(() => {\n\t\t\teditorStateCts.dispose();\n\t\t});\n\t\tthis._currentPasteOperation = p;\n\t}\n\n\tprivate showPasteAsPick(preference: PastePreference | undefined, allProviders: readonly DocumentPasteEditProvider[], selections: readonly Selection[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined): void {\n\t\tthis._logService.trace('CopyPasteController#showPasteAsPick');\n\t\tconst p = createCancelablePromise(async (token) => {\n\t\t\tconst editor = this._editor;\n\t\t\tif (!editor.hasModel()) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst model = editor.getModel();\n\n\t\t\tconst disposables = new DisposableStore();\n\t\t\tconst tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor, CodeEditorStateFlag.Value | CodeEditorStateFlag.Selection, undefined, token));\n\t\t\ttry {\n\t\t\t\tawait this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, tokenSource.token);\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any providers the don't match the full data transfer we will send them.\n\t\t\t\tlet supportedProviders = allProviders.filter(provider => this.isSupportedPasteProvider(provider, dataTransfer, preference));\n\t\t\t\tif (preference) {\n\t\t\t\t\t// We are looking for a specific edit\n\t\t\t\t\tsupportedProviders = supportedProviders.filter(provider => this.providerMatchesPreference(provider, preference));\n\t\t\t\t}\n\n\t\t\t\tconst context: DocumentPasteContext = {\n\t\t\t\t\ttriggerKind: DocumentPasteTriggerKind.PasteAs,\n\t\t\t\t\tonly: preference && 'only' in preference ? preference.only : undefined,\n\t\t\t\t};\n\t\t\t\tlet editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));\n\t\t\t\tif (tokenSource.token.isCancellationRequested) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Filter out any edits that don't match the requested kind\n\t\t\t\tif (preference) {\n\t\t\t\t\teditSession = {\n\t\t\t\t\t\tedits: editSession.edits.filter(edit => {\n\t\t\t\t\t\t\tif ('only' in preference) {\n\t\t\t\t\t\t\t\treturn preference.only.contains(edit.kind);\n\t\t\t\t\t\t\t} else if ('preferences' in preference) {\n\t\t\t\t\t\t\t\treturn preference.preferences.some(preference => preference.contains(edit.kind));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn preference.providerId === edit.provider.id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tdispose: editSession.dispose\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (!editSession.edits.length) {\n\t\t\t\t\tif (preference) {\n\t\t\t\t\t\tthis.showPasteAsNoEditMessage(selections, preference);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet pickedEdit: DocumentPasteEdit | undefined;\n\t\t\t\tif (preference) {\n\t\t\t\t\tpickedEdit = editSession.edits.at(0);\n\t\t\t\t} else {\n\t\t\t\t\ttype ItemWithEdit = IQuickPickItem & { edit?: DocumentPasteEdit };\n\t\t\t\t\tconst configureDefaultItem: ItemWithEdit = {\n\t\t\t\t\t\tid: 'editor.pasteAs.default',\n\t\t\t\t\t\tlabel: localize('pasteAsDefault', \"Configure default paste action\"),\n\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t};\n\n\t\t\t\t\tconst selected = await this._quickInputService.pick<ItemWithEdit>(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t...editSession.edits.map((edit): ItemWithEdit => ({\n\t\t\t\t\t\t\t\tlabel: edit.title,\n\t\t\t\t\t\t\t\tdescription: edit.kind?.value,\n\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t...(CopyPasteController._configureDefaultAction ? [\n\t\t\t\t\t\t\t\tupcast<IQuickPickSeparator>({ type: 'separator' }),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: CopyPasteController._configureDefaultAction.label,\n\t\t\t\t\t\t\t\t\tedit: undefined,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t] : [])\n\t\t\t\t\t\t], {\n\t\t\t\t\t\tplaceHolder: localize('pasteAsPickerPlaceholder', \"Select Paste Action\"),\n\t\t\t\t\t});\n\n\t\t\t\t\tif (selected === configureDefaultItem) {\n\t\t\t\t\t\tCopyPasteController._configureDefaultAction?.run();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tpickedEdit = selected?.edit;\n\t\t\t\t}\n\n\t\t\t\tif (!pickedEdit) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, selections, pickedEdit);\n\t\t\t\tawait this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });\n\t\t\t} finally {\n\t\t\t\tdisposables.dispose();\n\t\t\t\tif (this._currentPasteOperation === p) {\n\t\t\t\t\tthis._currentPasteOperation = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._progressService.withProgress({\n\t\t\tlocation: ProgressLocation.Window,\n\t\t\ttitle: localize('pasteAsProgress', \"Running paste handlers\"),\n\t\t}, () => p);\n\t}\n\n\tprivate setCopyMetadata(dataTransfer: DataTransfer, metadata: CopyMetadata) {\n\t\tthis._logService.trace('CopyPasteController#setCopyMetadata new id : ', metadata.id);\n\t\tdataTransfer.setData(vscodeClipboardMime, JSON.stringify(metadata));\n\t}\n\n\tprivate fetchCopyMetadata(e: ClipboardEvent): CopyMetadata | undefined {\n\t\tthis._logService.trace('CopyPasteController#fetchCopyMetadata');\n\t\tif (!e.clipboardData) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Prefer using the clipboard data we saved off\n\t\tconst rawMetadata = e.clipboardData.getData(vscodeClipboardMime);\n\t\tif (rawMetadata) {\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(rawMetadata);\n\t\t\t} catch {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t}\n\n\t\t// Otherwise try to extract the generic text editor metadata\n\t\tconst [_, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n\t\tif (metadata) {\n\t\t\treturn {\n\t\t\t\tdefaultPastePayload: {\n\t\t\t\t\tmode: metadata.mode,\n\t\t\t\t\tmulticursorText: metadata.multicursorText ?? null,\n\t\t\t\t\tpasteOnNewLine: !!metadata.isFromEmptySelection,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tprivate async mergeInDataFromCopy(allProviders: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken): Promise<void> {\n\t\tthis._logService.trace('CopyPasteController#mergeInDataFromCopy with metadata : ', metadata?.id);\n\t\tif (metadata?.id && CopyPasteController._currentCopyOperation?.handle === metadata.id) {\n\t\t\t// Only resolve providers that have data we may care about\n\t\t\tconst toResolve = CopyPasteController._currentCopyOperation.operations\n\t\t\t\t.filter(op => allProviders.some(provider => provider.pasteMimeTypes.some(type => matchesMimeType(type, op.providerMimeTypes))))\n\t\t\t\t.map(op => op.operation);\n\n\t\t\tconst toMergeResults = await Promise.all(toResolve);\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Values from higher priority providers should overwrite values from lower priority ones.\n\t\t\t// Reverse the array to so that the calls to `DataTransfer.replace` later will do this\n\t\t\tfor (const toMergeData of toMergeResults.reverse()) {\n\t\t\t\tif (toMergeData) {\n\t\t\t\t\tfor (const [key, value] of toMergeData) {\n\t\t\t\t\t\tdataTransfer.replace(key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!dataTransfer.has(Mimes.uriList)) {\n\t\t\tconst resources = await this._clipboardService.readResources();\n\t\t\tif (token.isCancellationRequested) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (resources.length) {\n\t\t\t\tdataTransfer.append(Mimes.uriList, createStringDataTransferItem(UriList.create(resources)));\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async getPasteEdits(providers: readonly DocumentPasteEditProvider[], dataTransfer: VSDataTransfer, model: ITextModel, selections: readonly Selection[], context: DocumentPasteContext, token: CancellationToken): Promise<DocumentPasteWithProviderEditsSession> {\n\t\tconst disposables = new DisposableStore();\n\n\t\tconst results = await raceCancellation(\n\t\t\tPromise.all(providers.map(async provider => {\n\t\t\t\ttry {\n\t\t\t\t\tconst edits = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);\n\t\t\t\t\tif (edits) {\n\t\t\t\t\t\tdisposables.add(edits);\n\t\t\t\t\t}\n\t\t\t\t\treturn edits?.edits?.map(edit => ({ ...edit, provider }));\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (!isCancellationError(err)) {\n\t\t\t\t\t\tconsole.error(err);\n\t\t\t\t\t}\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t})),\n\t\t\ttoken);\n\t\tconst edits = coalesce(results ?? []).flat().filter(edit => {\n\t\t\treturn !context.only || context.only.contains(edit.kind);\n\t\t});\n\t\treturn {\n\t\t\tedits: sortEditsByYieldTo(edits),\n\t\t\tdispose: () => disposables.dispose()\n\t\t};\n\t}\n\n\tprivate async applyDefaultPasteHandler(dataTransfer: VSDataTransfer, metadata: CopyMetadata | undefined, token: CancellationToken, clipboardEvent: ClipboardEvent) {\n\t\tconst textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get('text');\n\t\tconst text = (await textDataTransfer?.asString()) ?? '';\n\t\tif (token.isCancellationRequested) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst payload: PastePayload = {\n\t\t\tclipboardEvent,\n\t\t\ttext,\n\t\t\tpasteOnNewLine: metadata?.defaultPastePayload.pasteOnNewLine ?? false,\n\t\t\tmulticursorText: metadata?.defaultPastePayload.multicursorText ?? null,\n\t\t\tmode: null,\n\t\t};\n\t\tthis._logService.trace('CopyPasteController#applyDefaultPasteHandler for id : ', metadata?.id);\n\t\tthis._editor.trigger('keyboard', Handler.Paste, payload);\n\t}\n\n\t/**\n\t * Filter out providers if they:\n\t * - Don't handle any of the data transfer types we have\n\t * - Don't match the preferred paste kind\n\t */\n\tprivate isSupportedPasteProvider(provider: DocumentPasteEditProvider, dataTransfer: VSDataTransfer, preference?: PastePreference): boolean {\n\t\tif (!provider.pasteMimeTypes?.some(type => dataTransfer.matches(type))) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !preference || this.providerMatchesPreference(provider, preference);\n\t}\n\n\tprivate providerMatchesPreference(provider: DocumentPasteEditProvider, preference: PastePreference): boolean {\n\t\tif ('only' in preference) {\n\t\t\treturn provider.providedPasteEditKinds.some(providedKind => preference.only.contains(providedKind));\n\t\t} else if ('preferences' in preference) {\n\t\t\treturn preference.preferences.some(providedKind => preference.preferences.some(preferredKind => preferredKind.contains(providedKind)));\n\t\t} else {\n\t\t\treturn provider.id === preference.providerId;\n\t\t}\n\t}\n\n\tprivate getInitialActiveEditIndex(model: ITextModel, edits: readonly DocumentPasteEdit[]): number {\n\t\tconst preferredProviders = this._configService.getValue<PreferredPasteConfiguration[]>(pasteAsPreferenceConfig, { resource: model.uri });\n\t\tfor (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n\t\t\tconst desiredKind = new HierarchicalKind(config);\n\t\t\tconst editIndex = edits.findIndex(edit => desiredKind.contains(edit.kind));\n\t\t\tif (editIndex >= 0) {\n\t\t\t\treturn editIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n}\n"]}
@@ -324,8 +324,7 @@ export class AccessibilitySignal {
324
324
  name: localize(1654, 'Chat User Action Required'),
325
325
  sound: Sound.chatUserActionRequired,
326
326
  announcementMessage: localize(1655, 'Chat User Action Required'),
327
- settingsKey: 'accessibility.signals.chatUserActionRequired',
328
- managesOwnEnablement: true
327
+ settingsKey: 'accessibility.signals.chatUserActionRequired'
329
328
  }); }
330
329
  }
331
330
  //# sourceMappingURL=accessibilitySignalService.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/platform/accessibilitySignal/browser/accessibilitySignalService.ts"],"names":[],"mappings":"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","file":"accessibilitySignalService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\nimport { localize } from '../../../nls.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\n\nexport const IAccessibilitySignalService = createDecorator<IAccessibilitySignalService>('accessibilitySignalService');\n\nexport interface IAccessibilitySignalService {\n\treadonly _serviceBrand: undefined;\n\tplaySignal(signal: AccessibilitySignal, options?: IAccessbilitySignalOptions): Promise<void>;\n}\n\n/** Make sure you understand the doc comments of the method you want to call when using this token! */\nexport const AcknowledgeDocCommentsToken = Symbol('AcknowledgeDocCommentsToken');\n\nexport interface IAccessbilitySignalOptions {\n\n\t/**\n\t * The source that triggered the signal (e.g. \"diffEditor.cursorPositionChanged\").\n\t */\n\tsource?: string;\n\n\t/**\n\t * For actions like save or format, depending on the\n\t * configured value, we will only\n\t * play the sound if the user triggered the action.\n\t */\n\tuserGesture?: boolean;\n}\n\n/**\n * Corresponds to the audio files in ./media.\n*/\nexport class Sound {\n\tprivate static register(options: { fileName: string }): Sound {\n\t\tconst sound = new Sound(options.fileName);\n\t\treturn sound;\n\t}\n\n\tpublic static readonly error = Sound.register({ fileName: 'error.mp3' });\n\tpublic static readonly warning = Sound.register({ fileName: 'warning.mp3' });\n\tpublic static readonly success = Sound.register({ fileName: 'success.mp3' });\n\tpublic static readonly foldedArea = Sound.register({ fileName: 'foldedAreas.mp3' });\n\tpublic static readonly break = Sound.register({ fileName: 'break.mp3' });\n\tpublic static readonly quickFixes = Sound.register({ fileName: 'quickFixes.mp3' });\n\tpublic static readonly taskCompleted = Sound.register({ fileName: 'taskCompleted.mp3' });\n\tpublic static readonly taskFailed = Sound.register({ fileName: 'taskFailed.mp3' });\n\tpublic static readonly terminalBell = Sound.register({ fileName: 'terminalBell.mp3' });\n\tpublic static readonly diffLineInserted = Sound.register({ fileName: 'diffLineInserted.mp3' });\n\tpublic static readonly diffLineDeleted = Sound.register({ fileName: 'diffLineDeleted.mp3' });\n\tpublic static readonly diffLineModified = Sound.register({ fileName: 'diffLineModified.mp3' });\n\tpublic static readonly requestSent = Sound.register({ fileName: 'requestSent.mp3' });\n\tpublic static readonly responseReceived1 = Sound.register({ fileName: 'responseReceived1.mp3' });\n\tpublic static readonly responseReceived2 = Sound.register({ fileName: 'responseReceived2.mp3' });\n\tpublic static readonly responseReceived3 = Sound.register({ fileName: 'responseReceived3.mp3' });\n\tpublic static readonly responseReceived4 = Sound.register({ fileName: 'responseReceived4.mp3' });\n\tpublic static readonly clear = Sound.register({ fileName: 'clear.mp3' });\n\tpublic static readonly save = Sound.register({ fileName: 'save.mp3' });\n\tpublic static readonly format = Sound.register({ fileName: 'format.mp3' });\n\tpublic static readonly voiceRecordingStarted = Sound.register({ fileName: 'voiceRecordingStarted.mp3' });\n\tpublic static readonly voiceRecordingStopped = Sound.register({ fileName: 'voiceRecordingStopped.mp3' });\n\tpublic static readonly progress = Sound.register({ fileName: 'progress.mp3' });\n\tpublic static readonly chatEditModifiedFile = Sound.register({ fileName: 'chatEditModifiedFile.mp3' });\n\tpublic static readonly editsKept = Sound.register({ fileName: 'editsKept.mp3' });\n\tpublic static readonly editsUndone = Sound.register({ fileName: 'editsUndone.mp3' });\n\tpublic static readonly nextEditSuggestion = Sound.register({ fileName: 'nextEditSuggestion.mp3' });\n\tpublic static readonly terminalCommandSucceeded = Sound.register({ fileName: 'terminalCommandSucceeded.mp3' });\n\tpublic static readonly chatUserActionRequired = Sound.register({ fileName: 'chatUserActionRequired.mp3' });\n\tpublic static readonly codeActionTriggered = Sound.register({ fileName: 'codeActionTriggered.mp3' });\n\tpublic static readonly codeActionApplied = Sound.register({ fileName: 'codeActionApplied.mp3' });\n\n\tprivate constructor(public readonly fileName: string) { }\n}\n\nexport class SoundSource {\n\tconstructor(\n\t\tpublic readonly randomOneOf: Sound[]\n\t) { }\n}\n\nexport class AccessibilitySignal {\n\tprivate constructor(\n\t\tpublic readonly sound: SoundSource,\n\t\tpublic readonly name: string,\n\t\tpublic readonly legacySoundSettingsKey: string | undefined,\n\t\tpublic readonly settingsKey: string,\n\t\tpublic readonly legacyAnnouncementSettingsKey: string | undefined,\n\t\tpublic readonly announcementMessage: string | undefined,\n\t\tpublic readonly managesOwnEnablement: boolean = false\n\t) { }\n\n\tprivate static _signals = new Set<AccessibilitySignal>();\n\tprivate static register(options: {\n\t\tname: string;\n\t\tsound: Sound | {\n\t\t\t/**\n\t\t\t * Gaming and other apps often play a sound variant when the same event happens again\n\t\t\t * for an improved experience. This option enables playing a random sound.\n\t\t\t */\n\t\t\trandomOneOf: Sound[];\n\t\t};\n\t\tlegacySoundSettingsKey?: string;\n\t\tsettingsKey: string;\n\t\tlegacyAnnouncementSettingsKey?: string;\n\t\tannouncementMessage?: string;\n\t\tdelaySettingsKey?: string;\n\t\tmanagesOwnEnablement?: boolean;\n\t}): AccessibilitySignal {\n\t\tconst soundSource = new SoundSource('randomOneOf' in options.sound ? options.sound.randomOneOf : [options.sound]);\n\t\tconst signal = new AccessibilitySignal(\n\t\t\tsoundSource,\n\t\t\toptions.name,\n\t\t\toptions.legacySoundSettingsKey,\n\t\t\toptions.settingsKey,\n\t\t\toptions.legacyAnnouncementSettingsKey,\n\t\t\toptions.announcementMessage,\n\t\t\toptions.managesOwnEnablement\n\t\t);\n\t\tAccessibilitySignal._signals.add(signal);\n\t\treturn signal;\n\t}\n\n\tpublic static readonly errorAtPosition = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.positionHasError.name', 'Error at Position'),\n\t\tsound: Sound.error,\n\t\tannouncementMessage: localize('accessibility.signals.positionHasError', 'Error'),\n\t\tsettingsKey: 'accessibility.signals.positionHasError',\n\t\tdelaySettingsKey: 'accessibility.signalOptions.delays.errorAtPosition'\n\t});\n\tpublic static readonly warningAtPosition = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.positionHasWarning.name', 'Warning at Position'),\n\t\tsound: Sound.warning,\n\t\tannouncementMessage: localize('accessibility.signals.positionHasWarning', 'Warning'),\n\t\tsettingsKey: 'accessibility.signals.positionHasWarning',\n\t\tdelaySettingsKey: 'accessibility.signalOptions.delays.warningAtPosition'\n\t});\n\n\tpublic static readonly errorOnLine = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasError.name', 'Error on Line'),\n\t\tsound: Sound.error,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasError',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.error',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasError', 'Error on Line'),\n\t\tsettingsKey: 'accessibility.signals.lineHasError',\n\t});\n\n\tpublic static readonly warningOnLine = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasWarning.name', 'Warning on Line'),\n\t\tsound: Sound.warning,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasWarning',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.warning',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasWarning', 'Warning on Line'),\n\t\tsettingsKey: 'accessibility.signals.lineHasWarning',\n\t});\n\tpublic static readonly foldedArea = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasFoldedArea.name', 'Folded Area on Line'),\n\t\tsound: Sound.foldedArea,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasFoldedArea',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.foldedArea',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasFoldedArea', 'Folded'),\n\t\tsettingsKey: 'accessibility.signals.lineHasFoldedArea',\n\t});\n\tpublic static readonly break = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasBreakpoint.name', 'Breakpoint on Line'),\n\t\tsound: Sound.break,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasBreakpoint',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.breakpoint',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasBreakpoint', 'Breakpoint'),\n\t\tsettingsKey: 'accessibility.signals.lineHasBreakpoint',\n\t});\n\tpublic static readonly inlineSuggestion = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasInlineSuggestion.name', 'Inline Suggestion on Line'),\n\t\tsound: Sound.quickFixes,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasInlineSuggestion',\n\t\tsettingsKey: 'accessibility.signals.lineHasInlineSuggestion',\n\t});\n\tpublic static readonly nextEditSuggestion = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.nextEditSuggestion.name', 'Next Edit Suggestion on Line'),\n\t\tsound: Sound.nextEditSuggestion,\n\t\tlegacySoundSettingsKey: 'audioCues.nextEditSuggestion',\n\t\tsettingsKey: 'accessibility.signals.nextEditSuggestion',\n\t\tannouncementMessage: localize('accessibility.signals.nextEditSuggestion', 'Next Edit Suggestion'),\n\t});\n\tpublic static readonly terminalQuickFix = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalQuickFix.name', 'Terminal Quick Fix'),\n\t\tsound: Sound.quickFixes,\n\t\tlegacySoundSettingsKey: 'audioCues.terminalQuickFix',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.terminalQuickFix',\n\t\tannouncementMessage: localize('accessibility.signals.terminalQuickFix', 'Quick Fix'),\n\t\tsettingsKey: 'accessibility.signals.terminalQuickFix',\n\t});\n\n\tpublic static readonly onDebugBreak = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.onDebugBreak.name', 'Debugger Stopped on Breakpoint'),\n\t\tsound: Sound.break,\n\t\tlegacySoundSettingsKey: 'audioCues.onDebugBreak',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.onDebugBreak',\n\t\tannouncementMessage: localize('accessibility.signals.onDebugBreak', 'Breakpoint'),\n\t\tsettingsKey: 'accessibility.signals.onDebugBreak',\n\t});\n\n\tpublic static readonly noInlayHints = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.noInlayHints', 'No Inlay Hints on Line'),\n\t\tsound: Sound.error,\n\t\tlegacySoundSettingsKey: 'audioCues.noInlayHints',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.noInlayHints',\n\t\tannouncementMessage: localize('accessibility.signals.noInlayHints', 'No Inlay Hints'),\n\t\tsettingsKey: 'accessibility.signals.noInlayHints',\n\t});\n\n\tpublic static readonly taskCompleted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.taskCompleted', 'Task Completed'),\n\t\tsound: Sound.taskCompleted,\n\t\tlegacySoundSettingsKey: 'audioCues.taskCompleted',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.taskCompleted',\n\t\tannouncementMessage: localize('accessibility.signals.taskCompleted', 'Task Completed'),\n\t\tsettingsKey: 'accessibility.signals.taskCompleted',\n\t});\n\n\tpublic static readonly taskFailed = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.taskFailed', 'Task Failed'),\n\t\tsound: Sound.taskFailed,\n\t\tlegacySoundSettingsKey: 'audioCues.taskFailed',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.taskFailed',\n\t\tannouncementMessage: localize('accessibility.signals.taskFailed', 'Task Failed'),\n\t\tsettingsKey: 'accessibility.signals.taskFailed',\n\t});\n\n\tpublic static readonly terminalCommandFailed = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalCommandFailed', 'Terminal Command Failed'),\n\t\tsound: Sound.error,\n\t\tlegacySoundSettingsKey: 'audioCues.terminalCommandFailed',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.terminalCommandFailed',\n\t\tannouncementMessage: localize('accessibility.signals.terminalCommandFailed', 'Command Failed'),\n\t\tsettingsKey: 'accessibility.signals.terminalCommandFailed',\n\t});\n\n\tpublic static readonly terminalCommandSucceeded = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalCommandSucceeded', 'Terminal Command Succeeded'),\n\t\tsound: Sound.terminalCommandSucceeded,\n\t\tannouncementMessage: localize('accessibility.signals.terminalCommandSucceeded', 'Command Succeeded'),\n\t\tsettingsKey: 'accessibility.signals.terminalCommandSucceeded',\n\t});\n\n\tpublic static readonly terminalBell = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalBell', 'Terminal Bell'),\n\t\tsound: Sound.terminalBell,\n\t\tlegacySoundSettingsKey: 'audioCues.terminalBell',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.terminalBell',\n\t\tannouncementMessage: localize('accessibility.signals.terminalBell', 'Terminal Bell'),\n\t\tsettingsKey: 'accessibility.signals.terminalBell',\n\t});\n\n\tpublic static readonly notebookCellCompleted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.notebookCellCompleted', 'Notebook Cell Completed'),\n\t\tsound: Sound.taskCompleted,\n\t\tlegacySoundSettingsKey: 'audioCues.notebookCellCompleted',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellCompleted',\n\t\tannouncementMessage: localize('accessibility.signals.notebookCellCompleted', 'Notebook Cell Completed'),\n\t\tsettingsKey: 'accessibility.signals.notebookCellCompleted',\n\t});\n\n\tpublic static readonly notebookCellFailed = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.notebookCellFailed', 'Notebook Cell Failed'),\n\t\tsound: Sound.taskFailed,\n\t\tlegacySoundSettingsKey: 'audioCues.notebookCellFailed',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellFailed',\n\t\tannouncementMessage: localize('accessibility.signals.notebookCellFailed', 'Notebook Cell Failed'),\n\t\tsettingsKey: 'accessibility.signals.notebookCellFailed',\n\t});\n\n\tpublic static readonly diffLineInserted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.diffLineInserted', 'Diff Line Inserted'),\n\t\tsound: Sound.diffLineInserted,\n\t\tlegacySoundSettingsKey: 'audioCues.diffLineInserted',\n\t\tsettingsKey: 'accessibility.signals.diffLineInserted',\n\t});\n\n\tpublic static readonly diffLineDeleted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.diffLineDeleted', 'Diff Line Deleted'),\n\t\tsound: Sound.diffLineDeleted,\n\t\tlegacySoundSettingsKey: 'audioCues.diffLineDeleted',\n\t\tsettingsKey: 'accessibility.signals.diffLineDeleted',\n\t});\n\n\tpublic static readonly diffLineModified = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.diffLineModified', 'Diff Line Modified'),\n\t\tsound: Sound.diffLineModified,\n\t\tlegacySoundSettingsKey: 'audioCues.diffLineModified',\n\t\tsettingsKey: 'accessibility.signals.diffLineModified',\n\t});\n\n\tpublic static readonly chatEditModifiedFile = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatEditModifiedFile', 'Chat Edit Modified File'),\n\t\tsound: Sound.chatEditModifiedFile,\n\t\tannouncementMessage: localize('accessibility.signals.chatEditModifiedFile', 'File Modified from Chat Edits'),\n\t\tsettingsKey: 'accessibility.signals.chatEditModifiedFile',\n\t});\n\n\tpublic static readonly chatRequestSent = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatRequestSent', 'Chat Request Sent'),\n\t\tsound: Sound.requestSent,\n\t\tlegacySoundSettingsKey: 'audioCues.chatRequestSent',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.chatRequestSent',\n\t\tannouncementMessage: localize('accessibility.signals.chatRequestSent', 'Chat Request Sent'),\n\t\tsettingsKey: 'accessibility.signals.chatRequestSent',\n\t});\n\n\tpublic static readonly chatResponseReceived = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatResponseReceived', 'Chat Response Received'),\n\t\tlegacySoundSettingsKey: 'audioCues.chatResponseReceived',\n\t\tsound: {\n\t\t\trandomOneOf: [\n\t\t\t\tSound.responseReceived1,\n\t\t\t\tSound.responseReceived2,\n\t\t\t\tSound.responseReceived3,\n\t\t\t\tSound.responseReceived4\n\t\t\t]\n\t\t},\n\t\tsettingsKey: 'accessibility.signals.chatResponseReceived'\n\t});\n\n\tpublic static readonly codeActionTriggered = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.codeActionRequestTriggered', 'Code Action Request Triggered'),\n\t\tsound: Sound.codeActionTriggered,\n\t\tlegacySoundSettingsKey: 'audioCues.codeActionRequestTriggered',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.codeActionRequestTriggered',\n\t\tannouncementMessage: localize('accessibility.signals.codeActionRequestTriggered', 'Code Action Request Triggered'),\n\t\tsettingsKey: 'accessibility.signals.codeActionTriggered',\n\t});\n\n\tpublic static readonly codeActionApplied = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.codeActionApplied', 'Code Action Applied'),\n\t\tlegacySoundSettingsKey: 'audioCues.codeActionApplied',\n\t\tsound: Sound.codeActionApplied,\n\t\tsettingsKey: 'accessibility.signals.codeActionApplied'\n\t});\n\n\n\tpublic static readonly progress = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.progress', 'Progress'),\n\t\tsound: Sound.progress,\n\t\tlegacySoundSettingsKey: 'audioCues.chatResponsePending',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.progress',\n\t\tannouncementMessage: localize('accessibility.signals.progress', 'Progress'),\n\t\tsettingsKey: 'accessibility.signals.progress'\n\t});\n\n\tpublic static readonly clear = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.clear', 'Clear'),\n\t\tsound: Sound.clear,\n\t\tlegacySoundSettingsKey: 'audioCues.clear',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.clear',\n\t\tannouncementMessage: localize('accessibility.signals.clear', 'Clear'),\n\t\tsettingsKey: 'accessibility.signals.clear'\n\t});\n\n\tpublic static readonly save = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.save', 'Save'),\n\t\tsound: Sound.save,\n\t\tlegacySoundSettingsKey: 'audioCues.save',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.save',\n\t\tannouncementMessage: localize('accessibility.signals.save', 'Save'),\n\t\tsettingsKey: 'accessibility.signals.save'\n\t});\n\n\tpublic static readonly format = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.format', 'Format'),\n\t\tsound: Sound.format,\n\t\tlegacySoundSettingsKey: 'audioCues.format',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.format',\n\t\tannouncementMessage: localize('accessibility.signals.format', 'Format'),\n\t\tsettingsKey: 'accessibility.signals.format'\n\t});\n\n\tpublic static readonly voiceRecordingStarted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.voiceRecordingStarted', 'Voice Recording Started'),\n\t\tsound: Sound.voiceRecordingStarted,\n\t\tlegacySoundSettingsKey: 'audioCues.voiceRecordingStarted',\n\t\tsettingsKey: 'accessibility.signals.voiceRecordingStarted'\n\t});\n\n\tpublic static readonly voiceRecordingStopped = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.voiceRecordingStopped', 'Voice Recording Stopped'),\n\t\tsound: Sound.voiceRecordingStopped,\n\t\tlegacySoundSettingsKey: 'audioCues.voiceRecordingStopped',\n\t\tsettingsKey: 'accessibility.signals.voiceRecordingStopped'\n\t});\n\n\tpublic static readonly editsKept = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.editsKept', 'Edits Kept'),\n\t\tsound: Sound.editsKept,\n\t\tannouncementMessage: localize('accessibility.signals.editsKept', 'Edits Kept'),\n\t\tsettingsKey: 'accessibility.signals.editsKept',\n\t});\n\n\tpublic static readonly editsUndone = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.editsUndone', 'Undo Edits'),\n\t\tsound: Sound.editsUndone,\n\t\tannouncementMessage: localize('accessibility.signals.editsUndone', 'Edits Undone'),\n\t\tsettingsKey: 'accessibility.signals.editsUndone',\n\t});\n\n\tpublic static readonly chatUserActionRequired = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatUserActionRequired', 'Chat User Action Required'),\n\t\tsound: Sound.chatUserActionRequired,\n\t\tannouncementMessage: localize('accessibility.signals.chatUserActionRequired', 'Chat User Action Required'),\n\t\tsettingsKey: 'accessibility.signals.chatUserActionRequired',\n\t\tmanagesOwnEnablement: true\n\t});\n}\n"]}
1
+ {"version":3,"sources":["vs/platform/accessibilitySignal/browser/accessibilitySignalService.ts"],"names":[],"mappings":"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","file":"accessibilitySignalService.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["\nimport { localize } from '../../../nls.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\n\nexport const IAccessibilitySignalService = createDecorator<IAccessibilitySignalService>('accessibilitySignalService');\n\nexport interface IAccessibilitySignalService {\n\treadonly _serviceBrand: undefined;\n\tplaySignal(signal: AccessibilitySignal, options?: IAccessbilitySignalOptions): Promise<void>;\n}\n\n/** Make sure you understand the doc comments of the method you want to call when using this token! */\nexport const AcknowledgeDocCommentsToken = Symbol('AcknowledgeDocCommentsToken');\n\nexport interface IAccessbilitySignalOptions {\n\n\t/**\n\t * The source that triggered the signal (e.g. \"diffEditor.cursorPositionChanged\").\n\t */\n\tsource?: string;\n\n\t/**\n\t * For actions like save or format, depending on the\n\t * configured value, we will only\n\t * play the sound if the user triggered the action.\n\t */\n\tuserGesture?: boolean;\n}\n\n/**\n * Corresponds to the audio files in ./media.\n*/\nexport class Sound {\n\tprivate static register(options: { fileName: string }): Sound {\n\t\tconst sound = new Sound(options.fileName);\n\t\treturn sound;\n\t}\n\n\tpublic static readonly error = Sound.register({ fileName: 'error.mp3' });\n\tpublic static readonly warning = Sound.register({ fileName: 'warning.mp3' });\n\tpublic static readonly success = Sound.register({ fileName: 'success.mp3' });\n\tpublic static readonly foldedArea = Sound.register({ fileName: 'foldedAreas.mp3' });\n\tpublic static readonly break = Sound.register({ fileName: 'break.mp3' });\n\tpublic static readonly quickFixes = Sound.register({ fileName: 'quickFixes.mp3' });\n\tpublic static readonly taskCompleted = Sound.register({ fileName: 'taskCompleted.mp3' });\n\tpublic static readonly taskFailed = Sound.register({ fileName: 'taskFailed.mp3' });\n\tpublic static readonly terminalBell = Sound.register({ fileName: 'terminalBell.mp3' });\n\tpublic static readonly diffLineInserted = Sound.register({ fileName: 'diffLineInserted.mp3' });\n\tpublic static readonly diffLineDeleted = Sound.register({ fileName: 'diffLineDeleted.mp3' });\n\tpublic static readonly diffLineModified = Sound.register({ fileName: 'diffLineModified.mp3' });\n\tpublic static readonly requestSent = Sound.register({ fileName: 'requestSent.mp3' });\n\tpublic static readonly responseReceived1 = Sound.register({ fileName: 'responseReceived1.mp3' });\n\tpublic static readonly responseReceived2 = Sound.register({ fileName: 'responseReceived2.mp3' });\n\tpublic static readonly responseReceived3 = Sound.register({ fileName: 'responseReceived3.mp3' });\n\tpublic static readonly responseReceived4 = Sound.register({ fileName: 'responseReceived4.mp3' });\n\tpublic static readonly clear = Sound.register({ fileName: 'clear.mp3' });\n\tpublic static readonly save = Sound.register({ fileName: 'save.mp3' });\n\tpublic static readonly format = Sound.register({ fileName: 'format.mp3' });\n\tpublic static readonly voiceRecordingStarted = Sound.register({ fileName: 'voiceRecordingStarted.mp3' });\n\tpublic static readonly voiceRecordingStopped = Sound.register({ fileName: 'voiceRecordingStopped.mp3' });\n\tpublic static readonly progress = Sound.register({ fileName: 'progress.mp3' });\n\tpublic static readonly chatEditModifiedFile = Sound.register({ fileName: 'chatEditModifiedFile.mp3' });\n\tpublic static readonly editsKept = Sound.register({ fileName: 'editsKept.mp3' });\n\tpublic static readonly editsUndone = Sound.register({ fileName: 'editsUndone.mp3' });\n\tpublic static readonly nextEditSuggestion = Sound.register({ fileName: 'nextEditSuggestion.mp3' });\n\tpublic static readonly terminalCommandSucceeded = Sound.register({ fileName: 'terminalCommandSucceeded.mp3' });\n\tpublic static readonly chatUserActionRequired = Sound.register({ fileName: 'chatUserActionRequired.mp3' });\n\tpublic static readonly codeActionTriggered = Sound.register({ fileName: 'codeActionTriggered.mp3' });\n\tpublic static readonly codeActionApplied = Sound.register({ fileName: 'codeActionApplied.mp3' });\n\n\tprivate constructor(public readonly fileName: string) { }\n}\n\nexport class SoundSource {\n\tconstructor(\n\t\tpublic readonly randomOneOf: Sound[]\n\t) { }\n}\n\nexport class AccessibilitySignal {\n\tprivate constructor(\n\t\tpublic readonly sound: SoundSource,\n\t\tpublic readonly name: string,\n\t\tpublic readonly legacySoundSettingsKey: string | undefined,\n\t\tpublic readonly settingsKey: string,\n\t\tpublic readonly legacyAnnouncementSettingsKey: string | undefined,\n\t\tpublic readonly announcementMessage: string | undefined,\n\t\tpublic readonly managesOwnEnablement: boolean = false\n\t) { }\n\n\tprivate static _signals = new Set<AccessibilitySignal>();\n\tprivate static register(options: {\n\t\tname: string;\n\t\tsound: Sound | {\n\t\t\t/**\n\t\t\t * Gaming and other apps often play a sound variant when the same event happens again\n\t\t\t * for an improved experience. This option enables playing a random sound.\n\t\t\t */\n\t\t\trandomOneOf: Sound[];\n\t\t};\n\t\tlegacySoundSettingsKey?: string;\n\t\tsettingsKey: string;\n\t\tlegacyAnnouncementSettingsKey?: string;\n\t\tannouncementMessage?: string;\n\t\tdelaySettingsKey?: string;\n\t\tmanagesOwnEnablement?: boolean;\n\t}): AccessibilitySignal {\n\t\tconst soundSource = new SoundSource('randomOneOf' in options.sound ? options.sound.randomOneOf : [options.sound]);\n\t\tconst signal = new AccessibilitySignal(\n\t\t\tsoundSource,\n\t\t\toptions.name,\n\t\t\toptions.legacySoundSettingsKey,\n\t\t\toptions.settingsKey,\n\t\t\toptions.legacyAnnouncementSettingsKey,\n\t\t\toptions.announcementMessage,\n\t\t\toptions.managesOwnEnablement\n\t\t);\n\t\tAccessibilitySignal._signals.add(signal);\n\t\treturn signal;\n\t}\n\n\tpublic static readonly errorAtPosition = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.positionHasError.name', 'Error at Position'),\n\t\tsound: Sound.error,\n\t\tannouncementMessage: localize('accessibility.signals.positionHasError', 'Error'),\n\t\tsettingsKey: 'accessibility.signals.positionHasError',\n\t\tdelaySettingsKey: 'accessibility.signalOptions.delays.errorAtPosition'\n\t});\n\tpublic static readonly warningAtPosition = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.positionHasWarning.name', 'Warning at Position'),\n\t\tsound: Sound.warning,\n\t\tannouncementMessage: localize('accessibility.signals.positionHasWarning', 'Warning'),\n\t\tsettingsKey: 'accessibility.signals.positionHasWarning',\n\t\tdelaySettingsKey: 'accessibility.signalOptions.delays.warningAtPosition'\n\t});\n\n\tpublic static readonly errorOnLine = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasError.name', 'Error on Line'),\n\t\tsound: Sound.error,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasError',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.error',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasError', 'Error on Line'),\n\t\tsettingsKey: 'accessibility.signals.lineHasError',\n\t});\n\n\tpublic static readonly warningOnLine = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasWarning.name', 'Warning on Line'),\n\t\tsound: Sound.warning,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasWarning',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.warning',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasWarning', 'Warning on Line'),\n\t\tsettingsKey: 'accessibility.signals.lineHasWarning',\n\t});\n\tpublic static readonly foldedArea = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasFoldedArea.name', 'Folded Area on Line'),\n\t\tsound: Sound.foldedArea,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasFoldedArea',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.foldedArea',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasFoldedArea', 'Folded'),\n\t\tsettingsKey: 'accessibility.signals.lineHasFoldedArea',\n\t});\n\tpublic static readonly break = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasBreakpoint.name', 'Breakpoint on Line'),\n\t\tsound: Sound.break,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasBreakpoint',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.breakpoint',\n\t\tannouncementMessage: localize('accessibility.signals.lineHasBreakpoint', 'Breakpoint'),\n\t\tsettingsKey: 'accessibility.signals.lineHasBreakpoint',\n\t});\n\tpublic static readonly inlineSuggestion = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.lineHasInlineSuggestion.name', 'Inline Suggestion on Line'),\n\t\tsound: Sound.quickFixes,\n\t\tlegacySoundSettingsKey: 'audioCues.lineHasInlineSuggestion',\n\t\tsettingsKey: 'accessibility.signals.lineHasInlineSuggestion',\n\t});\n\tpublic static readonly nextEditSuggestion = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.nextEditSuggestion.name', 'Next Edit Suggestion on Line'),\n\t\tsound: Sound.nextEditSuggestion,\n\t\tlegacySoundSettingsKey: 'audioCues.nextEditSuggestion',\n\t\tsettingsKey: 'accessibility.signals.nextEditSuggestion',\n\t\tannouncementMessage: localize('accessibility.signals.nextEditSuggestion', 'Next Edit Suggestion'),\n\t});\n\tpublic static readonly terminalQuickFix = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalQuickFix.name', 'Terminal Quick Fix'),\n\t\tsound: Sound.quickFixes,\n\t\tlegacySoundSettingsKey: 'audioCues.terminalQuickFix',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.terminalQuickFix',\n\t\tannouncementMessage: localize('accessibility.signals.terminalQuickFix', 'Quick Fix'),\n\t\tsettingsKey: 'accessibility.signals.terminalQuickFix',\n\t});\n\n\tpublic static readonly onDebugBreak = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.onDebugBreak.name', 'Debugger Stopped on Breakpoint'),\n\t\tsound: Sound.break,\n\t\tlegacySoundSettingsKey: 'audioCues.onDebugBreak',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.onDebugBreak',\n\t\tannouncementMessage: localize('accessibility.signals.onDebugBreak', 'Breakpoint'),\n\t\tsettingsKey: 'accessibility.signals.onDebugBreak',\n\t});\n\n\tpublic static readonly noInlayHints = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.noInlayHints', 'No Inlay Hints on Line'),\n\t\tsound: Sound.error,\n\t\tlegacySoundSettingsKey: 'audioCues.noInlayHints',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.noInlayHints',\n\t\tannouncementMessage: localize('accessibility.signals.noInlayHints', 'No Inlay Hints'),\n\t\tsettingsKey: 'accessibility.signals.noInlayHints',\n\t});\n\n\tpublic static readonly taskCompleted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.taskCompleted', 'Task Completed'),\n\t\tsound: Sound.taskCompleted,\n\t\tlegacySoundSettingsKey: 'audioCues.taskCompleted',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.taskCompleted',\n\t\tannouncementMessage: localize('accessibility.signals.taskCompleted', 'Task Completed'),\n\t\tsettingsKey: 'accessibility.signals.taskCompleted',\n\t});\n\n\tpublic static readonly taskFailed = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.taskFailed', 'Task Failed'),\n\t\tsound: Sound.taskFailed,\n\t\tlegacySoundSettingsKey: 'audioCues.taskFailed',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.taskFailed',\n\t\tannouncementMessage: localize('accessibility.signals.taskFailed', 'Task Failed'),\n\t\tsettingsKey: 'accessibility.signals.taskFailed',\n\t});\n\n\tpublic static readonly terminalCommandFailed = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalCommandFailed', 'Terminal Command Failed'),\n\t\tsound: Sound.error,\n\t\tlegacySoundSettingsKey: 'audioCues.terminalCommandFailed',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.terminalCommandFailed',\n\t\tannouncementMessage: localize('accessibility.signals.terminalCommandFailed', 'Command Failed'),\n\t\tsettingsKey: 'accessibility.signals.terminalCommandFailed',\n\t});\n\n\tpublic static readonly terminalCommandSucceeded = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalCommandSucceeded', 'Terminal Command Succeeded'),\n\t\tsound: Sound.terminalCommandSucceeded,\n\t\tannouncementMessage: localize('accessibility.signals.terminalCommandSucceeded', 'Command Succeeded'),\n\t\tsettingsKey: 'accessibility.signals.terminalCommandSucceeded',\n\t});\n\n\tpublic static readonly terminalBell = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.terminalBell', 'Terminal Bell'),\n\t\tsound: Sound.terminalBell,\n\t\tlegacySoundSettingsKey: 'audioCues.terminalBell',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.terminalBell',\n\t\tannouncementMessage: localize('accessibility.signals.terminalBell', 'Terminal Bell'),\n\t\tsettingsKey: 'accessibility.signals.terminalBell',\n\t});\n\n\tpublic static readonly notebookCellCompleted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.notebookCellCompleted', 'Notebook Cell Completed'),\n\t\tsound: Sound.taskCompleted,\n\t\tlegacySoundSettingsKey: 'audioCues.notebookCellCompleted',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellCompleted',\n\t\tannouncementMessage: localize('accessibility.signals.notebookCellCompleted', 'Notebook Cell Completed'),\n\t\tsettingsKey: 'accessibility.signals.notebookCellCompleted',\n\t});\n\n\tpublic static readonly notebookCellFailed = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.notebookCellFailed', 'Notebook Cell Failed'),\n\t\tsound: Sound.taskFailed,\n\t\tlegacySoundSettingsKey: 'audioCues.notebookCellFailed',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.notebookCellFailed',\n\t\tannouncementMessage: localize('accessibility.signals.notebookCellFailed', 'Notebook Cell Failed'),\n\t\tsettingsKey: 'accessibility.signals.notebookCellFailed',\n\t});\n\n\tpublic static readonly diffLineInserted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.diffLineInserted', 'Diff Line Inserted'),\n\t\tsound: Sound.diffLineInserted,\n\t\tlegacySoundSettingsKey: 'audioCues.diffLineInserted',\n\t\tsettingsKey: 'accessibility.signals.diffLineInserted',\n\t});\n\n\tpublic static readonly diffLineDeleted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.diffLineDeleted', 'Diff Line Deleted'),\n\t\tsound: Sound.diffLineDeleted,\n\t\tlegacySoundSettingsKey: 'audioCues.diffLineDeleted',\n\t\tsettingsKey: 'accessibility.signals.diffLineDeleted',\n\t});\n\n\tpublic static readonly diffLineModified = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.diffLineModified', 'Diff Line Modified'),\n\t\tsound: Sound.diffLineModified,\n\t\tlegacySoundSettingsKey: 'audioCues.diffLineModified',\n\t\tsettingsKey: 'accessibility.signals.diffLineModified',\n\t});\n\n\tpublic static readonly chatEditModifiedFile = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatEditModifiedFile', 'Chat Edit Modified File'),\n\t\tsound: Sound.chatEditModifiedFile,\n\t\tannouncementMessage: localize('accessibility.signals.chatEditModifiedFile', 'File Modified from Chat Edits'),\n\t\tsettingsKey: 'accessibility.signals.chatEditModifiedFile',\n\t});\n\n\tpublic static readonly chatRequestSent = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatRequestSent', 'Chat Request Sent'),\n\t\tsound: Sound.requestSent,\n\t\tlegacySoundSettingsKey: 'audioCues.chatRequestSent',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.chatRequestSent',\n\t\tannouncementMessage: localize('accessibility.signals.chatRequestSent', 'Chat Request Sent'),\n\t\tsettingsKey: 'accessibility.signals.chatRequestSent',\n\t});\n\n\tpublic static readonly chatResponseReceived = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatResponseReceived', 'Chat Response Received'),\n\t\tlegacySoundSettingsKey: 'audioCues.chatResponseReceived',\n\t\tsound: {\n\t\t\trandomOneOf: [\n\t\t\t\tSound.responseReceived1,\n\t\t\t\tSound.responseReceived2,\n\t\t\t\tSound.responseReceived3,\n\t\t\t\tSound.responseReceived4\n\t\t\t]\n\t\t},\n\t\tsettingsKey: 'accessibility.signals.chatResponseReceived'\n\t});\n\n\tpublic static readonly codeActionTriggered = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.codeActionRequestTriggered', 'Code Action Request Triggered'),\n\t\tsound: Sound.codeActionTriggered,\n\t\tlegacySoundSettingsKey: 'audioCues.codeActionRequestTriggered',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.codeActionRequestTriggered',\n\t\tannouncementMessage: localize('accessibility.signals.codeActionRequestTriggered', 'Code Action Request Triggered'),\n\t\tsettingsKey: 'accessibility.signals.codeActionTriggered',\n\t});\n\n\tpublic static readonly codeActionApplied = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.codeActionApplied', 'Code Action Applied'),\n\t\tlegacySoundSettingsKey: 'audioCues.codeActionApplied',\n\t\tsound: Sound.codeActionApplied,\n\t\tsettingsKey: 'accessibility.signals.codeActionApplied'\n\t});\n\n\n\tpublic static readonly progress = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.progress', 'Progress'),\n\t\tsound: Sound.progress,\n\t\tlegacySoundSettingsKey: 'audioCues.chatResponsePending',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.progress',\n\t\tannouncementMessage: localize('accessibility.signals.progress', 'Progress'),\n\t\tsettingsKey: 'accessibility.signals.progress'\n\t});\n\n\tpublic static readonly clear = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.clear', 'Clear'),\n\t\tsound: Sound.clear,\n\t\tlegacySoundSettingsKey: 'audioCues.clear',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.clear',\n\t\tannouncementMessage: localize('accessibility.signals.clear', 'Clear'),\n\t\tsettingsKey: 'accessibility.signals.clear'\n\t});\n\n\tpublic static readonly save = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.save', 'Save'),\n\t\tsound: Sound.save,\n\t\tlegacySoundSettingsKey: 'audioCues.save',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.save',\n\t\tannouncementMessage: localize('accessibility.signals.save', 'Save'),\n\t\tsettingsKey: 'accessibility.signals.save'\n\t});\n\n\tpublic static readonly format = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.format', 'Format'),\n\t\tsound: Sound.format,\n\t\tlegacySoundSettingsKey: 'audioCues.format',\n\t\tlegacyAnnouncementSettingsKey: 'accessibility.alert.format',\n\t\tannouncementMessage: localize('accessibility.signals.format', 'Format'),\n\t\tsettingsKey: 'accessibility.signals.format'\n\t});\n\n\tpublic static readonly voiceRecordingStarted = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.voiceRecordingStarted', 'Voice Recording Started'),\n\t\tsound: Sound.voiceRecordingStarted,\n\t\tlegacySoundSettingsKey: 'audioCues.voiceRecordingStarted',\n\t\tsettingsKey: 'accessibility.signals.voiceRecordingStarted'\n\t});\n\n\tpublic static readonly voiceRecordingStopped = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.voiceRecordingStopped', 'Voice Recording Stopped'),\n\t\tsound: Sound.voiceRecordingStopped,\n\t\tlegacySoundSettingsKey: 'audioCues.voiceRecordingStopped',\n\t\tsettingsKey: 'accessibility.signals.voiceRecordingStopped'\n\t});\n\n\tpublic static readonly editsKept = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.editsKept', 'Edits Kept'),\n\t\tsound: Sound.editsKept,\n\t\tannouncementMessage: localize('accessibility.signals.editsKept', 'Edits Kept'),\n\t\tsettingsKey: 'accessibility.signals.editsKept',\n\t});\n\n\tpublic static readonly editsUndone = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.editsUndone', 'Undo Edits'),\n\t\tsound: Sound.editsUndone,\n\t\tannouncementMessage: localize('accessibility.signals.editsUndone', 'Edits Undone'),\n\t\tsettingsKey: 'accessibility.signals.editsUndone',\n\t});\n\n\tpublic static readonly chatUserActionRequired = AccessibilitySignal.register({\n\t\tname: localize('accessibilitySignals.chatUserActionRequired', 'Chat User Action Required'),\n\t\tsound: Sound.chatUserActionRequired,\n\t\tannouncementMessage: localize('accessibility.signals.chatUserActionRequired', 'Chat User Action Required'),\n\t\tsettingsKey: 'accessibility.signals.chatUserActionRequired'\n\t});\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "monaco-editor-core",
3
3
  "private": false,
4
- "version": "0.56.0-dev-20260106",
4
+ "version": "0.56.0-dev-20260107",
5
5
  "description": "A browser based code editor",
6
6
  "author": "Microsoft Corporation",
7
7
  "license": "MIT",
@@ -14,7 +14,7 @@
14
14
  "bugs": {
15
15
  "url": "https://github.com/microsoft/vscode/issues"
16
16
  },
17
- "vscodeCommitId": "9952de32a74d6c7ac36e68e137c0acd8338064be",
17
+ "vscodeCommitId": "3d862df21449d5ead0b0b1fbe6d43eb05490cb1c",
18
18
  "dependencies": {
19
19
  "marked": "14.0.0",
20
20
  "dompurify": "3.2.7"
package/version.txt CHANGED
@@ -1 +1 @@
1
- monaco-editor-core: https://github.com/microsoft/vscode/tree/ec78a33c7b34dba19e9d3cbe1b3b378465bbd8b8
1
+ monaco-editor-core: https://github.com/microsoft/vscode/tree/de983bf5d7efbd36622f44bc0e44097a0531a58c