summaryrefslogtreecommitdiff
path: root/test/crossfile
diff options
context:
space:
mode:
author最萌小汐 <sumneko@hotmail.com>2023-01-16 21:06:06 +0800
committer最萌小汐 <sumneko@hotmail.com>2023-01-16 21:06:06 +0800
commit5aaecf51b9fccddf52ed3e4749757a03819fae61 (patch)
tree87ceb62c6eb926cb54d8ba794697f0d3ddd0b1e3 /test/crossfile
parenta6798e6adb81da6b7f833bc39da0a6368178a090 (diff)
downloadlua-language-server-5aaecf51b9fccddf52ed3e4749757a03819fae61.zip
support `---@meta [name]`
once declared `name`, user can only require this file by declared name meta file can not be required with name `_`
Diffstat (limited to 'test/crossfile')
-rw-r--r--test/crossfile/completion.lua52
-rw-r--r--test/crossfile/hover.lua49
2 files changed, 100 insertions, 1 deletions
diff --git a/test/crossfile/completion.lua b/test/crossfile/completion.lua
index 3ad8c385..d613f621 100644
--- a/test/crossfile/completion.lua
+++ b/test/crossfile/completion.lua
@@ -10,6 +10,7 @@ local define = require 'proto.define'
rawset(_G, 'TEST', true)
local CompletionItemKind = define.CompletionItemKind
+local NeedRemoveMeta = false
local EXISTS = {}
@@ -87,7 +88,9 @@ function TEST(data)
assert(result ~= nil)
result.complete = nil
result.enableCommon = nil
- removeMetas(result)
+ if NeedRemoveMeta then
+ removeMetas(result)
+ end
for _, item in ipairs(result) do
if item.id then
local r = core.resolve(item.id)
@@ -441,6 +444,51 @@ config.set(nil, 'Lua.runtime.path', originRuntimePath)
TEST {
{
+ path = 'abc.lua',
+ content = '---@meta _',
+ },
+ {
+ path = 'test.lua',
+ content = 'require "a<??>"',
+ main = true,
+ },
+ completion = nil
+}
+
+TEST {
+ {
+ path = 'abc.lua',
+ content = '---@meta xxxxx',
+ },
+ {
+ path = 'test.lua',
+ content = 'require "a<??>"',
+ main = true,
+ },
+ completion = nil
+}
+
+TEST {
+ {
+ path = 'abc.lua',
+ content = '---@meta xxxxx',
+ },
+ {
+ path = 'test.lua',
+ content = 'require "xx<??>"',
+ main = true,
+ },
+ completion = {
+ {
+ label = 'xxxxx',
+ kind = CompletionItemKind.File,
+ textEdit = EXISTS,
+ }
+ }
+}
+
+TEST {
+ {
path = 'a.lua',
content = [[
return {
@@ -561,6 +609,8 @@ TEST {
completion = nil,
}
+NeedRemoveMeta = true
+
TEST {
{ path = 'f/a.lua' },
{ path = 'f/b.lua' },
diff --git a/test/crossfile/hover.lua b/test/crossfile/hover.lua
index d47bb41b..3cd560ff 100644
--- a/test/crossfile/hover.lua
+++ b/test/crossfile/hover.lua
@@ -176,6 +176,55 @@ end
TEST {
{
path = 'a.lua',
+ content = '---@meta _',
+ },
+ {
+ path = 'b.lua',
+ content = 'require <?"a"?>',
+ },
+ hover = [[
+```lua
+1 个字节
+```]],
+}
+
+TEST {
+ {
+ path = 'a.lua',
+ content = '---@meta xxx',
+ },
+ {
+ path = 'b.lua',
+ content = 'require <?"a"?>',
+ },
+ hover = [[
+```lua
+1 个字节
+```]],
+}
+
+TEST {
+ {
+ path = 'a.lua',
+ content = '---@meta xxx',
+ },
+ {
+ path = 'b.lua',
+ content = 'require <?"xxx"?>',
+ },
+ hover = [=[
+```lua
+3 个字节
+```
+
+---
+
+* [[meta]](file:///a.lua)]=],
+}
+
+TEST {
+ {
+ path = 'a.lua',
content = [[
local function f(a, b)
end