diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2018-12-19 11:37:49 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2018-12-19 11:37:49 +0800 |
commit | 8b1e9fd0702f4ad74482b10b6b5330e69d53260a (patch) | |
tree | fc2404fc04043a7827d1164712b6dc5391484549 /server/test | |
parent | 1eaca995d45ad52e6f8d68ac71f54e6663f275e6 (diff) | |
download | lua-language-server-8b1e9fd0702f4ad74482b10b6b5330e69d53260a.zip |
自动完成的基础测试
Diffstat (limited to 'server/test')
-rw-r--r-- | server/test/completion/init.lua | 85 | ||||
-rw-r--r-- | server/test/main.lua | 1 |
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 |