{ config, pkgs, ... }: {
  programs.neovim = {
    enable = true;
    defaultEditor = true;
    viAlias = true;
    vimAlias = true;
    vimdiffAlias = true;
    
    plugins = with pkgs.vimPlugins; [ 
      # vim-airline # Trying out lualine - below
      YouCompleteMe
      tabnine-vim
      rainbow
      zen-mode-nvim

      # Themes
      nord-vim
      gruvbox
      tokyonight-nvim

      # https://github.com/figsoda/cfg/blob/main/src/programs/neovim/configure/packages.nix
      bufferline-nvim                 # https://github.com/akinsho/bufferline.nvim/#configuration
      cmp-buffer                      # 
      cmp-cmdline                     # 
      cmp-dap                         # 
      cmp-nvim-lsp                    # 
      cmp-nvim-lsp-document-symbol    # 
      cmp-path                        # 
      cmp_luasnip                     # 
      comment-nvim                    # https://github.com/numtostr/comment.nvim/
      dressing-nvim                   # 
      gitsigns-nvim                   # https://github.com/lewis6991/gitsigns.nvim/
      indent-blankline-nvim           # https://github.com/lukas-reineke/indent-blankline.nvim/
      leap-nvim                       # https://github.com/ggandor/leap.nvim/ 
      lspkind-nvim                    # https://github.com/onsails/lspkind.nvim/ 
      lualine-nvim                    # https://github.com/nvim-lualine/lualine.nvim/ 
      luasnip                         # https://github.com/l3mon4d3/luasnip/ 
      neo-tree-nvim                   # https://github.com/nvim-neo-tree/neo-tree.nvim/ 
      nix-develop-nvim                # https://github.com/figsoda/nix-develop.nvim/ 
      noice-nvim                      # https://github.com/folke/noice.nvim/
      numb-nvim                       # https://github.com/nacro90/numb.nvim/
      nvim-cmp                        # https://github.com/hrsh7th/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                         # 
      telescope-fzf-native-nvim       # 
      telescope-nvim                  # 
      trouble-nvim                    # 
      vim-fugitive                    # https://github.com/tpope/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
    '';
  };
}