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:
- Settings UI: Open the Command Palette (
Ctrl+Shift+P
/⌘+Shift+P
) and type "Preferences: Open Settings" - settings.json: Open the Command Palette and type "Preferences: Open Settings (JSON)"
- Keyboard Shortcut: Press
Ctrl+,
(⌘+,
on macOS)
Levels of Settings
ThinkCode has three levels of settings, in order of precedence:
- Default Settings: Built-in settings that serve as fallbacks
- User Settings: Global settings that apply to all workspaces
- Workspace Settings: Specific to the current workspace (stored in
.thinkcode/settings.json
)
General Settings
Setting | Description | Default | Type |
---|---|---|---|
window.title | Customize the window title | ${activeEditorShort}${separator}${rootName} | string |
window.zoomLevel | Adjust the zoom level of the window | 0 | number |
window.menuBarVisibility | Control menu bar visibility | "classic" | string |
window.newWindowDimensions | Control dimensions for new windows | "default" | string |
window.restoreWindows | Control how windows are restored | "all" | string |
window.closeWhenEmpty | Close window when last editor is closed | false | boolean |
window.autoDetectColorScheme | Automatically switch between light/dark themes | false | boolean |
window.dialogStyle | Control the style of dialogs | "native" | string |
Editor Settings
Appearance
Setting | Description | Default | Type |
---|---|---|---|
editor.fontFamily | Font family for the editor | "Menlo, Monaco, 'Courier New', monospace" | string |
editor.fontSize | Font size in pixels | 14 | number |
editor.lineHeight | Line height as a multiplier | 0 (auto) | number |
editor.letterSpacing | Letter spacing in pixels | 0 | number |
editor.fontWeight | Font weight | "normal" | string |
editor.fontLigatures | Enable/disable font ligatures | false | boolean |
editor.lineNumbers | Control line number display | "on" | string |
editor.rulers | Vertical rulers (in character columns) | [] | array |
editor.minimap.enabled | Show/hide the minimap | true | boolean |
editor.minimap.side | Which side to render the minimap | "right" | string |
editor.minimap.showSlider | Always show the minimap slider | "mouseover" | string |
editor.minimap.maxColumn | Maximum number of columns in minimap | 120 | number |
editor.minimap.renderCharacters | Render characters or blocks | true | boolean |
editor.smoothScrolling | Enable smooth scrolling | false | boolean |
editor.cursorBlinking | Control cursor blinking | "blink" | string |
editor.cursorStyle | Control cursor style | "line" | string |
editor.cursorWidth | Width of the cursor when cursorStyle is "line" | 0 | number |
Behavior
Setting | Description | Default | Type |
---|---|---|---|
editor.tabSize | Number of spaces a tab equals | 4 | number |
editor.insertSpaces | Use spaces instead of tabs | true | boolean |
editor.detectIndentation | Auto-detect indentation | true | boolean |
editor.trimAutoWhitespace | Remove trailing whitespace | true | boolean |
editor.wordWrap | Control word wrapping | "off" | string |
editor.wordWrapColumn | Column where to wrap when wordWrap is "wordWrapColumn" | 80 | number |
editor.wrappingIndent | Indentation of wrapped lines | "same" | string |
editor.multiCursorModifier | Modifier key for adding multiple cursors | "alt" | string |
editor.autoClosingBrackets | Auto-close brackets | "languageDefined" | string |
editor.autoIndent | Auto-indent on new lines | "advanced" | string |
editor.formatOnType | Format line after typing | false | boolean |
editor.formatOnPaste | Format pasted text | false | boolean |
editor.formatOnSave | Format document on save | false | boolean |
editor.formatOnSaveMode | What to format on save | "file" | string |
editor.linkedEditing | Auto-rename paired HTML/XML tags | false | boolean |
editor.bracketPairColorization.enabled | Enable/disable bracket pair colorization | true | boolean |
editor.guides.bracketPairs | Control bracket pair guides | "active" | string |
editor.guides.indentation | Show indentation guides | true | boolean |
Suggestions and Intellisense
Setting | Description | Default | Type |
---|---|---|---|
editor.quickSuggestions | Control when to show quick suggestions | { "other": true, "comments": false, "strings": false } | object |
editor.suggestOnTriggerCharacters | Trigger suggestions on special characters | true | boolean |
editor.acceptSuggestionOnEnter | Accept suggestion on Enter | "on" | string |
editor.acceptSuggestionOnCommitCharacter | Accept suggestion on commit characters | true | boolean |
editor.snippetSuggestions | Control snippet suggestions | "inline" | string |
editor.hover.enabled | Enable hover | true | boolean |
editor.hover.delay | Delay in milliseconds | 300 | number |
editor.parameterHints.enabled | Enable parameter hints | true | boolean |
editor.codeLens | Enable/disable CodeLens | true | boolean |
editor.folding | Enable/disable code folding | true | boolean |
editor.foldingStrategy | Control folding strategy | "auto" | string |
AI Assistant Settings
Setting | Description | Default | Type |
---|---|---|---|
ai.enabled | Enable/disable AI features | true | boolean |
ai.defaultModel | Default AI model to use | "thinkcode-default" | string |
ai.inlineCompletions.enabled | Show inline completions | true | boolean |
ai.inlineCompletions.delay | Delay before showing inline completions (ms) | 100 | number |
ai.contextLength | Maximum context length for AI operations | 8000 | number |
ai.customEndpoint | Custom AI service endpoint URL | "" | string |
ai.apiKey | API key for custom AI services | "" | string |
ai.automaticContextCollection | Automatically collect context | true | boolean |
ai.chatModel | Model to use for chat interactions | "thinkcode-chat" | string |
ai.codeModel | Model to use for code generation | "thinkcode-code" | string |
ai.autoTriggerThreshold | Character threshold before auto-triggering | 3 | number |
ai.telemetryLevel | Level of AI telemetry to collect | "basic" | string |
Workbench Settings
Setting | Description | Default | Type |
---|---|---|---|
workbench.colorTheme | Color theme | "ThinkCode Dark" | string |
workbench.iconTheme | File icon theme | "thinkcode-icons" | string |
workbench.activityBar.visible | Show/hide activity bar | true | boolean |
workbench.sideBar.location | Side bar location | "left" | string |
workbench.statusBar.visible | Show/hide status bar | true | boolean |
workbench.editor.showTabs | Show/hide editor tabs | true | boolean |
workbench.editor.tabSizing | Control tab sizing | "fit" | string |
workbench.editor.tabCloseButton | Control tab close button | "right" | string |
workbench.editor.wrapTabs | Wrap tabs or show scrollbar | false | boolean |
workbench.editor.limit.enabled | Enable editor limit | false | boolean |
workbench.editor.limit.value | Maximum number of open editors | 10 | number |
workbench.editor.centeredLayoutAutoResize | Auto resize centered layout | true | boolean |
workbench.commandPalette.history | Number of commands to keep in history | 50 | number |
workbench.tree.indent | Tree indentation in pixels | 8 | number |
workbench.tree.renderIndentGuides | Show guides in tree | "onHover" | string |
workbench.startupEditor | What to show on startup | "welcomePage" | string |
Files Settings
Setting | Description | Default | Type |
---|---|---|---|
files.autoSave | Control auto save of files | "off" | string |
files.autoSaveDelay | Delay for auto save in milliseconds | 1000 | number |
files.exclude | Files to exclude from explorer | {"**/.git": true, "**/.DS_Store": true} | object |
files.watcherExclude | Files to exclude from file watching | {"**/.git/objects/**": true} | object |
files.encoding | Default file encoding | "utf8" | string |
files.eol | Default end of line character | "auto" | string |
files.trimTrailingWhitespace | Trim trailing whitespace on save | false | boolean |
files.insertFinalNewline | Insert final newline on save | false | boolean |
files.trimFinalNewlines | Trim multiple final newlines to one | false | boolean |
files.hotExit | Control hot exit feature | "onExit" | string |
files.defaultLanguage | Default language for new files | "" | string |
files.simpleDialog.enable | Use simple file dialogs | false | boolean |
Search Settings
Setting | Description | Default | Type |
---|---|---|---|
search.exclude | Files to exclude from search | {"**/node_modules": true} | object |
search.useIgnoreFiles | Respect .gitignore etc. | true | boolean |
search.useGlobalIgnoreFiles | Respect global ignore files | false | boolean |
search.quickOpen.includeSymbols | Include symbols in quick open | false | boolean |
search.followSymlinks | Follow symlinks in search | true | boolean |
search.searchOnType | Start searching on type | true | boolean |
search.seedOnFocus | Pre-seed search when focused | false | boolean |
search.seedWithNearestWord | Pre-seed with nearest word | false | boolean |
search.showLineNumbers | Show line numbers in results | false | boolean |
search.useReplacePreview | Show preview when replacing | true | boolean |
search.collapseResults | Collapse results | "auto" | string |
Terminal Settings
Setting | Description | Default | Type |
---|---|---|---|
terminal.integrated.shell.windows | Windows terminal shell path | "" (auto) | string |
terminal.integrated.shell.osx | macOS terminal shell path | "" (auto) | string |
terminal.integrated.shell.linux | Linux terminal shell path | "" (auto) | string |
terminal.integrated.fontFamily | Terminal font family | "" (editor font) | string |
terminal.integrated.fontSize | Terminal font size | 14 | number |
terminal.integrated.lineHeight | Terminal line height | 1 | number |
terminal.integrated.cursorBlinking | Terminal cursor blinking | false | boolean |
terminal.integrated.cursorStyle | Terminal cursor style | "block" | string |
terminal.integrated.scrollback | Terminal scrollback | 1000 | number |
terminal.integrated.fastScrollSensitivity | Terminal fast scroll sensitivity | 5 | number |
terminal.integrated.copyOnSelection | Automatically copy on selection | false | boolean |
terminal.integrated.rightClickBehavior | Right click behavior | "default" | string |
terminal.integrated.splitCwd | Working directory for splits | "inherited" | string |
terminal.integrated.confirmOnExit | Confirm on terminal exit | false | boolean |
Git Settings
Setting | Description | Default | Type |
---|---|---|---|
git.enabled | Enable Git integration | true | boolean |
git.path | Path to Git executable | null | string |
git.autorefresh | Auto-refresh Git | true | boolean |
git.autofetch | Auto-fetch from remote | false | boolean |
git.confirmSync | Confirm before sync | true | boolean |
git.countBadge | What to count in SCM badge | "all" | string |
git.decorations.enabled | Enable Git decorations | true | boolean |
git.ignoreMissingGitWarning | Don't warn if Git missing | false | boolean |
git.ignoreLegacyWarning | Don't warn about legacy Git | false | boolean |
git.ignoreLimitWarning | Don't warn about limits | false | boolean |
git.defaultCloneDirectory | Default directory to clone to | null | string |
git.branchSortOrder | How to sort branches | "committerdate" | string |
git.pullBeforeCheckout | Pull before checkout | false | boolean |
Debug Settings
Setting | Description | Default | Type |
---|---|---|---|
debug.allowBreakpointsEverywhere | Allow breakpoints in any file | false | boolean |
debug.openDebug | When to open the debug view | "openOnDebugBreak" | string |
debug.inlineValues | Show variable values inline | false | boolean |
debug.toolBarLocation | Debug toolbar location | "floating" | string |
debug.showInStatusBar | Show debug in status bar | "always" | string |
debug.internalConsoleOptions | Internal debug console visibility | "openOnFirstSessionStart" | string |
debug.console.fontSize | Debug console font size | 14 | number |
debug.console.lineHeight | Debug console line height | 0 | number |
debug.console.wordWrap | Debug console word wrap | true | boolean |
debug.console.historySuggestions | Show history in debug console | true | boolean |
debug.console.collapseIdenticalLines | Collapse identical lines | true | boolean |
debug.focusEditorOnBreak | Focus editor on break | true | boolean |
Extension Settings
ThinkCode extensions often have their own settings. These are prefixed with the extension name, for example:
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:
Theme Color Settings
You can customize ThinkCode's color scheme in great detail using the workbench.colorCustomizations
setting:
Telemetry Settings
Setting | Description | Default | Type |
---|---|---|---|
telemetry.enableTelemetry | Enable usage data collection | true | boolean |
telemetry.enableCrashReporter | Enable crash reports | true | boolean |
telemetry.level | Level of telemetry data to collect | "all" | string |
Advanced Settings
Setting | Description | Default | Type |
---|---|---|---|
security.workspace.trust.enabled | Enable workspace trust | true | boolean |
security.workspace.trust.untrustedFiles | How to handle untrusted files | "prompt" | string |
update.mode | How to handle updates | "default" | string |
update.channel | Update channel (stable, insider) | "default" | string |
extensions.autoUpdate | Auto-update extensions | true | boolean |
extensions.autoCheckUpdates | Check for extension updates | true | boolean |
extensions.ignoreRecommendations | Ignore extension recommendations | false | boolean |
extensions.closeExtensionDetailsOnViewChange | Close extension details | false | boolean |
task.autoDetect | Auto-detect tasks | "on" | string |
task.quickOpen.history | Task history | 30 | number |
task.quickOpen.detail | Show task detail | true | boolean |
explorer.compactFolders | Compact nested folders | true | boolean |
explorer.confirmDragAndDrop | Confirm drag and drop | true | boolean |
explorer.confirmDelete | Confirm delete | true | boolean |
explorer.sortOrder | Sort files and folders | "default" | string |
The settings.json File
Settings are stored in JSON format. Here's a sample settings.json
file:
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:
- Click the accounts icon in the activity bar or use the Command Palette to execute "Settings Sync: Turn On..."
- Sign in with your ThinkCode account
- Choose what to sync (settings, keybindings, extensions, etc.)
Troubleshooting Settings
If you encounter issues with your settings:
- Check Syntax: Ensure your JSON is valid without missing commas or incorrect values
- Reset to Default: Use "Preferences: Reset Settings" from the Command Palette
- Wrong Location: Make sure you're editing the correct settings file (User vs. Workspace)
- Extension Conflicts: Some extensions may override or conflict with certain settings
- Case Sensitivity: Setting names are case-sensitive
For more assistance, see the troubleshooting guide or the ThinkCode community forums.