From e3c162aad371d1f10e5f2a1bfad0c1bffa3e48f7 Mon Sep 17 00:00:00 2001
From: Aaron Pham <contact@aarnphm.xyz>
Date: Thu, 15 Aug 2024 21:08:26 -0400
Subject: [PATCH] perf: make load ultra ultra fast (#14)

Signed-off-by: Aaron Pham <contact@aarnphm.xyz>
---
 lua/avante/init.lua | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/lua/avante/init.lua b/lua/avante/init.lua
index 98e1eb3..41156a4 100644
--- a/lua/avante/init.lua
+++ b/lua/avante/init.lua
@@ -3,7 +3,26 @@ local sidebar = require("avante.sidebar")
 local config = require("avante.config")
 
 function M.setup(opts)
-  require("tiktoken_lib").load()
+  local ok, LazyConfig = pcall(require, "lazy.core.config")
+  if ok then
+    local name = "avante.nvim"
+    if LazyConfig.plugins[name] and LazyConfig.plugins[name]._.loaded then
+      vim.schedule(function()
+        require("tiktoken_lib").load()
+      end)
+    else
+      vim.api.nvim_create_autocmd("User", {
+        pattern = "LazyLoad",
+        callback = function(event)
+          if event.data == name then
+            require("tiktoken_lib").load()
+            return true
+          end
+        end,
+      })
+    end
+  end
+
   config.update(opts)
   sidebar.setup()
 end