diff options
Diffstat (limited to 'server/src')
-rw-r--r-- | server/src/core/completion.lua | 5 | ||||
-rw-r--r-- | server/src/workspace.lua | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/server/src/core/completion.lua b/server/src/core/completion.lua index 16b2ad4c..adbac085 100644 --- a/server/src/core/completion.lua +++ b/server/src/core/completion.lua @@ -341,12 +341,13 @@ local function searchInRequire(vm, select, source, callback) if source.type ~= 'string' then return end - local list = vm.lsp.workspace:matchPath(vm.uri, source[1]) + local list, map = vm.lsp.workspace:matchPath(vm.uri, source[1]) if not list then return end for _, str in ipairs(list) do callback(str, nil, CompletionItemKind.File, { + documentation = map[str], textEdit = { -- TODO 坑爹自动完成的字符串里面不能包含符号 -- 这里长字符串会出问题,不过暂时先这样吧 @@ -361,7 +362,7 @@ end local function searchCallArg(vm, source, word, callback, pos) local results = {} for _, src in ipairs(vm.sources) do - if src.type == 'call' + if src.type == 'call' and src.start <= pos and src.finish >= pos then diff --git a/server/src/workspace.lua b/server/src/workspace.lua index 74a674ed..fe1289f4 100644 --- a/server/src/workspace.lua +++ b/server/src/workspace.lua @@ -239,6 +239,7 @@ function mt:matchPath(baseUri, input) local list = {} for str in pairs(map) do list[#list+1] = str + map[str] = map[str]:sub(rootLen + 2) end if #list == 0 then return nil @@ -252,7 +253,7 @@ function mt:matchPath(baseUri, input) return sa > sb end end) - return list + return list, map end function mt:searchPath(baseUri, str) |