How Pro Ruby Developers Customize VS Code
Tags: vscode, ruby, rails, webdev
Published: 2021-02-09 23:15:41

I recently asked twenty-five professional, freelance Ruby developers about their favorite extensions for Visual Studio Code. 

This wasn't a formal survey, just a way to dig into what makes for a great VS Code extension and use that to inform the design of our own [AppMap](https://marketplace.visualstudio.com/items?itemName=appland.appmap) extension.

I tallied the results and a clear picture emerged about which extensions were top of mind for Ruby developers.


### The most popular responses

These are the heavyweights. No big surprises, but it was interesting to see these names appear with such consistency. 

* [**Rubocop**](https://marketplace.visualstudio.com/items?itemName=misogi.ruby-rubocop) - A VS Code interface for the Rubocop static code analyzer.
* [**ESLint**](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - JavaScript Linter. With close to thirteen million downloads, we are all well aware of this one.
* [**Prettier**](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Text formatter.
* [**Ruby**](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) - Provides enhanced Ruby support specific to VS Code.
* [**GitLens**](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) - Provides enhanced Git support specific to VS Code.                


### There was a dropoff and the results got more varied

These extensions are not necessarily less popular in terms of sheer download numbers. They were just not top of mind for these developers. Part of being a great extension is seamlessly blending into and improving an existing workflow. Consequently, some of the best extensions are nearly invisible and rarely thought about.

* [**ERB Formatter**](https://marketplace.visualstudio.com/items?itemName=aliariff.vscode-erb-beautify) - Provides syntax formatting for ERB.
* [**Intellicode**](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode) - AI-assisted development for Java, C#, Python, and a handful of other languages, but not Ruby. 
* [**Docker**](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker) - A VS Code interface for managing containers.
* [**Ruby Solargraph**](https://marketplace.visualstudio.com/items?itemName=castwide.solargraph) - Provides code completion and inline docs for Ruby.
* [**Live Share**](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare) - Enables real-time collaborative coding. 


### Incredibly useful extensions that are not *new* but were new to me

These are two extensions that I discovered during this exercise and added to my own toolkit. I was definitely late to the party on these, but happy to have them now. 

* [**CSS Peek**](https://marketplace.visualstudio.com/items?itemName=pranaygp.vscode-css-peek) - Jump directly to CSS definitions from an `id` or `class name` in HTML.

* [**Todo highlight**](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight) - Highlight `TODO` in your code. 

### The obscure indie

Simple but so useful. 

* [**Rails Routes**](https://marketplace.visualstudio.com/items?itemName=aki77.rails-routes) - Jump to a route definition from wherever it is being called in the code

--- 
One well-known developer responded to my question by pasting his `plugins.json` file into a DM. It actually ended up being interesting to pick through. Kind of like watching the credits of a movie. [Check it out](https://gist.github.com/Daniel-Warner-X/108bde41d2768b54e0511a56bc09e748).

---

If you have any extensions that you really like and think would be useful to a Ruby developer, please comment.

---

### The raw data

| Extension                 | Developer             | Mentions |
|---------------------------|-----------------------|----------|
| Rubocop                   | Misogi                |        9 |
| Prettier                  | Prettier              |        9 |
| ESlint                    | Dirk Baeumer          |        8 |
| VSCode Ruby               | Stafford Bunk         |        8 | 
| Ruby                      | Peng Lv               |        7 | 
| GitLens                   | Eric Amodio           |        6 | 
| ERB Formatter             | Ali Ariff             |        3 |
| Intellicode               | Microsoft             |        3 | 
| Docker                    | Microsoft             |        3 |
| Solargraph                | Castwide              |        3 |
| Live Share                | Microsoft             |        3 |
| ERB                       | Craig Maslowski       |        3 | 
| Live Server               | Ritwick Dey           |        2 |
| Bracket Pair Colorizer    | CoenraadS             |        2 |
| Auto Close Tag            | Jun Han               |        2 |
| vetur                     | Pine Wu               |        2 |
| JS Code Snippets          | charalampos karypidis |        2 |
| Peacock                   | John Papa             |        2 |
| Stylelint                 | Stylelint             |        1 |
| Boostrap 4 snippets       | Zaczero               |        1 |
| Bootstrap 4, Font Awesome | Ashok Koyi            |        1 |
| Pro Snippets              | uncprocore            |        1 |
| Redux DevTools 8          | Jingkai               |        1 |
| Auto Rename Tag           | Jun han               |        1 |
| Error Lens                | Alexander             |        1 |
| Live Server               | Street Side Software  |        1 | 
| Rails Go To Spec          | Sporto                |        1 |
| Better TOML               | Bung cip              |        1 |
| VS Code Elixir            | Matt McLoughlin       |        1 |
| Better HAML               | Karuna Murti          |        1 |
| VS Code PDF               | tomoki1207            |        1 |
| Add New Line To Files     | Jeremy Forsythe       |        1 |
| CSS Peek                  | Pranay Prakash        |        1 |
| Rest Client               | Huachao Mao           |        1 |
| Ruby Linter               | Cody hoover           |        1 |
| Simple Ruby ERB           | Victor Ortiz Heredia  |        1 |
| Trailing Spaces           | Shardul Mahadik       |        1 |
| VS Code Database          | Bajdzis               |        1 |
| Todo Highlight            | Wayou Liu             |        1 |
| Endwise                   | Kai Wood              |        1 |
| Gem Lense                 | ninoseki              |        1 |
| Rails Routes              | aki77                 |        1 |