diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2022-04-01 17:54:19 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2022-04-01 17:54:19 +0800 |
commit | d699b4cac83b81b023323076b74d3d03b6b13ee6 (patch) | |
tree | f5b22d0425e0e467a1604d43b4ed6b22b697c81e /script/vm/global-manager.lua | |
parent | 231e4e3b2be6f815c1d6734185537f777ef32d88 (diff) | |
download | lua-language-server-d699b4cac83b81b023323076b74d3d03b6b13ee6.zip |
update
Diffstat (limited to 'script/vm/global-manager.lua')
-rw-r--r-- | script/vm/global-manager.lua | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/script/vm/global-manager.lua b/script/vm/global-manager.lua index 99d1b697..fc9ff633 100644 --- a/script/vm/global-manager.lua +++ b/script/vm/global-manager.lua @@ -224,6 +224,26 @@ function m.getGlobal(cate, name, field) return m.globals[key] end +---@param cate vm.global.cate +---@param name string +---@return vm.node.global[] +function m.getFields(cate, name) + local globals = {} + local key = cate .. '|' .. name + + -- TODO: optimize + for gid, global in pairs(m.globals) do + if gid ~= key + and util.stringStartWith(gid, key) + and gid:sub(#key + 1, #key + 1) == m.ID_SPLITE + and not gid:find(m.ID_SPLITE, #key + 2) then + globals[#globals+1] = global + end + end + + return globals +end + ---@param source parser.object function m.compileObject(source) if source._globalNode ~= nil then |