{
  pkgs,
  vimUtils,
  fetchFromGitHub,
}: {
  extraPackages = with pkgs; [
    ccls
    luaformatter
    nixd
    pyright
    rust-analyzer
    sumneko-lua-language-server
    svls
    texlab
    verible
    zls
  ];

  plugins = with pkgs.vimPlugins; [
    (nvim-treesitter.withPlugins (parsers: [
      parsers.c
      parsers.cpp
      parsers.json
      parsers.latex
      parsers.lua
      parsers.nix
      parsers.python
      parsers.query
      parsers.rust
      parsers.verilog
      parsers.vimdoc
      parsers.zig
    ]))
    cmp-buffer
    cmp-cmdline
    cmp-nvim-lsp
    cmp-nvim-ultisnips
    cmp-path
    colorizer
    fugitive
    fzf-lua
    gruvbox
    nvim-cmp
    nvim-lspconfig
    nvim-ts-rainbow
    repeat
    targets-vim
    UltiSnips
    vim-addon-nix
    vim-signify
    vim-slime
    vim-snippets
    zig-vim
  ];
}