diff --git a/flake.nix b/flake.nix index c9d99ad..95e2364 100644 --- a/flake.nix +++ b/flake.nix @@ -22,33 +22,24 @@ inherit (inputs.nixpkgs) lib; pkgs = inputs.nixpkgs.legacyPackages.${system}; treefmtEval = inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix; + + runtimeDeps = with pkgs; [ + # mason / tree-sitter + gcc + cargo + nodejs + + # telescope + ripgrep + fd + ]; + src = lib.fileset.toSource { + fileset = lib.fileset.fileFilter (file: file.hasExt "lua") ./.; + root = ./.; + }; in { ### nix {run,shell,build} - packages.default = let - runtimeDeps = with pkgs; [ - # mason / tree-sitter - gcc - cargo - nodejs - - # telescope - ripgrep - fd - ]; - - src = lib.fileset.toSource { - fileset = lib.fileset.fileFilter (file: file.hasExt "lua") ./.; - root = ./.; - }; - in - pkgs.wrapNeovimUnstable pkgs.neovim-unwrapped - (pkgs.neovimUtils.makeNeovimConfig { - customRC = '' - set runtimepath^=${src} - source ${src}/init.lua - ''; - } - // {wrapperArgs = ["--prefix" "PATH" ":" "${lib.makeBinPath runtimeDeps}"];}); + packages.default = pkgs.callPackage ./package.nix {inherit runtimeDeps src;}; ### nix fmt formatter = treefmtEval.config.build.wrapper; diff --git a/package.nix b/package.nix new file mode 100644 index 0000000..d9ff22a --- /dev/null +++ b/package.nix @@ -0,0 +1,18 @@ +{ + lib, + wrapNeovimUnstable, + neovim-unwrapped, + neovimUtils, + runtimeDeps ? null, + src ? null, + ... +} @ args: +wrapNeovimUnstable neovim-unwrapped (neovimUtils.makeNeovimConfig args + // { + # FIXME: append instead of override the entire wrapperArgs + wrapperArgs = ["--prefix" "PATH" ":" "${lib.makeBinPath runtimeDeps}"]; + luaRcContent = '' + vim.cmd [[set runtimepath^=${src}]] + ${builtins.readFile "${src}/init.lua"} + ''; + })