{ pkgs, ... }: { programs = { neovim = { enable = true; defaultEditor = true; vimAlias = true; plugins = with pkgs.vimPlugins; [ vim-fugitive undotree telescope-nvim nvim-cmp cmp-nvim-lsp nvim-lspconfig lsp-zero-nvim vim-floaterm luasnip cmp_luasnip lualine-nvim vim-sleuth copilot-lua copilot-cmp cmp-cmdline cmp-buffer catppuccin-nvim (nvim-treesitter.withPlugins (p: [ p.tree-sitter-yaml p.tree-sitter-nix p.tree-sitter-go p.tree-sitter-lua p.tree-sitter-vim p.tree-sitter-bash p.tree-sitter-json p.tree-sitter-python p.tree-sitter-c p.tree-sitter-cmake p.tree-sitter-cpp ])) ]; extraLuaConfig = '' ${builtins.readFile ./options.lua} ${builtins.readFile ./plugins.lua} ${builtins.readFile ./keybinds.lua} ''; }; }; home.packages = with pkgs; [ # nix stuff nixpkgs-fmt statix # LSPs gopls pyright nodePackages.typescript-language-server nodePackages.typescript nil yaml-language-server lua-language-server clang-tools zls ]; home.sessionVariables.EDITOR = "nvim"; }