{ description = "getchoo's neovim config"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-checks.url = "github:getchoo/flake-checks"; }; outputs = { self, nixpkgs, flake-checks, }: let systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = fn: nixpkgs.lib.genAttrs systems ( system: fn { inherit system; pkgs = nixpkgs.legacyPackages.${system}; } ); in { checks = forAllSystems ( { pkgs, ... }: let flake-checks' = flake-checks.lib.mkChecks { root = ./.; inherit pkgs; }; in { inherit (flake-checks') actionlint alejandra selene statix stylua ; } ); devShells = forAllSystems ( { pkgs, system }: { default = pkgs.mkShellNoCC { packages = [ pkgs.actionlint # lua pkgs.lua-language-server pkgs.selene pkgs.stylua # nix self.formatter.${system} pkgs.deadnix pkgs.nil pkgs.statix ]; }; } ); formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-rfc-style); packages = forAllSystems ( { pkgs, system }: let packages' = self.packages.${system}; version = self.shortRev or self.dirtyShortRev or "unknown"; in { getchvim = pkgs.callPackage ./neovim.nix { inherit version; inherit (packages') vimPlugins-getchoo-nvim; }; vimPlugins-getchoo-nvim = pkgs.callPackage ./config { inherit version; }; default = packages'.getchvim; } ); }; }