-
-
Notifications
You must be signed in to change notification settings - Fork 391
Closed
Description
Say, I have a module called utils inside which I have sub-modules utils.fs,
utils.str and utils.web:
utils
├── init.lua
├── fs.lua
├── str.lua
└── web.lua
I want to be able to require only the utils module and be able to access
the sub-modules as if they are fields of the utils module, i.e.
local utils = require('utils')
utils.fs.fs_helper_fun(...)
utils.str.str_helper_fun(...)
utils.web.web_helper_fun(...)But I don't want to load the sub-modules at once on requiring the utils
module, instead, they should only be loaded when needed, so in utils/init.lua
I have:
return setmetatable({}, {
__index = function(_, key)
return require('utils.' .. key)
end,
})But this confuses LuaLS and it does not provide any completion for sub-modules,
e.g. utils.fs, utils.str, etc.
I am aware that there is ---@module, I tried with
return setmetatable({
fs = {} ---@module 'utils.fs'
str = {} ---@module 'utils.str'
web = {} ---@module 'utils.web'
}, {
__index = function(_, key)
return require('utils.' .. key)
end,
})with no luck.
Is there a way to make LuaLS aware of the sub-modules when I index to utils?
Metadata
Metadata
Assignees
Labels
No labels