Part of what I want to do with this site is recommend tools and resources that I’ve found valuable, in the hopes that you might benefit from them and enjoy them as I have.
There has been one program, in particular, that I use most times I’m in a coding session. Sadly, I can’t use it at work, and I miss it dearly. Whenever I open it, I feel a sense of relief, knowing that I am in good hands.
Today, I recommend you try Dash.
Having the documentation at hand for what your working on is a great boost for productivity. I can’t tell you how many times I’ve needed to look up the order of arguments to animate something in CSS or the syntax to copy a file using
scp . Having a way to quickly find the answer you are looking for is crucial for keeping in your flow, and Dash excels at that.
Dash downloads the documentation for languages and frameworks that you use, provides lightning-fast searching for them, and gives you a great user experience to quickly access what you need.
Also, these docs you’ve downloaded are accessible when you’re not on the Internet, perfect for coding while traveling.
Let’s say, for example, you were to type “sort” with the docs I have installed. Dash would immediately bring up the docs for python’s
sort functions, SQLAlchemy’s
MutableList.sort() , a
man page for
sort , jinja’s
sort , and so on. You can see more in the screenshot.
Every result from your search can be quickly accessed and further searched through the keyboard.
Continuing with this example, the first result from searching for “sort” is python’s
list.sort . There’s a “3” on the right side to signify that there are three total matches for “sort” in the python standard library. If I hit
option-return , it’ll pop up a menu to choose between them.
return will bring up the menu to choose between them.
If I know I’m looking for something in python3, I can type “py:”,I believe the default binding is “python:”, but who wants to type all that when you’ve got coding to do? and Dash will narrow its scope to return the docs I want.
On top of that, if you’re still in the search field, you can hit
space , start typing in more letters, and Dash will search and highlight the first match for that term in the currently active document. Hitting
return jumps to the next one.
I can’t tell you how significant this has been to my coding productivity.
Before I go further, I want to pause to mention there are other documentation tools out there that can do similar things. The ones I know of are:
These have a similar functionality of downloading the documentation for languages, frameworks, and tools, and make them are available to search offline. Please give them a try. They may fill your needs. I even use DevDocs at work.
But in my eyes, they just don’t measure up to the experience that I enjoy in Dash. Most of them don’t have anywhere near the number of doc sets available,A partial list of the docs you can download is up on the Dash website. and none of them have as great of an experience as Dash.
But some of these are free and give you a taste of what you can get if you were to pay for Dash.
One of the things I miss the most when I’m not able to use Dash is the way it allows me to quickly explore and jump around the document I’m looking at.
The top of the window has a breadcrumb-like navigation that allows you to click on a segment and drill in to other items. For example, if I were looking up the documentation for python’s
pathlib.Path , the navigation would display
Path . If I click on “Path”, it would display a drop-down where I can choose from the other Classes in the
pathlib module, like
PurePath . Clicking on “Classes” provides a great way to drill down into the modules and methods in
pathlib , as well as the sections of the documentation.
The same ability to see what else is included in the documentation page is available in the lower-left corner of the window as well.
One of the great things about this solution is that it provides an opportunity for “accidental discovery” of documentation that you might not have known about. I’ve learned a lot about the libraries I use every day because I went down a documentation rabbit hole that Dash inspired.My excitement over of python’s
pathlib module is a key example of a library I have discovered, use, and love, thanks to Dash.
What I’ve described so far is the basic functionality for Dash, and it has been enough for me to be very happy with Dash for years.
There are other features that are very useful, including:
- Setting up search profiles, which allow you to set up a collection of docs to search against that can get activated with triggers. Some profiles I have set up include an Arduino profile, that activates when I start the Arduino coding environment, and project-specific profiles with docs for their particular stack.
- Integration with coding environments and other programs. This is great, since as you’re coding you can hit a key combination and immediately get the docs for the word you’re on. Most coding environments can also tell Dash what language you’re currently in, to improve the chances of having the best result pop up.
- “Snippets”, which give you the ability to type a few characters and have them replaced with the text you set up. Most code editors have this functionality already, but Dash’s works just about everywhere.
When it comes down to it, I really appreciate Dash’s ability to keep me in the flow.
I don’t have to go to use a web browser and run the chance of getting distracted on my way to or from the documentation I’m looking for. I can be in and out of the documentation in a minimal amount of time, and right back at it.
Second to that, the ability to explore documentation or discover new-to-me functionality in the code I use has been just as valuable.
Dash is available to download for macOS. It has a free trial that allows you to use all it’s functionality, but after a delay. At the time writing, Dash is $30.
Do you use another solution for your document lookup? Let me know your story.