{ config, pkgs, ... }: { programs.neovim = { enable = true; defaultEditor = true; viAlias = true; vimAlias = true; vimdiffAlias = true; plugins = with pkgs.vimPlugins; [ vim-airline YouCompleteMe tabnine-vim rainbow # Themes vim-airline-themes nord-vim gruvbox tokyonight-nvim # https://github.com/figsoda/cfg/blob/main/src/programs/neovim/configure/packages.nix bufferline-nvim cmp-buffer cmp-cmdline cmp-dap cmp-nvim-lsp cmp-nvim-lsp-document-symbol cmp-path cmp_luasnip comment-nvim crates-nvim dressing-nvim gitsigns-nvim indent-blankline-nvim leap-nvim lspkind-nvim lualine-nvim luasnip neo-tree-nvim nix-develop-nvim noice-nvim null-ls-nvim numb-nvim nvim-cmp nvim-colorizer-lua nvim-dap nvim-dap-ui nvim-lspconfig nvim-navic nvim-notify nvim-treesitter-textobjects nvim-treesitter.withAllGrammars nvim-web-devicons nvim_context_vt playground refactoring-nvim ron-vim rust-tools-nvim telescope-fzf-native-nvim telescope-nvim trouble-nvim vim-fugitive vim-lastplace vim-visual-multi ]; extraConfig = '' set mouse=a set number syntax on set hlsearch set ignorecase set smartcase set autoindent set ruler set shiftwidth=2 set expandtab set softtabstop=2 set cursorline let g:rainbow_active = 1 colorscheme gruvbox AirlineTheme gruvbox ''; }; }