Documentation

Configuration Options Reference

This reference documents all available configuration options in ThinkCode. These settings can be adjusted through the Settings UI or by directly editing the settings.json file. Understanding these options allows you to customize ThinkCode to match your preferences and workflow.

How to Access Settings

There are several ways to access and modify ThinkCode settings:

  1. Settings UI: Open the Command Palette (Ctrl+Shift+P / ⌘+Shift+P) and type "Preferences: Open Settings"
  2. settings.json: Open the Command Palette and type "Preferences: Open Settings (JSON)"
  3. Keyboard Shortcut: Press Ctrl+, (⌘+, on macOS)

Levels of Settings

ThinkCode has three levels of settings, in order of precedence:

  1. Default Settings: Built-in settings that serve as fallbacks
  2. User Settings: Global settings that apply to all workspaces
  3. Workspace Settings: Specific to the current workspace (stored in .thinkcode/settings.json)

General Settings

SettingDescriptionDefaultType
window.titleCustomize the window title${activeEditorShort}${separator}${rootName}string
window.zoomLevelAdjust the zoom level of the window0number
window.menuBarVisibilityControl menu bar visibility"classic"string
window.newWindowDimensionsControl dimensions for new windows"default"string
window.restoreWindowsControl how windows are restored"all"string
window.closeWhenEmptyClose window when last editor is closedfalseboolean
window.autoDetectColorSchemeAutomatically switch between light/dark themesfalseboolean
window.dialogStyleControl the style of dialogs"native"string

Editor Settings

Appearance

SettingDescriptionDefaultType
editor.fontFamilyFont family for the editor"Menlo, Monaco, 'Courier New', monospace"string
editor.fontSizeFont size in pixels14number
editor.lineHeightLine height as a multiplier0 (auto)number
editor.letterSpacingLetter spacing in pixels0number
editor.fontWeightFont weight"normal"string
editor.fontLigaturesEnable/disable font ligaturesfalseboolean
editor.lineNumbersControl line number display"on"string
editor.rulersVertical rulers (in character columns)[]array
editor.minimap.enabledShow/hide the minimaptrueboolean
editor.minimap.sideWhich side to render the minimap"right"string
editor.minimap.showSliderAlways show the minimap slider"mouseover"string
editor.minimap.maxColumnMaximum number of columns in minimap120number
editor.minimap.renderCharactersRender characters or blockstrueboolean
editor.smoothScrollingEnable smooth scrollingfalseboolean
editor.cursorBlinkingControl cursor blinking"blink"string
editor.cursorStyleControl cursor style"line"string
editor.cursorWidthWidth of the cursor when cursorStyle is "line"0number

Behavior

SettingDescriptionDefaultType
editor.tabSizeNumber of spaces a tab equals4number
editor.insertSpacesUse spaces instead of tabstrueboolean
editor.detectIndentationAuto-detect indentationtrueboolean
editor.trimAutoWhitespaceRemove trailing whitespacetrueboolean
editor.wordWrapControl word wrapping"off"string
editor.wordWrapColumnColumn where to wrap when wordWrap is "wordWrapColumn"80number
editor.wrappingIndentIndentation of wrapped lines"same"string
editor.multiCursorModifierModifier key for adding multiple cursors"alt"string
editor.autoClosingBracketsAuto-close brackets"languageDefined"string
editor.autoIndentAuto-indent on new lines"advanced"string
editor.formatOnTypeFormat line after typingfalseboolean
editor.formatOnPasteFormat pasted textfalseboolean
editor.formatOnSaveFormat document on savefalseboolean
editor.formatOnSaveModeWhat to format on save"file"string
editor.linkedEditingAuto-rename paired HTML/XML tagsfalseboolean
editor.bracketPairColorization.enabledEnable/disable bracket pair colorizationtrueboolean
editor.guides.bracketPairsControl bracket pair guides"active"string
editor.guides.indentationShow indentation guidestrueboolean

Suggestions and Intellisense

SettingDescriptionDefaultType
editor.quickSuggestionsControl when to show quick suggestions{ "other": true, "comments": false, "strings": false }object
editor.suggestOnTriggerCharactersTrigger suggestions on special characterstrueboolean
editor.acceptSuggestionOnEnterAccept suggestion on Enter"on"string
editor.acceptSuggestionOnCommitCharacterAccept suggestion on commit characterstrueboolean
editor.snippetSuggestionsControl snippet suggestions"inline"string
editor.hover.enabledEnable hovertrueboolean
editor.hover.delayDelay in milliseconds300number
editor.parameterHints.enabledEnable parameter hintstrueboolean
editor.codeLensEnable/disable CodeLenstrueboolean
editor.foldingEnable/disable code foldingtrueboolean
editor.foldingStrategyControl folding strategy"auto"string

AI Assistant Settings

SettingDescriptionDefaultType
ai.enabledEnable/disable AI featurestrueboolean
ai.defaultModelDefault AI model to use"thinkcode-default"string
ai.inlineCompletions.enabledShow inline completionstrueboolean
ai.inlineCompletions.delayDelay before showing inline completions (ms)100number
ai.contextLengthMaximum context length for AI operations8000number
ai.customEndpointCustom AI service endpoint URL""string
ai.apiKeyAPI key for custom AI services""string
ai.automaticContextCollectionAutomatically collect contexttrueboolean
ai.chatModelModel to use for chat interactions"thinkcode-chat"string
ai.codeModelModel to use for code generation"thinkcode-code"string
ai.autoTriggerThresholdCharacter threshold before auto-triggering3number
ai.telemetryLevelLevel of AI telemetry to collect"basic"string

Workbench Settings

SettingDescriptionDefaultType
workbench.colorThemeColor theme"ThinkCode Dark"string
workbench.iconThemeFile icon theme"thinkcode-icons"string
workbench.activityBar.visibleShow/hide activity bartrueboolean
workbench.sideBar.locationSide bar location"left"string
workbench.statusBar.visibleShow/hide status bartrueboolean
workbench.editor.showTabsShow/hide editor tabstrueboolean
workbench.editor.tabSizingControl tab sizing"fit"string
workbench.editor.tabCloseButtonControl tab close button"right"string
workbench.editor.wrapTabsWrap tabs or show scrollbarfalseboolean
workbench.editor.limit.enabledEnable editor limitfalseboolean
workbench.editor.limit.valueMaximum number of open editors10number
workbench.editor.centeredLayoutAutoResizeAuto resize centered layouttrueboolean
workbench.commandPalette.historyNumber of commands to keep in history50number
workbench.tree.indentTree indentation in pixels8number
workbench.tree.renderIndentGuidesShow guides in tree"onHover"string
workbench.startupEditorWhat to show on startup"welcomePage"string

Files Settings

SettingDescriptionDefaultType
files.autoSaveControl auto save of files"off"string
files.autoSaveDelayDelay for auto save in milliseconds1000number
files.excludeFiles to exclude from explorer{"**/.git": true, "**/.DS_Store": true}object
files.watcherExcludeFiles to exclude from file watching{"**/.git/objects/**": true}object
files.encodingDefault file encoding"utf8"string
files.eolDefault end of line character"auto"string
files.trimTrailingWhitespaceTrim trailing whitespace on savefalseboolean
files.insertFinalNewlineInsert final newline on savefalseboolean
files.trimFinalNewlinesTrim multiple final newlines to onefalseboolean
files.hotExitControl hot exit feature"onExit"string
files.defaultLanguageDefault language for new files""string
files.simpleDialog.enableUse simple file dialogsfalseboolean

Search Settings

SettingDescriptionDefaultType
search.excludeFiles to exclude from search{"**/node_modules": true}object
search.useIgnoreFilesRespect .gitignore etc.trueboolean
search.useGlobalIgnoreFilesRespect global ignore filesfalseboolean
search.quickOpen.includeSymbolsInclude symbols in quick openfalseboolean
search.followSymlinksFollow symlinks in searchtrueboolean
search.searchOnTypeStart searching on typetrueboolean
search.seedOnFocusPre-seed search when focusedfalseboolean
search.seedWithNearestWordPre-seed with nearest wordfalseboolean
search.showLineNumbersShow line numbers in resultsfalseboolean
search.useReplacePreviewShow preview when replacingtrueboolean
search.collapseResultsCollapse results"auto"string

Terminal Settings

SettingDescriptionDefaultType
terminal.integrated.shell.windowsWindows terminal shell path"" (auto)string
terminal.integrated.shell.osxmacOS terminal shell path"" (auto)string
terminal.integrated.shell.linuxLinux terminal shell path"" (auto)string
terminal.integrated.fontFamilyTerminal font family"" (editor font)string
terminal.integrated.fontSizeTerminal font size14number
terminal.integrated.lineHeightTerminal line height1number
terminal.integrated.cursorBlinkingTerminal cursor blinkingfalseboolean
terminal.integrated.cursorStyleTerminal cursor style"block"string
terminal.integrated.scrollbackTerminal scrollback1000number
terminal.integrated.fastScrollSensitivityTerminal fast scroll sensitivity5number
terminal.integrated.copyOnSelectionAutomatically copy on selectionfalseboolean
terminal.integrated.rightClickBehaviorRight click behavior"default"string
terminal.integrated.splitCwdWorking directory for splits"inherited"string
terminal.integrated.confirmOnExitConfirm on terminal exitfalseboolean

Git Settings

SettingDescriptionDefaultType
git.enabledEnable Git integrationtrueboolean
git.pathPath to Git executablenullstring
git.autorefreshAuto-refresh Gittrueboolean
git.autofetchAuto-fetch from remotefalseboolean
git.confirmSyncConfirm before synctrueboolean
git.countBadgeWhat to count in SCM badge"all"string
git.decorations.enabledEnable Git decorationstrueboolean
git.ignoreMissingGitWarningDon't warn if Git missingfalseboolean
git.ignoreLegacyWarningDon't warn about legacy Gitfalseboolean
git.ignoreLimitWarningDon't warn about limitsfalseboolean
git.defaultCloneDirectoryDefault directory to clone tonullstring
git.branchSortOrderHow to sort branches"committerdate"string
git.pullBeforeCheckoutPull before checkoutfalseboolean

Debug Settings

SettingDescriptionDefaultType
debug.allowBreakpointsEverywhereAllow breakpoints in any filefalseboolean
debug.openDebugWhen to open the debug view"openOnDebugBreak"string
debug.inlineValuesShow variable values inlinefalseboolean
debug.toolBarLocationDebug toolbar location"floating"string
debug.showInStatusBarShow debug in status bar"always"string
debug.internalConsoleOptionsInternal debug console visibility"openOnFirstSessionStart"string
debug.console.fontSizeDebug console font size14number
debug.console.lineHeightDebug console line height0number
debug.console.wordWrapDebug console word wraptrueboolean
debug.console.historySuggestionsShow history in debug consoletrueboolean
debug.console.collapseIdenticalLinesCollapse identical linestrueboolean
debug.focusEditorOnBreakFocus editor on breaktrueboolean

Extension Settings

ThinkCode extensions often have their own settings. These are prefixed with the extension name, for example:

"python.linting.enabled": true,
"javascript.suggestionActions.enabled": false

Refer to each extension's documentation for its specific settings.

Language-Specific Settings

You can configure settings for specific languages using the [language] identifier. For example:

"[python]": {
    "editor.tabSize": 4,
    "editor.insertSpaces": true
},
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
}

Theme Color Settings

You can customize ThinkCode's color scheme in great detail using the workbench.colorCustomizations setting:

"workbench.colorCustomizations": {
    "editor.background": "#1E1E1E",
    "editor.foreground": "#D4D4D4",
    "editorLineNumber.foreground": "#858585",
    "editor.selectionBackground": "#264F78",
    "editor.selectionHighlightBackground": "#ADD6FF26"
}

Telemetry Settings

SettingDescriptionDefaultType
telemetry.enableTelemetryEnable usage data collectiontrueboolean
telemetry.enableCrashReporterEnable crash reportstrueboolean
telemetry.levelLevel of telemetry data to collect"all"string

Advanced Settings

SettingDescriptionDefaultType
security.workspace.trust.enabledEnable workspace trusttrueboolean
security.workspace.trust.untrustedFilesHow to handle untrusted files"prompt"string
update.modeHow to handle updates"default"string
update.channelUpdate channel (stable, insider)"default"string
extensions.autoUpdateAuto-update extensionstrueboolean
extensions.autoCheckUpdatesCheck for extension updatestrueboolean
extensions.ignoreRecommendationsIgnore extension recommendationsfalseboolean
extensions.closeExtensionDetailsOnViewChangeClose extension detailsfalseboolean
task.autoDetectAuto-detect tasks"on"string
task.quickOpen.historyTask history30number
task.quickOpen.detailShow task detailtrueboolean
explorer.compactFoldersCompact nested folderstrueboolean
explorer.confirmDragAndDropConfirm drag and droptrueboolean
explorer.confirmDeleteConfirm deletetrueboolean
explorer.sortOrderSort files and folders"default"string

The settings.json File

Settings are stored in JSON format. Here's a sample settings.json file:

{
  "editor.fontFamily": "Fira Code, Menlo, Monaco, 'Courier New', monospace",
  "editor.fontSize": 14,
  "editor.fontLigatures": true,
  "editor.tabSize": 2,
  "editor.formatOnSave": true,
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 1000,
  "workbench.colorTheme": "ThinkCode Dark+",
  "workbench.iconTheme": "material-icon-theme",
  "terminal.integrated.fontSize": 14,
  "git.autofetch": true,
  "ai.enabled": true,
  "ai.defaultModel": "thinkcode-large",
  "[python]": {
    "editor.tabSize": 4,
    "editor.formatOnSave": true
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

Sync Settings Across Devices

ThinkCode includes built-in settings sync that allows you to synchronize your settings, keyboard shortcuts, extensions, and more across multiple devices:

  1. Click the accounts icon in the activity bar or use the Command Palette to execute "Settings Sync: Turn On..."
  2. Sign in with your ThinkCode account
  3. Choose what to sync (settings, keybindings, extensions, etc.)

Troubleshooting Settings

If you encounter issues with your settings:

  1. Check Syntax: Ensure your JSON is valid without missing commas or incorrect values
  2. Reset to Default: Use "Preferences: Reset Settings" from the Command Palette
  3. Wrong Location: Make sure you're editing the correct settings file (User vs. Workspace)
  4. Extension Conflicts: Some extensions may override or conflict with certain settings
  5. Case Sensitivity: Setting names are case-sensitive

For more assistance, see the troubleshooting guide or the ThinkCode community forums.