aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/loader.lua
diff options
context:
space:
mode:
authorLewis Russell <lewis6991@gmail.com>2023-03-26 12:49:38 +0100
committerLewis Russell <lewis6991@gmail.com>2023-03-26 12:51:56 +0100
commitffd8cd1a96a96b09351a5ffde1068c3595443128 (patch)
tree47c77b9cd7ceab87eec4f0d6bbc642c7f0f4fe94 /runtime/lua/vim/loader.lua
parentfab8dab6b6273767e2b31e4282cee5a11349ac8f (diff)
downloadrneovim-ffd8cd1a96a96b09351a5ffde1068c3595443128.tar.gz
rneovim-ffd8cd1a96a96b09351a5ffde1068c3595443128.tar.bz2
rneovim-ffd8cd1a96a96b09351a5ffde1068c3595443128.zip
refactor(loader): add typing for package.loaders
Diffstat (limited to 'runtime/lua/vim/loader.lua')
-rw-r--r--runtime/lua/vim/loader.lua22
1 files changed, 12 insertions, 10 deletions
diff --git a/runtime/lua/vim/loader.lua b/runtime/lua/vim/loader.lua
index 3dc1bd9574..19df7e4383 100644
--- a/runtime/lua/vim/loader.lua
+++ b/runtime/lua/vim/loader.lua
@@ -1,5 +1,8 @@
local uv = vim.loop
+--- @type (fun(modename: string): fun()|string)[]
+local loaders = package.loaders
+
local M = {}
---@alias CacheHash {mtime: {sec:number, nsec:number}, size:number}
@@ -399,13 +402,13 @@ function M.enable()
vim.fn.mkdir(vim.fn.fnamemodify(M.path, ':p'), 'p')
_G.loadfile = Loader.loadfile
-- add lua loader
- table.insert(package.loaders, 2, Loader.loader)
+ table.insert(loaders, 2, Loader.loader)
-- add libs loader
- table.insert(package.loaders, 3, Loader.loader_lib)
+ table.insert(loaders, 3, Loader.loader_lib)
-- remove Neovim loader
- for l, loader in ipairs(package.loaders) do
+ for l, loader in ipairs(loaders) do
if loader == vim._load_package then
- table.remove(package.loaders, l)
+ table.remove(loaders, l)
break
end
end
@@ -420,13 +423,12 @@ function M.disable()
end
M.enabled = false
_G.loadfile = Loader._loadfile
- ---@diagnostic disable-next-line: no-unknown
- for l, loader in ipairs(package.loaders) do
+ for l, loader in ipairs(loaders) do
if loader == Loader.loader or loader == Loader.loader_lib then
- table.remove(package.loaders, l)
+ table.remove(loaders, l)
end
end
- table.insert(package.loaders, 2, vim._load_package)
+ table.insert(loaders, 2, vim._load_package)
end
--- Return the top-level `/lua/*` modules for this path
@@ -466,9 +468,9 @@ end
--- Debug function that wrapps all loaders and tracks stats
---@private
function M._profile_loaders()
- for l, loader in pairs(package.loaders) do
+ for l, loader in pairs(loaders) do
local loc = debug.getinfo(loader, 'Sn').source:sub(2)
- package.loaders[l] = function(modname)
+ loaders[l] = function(modname)
local start = vim.loop.hrtime()
local ret = loader(modname)
Loader.track('loader ' .. l .. ': ' .. loc, start)