From 08453985ca81b79d51e4a3fcd0d5601c001433eb Mon Sep 17 00:00:00 2001
From: siduck <siduck@tutanota.com>
Date: Thu, 17 Nov 2022 07:00:36 +0530
Subject: [PATCH] rm un-needed lazyload function

---
 lua/core/lazy_load.lua | 79 ------------------------------------------
 lua/core/utils.lua     | 27 +++++++++++++++
 lua/plugins/init.lua   | 43 ++++++++++++++++++-----
 3 files changed, 61 insertions(+), 88 deletions(-)
 delete mode 100644 lua/core/lazy_load.lua

diff --git a/lua/core/lazy_load.lua b/lua/core/lazy_load.lua
deleted file mode 100644
index 29973d4..0000000
--- a/lua/core/lazy_load.lua
+++ /dev/null
@@ -1,79 +0,0 @@
-local M = {}
-local autocmd = vim.api.nvim_create_autocmd
-
--- require("packer").loader(tb.plugins)
--- This must be used for plugins that need to be loaded just after a file
--- ex : treesitter, lspconfig etc
-M.lazy_load = function(tb)
-  autocmd(tb.events, {
-    group = vim.api.nvim_create_augroup(tb.augroup_name, {}),
-    callback = function()
-      if tb.condition() then
-        vim.api.nvim_del_augroup_by_name(tb.augroup_name)
-
-        -- dont defer for treesitter as it will show slow highlighting
-        -- This deferring only happens only when we do "nvim filename"
-        if tb.plugin ~= "nvim-treesitter" then
-          vim.defer_fn(function()
-            require("packer").loader(tb.plugin)
-            if tb.plugin == "nvim-lspconfig" then
-              vim.cmd "silent! do FileType"
-            end
-          end, 0)
-        else
-          require("packer").loader(tb.plugin)
-        end
-      end
-    end,
-  })
-end
-
--- load certain plugins only when there's a file opened in the buffer
--- if "nvim filename" is executed -> load the plugin after nvim gui loads
--- This gives an instant preview of nvim with the file opened
-
-M.on_file_open = function(plugin_name)
-  M.lazy_load {
-    events = { "BufRead", "BufWinEnter", "BufNewFile" },
-    augroup_name = "BeLazyOnFileOpen" .. plugin_name,
-    plugin = plugin_name,
-    condition = function()
-      local file = vim.fn.expand "%"
-      return file ~= "NvimTree_1" and file ~= "[packer]" and file ~= ""
-    end,
-  }
-end
-
-M.packer_cmds = {
-  "PackerSnapshot",
-  "PackerSnapshotRollback",
-  "PackerSnapshotDelete",
-  "PackerInstall",
-  "PackerUpdate",
-  "PackerSync",
-  "PackerClean",
-  "PackerCompile",
-  "PackerStatus",
-  "PackerProfile",
-  "PackerLoad",
-}
-
-M.treesitter_cmds = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSEnable", "TSDisable", "TSModuleInfo" }
-M.mason_cmds = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUninstall", "MasonUninstallAll", "MasonLog" }
-
-M.gitsigns = function()
-  autocmd({ "BufRead" }, {
-    group = vim.api.nvim_create_augroup("GitSignsLazyLoad", { clear = true }),
-    callback = function()
-      vim.fn.system("git -C " .. vim.fn.expand "%:p:h" .. " rev-parse")
-      if vim.v.shell_error == 0 then
-        vim.api.nvim_del_augroup_by_name "GitSignsLazyLoad"
-        vim.schedule(function()
-          require("packer").loader "gitsigns.nvim"
-        end)
-      end
-    end,
-  })
-end
-
-return M
diff --git a/lua/core/utils.lua b/lua/core/utils.lua
index daeff4c..fe2cfaa 100644
--- a/lua/core/utils.lua
+++ b/lua/core/utils.lua
@@ -155,4 +155,31 @@ M.packer_sync = function(...)
   end
 end
 
+M.lazy_load = function(plugin)
+  vim.api.nvim_create_autocmd({ "BufRead", "BufWinEnter", "BufNewFile" }, {
+    group = vim.api.nvim_create_augroup("BeLazyOnFileOpen" .. plugin, {}),
+    callback = function()
+      local file = vim.fn.expand "%"
+      local condition = file ~= "NvimTree_1" and file ~= "[packer]" and file ~= ""
+
+      if condition then
+        vim.api.nvim_del_augroup_by_name("BeLazyOnFileOpen" .. plugin)
+
+        -- dont defer for treesitter as it will show slow highlighting
+        -- This deferring only happens only when we do "nvim filename"
+        if plugin ~= "nvim-treesitter" then
+          vim.defer_fn(function()
+            require("packer").loader(plugin)
+            if plugin == "nvim-lspconfig" then
+              vim.cmd "silent! do FileType"
+            end
+          end, 0)
+        else
+          require("packer").loader(plugin)
+        end
+      end
+    end,
+  })
+end
+
 return M
diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua
index 2fa809d..d7831a0 100644
--- a/lua/plugins/init.lua
+++ b/lua/plugins/init.lua
@@ -1,3 +1,4 @@
+-- List of all default plugins & their definitions
 local plugins = {
 
   ["nvim-lua/plenary.nvim"] = { module = "plenary" },
@@ -5,7 +6,19 @@ local plugins = {
   ["lewis6991/impatient.nvim"] = {},
 
   ["wbthomason/packer.nvim"] = {
-    cmd = require("core.lazy_load").packer_cmds,
+    cmd = {
+      "PackerSnapshot",
+      "PackerSnapshotRollback",
+      "PackerSnapshotDelete",
+      "PackerInstall",
+      "PackerUpdate",
+      "PackerSync",
+      "PackerClean",
+      "PackerCompile",
+      "PackerStatus",
+      "PackerProfile",
+      "PackerLoad",
+    },
     config = function()
       require "plugins"
     end,
@@ -57,7 +70,7 @@ local plugins = {
   ["lukas-reineke/indent-blankline.nvim"] = {
     opt = true,
     setup = function()
-      require("core.lazy_load").on_file_open "indent-blankline.nvim"
+      require("core.utils").lazy_load "indent-blankline.nvim"
       require("core.utils").load_mappings "blankline"
     end,
     config = function()
@@ -68,7 +81,7 @@ local plugins = {
   ["NvChad/nvim-colorizer.lua"] = {
     opt = true,
     setup = function()
-      require("core.lazy_load").on_file_open "nvim-colorizer.lua"
+      require("core.utils").lazy_load "nvim-colorizer.lua"
     end,
     config = function()
       require("plugins.configs.others").colorizer()
@@ -78,9 +91,10 @@ local plugins = {
   ["nvim-treesitter/nvim-treesitter"] = {
     module = "nvim-treesitter",
     setup = function()
-      require("core.lazy_load").on_file_open "nvim-treesitter"
+      require("core.utils").lazy_load "nvim-treesitter"
     end,
-    cmd = require("core.lazy_load").treesitter_cmds,
+    cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSEnable", "TSDisable", "TSModuleInfo" },
+
     run = ":TSUpdate",
     config = function()
       require "plugins.configs.treesitter"
@@ -91,7 +105,19 @@ local plugins = {
   ["lewis6991/gitsigns.nvim"] = {
     ft = "gitcommit",
     setup = function()
-      require("core.lazy_load").gitsigns()
+      -- load gitsigns only when a git file is opened
+      vim.api.nvim_create_autocmd({ "BufRead" }, {
+        group = vim.api.nvim_create_augroup("GitSignsLazyLoad", { clear = true }),
+        callback = function()
+          vim.fn.system("git -C " .. vim.fn.expand "%:p:h" .. " rev-parse")
+          if vim.v.shell_error == 0 then
+            vim.api.nvim_del_augroup_by_name "GitSignsLazyLoad"
+            vim.schedule(function()
+              require("packer").loader "gitsigns.nvim"
+            end)
+          end
+        end,
+      })
     end,
     config = function()
       require("plugins.configs.others").gitsigns()
@@ -100,7 +126,7 @@ local plugins = {
 
   -- lsp stuff
   ["williamboman/mason.nvim"] = {
-    cmd = require("core.lazy_load").mason_cmds,
+    cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUninstall", "MasonUninstallAll", "MasonLog" },
     config = function()
       require "plugins.configs.mason"
     end,
@@ -109,7 +135,7 @@ local plugins = {
   ["neovim/nvim-lspconfig"] = {
     opt = true,
     setup = function()
-      require("core.lazy_load").on_file_open "nvim-lspconfig"
+      require("core.utils").lazy_load "nvim-lspconfig"
     end,
     config = function()
       require "plugins.configs.lspconfig"
@@ -198,7 +224,6 @@ local plugins = {
   },
 }
 
--- Load all plugins
 local present, packer = pcall(require, "packer")
 
 if present then