{ pkgs, ... }: { environment.variables = { EDITOR = "vim"; }; environment.systemPackages = with pkgs; [ nodePackages.typescript-language-server sumneko-lua-language-server nodePackages.intelephense nodePackages.vscode-css-languageserver-bin nodePackages.yaml-language-server gopls lazygit ripgrep (neovim.override { vimAlias = true; configure = { packages.myPlugins = with pkgs.vimPlugins; { start = [ bufferline-nvim catppuccin-nvim cmp-buffer cmp-nvim-lsp cmp-path cmp-spell cmp-treesitter cmp-vsnip comment-nvim copilot-vim copilot-lua copilot-cmp CopilotChat-nvim dracula-vim friendly-snippets gitsigns-nvim lightline-vim lspkind-nvim neogit null-ls-nvim nvim-autopairs nvim-cmp nvim-colorizer-lua nvim-lspconfig nvim-tree-lua pkgs.vimPlugins.nvim-treesitter.withAllGrammars # (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars)) plenary-nvim project-nvim rainbow-delimiters-nvim telescope-fzf-native-nvim telescope-nvim todo-comments-nvim toggleterm-nvim vim-floaterm vim-sneak vim-vsnip which-key-nvim ]; opt = []; }; customRC = let luaRequire = module: builtins.readFile (builtins.toString ./config + "/${module}.lua"); luaConfig = builtins.concatStringsSep "\n" (map luaRequire [ "init" "keymappings" "copilot" "icons" "lspconfig" "nvim-cmp" "theming" "project" "telescope" "terminal" "treesitter" "treesitter-textobjects" "utils" "bufferline" "which-key" ]); in '' lua << EOF ${luaConfig} EOF ''; }; } )]; }