summaryrefslogtreecommitdiff
path: root/server/test
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2018-12-19 11:37:49 +0800
committer最萌小汐 <sumneko@hotmail.com>2018-12-19 11:37:49 +0800
commit8b1e9fd0702f4ad74482b10b6b5330e69d53260a (patch)
treefc2404fc04043a7827d1164712b6dc5391484549 /server/test
parent1eaca995d45ad52e6f8d68ac71f54e6663f275e6 (diff)
downloadlua-language-server-8b1e9fd0702f4ad74482b10b6b5330e69d53260a.zip
自动完成的基础测试
Diffstat (limited to 'server/test')
-rw-r--r--server/test/completion/init.lua85
-rw-r--r--server/test/main.lua1
2 files changed, 86 insertions, 0 deletions
diff --git a/server/test/completion/init.lua b/server/test/completion/init.lua
new file mode 100644
index 00000000..684a8fe7
--- /dev/null
+++ b/server/test/completion/init.lua
@@ -0,0 +1,85 @@
+local matcher = require 'matcher'
+local parser = require 'parser'
+
+local CompletionItemKind = {
+ Text = 1,
+ Method = 2,
+ Function = 3,
+ Constructor = 4,
+ Field = 5,
+ Variable = 6,
+ Class = 7,
+ Interface = 8,
+ Module = 9,
+ Property = 10,
+ Unit = 11,
+ Value = 12,
+ Enum = 13,
+ Keyword = 14,
+ Snippet = 15,
+ Color = 16,
+ File = 17,
+ Reference = 18,
+ Folder = 19,
+ EnumMember = 20,
+ Constant = 21,
+ Struct = 22,
+ Event = 23,
+ Operator = 24,
+ TypeParameter = 25,
+}
+
+local function eq(a, b)
+ local tp1, tp2 = type(a), type(b)
+ if tp1 ~= tp2 then
+ return false
+ end
+ if tp1 == 'table' then
+ local mark = {}
+ for k in pairs(a) do
+ if not eq(a[k], b[k]) then
+ return false
+ end
+ mark[k] = true
+ end
+ for k in pairs(b) do
+ if not mark[k] then
+ return false
+ end
+ end
+ return true
+ end
+ return a == b
+end
+
+rawset(_G, 'TEST', true)
+
+function TEST(script)
+ return function (expect)
+ local pos = script:find('@', 1, true)
+ local new_script = script:gsub('@', '')
+ local ast = parser:ast(new_script)
+ local vm = matcher.vm(ast)
+ assert(vm)
+ local result = matcher.completion(vm, pos)
+ assert(result)
+ assert(eq(expect, result))
+ end
+end
+
+TEST [[
+local abcde
+a@
+]]
+{
+ {
+ label = 'abcde',
+ kind = CompletionItemKind.Variable,
+ }
+}
+
+TEST [[
+local abcde
+abcde
+]]
+{}
diff --git a/server/test/main.lua b/server/test/main.lua
index c866b7a5..2739a650 100644
--- a/server/test/main.lua
+++ b/server/test/main.lua
@@ -31,6 +31,7 @@ local function main()
test 'type_inference'
test 'find_lib'
test 'hover'
+ test 'completion'
print('测试完成')
end