{
  pkgs,
  enable,
}: {
  inherit enable;
  defaultEditor = true;
  viAlias = true;
  vimAlias = true;
  vimdiffAlias = true;

  plugins = builtins.attrValues ({
      inherit
        (pkgs.vimPlugins)
        telescope-nvim # fuzzy finder
        tokyonight-nvim # theme
        undotree # undotree
        vim-fugitive # git integration
        nvim-treesitter # syntax highlighting
        
        # Autocomplete and LSP
        
        nvim-lspconfig
        nvim-cmp
        cmp-nvim-lsp
        luasnip
        ;
    }
    // {
      # Parsers for syntax highlighting
      inherit
        (pkgs.vimPlugins.nvim-treesitter-parsers)
        nix
        zig
        python
        vim
        vimdoc
        markdown
        dockerfile
        yaml
        json
        toml
        lua
        c
        glsl
        bash
        ;
    });
  extraPackages = [pkgs.nodePackages.pyright];
  extraLuaConfig =
    builtins.readFile ./keybinds.lua
    + builtins.readFile ./colors.lua
    + builtins.readFile ./undotree.lua
    + builtins.readFile ./fugitive.lua
    + builtins.readFile ./treesitter.lua
    + builtins.readFile ./telescope.lua
    + builtins.readFile ./cmp.lua
    + builtins.readFile ./lspconfig.lua;
  extraConfig = "set number relativenumber";
}
