{ pkgs, ... }: { environment.variables = { EDITOR = "vim"; }; nixpkgs.overlays = [ (import ./chatgpt.nix) ]; environment.systemPackages = with pkgs; [ nodePackages.typescript-language-server sumneko-lua-language-server nodePackages.intelephense nodePackages.vscode-langservers-extracted nodePackages.yaml-language-server gopls lazygit ripgrep lua luaPackages.lyaml (neovim.override { vimAlias = true; configure = { packages.myPlugins = with pkgs.vimPlugins; { start = [ bigfile-nvim bufferline-nvim catppuccin-nvim chatgpt-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 mini-icons neogit null-ls-nvim nvim-autopairs nvim-cmp nvim-colorizer-lua nvim-lspconfig nvim-tree-lua nvim-web-devicons nvim-treesitter.withAllGrammars nvim-treesitter-parsers.http # (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 rest-nvim ]; opt = []; }; customRC = let luaRequire = module: builtins.readFile (builtins.toString ./config + "/${module}.lua"); luaConfig = builtins.concatStringsSep "\n" (map luaRequire [ "init" "keymappings" "chatgpt" "copilot" "icons" "lspconfig" "nvim-cmp" "theming" "project" "telescope" "terminal" "treesitter" "treesitter-textobjects" "utils" "bufferline" "which-key" ]); in '' lua << EOF ${luaConfig} EOF ''; }; extraLuaPackages = luaPackages: [ luaPackages.lyaml ]; } )]; }