diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2022-11-08 03:06:42 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2022-11-08 03:06:42 +0800 |
commit | be3dfa4a1b5cce947578a37935c38c4c3d2bae19 (patch) | |
tree | 80c079816726e7d52b18f85b8bda349d835e1c39 /script | |
parent | 8c5941c4573f0c88525846fb01fd5100a3aef607 (diff) | |
download | lua-language-server-be3dfa4a1b5cce947578a37935c38c4c3d2bae19.zip |
auto create class for enum fields
#1410
Diffstat (limited to 'script')
-rw-r--r-- | script/vm/global.lua | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/script/vm/global.lua b/script/vm/global.lua index 6db3a58c..6f3bcb68 100644 --- a/script/vm/global.lua +++ b/script/vm/global.lua @@ -374,9 +374,18 @@ local compilerGlobalSwitch = util.switch() end source._enums = {} for _, field in ipairs(tbl) do - if field.type == 'tablefield' - or field.type == 'tableindex' then + if field.type == 'tablefield' then source._enums[#source._enums+1] = field + local subType = vm.declareGlobal('type', name .. '.' .. field.field[1], uri) + subType:addSet(uri, field) + field._globalNode = subType + elseif field.type == 'tableindex' then + source._enums[#source._enums+1] = field + if field.index.type == 'string' then + local subType = vm.declareGlobal('type', name .. '.' .. field.index[1], uri) + subType:addSet(uri, field) + field._globalNode = subType + end end end end) |