diff --git a/packages/editor/src/browser/editor-preferences.ts b/packages/editor/src/browser/editor-preferences.ts index 6a7b874a2eb00..0f149dba60379 100644 --- a/packages/editor/src/browser/editor-preferences.ts +++ b/packages/editor/src/browser/editor-preferences.ts @@ -36,7 +36,7 @@ const platform = { isLinux: OS.type() === OS.Type.Linux }; -// should be in sync with https://github.com/TypeFox/vscode/blob/70b8db24a37fafc77247de7f7cb5bb0195120ed0/src/vs/editor/common/config/editorOptions.ts#L2585 +// should be in sync with https://github.com/theia-ide/vscode/blob/standalone/0.19.x/src/vs/editor/common/config/editorOptions.ts#L2974 export const EDITOR_FONT_DEFAULTS = { fontFamily: ( isOSX ? DEFAULT_MAC_FONT_FAMILY : (isWindows ? DEFAULT_WINDOWS_FONT_FAMILY : DEFAULT_LINUX_FONT_FAMILY) @@ -49,7 +49,7 @@ export const EDITOR_FONT_DEFAULTS = { letterSpacing: 0, }; -// should be in sync with https://github.com/TypeFox/vscode/blob/70b8db24a37fafc77247de7f7cb5bb0195120ed0/src/vs/editor/common/config/editorOptions.ts#L2600 +// should be in sync with https://github.com/theia-ide/vscode/blob/standalone/0.19.x/src/vs/editor/common/config/editorOptions.ts#L2989 export const EDITOR_MODEL_DEFAULTS = { tabSize: 4, indentSize: 4, @@ -59,223 +59,19 @@ export const EDITOR_MODEL_DEFAULTS = { largeFileOptimizations: true }; -/* eslint-disable no-null/no-null */ -// should be in sync with https://github.com/TypeFox/vscode/blob/70b8db24a37fafc77247de7f7cb5bb0195120ed0/src/vs/editor/common/config/editorOptions.ts#L2612 -// 1. Copy -// 2. Inline values -export const EDITOR_DEFAULTS = { - inDiffEditor: false, - wordSeparators: '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?', - lineNumbersMinChars: 5, - lineDecorationsWidth: 10, - readOnly: false, - mouseStyle: 'text', - disableLayerHinting: false, - automaticLayout: false, - wordWrap: 'off', - wordWrapColumn: 80, - wordWrapMinified: true, - wrappingIndent: 1, - wordWrapBreakBeforeCharacters: '([{‘“〈《「『【〔([{「£¥$£¥++', - wordWrapBreakAfterCharacters: ' \t})]?|/&,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」', - wordWrapBreakObtrusiveCharacters: '.', - autoClosingBrackets: 'languageDefined', - autoClosingQuotes: 'languageDefined', - autoSurround: 'languageDefined', - autoIndent: true, - dragAndDrop: true, - emptySelectionClipboard: true, - copyWithSyntaxHighlighting: true, - useTabStops: true, - multiCursorModifier: 'altKey', - multiCursorMergeOverlapping: true, - accessibilitySupport: 'auto', - showUnused: true, - - viewInfo: { - extraEditorClassName: '', - disableMonospaceOptimizations: false, - rulers: [], - ariaLabel: 'Editor content', - renderLineNumbers: 1, - renderCustomLineNumbers: null, - cursorSurroundingLines: 0, - renderFinalNewline: true, - selectOnLineNumbers: true, - glyphMargin: true, - revealHorizontalRightPadding: 30, - roundedSelection: true, - overviewRulerLanes: 2, - overviewRulerBorder: true, - cursorBlinking: 1, - mouseWheelZoom: false, - cursorSmoothCaretAnimation: false, - cursorStyle: 1, - cursorWidth: 0, - hideCursorInOverviewRuler: false, - scrollBeyondLastLine: true, - scrollBeyondLastColumn: 5, - smoothScrolling: false, - stopRenderingLineAfter: 10000, - renderWhitespace: 'none', - renderControlCharacters: false, - fontLigatures: false, - renderIndentGuides: true, - highlightActiveIndentGuide: true, - renderLineHighlight: 'line', - scrollbar: { - vertical: 1, - horizontal: 1, - arrowSize: 11, - useShadows: true, - verticalHasArrows: false, - horizontalHasArrows: false, - horizontalScrollbarSize: 10, - horizontalSliderSize: 10, - verticalScrollbarSize: 14, - verticalSliderSize: 14, - handleMouseWheel: true, - mouseWheelScrollSensitivity: 1, - fastScrollSensitivity: 5, - }, - minimap: { - enabled: true, - side: 'right', - showSlider: 'mouseover', - renderCharacters: true, - maxColumn: 120 - }, - fixedOverflowWidgets: false, - }, - - contribInfo: { - selectionClipboard: true, - hover: { - enabled: true, - delay: 300, - sticky: true - }, - links: true, - contextmenu: true, - quickSuggestions: { other: true, comments: false, strings: false }, - quickSuggestionsDelay: 10, - parameterHints: { - enabled: true, - cycle: false - }, - formatOnType: false, - formatOnPaste: false, - suggestOnTriggerCharacters: true, - acceptSuggestionOnEnter: 'on', - acceptSuggestionOnCommitCharacter: true, - wordBasedSuggestions: true, - suggestSelection: 'recentlyUsed', - suggestFontSize: 0, - suggestLineHeight: 0, - tabCompletion: 'off', - suggest: { - filterGraceful: true, - snippets: 'inline', - snippetsPreventQuickSuggestions: true, - localityBonus: false, - shareSuggestSelections: false, - showIcons: true, - maxVisibleSuggestions: 12, - filteredTypes: Object.create(null) - }, - gotoLocation: { - multiple: 'peek' - }, - selectionHighlight: true, - occurrencesHighlight: true, - codeLens: true, - folding: true, - foldingStrategy: 'auto', - showFoldingControls: 'mouseover', - matchBrackets: true, - find: { - seedSearchStringFromSelection: true, - autoFindInSelection: false, - globalFindClipboard: false, - addExtraSpaceOnTop: true - }, - colorDecorators: true, - lightbulbEnabled: true, - codeActionsOnSave: {}, - codeActionsOnSaveTimeout: 750 - }, -}; /* eslint-enable no-null/no-null */ /* eslint-disable max-len */ -// should be in sync with https://github.com/TypeFox/vscode/blob/70b8db24a37fafc77247de7f7cb5bb0195120ed0/src/vs/editor/common/config/commonEditorConfig.ts#L232 -// 1. Copy -// 2. Find -> Use Regular Expressions -> nls\.localize\(.*, "(.*)"\) -> "$1" -// 3. Find -> Use Regular Expressions -> nls\.localize\(.*, '(.*)'\) -> '$1' +// should be in sync with: +// 1. https://github.com/theia-ide/vscode/blob/standalone/0.19.x/src/vs/editor/common/config/commonEditorConfig.ts#L442 +// 2. https://github.com/theia-ide/vscode/blob/standalone/0.19.x/src/vs/editor/common/config/commonEditorConfig.ts#L526 + +// 1. Copy from https://github.com/theia-ide/vscode/blob/standalone/0.19.x/src/vs/editor/common/config/commonEditorConfig.ts#L526 +// 2. Align first items with https://github.com/theia-ide/vscode/blob/standalone/0.19.x/src/vs/editor/common/config/commonEditorConfig.ts#L442 +// 3. Find -> Use Regular Expressions to clean up data and replace " by ', for example -> nls\.localize\(.*, "(.*)"\) -> "$1" // 4. Apply `quotemark` quick fixes // 5. Fix the rest manually const codeEditorPreferenceProperties = { - 'editor.fontFamily': { - 'type': 'string', - 'default': EDITOR_FONT_DEFAULTS.fontFamily, - 'description': 'Controls the font family.' - }, - 'editor.fontWeight': { - 'type': 'string', - 'enum': ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'], - 'default': EDITOR_FONT_DEFAULTS.fontWeight, - 'description': 'Controls the font weight.' - }, - 'editor.fontSize': { - 'type': 'number', - 'default': EDITOR_FONT_DEFAULTS.fontSize, - 'description': 'Controls the font size in pixels.' - }, - 'editor.lineHeight': { - 'type': 'number', - 'default': EDITOR_FONT_DEFAULTS.lineHeight, - 'description': 'Controls the line height. Use 0 to compute the line height from the font size.' - }, - 'editor.letterSpacing': { - 'type': 'number', - 'default': EDITOR_FONT_DEFAULTS.letterSpacing, - 'description': 'Controls the letter spacing in pixels.' - }, - 'editor.lineNumbers': { - 'type': 'string', - 'enum': ['off', 'on', 'relative', 'interval'], - 'enumDescriptions': [ - 'Line numbers are not rendered.', - 'Line numbers are rendered as absolute number.', - 'Line numbers are rendered as distance in lines to cursor position.', - 'Line numbers are rendered every 10 lines.' - ], - 'default': 'on', - 'description': 'Controls the display of line numbers.' - }, - 'editor.cursorSurroundingLines': { - 'type': 'number', - 'default': EDITOR_DEFAULTS.viewInfo.cursorSurroundingLines, - 'description': "Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as 'scrollOff' or `scrollOffset` in some other editors." - }, - 'editor.renderFinalNewline': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.renderFinalNewline, - 'description': 'Render last line number when the file ends with a newline.' - }, - 'editor.rulers': { - 'type': 'array', - 'items': { - 'type': 'number' - }, - 'default': EDITOR_DEFAULTS.viewInfo.rulers, - 'description': 'Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.' - }, - 'editor.wordSeparators': { - 'type': 'string', - 'default': EDITOR_DEFAULTS.wordSeparators, - 'description': 'Characters that will be used as word separators when doing word related navigations or operations.' - }, 'editor.tabSize': { 'type': 'number', 'default': EDITOR_MODEL_DEFAULTS.tabSize, @@ -292,735 +88,1094 @@ const codeEditorPreferenceProperties = { 'default': EDITOR_MODEL_DEFAULTS.detectIndentation, 'markdownDescription': 'Controls whether `#editor.tabSize#` and `#editor.insertSpaces#` will be automatically detected when a file is opened based on the file contents.' }, - 'editor.roundedSelection': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.roundedSelection, - 'description': 'Controls whether selections should have rounded corners.' - }, - 'editor.scrollBeyondLastLine': { + 'editor.trimAutoWhitespace': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.scrollBeyondLastLine, - 'description': 'Controls whether the editor will scroll beyond the last line.' - }, - 'editor.scrollBeyondLastColumn': { - 'type': 'number', - 'default': EDITOR_DEFAULTS.viewInfo.scrollBeyondLastColumn, - 'description': 'Controls the number of extra characters beyond which the editor will scroll horizontally.' + 'default': EDITOR_MODEL_DEFAULTS.trimAutoWhitespace, + 'description': 'Remove trailing auto inserted whitespace.' }, - 'editor.smoothScrolling': { + 'editor.largeFileOptimizations': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.smoothScrolling, - 'description': 'Controls whether the editor will scroll using an animation.' + 'default': EDITOR_MODEL_DEFAULTS.largeFileOptimizations, + 'description': 'Special handling for large files to disable certain memory intensive features.' }, - 'editor.minimap.enabled': { + 'editor.wordBasedSuggestions': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.minimap.enabled, - 'description': 'Controls whether the minimap is shown.' - }, - 'editor.minimap.side': { - 'type': 'string', - 'enum': ['left', 'right'], - 'default': EDITOR_DEFAULTS.viewInfo.minimap.side, - 'description': 'Controls the side where to render the minimap.' - }, - 'editor.minimap.showSlider': { - 'type': 'string', - 'enum': ['always', 'mouseover'], - 'default': EDITOR_DEFAULTS.viewInfo.minimap.showSlider, - 'description': 'Controls whether the minimap slider is automatically hidden.' + 'default': true, + 'description': 'Controls whether completions should be computed based on words in the document.' }, - 'editor.minimap.renderCharacters': { + 'editor.stablePeek': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.minimap.renderCharacters, - 'description': 'Render the actual characters on a line as opposed to color blocks.' - }, - 'editor.minimap.maxColumn': { - 'type': 'number', - 'default': EDITOR_DEFAULTS.viewInfo.minimap.maxColumn, - 'description': 'Limit the width of the minimap to render at most a certain number of columns.' + 'default': false, + 'markdownDescription': 'Keep peek editors open even when double clicking their content or when hitting `Escape`.' }, - 'editor.hover.enabled': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.hover.enabled, - 'description': 'Controls whether the hover is shown.' + 'editor.maxTokenizationLineLength': { + 'type': 'integer', + 'default': 20_000, + 'description': 'Lines above this length will not be tokenized for performance reasons' }, - 'editor.hover.delay': { + 'diffEditor.maxComputationTime': { 'type': 'number', - 'default': EDITOR_DEFAULTS.contribInfo.hover.delay, - 'description': 'Controls the delay in milliseconds after which the hover is shown.' - }, - 'editor.hover.sticky': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.hover.sticky, - 'description': 'Controls whether the hover should remain visible when mouse is moved over it.' + 'default': 5000, + 'description': 'Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.' }, - 'editor.find.seedSearchStringFromSelection': { + 'diffEditor.renderSideBySide': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.find.seedSearchStringFromSelection, - 'description': 'Controls whether the search string in the Find Widget is seeded from the editor selection.' + 'default': true, + 'description': 'Controls whether the diff editor shows the diff side by side or inline.' }, - 'editor.find.autoFindInSelection': { + 'diffEditor.ignoreTrimWhitespace': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.find.autoFindInSelection, - 'description': 'Controls whether the find operation is carried out on selected text or the entire file in the editor.' + 'default': true, + 'description': 'Controls whether the diff editor shows changes in leading or trailing whitespace as diffs.' }, - 'editor.find.globalFindClipboard': { + 'diffEditor.renderIndicators': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.find.globalFindClipboard, - 'description': 'Controls whether the Find Widget should read or modify the shared find clipboard on macOS.', - 'included': platform.isMacintosh + 'default': true, + 'description': 'Controls whether the diff editor shows +/- indicators for added/removed changes.' }, - 'editor.find.addExtraSpaceOnTop': { + 'editor.acceptSuggestionOnCommitCharacter': { + 'markdownDescription': 'Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.', 'type': 'boolean', - 'default': true, - 'description': 'Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.' + 'default': true }, - 'editor.wordWrap': { - 'type': 'string', - 'enum': ['off', 'on', 'wordWrapColumn', 'bounded'], + 'editor.acceptSuggestionOnEnter': { 'markdownEnumDescriptions': [ - 'Lines will never wrap.', - 'Lines will wrap at the viewport width.', - 'Lines will wrap at `#editor.wordWrapColumn#`.', - 'Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.', + '', + 'Only accept a suggestion with `Enter` when it makes a textual change.', + '' ], - 'default': EDITOR_DEFAULTS.wordWrap, - 'description': 'Controls how lines should wrap.' - }, - 'editor.wordWrapColumn': { - 'type': 'integer', - 'default': EDITOR_DEFAULTS.wordWrapColumn, - 'minimum': 1, - 'markdownDescription': 'Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.' - }, - 'editor.wrappingIndent': { + 'markdownDescription': 'Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.', 'type': 'string', - 'enum': ['none', 'same', 'indent', 'deepIndent'], - enumDescriptions: [ - 'No indentation. Wrapped lines begin at column 1.', - 'Wrapped lines get the same indentation as the parent.', - 'Wrapped lines get +1 indentation toward the parent.', - 'Wrapped lines get +2 indentation toward the parent.', + 'enum': [ + 'on', + 'smart', + 'off' ], - 'default': 'same', - 'description': 'Controls the indentation of wrapped lines.', + 'default': 'on' }, - 'editor.mouseWheelScrollSensitivity': { - 'type': 'number', - 'default': EDITOR_DEFAULTS.viewInfo.scrollbar.mouseWheelScrollSensitivity, - 'markdownDescription': 'A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.' - }, - 'editor.fastScrollSensitivity': { - 'type': 'number', - 'default': EDITOR_DEFAULTS.viewInfo.scrollbar.fastScrollSensitivity, - 'markdownDescription': 'Scrolling speed multiplier when pressing `Alt`.' - }, - 'editor.multiCursorModifier': { + 'editor.accessibilitySupport': { 'type': 'string', - 'enum': ['ctrlCmd', 'alt'], - 'markdownEnumDescriptions': [ - 'Maps to `Control` on Windows and Linux and to `Command` on macOS.', - 'Maps to `Alt` on Windows and Linux and to `Option` on macOS.' + 'enum': [ + 'auto', + 'on', + 'off' ], - 'default': 'alt', - 'markdownDescription': 'The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).' - }, - 'editor.multiCursorMergeOverlapping': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.multiCursorMergeOverlapping, - 'description': 'Merge multiple cursors when they are overlapping.' - }, - 'editor.quickSuggestions': { - 'anyOf': [ - { - type: 'boolean', - }, - { - type: 'object', - properties: { - strings: { - type: 'boolean', - default: false, - description: 'Enable quick suggestions inside strings.' - }, - comments: { - type: 'boolean', - default: false, - description: 'Enable quick suggestions inside comments.' - }, - other: { - type: 'boolean', - default: true, - description: 'Enable quick suggestions outside of strings and comments.' - }, - } - } + 'enumDescriptions': [ + 'The editor will use platform APIs to detect when a Screen Reader is attached.', + 'The editor will be permanently optimized for usage with a Screen Reader.', + 'The editor will never be optimized for usage with a Screen Reader.' ], - 'default': EDITOR_DEFAULTS.contribInfo.quickSuggestions, - 'description': 'Controls whether suggestions should automatically show up while typing.' + 'default': 'auto', + 'description': 'Controls whether the editor should run in a mode where it is optimized for screen readers.' }, - 'editor.quickSuggestionsDelay': { + 'editor.accessibilityPageSize': { + 'description': 'Controls the number of lines in the editor that can be read out by a screen reader. Warning: this has a performance implication for numbers larger than the default.', 'type': 'integer', - 'default': EDITOR_DEFAULTS.contribInfo.quickSuggestionsDelay, - 'minimum': 0, - 'description': 'Controls the delay in milliseconds after which quick suggestions will show up.' - }, - 'editor.parameterHints.enabled': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.parameterHints.enabled, - 'description': 'Enables a pop-up that shows parameter documentation and type information as you type.' - }, - 'editor.parameterHints.cycle': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.parameterHints.cycle, - 'description': 'Controls whether the parameter hints menu cycles or closes when reaching the end of the list.' + 'default': 10, + 'minimum': 1, + 'maximum': 1073741824 }, 'editor.autoClosingBrackets': { - type: 'string', - enum: ['always', 'languageDefined', 'beforeWhitespace', 'never'], - enumDescriptions: [ + 'enumDescriptions': [ '', 'Use language configurations to determine when to autoclose brackets.', 'Autoclose brackets only when the cursor is to the left of whitespace.', + '' + ], + 'description': 'Controls whether the editor should automatically close brackets after the user adds an opening bracket.', + 'type': 'string', + 'enum': [ + 'always', + 'languageDefined', + 'beforeWhitespace', + 'never' + ], + 'default': 'languageDefined' + }, + 'editor.autoClosingOvertype': { + 'enumDescriptions': [ '', - + 'Type over closing quotes or brackets only if they were automatically inserted.', + '' + ], + 'description': 'Controls whether the editor should type over closing quotes or brackets.', + 'type': 'string', + 'enum': [ + 'always', + 'auto', + 'never' ], - 'default': EDITOR_DEFAULTS.autoClosingBrackets, - 'description': 'Controls whether the editor should automatically close brackets after the user adds an opening bracket.' + 'default': 'auto' }, 'editor.autoClosingQuotes': { - type: 'string', - enum: ['always', 'languageDefined', 'beforeWhitespace', 'never'], - enumDescriptions: [ + 'enumDescriptions': [ '', 'Use language configurations to determine when to autoclose quotes.', 'Autoclose quotes only when the cursor is to the left of whitespace.', - '', + '' + ], + 'description': 'Controls whether the editor should automatically close quotes after the user adds an opening quote.', + 'type': 'string', + 'enum': [ + 'always', + 'languageDefined', + 'beforeWhitespace', + 'never' + ], + 'default': 'languageDefined' + }, + 'editor.autoIndent': { + 'enumDescriptions': [ + 'The editor will not insert indentation automatically.', + 'The editor will keep the current line\'s indentation.', + 'The editor will keep the current line\'s indentation and honor language defined brackets.', + 'The editor will keep the current line\'s indentation, honor language defined brackets and invoke special onEnterRules defined by languages.', + 'The editor will keep the current line\'s indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.' + ], + 'description': 'Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.', + 'type': 'string', + 'enum': [ + 'none', + 'keep', + 'brackets', + 'advanced', + 'full' ], - 'default': EDITOR_DEFAULTS.autoClosingQuotes, - 'description': 'Controls whether the editor should automatically close quotes after the user adds an opening quote.' + 'default': 'full' }, 'editor.autoSurround': { - type: 'string', - enum: ['languageDefined', 'brackets', 'quotes', 'never'], - enumDescriptions: [ + 'enumDescriptions': [ 'Use language configurations to determine when to automatically surround selections.', - 'Surround with brackets but not quotes.', 'Surround with quotes but not brackets.', + 'Surround with brackets but not quotes.', '' ], - 'default': EDITOR_DEFAULTS.autoSurround, - 'description': 'Controls whether the editor should automatically surround selections.' - }, - 'editor.formatOnType': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.formatOnType, - 'description': 'Controls whether the editor should automatically format the line after typing.' + 'description': 'Controls whether the editor should automatically surround selections.', + 'type': 'string', + 'enum': [ + 'languageDefined', + 'quotes', + 'brackets', + 'never' + ], + 'default': 'languageDefined' }, - 'editor.formatOnPaste': { + 'editor.codeLens': { + 'description': 'Controls whether the editor shows CodeLens.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.formatOnPaste, - 'description': 'Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.' + 'default': true }, - 'editor.autoIndent': { + 'editor.colorDecorators': { + 'description': 'Controls whether the editor should render the inline color decorators and color picker.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.autoIndent, - 'description': 'Controls whether the editor should automatically adjust the indentation when users type, paste or move lines. Extensions with indentation rules of the language must be available.' + 'default': true }, - 'editor.suggestOnTriggerCharacters': { + 'editor.copyWithSyntaxHighlighting': { + 'description': 'Controls whether syntax highlighting should be copied into the clipboard.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.suggestOnTriggerCharacters, - 'description': 'Controls whether suggestions should automatically show up when typing trigger characters.' + 'default': true }, - 'editor.acceptSuggestionOnEnter': { + 'editor.cursorBlinking': { + 'description': 'Control the cursor animation style.', 'type': 'string', - 'enum': ['on', 'smart', 'off'], - 'default': EDITOR_DEFAULTS.contribInfo.acceptSuggestionOnEnter, - 'markdownEnumDescriptions': [ - '', - 'Only accept a suggestion with `Enter` when it makes a textual change.', - '' + 'enum': [ + 'blink', + 'smooth', + 'phase', + 'expand', + 'solid' ], - 'markdownDescription': 'Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.' + 'default': 'blink' }, - 'editor.acceptSuggestionOnCommitCharacter': { + 'editor.cursorSmoothCaretAnimation': { + 'description': 'Controls whether the smooth caret animation should be enabled.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.acceptSuggestionOnCommitCharacter, - 'markdownDescription': 'Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.' + 'default': false }, - 'editor.snippetSuggestions': { + 'editor.cursorStyle': { + 'description': 'Controls the cursor style.', 'type': 'string', - 'enum': ['top', 'bottom', 'inline', 'none'], - 'enumDescriptions': [ - 'Show snippet suggestions on top of other suggestions.', - 'Show snippet suggestions below other suggestions.', - 'Show snippets suggestions with other suggestions.', - 'Do not show snippet suggestions.', + 'enum': [ + 'line', + 'block', + 'underline', + 'line-thin', + 'block-outline', + 'underline-thin' ], - 'default': EDITOR_DEFAULTS.contribInfo.suggest.snippets, - 'description': 'Controls whether snippets are shown with other suggestions and how they are sorted.' - }, - 'editor.emptySelectionClipboard': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.emptySelectionClipboard, - 'description': 'Controls whether copying without a selection copies the current line.' - }, - 'editor.copyWithSyntaxHighlighting': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.copyWithSyntaxHighlighting, - 'description': 'Controls whether syntax highlighting should be copied into the clipboard.' + 'default': 'line' }, - 'editor.wordBasedSuggestions': { - 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.wordBasedSuggestions, - 'description': 'Controls whether completions should be computed based on words in the document.' + 'editor.cursorSurroundingLines': { + 'description': 'Controls the minimal number of visible leading and trailing lines surrounding the cursor. Known as `scrollOff` or `scrollOffset` in some other editors.', + 'type': 'integer', + 'default': 0, + 'minimum': 0, + 'maximum': 1073741824 }, - 'editor.suggestSelection': { + 'editor.cursorSurroundingLinesStyle': { + 'enumDescriptions': [ + '`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.', + '`cursorSurroundingLines` is enforced always.' + ], + 'description': 'Controls when `cursorSurroundingLines` should be enforced.', 'type': 'string', - 'enum': ['first', 'recentlyUsed', 'recentlyUsedByPrefix'], - 'markdownEnumDescriptions': [ - 'Always select the first suggestion.', - 'Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.', - 'Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.', + 'enum': [ + 'default', + 'all' ], - 'default': 'recentlyUsed', - 'description': 'Controls how suggestions are pre-selected when showing the suggest list.' + 'default': 'default' }, - 'editor.suggestFontSize': { + 'editor.cursorWidth': { + 'markdownDescription': 'Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.', 'type': 'integer', 'default': 0, 'minimum': 0, - 'markdownDescription': 'Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.' + 'maximum': 1073741824 }, - 'editor.suggestLineHeight': { - 'type': 'integer', - 'default': 0, - 'minimum': 0, - 'markdownDescription': 'Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.' + 'editor.dragAndDrop': { + 'description': 'Controls whether the editor should allow moving selections via drag and drop.', + 'type': 'boolean', + 'default': true }, - 'editor.tabCompletion': { - type: 'string', - default: 'off', - enum: ['on', 'off', 'onlySnippets'], - enumDescriptions: [ - 'Tab complete will insert the best matching suggestion when pressing tab.', - 'Disable tab completions.', - "Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.", - ], - description: 'Enables tab completions.' + 'editor.emptySelectionClipboard': { + 'description': 'Controls whether copying without a selection copies the current line.', + 'type': 'boolean', + 'default': true }, - 'editor.suggest.filterGraceful': { - type: 'boolean', - default: true, - description: 'Controls whether filtering and sorting suggestions accounts for small typos.' + 'editor.fastScrollSensitivity': { + 'markdownDescription': 'Scrolling speed multiplier when pressing `Alt`.', + 'type': 'number', + 'default': 5 }, - 'editor.suggest.localityBonus': { - type: 'boolean', - default: false, - description: 'Controls whether sorting favours words that appear close to the cursor.' + 'editor.find.seedSearchStringFromSelection': { + 'type': 'boolean', + 'default': true, + 'description': 'Controls whether the search string in the Find Widget is seeded from the editor selection.' }, - 'editor.suggest.shareSuggestSelections': { - type: 'boolean', - default: false, - markdownDescription: 'Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).' + 'editor.find.autoFindInSelection': { + 'type': 'string', + 'enum': [ + 'never', + 'always', + 'multiline' + ], + 'default': 'never', + 'enumDescriptions': [ + 'Never turn on Find in selection automatically (default)', + 'Always turn on Find in selection automatically', + 'Turn on Find in selection automatically when multiple lines of content are selected.' + ], + 'description': 'Controls whether the find operation is carried out on selected text or the entire file in the editor.' }, - 'editor.suggest.snippetsPreventQuickSuggestions': { - type: 'boolean', - default: true, - description: 'Control whether an active snippet prevents quick suggestions.' + 'editor.find.globalFindClipboard': { + 'type': 'boolean', + 'default': false, + 'description': 'Controls whether the Find Widget should read or modify the shared find clipboard on macOS.', + 'included': isOSX }, - 'editor.suggest.showIcons': { - type: 'boolean', - default: EDITOR_DEFAULTS.contribInfo.suggest.showIcons, - description: 'Controls whether to show or hide icons in suggestions.' + 'editor.find.addExtraSpaceOnTop': { + 'type': 'boolean', + 'default': true, + 'description': 'Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.' }, - 'editor.suggest.maxVisibleSuggestions': { - type: 'number', - default: EDITOR_DEFAULTS.contribInfo.suggest.maxVisibleSuggestions, - minimum: 1, - maximum: 15, - description: 'Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).' + 'editor.folding': { + 'description': 'Controls whether the editor has code folding enabled.', + 'type': 'boolean', + 'default': true }, - 'editor.suggest.filteredTypes': { - type: 'object', - default: { keyword: true, snippet: true }, - markdownDescription: 'Controls whether some suggestion types should be filtered from IntelliSense. A list of suggestion types can be found here: https://code.visualstudio.com/docs/editor/intellisense#_types-of-completions.', - properties: { - method: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `method` suggestions.' - }, - function: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `function` suggestions.' - }, - constructor: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `constructor` suggestions.' - }, - field: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `field` suggestions.' - }, - variable: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `variable` suggestions.' - }, - class: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `class` suggestions.' - }, - struct: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `struct` suggestions.' - }, - interface: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `interface` suggestions.' - }, - module: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `module` suggestions.' - }, - property: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `property` suggestions.' - }, - event: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `event` suggestions.' - }, - operator: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `operator` suggestions.' - }, - unit: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `unit` suggestions.' - }, - value: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `value` suggestions.' - }, - constant: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `constant` suggestions.' - }, - enum: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `enum` suggestions.' - }, - enumMember: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `enumMember` suggestions.' - }, - keyword: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `keyword` suggestions.' - }, - text: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `text` suggestions.' - }, - color: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `color` suggestions.' - }, - file: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `file` suggestions.' - }, - reference: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `reference` suggestions.' - }, - customcolor: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `customcolor` suggestions.' - }, - folder: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `folder` suggestions.' - }, - typeParameter: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `typeParameter` suggestions.' - }, - snippet: { - type: 'boolean', - default: true, - markdownDescription: 'When set to `false` IntelliSense never shows `snippet` suggestions.' + 'editor.foldingStrategy': { + 'markdownDescription': 'Controls the strategy for computing folding ranges. `auto` uses a language specific folding strategy, if available. `indentation` uses the indentation based folding strategy.', + 'type': 'string', + 'enum': [ + 'auto', + 'indentation' + ], + 'default': 'auto' + }, + 'editor.fontFamily': { + 'description': 'Controls the font family.', + 'type': 'string', + 'default': EDITOR_FONT_DEFAULTS.fontFamily + }, + 'editor.fontLigatures': { + 'anyOf': [ + { + 'type': 'boolean', + 'description': 'Enables/Disables font ligatures.' }, - } + { + 'type': 'string', + 'description': 'Explicit font-feature-settings.' + } + ], + 'description': 'Configures font ligatures.', + 'default': false + }, + 'editor.fontSize': { + 'type': 'number', + 'minimum': 6, + 'maximum': 100, + 'default': EDITOR_FONT_DEFAULTS.fontSize, + 'description': 'Controls the font size in pixels.' + }, + 'editor.fontWeight': { + 'enum': [ + 'normal', + 'bold', + '100', + '200', + '300', + '400', + '500', + '600', + '700', + '800', + '900' + ], + 'description': 'Controls the font weight.', + 'type': 'string', + 'default': EDITOR_FONT_DEFAULTS.fontWeight + }, + 'editor.formatOnPaste': { + 'description': 'Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.', + 'type': 'boolean', + 'default': false + }, + 'editor.formatOnType': { + 'description': 'Controls whether the editor should automatically format the line after typing.', + 'type': 'boolean', + 'default': false + }, + 'editor.glyphMargin': { + 'description': 'Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.', + 'type': 'boolean', + 'default': true }, 'editor.gotoLocation.multiple': { - description: "Controls the behavior of 'Go To' commands, like Go To Definition, when multiple target locations exist.", - type: 'string', - enum: ['peek', 'gotoAndPeek', 'goto'], - default: EDITOR_DEFAULTS.contribInfo.gotoLocation.multiple, - enumDescriptions: [ + 'type': 'string', + 'default': '', + 'deprecationMessage': 'This setting is deprecated, please use separate settings like `editor.editor.gotoLocation.multipleDefinitions` or `editor.editor.gotoLocation.multipleImplementations` instead.' + }, + 'editor.gotoLocation.multipleDefinitions': { + 'description': 'Controls the behavior the `Go to Definition`-command when multiple target locations exist.', + 'type': 'string', + 'enum': [ + 'peek', + 'gotoAndPeek', + 'goto' + ], + 'default': 'peek', + 'enumDescriptions': [ 'Show peek view of the results (default)', 'Go to the primary result and show a peek view', 'Go to the primary result and enable peek-less navigation to others' ] }, - 'editor.selectionHighlight': { + 'editor.gotoLocation.multipleTypeDefinitions': { + 'description': 'Controls the behavior the `Go to Type Definition`-command when multiple target locations exist.', + 'type': 'string', + 'enum': [ + 'peek', + 'gotoAndPeek', + 'goto' + ], + 'default': 'peek', + 'enumDescriptions': [ + 'Show peek view of the results (default)', + 'Go to the primary result and show a peek view', + 'Go to the primary result and enable peek-less navigation to others' + ] + }, + 'editor.gotoLocation.multipleDeclarations': { + 'description': 'Controls the behavior the `Go to Declaration`-command when multiple target locations exist.', + 'type': 'string', + 'enum': [ + 'peek', + 'gotoAndPeek', + 'goto' + ], + 'default': 'peek', + 'enumDescriptions': [ + 'Show peek view of the results (default)', + 'Go to the primary result and show a peek view', + 'Go to the primary result and enable peek-less navigation to others' + ] + }, + 'editor.gotoLocation.multipleImplementations': { + 'description': 'Controls the behavior the `Go to Implementations`-command when multiple target locations exist.', + 'type': 'string', + 'enum': [ + 'peek', + 'gotoAndPeek', + 'goto' + ], + 'default': 'peek', + 'enumDescriptions': [ + 'Show peek view of the results (default)', + 'Go to the primary result and show a peek view', + 'Go to the primary result and enable peek-less navigation to others' + ] + }, + 'editor.gotoLocation.multipleReferences': { + 'description': 'Controls the behavior the `Go to References`-command when multiple target locations exist.', + 'type': 'string', + 'enum': [ + 'peek', + 'gotoAndPeek', + 'goto' + ], + 'default': 'peek', + 'enumDescriptions': [ + 'Show peek view of the results (default)', + 'Go to the primary result and show a peek view', + 'Go to the primary result and enable peek-less navigation to others' + ] + }, + 'editor.gotoLocation.alternativeDefinitionCommand': { + 'type': 'string', + 'default': 'editor.action.goToReferences', + 'description': 'Alternative command id that is being executed when the result of `Go to Definition` is the current location.' + }, + 'editor.gotoLocation.alternativeTypeDefinitionCommand': { + 'type': 'string', + 'default': 'editor.action.goToReferences', + 'description': 'Alternative command id that is being executed when the result of `Go to Type Definition` is the current location.' + }, + 'editor.gotoLocation.alternativeDeclarationCommand': { + 'type': 'string', + 'default': 'editor.action.goToReferences', + 'description': 'Alternative command id that is being executed when the result of `Go to Declaration` is the current location.' + }, + 'editor.gotoLocation.alternativeImplementationCommand': { + 'type': 'string', + 'default': '', + 'description': 'Alternative command id that is being executed when the result of `Go to Implementation` is the current location.' + }, + 'editor.gotoLocation.alternativeReferenceCommand': { + 'type': 'string', + 'default': '', + 'description': 'Alternative command id that is being executed when the result of `Go to Reference` is the current location.' + }, + 'editor.hideCursorInOverviewRuler': { + 'description': 'Controls whether the cursor should be hidden in the overview ruler.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.selectionHighlight, - 'description': 'Controls whether the editor should highlight matches similar to the selection.' + 'default': false }, - 'editor.occurrencesHighlight': { + 'editor.highlightActiveIndentGuide': { + 'description': 'Controls whether the editor should highlight the active indent guide.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.occurrencesHighlight, - 'description': 'Controls whether the editor should highlight semantic symbol occurrences.' + 'default': true }, - 'editor.overviewRulerLanes': { + 'editor.hover.enabled': { + 'type': 'boolean', + 'default': true, + 'description': 'Controls whether the hover is shown.' + }, + 'editor.hover.delay': { + 'type': 'number', + 'default': 300, + 'description': 'Controls the delay in milliseconds after which the hover is shown.' + }, + 'editor.hover.sticky': { + 'type': 'boolean', + 'default': true, + 'description': 'Controls whether the hover should remain visible when mouse is moved over it.' + }, + 'editor.letterSpacing': { + 'description': 'Controls the letter spacing in pixels.', + 'type': 'number', + 'default': EDITOR_FONT_DEFAULTS.letterSpacing + }, + 'editor.lightbulb.enabled': { + 'type': 'boolean', + 'default': true, + 'description': 'Enables the code action lightbulb in the editor.' + }, + 'editor.lineHeight': { + 'description': 'Controls the line height. Use 0 to compute the line height from the font size.', 'type': 'integer', - 'default': 3, - 'description': 'Controls the number of decorations that can show up at the same position in the overview ruler.' + 'default': EDITOR_FONT_DEFAULTS.lineHeight, + 'minimum': 0, + 'maximum': 150 }, - 'editor.overviewRulerBorder': { + 'editor.lineNumbers': { + 'type': 'string', + 'enum': [ + 'off', + 'on', + 'relative', + 'interval' + ], + 'enumDescriptions': [ + 'Line numbers are not rendered.', + 'Line numbers are rendered as absolute number.', + 'Line numbers are rendered as distance in lines to cursor position.', + 'Line numbers are rendered every 10 lines.' + ], + 'default': 'on', + 'description': 'Controls the display of line numbers.' + }, + 'editor.links': { + 'description': 'Controls whether the editor should detect links and make them clickable.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.overviewRulerBorder, - 'description': 'Controls whether a border should be drawn around the overview ruler.' + 'default': true }, - 'editor.cursorBlinking': { + 'editor.matchBrackets': { + 'description': 'Highlight matching brackets.', + 'type': 'string', + 'enum': [ + 'always', + 'near', + 'never' + ], + 'default': 'always' + }, + 'editor.minimap.enabled': { + 'type': 'boolean', + 'default': true, + 'description': 'Controls whether the minimap is shown.' + }, + 'editor.minimap.side': { + 'type': 'string', + 'enum': [ + 'left', + 'right' + ], + 'default': 'right', + 'description': 'Controls the side where to render the minimap.' + }, + 'editor.minimap.showSlider': { 'type': 'string', - 'enum': ['blink', 'smooth', 'phase', 'expand', 'solid'], - 'default': 'blink', - 'description': 'Control the cursor animation style.' + 'enum': [ + 'always', + 'mouseover' + ], + 'default': 'mouseover', + 'description': 'Controls when the minimap slider is shown.' + }, + 'editor.minimap.scale': { + 'type': 'number', + 'default': 1, + 'minimum': 1, + 'maximum': 3, + 'description': 'Scale of content drawn in the minimap.' + }, + 'editor.minimap.renderCharacters': { + 'type': 'boolean', + 'default': true, + 'description': 'Render the actual characters on a line as opposed to color blocks.' + }, + 'editor.minimap.maxColumn': { + 'type': 'number', + 'default': 120, + 'description': 'Limit the width of the minimap to render at most a certain number of columns.' + }, + 'editor.mouseWheelScrollSensitivity': { + 'markdownDescription': 'A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.', + 'type': 'number', + 'default': 1 }, 'editor.mouseWheelZoom': { + 'markdownDescription': 'Zoom the font of the editor when using mouse wheel and holding `Ctrl`.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.mouseWheelZoom, - 'markdownDescription': 'Zoom the font of the editor when using mouse wheel and holding `Ctrl`.' + 'default': false }, - 'editor.cursorSmoothCaretAnimation': { + 'editor.multiCursorMergeOverlapping': { + 'description': 'Merge multiple cursors when they are overlapping.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.cursorSmoothCaretAnimation, - 'description': 'Controls whether the smooth caret animation should be enabled.' + 'default': true }, - 'editor.cursorStyle': { + 'editor.multiCursorModifier': { + 'markdownEnumDescriptions': [ + 'Maps to `Control` on Windows and Linux and to `Command` on macOS.', + 'Maps to `Alt` on Windows and Linux and to `Option` on macOS.' + ], + 'markdownDescription': 'The modifier to be used to add multiple cursors with the mouse. The Go To Definition and Open Link mouse gestures will adapt such that they do not conflict with the multicursor modifier. [Read more](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).', 'type': 'string', - 'enum': ['block', 'block-outline', 'line', 'line-thin', 'underline', 'underline-thin'], - 'default': 'line', - 'description': 'Controls the cursor style.' + 'enum': [ + 'ctrlCmd', + 'alt' + ], + 'default': 'alt' }, - 'editor.cursorWidth': { - 'type': 'integer', - 'default': EDITOR_DEFAULTS.viewInfo.cursorWidth, - 'markdownDescription': 'Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.' + 'editor.multiCursorPaste': { + 'markdownEnumDescriptions': [ + 'Each cursor pastes a single line of the text.', + 'Each cursor pastes the full text.' + ], + 'markdownDescription': 'Controls pasting when the line count of the pasted text matches the cursor count.', + 'type': 'string', + 'enum': [ + 'spread', + 'full' + ], + 'default': 'spread' }, - 'editor.fontLigatures': { + 'editor.occurrencesHighlight': { + 'description': 'Controls whether the editor should highlight semantic symbol occurrences.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.fontLigatures, - 'description': 'Enables/Disables font ligatures.' + 'default': true }, - 'editor.hideCursorInOverviewRuler': { + 'editor.overviewRulerBorder': { + 'description': 'Controls whether a border should be drawn around the overview ruler.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.hideCursorInOverviewRuler, - 'description': 'Controls whether the cursor should be hidden in the overview ruler.' + 'default': true }, - 'editor.renderWhitespace': { - 'type': 'string', - 'enum': ['none', 'boundary', 'selection', 'all'], - 'enumDescriptions': [ - '', - 'Render whitespace characters except for single spaces between words.', - 'Render whitespace characters only on selected text.', - '' + 'editor.parameterHints.enabled': { + 'type': 'boolean', + 'default': true, + 'description': 'Enables a pop-up that shows parameter documentation and type information as you type.' + }, + 'editor.parameterHints.cycle': { + 'type': 'boolean', + 'default': false, + 'description': 'Controls whether the parameter hints menu cycles or closes when reaching the end of the list.' + }, + 'editor.quickSuggestions': { + 'anyOf': [ + { + 'type': 'boolean' + }, + { + 'type': 'object', + 'properties': { + 'strings': { + 'type': 'boolean', + 'default': false, + 'description': 'Enable quick suggestions inside strings.' + }, + 'comments': { + 'type': 'boolean', + 'default': false, + 'description': 'Enable quick suggestions inside comments.' + }, + 'other': { + 'type': 'boolean', + 'default': true, + 'description': 'Enable quick suggestions outside of strings and comments.' + } + } + } ], - default: EDITOR_DEFAULTS.viewInfo.renderWhitespace, - description: 'Controls how the editor should render whitespace characters.' + 'default': { + 'other': true, + 'comments': false, + 'strings': false + }, + 'description': 'Controls whether suggestions should automatically show up while typing.' + }, + 'editor.quickSuggestionsDelay': { + 'description': 'Controls the delay in milliseconds after which quick suggestions will show up.', + 'type': 'integer', + 'default': 10, + 'minimum': 0, + 'maximum': 1073741824 }, 'editor.renderControlCharacters': { + 'description': 'Controls whether the editor should render control characters.', 'type': 'boolean', - default: EDITOR_DEFAULTS.viewInfo.renderControlCharacters, - description: 'Controls whether the editor should render control characters.' + 'default': false }, 'editor.renderIndentGuides': { + 'description': 'Controls whether the editor should render indent guides.', 'type': 'boolean', - default: EDITOR_DEFAULTS.viewInfo.renderIndentGuides, - description: 'Controls whether the editor should render indent guides.' + 'default': true }, - 'editor.highlightActiveIndentGuide': { + 'editor.renderFinalNewline': { + 'description': 'Render last line number when the file ends with a newline.', 'type': 'boolean', - default: EDITOR_DEFAULTS.viewInfo.highlightActiveIndentGuide, - description: 'Controls whether the editor should highlight the active indent guide.' + 'default': true }, 'editor.renderLineHighlight': { - 'type': 'string', - 'enum': ['none', 'gutter', 'line', 'all'], 'enumDescriptions': [ '', '', '', - 'Highlights both the gutter and the current line.', + 'Highlights both the gutter and the current line.' + ], + 'description': 'Controls how the editor should render the current line highlight.', + 'type': 'string', + 'enum': [ + 'none', + 'gutter', + 'line', + 'all' ], - default: EDITOR_DEFAULTS.viewInfo.renderLineHighlight, - description: 'Controls how the editor should render the current line highlight.' + 'default': 'line' }, - 'editor.codeLens': { + 'editor.renderWhitespace': { + 'enumDescriptions': [ + '', + 'Render whitespace characters except for single spaces between words.', + 'Render whitespace characters only on selected text.', + '' + ], + 'description': 'Controls how the editor should render whitespace characters.', + 'type': 'string', + 'enum': [ + 'none', + 'boundary', + 'selection', + 'all' + ], + 'default': 'none' + }, + 'editor.roundedSelection': { + 'description': 'Controls whether selections should have rounded corners.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.codeLens, - 'description': 'Controls whether the editor shows CodeLens.' + 'default': true }, - 'editor.folding': { + 'editor.rulers': { + 'type': 'array', + 'items': { + 'type': 'number' + }, + 'default': [], + 'description': 'Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.' + }, + 'editor.scrollBeyondLastColumn': { + 'description': 'Controls the number of extra characters beyond which the editor will scroll horizontally.', + 'type': 'integer', + 'default': 5, + 'minimum': 0, + 'maximum': 1073741824 + }, + 'editor.scrollBeyondLastLine': { + 'description': 'Controls whether the editor will scroll beyond the last line.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.folding, - 'description': 'Controls whether the editor has code folding enabled.' + 'default': true }, - 'editor.foldingStrategy': { - 'type': 'string', - 'enum': ['auto', 'indentation'], - 'default': EDITOR_DEFAULTS.contribInfo.foldingStrategy, - 'markdownDescription': 'Controls the strategy for computing folding ranges. `auto` uses a language specific folding strategy, if available. `indentation` uses the indentation based folding strategy.' + 'editor.selectionClipboard': { + 'description': 'Controls whether the Linux primary clipboard should be supported.', + 'included': platform.isLinux, + 'type': 'boolean', + 'default': true + }, + 'editor.selectionHighlight': { + 'description': 'Controls whether the editor should highlight matches similar to the selection.', + 'type': 'boolean', + 'default': true }, 'editor.showFoldingControls': { + 'description': 'Controls whether the fold controls on the gutter are automatically hidden.', 'type': 'string', - 'enum': ['always', 'mouseover'], - 'default': EDITOR_DEFAULTS.contribInfo.showFoldingControls, - 'description': 'Controls whether the fold controls on the gutter are automatically hidden.' + 'enum': [ + 'always', + 'mouseover' + ], + 'default': 'mouseover' }, - 'editor.matchBrackets': { + 'editor.showUnused': { + 'description': 'Controls fading out of unused code.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.matchBrackets, - 'description': 'Highlight matching brackets when one of them is selected.' + 'default': true }, - 'editor.glyphMargin': { + 'editor.snippetSuggestions': { + 'enumDescriptions': [ + 'Show snippet suggestions on top of other suggestions.', + 'Show snippet suggestions below other suggestions.', + 'Show snippets suggestions with other suggestions.', + 'Do not show snippet suggestions.' + ], + 'description': 'Controls whether snippets are shown with other suggestions and how they are sorted.', + 'type': 'string', + 'enum': [ + 'top', + 'bottom', + 'inline', + 'none' + ], + 'default': 'inline' + }, + 'editor.smoothScrolling': { + 'description': 'Controls whether the editor will scroll using an animation.', 'type': 'boolean', - 'default': EDITOR_DEFAULTS.viewInfo.glyphMargin, - 'description': 'Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.' + 'default': false }, - 'editor.useTabStops': { + 'editor.suggest.insertMode': { + 'type': 'string', + 'enum': [ + 'insert', + 'replace' + ], + 'enumDescriptions': [ + 'Insert suggestion without overwriting text right of the cursor.', + 'Insert suggestion and overwrite text right of the cursor.' + ], + 'default': 'insert', + 'description': 'Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.' + }, + 'editor.suggest.insertHighlight': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.useTabStops, - 'description': 'Inserting and deleting whitespace follows tab stops.' + 'default': false, + 'description': 'Controls whether unexpected text modifications while accepting completions should be highlighted, e.g `insertMode` is `replace` but the completion only supports `insert`.' }, - 'editor.trimAutoWhitespace': { + 'editor.suggest.filterGraceful': { 'type': 'boolean', - 'default': EDITOR_MODEL_DEFAULTS.trimAutoWhitespace, - 'description': 'Remove trailing auto inserted whitespace.' + 'default': true, + 'description': 'Controls whether filtering and sorting suggestions accounts for small typos.' }, - 'editor.stablePeek': { + 'editor.suggest.localityBonus': { 'type': 'boolean', 'default': false, - 'markdownDescription': 'Keep peek editors open even when double clicking their content or when hitting `Escape`.' + 'description': 'Controls whether sorting favours words that appear close to the cursor.' }, - 'editor.dragAndDrop': { + 'editor.suggest.shareSuggestSelections': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.dragAndDrop, - 'description': 'Controls whether the editor should allow moving selections via drag and drop.' + 'default': false, + 'markdownDescription': 'Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).' }, - 'editor.accessibilitySupport': { - 'type': 'string', - 'enum': ['auto', 'on', 'off'], - 'enumDescriptions': [ - 'The editor will use platform APIs to detect when a Screen Reader is attached.', - 'The editor will be permanently optimized for usage with a Screen Reader.', - 'The editor will never be optimized for usage with a Screen Reader.', - ], - 'default': EDITOR_DEFAULTS.accessibilitySupport, - 'description': 'Controls whether the editor should run in a mode where it is optimized for screen readers.' + 'editor.suggest.snippetsPreventQuickSuggestions': { + 'type': 'boolean', + 'default': true, + 'description': 'Control whether an active snippet prevents quick suggestions.' }, - 'editor.showUnused': { + 'editor.suggest.showIcons': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.showUnused, - 'description': 'Controls fading out of unused code.' + 'default': true, + 'description': 'Controls whether to show or hide icons in suggestions.' }, - 'editor.links': { + 'editor.suggest.maxVisibleSuggestions': { + 'type': 'number', + 'default': 12, + 'minimum': 1, + 'maximum': 15, + 'description': 'Controls how many suggestions IntelliSense will show before showing a scrollbar (maximum 15).' + }, + 'editor.suggest.filteredTypes': { + 'type': 'object', + 'default': {}, + 'deprecationMessage': 'This setting is deprecated, please use separate settings like `editor.suggest.showKeywords` or `editor.suggest.showSnippets` instead.' + }, + 'editor.suggest.showMethods': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.links, - 'description': 'Controls whether the editor should detect links and make them clickable.' + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `method`-suggestions.' }, - 'editor.colorDecorators': { + 'editor.suggest.showFunctions': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.colorDecorators, - 'description': 'Controls whether the editor should render the inline color decorators and color picker.' + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `function`-suggestions.' }, - 'editor.lightbulb.enabled': { + 'editor.suggest.showConstructors': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.lightbulbEnabled, - 'description': 'Enables the code action lightbulb in the editor.' + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `constructor`-suggestions.' }, - 'editor.maxTokenizationLineLength': { - 'type': 'integer', - 'default': 20_000, - 'description': 'Lines above this length will not be tokenized for performance reasons' + 'editor.suggest.showFields': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `field`-suggestions.' }, - 'editor.codeActionsOnSave': { - 'type': 'object', - 'properties': { - 'source.organizeImports': { - 'type': 'boolean', - 'description': 'Controls whether organize imports action should be run on file save.' - }, - 'source.fixAll': { - 'type': 'boolean', - 'description': 'Controls whether auto fix action should be run on file save.' - } - }, - 'additionalProperties': { - 'type': 'boolean' - }, - 'default': EDITOR_DEFAULTS.contribInfo.codeActionsOnSave, - 'description': 'Code action kinds to be run on save.' + 'editor.suggest.showVariables': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `variable`-suggestions.' }, - 'editor.codeActionsOnSaveTimeout': { - 'type': 'number', - 'default': EDITOR_DEFAULTS.contribInfo.codeActionsOnSaveTimeout, - 'description': 'Timeout in milliseconds after which the code actions that are run on save are cancelled.' + 'editor.suggest.showClasses': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `class`-suggestions.' }, - 'editor.selectionClipboard': { + 'editor.suggest.showStructs': { 'type': 'boolean', - 'default': EDITOR_DEFAULTS.contribInfo.selectionClipboard, - 'description': 'Controls whether the Linux primary clipboard should be supported.', - 'included': platform.isLinux + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `struct`-suggestions.' }, - 'diffEditor.renderSideBySide': { + 'editor.suggest.showInterfaces': { 'type': 'boolean', 'default': true, - 'description': 'Controls whether the diff editor shows the diff side by side or inline.' + 'markdownDescription': 'When enabled IntelliSense shows `interface`-suggestions.' }, - 'diffEditor.ignoreTrimWhitespace': { + 'editor.suggest.showModules': { 'type': 'boolean', 'default': true, - 'description': 'Controls whether the diff editor shows changes in leading or trailing whitespace as diffs.' + 'markdownDescription': 'When enabled IntelliSense shows `module`-suggestions.' }, - 'editor.largeFileOptimizations': { + 'editor.suggest.showProperties': { 'type': 'boolean', - 'default': EDITOR_MODEL_DEFAULTS.largeFileOptimizations, - 'description': 'Special handling for large files to disable certain memory intensive features.' + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `property`-suggestions.' }, - 'diffEditor.renderIndicators': { + 'editor.suggest.showEvents': { 'type': 'boolean', 'default': true, - 'description': 'Controls whether the diff editor shows +/- indicators for added/removed changes.' + 'markdownDescription': 'When enabled IntelliSense shows `event`-suggestions.' + }, + 'editor.suggest.showOperators': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `operator`-suggestions.' + }, + 'editor.suggest.showUnits': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `unit`-suggestions.' + }, + 'editor.suggest.showValues': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `value`-suggestions.' + }, + 'editor.suggest.showConstants': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `constant`-suggestions.' + }, + 'editor.suggest.showEnums': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `enum`-suggestions.' + }, + 'editor.suggest.showEnumMembers': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `enumMember`-suggestions.' + }, + 'editor.suggest.showKeywords': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `keyword`-suggestions.' + }, + 'editor.suggest.showWords': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `text`-suggestions.' + }, + 'editor.suggest.showColors': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `color`-suggestions.' + }, + 'editor.suggest.showFiles': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `file`-suggestions.' + }, + 'editor.suggest.showReferences': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `reference`-suggestions.' + }, + 'editor.suggest.showCustomcolors': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `customcolor`-suggestions.' + }, + 'editor.suggest.showFolders': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `folder`-suggestions.' + }, + 'editor.suggest.showTypeParameters': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `typeParameter`-suggestions.' + }, + 'editor.suggest.showSnippets': { + 'type': 'boolean', + 'default': true, + 'markdownDescription': 'When enabled IntelliSense shows `snippet`-suggestions.' + }, + 'editor.suggestFontSize': { + 'markdownDescription': 'Font size for the suggest widget. When set to `0`, the value of `#editor.fontSize#` is used.', + 'type': 'integer', + 'default': 0, + 'minimum': 0, + 'maximum': 1000 + }, + 'editor.suggestLineHeight': { + 'markdownDescription': 'Line height for the suggest widget. When set to `0`, the value of `#editor.lineHeight#` is used.', + 'type': 'integer', + 'default': 0, + 'minimum': 0, + 'maximum': 1000 + }, + 'editor.suggestOnTriggerCharacters': { + 'description': 'Controls whether suggestions should automatically show up when typing trigger characters.', + 'type': 'boolean', + 'default': true + }, + 'editor.suggestSelection': { + 'markdownEnumDescriptions': [ + 'Always select the first suggestion.', + 'Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.', + 'Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.' + ], + 'description': 'Controls how suggestions are pre-selected when showing the suggest list.', + 'type': 'string', + 'enum': [ + 'first', + 'recentlyUsed', + 'recentlyUsedByPrefix' + ], + 'default': 'recentlyUsed' + }, + 'editor.tabCompletion': { + 'enumDescriptions': [ + 'Tab complete will insert the best matching suggestion when pressing tab.', + 'Disable tab completions.', + 'Tab complete snippets when their prefix match. Works best when `quickSuggestions` aren\'t enabled.' + ], + 'description': 'Enables tab completions.', + 'type': 'string', + 'enum': [ + 'on', + 'off', + 'onlySnippets' + ], + 'default': 'off' + }, + 'editor.useTabStops': { + 'description': 'Inserting and deleting whitespace follows tab stops.', + 'type': 'boolean', + 'default': true + }, + 'editor.wordSeparators': { + 'description': 'Characters that will be used as word separators when doing word related navigations or operations.', + 'type': 'string', + 'default': '`~!@#$%^&*()-=+[{]}\\|;:\'",.<>/?' + }, + 'editor.wordWrap': { + 'markdownEnumDescriptions': [ + 'Lines will never wrap.', + 'Lines will wrap at the viewport width.', + 'Lines will wrap at `#editor.wordWrapColumn#`.', + 'Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.' + ], + 'description': 'Controls how lines should wrap.', + 'type': 'string', + 'enum': [ + 'off', + 'on', + 'wordWrapColumn', + 'bounded' + ], + 'default': 'off' + }, + 'editor.wordWrapColumn': { + 'markdownDescription': 'Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.', + 'type': 'integer', + 'default': 80, + 'minimum': 1, + 'maximum': 1073741824 + }, + 'editor.wrappingIndent': { + 'enumDescriptions': [ + 'No indentation. Wrapped lines begin at column 1.', + 'Wrapped lines get the same indentation as the parent.', + 'Wrapped lines get +1 indentation toward the parent.', + 'Wrapped lines get +2 indentation toward the parent.' + ], + 'description': 'Controls the indentation of wrapped lines.', + 'type': 'string', + 'enum': [ + 'none', + 'same', + 'indent', + 'deepIndent' + ], + 'default': 'same' } }; /* eslint-enable max-len */