{ description = "A very basic flake"; inputs = { nixpkgs.url = "nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs, }: let supportedSystems = ["x86_64-linux" "aarch64-linux"]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; nixpkgsFor = forAllSystems (system: import nixpkgs {inherit system;}); additionalDeps = pkgs: [ pkgs.alejandra pkgs.ccls pkgs.gopls pkgs.luaformatter pkgs.nixd pkgs.pyright pkgs.rust-analyzer pkgs.sumneko-lua-language-server pkgs.svls pkgs.texlab pkgs.tree-sitter pkgs.verible pkgs.zls ]; in { packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { nvim = import ./nvim-lsp.nix {inherit pkgs;}; }); devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; vim = self.packages.${system}; in { default = pkgs.mkShell { nativeBuildInputs = [ pkgs.alejandra pkgs.ccls pkgs.gopls pkgs.luaformatter pkgs.nixd pkgs.pyright pkgs.rust-analyzer pkgs.sumneko-lua-language-server pkgs.svls pkgs.texlab pkgs.tree-sitter pkgs.verible pkgs.zls vim ]; }; }); overlays = forAllSystems (system: let vim = self.packages.${system}; pkgs = nixpkgsFor.${system}; in { overlay = final: prev: { inherit (vim) nvim; inherit additionalDeps; }; }); defaultPackage = forAllSystems (system: self.packages.${system}.nvim); }; }