These are the places I look for information while I’m hacking, roughly in order:
- The official API reference. I usually keep a tab open here while I’m working as a quick reference.
- Open-source packages, both the official GitHub ones and otherwise. I’ll often hunt down the implementation of a specific feature I want to emulate by trying to see how someone else already did it. It’s also a good way to track down support libraries that already exist; this is how I found out about Emissary, for example.
/Applications/Atom.app, especially for
EditorView internals, undocumented methods, and so on. Most recently I’ve been tracing through
EditorView to figure out the best way to persistently attach a CSS class to certain
.line elements, for example.
I will say that the built-in “Create a package” command is excellent for bootstrapping plugins, although I was surprised that it didn’t create the package in
I read through the package creation tutorial when I was first getting started, but I haven’t had cause to revisit it much since then. It’s a decent introduction to the major classes in the API and the mechanics of development and publishing, but it’s not really comprehensive.
What would be interesting are a set of follow-on articles for specific topics: event broadcast and subscription, text buffer operations, plugin architecture, writing specs for Views…
As I mentioned, this is the first place I look when I’m hunting for the way to accomplish something specific. It’s a good start, but it is missing some key bits (@abe mentioned the missing
DisplayBufferMarker class, for example).
I’ll echo some others that event documentation is probably the biggest omission: what events are broadcast when.
Yes, I’ve referred to a bunch of the open-source packages for guidance. I hunted down how to write view specs from
vim-mode, I think.
The most important thing
Keep adding content to the API documentation; keep providing high-quality examples. Make sure that API stability is made clear, moving forward.
Overall, I’ve been having a lot of fun hacking on Atom, and I’m looking forward to seeing where it goes in the future.
@ProbablyCorey: By the way, what’s the best channel for requesting additions to the API? The feedback button, topics here… ?