summaryrefslogtreecommitdiff
path: root/lua/telescope/utils.lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2021-08-20 13:47:30 -0400
committerGitHub <noreply@github.com>2021-08-20 13:47:30 -0400
commit260f4617b6217e99dfde104e6f6429a35dc49a1d (patch)
tree546c6856bab2da5d6817588c1e11ede4c0108cce /lua/telescope/utils.lua
parentea5ab8f7c42cf681f9174b2c4de0b82044417801 (diff)
startup: load once and only when called for devicons (#1139)
Diffstat (limited to 'lua/telescope/utils.lua')
-rw-r--r--lua/telescope/utils.lua25
1 files changed, 19 insertions, 6 deletions
diff --git a/lua/telescope/utils.lua b/lua/telescope/utils.lua
index aa2293c..ee57417 100644
--- a/lua/telescope/utils.lua
+++ b/lua/telescope/utils.lua
@@ -1,5 +1,3 @@
-local has_devicons, devicons = pcall(require, "nvim-web-devicons")
-
local Path = require "plenary.path"
local Job = require "plenary.job"
@@ -456,7 +454,20 @@ utils.align_str = function()
error "align_str deprecated. please use plenary.strings.align_str"
end
-utils.transform_devicons = (function()
+local load_once = function(f)
+ local resolved = nil
+ return function(...)
+ if resolved == nil then
+ resolved = f()
+ end
+
+ return resolved(...)
+ end
+end
+
+utils.transform_devicons = load_once(function()
+ local has_devicons, devicons = pcall(require, "nvim-web-devicons")
+
if has_devicons then
if not devicons.has_loaded() then
devicons.setup()
@@ -482,9 +493,11 @@ utils.transform_devicons = (function()
return display
end
end
-end)()
+end)
+
+utils.get_devicons = load_once(function()
+ local has_devicons, devicons = pcall(require, "nvim-web-devicons")
-utils.get_devicons = (function()
if has_devicons then
if not devicons.has_loaded() then
devicons.setup()
@@ -508,6 +521,6 @@ utils.get_devicons = (function()
return ""
end
end
-end)()
+end)
return utils