diff --git a/flake.lock b/flake.lock index e31bc9b..6877683 100644 --- a/flake.lock +++ b/flake.lock @@ -34,24 +34,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "gen-luarc": { "inputs": { "flake-parts": "flake-parts", @@ -181,11 +163,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", "type": "github" }, "original": { @@ -213,28 +195,12 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", "gen-luarc": "gen-luarc", "nixpkgs": "nixpkgs_2", "presence-nvim": "presence-nvim", "workspace-diagnostics-nvim": "workspace-diagnostics-nvim" } }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "workspace-diagnostics-nvim": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index e1f0205..ecfdaf3 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,6 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; gen-luarc.url = "github:mrcjkb/nix-gen-luarc-json"; # Add bleeding-edge plugins here. @@ -25,7 +24,6 @@ outputs = inputs @ { self, nixpkgs, - flake-utils, gen-luarc, ... }: let @@ -36,51 +34,59 @@ "aarch64-darwin" ]; - # This is where the Neovim derivation is built. - neovim-overlay = import ./nix/neovim-overlay.nix {inherit inputs;}; - inherit (self) outputs; # This is a function that generates an attribute by calling a function you # pass to it, with each system as an argument forAllSystems = nixpkgs.lib.genAttrs supportedSystems; in - flake-utils.lib.eachSystem supportedSystems (system: let - pkgs = import nixpkgs { - inherit system; - overlays = [ - # Import the overlay, so that the final Neovim derivation(s) can be accessed via pkgs. - neovim-overlay - # This adds a function can be used to generate a .luarc.json - # containing the Neovim API all plugins in the workspace directory. - # The generated file can be symlinked in the devShell's shellHook. - gen-luarc.overlays.default - ]; + { + formatter = forAllSystems(system: nixpkgs.legacyPackages.${system}.alejandra); + + overlays = { + neovim-overlay = import ./nix/neovim-overlay.nix {inherit inputs;}; + # You can add this overlay to your NixOS configuration + default = self.outputs.overlays.neovim-overlay; }; - shell = pkgs.mkShell { - name = "nvim-devShell"; - buildInputs = with pkgs; [ - # Tools for Lua and Nix development, useful for editing files in this repo - lua-language-server - nil - stylua - luajitPackages.luacheck - ]; - shellHook = '' - # symlink the .luarc.json generated in the overlay - ln -fs ${pkgs.nvim-luarc-json} .luarc.json - ''; - }; - in { - formatter = nixpkgs.legacyPackages.${system}.alejandra; - packages = rec { - default = nvim; - nvim = pkgs.nvim-pkg; - }; - devShells = { - default = shell; - }; - }) - // { - # You can add this overlay to your NixOS configuration - overlays.default = neovim-overlay; + + packages = forAllSystems (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ self.outputs.overlays.neovim-overlay ]; + }; + in { + nvim-pkg = pkgs.nvim-pkg; + default = self.outputs.packages.${system}.nvim-pkg; + } + ); + + devShells = forAllSystems (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ + self.outputs.overlays.neovim-overlay + gen-luarc.overlays.default + ]; + }; + in { + default = pkgs.mkShell { + name = "nvim-devShell"; + buildInputs = with pkgs; [ + # Tools for Lua and Nix development, useful for editing files in this repo + lua-language-server + nil + stylua + luajitPackages.luacheck + ]; + shellHook = '' + # symlink the .luarc.json generated in the overlay + ln -fs ${pkgs.nvim-luarc-json} .luarc.json + ''; + }; + } + ); + + # templates = { + # }; }; } diff --git a/nix/neovim-overlay.nix b/nix/neovim-overlay.nix index 2e3f2fb..10aab96 100644 --- a/nix/neovim-overlay.nix +++ b/nix/neovim-overlay.nix @@ -120,27 +120,20 @@ with final.pkgs.lib; let # ^ bleeding-edge plugins from flake inputs ]; - extraPackages = with pkgs; - [ - # Dependencies - ripgrep + extraPackages = with pkgs; [ + # Dependencies + ripgrep - # language servers, etc. - asm-lsp # Assembly language server - clang-tools # C/C++ language server - (callPackage ./cpptools.nix {}) # C/C++ debugger from VSCode | https://github.com/microsoft/vscode-cpptools - nil # nix LSP - nodePackages.bash-language-server # Bash language server - lua-language-server - ] - ++ [ - (pkgs.python312.withPackages (python-pkgs: [ - python-pkgs.python-lsp-server - python-pkgs.python-lsp-ruff - python-pkgs.pylsp-mypy - python-pkgs.pylsp-rope - ])) - ]; + # language servers, etc. + asm-lsp # Assembly language server + clang-tools # C/C++ language server + (callPackage ./cpptools.nix {}) # C/C++ debugger from VSCode | https://github.com/microsoft/vscode-cpptools + nil # nix LSP + nodePackages.bash-language-server # Bash language server + lua-language-server + (pkgs.python312.withPackages (python-pkgs: [ python-pkgs.python-lsp-server python-pkgs.python-lsp-ruff python-pkgs.pylsp-rope])) + jsonnet-language-server + ]; in { # This is the neovim derivation # returned by the overlay