summaryrefslogtreecommitdiff
path: root/test/signature
diff options
context:
space:
mode:
Diffstat (limited to 'test/signature')
-rw-r--r--test/signature/init.lua193
1 files changed, 55 insertions, 138 deletions
diff --git a/test/signature/init.lua b/test/signature/init.lua
index 27051310..43bce29e 100644
--- a/test/signature/init.lua
+++ b/test/signature/init.lua
@@ -1,26 +1,25 @@
-local core = require 'core.signature'
+local core = require 'core.signature'
local files = require 'files'
+local catch = require 'catch'
rawset(_G, 'TEST', true)
function TEST(script)
return function (expect)
- local pos = script:find('$', 1, true) - 1
- local new_script = script:gsub('%$', '')
+ local newScript, catched1 = catch(script, '?')
+ local newExpect, catched2 = catch(expect or '', '!')
files.removeAll()
- files.setText('', new_script)
- local hovers = core('', pos)
+ files.setText('', newScript)
+ local hovers = core('', catched1['?'][1][1])
if hovers then
assert(expect)
local hover = hovers[#hovers]
- local label = hover.label:gsub('^[\r\n]*(.-)[\r\n]*$', '%1'):gsub('\r\n', '\n')
- expect.label = expect.label:gsub('^[\r\n]*(.-)[\r\n]*$', '%1'):gsub('\r\n', '\n')
local arg = hover.params[hover.index].label
- assert(expect.label == label)
- assert(expect.arg[1] == arg[1])
- assert(expect.arg[2] == arg[2])
+ assert(newExpect == hover.label)
+ assert(catched2['!'][1][1] == arg[1])
+ assert(catched2['!'][1][2] == arg[2])
else
assert(expect == nil)
end
@@ -31,93 +30,67 @@ TEST [[
local function x(a, b)
end
-x($
+x(<??>
]]
-{
- label = "function x(a: any, b: any)",
- arg = {12, 17},
-}
+'function x(<!a: any!>, b: any)'
TEST [[
local function x(a, b)
end
-x($)
+x(<??>)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {12, 17},
-}
+'function x(<!a: any!>, b: any)'
TEST [[
local function x(a, b)
end
-x(xxx$)
+x(xxx<??>)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {12, 17},
-}
+'function x(<!a: any!>, b: any)'
TEST [[
local function x(a, b)
end
-x(xxx, $)
+x(xxx, <??>)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {20, 25},
-}
+'function x(a: any, <!b: any!>)'
TEST [[
function mt:f(a)
end
-mt:f($
+mt:f(<??>
]]
-{
- label = 'function mt:f(a: any)',
- arg = {15, 20},
-}
+'function mt:f(<!a: any!>)'
TEST [[
local function x(a, b)
return 1
end
-x($
+x(<??>
]]
-{
- label = "function x(a: any, b: any)",
- arg = {12, 17},
-}
+'function x(<!a: any!>, b: any)'
TEST [[
local function x(a, ...)
return 1
end
-x(1, 2, 3, $
+x(1, 2, 3, <??>
]]
-{
- label = "function x(a: any, ...)",
- arg = {20, 22},
-}
+'function x(a: any, <!...!>)'
TEST [[
-(''):sub($
+(''):sub(<??>
]]
-{
- label = [[
-function string:sub(i: integer, j?: integer)
-]],
- arg = {21, 30},
-}
+'function string:sub(<!i: integer!>, j?: integer)'
TEST [[
-(''):sub(1)$
+(''):sub(1)<??>
]]
(nil)
@@ -125,39 +98,29 @@ TEST [[
local function f(a, b, c)
end
-f(1, 'string$')
+f(1, 'string<??>')
]]
-{
- label = [[
-function f(a: any, b: any, c: any)
-]],
- arg = {20, 25},
-}
+'function f(a: any, <!b: any!>, c: any)'
TEST [[
-pcall(function () $ end)
+pcall(function () <??> end)
]]
(nil)
TEST [[
-table.unpack {$}
+table.unpack {<??>}
]]
(nil)
TEST [[
---@type fun(x: number, y: number):boolean
local zzzz
-zzzz($)
+zzzz(<??>)
]]
-{
- label = [[
-function zzzz(x: number, y: number)
-]],
- arg = {15, 23},
-}
+'function zzzz(<!x: number!>, y: number)'
TEST [[
-('abc'):format(f($))
+('abc'):format(f(<??>))
]]
(nil)
@@ -166,14 +129,9 @@ function Foo(param01, param02)
end
-Foo($)
+Foo(<??>)
]]
-{
- label = [[
-function Foo(param01: any, param02: any)
-]],
- arg = {14, 25},
-}
+'function Foo(<!param01: any!>, param02: any)'
TEST [[
function f1(a, b)
@@ -182,51 +140,31 @@ end
function f2(c, d)
end
-f2(f1(),$)
+f2(f1(),<??>)
]]
-{
- label = [[
-function f2(c: any, d: any)
-]],
- arg = {21, 26},
-}
+'function f2(c: any, <!d: any!>)'
TEST [[
local function f(a, b, c)
end
-f({},$)
+f({},<??>)
]]
-{
- label = [[
-function f(a: any, b: any, c: any)
-]],
- arg = {20, 25},
-}
+'function f(a: any, <!b: any!>, c: any)'
TEST [[
-for _ in pairs($) do
+for _ in pairs(<??>) do
end
]]
-{
- label = [[
-function pairs(t: <T>)
-]],
- arg = {16, 21},
-}
+'function pairs(<!t: <T>!>)'
TEST [[
function m:f()
end
-m.f($)
+m.f(<??>)
]]
-{
- label = [[
-function m.f(self: table)
-]],
- arg = {14, 24},
-}
+'function m.f(<!self: table!>)'
TEST [[
---@alias nnn table<number, string>
@@ -234,59 +172,41 @@ TEST [[
---@param x nnn
local function f(x, y, z) end
-f($)
+f(<??>)
]]
-{
- label = [[
-function f(x: table<number, string>, y: any, z: any)
-]],
- arg = {12, 35},
-}
-
+'function f(<!x: table<number, string>!>, y: any, z: any)'
TEST [[
local function x(a, b)
end
-x( aaaa $, 2)
+x( aaaa <??>, 2)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {12, 17},
-}
+"function x(<!a: any!>, b: any)"
TEST [[
local function x(a, b)
end
-x($ aaaa , 2)
+x(<??> aaaa , 2)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {12, 17},
-}
+'function x(<!a: any!>, b: any)'
TEST [[
local function x(a, b)
end
-x(aaaa ,$ 2)
+x(aaaa ,<??> 2)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {20, 25},
-}
+'function x(a: any, <!b: any!>)'
TEST [[
local function x(a, b)
end
-x(aaaa , 2 $)
+x(aaaa , 2 <??>)
]]
-{
- label = "function x(a: any, b: any)",
- arg = {20, 25},
-}
+'function x(a: any, <!b: any!>)'
TEST [[
local fooC
@@ -298,9 +218,6 @@ function fooC(callback, par) end
fooC(function (x, s)
-end,$)
+end,<??>)
]]
-{
- label = 'function fooC(callback: fun(x: number, s: string):nil, par: number)',
- arg = {56, 66},
-}
+'function fooC(callback: fun(x: number, s: string):nil, <!par: number!>)'