{ description = "Neovim configuration"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs }: let withPkgs = system: import nixpkgs { inherit system; overlays = [(final: prev: { treesitter = prev.treesitter.override { extraGrammars = [ (final.fetchFromGitHub { owner = "ckafi"; repo = "tree-sitter-elvish"; rev = "f32711e31e987fd5c2c002f3daba02f25c68672f"; hash = "sha256-/3npcIfTH8w5ekLTb//ZCTxuSGhOXkUBaCq3WWcK2J4="; }) ]; }; node-lsp = final.callPackage ./node-lsp {}; })]; }; in { packages.x86_64-linux.neovim = (withPkgs "x86_64-linux").callPackage ./neovim.nix {}; packages.x86_64-linux.neovim-with-playground = (withPkgs "x86_64-linux").callPackage ./neovim.nix { withPlayground = true; }; packages.x86_64-linux.neovim-with-luadev = (withPkgs "x86_64-linux").callPackage ./neovim.nix { withLuadev = true; }; packages.x86_64-linux.default = self.packages.x86_64-linux.neovim; }; }