{ config, pkgs, ... }: { programs.neovim = { enable = true; plugins = with pkgs.vimPlugins; [ vim-tmux-navigator which-key-nvim telescope-nvim nvim-treesitter.withAllGrammars nvim-lspconfig fidget-nvim nvim-cmp luasnip cmp_luasnip cmp-nvim-lsp mini-nvim vim-sleuth catppuccin-nvim tokyonight-nvim gitsigns-nvim bufferline-nvim nvim-colorizer-lua lazydev-nvim neorg (pkgs.vimUtils.buildVimPlugin { pname = "undotree"; version = "2024-2-9"; src = pkgs.fetchFromGitHub { owner = "jiaoshijie"; repo = "undotree"; rev = "eab459ab87dd249617b5f7187bb69e614a083047"; sha256 = "sha256-FIYDyfkaIS9C16ClWKLMdpSPv/OrcOalVVsyFJBU2eI="; }; meta.homepage = "https://github.com/jiaoshijie/undotree"; buildInputs = [plenary-nvim]; }) ]; extraPackages = with pkgs; [ python3Packages.jedi-language-server pyright clang-tools nixd lua-language-server ]; withRuby = false; }; xdg.configFile."nvim/init.lua".text = "require('init')"; xdg.configFile."nvim/lua".source = config.u.lib.lnn "user/config/nvim/lua"; }