Skip to main content

[VsCode] Config

Plugins

Common plugins

  • Everforest -- theme

    "workbench.colorTheme": "Everforest Dark",
    "everforest.italicKeywords": true,
    "everforest.italicComments": true,
  • Code Runner -- run code

  • Github Copilot -- autocomplete code

  • GitLens -- Supercharge Git in vscode

  • Material Icon Theme

    "workbench.iconTheme": "material-icon-theme",
  • Project Manager

    // settings.json
    "projectManager.git.baseFolders": ["$home/Documents/Code/"],
    "projectManager.sortList": "Recent",

    // keybindings.json
    {
    "command": "projectManager.listGitProjects#sideBarGit",
    "key": "cmd+o"
    }
  • YAML -- YAML Language Suppor

    "[yaml]": {
    "editor.defaultFormatter": "redhat.vscode-yaml",
    "editor.formatOnSave": true
    },
    "yaml.format.enable": true,
    "yaml.completion": true,
  • Prettier -- Formatter

  • picgo -- upload images

    if u forget your GitHub tokens, u cant find it in the blew file data.json

    // picgo
    // the data.json saved all the uploaded imgs info
    "picgo.dataPath": "$home/Library/Application Support/picgo/data.json",
    "picgo.picBed.current": "github",
    "picgo.picBed.github.repo": "<your name>/<repo>",
    "picgo.picBed.github.branch": "main",
    "picgo.picBed.github.path": "<fold>/",
    "picgo.picBed.github.customUrl": "https://cdn.jsdelivr.net/gh/<your name>/<repo>",
    "picgo.picBed.github.token": "<your token>",
  • Markdown All in One -- Markdown Support

    "markdown.preview.fontFamily": "RecMonoCasual Nerd Font",
    "[markdown]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnPaste": true
    },
  • IntelliCode -- AI assisted development

  • Thunder Client -- lightweight Rest API Client

  • Vim

    // vim
    "vim.easymotion": true,
    "vim.incsearch": true,
    "vim.useSystemClipboard": true,
    "vim.useCtrlKeys": true,
    "vim.hlsearch": true,
    "vim.foldfix": true,
    "vim.leader": "<space>",
    // To improve performance
    "extensions.experimental.affinity": {
    "vscodevim.vim": 1
    },
    "vim.visualModeKeyBindingsNonRecursive": [
    {
    "before": ["p"],
    "after": ["p", "g", "v", "y"]
    },
    {
    "before": [">"],
    "commands": ["editor.action.indentLines"]
    },
    {
    "before": ["<"],
    "commands": ["editor.action.outdentLines"]
    }
    ],
    "vim.insertModeKeyBindingsNonRecursive": [
    { "before": ["<C-h>"], "after": ["<Left>"] },
    { "before": ["<C-j>"], "after": ["<Down>"] },
    { "before": ["<C-k>"], "after": ["<Up>"] },
    { "before": ["<C-l>"], "after": ["<Right>"] }
    ],
    "vim.normalModeKeyBindingsNonRecursive": [
    {
    "before": ["<leader>nh"],
    "commands": [":nohl"]
    },
    {
    "before": ["leader", "r"],
    "commands": ["editor.action.rename"]
    },
    {
    "before": ["leader", "w"],
    "commands": [":w"]
    },
    {
    "before": ["<leader>", "c", "a"],
    "commands": ["editor.action.quickFix"]
    },
    {
    "after": ["^"],
    "before": ["H"]
    },
    {
    "after": ["$"],
    "before": ["L"]
    },
    {
    "before": ["]", "d"],
    "commands": ["editor.action.diagnostic.prev"]
    },
    {
    "before": ["[", "d"],
    "commands": ["editor.action.diagnostic.next"]
    },
    {
    "before": ["g", "r"],
    "commands": ["editor.action.referenceSearch.trigger"]
    },
    {
    "before": ["g", "i"],
    "commands": ["editor.action.peekImplementation"]
    },
    {
    "before": ["g", "p"],
    "commands": ["editor.action.peekDefinition"]
    }
    ],
    "vim.handleKeys": {
    "<C-a>": false,
    "<C-f>": false
    },

Golang plugins

  • Go

    # press cmd+shift+p in vscode and select
    # go Install/Update Tolls

    # install gofumpt
    go install mvdan.cc/gofumpt@latest
    // golang
    "[go]": {
    "editor.defaultFormatter": "golang.go",
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
    "source.organizeImports": "explicit",
    "source.fixAll": "explicit"
    }
    },
    "go.formatTool": "gofumpt",
    "go.lintTool": "golangci-lint",
    "go.lintFlags": ["--fast"],
    "go.toolsManagement.autoUpdate": true,
    "go.inlayHints.constantValues": true,
    "go.inlayHints.parameterNames": true,
    "gopls": {
    "formatting.gofumpt": true,
    "ui.completion.usePlaceholders": true,
    "ui.semanticTokens": true,
    "ui.diagnostic.analyses": {
    "unusedvariable": true,
    "unusedwrite": true,
    "unusedwrite": true
    }
    },

Rust plugins

Settings

Other commons settings ,excluding Go/Rust plugins configurations

{
// theme & font
"workbench.colorTheme": "Everforest Dark",
"everforest.italicKeywords": true,
"everforest.italicComments": true,
"editor.fontSize": 16,
"terminal.integrated.fontSize": 14,
"editor.fontFamily": "RecMonoCasual Nerd Font",
"terminal.integrated.fontFamily": "RecMonoCasual Nerd Font",
"editor.fontLigatures": true,
"workbench.iconTheme": "material-icon-theme",
"workbench.list.smoothScrolling": true,
"window.dialogStyle": "custom",
"window.density.editorTabHeight": "compact",
// extensions
"extensions.autoCheckUpdates": false,
"extensions.autoUpdate": "onlySelectedExtensions",
// search
"search.smartCase": true,
"search.showLineNumbers": true,
// files
"files.autoSave": "afterDelay",
"files.autoGuessEncoding": true,
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
// explorer
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"explorer.compactFolders": false,
"explorer.incrementalNaming": "smart",
// editor
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.stickyTabStops": true,
"editor.tabSize": 4,
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"editor.formatOnType": true,
"editor.insertSpaces": true,
"editor.snippetSuggestions": "top",
"editor.suggest.localityBonus": true,
"editor.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.inlineSuggest.enabled": true,
"editor.linkedEditing": true,
"editor.minimap.enabled": false,
"editor.wordWrap": "on",
"editor.inlayHints.enabled": "on",
"editor.renderWhitespace": "none",
"editor.acceptSuggestionOnEnter": "smart",
"editor.suggestOnTriggerCharacters": true,
"editor.codeActionsOnSave": {
"source.fixAll.markdownlint": "explicit",
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
"editor.suggestSelection": "first",
"editor.semanticTokenColorCustomizations": {
"enabled": true
},
// debug
"debug.showBreakpointsInOverviewRuler": true,
"debug.console.acceptSuggestionOnEnter": "on",
// lua
"[lua]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// json
"json.format.enable": true,
"[json]": {
"editor.quickSuggestions": {
"strings": true
},
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}

Keybinds

all keybindings settings in vscode

[
{
"command": "projectManager.listGitProjects#sideBarGit",
"key": "cmd+o"
},
{
"command": "workbench.action.toggleSidebarVisibility",
"key": "ctrl+e"
},
{
"command": "workbench.files.action.focusFilesExplorer",
"key": "ctrl+e",
"when": "editorTextFocus"
},
{
"command": "workbench.files.action.focusFilesExplorer",
"key": "ctrl+e",
"when": "editorTextFocus"
},
{
"command": "explorer.newFile",
"key": "a",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "renameFile",
"key": "r",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "filesExplorer.copy",
"key": "c",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "filesExplorer.paste",
"key": "p",
"when": "filesExplorerFocus && !inputFocus"
},
{
"command": "deleteFile",
"key": "d",
"when": "filesExplorerFocus && !inputFocus"
},
{
"key": "shift+cmd+/",
"command": "editor.action.blockComment",
"when": "editorTextFocus && !editorReadonly"
},
{
// disable the default block comment keybinding
"key": "shift+alt+a",
"command": "-editor.action.blockComment",
"when": "editorTextFocus && !editorReadonly"
}
]