summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/emmy/class.lua4
-rw-r--r--server/src/emmy/manager.lua3
-rw-r--r--server/src/vm/emmy.lua5
-rw-r--r--server/src/vm/value.lua6
-rw-r--r--server/src/vm/vm.lua2
5 files changed, 10 insertions, 10 deletions
diff --git a/server/src/emmy/class.lua b/server/src/emmy/class.lua
index 69d731ee..33a01be2 100644
--- a/server/src/emmy/class.lua
+++ b/server/src/emmy/class.lua
@@ -3,7 +3,7 @@ mt.__index = mt
mt.type = 'emmy.class'
function mt:getType()
- return self._name
+ return self.name
end
return function (class, parent)
@@ -11,6 +11,6 @@ return function (class, parent)
name = class[1],
source = class.id,
parent = parent and parent.id,
- })
+ }, mt)
return self
end
diff --git a/server/src/emmy/manager.lua b/server/src/emmy/manager.lua
index 5f83c9d1..8ca102ca 100644
--- a/server/src/emmy/manager.lua
+++ b/server/src/emmy/manager.lua
@@ -39,6 +39,7 @@ end
function mt:addClass(class, parent)
local className = class[1]
+ self:flushClass(className)
local list = self._class[className]
local version = listMgr.getVersion()
if not list then
@@ -48,7 +49,7 @@ function mt:addClass(class, parent)
self._class[className] = list
end
list[class.id] = newClass(class, parent)
- self:flushClass(className)
+ return list[class.id]
end
function mt:remove()
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)