Featured image
Moving to VSCode from IntelliJ

I have been using IntelliJ (or an Jetbrains editor) for around a decade now and I started to realize that I’m getting used to the some of the issues that I have always had IntelliJ like its execessive resource usage, plugin issues, random crashes its expensive cost for license, etc.

One day a couple of months ago, I was on a call with a colleague and saw he was using VSCode. I had heard that VSCode has gotten much better recently and thought to give it a shot. I setup VSCode and now I have uninstalled IntelliJ entirely. VSCode is not perfect and honestly it can potentially have all the above problems (maybe even more), but that’s the beauty of it. VSCode is so configurable that you tune it to your hearts desire.

Difference between IntelliJ and VSCode Link to heading

When I was using IntelliJ anytime I would hear the mention of VSCode I would dismiss it because VSCode was a code editor while IntelliJ was an Integrated Development Environment (IDE). To the uninitiated they might seem the same thing, but there is a significant difference. By definition, an IDE has capabilities like programmiing language based auto complete, support for compiling, running and debugging programs. A code editor is an enhanced WYSWYG (What You See is What You Get) editor which supports reading and writing code.

Similarities between IntelliJ and VSCode Link to heading

VSCode started as a code editor while IntelliJ started as an IDE. Now they are both mature tools and can act as both code editors and IDEs.

  • IntelliJ and VSCode have an extensive plugin ecosystem which allows users to extend their capabilities and configure the editors to their needs.
  • IntelliJ and VSCode have command line intergration tools which allows both tools to be used as for quick command line editing.
  • IntelliJ and VSCode support compiling, running and debugging code.

Why choose VSCode over IntelliJ Link to heading

VSCode has a few features because of which I personally give to VSCode over IntelliJ:

Profiles Link to heading

VSCode supports profiles in which you can setup plugins, editor settings and configurations. This helps if you you are work on multiple tech stacks and have a lot of plugins. Creating multiple profiles with only a few combination of plugins enabled with each profile. For example, I have the Gitlens plugin enabled on all profiles and I created a Terraform profile with the Terraform plugin (not one of the better plugins on VSCode) and I created a Kubernetes profile with the Kubernetes and Helm plugin. When the Terraform plugin is enabled, the Kubernetes and Helm plugin remain disabled. This keeps VSCode running light while not being encumbered by other plugins that might not be used during your current work.

Customizability Link to heading

This might be a subjective factor but in my opinion a big one. VSCode is so customizable that its possible that one setup can be drastically different than the other one. You can configure keybindings, themes, panes, scrolls, etc. The basic settings are good but having an option of this customizability increases productivity.

Open Source Link to heading

VSCode was initally created by Microsoft and then it was open sourced. It is managed in Github which means using VSCode requires no additional cost of licenses and is available on a lot of different platforms.

Extensions Link to heading

VSCode has a tremendous extension marketplace. There is an extension for almost everything.

Migrating from IntelliJ to VSCode Link to heading

Migrating to VSCode from IntelliJ after using IntelliJ for years can be daunting but its not a bad experience.

This migration guide is subject to how I work. YMMV

Getting used to the new interface Link to heading

The command palette (⌘+p) is your friend. All settings, default and extension’s, are accessible through the command palette.

Extensions Link to heading

Some extensions that I use for my VSCode setup are as follows.

Gitlens Link to heading

Supercharge Git with Gitlens.
Gitlens provides features like git blame within the editor, interactive Git history, commit graph, etc. It has a lot of features available in the free tier.

UI/UX improvement extensions Link to heading

Material Icon Theme Link to heading

Material Icon theme updates all the file icons based on material icons. They make the files explorer look cleaner.

One Dark Pro Link to heading

One Dark Pro sets an Atom style dark theme.

Development Link to heading

Apart from language SDKs, I use the following plugins for development

Kubernetes Link to heading

Since I work closely with Kubernetes, the Kubernetes extension is a must have for me. It provides rich support for Kuberentes manifests and clusters. The Helm support is works smoothly when working with helm charts.

GCP Cloud Code plugin Link to heading

When working with GCP, the GCP Cloud Code plugin can be invaluable. It provides access to services like Cloud Run and GKE. It also supports development with Gemini.
The Cloud Code plugin also has Skaffold support which can support deploying and debugging an application to the GKE cluster directly from the IDE.