Title: VS Code and Cursor Extensions
Slug: vscode-extensions
Author: Kartones
Lang: en
Description: A curated list of favourite VS Code, Cursor, and other VS Code-fork IDE extensions, plus usage tips.

My favourite [VS Code](https://code.visualstudio.com/download){:target="\_blank"}, [Cursor](https://www.cursor.com/){:target="\_blank"} and other VS Code family (forks) IDE extensions.

### Tips

- Note that some Microsoft-owned extensions are **not** available for Cursor and other VS Code forks.
- 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)
```
- If you have multiple VS Code instances with different workspaces, you can easily distinguish them by changing the border color, via the following *workspace settings*:
```json
"workbench.colorCustomizations": {
    "window.activeBorder": "#596a8f",
}
```
- VS Code by default hides some folders, like `.vscode`, `.git` and `.github`. You can un-hide them by opening the settings and searching for "`Hide`"; One of the results is a list of hiding rules, where you can remove some of them.

### 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).
- Setup `code` command for the terminal (to open VS Code from any folder, or with a given file): Open the Command Palette `Shift` + `Control` + `P` (Linux) or `Shift` + `⌘` + `P` (macOS) and search for or type `Shell Command: Install 'code'`.

##### Extensions - My personal must-haves

You can also setup [workspace recommended extensions](https://code.visualstudio.com/docs/editor/extension-marketplace#_workspace-recommended-extensions), very handy for example if you use both normal VS Code and the Insiders/beta version.

- [Auto Rename Tag](https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag){:target="\_blank"}
- [Babel Javascript](https://marketplace.visualstudio.com/items?itemName=mgmcdermott.vscode-language-babel){:target="\_blank"}
- [Container Tools](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-containers){:target="\_blank"}
- [CSS Compressor](https://marketplace.visualstudio.com/items?itemName=bestvow.css-compressor){:target="\_blank"}
- [CSS Formatter](https://marketplace.visualstudio.com/items?itemName=aeschli.vscode-css-formatter){:target="\_blank"}
- [Diff](https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-diff){:target="\_blank"}
- [Docker](https://marketplace.visualstudio.com/items?itemName=PeterJausovec.vscode-docker){:target="\_blank"} (to be replaced in the future by `Container Tools`)
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint){:target="\_blank"}
- [Flake8](https://marketplace.visualstudio.com/items?itemName=ms-python.flake8){:target="\_blank"}
- [Hexeditor](https://marketplace.visualstudio.com/items?itemName=ms-vscode.hexeditor){:target="\_blank"}
- [Highlight Bad Chars](https://marketplace.visualstudio.com/items?itemName=wengerk.highlight-bad-chars){:target="\_blank"}
- [Markdown Preview Enhanced](https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced){:target="\_blank"}
- [Mypy Type Checker](https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker){:target="\_blank"}
- [Output Colorizer](https://marketplace.visualstudio.com/items?itemName=IBM.output-colorizer){:target="\_blank"}
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode){:target="\_blank"}
- [Prettify JSON](https://marketplace.visualstudio.com/items?itemName=mohsen1.prettify-json){:target="\_blank"}
- [Python Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-python.python){:target="\_blank"} + [setup instructions](https://code.visualstudio.com/docs/python/python-tutorial){:target="\_blank"}
- [Python Environments](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-python-envs){:target="\_blank"}
- [Pylint](https://marketplace.visualstudio.com/items?itemName=ms-python.pylint){:target="\_blank"}
- [Rainbow CSV](https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv){:target="\_blank"}
- [Ruff](https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff){:target="\_blank"}


##### Extensions - Other useful ones

- [Bazel](https://marketplace.visualstudio.com/items?itemName=BazelBuild.vscode-bazel){:target="\_blank"}
- [Clangd](https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd){:target="\_blank"}: clangd language server.
- [CMake Highlight](https://marketplace.visualstudio.com/items?itemName=zchrissirhcz.cmake-highlight){:target="\_blank"}
- [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb){:target="\_blank"}: LLDB-based debugger, for C++, Rust and other compiled languages.
- [Continue](https://marketplace.visualstudio.com/items?itemName=Continue.continue){:target="\_blank"}: Coding assistant with support for local models. Add them to the the extension config's `models` list ([setup info](https://www.pedroalonso.net/blog/local-ai-assitance-with-continue-ollama-vscode/){:target="\_blank"}), e.g.:

```
{
    "title": "Gemma 2 27B",
    "provider": "ollama",
    "model": "gemma2:27b"
},
{
    "title": "Phi 4",
    "provider": "ollama",
    "model": "phi4:latest"
}
```

- [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph){:target="\_blank"}
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot){:target="\_blank"}
- [GitHub Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat){:target="\_blank"}
- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens){:target="\_blank"}: Remember to have `"git.enabled": true`. I've set the current line format to `"gitlens.currentLine.format": "${ago}"`.
- [Go Extension Pack](https://marketplace.visualstudio.com/items?itemName=golang.Go){:target="\_blank"} + [setup instructions](https://learn.microsoft.com/en-us/azure/developer/go/configure-visual-studio-code){:target="\_blank"}
- [iCalendar](https://marketplace.visualstudio.com/items?itemName=af4jm.vscode-icalendar){:target="\_blank"}
- [Java Extension Pack](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack){:target="\_blank"}
- [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer){:target="\_blank"}
- [Mermaid Chart](https://marketplace.visualstudio.com/items?itemName=MermaidChart.vscode-mermaid-chart){:target="\_blank"} or [Mermaid Preview](https://marketplace.visualstudio.com/items?itemName=vstirbu.vscode-mermaid-preview){:target="\_blank"}
- [PostgreSQL](https://marketplace.visualstudio.com/items?itemName=ms-ossdata.vscode-pgsql){:target="\_blank"}
- [React Extension Pack](https://marketplace.visualstudio.com/items?itemName=jawandarajbir.react-vscode-extension-pack){:target="\_blank"}
- [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack){:target="\_blank"}
- [VS Live Share](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare){:target="\_blank"}
- [Word Count](https://marketplace.visualstudio.com/items?itemName=rido3.wordcount){:target="\_blank"}
- [XML Tools](https://marketplace.visualstudio.com/items?itemName=DotJoshJohnson.xml){:target="\_blank"}
