I’ve been playing with a cool little application called Dash for a while now. It’s a hotkey-based popup with configurable docsets for most major programming languages, including HTML, CSS (plus Less, Bourbon, Compass, Sass, etc.), JavaScript, Cocoa (Mac and iOS), Python, PHP, Ruby, Unix man pages and much more. It also has an iCloud/Dropbox-syncable snippet manager for storing and quickly accessing reusable code, complete with placeholders and cursor location control.
You can add only the docsets you want to use. Each docset can be assigned an abbreviation, so when you pop up the search field you can search within just a single docset as needed.
You can also set up groups of docsets, also with keyword triggers. You can even have these groups trigger automatically based on the current application or a global keyboard shortcut.
Once you locate the function or documentation you’re looking for, you can keep typing to search within the page. For example, if I type “jq:nextuntil example” it will search the jQuery docset for the nextUntil() function, then jump to the “Example:” section of the page. Basically, it’s all the documentation you need on a hotkey with fully keyboard-based search.
In addition to the ever-present global hotkey, Dash also integrates directly with Xcode, Alfred, QuickSilver, LaunchBar, Sublime Text, Emacs, Vim, Terminal and more.
After a couple of months of playing with Dash, my only wish is that it had snippet import from text files. I keep all my code snippets in text files (and nvALT), and get frustrated with Snippet Managers that can’t read them. Seems like a fair enough request, right?
If you write code – in any language – you should take a look at Dash. There’s a free trial on the App Store, and you can get the full version with an in-app purchase.