[Request] Consider not set `dash-docs-docsets-path`

Its default value is ~/.docsets, which lives outside of EMACSDIR.

I think the above directory should be shared among profiles as the docsets are relatively heavy, some are even heavier than a Doom installation.

There shouldn’t be a reason to set dash-docs-docsets-path per profile/Emacs distribution.

Also considering sometimes a package or Doom bug that is easily resolved by nuking ~/.config/emacs, setting it under there forces us to move it outside before deleting or perform the expensive task of re-downloading the docsets.

Current Doom settings:

dash-docs-docsets-path (concat doom-data-dir "docsets/")

I propose that we only keep setting when it still exists for old installations:

(let ((legacy-path (concat doom-data-dir "docsets/")))
  (when (file-exists-p legacy-path)
    (setq dash-docs-docsets-path legacy-path)))

then remove that code after sometime, like 2 months.

That is definitely not the correct or recommended approach. Clearing out the straight folders 9/10 is more than enough, and occasionally some files in cache or etc.

Things like the scratch file, project list and autoinstalled LSP servers are saved here; and the latter could also be argued for the same.

If you want them to be elsewhere, you can set it to be anywhere you want.

And FTR, mine are stored by default in ~/Library/Application Support/Dash/DocSets

1 Like

This will resolve itself soon, in 3.0, where Doom will transition to XDG (abandoning $EMACSDIR/.local entirely) and introduce profile-specific sub-directories therein. I.e.

var macos/linux windows
doom-data-dir $XDG_DATA_HOME/doom/ %APPDATA%/doomemacs/data/
doom-cache-dir $XDG_CACHE_HOME/doom/ %APPDATA%/doomemacs/cache/
doom-state-dir (new) $XDG_STATE_HOME/doom/ %APPDATA%/doomemacs/state/
doom-profile-data-dir {doom-data-dir}/@$PROFILE/ same
doom-profile-cache-dir {doom-cache-dir}/@$PROFILE/ same
doom-profile-state-dir {doom-state-dir}/@$PROFILE/ same
doom-profile-dir {doom-profile-data-dir}/@/$VERSION/ same

So doom-data-dir will eventually be shared across all profiles.