diff options
| author | TJ DeVries <devries.timothyj@gmail.com> | 2021-08-20 13:47:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-20 13:47:30 -0400 |
| commit | 260f4617b6217e99dfde104e6f6429a35dc49a1d (patch) | |
| tree | 546c6856bab2da5d6817588c1e11ede4c0108cce /lua/telescope/utils.lua | |
| parent | ea5ab8f7c42cf681f9174b2c4de0b82044417801 (diff) | |
startup: load once and only when called for devicons (#1139)
Diffstat (limited to 'lua/telescope/utils.lua')
| -rw-r--r-- | lua/telescope/utils.lua | 25 |
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 |
