Header Image Back in my article Comparing Node.js and JavaScript IDEs. I wrote a few things like:

  • Not a ton of commands and support for other languages built in
  • No plugin system
  • No support for ES6

Most of these issues stemmed from having no plugin or extension system. With the 1.0 release and their open source release, they’ve gone from one of my “just okay” editors to being a top editor. They now have an extension system which has a lot of features with more commands and languages built in.

It has excellent support for TypeScript, with being able to click on any variable or method and go to the declaration for that. Using the launch.json file you can run it as a TypeScript project and even add extra steps to the launch process.

The JavaScript support is probably the best I’ve seen in any editor. If you declare a JavaScript object, VSCode will know exactly what’s inside of it and what type it is (unless you modify the object). It seems to be attempting to generating TypeScript types for JavaScript objects and then using those to provide intellisense. I’m a big fan of their intellisense and I’d consider it one of the best (if not the best) in JavaScript editors.

I’m also a big fan of their React Native support, which was recently added due to their fork of React Native to add Windows support. On my Macbook I can just start debugging on an iOS device, and even without Xcode open it will compile the objc and run it in the simulator. The breakpoints in the editor then pop up helpful information in the debug pane and I can go through closures, globals, and local variables. So far VSCode has the best support for React Native.

From what I can tell, VSCode is trying to bring support to many of the languages that Visual Studio has. There’s official support for the C# and C/C++ extensions that you can install, which appear to be working very well with VSCode. There’s also extensions for other languages like Python, Go, Ruby, PHP, and several more. While I haven’t used any other languages (except a bit of objc) their support seems really good, and with some being officially supported by Microsoft, I don’t doubt that they’ll only get better.

With VSCode not always having extensions, there’s a lack of extensions that you can install. For instance, I’m a big fan of json5 for configuration files. There’s no support however for this type of file in VSCode, while Atom (a similar editor using the same set of technologies) has had one for more than a year. With the entire editor written in TypeScript, I feel like in the future there will be more extensions that are more stable than their Atom counterparts.

Besides a lack of extensions, I can’t find very many faults or bugs in VSCode. It’s a very solid editor with great Git and extension support. If you’re looking for an editor to use for your TypeScript/flow/JavaScript project, I’d highly suggest VSCode.