{
//
// Languages
//
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[templ]": {
"editor.defaultFormatter": "a-h.templ"
},
"[typescript]": {
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"[typescriptreact]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
"emmet.includeLanguages": {
"templ": "html"
},
"go.buildTags": "unit",
"go.toolsManagement.autoUpdate": true,
"gopls": {
// Supported by Catppuccin
"ui.semanticTokens": true,
"build.buildFlags": [
"-tags=unit"
]
},
"javascript.updateImportsOnFileMove.enabled": "always",
"tailwindCSS.includeLanguages": {
"templ": "html"
},
"typescript.updateImportsOnFileMove.enabled": "always",
"files.readonlyInclude": {
"**/.cargo/registry/src/**/*.rs": true,
"**/lib/rustlib/src/rust/library/**/*.rs": true,
},
//
// Remote Settings
//
"dev.containers.dockerPath": "docker",
"dev.containers.executeInWSL": true,
"dotfiles.installCommand": "install.sh",
"dotfiles.repository": "https://github.com/tgrosinger/dotfiles.git",
"dotfiles.targetPath": "~/.dotfiles",
//
// Fonts and Appearance
//
"editor.fontFamily": "JetBrainsMono Nerd Font, JetBrains Mono, 'Courier New', monospace",
"editor.fontLigatures": true,
//
// Theme
//
"editor.semanticHighlighting.enabled": true,
// prevent VSCode from modifying the terminal colors
"terminal.integrated.minimumContrastRatio": 1,
// make the window's titlebar use the workbench colors
"window.titleBarStyle": "custom",
//
// Editor Behavior
//
"diffEditor.experimental.showMoves": true,
"editor.accessibilitySupport": "off",
"editor.formatOnSave": true,
"editor.guides.bracketPairs": "active",
"editor.lineNumbers": "relative",
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.renderWhitespace": "trailing",
"editor.stickyScroll.enabled": true,
"editor.wordWrap": "off",
"files.associations": {
"*.gohtml": "html"
},
"git.ignoreMissingGitWarning": true,
"githubPullRequests.pullBranch": "never",
"githubPullRequests.terminalLinksHandler": "github",
//
// GitLens
//
"gitlens.advanced.telemetry.enabled": false,
"gitlens.hovers.currentLine.over": "line",
"gitlens.telemetry.enabled": false,
"remote.autoForwardPortsSource": "hybrid",
"remote.containers.dotfiles.installCommand": "install.sh",
"remote.containers.dotfiles.repository": "https://github.com/tgrosinger/dotfiles.git",
"remote.containers.dotfiles.targetPath": "~/.dotfiles",
"scm.workingSets.enabled": true,
"settingsSync.ignoredExtensions": [
"bradlc.vscode-tailwindcss"
],
//
// Telemetry
//
"telemetry.telemetryLevel": "off",
"workbench.enableExperiments": false,
"workbench.settings.enableNaturalLanguageSearch": false,
"extensions.ignoreRecommendations": true,
//
// Vim
//
"vim.leader": " ",
"vim.handleKeys": {
// ctrl-o functionality in the plugin is not very reliable or predictable.
"": false
},
"vim.normalModeKeyBindings": [
// NOTE: It is recommended to put keybindings here instead of keybindings.json
// https://github.com/VSCodeVim/Vim?tab=readme-ov-file#remapping-more-complex-key-combinations
{
"before": [
"leader",
"c",
"r"
],
"commands": [
"editor.action.rename"
]
},
{
"before": [
"leader",
"f",
"f"
],
"commands": [
"workbench.action.quickOpen"
]
},
{
"before": [
"leader",
" "
],
"commands": [
"workbench.action.quickOpen"
]
},
{
"before": [
"leader",
"s",
"g"
],
"commands": [
"workbench.action.findInFiles"
]
},
{
// NOTE: This is defined here because otherwise the "g" "d" chord in a keybinding
// would take over from the "leader" "s" "g" command above.
"before": [
"g",
"r"
],
"commands": [
"editor.action.goToReferences"
]
},
{
"before": [
"leader",
"r",
"n"
],
"commands": [
"editor.action.rename"
]
},
{
"before": [
"leader",
"q"
],
"commands": [
"workbench.actions.view.problems"
]
},
{
"before": [
"leader",
"c",
"a"
],
"commands": [
"editor.action.quickFix"
]
},
{
"before": [
"leader",
"a",
"i"
],
"commands": [
"inlineChat.start"
]
},
{
// Vim-surround key-bindings to match what I use in Vim.
// https://github.com/VSCodeVim/Vim#vim-surround
"before": [
"g",
"s",
"r"
],
"after": [
"c",
"s"
]
}
],
//
// Window
//
"window.newWindowDimensions": "inherit",
"workbench.colorTheme": "Catppuccin Latte",
"workbench.colorCustomizations": {
// Overrides Theme Default Colors for InlayHints feature
"editorInlayHint.background": "#e4e4e4cc",
"editorInlayHint.foreground": "#2e6340cc",
// Overrides Theme Parameter hints fg for InlayHints feature
"editorInlayHint.parameterBackground": "#e4e4e4cc",
"editorInlayHint.parameterForeground": "#2e6340cc",
// Overrides Theme Type hints fg for InlayHints feature
"editorInlayHint.typeBackground": "#e4e4e4cc",
"editorInlayHint.typeForeground": "#2e6340cc"
},
"workbench.editor.empty.hint": "hidden",
"workbench.sideBar.location": "right",
"workbench.iconTheme": "catppuccin-latte",
"lazygit-vscode.autoMaximizeWindow": true,
"rust-analyzer.check.command": "clippy",
"[less]": {
"editor.defaultFormatter": "vscode.css-language-features"
},
"svelte.enable-ts-plugin": true,
//
// File watcher
//
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/node_modules/**": true
},
"find-it-faster.general.batTheme": "GitHub",
"find-it-faster.general.showMaximizedTerminal": true,
"github.copilot.chat.codesearch.enabled": true,
"github.copilot.chat.agent.thinkingTool": true,
"github.copilot.chat.editor.temporalContext.enabled": true,
"github.copilot.chat.edits.temporalContext.enabled": true,
"github.copilot.chat.languageContext.fix.typescript.enabled": true,
"github.copilot.chat.languageContext.inline.typescript.enabled": true,
"github.copilot.chat.languageContext.typescript.enabled": true,
"vim.highlightedyank.enable": true,
"vim.showMarksInGutter": true,
"telemetry.editStats.enabled": false,
"telemetry.feedback.enabled": false,
"inlineChat.enableV2": true,
"git.blame.editorDecoration.enabled": true,
"gitlens.plusFeatures.enabled": false,
"javascript.inlayHints.parameterNames.enabled": "all",
"javascript.inlayHints.propertyDeclarationTypes.enabled": true,
"javascript.inlayHints.parameterTypes.enabled": true,
"javascript.inlayHints.variableTypes.enabled": true,
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
"typescript.inlayHints.parameterNames.enabled": "all",
"typescript.inlayHints.parameterTypes.enabled": true,
"typescript.inlayHints.propertyDeclarationTypes.enabled": true,
"typescript.inlayHints.variableTypes.enabled": true,
"editor.inlayHints.fontFamily": "Sriracha",
"github.copilot.nextEditSuggestions.enabled": true,
"gitlens.ai.model": "vscode",
"gitlens.ai.vscode.model": "copilot:gpt-4.1"
}