From 373c824cafd4203f58938df797a4e2a99fc4e6b2 Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.uk>
Date: Tue, 27 Dec 2022 17:01:25 +0000
Subject: [PATCH] chore(nvim): add prefix to Vim plugin names

Make it easier to differentiate between Vim plugins that are available
in the Nix store and those that have been added and built manually.
---
 home-manager/modules/common.nix | 128 ++++++++++++++------------------
 1 file changed, 56 insertions(+), 72 deletions(-)

diff --git a/home-manager/modules/common.nix b/home-manager/modules/common.nix
index 5632da4a..7c991f94 100644
--- a/home-manager/modules/common.nix
+++ b/home-manager/modules/common.nix
@@ -1,5 +1,6 @@
 { config, lib, pkgs, ... }:
-{
+let
+in {
   nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
     "intelephense"
     "postman"
@@ -67,17 +68,7 @@
   programs.neovim = {
     enable = true;
     plugins = let
-      phpactor = pkgs.vimUtils.buildVimPlugin {
-        name = "phpactor";
-        src = pkgs.fetchFromGitHub {
-          owner = "phpactor";
-          repo = "phpactor";
-          rev = "master";
-          sha256 = "0bgfwidrlaqxnjmk14gqc8b0mxh0c5xf098qcjz9mvw236n88xl7";
-        };
-      };
-
-      vim-astro = pkgs.vimUtils.buildVimPlugin {
+      customVim.vim-astro = pkgs.vimUtils.buildVimPlugin {
         name = "vim-astro";
         src = pkgs.fetchFromGitHub {
           owner = "wuelnerdotexe";
@@ -96,83 +87,76 @@
           sha256 = "51b8PxyKqBdeIvmmZyF2hpMBjkyrlZDdTB1opr5JZ7Y=";
         };
       };
-    in
-    with pkgs.vimPlugins; [
-      vim-astro
-
-      comment-nvim
-      dial-nvim
-      git-worktree-nvim
-      gitsigns-nvim
-      harpoon
-      impatient-nvim
-      indent-blankline-nvim
-      neogit
-      nvim-web-devicons
-      refactoring-nvim
-      rest-nvim
-      splitjoin-vim
-      vim-abolish
-      vim-highlightedyank
-      vim-polyglot
-      vim-repeat
-      vim-surround
-      vim-test
-      vim-tmux-navigator
-      vimux
+    in with pkgs; [
+      vimPlugins.comment-nvim
+      vimPlugins.dial-nvim
+      vimPlugins.git-worktree-nvim
+      vimPlugins.gitsigns-nvim
+      vimPlugins.harpoon
+      vimPlugins.impatient-nvim
+      vimPlugins.indent-blankline-nvim
+      vimPlugins.neogit
+      vimPlugins.nvim-web-devicons
+      vimPlugins.refactoring-nvim
+      vimPlugins.rest-nvim
+      vimPlugins.splitjoin-vim
+      vimPlugins.vim-abolish
+      vimPlugins.vim-highlightedyank
+      vimPlugins.vim-polyglot
+      vimPlugins.vim-repeat
+      vimPlugins.vim-surround
+      vimPlugins.vim-test
+      vimPlugins.vim-tmux-navigator
+      vimPlugins.vimux
+      customVim.vim-astro
       customVim.tabline-vim
 
       # Debugging
-      nvim-dap
-      nvim-dap-ui
-      nvim-dap-virtual-text
+      vimPlugins.nvim-dap
+      vimPlugins.nvim-dap-ui
+      vimPlugins.nvim-dap-virtual-text
 
       # Treesitter
-      nvim-treesitter
-      nvim-treesitter-context
-      nvim-treesitter-textobjects
+      vimPlugins.nvim-treesitter
+      vimPlugins.nvim-treesitter-context
+      vimPlugins.nvim-treesitter-textobjects
 
       # LSP
-      null-ls-nvim
-      nvim-lspconfig
-      lsp-status-nvim
+      vimPlugins.null-ls-nvim
+      vimPlugins.nvim-lspconfig
+      vimPlugins.lsp-status-nvim
 
       # Completion
-      cmp-buffer
-      cmp-cmdline
-      cmp-nvim-lsp
-      cmp-nvim-lsp-signature-help
-      cmp-path
-      cmp-tabnine
-      cmp-treesitter
-      cmp-vsnip
-      cmp_luasnip
-      lspkind-nvim
-      nvim-cmp
+      vimPlugins.cmp-buffer
+      vimPlugins.cmp-cmdline
+      vimPlugins.cmp-nvim-lsp
+      vimPlugins.cmp-nvim-lsp-signature-help
+      vimPlugins.cmp-path
+      vimPlugins.cmp-tabnine
+      vimPlugins.cmp-treesitter
+      vimPlugins.cmp-vsnip
+      vimPlugins.cmp_luasnip
+      vimPlugins.lspkind-nvim
+      vimPlugins.nvim-cmp
 
       # Snippets
-      luasnip
+      vimPlugins.luasnip
 
       # Telescope
-      plenary-nvim
-      popup-nvim
-      telescope-file-browser-nvim
-      telescope-fzf-native-nvim
-      telescope-nvim
-      telescope-ui-select-nvim
-
-      # Git
-      # neogit
+      vimPlugins.plenary-nvim
+      vimPlugins.popup-nvim
+      vimPlugins.telescope-file-browser-nvim
+      vimPlugins.telescope-fzf-native-nvim
+      vimPlugins.telescope-nvim
+      vimPlugins.telescope-ui-select-nvim
 
       # Databases
-      vim-dadbod
-      vim-dadbod-ui
-      vim-dadbod-completion
+      vimPlugins.vim-dadbod
+      vimPlugins.vim-dadbod-ui
+      vimPlugins.vim-dadbod-completion
 
       # Themes
-      catppuccin-nvim
-      nightfox-nvim
-      onehalf
+      vimPlugins.onedark-nvim
     ];
   };