My Essential VSCode Extensions
Tags: vscode, productivity
Published: 2020-07-20 23:05:07

## Contents
  - [Utilities](#utilities)
    - [Vim](#vim)
    - [GitLens](#gitlens)
    - [ErrorLens](#errorlens)
    - [Trailing Spaces](#trailing-spaces)
    - [TODO Highlight](#todo-highlight)
  - [Themes](#themes)
    - [Light Theme](#light-theme)
    - [Dark Theme](#dark-theme)
  - [Languages](#languages)
    - [C/C++](#cc)
    - [CMake & CMake Tools](#cmake--cmake-tools)
    - [Rust](#rust)
    - [Shader languages support](#shader-languages-support)
    - [Markdown All in One](#markdown-all-in-one)

---

Visual Studio code is by far my weapon of choice for most of my development work.  
I also use NeoVim from time to time and regular old Visual Studio and XCode for more specific needs.  
However, I always tend to gravitate back to VSCode. After all, it is a kinda lightweight (not as much as Vim, but waay more than any IDE), trivial to configure, and super extensible.  
With the right extensions, it can be almost as powerful as a fully fledged IDE.  

I'm probably missing many cool extensions, so let me know in the comments if I left out any one you like 😁

---

## Utilities
![MixBoard](https://dev-to-uploads.s3.amazonaws.com/i/iqioaamusc126dcum68i.jpg)
### Vim
The Hanna Montana of the code editors, it's the best of both worlds 🎶  
The navigation and functionality of Vim, with the easy of use and configuration of VSCode.  
I simply can't live without it.  
[Link](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim)

### GitLens
The default Git support on steroids.  
[Link](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)

### ErrorLens
Displays error and warning messages inline.  
Quite useful when using the Vim extension.  
[Link](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens)

### Trailing Spaces
Simply puts in red the trailing white spaces of each line (if any).
Great to keep files clean and nice before sending them to review.  
[Link](https://marketplace.visualstudio.com/items?itemName=shardulm94.trailing-spaces)

### TODO Highlight
Highligths usual comments such as TODO, FIXME, etc.  
You can also configure your own, with custom colors.  
[Link](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight)

---

## Themes
![Wardrobe](https://dev-to-uploads.s3.amazonaws.com/i/1ml4ewax9pab941gd8du.jpg)
I switch color themes **very** often, however, these are the ones that I'm using at the moment.
### Light Theme
I find light thems easier to read and less tiring for the eyes, however, there is a lot less diversity and quality of light themes compared to dark ones.  
The default **Light+** works fine enough for now.
### Dark Theme
For late night coding sessions I still like to use dark themes. Good old [Gruvbox](https://marketplace.visualstudio.com/items?itemName=tomphilbin.gruvbox-themes) is my favorite atm. Warm and colorful, with great syntaxis highlighting.

---

## Languages
![Code](https://dev-to-uploads.s3.amazonaws.com/i/ibfkvizsl86r5govls5u.jpg)
This will heavily depend on what languages you use, but I'll share my stack, in case someone finds it useful.
Pretty basic collection.

### C/C++
Microsoft's must have if you write C/C++ code.
Provides auto-completion, code navigation and debugging tools.
Intellisense is just great.  
[Link](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)

### CMake & CMake Tools
If you write C/C++, you probably remember CMake from your PTSD flashbacks.
Bad jokes aside, this couple of extensions makes your life a little easier, which is always welcome.  
[Language Support](https://marketplace.visualstudio.com/items?itemName=twxs.cmake)  
[Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools)

### Rust
I'm currently learning Rust, so this extension comes really handy.
It provides IDE features for the Rust language, but keep in mind that it needs a separate language server (the extension will download and install it anyway if you don't have it already).  
[Link](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust)

### Shader languages support
Quite limited, but at least makes easier to work with GLSL/HLSL shaders.  
[Link](https://marketplace.visualstudio.com/items?itemName=slevesque.shader)

For Unity's shaderlab, I use [ShaderlabVSCode(free)](https://marketplace.visualstudio.com/items?itemName=amlovey.shaderlabvscodefree)
If you work with Metal, I guess [Metal Shader Extension](https://marketplace.visualstudio.com/items?itemName=doublebuffer.metal-shader) should work fine, but I haven't tried it myself (yet).

### Markdown All in One
Live preview for markdown files with some extra cool things such as an auto table of contents.  
[Link](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)

---

_Cover photo by [Todd Quackenbush](https://unsplash.com/photos/IClZBVw5W5A)_
_Utilities photo by [Abigail Keenan](https://unsplash.com/photos/QdEn9s5Q_4w)_
_Themes Photo by [Burgess Milner](https://unsplash.com/photos/OYYE4g-I5ZQ)_
_Languages photo by [Chris Reid](https://unsplash.com/photos/ieic5Tq8YMk)_