On Wednesday, during Microsoft Build, Microsoft announced a new code editor called Visual Studio Code. Not an IDE, Code is a full-featured code editor that appears to be based off of the same technology that drives the Atom editor, called Electron. Since it’s running mostly on web technologies, Code will run on Windows, OS X, and Linux.
Code promises to support many different technologies and platforms; at a glance, one could assume the most interesting thing to a C♯ developer like myself may be writing C♯ on OS X. Since I so often work with content management systems, that’s not (usually) an option for me. What appealed to me was the Node.js support and IntelliSense.
IntelliSense is code completion that just works, and works really well. It is eery how intelligent it is, and you’ll find that most Windows developers – even really good ones – are absolutely crippled without IntelliSense. In fact, when I was teaching a coworker how to write Objective-C and work in Xcode, he had more problems with the lack of IntelliSense than he did with the vastly different language.
Clearly there’s room for improvement.
What I do love, however, is having a true, robust debugger for Node.
I’ve discussed debuggers such as
node-inspector in the past. I’m no
stranger to debugging by way of logging messages, but that doesn’t necessarily
mean I enjoy doing so. Having a true debugger available for my use is a huge
productivity boost. Code includes a Node debugger, and it’s great.
This example doesn’t make it seem terribly responsive, but to be fair, I have the entirety of my blog in memory in the array being walked.
Another nice feature of Code is its built-in Markdown previewer. Since this blog is run on Markdown, I like having even a rough preview right beside me.
There is also first-class Git integration. I generally prefer to use the
command line version of
git, but for basic operations it’s convenient to have
Git in the sidebar.
Right now, there’s very little I don’t care for.
I did have some pretty serious issues getting the debugger working. The debugger
requires Mono, which is not packaged with the install. I attempted to install
via Homebrew, but that didn’t seem to work. As it turns out, I had two
versions of Mono installed, an old one in
/usr/bin, and Homebrew’s in
I should note that within half an hour of sharing my frustration on Twitter, I got a helpful reply from Chris Dias:
This may not seem that remarkable, but:
- This was within an hour or two of Code being available.
- Chris Dias is a program manager on the Code team
- He’s the guy in the introductory video on the Code website
That’s some pretty frikkin’ stellar support.
Additionally, I haven’t had the time to explore the depths of Code. There are a ton of other nice features that can be explored. Many of them are featured on the Editing Evolved page on the Code website.
I also haven’t had the time yet to play with doing C♯ development natively on OS X using Code and the new, open-source .NET components. Since so much of my day job involves integrations with many other systems, especially CMSes, it’s not likely I’ll be able to escape my virtual machine.
All told, Code may or may not be for you, but it’s working out really nicely for me so far. I definitely suggest giving it a shot.