dash-docs-el / helm-dash

Browse Dash docsets inside emacs
511 stars 59 forks source link

Feature request: On Mac, automatically install docsets downloaded by Dash application #162

Open rswgnu opened 7 years ago

rswgnu commented 7 years ago

A common scenario might be that a Mac user starts with the Dash application, downloads a bunch of docsets and uses that application. Then he decides he wants Emacs integration, so he installs helm-dash. But then he has no way to utilize those docsets without installing each docset again under helm-dash.

The mechanics to solve this are all already in the helm-dash package. You have the standard directory where Dash installs docsets, the subdirectory where the .tgz is kept and you have a way to install a docset from an existing .tgz file.

So the request is that when helm-dash-common-docsets is nil and docsets can be found, then locally install them (either use or recreate the SQLite database from the .tgz file) and add them automatically to helm-dash-common-docsets.

This would provide a nice out-of-the-box experience for new users who started with Dash rather than the current experience where none of the existing local docsets are seen or utilized.

By the way, helm-dash is great once set up. Thanks for the work.

kidd commented 7 years ago

Hello, There is the variable `helm-dash-docsets-path' which tries to be smart and use the original dash's docsets path "~/Library/Application Support/Dash/DocSets". We shouldn't be reinstalling the docset anywhere as we can reuse the files used by dash.

But it's true that there's a second part to having a docset really active, which is have it in helm-dash-common-docsets. Defaulting to * might be an option.

rswgnu commented 7 years ago

On Fri, Sep 8, 2017 at 5:09 AM, Raimon Grau (rgrau) < notifications@github.com> wrote:

Hello, There is the variable `helm-dash-docsets-path' which tries to be smart and use the original dash's docsets path "~/Library/Application Support/Dash/DocSets". We shouldn't be reinstalling the docset anywhere as we can reuse the files used by dash.

But it's true that there's a second part to having a docset really active, which is have it in helm-dash-common-docsets. Defaulting to * might be an option.

​Yes, but it seems you also need to unpack and scan the .tgz archive for each dockset. Try setting helm-dash-common-docsets to a list of the docksets found in that directory. That alone will not work based on my experience.

So yes, we want to reuse the docksets but the way the code is now, it won't recognize any until a full "install" is run on each one that is already stored locally and that install includes retrieving the dockset from a remote location again. This repeated installation process is what needs fixing in addition to making all of the existing docsets active by default.

Bob ​

jsmestad commented 5 years ago

Came here to request this exact feature. Especially for using docsets that are generated off of npm or hex packages.

kidd commented 5 years ago

I don't have the original Dash (not even a Mac), so I can't try it for myself...

From the initial description, it seems we already have everything there, we just need an helm-dash-import-from-original-dash-tgzs function that does the plumbing, right?

I thought that dash worked with the untgzed files already so we could just reuse those.