{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; }; outputs = { self , nixpkgs , }: let supportedSystems = [ "x86_64-linux" "aarch64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); in { packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; neovim = import ./nvim-lsp.nix { inherit pkgs; }; in { nvim = pkgs.symlinkJoin { name = "nvim"; paths = with pkgs; [ alejandra ccls chafa gopls haskell-language-server luaformatter lua-language-server nixd nixfmt-rfc-style pyright rust-analyzer svls texlab tinymist tree-sitter ueberzugpp verible viu yaml-language-server zls ] ++ [ neovim ]; }; }); devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { default = pkgs.mkShell { nativeBuildInputs = [ pkgs.alejandra pkgs.ccls pkgs.gopls pkgs.luaformatter pkgs.nixd pkgs.nixfmt-rfc-style pkgs.pyright pkgs.rust-analyzer pkgs.lua-language-server pkgs.svls pkgs.texlab pkgs.tree-sitter pkgs.verible pkgs.zls (import ./nvim-lsp.nix { inherit pkgs; }) ]; }; }); overlays = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { overlay = final: prev: { nvim = self.packages.${system}.nvim; }; }); defaultPackage = forAllSystems (system: self.packages.${system}.nvim); }; }