My vscode setup
I’ve been using vscode like 5 years now, that’s longer than I have been doing any meaningful coding. All this time I had my ups and down with it, but anytime I tried to move away from it (mainly vim/vim-motion) I had to move back to it because I had no other choice (I still try sometime nevertheless and might be successes someday). Regardless of my or any other’s opinion on it, it’s very versatile and very important according to some developers (mostly web-dev which are mostly some of the worst devs 🤣).
Because of this, I’ve picked some really niche and some general settings of vscode that like to run my vscode with.
This setting are just for my setup reference and may not work in your specific environment, also this might not be updated with my current setup
I use vscode profiles with account sync which in my opinion is still one of the underrated feature vscode
settings.json
{
"[dockercompose]": {
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
},
"[dockerfile]": {
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
},
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.quickSuggestions": {
"strings": true
},
"editor.suggest.insertMode": "replace"
},
"[markdown]": {
"editor.defaultFormatter": "yzhang.markdown-all-in-one",
"editor.fontSize": 18
},
"[nginx]": {
"editor.defaultFormatter": "ahmadalli.vscode-nginx-conf"
},
"[proto3]": {
"editor.defaultFormatter": "zxh404.vscode-proto3"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"breadcrumbs.enabled": true,
"clang-format.style": "google",
"diffEditor.ignoreTrimWhitespace": false,
"diffEditor.maxComputationTime": 0,
"editor.cursorBlinking": "smooth",
"editor.cursorSmoothCaretAnimation": "on",
"editor.cursorSurroundingLines": 5,
"editor.fontFamily": "'JetBrainsMono Nerd Font Mono','JetBrainsMono NF','FiraCode Nerd Font Mono','Droid Sans Mono', 'monospace', monospace",
"editor.fontLigatures": true,
"editor.fontSize": 18.5,
"editor.fontWeight": "300",
"editor.inlayHints.enabled": "on",
"editor.inlayHints.padding": true,
"editor.inlineSuggest.enabled": true,
"editor.lineNumbers": "relative",
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.minimap.side": "left",
"editor.smoothScrolling": true,
"editor.stickyScroll.enabled": true,
"editor.suggest.insertMode": "replace",
"editor.suggestFontSize": 15,
"editor.tokenColorCustomizations": {
"[*Dark*]": {
"textMateRules": [
{
"scope": "ref.matchtext",
"settings": {
"foreground": "#fff"
}
}
]
},
"[*Light*]": {
"textMateRules": [
{
"scope": "ref.matchtext",
"settings": {
"foreground": "#000"
}
}
]
},
"textMateRules": [
{
"scope": "keyword.other.dotenv",
"settings": {
"foreground": "#FF000000"
}
}
]
},
"editor.wordWrap": "on",
"errorLens.fontStyleItalic": true,
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"extensions.autoUpdate": "onlyEnabledExtensions",
"extensions.ignoreRecommendations": false,
"files.associations": {
".env*": "dotenv"
},
"find-it-faster.advanced.disableStartupChecks": true,
"git.autofetch": false,
"git.openRepositoryInParentFolders": "never",
"github.copilot.editor.enableAutoCompletions": true,
"github.copilot.enable": {
"*": true,
"markdown": true,
"plaintext": false,
"scminput": false
},
"gitlens.mode.active": "zen",
"gitlens.telemetry.enabled": false,
"go.alternateTools": {
"go": "/home/kuldeep/.asdf/installs/golang/1.24.1/go/bin/go"
},
// "go.goroot": "/home/coldter/.asdf/installs/golang/1.21.4/go/",
"go.goroot": "/home/kuldeep/.asdf/installs/golang/1.24.1/go",
"go.toolsManagement.autoUpdate": true,
"javascript.inlayHints.parameterNames.enabled": "all",
"markdown.preview.fontSize": 16,
"numberedBookmarks.navigateThroughAllFiles": "replace",
"prettify-ts.enableHover": false,
"projectManager.git.baseFolders": ["$home/code"],
"projectManager.sortList": "Recent",
"redhat.telemetry.enabled": false,
"security.workspace.trust.enabled": false,
"security.workspace.trust.startupPrompt": "never",
// "terminal.external.linuxExec": "kitty",
// "terminal.explorerKind": "both",
// "terminal.sourceControlRepositoriesKind": "both",
"security.workspace.trust.untrustedFiles": "newWindow",
"sortJSON.orderOverride": [
"name",
"version",
"main",
"module",
"types",
"typings",
"files",
"publishConfig",
"repository",
"scripts",
"prefix",
"description",
"body"
],
"sortJSON.orderUnderride": [
"resolutions",
"dependencies",
"devDependencies",
"peerDependencies",
"cSpell.userWords"
],
"telemetry.telemetryLevel": "off",
"terminal.integrated.cursorBlinking": true,
"terminal.integrated.fontFamily": "'JetBrainsMono Nerd Font Mono','FiraCode Nerd Font Mono','Droid Sans Mono', 'monospace', monospace",
"terminal.integrated.scrollback": 100000,
"terminal.integrated.smoothScrolling": true,
"tooltitude.env": {
"PATH": "/home/kuldeep/.asdf/installs/golang/1.22.4/go/bin:$PATH"
},
// "javascript.inlayHints.variableTypes.enabled": true,
// "typescript.inlayHints.variableTypes.enabled": true,
"typescript.inlayHints.functionLikeReturnTypes.enabled": true,
"typescript.inlayHints.parameterNames.enabled": "all",
"typescript.inlayHints.variableTypes.enabled": true,
"typescript.preferences.importModuleSpecifier": "non-relative",
"vim.foldfix": true,
"vim.handleKeys": {
"<C-K>": true,
"<C-d>": true,
"<C-k>": true,
"<C-s>": false,
"<C-t>": true,
"<C-z>": false
},
"vim.highlightedyank.color": "rgba(230, 97, 89, 0.7)",
"vim.highlightedyank.enable": true,
"vim.highlightedyank.textColor": "white",
"vim.hlsearch": true,
"vim.insertModeKeyBindings": [
{
"after": ["<Esc>"],
"before": ["j", "j"]
},
{
"before": ["<c-t>"],
"commands": ["editor.action.formatSelection"]
}
],
"vim.leader": "<space>",
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": ["leader", "r"],
"commands": ["editor.action.rename"]
},
{
"before": ["leader", "w"],
"commands": [":w!"]
},
{
"before": ["leader", "q"],
"commands": [":q!"]
},
{
"before": ["leader", "x"],
"commands": [":x!"]
},
{
"after": ["g", "g", "V", "G"],
"before": ["<c-a>"]
},
{
"after": ["g", "g", "V", "G"],
"before": ["<c-a>"]
},
{
"after": ["g", "g", "V", "G"],
"before": ["<c-a>"]
},
{
"before": ["<leader>", "k"],
"commands": ["editor.action.showHover"]
},
{
"before": ["]", "d"],
"commands": ["editor.action.marker.next"]
},
{
"before": ["[", "d"],
"commands": ["editor.action.marker.prev"]
},
{
"before": ["<leader>", "c", "a"],
"commands": ["editor.action.quickFix"]
},
{
"after": ["^"],
"before": ["H"]
},
{
"after": ["$"],
"before": ["L"]
},
{
"before": ["<c-p>"],
"commands": ["workbench.action.quickOpen"]
},
{
"before": ["<c-f>"],
"command": ["editor.action.findReferences"]
},
{
"before": ["leader", "f"],
"command": ["editor.action.findReferences"]
},
{
"after": ["\"", "_", "d"],
"before": ["d"]
},
{
"after": ["\"", "_", "D"],
"before": ["D"]
}
],
"vim.useSystemClipboard": true,
"vim.visualModeKeyBindings": [
{
"before": ["leader", "f", "v"],
"commands": ["editor.action.formatSelection"]
},
{
"before": ["leader", "c", "a"],
"commands": ["editor.action.quickFix"]
},
{
"before": ["leader", "f", "s"],
"commands": ["editor.action.formatSelection"]
},
{
"before:": ["<c-t>"],
"commands": ["editor.action.formatSelection"]
}
],
"vim.visualModeKeyBindingsNonRecursive": [
{
"after": ["\"", "_", "d"],
"before": ["d"]
}
],
"vs-kubernetes": {
"vs-kubernetes.minikube-show-information-expiration": "2024-05-19T18:23:00.628Z"
},
"window.dialogStyle": "custom",
"window.menuBarVisibility": "toggle",
"window.titleBarStyle": "custom",
"window.zoomLevel": -1,
"workbench.colorTheme": "Gruvbox Dark Hard",
"workbench.editor.centeredLayoutAutoResize": true,
"workbench.iconTheme": "material-icon-theme",
"workbench.list.smoothScrolling": true,
"workbench.panel.defaultLocation": "right",
"workbench.productIconTheme": "fluent-icons",
"workbench.settings.editor": "json",
"workbench.sideBar.location": "right",
"workbench.startupEditor": "readme",
"zenMode.centerLayout": true,
"zenMode.hideLineNumbers": false,
"zenMode.hideStatusBar": false,
"cSpell.userWords": [
"Avaialibiti",
"basicly",
"favourite",
"medotery",
"nessasary",
"tesseract"
],
"chat.commandCenter.enabled": false,
"continue.enableTabAutocomplete": true,
"explorer.confirmPasteNative": false
}
keybindings.json
[
{
"command": "projectManager.listGitProjects#sideBarGit",
"key": "ctrl+shift+o"
},
{
"command": "workbench.action.toggleSidebarVisibility",
"key": "ctrl+e"
},
{
"command": "workbench.action.toggleSidebarVisibility",
"key": "ctrl+e"
},
{
"command": "workbench.action.toggleSidebarVisibility",
"key": "ctrl+e"
},
{
"command": "workbench.action.toggleSidebarVisibility",
"key": "ctrl+e"
},
{
"command": "renameFile",
"key": "r",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "filesExplorer.copy",
"key": "c",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "filesExplorer.paste",
"key": "p",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "editor.action.addSelectionToNextFindMatch",
"key": "ctrl+n",
"when": "editorFocus"
},
{
"command": "-workbench.action.files.save",
"key": "ctrl+s"
},
{
"command": "saveAll",
"key": "ctrl+s"
},
{
"command": "workbench.action.toggleZenMode",
"key": "ctrl+shift+z"
},
// Place your key bindings in this file to override the defaults
{
"key": "ctrl+alt+]",
"command": "editor.action.outdentLines",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+[",
"command": "-editor.action.outdentLines",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+alt+]",
"command": "markdown.extension.onOutdentLines",
"when": "editorTextFocus && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/"
},
{
"key": "ctrl+[",
"command": "-markdown.extension.onOutdentLines",
"when": "editorTextFocus && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/"
},
{
"key": "ctrl+alt+[",
"command": "editor.action.indentLines",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+]",
"command": "-editor.action.indentLines",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+alt+[",
"command": "markdown.extension.onIndentLines",
"when": "editorTextFocus && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/"
},
{
"key": "ctrl+]",
"command": "-markdown.extension.onIndentLines",
"when": "editorTextFocus && !suggestWidgetVisible && editorLangId =~ /^markdown$|^rmd$|^quarto$/"
},
{
"key": "ctrl+[",
"command": "workbench.action.navigateBack",
"when": "canNavigateBack"
},
{
"key": "ctrl+alt+-",
"command": "-workbench.action.navigateBack",
"when": "canNavigateBack"
},
{
"key": "ctrl+]",
"command": "workbench.action.navigateForward",
"when": "canNavigateForward"
},
{
"key": "ctrl+shift+-",
"command": "-workbench.action.navigateForward",
"when": "canNavigateForward"
},
{
"key": "ctrl+shift+alt+i",
"command": "-workbench.action.chat.openEditSession",
"when": "chatEditingParticipantRegistered && chatIsEnabled && view != 'workbench.panel.chat.view.edits'"
},
{
"key": "ctrl+shift+alt+i",
"command": "-workbench.panel.chatEditing",
"when": "workbench.panel.chat.view.edits.active"
},
{
"key": "ctrl+alt+i",
"command": "-workbench.action.chat.open",
"when": "chatPanelParticipantRegistered || chatSetupInstalled"
},
{
"key": "ctrl+alt+i",
"command": "-workbench.panel.chat",
"when": "workbench.panel.chat.view.copilot.active"
},
{
"key": "ctrl+alt+i",
"command": "continue.focusEditWithoutClear"
},
{
"key": "ctrl+shift+i",
"command": "-continue.focusEditWithoutClear"
},
{
"key": "shift+alt+a",
"command": "continue.applyCodeFromChat"
},
{
"key": "alt+a",
"command": "-continue.applyCodeFromChat"
},
{
"key": "ctrl+k `",
"command": "workbench.action.terminal.moveToEditor",
"when": "terminalHasBeenCreated && terminalIsOpen || terminalIsOpen && terminalProcessSupported"
},
{
"key": "ctrl+k `",
"command": "workbench.action.terminal.moveToTerminalPanel",
"when": "terminalEditorActive && terminalHasBeenCreated || terminalEditorActive && terminalProcessSupported"
}
]
List of extensions
Generated with
code --list-extensions
to generated install command usecode --list-extensions | xargs -L 1 echo code --install-extension
42crunch.vscode-openapi
aaron-bond.better-comments
ahmadalli.vscode-nginx-conf
amirha.better-comments-2
beardedbear.beardedtheme
besthyhy.ejs-eta-beautify
biomejs.biome
chakrounanas.turbo-console-log
charliermarsh.ruff
chunsen.bracket-select
codezombiech.gitignore
continue.continue
davidanson.vscode-markdownlint
decaycs.decay
donjayamanne.githistory
eamodio.gitlens
editorconfig.editorconfig
esbenp.prettier-vscode
foxundermoon.shell-format
github.codespaces
github.remotehub
github.vscode-github-actions
golang.go
graphql.vscode-graphql-syntax
gruntfuggly.todo-tree
james-yu.latex-workshop
jdinhlife.gruvbox
johnpapa.vscode-peacock
keifererikson.nightfox
mads-hartmann.bash-ide-vscode
mechatroner.rainbow-csv
miguelsolorio.fluent-icons
mikestead.dotenv
mrmlnc.vscode-apache
ms-azuretools.vscode-docker
ms-kubernetes-tools.vscode-kubernetes-tools
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
ms-vscode.azure-repos
ms-vscode.makefile-tools
ms-vscode.remote-explorer
ms-vscode.remote-repositories
mylesmurphy.prettify-ts
orta.vscode-twoslash-queries
pepri.subtitles-editor
pkief.material-icon-theme
plex.vscode-protolint
raunofreiberg.vesper
redhat.vscode-xml
redhat.vscode-yaml
richie5um2.vscode-sort-json
rogalmic.bash-debug
rust-lang.rust-analyzer
sainnhe.everforest
shadowtime2000.eta-vscode
streetsidesoftware.code-spell-checker
tamasfe.even-better-toml
teabyii.ayu
timonwong.shellcheck
tomrijndorp.find-it-faster
tooltitudeteam.tooltitude
usernamehw.errorlens
vscodevim.vim
wmaurer.change-case
xaver.clang-format
yoavbls.pretty-ts-errors
yy0931.vscode-sqlite3-editor
yzhang.markdown-all-in-one
ziyasal.vscode-open-in-github
zxh404.vscode-proto3
Theme
I mostly switch between gruvbo and ayu dark
I’m currently tryout some neovim, but it’s very foreign to me right now. But for now vscode works for me.