Unverified Commit 7b6d5d41 authored by linsui's avatar linsui Committed by GitHub
Browse files

nixos/neovim: add runtime file to etc/xdg/nvim (#221832)



Else the files in the runtime can't be accessed from the vimrc. I also remove the /etc. I thought it's a leftover of the old runtime implementation which is replaced in 307b1253.

Co-authored-by: default avatarlinsui <linsui555@gmail.com>
parent 6d9b8796
Loading
Loading
Loading
Loading
+21 −26
Original line number Diff line number Diff line
@@ -4,12 +4,8 @@ with lib;

let
  cfg = config.programs.neovim;

  runtime' = filter (f: f.enable) (attrValues cfg.runtime);

  runtime = pkgs.linkFarm "neovim-runtime" (map (x: { name = "etc/${x.target}"; path = x.source; }) runtime');

in {
in
{
  options.programs.neovim = {
    enable = mkOption {
      type = types.bool;
@@ -115,14 +111,15 @@ in {

      type = with types; attrsOf (submodule (
        { name, config, ... }:
        { options = {
        {
          options = {

            enable = mkOption {
              type = types.bool;
              default = true;
              description = lib.mdDoc ''
                Whether this /etc file should be generated.  This
                option allows specific /etc files to be disabled.
                Whether this runtime directory should be generated.  This
                option allows specific runtime files to be disabled.
              '';
            };

@@ -147,14 +144,9 @@ in {

          };

          config = {
            target = mkDefault name;
            source = mkIf (config.text != null) (
              let name' = "neovim-runtime" + baseNameOf name;
              in mkDefault (pkgs.writeText name' config.text));
          };

        }));
          config.target = mkDefault name;
        }
      ));

    };
  };
@@ -165,14 +157,17 @@ in {
    ];
    environment.variables.EDITOR = mkIf cfg.defaultEditor (mkOverride 900 "nvim");

    programs.neovim.finalPackage = pkgs.wrapNeovim cfg.package {
      inherit (cfg) viAlias vimAlias withPython3 withNodeJs withRuby;
      configure = cfg.configure // {

        customRC = (cfg.configure.customRC or "") + ''
          set runtimepath^=${runtime}/etc
        '';
    environment.etc = listToAttrs (attrValues (mapAttrs
      (name: value: {
        name = "xdg/nvim/${name}";
        value = value // {
          target = "xdg/nvim/${value.target}";
        };
      })
      cfg.runtime));

    programs.neovim.finalPackage = pkgs.wrapNeovim cfg.package {
      inherit (cfg) viAlias vimAlias withPython3 withNodeJs withRuby configure;
    };
  };
}