diff options
author | 最萌小汐 <sumneko@hotmail.com> | 2022-07-14 17:54:14 +0800 |
---|---|---|
committer | 最萌小汐 <sumneko@hotmail.com> | 2022-07-14 17:54:14 +0800 |
commit | 9ad3fdce5bd6c889f5734eddd04708595e1fa621 (patch) | |
tree | 028fe13842e0b7f40fd189f1109ef8ec1245812c /test/tclient/tests | |
parent | 0d79784ccf47a03f9f35e1afbd579ecbab0acd5a (diff) | |
download | lua-language-server-9ad3fdce5bd6c889f5734eddd04708595e1fa621.zip |
`---@source`
Diffstat (limited to 'test/tclient/tests')
-rw-r--r-- | test/tclient/tests/jump-source.lua | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/test/tclient/tests/jump-source.lua b/test/tclient/tests/jump-source.lua new file mode 100644 index 00000000..ff679826 --- /dev/null +++ b/test/tclient/tests/jump-source.lua @@ -0,0 +1,76 @@ +local lclient = require 'lclient' +local util = require 'utility' +local ws = require 'workspace' +local files = require 'files' +local furi = require 'file-uri' +local fs = require 'bee.filesystem' + +---@async +lclient():start(function (client) + client:registerFakers() + client:initialize() + + ws.awaitReady() + + client:notify('textDocument/didOpen', { + textDocument = { + uri = furi.encode('1.lua'), + languageId = 'lua', + version = 0, + text = [[ +---@class AAA +---@source file:///xxx.lua:50 +---@field x number +local mt = {} + +---@source file:///yyy.lua:30 +function mt:ff() end +]] + } + }) + + client:notify('textDocument/didOpen', { + textDocument = { + uri = furi.encode('main.lua'), + languageId = 'lua', + version = 0, + text = [[ +---@type AAA +local a + +print(a.x) +print(a.ff) +]] + } + }) + + local locations = client:awaitRequest('textDocument/definition', { + textDocument = { uri = furi.encode('main.lua') }, + position = { line = 3, character = 9 }, + }) + + assert(util.equal(locations, { + { + uri = 'file:///xxx.lua', + range = { + start = { line = 49, character = 0 }, + ['end'] = { line = 49, character = 0 }, + } + } + })) + + local locations = client:awaitRequest('textDocument/definition', { + textDocument = { uri = furi.encode('main.lua') }, + position = { line = 4, character = 9 }, + }) + + assert(util.equal(locations, { + { + uri = 'file:///yyy.lua', + range = { + start = { line = 29, character = 0 }, + ['end'] = { line = 29, character = 0 }, + } + } + })) +end) |