diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index 1df176bd6d49071c47d11d683d0dfd774246a854..2bf7ce36cc992f52063303f2eb5387c45fe8ca86 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -194,6 +194,7 @@ class InternalEditorOptionsHelper { { let wordWrap = opts.wordWrap; let wordWrapColumn = toInteger(opts.wordWrapColumn, 1); + let wordWrapMinified = toBoolean(opts.wordWrapMinified); // Compatibility with old true or false values if (wordWrap === true) { @@ -202,7 +203,7 @@ class InternalEditorOptionsHelper { wordWrap = 'off'; } - if (isDominatedByLongLines) { + if (wordWrapMinified && isDominatedByLongLines) { // Force viewport width wrapping if model is dominated by long lines bareWrappingInfo = { isViewportWrapping: true, diff --git a/src/vs/editor/common/config/defaultConfig.ts b/src/vs/editor/common/config/defaultConfig.ts index ed388fa0ceb44f93ee18c928416dac62b6b71ade..d557ffe677fba24887ddf245ef9f2ca9b7489da5 100644 --- a/src/vs/editor/common/config/defaultConfig.ts +++ b/src/vs/editor/common/config/defaultConfig.ts @@ -74,6 +74,7 @@ class ConfigClass implements IConfiguration { automaticLayout: false, wordWrap: 'off', wordWrapColumn: 80, + wordWrapMinified: true, wrappingIndent: 'same', wordWrapBreakBeforeCharacters: '([{‘“〈《「『【〔([{「£¥$£¥++', wordWrapBreakAfterCharacters: ' \t})]?|&,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー’”〉》」』】〕)]}」', diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index 3c69cb9cc4f4170e490dacfd8d8dc6f289ef66ea..6fe2521b73218ef3aeb20f6fcd3e89f82ffdc0b7 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -357,6 +357,11 @@ export interface IEditorOptions { * Defaults to 80. */ wordWrapColumn?: number; + /** + * Force word wrapping when the text appears to be of a minified/generated file. + * Defaults to true. + */ + wordWrapMinified?: boolean; /** * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. * Defaults to 'same' in vscode and to 'none' in monaco-editor. diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index f83d45fdc35272b637611fc494f9358a10aadadc..997f315bc8b7e18333cd28b4a203e7901b29a2dd 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -1279,6 +1279,11 @@ declare module monaco.editor { * Defaults to 80. */ wordWrapColumn?: number; + /** + * Force word wrapping when the text appears to be of a minified/generated file. + * Defaults to true. + */ + wordWrapMinified?: boolean; /** * Control indentation of wrapped lines. Can be: 'none', 'same' or 'indent'. * Defaults to 'same' in vscode and to 'none' in monaco-editor. diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/toggleWordWrap.ts b/src/vs/workbench/parts/codeEditor/electron-browser/toggleWordWrap.ts index a0c464d312b1ea8625f62766fe5f243d6d7b1830..e39ea817f233b8a9a34c3648dc899514a64a5eaa 100644 --- a/src/vs/workbench/parts/codeEditor/electron-browser/toggleWordWrap.ts +++ b/src/vs/workbench/parts/codeEditor/electron-browser/toggleWordWrap.ts @@ -28,14 +28,18 @@ class ToggleWordWrapAction extends EditorAction { public run(accessor: ServicesAccessor, editor: ICommonCodeEditor): void { let wrappingInfo = editor.getConfiguration().wrappingInfo; let newWordWrap: 'on' | 'off'; + let newWordWrapMinified: boolean; if (!wrappingInfo.isViewportWrapping) { newWordWrap = 'on'; + newWordWrapMinified = true; } else { newWordWrap = 'off'; + newWordWrapMinified = false; } editor.updateOptions({ - wordWrap: newWordWrap + wordWrap: newWordWrap, + wordWrapMinified: newWordWrapMinified }); } }