summaryrefslogtreecommitdiff
path: root/server/src/vm
diff options
context:
space:
mode:
authorsumneko <sumneko@hotmail.com>2019-04-18 13:36:23 +0800
committersumneko <sumneko@hotmail.com>2019-04-18 13:36:23 +0800
commit10680f1a44f92aa0cd32db5e3bb1960bdbb29a25 (patch)
treebfdd6346b174519e287803d41c9f49f13551b5f3 /server/src/vm
parent04c3ce15f1515b11e43e4630888e323c6372b409 (diff)
downloadlua-language-server-10680f1a44f92aa0cd32db5e3bb1960bdbb29a25.zip
值类型参考class
Diffstat (limited to 'server/src/vm')
-rw-r--r--server/src/vm/emmy.lua5
-rw-r--r--server/src/vm/value.lua6
-rw-r--r--server/src/vm/vm.lua2
3 files changed, 6 insertions, 7 deletions
diff --git a/server/src/vm/emmy.lua b/server/src/vm/emmy.lua
index a9899477..900747e6 100644
--- a/server/src/vm/emmy.lua
+++ b/server/src/vm/emmy.lua
@@ -1,10 +1,7 @@
local mt = require 'vm.manager'
function mt:doEmmyClass(action)
- if not self.lsp then
- return
- end
- local emmyMgr = self.lsp.emmyMgr
+ local emmyMgr = self.emmyMgr
local class = action[1]
local parent = action[2]
self:instantSource(class)
diff --git a/server/src/vm/value.lua b/server/src/vm/value.lua
index 3b3a8c01..b3cc5f80 100644
--- a/server/src/vm/value.lua
+++ b/server/src/vm/value.lua
@@ -77,10 +77,10 @@ end
function mt:getType()
if self:getEmmy() then
- return self:getEmmy():getType()
+ return self:getEmmy():getType(), 1.0
end
if not self._type then
- return 'nil'
+ return 'nil', 0.0
end
local mRate = 0.0
local mType
@@ -97,7 +97,7 @@ function mt:getType()
end
end
end
- return mType or 'any'
+ return mType or 'any', mRate
end
function mt:rawSet(index, value, source)
diff --git a/server/src/vm/vm.lua b/server/src/vm/vm.lua
index 3bacfc6c..6f6a4d59 100644
--- a/server/src/vm/vm.lua
+++ b/server/src/vm/vm.lua
@@ -7,6 +7,7 @@ local sourceMgr = require 'vm.source'
local buildGlobal = require 'vm.global'
local createMulti = require 'vm.multi'
local libraryBuilder = require 'vm.library'
+local emmyMgr = require 'emmy.manager'
local config = require 'config'
local mt = require 'vm.manager'
@@ -1277,6 +1278,7 @@ return function (ast, lsp, uri)
main = nil,
env = nil,
emmy = nil,
+ emmyMgr = lsp and lsp.emmyMgr or emmyMgr(),
lsp = lsp,
uri = uri or '',
}, mt)