diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2020-11-20 21:57:09 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2020-11-20 21:57:09 +0800 |
commit | 4ca61ec457822dd14966afa0752340ae8ce180a1 (patch) | |
tree | ae8adb1ad82c717868e551e699fd3cf3bb290089 /test-beta/crossfile/definition.lua | |
parent | c63b2e404d8d2bb984afe3678a5ba2b2836380cc (diff) | |
download | lua-language-server-4ca61ec457822dd14966afa0752340ae8ce180a1.zip |
no longer beta
Diffstat (limited to 'test-beta/crossfile/definition.lua')
-rw-r--r-- | test-beta/crossfile/definition.lua | 621 |
1 files changed, 0 insertions, 621 deletions
diff --git a/test-beta/crossfile/definition.lua b/test-beta/crossfile/definition.lua deleted file mode 100644 index 5bc99a19..00000000 --- a/test-beta/crossfile/definition.lua +++ /dev/null @@ -1,621 +0,0 @@ -local files = require 'files' -local furi = require 'file-uri' -local core = require 'core.definition' -local config = require 'config' - -rawset(_G, 'TEST', true) - -local function catch_target(script, sep) - local list = {} - local cur = 1 - local cut = 0 - while true do - local start, finish = script:find(('<%%%s.-%%%s>'):format(sep, sep), cur) - if not start then - break - end - list[#list+1] = { start - cut, finish - 4 - cut } - cur = finish + 1 - cut = cut + 4 - end - local new_script = script:gsub(('<%%%s(.-)%%%s>'):format(sep, sep), '%1') - return new_script, list -end - -local function founded(targets, results) - if #targets ~= #results then - return false - end - for _, target in ipairs(targets) do - for _, result in ipairs(results) do - if target[1] == result[1] - and target[2] == result[2] - and target[3] == result[3] - then - goto NEXT - end - end - do return false end - ::NEXT:: - end - return true -end - -function TEST(datas) - files.removeAll() - - local targetList = {} - local sourceList - local sourceUri - for i, data in ipairs(datas) do - local uri = furi.encode(data.path) - local new, list = catch_target(data.content, '!') - if new ~= data.content or data.target then - if data.target then - targetList[#targetList+1] = { - data.target[1], - data.target[2], - uri, - } - else - for _, position in ipairs(list) do - targetList[#targetList+1] = { - position[1], - position[2], - uri, - } - end - end - data.content = new - end - new, list = catch_target(data.content, '?') - if new ~= data.content then - sourceList = list - sourceUri = uri - data.content = new - end - files.setText(uri, data.content) - end - - local sourcePos = (sourceList[1][1] + sourceList[1][2]) // 2 - local positions = core(sourceUri, sourcePos) - if positions then - local result = {} - for i, position in ipairs(positions) do - result[i] = { - position.target.start, - position.target.finish, - position.uri, - } - end - assert(founded(targetList, result)) - else - assert(#targetList == 0) - end -end - -TEST { - { - path = 'a.lua', - content = '', - target = {0, 0}, - }, - { - path = 'b.lua', - content = 'require <?"a"?>', - }, -} - -TEST { - { - path = 'aaa/bbb.lua', - content = '', - target = {0, 0}, - }, - { - path = 'b.lua', - content = 'require "aaa.<?bbb?>"', - }, -} - -TEST { - { - path = 'aaa/bbb.lua', - content = '', - target = {0, 0}, - }, - { - path = 'b.lua', - content = 'require "<?bbb?>"', - }, -} - -TEST { - { - path = 'a.lua', - content = 'local <!t!> = 1; return <!t!>', - }, - { - path = 'b.lua', - content = 'local <?t?> = require "a"', - target = {7, 7}, - }, -} - -if require 'bee.platform'.OS == 'Windows' then -TEST { - { - path = 'a.lua', - content = '', - target = {0, 0}, - }, - { - path = 'b.lua', - content = 'require <?"A"?>', - }, -} -end - -TEST { - { - path = 'a.lua', - content = 'local <!t!> = 1; return <!t!>', - }, - { - path = 'b.lua', - content = 'local <?t?> = require "a"', - target = {7, 7}, - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - local t = { - <!x!> = 1, - } - return t - ]], - }, - { - path = 'b.lua', - content = [[ - local t = require "a" - t.<?x?>() - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - return { - <!x!> = 1, - } - ]], - }, - { - path = 'b.lua', - content = [[ - local t = require "a" - t.<?x?>() - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - return <!function () - end!> - ]], - }, - { - path = 'b.lua', - content = [[ - local <!f!> = require "a" - <?f?>() - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - return <!a():b():c()!> - ]], - }, - { - path = 'b.lua', - content = [[ - local <?t?> = require 'a' - ]], - target = {19, 19}, - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - <!global!> = 1 - ]], - }, - { - path = 'b.lua', - content = [[ - print(<?global?>) - ]], - } -} - -TEST { - { - path = 'b.lua', - content = [[ - print(<?global?>) - ]], - }, - { - path = 'a.lua', - content = [[ - <!global!> = 1 - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - x = {} - x.<!global!> = 1 - ]], - }, - { - path = 'b.lua', - content = [[ - print(x.<?global?>) - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - x.<!global!> = 1 - ]], - }, - { - path = 'b.lua', - content = [[ - print(x.<?global?>) - ]], - }, - { - path = 'c.lua', - content = [[ - x = {} - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - return function (<!arg!>) - print(<?arg?>) - end - ]], - }, - { - path = 'b.lua', - content = [[ - local f = require 'a' - local v = 1 - f(v) - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - return <!{ - a = 1, - }!> - ]], - }, - { - path = 'b.lua', - content = [[ - local <!t!> = require 'a' - <?t?> - ]], - } -} - -TEST { - { - path = 'a.lua', - content = [[ - return <!function () end!> - ]] - }, - { - path = 'b.lua', - content = [[ - local f = require 'a' - ]] - }, - { - path = 'c.lua', - content = [[ - local <!f!> = require 'a' - <?f?> - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - local function <!f!>() - end - return <!f!> - ]] - }, - { - path = 'b.lua', - content = [[ - local f = require 'a' - ]] - }, - { - path = 'c.lua', - content = [[ - local <!f!> = require 'a' - <?f?> - ]] - } -} - -TEST { - { - path = 'a/xxx.lua', - content = [[ - return <!function () end!> - ]] - }, - { - path = 'b/xxx.lua', - content = [[ - local <!f!> = require 'xxx' - <?f?> - return function () end - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - local <!x!> - return { - <!x!> = x, - } - ]], - }, - { - path = 'b.lua', - content = [[ - local t = require 'a' - print(t.<?x?>) - ]], - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - local function <!f!>() - end - - return { - <!f!> = f, - } - ]] - }, - { - path = 'c.lua', - content = [[ - local t = require 'a' - local f = t.f - - f() - - return { - f = f, - } - ]] - }, - { - path = 'b.lua', - content = [[ - local t = require 'a' - local <!f!> = t.f - - <?f?>() - - return { - f = f, - } - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - local m = {} - function m.<!func!>() - end - return m - ]] - }, - { - path = 'b.lua', - content = [[ - local x = require 'a' - print(x.<?func?>) - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - local m = {} - function m.<!func!>() - end - return m - ]] - }, - { - path = 'c.lua', - content = [[ - local x = require 'a' - print(x.func) - ]] - }, - { - path = 'b.lua', - content = [[ - local x = require 'a' - print(x.<?func?>) - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - return <!function () - end!> - ]] - }, - { - path = 'middle.lua', - content = [[ - return { - <!func!> = require 'a' - } - ]] - }, - { - path = 'b.lua', - content = [[ - local x = require 'middle' - print(x.<?func?>) - ]] - } -} - -TEST { - { - path = 'a.lua', - content = [[ - local mt = {} - mt.__index = mt - - function mt:<!add!>(a, b) - end - - return function () - return setmetatable({}, mt) - end - ]], - }, - { - path = 'b.lua', - content = [[ - local m = require 'a' - local obj = m() - obj:<?add?>() - ]] - }, -} - -config.config.intelliSense.searchDepth = 0 - -TEST { - { - path = 'a.lua', - content = [[ - local t = GlobalTable - - t.settings = { - <!test!> = 1 - } - ]], - }, - { - path = 'b.lua', - content = [[ - local b = GlobalTable.settings - - print(b.<?test?>) - ]] - }, -} - -config.config.intelliSense.searchDepth = 5 - -TEST { - { - path = 'a.lua', - content = [[ - ---@class Class - local <!obj!> - ]] - }, - { - path = 'b.lua', - content = [[ - ---@type Class - local <!obj!> - <?obj?> - ]] - }, -} - -TEST { - { - path = 'a.lua', - content = [[ - ---@type Class - local <!obj!> - <?obj?> - ]] - }, - { - path = 'b.lua', - content = [[ - ---@class Class - local <!obj!> - ]] - }, -} |