Settings
Settings live in settings.json, the same file and format as in VS Code. Open it with the
Preferences: Open User Settings (JSON) command, or find it on disk at
~/.diode/user-data/User/settings.json (a named profile keeps its own copy under
User/profiles/<profile>/; --user-data-dir moves the whole tree). A .diode/settings.json in the
opened folder overrides it per workspace (Diode doesn’t read .vscode/, see
differences). How settings resolve and merge is described in the
VS Code settings documentation.
The list below is what Diode itself understands: the editor’s own settings and the ones
contributed by its builtin extensions. It is generated from the editor’s source, the same catalog
that completes keys in settings.json. Extensions you install add their own settings on top; a
VS Code setting missing here has no effect in Diode yet.
- diode.icons.nerdFontstring
Controls whether icons are drawn with Nerd Font glyphs. Use
offwhen the terminal font has no Nerd Font symbols: icons fall back to plain Unicode characters and file icons are hidden.- default
"auto"- values
"auto""on""off"
- diode.lsp.typescript.enabledboolean
Master switch for the built-in TypeScript language server integration.
- default
true
Path to a typescript-language-server executable or its JS entry point. Empty resolves from the workspace node_modules, then PATH.
- default
""
Path to typescript/lib/tsserver.js for workspaces without their own TypeScript installation. Empty lets the language server resolve TypeScript itself.
- default
""
- editor.codeActionsOnSaveobject | array
Code action kinds to be run on save (e.g.
{"source.fixAll": true}). Kinds match hierarchically:source.fixAllalso runssource.fixAll.ruff.- default
{}
- editor.colorDecoratorsboolean
Controls whether the editor should render the inline color decorators and color picker.
- default
true
- editor.colorDecoratorsLimitinteger
Controls the max number of color decorators that can be rendered in an editor at once.
- default
500
- editor.cursorBlinkingstring
Control the cursor animation style.
- default
"blink"- values
"blink""smooth""phase""expand""solid"
- editor.cursorStylestring
Controls the cursor style in insert input mode. When not set, the cursor keeps the shape configured in the terminal.
- values
"line""block""underline""line-thin""block-outline""underline-thin"
Controls the minimal number of visible leading lines around the cursor.
- default
3
Controls whether inline color decorations should be shown using the default document color provider.
- default
"auto"- values
"auto""always""never"
- editor.detectIndentationboolean
Controls whether
editor.tabSizeandeditor.insertSpacesare automatically detected from the file contents when a file is opened.- default
true
Controls whether copying without a selection copies the current line.
- default
true
The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.
- default
5000
- editor.formatOnSaveboolean
Format a file on save. A formatter must be available (an extension providing it).
- default
false
Milliseconds to wait after a change before automatically requesting an inline suggestion. 0 requests on every change; higher values spare a slow or metered provider.
- default
50
- editor.inlineSuggest.enabledboolean
Controls whether to automatically show inline suggestions in the editor.
- default
true
Milliseconds to wait for an inline suggestion provider to answer. After that the request is given up on and no suggestion is shown.
- default
5000
Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.
- default
false
- editor.insertSpacesboolean
Insert spaces when pressing Tab.
- default
true
The number of lines above which a file is treated as large when
editor.largeFileOptimizationsis on.- default
300000
Special handling for large files to disable certain memory intensive features.
- default
true
The size in megabytes above which a file is treated as large when
editor.largeFileOptimizationsis on: it opens read-only with tokenization, wrapping, folding, word highlighting, quick diff and extension sync turned off.- default
20
Controls whether the editor highlights semantic symbol occurrences.
- default
"singleFile"- values
"off""singleFile""multiFile"
- editor.quickSuggestionsboolean | string | object
Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the
editor.suggestOnTriggerCharacters-setting which controls if suggestions are triggered by special characters.- default
{"other":"offWhenInlineCompletions","comments":"off","strings":"off"}
Controls the delay in milliseconds after which quick suggestions will show up.
- default
10
- editor.scrollbarMarkersstring
Controls where the editor marks what the file has highlighted (problems, find matches, source control changes, occurrences of the word under the cursor) along the scrollbar.
- default
"auto"- values
"off""auto""inside""outside"
- editor.semanticHighlighting.enabledboolean | string
Controls whether the semanticHighlighting is shown for the languages that support it.
- default
"configuredByTheme"- values
truefalse"configuredByTheme"
Whether leading and trailing whitespace should always be selected.
- default
true
Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected.
- default
true
Controls whether suggestions should automatically show up when typing trigger characters.
- default
true
- editor.tabSizenumber
The number of spaces a tab is equal to.
- default
4
Controls whether completions should be computed based on words in the document and from which documents they are computed.
- default
"offWithInlineSuggestions"- values
"off""offWithInlineSuggestions""currentDocument""matchingDocuments""allDocuments"
- editor.wordWrapstring
Controls how lines should wrap: never ('off'), at the viewport width ('on'), or at
editor.wordWrapColumn('wordWrapColumn'/'bounded'; both are capped by the viewport width).- default
"off"- values
"off""on""wordWrapColumn""bounded"
- editor.wordWrapColumnnumber
Controls the wrapping column when
editor.wordWrapis 'wordWrapColumn' or 'bounded'.- default
80
- explorer.autoRevealboolean
Automatically reveal and select the active file in the explorer tree.
- default
true
- explorer.compactFoldersboolean
Controls whether the Explorer should render folders in a compact form. In such a form, single child folders will be compressed in a combined tree element. Useful for Java package structures, for example.
- default
true
- explorer.confirmDeleteboolean
Ask for confirmation before deleting a file via the explorer.
- default
true
- explorer.confirmUndoboolean
Ask for confirmation before undoing a destructive file operation.
- default
true
- explorer.decorations.badgesboolean
Controls whether file decorations should use badges.
- default
true
- explorer.decorations.colorsboolean
Controls whether file decorations should use colors.
- default
true
- extensions.autoCheckUpdatesboolean
When enabled, automatically checks extensions for updates. If an extension has an update, it is marked as outdated in the Extensions view. The updates are fetched from the extension registry.
- default
true
- extensions.autoUpdatestring | boolean
Controls the automatic update behavior of extensions. The updates are fetched from the extension registry.
- default
"on"- values
"on""off"truefalse
Controls the delay in hours after an extension update is published before it is automatically installed. Only applies when
extensions.autoUpdateis set toon. This delay helps avoid installing potentially problematic updates immediately after release.- default
2
When an extension is listed here, a confirmation prompt will not be shown when that extension handles a URI.
- default
[]
- files.autoSavestring
Controls [auto save](https://code.visualstudio.com/docs/editor/codebasics#_save-auto-save) of editors that have unsaved changes.
- default
"off"- values
"off""afterDelay""onFocusChange""onWindowChange"
- files.enableTrashboolean
Move files to the OS trash when available; when disabled, delete permanently.
- default
true
- files.excludeobject
Glob patterns to hide from the file tree and from search. Matched relative to the folder.
- default
{"**/.git":true,"**/.svn":true,"**/.hg":true,"**/.DS_Store":true,"**/Thumbs.db":true,"**/__pycache__":true,"**/.mypy_cache":true,"**/.pytest_cache":true,"**/.ruff_cache":true}
- files.insertFinalNewlineboolean
When enabled, insert a final new line at the end of the file when saving it.
- default
false
- files.refactoring.autoSaveboolean
Controls if files that were part of a refactoring are saved automatically
- default
true
- files.trimFinalNewlinesboolean
When enabled, will trim all new lines after the final new line at the end of the file when saving it.
- default
false
- files.trimTrailingWhitespaceboolean
When enabled, will trim trailing whitespace when saving a file.
- default
false
When enabled, trailing whitespace will be removed from multiline strings and regexes on save or when executing 'editor.action.trimTrailingWhitespace'. This can cause whitespace to not be trimmed from lines when there isn't up-to-date token information.
- default
true
- files.watcherExcludeobject
Glob patterns to exclude from file watching. Patterns are matched relative to the watched folder.
- default
{"**/.git":true,"**/.hg":true,"**/.svn":true,"**/node_modules":true,"**/.venv":true,"**/dist":true,"**/out":true,"**/build":true,"**/target":true,"**/coverage":true,"**/.cache":true,"**/.gradle":true,"**/.next":true,"**/.turbo":true,"**/__pycache__":true,"**/.mypy_cache":true,"**/.pytest_cache":true,"**/.ruff_cache":true,"**/.stryker-tmp":true,"**/.claude/worktrees":true}
- files.watcherIncludearray
Configure extra paths to watch for changes inside the workspace. By default, all workspace folders will be watched recursively, except for folders that are symbolic links. You can explicitly add absolute or relative paths to support watching folders that are symbolic links. Relative paths will be resolved to an absolute path using the currently opened workspace.
- default
[]
- git.autorefreshboolean
Recompute git status automatically when files change on disk.
- default
true
- git.decorations.enabledboolean
Colour and badge changed files in the explorer tree.
- default
true
- git.enabledboolean
Master switch for the built-in Git integration.
- default
true
- git.gutter.enabledboolean
Show dirty-diff change bars in the editor gutter.
- default
true
- git.pathstring
Path to a git binary to prefer (its directory is prepended to PATH). Empty uses git from PATH.
- default
""
- git.refreshDebouncenumber
Debounce, in milliseconds, before recomputing git status and diff after a change.
- default
200
- keyboard.platformstring
Keyboard platform: "auto" detects it (LC_DIODE_PLATFORM, the terminal, the local OS); set it when detection guesses wrong, e.g. over ssh from a Mac.
- default
"auto"- values
"auto""mac""linux""windows"
- scm.graph.pageSizenumber
The number of commits to load in the Source Control Graph view at a time (clamped to 1..1000).
- default
50
- search.excludeobject
Glob patterns to exclude from search, in addition to files.exclude. Matched relative to the folder.
- default
{"**/node_modules":true,"**/bower_components":true,"**/.venv":true,"**/dist":true,"**/out":true,"**/build":true,"**/target":true,"**/coverage":true,"**/.next":true,"**/.gradle":true,"**/.cache":true,"**/.turbo":true,"**/.stryker-tmp":true,"**/.claude/worktrees":true}
- search.useGlobalIgnoreFilesboolean
Controls whether to use your global gitignore file (for example, from
$HOME/.config/git/ignore) when searching for files. Requiressearch.useIgnoreFilesto be enabled.- default
false
- search.useIgnoreFilesboolean
Controls whether to use
.gitignoreand.ignorefiles when searching for files.- default
true
- search.useParentIgnoreFilesboolean
Controls whether to use
.gitignoreand.ignorefiles in parent directories when searching for files. Requiressearch.useIgnoreFilesto be enabled.- default
false
- task.autoDetectstring
Controls enablement of
provideTasksfor all task provider extension. If the Tasks: Run Task command is slow, disabling auto detect for task providers may help. Individual extensions may also provide settings that disable auto detection.- default
"on"- values
"on""off"
- task.quickOpen.detailboolean
Controls whether to show the task detail for tasks that have a detail in task quick picks, such as Run Task.
- default
true
- task.quickOpen.skipboolean
Controls whether the task quick pick is skipped when there is only one task to pick from.
- default
false
- task.saveBeforeRunstring
Save all dirty editors before running a task.
- default
"always"- values
"always""never""prompt"
- task.slowProviderWarningboolean | array
Configures whether a warning is shown when a provider is slow
- default
true
- task.verboseLoggingboolean
Enable verbose logging for tasks.
- default
false
- terminal.capabilitiesobject
Force individual terminal capabilities on or off; empty uses detection.
- default
{}
- terminal.customModesobject
Declare custom manual-only terminal modes usable in when-clauses.
- default
{}
Whether or not to allow chord keybindings in the terminal. Note that when this is true and the keystroke results in a chord it will bypass
terminal.integrated.commandsToSkipShell, setting this to false is particularly useful when you want ctrl+k to go to your shell (not VS Code).- default
true
Whether to allow menubar mnemonics (for example Alt+F) to trigger the open of the menubar. Note that this will cause all alt keystrokes to skip the shell when true. This does nothing on macOS.
- default
false
Controls where the integrated terminal takes its 16 ANSI colors and its default background and foreground from.
- default
"theme"- values
"theme""host"
A set of command IDs whose keybindings will not be sent to the shell but instead always be handled by VS Code. This allows keybindings that would normally be consumed by the shell to act instead the same as when the terminal is not focused, for example
Ctrl+Pto launch Quick Open. Many commands are skipped by default. To override a default and pass that command's keybinding to the shell instead, add the command prefixed with the-character. For example add-workbench.action.quickOpento allowCtrl+Pto reach the shell. The following list of default skipped commands is truncated when viewed in Settings Editor. To see the full list, [open the default settings JSON](command:workbench.action.openRawDefaultSettings 'Open Default Settings (JSON)') and search for the first command from the list below. Default Skipped Commands: - editor.action.accessibilityHelp - editor.action.toggleTabFocusMode - notification.acceptPrimaryAction - notifications.hideList - notifications.hideToasts - runCommands - sessions.focusActiveSession - sessions.focusSessionInGrid1 - sessions.focusSessionInGrid2 - sessions.focusSessionInGrid3 - sessions.focusSessionInGrid4 - sessions.focusSessionInGrid5 - sessions.focusSessionInGrid6 - sessions.focusSessionInGrid7 - sessions.focusSessionInGrid8 - sessions.focusSessionInGrid9 - sessions.goBack - sessions.goForward - sessionsViewPane.navigateNextSession - sessionsViewPane.navigatePreviousSession - workbench.action.closeQuickOpen - workbench.action.debug.continue - workbench.action.debug.disconnect - workbench.action.debug.pause - workbench.action.debug.restart - workbench.action.debug.run - workbench.action.debug.start - workbench.action.debug.stepInto - workbench.action.debug.stepOut - workbench.action.debug.stepOver - workbench.action.debug.stop - workbench.action.firstEditorInGroup - workbench.action.focusActiveEditorGroup - workbench.action.focusEighthEditorGroup - workbench.action.focusFifthEditorGroup - workbench.action.focusFirstEditorGroup - workbench.action.focusFourthEditorGroup - workbench.action.focusLastEditorGroup - workbench.action.focusNextPart - workbench.action.focusPreviousPart - workbench.action.focusSecondEditorGroup - workbench.action.focusSeventhEditorGroup - workbench.action.focusSixthEditorGroup - workbench.action.focusThirdEditorGroup - workbench.action.lastEditorInGroup - workbench.action.navigateDown - workbench.action.navigateLeft - workbench.action.navigateRight - workbench.action.navigateUp - workbench.action.nextEditor - workbench.action.nextEditorInGroup - workbench.action.nextPanelView - workbench.action.nextSideBarView - workbench.action.openNextRecentlyUsedEditor - workbench.action.openNextRecentlyUsedEditorInGroup - workbench.action.openPreviousRecentlyUsedEditor - workbench.action.openPreviousRecentlyUsedEditorInGroup - workbench.action.previousEditor - workbench.action.previousEditorInGroup - workbench.action.previousPanelView - workbench.action.previousSideBarView - workbench.action.quickOpen - workbench.action.quickOpenLeastRecentlyUsedEditor - workbench.action.quickOpenLeastRecentlyUsedEditorInGroup - workbench.action.quickOpenPreviousEditor - workbench.action.quickOpenPreviousRecentlyUsedEditor - workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup - workbench.action.quickOpenView - workbench.action.showCommands - workbench.action.tasks.build - workbench.action.tasks.reRunTask - workbench.action.tasks.rerunForActiveTerminal - workbench.action.tasks.restartTask - workbench.action.tasks.runTask - workbench.action.tasks.showLog - workbench.action.tasks.showTasks - workbench.action.tasks.terminate - workbench.action.tasks.test - workbench.action.terminal.acceptSelectedSuggestion - workbench.action.terminal.acceptSelectedSuggestionEnter - workbench.action.terminal.chat.cancel - workbench.action.terminal.chat.close - workbench.action.terminal.chat.discard - workbench.action.terminal.chat.feedbackHelpful - workbench.action.terminal.chat.feedbackReportIssue - workbench.action.terminal.chat.feedbackUnhelpful - workbench.action.terminal.chat.insertCommand - workbench.action.terminal.chat.makeRequest - workbench.action.terminal.chat.runCommand - workbench.action.terminal.chat.start - workbench.action.terminal.chat.viewInChat - workbench.action.terminal.clear - workbench.action.terminal.clearSelection - workbench.action.terminal.copyAndClearSelection - workbench.action.terminal.copyLastCommand - workbench.action.terminal.copyLastCommandAndLastCommandOutput - workbench.action.terminal.copyLastCommandOutput - workbench.action.terminal.copySelection - workbench.action.terminal.copySelectionAsHtml - workbench.action.terminal.deleteToLineStart - workbench.action.terminal.deleteWordLeft - workbench.action.terminal.deleteWordRight - workbench.action.terminal.findNext - workbench.action.terminal.findPrevious - workbench.action.terminal.focus - workbench.action.terminal.focusAccessibleBuffer - workbench.action.terminal.focusAtIndex1 - workbench.action.terminal.focusAtIndex2 - workbench.action.terminal.focusAtIndex3 - workbench.action.terminal.focusAtIndex4 - workbench.action.terminal.focusAtIndex5 - workbench.action.terminal.focusAtIndex6 - workbench.action.terminal.focusAtIndex7 - workbench.action.terminal.focusAtIndex8 - workbench.action.terminal.focusAtIndex9 - workbench.action.terminal.focusFind - workbench.action.terminal.focusHover - workbench.action.terminal.focusNext - workbench.action.terminal.focusNextPane - workbench.action.terminal.focusPrevious - workbench.action.terminal.focusPreviousPane - workbench.action.terminal.goToRecentDirectory - workbench.action.terminal.hideFind - workbench.action.terminal.hideSuggestWidget - workbench.action.terminal.kill - workbench.action.terminal.killEditor - workbench.action.terminal.moveToEditor - workbench.action.terminal.moveToLineEnd - workbench.action.terminal.moveToLineStart - workbench.action.terminal.moveToTerminalPanel - workbench.action.terminal.new - workbench.action.terminal.newInActiveWorkspace - workbench.action.terminal.newInNewWindow - workbench.action.terminal.paste - workbench.action.terminal.pastePwsh - workbench.action.terminal.pasteSelection - workbench.action.terminal.resizePaneDown - workbench.action.terminal.resizePaneLeft - workbench.action.terminal.resizePaneRight - workbench.action.terminal.resizePaneUp - workbench.action.terminal.runActiveFile - workbench.action.terminal.runRecentCommand - workbench.action.terminal.runSelectedText - workbench.action.terminal.scrollDown - workbench.action.terminal.scrollDownPage - workbench.action.terminal.scrollToBottom - workbench.action.terminal.scrollToNextCommand - workbench.action.terminal.scrollToPreviousCommand - workbench.action.terminal.scrollToTop - workbench.action.terminal.scrollUp - workbench.action.terminal.scrollUpPage - workbench.action.terminal.searchWorkspace - workbench.action.terminal.selectAll - workbench.action.terminal.selectNextPageSuggestion - workbench.action.terminal.selectNextSuggestion - workbench.action.terminal.selectPrevPageSuggestion - workbench.action.terminal.selectPrevSuggestion - workbench.action.terminal.selectToNextCommand - workbench.action.terminal.selectToNextLine - workbench.action.terminal.selectToPreviousCommand - workbench.action.terminal.selectToPreviousLine - workbench.action.terminal.sendSequence - workbench.action.terminal.sendSignal - workbench.action.terminal.sizeToContentWidth - workbench.action.terminal.split - workbench.action.terminal.splitInActiveWorkspace - workbench.action.terminal.stopVoice - workbench.action.terminal.suggestToggleDetails - workbench.action.terminal.suggestToggleDetailsFocus - workbench.action.terminal.toggleFindCaseSensitive - workbench.action.terminal.toggleFindRegex - workbench.action.terminal.toggleFindWholeWord - workbench.action.terminal.toggleTerminal - workbench.action.terminal.triggerSuggest - workbench.action.toggleFullScreen - workbench.action.toggleMaximizedPanel - workbench.action.togglePanel - workbench.action.zoomIn - workbench.action.zoomOut - workbench.action.zoomReset- default
[]
Controls where newly created terminals will appear.
- default
"view"- values
"editor""view"
Whether to enable file links in terminals. Links can be slow when working on a network drive in particular because each file link is verified against the file system. Changing this will take effect only in new terminals.
- default
"on"- values
"off""on""notRemote"
Whether to enable the kitty keyboard protocol, which allows a program in the terminal to request more detailed keyboard input reporting. This can, for example, enable
Shift+Enterto be handled by the program.- default
true
Whether to hide the terminal view when the last terminal is closed. This will only happen when the terminal is the only visible view in the view container.
- default
true
Dispatches most keybindings to the terminal instead of the workbench, overriding
terminal.integrated.commandsToSkipShell, which can be used alternatively for fine tuning.- default
false
Controls whether terminal tabs display as a list to the side of the terminal. When this is disabled a dropdown will display instead.
- default
true
Controls whether focusing the terminal of a tab happens on double or single click.
- default
"doubleClick"- values
"singleClick""doubleClick"
Controls whether the terminal tabs view will hide under certain conditions.
- default
"singleTerminal"- values
"never""singleTerminal""singleGroup"
Controls the location of the terminal tabs, either to the left or right of the actual terminal(s).
- default
"right"- values
"left""right"
Shows the active terminal information in the view. This is particularly useful when the title within the tabs aren't visible.
- default
"singleTerminalOrNarrow"- values
"always""singleTerminal""singleTerminalOrNarrow""never"
- terminal.modesobject
Force terminal modes on or off; wins over auto-detection.
- default
{}
- terminal.tierstring
Tier override: "auto" detects the terminal capabilities tier.
- default
"auto"- values
"auto""legacy""csi-u""kitty"
- window.autoDetectColorSchemeboolean
If enabled, will automatically select a color theme based on the system color mode. If the system color mode is dark,
workbench.preferredDarkColorThemeis used, elseworkbench.preferredLightColorTheme.- default
false
- workbench.colorThemestring
Specifies the color theme used in the workbench when
window.autoDetectColorSchemeis not enabled.- default
"Dark Modern"- values
"Dark 2026""Dark Modern""Dark+""Monokai""Light Modern""Light+"
If an editor matching one of the listed types is opened as the first in an editor group and more than one group is open, the group is automatically locked. Locked groups will only be used for opening editors when explicitly chosen by a user gesture (for example drag and drop), but not by default. Consequently, the active editor in a locked group is less likely to be replaced accidentally with a different editor.
- default
{"default":false,"terminalEditor":true}
Controls whether editors showing a file that was opened during the session should close automatically when getting deleted or renamed by some other process. Disabling this will keep the editor open on such an event. Note that deleting from within the application will always close the editor and that editors with unsaved changes will never close to preserve your data.
- default
false
Controls where the editor actions are shown.
- default
"default"- values
"default""titleBar""hidden"
Controls whether preview mode is used when editors open. There is a maximum of one preview mode editor per editor group. Its contents will be replaced by the next editor opened in preview mode. Making a change in a preview mode editor will persist it, as will the 'Keep Open' option in its tab context menu.
- default
true
- workbench.list.openModestring
Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.
- default
"singleClick"- values
"singleClick""doubleClick"
Specifies the color theme when system color mode is dark and
window.autoDetectColorSchemeis enabled.- default
"Dark Modern"- values
"Dark 2026""Dark Modern""Dark+""Monokai""Light Modern""Light+"
Specifies the color theme when system color mode is light and
window.autoDetectColorSchemeis enabled.- default
"Light Modern"- values
"Dark 2026""Dark Modern""Dark+""Monokai""Light Modern""Light+"
Controls the hover feedback delay in milliseconds of the dragging area in between views/editors.
- default
0
Controls the default visibility of the secondary side bar in workspaces or empty windows that are opened for the first time. Can be overridden by the agent sessions startup editor setting.
- default
"visibleInWorkspace"- values
"hidden""visibleInWorkspace""visible""maximizedInWorkspace""maximized"
Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.
- default
"singleClick"- values
"singleClick""doubleClick"
Controls whether the tree should render indent guides.
- default
"onHover"- values
"none""onHover""always"
No settings match.