serve-d icon indicating copy to clipboard operation
serve-d copied to clipboard

Dependencies cannot be found until installed with `served/installDependency`

Open dk949 opened this issue 1 year ago • 1 comments

Versions: Arch Linux, kernel 6.12.9.arch1-1 NVIM v0.10.3 serve-d v0.7.6 with workspace-d v3.7.0 DUB version 1.38.1, built on Jul 7 2024 LDC 1.40.0

If a dependency is added with dub add, the LSP shows the unable to read module `MODULE_NAME`.

If it is added with the served/installDependency notification, everything works, however:

  1. This method ignores the $DUB_HOME variable, instead creating a $HOME/.dub directory
  2. The directory naming scheme is different to the one used by dub. E.g.: dub installs toml into ~/.dub/packages/toml/2.0.1/toml, serve-d installs it into ~/.dub/packages/toml-2.0.1/toml

dk949 avatar Jan 13 '25 21:01 dk949

It looks like the serve-d LSP is looking for the module in the expected directory <package>-<version>, while DUB installs it into <package>/<version>. Probably just need to update serve-d to look in the appropriate directory.

Temporary fix is to go to your DUB packages directory and create a symlink from the DUB installation directory to the serve-d expected directory. Example with raylib:

ln -s raylib-d/5.5.1/ raylib-d-5.5.1

kubgus avatar Feb 24 '25 18:02 kubgus