Dash, by Bogdan Popescu, is a brilliant developer utility that removes friction from two key areas of programming: looking up documentation and reusing code snippets. I haven't played with the snippets manager, and I've only played with the doc browser for a few minutes, but already I notice some excellent things:
- It's fast to open and dismiss with a hotkey.
- It performs fast live-searching as you type into the search field.
- It includes a ton of docsets for a variety of languages and platforms, not just Cocoa and iOS. See the screenshot above for a complete list.
- You can add your own docsets. The Kapeli web site helpfully points you to instructions for creating them.
- It shows an Ingredients-like table of contents listing methods, properties, etc. for the class you're looking at.
- It has options to search Google and StackOverflow, all while staying within the app.
- It handles URLs of the form "dash://foo". If you click on such a URL, the Dash window will open and perform a search for "foo". This can be useful for things like emailing URLs as pointers to documentation, and putting links in one's own notes. Who knows, maybe someday there will be a web site called "Let Me Dash That For You" (although lmdtfy.com is already taken).
In Xcode, URLs are clickable when they appear in comments. Unfortunately, this doesn't work with dash:// URLs. I've filed a Radar requesting the ability to specify more URL schemes for Xcode to recognize. In the meantime, if one wanted clickable links badly enough, I suppose one could run a local HTTP server that converts localhost URLs to Dash URLs. Maybe Dash could have such a server built in? Would it be worth it?
More suggestions:
Add a Service that performs a search, much like a dash:// URL, but using the currently selected text in my frontmost application (which might be Dash itself).[UPDATE: @kapelimac informs me that Dash has had a "Lookup in Dash" Service for quite a while. My fault for not spotting it.]
Auto-detect method names. When I come across a method call like
[obj doThis:xxx withThis:yyy]
I'd like to be able to double-click one of the brackets to select the whole expression, and invoke the above-mentioned Service to perform a search. I'd like Dash to recognize that what I mean to search for is "doThis:withThis:". For extra credit, be able to detect a method name in any string that contains a colon. Or if that's too hard, any string that begins with a square bracket.Add a social element such as Scott Anguish suggested a while back. This might not be a direction Bogdan wants to invest in, but it would be an interesting experiment. Of course, that's easy to say when I'm not the one doing the investing.
[UPDATE: More from @kapelimac: "And another note: Dash has had Wiki pages for each method/class, but no one used them, so I removed them. And: "I plan on adding Disqus threads to all documentation pages, but I'm still waiting on a reply from @disqushelp if they allow it."]
I see from Dash's Twitter feed that Bogdan is quite actively working on the app, and in fact plans to start charging for it with the next release. I encourage you to check it out now while it is free, and to consider buying when Bogdan sets a price on it.
Could you please provide a download link? I live in the country where mac app store is not accessible.
Thank you!
Hi emma,
You'll have to take that up with the developer. You can use Kapeli's contact form or send a tweet to @kapelimac.
Pingback: mattbrickner.com » Blog Archive » Things to check out for May 18, 2012