Add setting autoindent on paste (#250463)

* add setting autoindent on paste

* setting value to false

* remove ignoring of indentation when indenting line comments

* adding back code
This commit is contained in:
Aiday Marlen Kyzy
2025-06-06 11:40:12 +02:00
committed by GitHub
parent 554fc55dbe
commit 507316dcb4
4 changed files with 305 additions and 289 deletions

View File

@@ -507,6 +507,10 @@ export interface IEditorOptions {
* Defaults to advanced.
*/
autoIndent?: 'none' | 'keep' | 'brackets' | 'advanced' | 'full';
/**
* Boolean which controls whether to autoindent on paste
*/
autoIndentOnPaste?: boolean;
/**
* Emulate selection behaviour of tab characters when using spaces for indentation.
* This means selection will stick to tab stops.
@@ -5503,6 +5507,7 @@ export const enum EditorOption {
autoClosingOvertype,
autoClosingQuotes,
autoIndent,
autoIndentOnPaste,
automaticLayout,
autoSurround,
bracketPairColorization,
@@ -5774,6 +5779,10 @@ export const EditorOptions = {
description: nls.localize('autoIndent', "Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")
}
)),
autoIndentOnPaste: register(new EditorBooleanOption(
EditorOption.autoIndentOnPaste, 'autoIndentOnPaste', false,
{ description: nls.localize('autoIndentOnPaste', "Controls whether the editor should automatically auto-indent the pasted content.") }
)),
automaticLayout: register(new EditorBooleanOption(
EditorOption.automaticLayout, 'automaticLayout', false,
)),

View File

@@ -188,150 +188,151 @@ export enum EditorOption {
autoClosingOvertype = 11,
autoClosingQuotes = 12,
autoIndent = 13,
automaticLayout = 14,
autoSurround = 15,
bracketPairColorization = 16,
guides = 17,
codeLens = 18,
codeLensFontFamily = 19,
codeLensFontSize = 20,
colorDecorators = 21,
colorDecoratorsLimit = 22,
columnSelection = 23,
comments = 24,
contextmenu = 25,
copyWithSyntaxHighlighting = 26,
cursorBlinking = 27,
cursorSmoothCaretAnimation = 28,
cursorStyle = 29,
cursorSurroundingLines = 30,
cursorSurroundingLinesStyle = 31,
cursorWidth = 32,
disableLayerHinting = 33,
disableMonospaceOptimizations = 34,
domReadOnly = 35,
dragAndDrop = 36,
dropIntoEditor = 37,
experimentalEditContextEnabled = 38,
emptySelectionClipboard = 39,
experimentalGpuAcceleration = 40,
experimentalWhitespaceRendering = 41,
extraEditorClassName = 42,
fastScrollSensitivity = 43,
find = 44,
fixedOverflowWidgets = 45,
folding = 46,
foldingStrategy = 47,
foldingHighlight = 48,
foldingImportsByDefault = 49,
foldingMaximumRegions = 50,
unfoldOnClickAfterEndOfLine = 51,
fontFamily = 52,
fontInfo = 53,
fontLigatures = 54,
fontSize = 55,
fontWeight = 56,
fontVariations = 57,
formatOnPaste = 58,
formatOnType = 59,
glyphMargin = 60,
gotoLocation = 61,
hideCursorInOverviewRuler = 62,
hover = 63,
inDiffEditor = 64,
inlineSuggest = 65,
letterSpacing = 66,
lightbulb = 67,
lineDecorationsWidth = 68,
lineHeight = 69,
lineNumbers = 70,
lineNumbersMinChars = 71,
linkedEditing = 72,
links = 73,
matchBrackets = 74,
minimap = 75,
mouseStyle = 76,
mouseWheelScrollSensitivity = 77,
mouseWheelZoom = 78,
multiCursorMergeOverlapping = 79,
multiCursorModifier = 80,
multiCursorPaste = 81,
multiCursorLimit = 82,
occurrencesHighlight = 83,
occurrencesHighlightDelay = 84,
overtypeCursorStyle = 85,
overtypeOnPaste = 86,
overviewRulerBorder = 87,
overviewRulerLanes = 88,
padding = 89,
pasteAs = 90,
parameterHints = 91,
peekWidgetDefaultFocus = 92,
placeholder = 93,
definitionLinkOpensInPeek = 94,
quickSuggestions = 95,
quickSuggestionsDelay = 96,
readOnly = 97,
readOnlyMessage = 98,
renameOnType = 99,
renderControlCharacters = 100,
renderFinalNewline = 101,
renderLineHighlight = 102,
renderLineHighlightOnlyWhenFocus = 103,
renderValidationDecorations = 104,
renderWhitespace = 105,
revealHorizontalRightPadding = 106,
roundedSelection = 107,
rulers = 108,
scrollbar = 109,
scrollBeyondLastColumn = 110,
scrollBeyondLastLine = 111,
scrollPredominantAxis = 112,
selectionClipboard = 113,
selectionHighlight = 114,
selectOnLineNumbers = 115,
showFoldingControls = 116,
showUnused = 117,
snippetSuggestions = 118,
smartSelect = 119,
smoothScrolling = 120,
stickyScroll = 121,
stickyTabStops = 122,
stopRenderingLineAfter = 123,
suggest = 124,
suggestFontSize = 125,
suggestLineHeight = 126,
suggestOnTriggerCharacters = 127,
suggestSelection = 128,
tabCompletion = 129,
tabIndex = 130,
unicodeHighlighting = 131,
unusualLineTerminators = 132,
useShadowDOM = 133,
useTabStops = 134,
wordBreak = 135,
wordSegmenterLocales = 136,
wordSeparators = 137,
wordWrap = 138,
wordWrapBreakAfterCharacters = 139,
wordWrapBreakBeforeCharacters = 140,
wordWrapColumn = 141,
wordWrapOverride1 = 142,
wordWrapOverride2 = 143,
wrappingIndent = 144,
wrappingStrategy = 145,
showDeprecated = 146,
inlayHints = 147,
effectiveCursorStyle = 148,
editorClassName = 149,
pixelRatio = 150,
tabFocusMode = 151,
layoutInfo = 152,
wrappingInfo = 153,
defaultColorDecorators = 154,
colorDecoratorsActivatedOn = 155,
inlineCompletionsAccessibilityVerbose = 156,
effectiveExperimentalEditContextEnabled = 157
autoIndentOnPaste = 14,
automaticLayout = 15,
autoSurround = 16,
bracketPairColorization = 17,
guides = 18,
codeLens = 19,
codeLensFontFamily = 20,
codeLensFontSize = 21,
colorDecorators = 22,
colorDecoratorsLimit = 23,
columnSelection = 24,
comments = 25,
contextmenu = 26,
copyWithSyntaxHighlighting = 27,
cursorBlinking = 28,
cursorSmoothCaretAnimation = 29,
cursorStyle = 30,
cursorSurroundingLines = 31,
cursorSurroundingLinesStyle = 32,
cursorWidth = 33,
disableLayerHinting = 34,
disableMonospaceOptimizations = 35,
domReadOnly = 36,
dragAndDrop = 37,
dropIntoEditor = 38,
experimentalEditContextEnabled = 39,
emptySelectionClipboard = 40,
experimentalGpuAcceleration = 41,
experimentalWhitespaceRendering = 42,
extraEditorClassName = 43,
fastScrollSensitivity = 44,
find = 45,
fixedOverflowWidgets = 46,
folding = 47,
foldingStrategy = 48,
foldingHighlight = 49,
foldingImportsByDefault = 50,
foldingMaximumRegions = 51,
unfoldOnClickAfterEndOfLine = 52,
fontFamily = 53,
fontInfo = 54,
fontLigatures = 55,
fontSize = 56,
fontWeight = 57,
fontVariations = 58,
formatOnPaste = 59,
formatOnType = 60,
glyphMargin = 61,
gotoLocation = 62,
hideCursorInOverviewRuler = 63,
hover = 64,
inDiffEditor = 65,
inlineSuggest = 66,
letterSpacing = 67,
lightbulb = 68,
lineDecorationsWidth = 69,
lineHeight = 70,
lineNumbers = 71,
lineNumbersMinChars = 72,
linkedEditing = 73,
links = 74,
matchBrackets = 75,
minimap = 76,
mouseStyle = 77,
mouseWheelScrollSensitivity = 78,
mouseWheelZoom = 79,
multiCursorMergeOverlapping = 80,
multiCursorModifier = 81,
multiCursorPaste = 82,
multiCursorLimit = 83,
occurrencesHighlight = 84,
occurrencesHighlightDelay = 85,
overtypeCursorStyle = 86,
overtypeOnPaste = 87,
overviewRulerBorder = 88,
overviewRulerLanes = 89,
padding = 90,
pasteAs = 91,
parameterHints = 92,
peekWidgetDefaultFocus = 93,
placeholder = 94,
definitionLinkOpensInPeek = 95,
quickSuggestions = 96,
quickSuggestionsDelay = 97,
readOnly = 98,
readOnlyMessage = 99,
renameOnType = 100,
renderControlCharacters = 101,
renderFinalNewline = 102,
renderLineHighlight = 103,
renderLineHighlightOnlyWhenFocus = 104,
renderValidationDecorations = 105,
renderWhitespace = 106,
revealHorizontalRightPadding = 107,
roundedSelection = 108,
rulers = 109,
scrollbar = 110,
scrollBeyondLastColumn = 111,
scrollBeyondLastLine = 112,
scrollPredominantAxis = 113,
selectionClipboard = 114,
selectionHighlight = 115,
selectOnLineNumbers = 116,
showFoldingControls = 117,
showUnused = 118,
snippetSuggestions = 119,
smartSelect = 120,
smoothScrolling = 121,
stickyScroll = 122,
stickyTabStops = 123,
stopRenderingLineAfter = 124,
suggest = 125,
suggestFontSize = 126,
suggestLineHeight = 127,
suggestOnTriggerCharacters = 128,
suggestSelection = 129,
tabCompletion = 130,
tabIndex = 131,
unicodeHighlighting = 132,
unusualLineTerminators = 133,
useShadowDOM = 134,
useTabStops = 135,
wordBreak = 136,
wordSegmenterLocales = 137,
wordSeparators = 138,
wordWrap = 139,
wordWrapBreakAfterCharacters = 140,
wordWrapBreakBeforeCharacters = 141,
wordWrapColumn = 142,
wordWrapOverride1 = 143,
wordWrapOverride2 = 144,
wrappingIndent = 145,
wrappingStrategy = 146,
showDeprecated = 147,
inlayHints = 148,
effectiveCursorStyle = 149,
editorClassName = 150,
pixelRatio = 151,
tabFocusMode = 152,
layoutInfo = 153,
wrappingInfo = 154,
defaultColorDecorators = 155,
colorDecoratorsActivatedOn = 156,
inlineCompletionsAccessibilityVerbose = 157,
effectiveExperimentalEditContextEnabled = 158
}
/**

View File

@@ -386,7 +386,7 @@ export class AutoIndentOnPaste implements IEditorContribution {
this.callOnModel.clear();
// we are disabled
if (this.editor.getOption(EditorOption.autoIndent) < EditorAutoIndentStrategy.Full || !this.editor.getOption(EditorOption.formatOnPaste)) {
if (!this.editor.getOption(EditorOption.autoIndentOnPaste) || this.editor.getOption(EditorOption.autoIndent) < EditorAutoIndentStrategy.Full) {
return;
}

294
src/vs/monaco.d.ts vendored
View File

@@ -3568,6 +3568,10 @@ declare namespace monaco.editor {
* Defaults to advanced.
*/
autoIndent?: 'none' | 'keep' | 'brackets' | 'advanced' | 'full';
/**
* Boolean which controls whether to autoindent on paste
*/
autoIndentOnPaste?: boolean;
/**
* Emulate selection behaviour of tab characters when using spaces for indentation.
* This means selection will stick to tab stops.
@@ -4925,150 +4929,151 @@ declare namespace monaco.editor {
autoClosingOvertype = 11,
autoClosingQuotes = 12,
autoIndent = 13,
automaticLayout = 14,
autoSurround = 15,
bracketPairColorization = 16,
guides = 17,
codeLens = 18,
codeLensFontFamily = 19,
codeLensFontSize = 20,
colorDecorators = 21,
colorDecoratorsLimit = 22,
columnSelection = 23,
comments = 24,
contextmenu = 25,
copyWithSyntaxHighlighting = 26,
cursorBlinking = 27,
cursorSmoothCaretAnimation = 28,
cursorStyle = 29,
cursorSurroundingLines = 30,
cursorSurroundingLinesStyle = 31,
cursorWidth = 32,
disableLayerHinting = 33,
disableMonospaceOptimizations = 34,
domReadOnly = 35,
dragAndDrop = 36,
dropIntoEditor = 37,
experimentalEditContextEnabled = 38,
emptySelectionClipboard = 39,
experimentalGpuAcceleration = 40,
experimentalWhitespaceRendering = 41,
extraEditorClassName = 42,
fastScrollSensitivity = 43,
find = 44,
fixedOverflowWidgets = 45,
folding = 46,
foldingStrategy = 47,
foldingHighlight = 48,
foldingImportsByDefault = 49,
foldingMaximumRegions = 50,
unfoldOnClickAfterEndOfLine = 51,
fontFamily = 52,
fontInfo = 53,
fontLigatures = 54,
fontSize = 55,
fontWeight = 56,
fontVariations = 57,
formatOnPaste = 58,
formatOnType = 59,
glyphMargin = 60,
gotoLocation = 61,
hideCursorInOverviewRuler = 62,
hover = 63,
inDiffEditor = 64,
inlineSuggest = 65,
letterSpacing = 66,
lightbulb = 67,
lineDecorationsWidth = 68,
lineHeight = 69,
lineNumbers = 70,
lineNumbersMinChars = 71,
linkedEditing = 72,
links = 73,
matchBrackets = 74,
minimap = 75,
mouseStyle = 76,
mouseWheelScrollSensitivity = 77,
mouseWheelZoom = 78,
multiCursorMergeOverlapping = 79,
multiCursorModifier = 80,
multiCursorPaste = 81,
multiCursorLimit = 82,
occurrencesHighlight = 83,
occurrencesHighlightDelay = 84,
overtypeCursorStyle = 85,
overtypeOnPaste = 86,
overviewRulerBorder = 87,
overviewRulerLanes = 88,
padding = 89,
pasteAs = 90,
parameterHints = 91,
peekWidgetDefaultFocus = 92,
placeholder = 93,
definitionLinkOpensInPeek = 94,
quickSuggestions = 95,
quickSuggestionsDelay = 96,
readOnly = 97,
readOnlyMessage = 98,
renameOnType = 99,
renderControlCharacters = 100,
renderFinalNewline = 101,
renderLineHighlight = 102,
renderLineHighlightOnlyWhenFocus = 103,
renderValidationDecorations = 104,
renderWhitespace = 105,
revealHorizontalRightPadding = 106,
roundedSelection = 107,
rulers = 108,
scrollbar = 109,
scrollBeyondLastColumn = 110,
scrollBeyondLastLine = 111,
scrollPredominantAxis = 112,
selectionClipboard = 113,
selectionHighlight = 114,
selectOnLineNumbers = 115,
showFoldingControls = 116,
showUnused = 117,
snippetSuggestions = 118,
smartSelect = 119,
smoothScrolling = 120,
stickyScroll = 121,
stickyTabStops = 122,
stopRenderingLineAfter = 123,
suggest = 124,
suggestFontSize = 125,
suggestLineHeight = 126,
suggestOnTriggerCharacters = 127,
suggestSelection = 128,
tabCompletion = 129,
tabIndex = 130,
unicodeHighlighting = 131,
unusualLineTerminators = 132,
useShadowDOM = 133,
useTabStops = 134,
wordBreak = 135,
wordSegmenterLocales = 136,
wordSeparators = 137,
wordWrap = 138,
wordWrapBreakAfterCharacters = 139,
wordWrapBreakBeforeCharacters = 140,
wordWrapColumn = 141,
wordWrapOverride1 = 142,
wordWrapOverride2 = 143,
wrappingIndent = 144,
wrappingStrategy = 145,
showDeprecated = 146,
inlayHints = 147,
effectiveCursorStyle = 148,
editorClassName = 149,
pixelRatio = 150,
tabFocusMode = 151,
layoutInfo = 152,
wrappingInfo = 153,
defaultColorDecorators = 154,
colorDecoratorsActivatedOn = 155,
inlineCompletionsAccessibilityVerbose = 156,
effectiveExperimentalEditContextEnabled = 157
autoIndentOnPaste = 14,
automaticLayout = 15,
autoSurround = 16,
bracketPairColorization = 17,
guides = 18,
codeLens = 19,
codeLensFontFamily = 20,
codeLensFontSize = 21,
colorDecorators = 22,
colorDecoratorsLimit = 23,
columnSelection = 24,
comments = 25,
contextmenu = 26,
copyWithSyntaxHighlighting = 27,
cursorBlinking = 28,
cursorSmoothCaretAnimation = 29,
cursorStyle = 30,
cursorSurroundingLines = 31,
cursorSurroundingLinesStyle = 32,
cursorWidth = 33,
disableLayerHinting = 34,
disableMonospaceOptimizations = 35,
domReadOnly = 36,
dragAndDrop = 37,
dropIntoEditor = 38,
experimentalEditContextEnabled = 39,
emptySelectionClipboard = 40,
experimentalGpuAcceleration = 41,
experimentalWhitespaceRendering = 42,
extraEditorClassName = 43,
fastScrollSensitivity = 44,
find = 45,
fixedOverflowWidgets = 46,
folding = 47,
foldingStrategy = 48,
foldingHighlight = 49,
foldingImportsByDefault = 50,
foldingMaximumRegions = 51,
unfoldOnClickAfterEndOfLine = 52,
fontFamily = 53,
fontInfo = 54,
fontLigatures = 55,
fontSize = 56,
fontWeight = 57,
fontVariations = 58,
formatOnPaste = 59,
formatOnType = 60,
glyphMargin = 61,
gotoLocation = 62,
hideCursorInOverviewRuler = 63,
hover = 64,
inDiffEditor = 65,
inlineSuggest = 66,
letterSpacing = 67,
lightbulb = 68,
lineDecorationsWidth = 69,
lineHeight = 70,
lineNumbers = 71,
lineNumbersMinChars = 72,
linkedEditing = 73,
links = 74,
matchBrackets = 75,
minimap = 76,
mouseStyle = 77,
mouseWheelScrollSensitivity = 78,
mouseWheelZoom = 79,
multiCursorMergeOverlapping = 80,
multiCursorModifier = 81,
multiCursorPaste = 82,
multiCursorLimit = 83,
occurrencesHighlight = 84,
occurrencesHighlightDelay = 85,
overtypeCursorStyle = 86,
overtypeOnPaste = 87,
overviewRulerBorder = 88,
overviewRulerLanes = 89,
padding = 90,
pasteAs = 91,
parameterHints = 92,
peekWidgetDefaultFocus = 93,
placeholder = 94,
definitionLinkOpensInPeek = 95,
quickSuggestions = 96,
quickSuggestionsDelay = 97,
readOnly = 98,
readOnlyMessage = 99,
renameOnType = 100,
renderControlCharacters = 101,
renderFinalNewline = 102,
renderLineHighlight = 103,
renderLineHighlightOnlyWhenFocus = 104,
renderValidationDecorations = 105,
renderWhitespace = 106,
revealHorizontalRightPadding = 107,
roundedSelection = 108,
rulers = 109,
scrollbar = 110,
scrollBeyondLastColumn = 111,
scrollBeyondLastLine = 112,
scrollPredominantAxis = 113,
selectionClipboard = 114,
selectionHighlight = 115,
selectOnLineNumbers = 116,
showFoldingControls = 117,
showUnused = 118,
snippetSuggestions = 119,
smartSelect = 120,
smoothScrolling = 121,
stickyScroll = 122,
stickyTabStops = 123,
stopRenderingLineAfter = 124,
suggest = 125,
suggestFontSize = 126,
suggestLineHeight = 127,
suggestOnTriggerCharacters = 128,
suggestSelection = 129,
tabCompletion = 130,
tabIndex = 131,
unicodeHighlighting = 132,
unusualLineTerminators = 133,
useShadowDOM = 134,
useTabStops = 135,
wordBreak = 136,
wordSegmenterLocales = 137,
wordSeparators = 138,
wordWrap = 139,
wordWrapBreakAfterCharacters = 140,
wordWrapBreakBeforeCharacters = 141,
wordWrapColumn = 142,
wordWrapOverride1 = 143,
wordWrapOverride2 = 144,
wrappingIndent = 145,
wrappingStrategy = 146,
showDeprecated = 147,
inlayHints = 148,
effectiveCursorStyle = 149,
editorClassName = 150,
pixelRatio = 151,
tabFocusMode = 152,
layoutInfo = 153,
wrappingInfo = 154,
defaultColorDecorators = 155,
colorDecoratorsActivatedOn = 156,
inlineCompletionsAccessibilityVerbose = 157,
effectiveExperimentalEditContextEnabled = 158
}
export const EditorOptions: {
@@ -5086,6 +5091,7 @@ declare namespace monaco.editor {
autoClosingOvertype: IEditorOption<EditorOption.autoClosingOvertype, 'auto' | 'always' | 'never'>;
autoClosingQuotes: IEditorOption<EditorOption.autoClosingQuotes, 'always' | 'never' | 'languageDefined' | 'beforeWhitespace'>;
autoIndent: IEditorOption<EditorOption.autoIndent, EditorAutoIndentStrategy>;
autoIndentOnPaste: IEditorOption<EditorOption.autoIndentOnPaste, boolean>;
automaticLayout: IEditorOption<EditorOption.automaticLayout, boolean>;
autoSurround: IEditorOption<EditorOption.autoSurround, 'never' | 'languageDefined' | 'quotes' | 'brackets'>;
bracketPairColorization: IEditorOption<EditorOption.bracketPairColorization, Readonly<Required<IBracketPairColorizationOptions>>>;