But the most useful feature in Atom is the package management system. Finding, installing and configuring packages is a snap, and after a couple of years there is already a rich ecosystem of packages available. These are a few that I'm already finding essential:
Go Plus is an aggregation of packages that enhance the Go development experience, providing features like:
- Autocompletion using gocode
- Formatting, adding imports and linting on save
- Symbol renaming
- Test coverage highlighting
This is far from a complete list (the rest are on the package page). The last one of these is by far my favorite, and not something I'd seen before. Whenever you save a go source file, the tester-go package will run the tests in the same package and display coverage information right there in the editor:
This is a huge help when writing tests, giving an up-to-the-second view on how many more tests you probably need to write.
Another one for the list of tools I didn't know I was missing. go-outline provides an outline view of the symbols in the current Go file or package alongside your editor view. This can be invaluable when working on a large Go file.
This package does require that you install the go-outline-parser tool to your PATH yourself, so be sure to check the README.
A nice pairing of a UI theme and a syntax theme that makes code in Atom look a lot like my configuration of Vim, which looked a bit like Sublime…
I dug this one out specifically to work on this blog post, and it's saved me a huge amount of time. jekyll-atom is a suite of tools for working on Jekyll sites, with:
- New post/draft creation
- Shortcut to your config file
- Local serve (with status notification when rebuilding)
- Snippets galore
No matter how many packages you have, there will probably be something you need to dive into the terminal for, but luckily, there are packages to help with just that.
PlatformIO IDE Terminal is a fork of another popular terminal package that I unfortunately couldn't get to work. It provides a full terminal right below your editor, so it's not a huge context switch to go over and run that script you're tweaking.
And more than a couple more
There are plenty of other great packages out there, but if I listed all the ones I've found useful, I'd be here all day (go-plus itself is kind of cheating). Explore for yourself on atom.io, and if you're considering giving Atom a try, don't delay! I can heartily recommend it.