Skip to content

Instantly share code, notes, and snippets.

@nanotaboada
Last active November 26, 2025 14:38
Show Gist options
  • Select an option

  • Save nanotaboada/dd4846939c4aed6fce68c6a2b9ebae5c to your computer and use it in GitHub Desktop.

Select an option

Save nanotaboada/dd4846939c4aed6fce68c6a2b9ebae5c to your computer and use it in GitHub Desktop.
VS Code User Settings
// https://code.visualstudio.com/docs/reference/default-settings
{
// ----------------------------------------------------------------------------
// 🏒 Workspace Settings
// ----------------------------------------------------------------------------
// Workspace: the root container - your project folder(s) and global VS Code
// behavior. Controls security, trust, and overall application behavior.
"security.workspace.trust.untrustedFiles": "open",
// ----------------------------------------------------------------------------
// 🎨 Workbench Settings
// ----------------------------------------------------------------------------
// Main UI shell: panels, sidebars, themes, and window layout
"workbench.colorTheme": "GitHub Dark", // Color theme for editor and UI
"workbench.iconTheme": "material-icon-theme", // File/folder icon theme
"workbench.startupEditor": "none", // Don't show welcome page on startup
"workbench.fontAliasing": "antialiased", // Smooth font rendering
"workbench.activityBar.location": "default", // Activity bar position (default/top/bottom)
"workbench.editor.customLabels.enabled": true, // Custom labels for duplicate filenames
"workbench.editor.dragToOpenWindow": true, // Drag tabs to create floating windows
// Editor tabs and layout
"workbench.editor.decorations.colors": true, // Show colors for file decorations
"workbench.editor.pinnedTabSizing": "normal", // Pinned tab width sizing
"workbench.editor.pinnedTabsOnSeparateRow": true, // Separate row for pinned tabs
"workbench.editor.wrapTabs": true, // Wrap tabs when too many are open
"workbench.editor.closeOnFileDelete": true, // Close editor when file is deleted
// Tree views (Explorer, Search, Git panels)
"workbench.tree.enableStickyScroll": true, // Keep parent folders visible while scrolling
"workbench.tree.stickyScrollMaxItemCount": 7, // Max sticky scroll items to show
"workbench.tree.indent": 11, // Indentation size in pixels
"workbench.tree.renderIndentGuides": "always", // Show vertical indent guide lines
"workbench.colorCustomizations": {
"tree.indentGuidesStroke": "#999999",
"[Material Theme Darker High Contrast]": {}
},
// πŸͺŸ Window behavior and appearance
"window.density.editorTabHeight": "compact", // Compact tab height for more space
"window.titleBarStyle": "native", // Use native OS title bar
"window.customTitleBarVisibility": "auto", // Custom title bar with native tabs (macOS)
"window.zoomPerWindow": true, // Apply zoom per window (not globally)
"window.systemColorTheme": "auto", // Match system light/dark preference
"window.confirmSaveUntitledWorkspace": true, // Confirm before saving untitled workspace
// ----------------------------------------------------------------------------
// πŸ“‚ Explorer Settings
// ----------------------------------------------------------------------------
// File tree sidebar: navigation and file/folder display
"explorer.autoReveal": true, // Auto-select active file in tree
"explorer.compactFolders": false, // Don't compress single-child folders
"explorer.excludeGitIgnore": true, // Hide files ignored by .gitignore
// ----------------------------------------------------------------------------
// ✏️ Editor Settings
// ----------------------------------------------------------------------------
// Code editing area: appearance, behavior, and editing features
"editor.bracketPairColorization.enabled": true, // Color-code matching brackets
"editor.codeLensFontFamily": "MesloLGS NF, Menlo, Monaco, 'Courier New', monospace", // Font for CodeLens
"editor.cursorSurroundingLines": 8, // Lines to keep visible around cursor
"editor.linkedEditing": true, // Edit matching HTML/XML tags together
"editor.semanticHighlighting.enabled": true, // Use semantic token coloring
"editor.cursorBlinking": "smooth", // Smooth cursor blinking animation
"editor.cursorSmoothCaretAnimation": "on", // Smooth cursor movement
"editor.cursorStyle": "block", // Block-style cursor
"editor.fontFamily": "MesloLGS NF, Menlo, Monaco, 'Courier New', monospace", // Editor font
"editor.guides.bracketPairs": "active", // Show bracket pair guides for active pair
"editor.guides.highlightActiveIndentation": true, // Highlight active indentation guide
"editor.insertSpaces": true, // Use spaces instead of tabs
"editor.largeFileOptimizations": false, // Disable optimizations for large files
"editor.occurrencesHighlight": "singleFile", // Highlight symbol occurrences (singleFile/multiFile)
"editor.renderWhitespace": "boundary", // Show whitespace at word boundaries
"editor.rulers": [{ "column": 127 }], // Vertical ruler at column 127
"editor.stickyScroll.enabled": true, // Keep current scope visible at top
"editor.stickyScroll.maxLineCount": 7, // Max lines for sticky scroll
"editor.inlineSuggest.fontFamily": "MesloLGS NF, Menlo, Monaco, 'Courier New', monospace", // Font for AI suggestions
"editor.tabSize": 4, // Tab size in spaces
"editor.trimAutoWhitespace": true, // Trim trailing whitespace from modified lines
"editor.wordWrap": "off", // Don't wrap long lines
// πŸ—ΊοΈ Minimap (zoomed-out code overview)
"editor.minimap.enabled": true, // Show minimap on right side
"editor.minimap.maxColumn": 127, // Max column to render in minimap
"editor.minimap.renderCharacters": false, // Use blocks instead of characters
"editor.minimap.showSlider": "always", // Always show viewport slider
"editor.minimap.size": "fill", // Fill available vertical space
// 🍞 Breadcrumbs (navigation path above editor)
"breadcrumbs.enabled": true, // Show breadcrumb navigation
// ----------------------------------------------------------------------------
// πŸ”„ Diff Editor Settings
// ----------------------------------------------------------------------------
// Side-by-side file comparison editor
"diffEditor.codeLens": true, // Show CodeLens in diff editor
"diffEditor.ignoreTrimWhitespace": true, // Ignore whitespace-only changes
"diffEditor.renderGutterMenu": true, // Show stage/revert buttons in gutter
// ----------------------------------------------------------------------------
// πŸ’» Terminal Settings
// ----------------------------------------------------------------------------
// Integrated terminal: shell access, IntelliSense, and behavior
"terminal.integrated.allowedLinkSchemes": [
// Clickable link protocols
"docker-desktop",
"file",
"http",
"https",
"mailto",
"vscode",
"vscode-insiders"
],
"terminal.integrated.fontFamily": "MesloLGS NF, Menlo, Monaco, 'Courier New', monospace", // Terminal font
"terminal.integrated.fontSize": 12, // Terminal font size
"terminal.integrated.inheritEnv": true, // Inherit environment variables
"terminal.integrated.macOptionIsMeta": false, // Option key behavior on macOS
"terminal.integrated.shellIntegration.enabled": true, // Enable shell integration features
"terminal.integrated.enablePersistentSessions": true, // Restore terminals on reload
"terminal.integrated.suggest.enabled": true, // Terminal IntelliSense (v1.106+)
"terminal.integrated.suggest.quickSuggestions": {
// Auto-show suggestions
"other": true,
"comments": false,
"strings": true
},
"terminal.integrated.suggest.suggestOnTriggerCharacters": true, // Trigger on -, /, etc.
"terminal.integrated.stickyScroll.enabled": false, // Sticky scroll for long output
"terminal.integrated.mouseWheelZoom": true, // Ctrl+scroll to zoom
"terminal.integrated.rescaleOverlappingGlyphs": true, // Fix ambiguous character widths
// ----------------------------------------------------------------------------
// πŸ“„ Files Settings
// ----------------------------------------------------------------------------
// File handling: encoding, auto-save, and formatting
"files.autoGuessEncoding": true, // Auto-detect file encoding
"files.autoSaveWorkspaceFilesOnly": false, // Auto-save all files (not just workspace)
"files.autoSaveWhenNoErrors": false, // Prevent auto-save when errors exist
"files.insertFinalNewline": true, // Add newline at end of file
"files.trimFinalNewlines": true, // Remove extra newlines at end
"files.trimTrailingWhitespace": true, // Remove trailing whitespace on save
"files.associations": {
"*.json": "json",
".runsettings": "xml", // .NET test settings file
"*.cshtml": "html", // Razor views (C# + HTML)
"*.razor": "razor", // Blazor components
"go.mod": "go.mod", // Go module definition
"go.sum": "go.sum", // Go dependency checksums
"requirements.txt": "pip-requirements", // Python dependencies
"Pipfile": "pipfile", // Python Pipenv dependencies
"*.pom": "xml" // Maven project files
},
"files.exclude": {
"**/.classpath": true, // Java Eclipse metadata
"**/.factorypath": true, // Java Eclipse metadata
"**/.project": true, // Eclipse project file
"**/.settings": true, // Eclipse settings
"**/bin": true, // .NET build output
"**/obj": true, // .NET intermediate files
"**/.vs": true // Visual Studio metadata
},
"files.watcherExclude": {
"**/bin/**": true, // .NET build output
"**/obj/**": true, // .NET intermediate files
"**/.git/objects/**": true, // Git object database
"**/.git/subtree-cache/**": true, // Git subtree cache
"**/node_modules/*/**": true, // Node.js dependencies (huge perf impact)
"**/.hg/store/**": true, // Mercurial store
"**/__pycache__/**": true, // Python bytecode
"**/.pytest_cache/**": true, // Pytest cache
"**/.venv/**": true, // Python virtual environments
"**/venv/**": true,
"**/target/**": true, // Java/Maven builds
"**/.gradle/**": true, // Gradle cache
"**/build/**": true, // Generic build output
"**/dist/**": true // Distribution files
},
"search.exclude": {
"**/bin": true, // .NET build output
"**/obj": true, // .NET intermediate build files
"**/node_modules": true, // Node.js dependencies
"**/.git": true, // Git metadata
"**/coverage": true, // Test coverage reports
"**/.vs": true, // Visual Studio metadata
"**/__pycache__": true, // Python bytecode cache
"**/.pytest_cache": true, // Pytest cache
"**/.venv": true, // Python virtual environment
"**/venv": true, // Python virtual environment (alternative name)
"**/.mypy_cache": true, // MyPy type checker cache
"**/target": true, // Maven/Java build output
"**/.gradle": true, // Gradle cache
"**/build": true, // Generic build output
"**/dist": true // Distribution/compiled output
},
// ----------------------------------------------------------------------------
// 🌿 Git & Version Control Settings
// ----------------------------------------------------------------------------
// Git integration: commits, branches, and workflow
"git.autoStash": true, // Auto-stash changes before pull/rebase
"git.autofetch": true, // Automatically fetch from remotes
"git.openRepositoryInParentFolders": "never", // Don't search parent folders for repos
"git.showCommitInput": true, // Show commit input box in SCM view
"git.timeline.showAuthor": true, // Show commit authors in timeline
"git.timeline.showUncommitted": true, // Show uncommitted changes in timeline
"git.branchProtection": ["master"], // Protect master branch from direct commits
"git.defaultBranchName": "master", // Default branch name for new repos
"git.mergeEditor": true, // Use 3-way merge editor for conflicts
"git.promptToSaveFilesBeforeCommit": "always", // Prompt to save before committing
"git.promptToSaveFilesBeforeStash": "always", // Prompt to save before stashing
"git.pruneOnFetch": false, // Don't prune remote branches on fetch
"git.requireGitUserConfig": true, // Require user.name and user.email
"git.suggestSmartCommit": false, // Don't suggest smart commit
// 🏷️ Git Blame annotations
"git.blame.editorDecoration.enabled": true, // Show inline blame annotations
"git.blame.editorDecoration.template": "${subject} β€’ ${authorName} β€’ ${authorDateAgo}", // Inline format
"git.blame.statusBarItem.enabled": true, // Show blame in status bar
"git.blame.statusBarItem.template": "${authorName} β€’ ${authorDateAgo} β€’ ${subject}", // Status bar format
// Modern Git features (v1.85+)
"scm.repositories.selectionMode": "single",
"scm.inputMinLineCount": 1,
"scm.inputMaxLineCount": 10,
"git.decorations.enabled": true,
"git.verboseCommit": false,
"git.useEditorAsCommitInput": false,
// ----------------------------------------------------------------------------
// πŸ™ GitHub Integration
// ----------------------------------------------------------------------------
// GitHub features and pull request workflow
"github.branchProtection": true, // Enable branch protection features
"githubPullRequests.createOnPublishBranch": "never", // Don't auto-create PR on publish
"githubPullRequests.pullBranch": "never", // Don't auto-pull branch changes
// ----------------------------------------------------------------------------
// πŸ€– GitHub Copilot
// ----------------------------------------------------------------------------
// AI-powered code completion and chat features
"github.copilot.enable": {
// Enable/disable per language
"*": true, // Enable for all languages
"markdown": false, // Disable for markdown
"plaintext": false, // Disable for plain text
"python": false, // Disable for Python
"scminput": false // Disable in commit messages
},
"github.copilot.editor.enableCodeActions": true, // Enable Copilot code actions
// ----------------------------------------------------------------------------
// πŸ› Debug & Testing
// ----------------------------------------------------------------------------
// Debugging and test execution configuration
"debug.javascript.autoAttachFilter": "onlyWithFlag", // Auto-attach debugger with --inspect flag
"debug.toolBarLocation": "commandCenter", // Show debug toolbar in command center
"debug.closeReadonlyTabsOnEnd": true, // Close readonly debug files after session
"testing.alwaysRevealTestOnStateChange": true, // Auto-reveal test on state change
"testing.automaticallyOpenPeekView": "failureInVisibleDocument", // Auto-open peek for failures
"testing.defaultGutterClickAction": "run", // Run test on gutter click
"testing.followRunningTest": true, // Follow currently running test
// ----------------------------------------------------------------------------
// 🌐 Language-Specific Settings
// ----------------------------------------------------------------------------
// Each language can have its own formatter, tab size, and behavior rules
// C# Settings
"[csharp]": {
"editor.defaultFormatter": "csharpier.csharpier-vscode",
"editor.formatOnSave": true
},
// CSS Settings
"[css]": {
"editor.defaultFormatter": "vscode.css-language-features",
"editor.formatOnSave": true
},
// Docker Settings
"[dockerfile]": {
"editor.defaultFormatter": "ms-azuretools.vscode-containers"
},
// Go Settings
"[go]": {
"editor.defaultFormatter": "golang.go",
"editor.formatOnSave": true
},
// HTML Settings
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features",
"editor.formatOnSave": true
},
// JavaScript Settings
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
// JSON Settings (uses 2 spaces instead of default 4)
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.tabSize": 2
},
// JSONC (JSON with Comments) Settings
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.tabSize": 2
},
// Markdown Settings
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint",
"editor.formatOnSave": true,
"editor.unicodeHighlight.invisibleCharacters": true,
"editor.wordWrap": "on"
},
// Plain Text Settings
"[plaintext]": {
"editor.unicodeHighlight.invisibleCharacters": true
},
// Python Settings
"[python]": {
"editor.defaultFormatter": "ms-python.python",
"editor.formatOnSave": true
},
// SQL Settings
"[sql]": {
"editor.defaultFormatter": "inferrinizzard.prettier-sql-vscode"
},
// TypeScript Settings
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
// YAML Settings
"[yaml]": {
"editor.defaultFormatter": "redhat.vscode-yaml",
"editor.formatOnSave": true,
"editor.insertSpaces": true,
"editor.tabSize": 2
},
// YML Settings (alternative YAML extension)
"[yml]": {
"editor.defaultFormatter": "redhat.vscode-yaml",
"editor.formatOnSave": true
},
// ----------------------------------------------------------------------------
// βš™οΈ Language-Specific Global Configurations
// ----------------------------------------------------------------------------
// Global settings that affect specific languages across all files
// Go Configuration
"go.toolsManagement.autoUpdate": true, // Auto-update Go tools (gopls, delve, etc.)
"go.useLanguageServer": true, // Use gopls for IntelliSense and diagnostics
"go.lintOnSave": "package", // Run linter on package when saving
"go.vetOnSave": "package", // Run go vet on package when saving
"go.coverOnSave": false, // Don't run coverage on save (performance)
"go.testFlags": ["-v"], // Verbose test output
"gopls": {
"ui.semanticTokens": true,
"ui.codelenses": {
"test": true,
"references": true
}
},
// Java Configuration
"java.compile.nullAnalysis.mode": "automatic", // Null pointer analysis for better safety
"java.configuration.updateBuildConfiguration": "automatic", // Auto-update when pom.xml/build.gradle changes
"java.codeGeneration.useBlocks": true, // Always use {} blocks in generated code
"java.saveActions.organizeImports": true, // Auto-organize imports on save
"java.sources.organizeImports.starThreshold": 99, // Avoid wildcard imports (import *)
"java.test.config": {}, // Test configuration (empty = use defaults)
// JavaScript Configuration
"javascript.updateImportsOnFileMove.enabled": "always",
// JSON Configuration
"json.maxItemsComputed": 99999, // Allow processing very large JSON files
// Python Configuration
"python.analysis.autoImportCompletions": true, // Suggest imports in autocomplete
"python.analysis.completeFunctionParens": true, // Add () when completing functions
"python.analysis.typeCheckingMode": "basic", // Basic type checking (off/basic/strict)
"python.languageServer": "Pylance", // Use Pylance for IntelliSense
"python.testing.pytestArgs": ["tests", "-v"], // Run pytest in 'tests' folder with verbose
"python.testing.pytestEnabled": true, // Use pytest as test runner
"python.testing.unittestEnabled": false, // Disable built-in unittest
// TypeScript Configuration
"typescript.updateImportsOnFileMove.enabled": "always", // Auto-update imports when files move
"typescript.preferences.importModuleSpecifier": "relative", // Use relative imports (./)
"typescript.suggest.autoImports": true, // Auto-add import statements
// JavaScript Configuration (for Node.js)
"javascript.preferences.importModuleSpecifier": "relative", // Use relative imports (./)
"javascript.suggest.autoImports": true, // Auto-add import/require statements
"javascript.suggest.completeFunctionCalls": true, // Add () and params when completing
// C# Configuration
// Note: C# DevKit inlay hints are controlled via editor UI (right-click in editor > Inlay Hints)
// Legacy csharp.inlayHints settings are deprecated in favor of dotnet settings
// .NET Configuration
"dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "openFiles", // Only analyze open files (performance)
"dotnet.backgroundAnalysis.compilerDiagnosticsScope": "openFiles", // Only show compiler errors for open files
"dotnet.server.useOmnisharp": false, // Use modern C# DevKit (not legacy OmniSharp)
"dotnet.symbolSearch.searchReferenceAssemblies": true, // Search .NET framework assemblies
// YAML Configuration
"yaml.schemas": {
// GitHub Actions workflow validation and IntelliSense
"https://json.schemastore.org/github-workflow.json": ".github/workflows/*",
// GitHub Actions action.yml validation
"https://json.schemastore.org/github-action.json": ".github/actions/*/action.yml",
// Docker Compose file validation
"https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json": "compose.yaml"
},
// ----------------------------------------------------------------------------
// 🧩 Extension-Specific Settings
// ----------------------------------------------------------------------------
// Settings for third-party extensions you've installed
// πŸ’¬ GitHub Copilot Chat
"chat.agent.enabled": true, // Enable Copilot chat agent
"chat.agent.maxRequests": 100, // Max chat requests
// 🐳 Docker
"docker.extension.enableComposeLanguageServer": false, // Disable compose language server
// πŸ”· .NET
"dotnet.preview.enableSupportForSlnx": false, // Disable .slnx preview support
"dotnetAcquisitionExtension.existingDotnetPath": [], // Existing .NET installation paths
// πŸ“ Markdown
"markdown-preview-github-styles.darkTheme": "light", // GitHub-style preview theme
"markdown.editor.pasteUrlAsFormattedLink.enabled": "smartWithSelection", // Smart URL paste
"markdown.editor.drop.enabled": "smart", // Smart file drop insertion
"markdown.editor.filePaste.enabled": "smart", // Smart file paste insertion
// πŸ—„οΈ MSSQL (SQL Server)
"mssql.connectionGroups": [
// Connection groups
{
"id": "68191908-3628-477C-BE06-23D04590BC2D",
"name": "ROOT"
}
],
"mssql.connections": [], // Saved connections
"mssql.resultsFontFamily": "MesloLGS NF, Menlo, Monaco, 'Courier New', monospace", // Results font
// πŸ”΄ Red Hat (YAML/XML)
"redhat.telemetry.enabled": true, // Enable telemetry
// ----------------------------------------------------------------------------
// β™Ώ Accessibility
// ----------------------------------------------------------------------------
// Audio signals, voice control, and screen reader features
"accessibility.signals.lineHasBreakpoint": {
// Sound when line has breakpoint
"sound": "auto"
},
"accessibility.signals.lineHasError": {
// Sound when line has error
"sound": "auto"
},
"accessibility.signals.lineHasWarning": {
// Sound when line has warning
"sound": "auto"
},
"accessibility.signals.onDebugBreak": {
// Sound when debugger breaks
"sound": "auto"
},
"accessibility.voice.speechTimeout": 1200, // Voice input silence timeout (ms)
"accessibility.openChatEditedFiles": true, // Auto-open files edited by Copilot
"terminal.integrated.accessibleViewFocusOnCommandExecution": false, // Focus accessible view on command
// πŸ“Š SCM (Source Control)
"scm.inputFontSize": 12, // Commit message input font size
// πŸ” SonarLint (code quality)
"sonarlint.connectedMode.connections.sonarcloud": [
// SonarCloud connections
{
"connectionId": "nanotaboada",
"organizationKey": "nanotaboada",
"region": "EU"
}
],
// πŸš€ GitHub Copilot Advanced
"github.copilot.nextEditSuggestions.enabled": true, // Enable next edit suggestions
// ☁️ AWS
"aws.cloudformation.telemetry.enabled": true, // Enable CloudFormation telemetry
// 🐳 Docker Compose (language-specific)
"[dockercompose]": {
"editor.insertSpaces": true,
"editor.tabSize": 2,
"editor.autoIndent": "advanced",
"editor.quickSuggestions": {
"other": true,
"comments": false,
"strings": true
},
"editor.defaultFormatter": "redhat.vscode-yaml"
},
// βš™οΈ GitHub Actions (language-specific)
"[github-actions-workflow]": {
"editor.defaultFormatter": "redhat.vscode-yaml"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment