{ description = "Neovim configuration"; inputs = { neovim-flake.url = "github:neovim/neovim?dir=contrib"; neovim-flake.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, neovim-flake }: { overlay = final: prev: { neovim-unwrapped = neovim-flake.packages.${prev.system}.neovim; }; packages.x86_64-linux.default = with import nixpkgs { system = "x86_64-linux"; overlays = [ self.overlay ]; }; let extraPath = [ fd ripgrep nodePackages.typescript-language-server nodePackages.eslint_d ]; in neovim.override { extraMakeWrapperArgs = "--prefix PATH : ${lib.makeBinPath extraPath}"; configure = { customRC = '' source ${./settings.lua} source ${./plugins.lua} source ${./mappings.lua} source ${./autocmd.lua} source ${./lsp.lua} source ${./theme.lua} ''; packages.myVimPackage = with vimPlugins; { start = [ vim-sensible vim-sleuth vim-fugitive vim-surround vim-abolish undotree vim-merginal telescope-nvim telescope-fzf-native-nvim mini-nvim gitsigns-nvim sonokai (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 nvim-lsp-ts-utils null-ls-nvim fidget-nvim ]; }; }; }; }; }