summaryrefslogtreecommitdiff
path: root/script/emmy/typeUnit.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2019-11-23 00:05:30 +0800
committer最萌小汐 <sumneko@hotmail.com>2019-11-23 00:05:30 +0800
commit6da2b175e20ed3c03b0dfcfc9046de1e0e5d4444 (patch)
treefdc22d78150fd1c5edc46732c8b151ccfefb519f /script/emmy/typeUnit.lua
parentd0ff66c9abe9d6abbca12fd811e0c3cb69c1033a (diff)
downloadlua-language-server-6da2b175e20ed3c03b0dfcfc9046de1e0e5d4444.zip
正路目录
Diffstat (limited to 'script/emmy/typeUnit.lua')
-rw-r--r--script/emmy/typeUnit.lua51
1 files changed, 51 insertions, 0 deletions
diff --git a/script/emmy/typeUnit.lua b/script/emmy/typeUnit.lua
new file mode 100644
index 00000000..73d7ea6b
--- /dev/null
+++ b/script/emmy/typeUnit.lua
@@ -0,0 +1,51 @@
+local listMgr = require 'vm.list'
+
+---@class EmmyTypeUnit
+local mt = {}
+mt.__index = mt
+mt.type = 'emmy.typeUnit'
+
+function mt:getType()
+ return self.name
+end
+
+function mt:getName()
+ return self.name
+end
+
+function mt:getSource()
+ return listMgr.get(self.source)
+end
+
+function mt:getClass(callback)
+ self._manager:eachClass(self:getName(), function (class)
+ if class.type == 'emmy.class' then
+ callback(class)
+ end
+ end)
+end
+
+function mt:setValue(value)
+ self.value = value
+end
+
+function mt:getValue()
+ return self.value
+end
+
+function mt:setParent(parent)
+ self.parent = parent
+end
+
+function mt:getParent()
+ return self.parent
+end
+
+return function (manager, source)
+ local self = setmetatable({
+ name = source[1],
+ source = source.id,
+ _manager = manager,
+ }, mt)
+ return self
+end