programs.neovim: link packpath dir in XDG_DATA_HOME (#3717)

link the packpath in expected folder so that even unwrapped neovim can pick home-manager's plugins.

I sometimes need to run neovim not wrapped/configured by nix (when
developing neovim or when other projects bring their own neovim in
PATH). Currently they dont find plugins installed by home-manager in the
cases where packpath is not set to the generated nix packpath directory.
With this change, neovim can discover HM-installed plugins by itself.
This commit is contained in:
Matthieu Coudron 2023-03-28 10:40:39 +02:00 committed by GitHub
parent cf662b6c98
commit deb2f59b5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -394,6 +394,14 @@ in {
home.sessionVariables = mkIf cfg.defaultEditor { EDITOR = "nvim"; };
# link the packpath in expected folder so that even unwrapped neovim can pick
# home-manager's plugins
xdg.dataFile = mkMerge (mapAttrsToList (name: val: {
"nvim/site" = {
source = pkgs.vimUtils.packDir neovimConfig.packpathDirs;
};
}) neovimConfig.packpathDirs);
xdg.configFile =
let hasLuaConfig = hasAttr "lua" config.programs.neovim.generatedConfigs;
in mkMerge (