Tips
- To save without formatting the file:
CTRL
+K
, thenS
- 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
- Dark:
"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.
- Auto Rename Tag
- Babel Javascript
- Code Spell Checker
- CSS Compressor
- CSS Formatter
- Diff
- Docker
- ESLint
- Flake8
- Hexeditor
- Highlight Bad Chars
- iCalendar
- Markdown Preview Enhanced
- Mypy Type Checker
- Output Colorizer
- Prettier
- Prettify JSON
- Python Extension Pack + setup instructions
- Python Environment Manager
- Pylint
- Rainbow CSV
- Remote Development
- Visual Studio IntelliCode
- XML Tools
Extensions - Other useful ones
- Bazel
- CMake Highlight
- Git Graph
- GitHub Copilot
- GitHub Copilot Chat
- GitLens: Remember to have
"git.enabled": true
. I've set the current line format to"gitlens.currentLine.format": "${ago}"
. - Go Extension Pack + setup instructions
- Java Extension Pack
- Live Server
- React Extension Pack
- VS Live Share
- Word Count
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"
}