{ config , pkgs , self , ... }: { programs.neovim = { enable = true; extraConfig = builtins.readFile ./init.vim; withNodeJs = false; vimAlias = true; withPython3 = true; extraPackages = with pkgs; [ # gcc python311Packages.yapf nodePackages.bash-language-server # hlint # ocamlformat ]; plugins = with pkgs.vimPlugins; [ # neovim only nvim-lspconfig (nvim-treesitter.withPlugins (_: pkgs.tree-sitter.allGrammars)) nvim-cmp # tree-sitter dev playground # completion sources cmp-nvim-lsp cmp-buffer cmp-path cmp-cmdline # tpope vim-surround vim-unimpaired vim-repeat vim-fugitive # syntax rust-vim haskell-vim vim-nix # handy tabular fzf-vim # motion leap-nvim ] ++ [ # own pkgs.better-text-objs pkgs.vim-colors-plain ]; }; }