My editor of choice these days is Atom. Part of what makes Atom so great is its package ecosystem. However, the sheer number of packages available can often be intimidating and confusing. I thought I'd share the highlights of what's currently in my Atom configuration and hopefully provide some package-navigation guidance people who may be thinking of giving Atom a try as well as Atom veterans.
The most important Atom linting package, of course, is
linter. This gives all the language-specific linters a framework to plug into inside Atom, letting them display linting messages on screen as you type.
I always use
Editing and Writing Code
I don't know how I lived without
color-picker. Right-click and you can pull up a color picker that spits out the value you want in RGB, HSL, hex, etc.
Another must-have color package is
pigments. This shows all instances of colors against a background of that color. So when you type
#2c64af, it'll actually show you what color that is (it's a soft blue). This is particularly useful when you're working in something like Sass, where colors can take their values from variables.
Atom has a way to use EditorConfig with the
editorconfig package. This is a must-have for maintaining a consistent coding style when people in your project are working in different editors or IDEs. It reads its settings from the
.editorconfig file in your project.
One of the most useful packages is
emmet, which lets you expand abbreviations so you can avoid typing the same repetitive sequences over and over. This is particularly important when you're writing HTML or CSS.
Another package you'll want for writing HTML is
autoclose-html. When you type
<li> it'll automatically add
</li> for you. This also works when you're writing JSX.
sort-lines for assisting with some extremely tedious sorting (obviously).
atom-pair package to do remote pair-programming sessions. There are even hooks for integrating this with Slack and HipChat.
If what you're doing touches the web, you'll most likely need the
open-in-browser package. If you are sticking with Sublime simply because that feature is built in, now might be the time to switch.
Speaking of Git, here are a lot of packages to make Git work nicely inside Atom, without having to bring up the Git command line for many common tasks. My favorite is
atomatigit have their devoted followers.
If you're working in React, check out
nuclide. It's a pretty spiffy IDE for React projects. I'm excited to see it continue to develop.
Now that I've switched to Atom completely, I find myself missing the old built-in Tetris game in emacs (
M-x tetris). Thank goodness for the Atom package
What did I miss? What are your favorite Atom packages? Let me know below!