{ description = "Neovim configuration"; outputs = { self, nixpkgs }: { packages.x86_64-linux.default = with nixpkgs.legacyPackages.x86_64-linux; let seti-vim = vimUtils.buildVimPlugin { pname = "seti.vim"; version = "1.0.0"; src = fetchFromGitHub { owner = "trusktr"; repo = "seti.vim"; rev = "a4781817e75a627b54403a92683516aee6230091"; sha256 = "sha256-3XIEKC0fs9v2a73qcbWA+b9gvCbCaHwGs0uoAn9mprg="; }; }; extraPath = [ fzf nodePackages.typescript-language-server nodePackages.eslint_d ]; in neovim.override { extraMakeWrapperArgs = "--prefix PATH : ${lib.makeBinPath extraPath}"; configure = { customRC = '' source ${./vimrc} source ${./init.lua} ''; packages.myVimPackage = with vimPlugins; { start = [ vim-sensible vim-sleuth vim-fugitive vim-surround vim-abolish vim-signify undotree vim-merginal fzf-vim lightline-vim seti-vim (nvim-treesitter.withPlugins (p: with p; [ tree-sitter-css tree-sitter-go tree-sitter-javascript tree-sitter-json tree-sitter-lua tree-sitter-nix tree-sitter-ruby tree-sitter-tsx tree-sitter-typescript ])) nvim-lspconfig cmp-nvim-lsp cmp-buffer nvim-cmp cmp-vsnip vim-vsnip nvim-lsp-ts-utils null-ls-nvim ]; }; }; }; }; }