strazi.org is the design of kevin kennedy

An Ode to VSCode

My “ah-ha” moment came when I was working on a Javascript project and I couldn’t remember the name of a method on some Node module.

I typed a period first, and then instinctively started looking for my web browser to look up the docs. This time, however, a popup came up. It had a list of all the available methods somehow, and when I hit one additional key to filter down that list, I had exactly the method I was looking for.

At that point I was not only a convert to VSCode, but I also had to figure out how it knew what it did.

Typescript

As far as I’m concerned, this is the only way to write anything in Javascript. Fighting with types and incomprehensible error messages are worth it simply for the autocompletion. The level of safety and efficiency that one achieves in allowing the machine to recommend exactly what it knows about your project is a magical experience. The more I use it, the more I want to use more of it.

Columns

Not the most exciting feature, but it’s one that I simply never utilized in any previous editors. Before VSCode I used Sublime Text, and working with columns involved using a keyboard shortcut to create one, another to change focus, and potentially another to move a file. It just never felt natural, and it was always a mystery to me which column my next file would show up in.

VSCode has a button that splits up the work area, you can drag files around to different columns, and it just generally works exactly how I would expect it to. I went from switching between single files to viewing three of them side-by-side. I’ll even open up the same file in two different columns, just to see different parts of the file at the same time. It’s great.

Terminal

Any modern day Javascript developer has to learn some basic terminal skills, typically just to be able to run and build a project. The built-in terminal in VSCode is great because of the way it links right to a file when there’s an error in the build process. I’ve also become fond of just keeping an eye on what’s building/running.

Similar to the columns feature, the split terminal feature is something I use all the time. Rather than switching between terminal tabs, I tend to have three terminals open, side-by-side, right underneath my code.

Source Control

Git is not something I’m an expert in, but having it integrated into the editor has made me a far better user of it. Every session I know exactly what files I changed, and the diff view for changes is amazing. I always end up finding little debug statements or file cleanups that I overlooked, and would likely have just committed before. Being able to edit the files directly from that diff view? Perfection.

Complaints?

The only real complaint I have is performance, and it’s only an occasional complaint. VSCode can really slow down when trying to do a find/replace in a large file, or when accidentally saving some generated file and then it tries to format 10,000 lines of code.

Splitting the terminal can take several seconds for the application to do, but once they’re open they respond fine.

Many users will jump to Election and web-based applications as the issue, but the cross platform nature of the application is definitely a big part of its success, so I wouldn’t say that choice is a bad thing. I’d go even further and say it’s much nicer to use than another recently released code editor that is fully native.

Overall I’m really happy this product exists, and the benefits it gives my professional life every day made me want to say thanks.