summaryrefslogtreecommitdiff
path: root/test-beta/crossfile/hover.lua
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2020-11-20 21:57:09 +0800
committer最萌小汐 <sumneko@hotmail.com>2020-11-20 21:57:09 +0800
commit4ca61ec457822dd14966afa0752340ae8ce180a1 (patch)
treeae8adb1ad82c717868e551e699fd3cf3bb290089 /test-beta/crossfile/hover.lua
parentc63b2e404d8d2bb984afe3678a5ba2b2836380cc (diff)
downloadlua-language-server-4ca61ec457822dd14966afa0752340ae8ce180a1.zip
no longer beta
Diffstat (limited to 'test-beta/crossfile/hover.lua')
-rw-r--r--test-beta/crossfile/hover.lua431
1 files changed, 0 insertions, 431 deletions
diff --git a/test-beta/crossfile/hover.lua b/test-beta/crossfile/hover.lua
deleted file mode 100644
index 9fc21461..00000000
--- a/test-beta/crossfile/hover.lua
+++ /dev/null
@@ -1,431 +0,0 @@
-local files = require 'files'
-local furi = require 'file-uri'
-local core = require 'core.hover'
-local config = require 'config'
-
-rawset(_G, 'TEST', true)
-
-local EXISTS = {}
-
-local function eq(a, b)
- if a == EXISTS and b ~= nil then
- return true
- end
- if b == EXISTS and a ~= nil then
- return true
- end
- 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
-
-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
-
-function TEST(expect)
- files.removeAll()
-
- local targetScript = expect[1].content
- local targetUri = furi.encode(expect[1].path)
-
- local sourceScript, sourceList = catch_target(expect[2].content, '?')
- local sourceUri = furi.encode(expect[2].path)
-
- files.setText(targetUri, targetScript)
- files.setText(sourceUri, sourceScript)
-
- local sourcePos = (sourceList[1][1] + sourceList[1][2]) // 2
- local hover = core.byUri(sourceUri, sourcePos)
- assert(hover)
- if hover.label then
- hover.label = hover.label:gsub('\r\n', '\n')
- end
- assert(eq(hover.label, expect.hover.label))
- assert(eq(hover.description, expect.hover.description))
-end
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = 'require <?"a"?>',
- },
- hover = {
- label = '1 个字节',
- description = [[* [a.lua](file:///a.lua) (假设搜索路径包含 `?.lua`)]],
- }
-}
-
-TEST {
- {
- path = 'Folder/a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = 'require <?"a"?>',
- },
- hover = {
- label = '1 个字节',
- description = [[* [Folder\a.lua](file:///Folder/a.lua) (假设搜索路径包含 `Folder\?.lua`)]],
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = [[
- local function f(a, b)
- end
- return f
- ]],
- },
- {
- path = 'b.lua',
- content = [[
- local x = require 'a'
- <?x?>()
- ]]
- },
- hover = {
- label = 'function f(a: any, b: any)',
- name = 'f',
- args = EXISTS,
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = [[
- return function (a, b)
- end
- ]],
- },
- {
- path = 'b.lua',
- content = [[
- local f = require 'a'
- <?f?>()
- ]]
- },
- hover = {
- label = 'function (a: any, b: any)',
- name = '',
- args = EXISTS,
- }
-}
-
-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?>()
- ]]
- },
- hover = {
- label = 'function mt:add(a: any, b: any)',
- name = 'mt:add',
- args = EXISTS,
- },
-}
-
-TEST {
- {
- path = 'a.lua',
- content = [[
- t = {
- [{}] = 1,
- }
- ]],
- },
- {
- path = 'b.lua',
- content = [[
- <?t?>[{}] = 2
- ]]
- },
- hover = {
- label = [[
-global t: {
- [table]: integer = 1|2,
-}]],
- name = 't',
- },
-}
-
-TEST {
- {
- path = 'a.lua',
- content = [[
- t = {
- [{}] = 1,
- }
- ]],
- },
- {
- path = 'a.lua',
- content = [[
- <?t?>[{}] = 2
- ]]
- },
- hover = {
- label = [[
-global t: {
- [table]: integer = 2,
-}]],
- name = 't',
- },
-}
-
-TEST {
- {
- path = 'a.lua',
- content = [[
- return {
- a = 1,
- b = 2,
- }
- ]],
- },
- {
- path = 'b.lua',
- content = [[
- local <?t?> = require 'a'
- ]]
- },
- hover = {
- label = [[
-local t: {
- a: integer = 1,
- b: integer = 2,
-}]],
- name = 't',
- },
-}
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- --- abc
- ---@param x number
- function <?f?>(x) end
- ]],
- },
- hover = {
- label = [[function f(x: number)]],
- name = 'f',
- description = ' abc',
- args = EXISTS,
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- --- abc
- <?x?> = 1
- ]],
- },
- hover = {
- label = [[global x: integer = 1]],
- name = 'x',
- description = ' abc',
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- ---@param x string
- ---| "'选项1'" # 注释1
- ---| > "'选项2'" # 注释2
- function <?f?>(x) end
- ]]
- },
- hover = {
- label = "function f(x: string|'选项1'|'选项2')",
- name = 'f',
- description = [[
-```lua
-x: string
- | '选项1' -- 注释1
- -> '选项2' -- 注释2
-```]]
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- ---@alias option
- ---| "'选项1'" # 注释1
- ---| > "'选项2'" # 注释2
- ---@param x option
- function <?f?>(x) end
- ]]
- },
- hover = {
- label = "function f(x: '选项1'|'选项2')",
- name = 'f',
- description = [[
-```lua
-x: option
- | '选项1' -- 注释1
- -> '选项2' -- 注释2
-```]]
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- ---@alias option
- ---| "'选项1'" # 注释1
- ---| > "'选项2'" # 注释2
- ---@return option x
- function <?f?>() end
- ]]
- },
- hover = {
- label = [[
-function f()
- -> x: '选项1'|'选项2']],
- name = 'f',
- description = [[
-```lua
-x: option
- | '选项1' -- 注释1
- -> '选项2' -- 注释2
-```]]
- }
-}
-
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- ---@alias option
- ---| "'选项1'" # 注释1
- ---| > "'选项2'" # 注释2
- ---@return option
- function <?f?>() end
- ]]
- },
- hover = {
- label = [[
-function f()
- -> '选项1'|'选项2']],
- name = 'f',
- description = [[
-```lua
-(return 1): option
- | '选项1' -- 注释1
- -> '选项2' -- 注释2
-```]]
- }
-}
-
-do return end
-TEST {
- {
- path = 'a.lua',
- content = '',
- },
- {
- path = 'b.lua',
- content = [[
- ---@param x string {comment = 'aaaa'}
- ---@param y string {comment = 'bbbb'}
- local function <?f?>(x, y) end
- ]]
- },
- hover = {
- label = 'function f(x: string, y: string)',
- name = 'f',
- args = EXISTS,
- description = [[
-+ `x`*(string)*: aaaa
-
-+ `y`*(string)*: bbbb]]
- }
-}