VS Code Extensions

Tips

  • To save without formatting the file: CTRL + K, then S
  • Regular Expression searches accept capture groups:
# search:
<li><a href="(.*?)">(.*?)</a></li>
# replace:
[$2]($1)

Extensions and Configuration

General
  • Remove annoying html file handler: sudo rm /usr/share/applications/code-url-handler.desktop
  • My favourite themes:
    • Dark: Dark Modern
    • Light: Solarized Light
  • "search.useIgnoreFiles": false: Is a tricky option; if active, you get no noise but also won't find any or inside .gitignored but existing files; if inactive, you get lots of search noise, like same file twice (as if VSCode was traversing through an upper folder).
Extensions - My personal must-haves

You can also setup workspace recommended extensions, very handy for example if you use both normal VS Code and the Insiders/beta version.

Extensions - Other useful ones
My Settings
{
    "workbench.startupEditor": "newUntitledFile",
    "editor.minimap.renderCharacters": false,
    "editor.minimap.size": "fit",
    "editor.minimap.maxColumn": 60,
    "editor.minimap.scale": 1,
    "editor.fontFamily": "'monospace', monospace, 'Droid Sans Mono', 'Droid Sans Fallback'",
    "editor.renderWhitespace": "boundary",
    "editor.wordWrap": "on",
    "editor.rulers": [
        120
    ],
    "editor.wordWrapColumn": 120,
    "terminal.integrated.fontFamily": "'monospace'",
    "terminal.integrated.lineHeight": 1,
    "terminal.integrated.gpuAcceleration": "auto",
    "terminal.integrated.fontSize": 14,
    "editor.fontSize": 14,
    "window.zoomLevel": 0.5,
    "files.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/.tx": true,
        "**/.idea": true,
        "**/CVS": true,
        "**/.DS_Store": true,
        "**/*.pyc": true,
        "**/.gitattributes": true,
        "**/.github": true,
        "**/.mypy_cache": true,
        "**/__pycache__": true,
        "**/.vscode": true,
        "**/.cache": true,
        "**/.pytest_cache": true,
        "**/.classpath": true,
        "**/.project": true,
        "**/.settings": true,
        "**/.factorypath": true
    },
    "files.trimFinalNewlines": true,
    "files.trimTrailingWhitespace": true,
    "explorer.confirmDelete": false,
    "telemetry.telemetryLevel": "off",
    "editor.colorDecorators": false,
    // "format": "beautify"
    // "format": "keep-breaks" (minimize multiline)
    // "format": "" (empty to minimize)
    "CleanCSS.options": {
        "format": ""
    },
    "files.associations": {
        "*.content": "html",
        "*.template": "html"
    },
    "breadcrumbs.enabled": true,
    "python.linting.enabled": true,
    "python.linting.pycodestyleEnabled": true,
    "python.linting.pycodestyleArgs": ["--max-line-length=120"],
    "python.linting.flake8Enabled": true,
    "python.linting.flake8Args": ["--max-line-length=120"],
    "python.linting.mypyEnabled": true,
    "python.linting.pylintEnabled": false,
    "editor.copyWithSyntaxHighlighting": false,
    "window.titleBarStyle": "custom",
    "editor.formatOnSave": false,
    "editor.gotoLocation.multipleDefinitions": "goto",
    "workbench.editor.enablePreviewFromQuickOpen": false,
    "workbench.editor.wrapTabs": true,
    "workbench.editor.tabSizing": "shrink",
    "workbench.editor.decorations.colors": false,
    "workbench.editor.decorations.badges": false,
    "[python]": {},
    "[markdown]": {
        "files.trimTrailingWhitespace": false
    },
    "extensions.ignoreRecommendations": false,
    "editor.suggestSelection": "first",
    "markdown.preview.doubleClickToSwitchToEditor": false,
    "python.languageServer": "Default",
    "workbench.editorAssociations": {
        "*.ipynb": "jupyter-notebook"
    },
    "terminal.integrated.scrollback": 5000,
    "notebook.cellToolbarLocation": {
        "default": "right",
        "jupyter-notebook": "left"
    },
    "security.workspace.trust.untrustedFiles": "open",
    "editor.guides.bracketPairs": true,
    "editor.bracketPairColorization.enabled": true,
    "editor.hover.above": false,
    "[javascript]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode",
      "editor.formatOnSave": true
    },
    "[typescript]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode",
      "editor.formatOnSave": true
    },
    "[css]": {
        "editor.defaultFormatter": "aeschli.vscode-css-formatter"
    },
    "[html]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "editor.tabSize": 2,
    "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "window.openFoldersInNewWindow": "on",
    "files.watcherExclude": {
        "**/.git/objects/**": true,
        "**/.git/subtree-cache/**": true,
        "**/node_modules/*/**": true
    },
    "workbench.preferredDarkColorTheme": "Abyss",
    "workbench.preferredLightColorTheme": "Solarized Light",
    "workbench.preferredHighContrastLightColorTheme": "Solarized Light",
    "editor.inlineSuggest.enabled": true,
    "workbench.editor.enablePreview": false,
    "typescript.preferences.quoteStyle": "double",
    "javascript.preferences.quoteStyle": "double",
    "eslint.options": {
        "rules": {
            "quotes": "double"
        }
    },
    "javascript.format.enable": false,
    "typescript.format.enable": false,
    "eslint.format.enable": true,
    "eslint.lintTask.enable": true,
    "editor.codeActionsOnSave": {
        "source.fixAll": "explicit"
    },
    "eslint.workingDirectories": [
        {
        "mode": "auto"
        }
    ],
    "eslint.validate": [
        "javascript",
        "typescript",
        "javascriptreact",
        "typescriptreact"
    ],
    "update.mode": "manual",
    "workbench.sideBar.location": "right",
    "bazel.buildifierFixOnFormat": true,
    "bazel.enableCodeLens": true,
    "bazel.queriesShareServer": true,
    "editor.linkedEditing": true,
    "markdown-preview-enhanced.previewTheme": "one-light.css",
    "chat.commandCenter.enabled": false,
    "python.createEnvironment.trigger": "off",
    "files.hotExit": "onExitAndWindowClose",
    "window.restoreWindows": "folders"
}
VS Code Extensions page, written by Kartones