fix(lsp): properly handle nil lines when trimming empty lines (#15325)

This commit is contained in:
Andrea Cappuccio
2021-08-10 20:52:30 +02:00
committed by GitHub
parent c5baba065c
commit adebbebdd7
2 changed files with 8 additions and 2 deletions

View File

@@ -1719,14 +1719,14 @@ end
function M.trim_empty_lines(lines) function M.trim_empty_lines(lines)
local start = 1 local start = 1
for i = 1, #lines do for i = 1, #lines do
if #lines[i] > 0 then if lines[i] ~= nil and #lines[i] > 0 then
start = i start = i
break break
end end
end end
local finish = 1 local finish = 1
for i = #lines, 1, -1 do for i = #lines, 1, -1 do
if #lines[i] > 0 then if lines[i] ~= nil and #lines[i] > 0 then
finish = i finish = i
break break
end end

View File

@@ -1954,6 +1954,12 @@ describe('LSP', function()
end) end)
end) end)
describe('lsp.util.trim.trim_empty_lines', function()
it('properly trims empty lines', function()
eq({{"foo", "bar"}}, exec_lua[[ return vim.lsp.util.trim_empty_lines({{ "foo", "bar" }, nil}) ]])
end)
end)
describe('lsp.util.get_effective_tabstop', function() describe('lsp.util.get_effective_tabstop', function()
local function test_tabstop(tabsize, softtabstop) local function test_tabstop(tabsize, softtabstop)
exec_lua(string.format([[ exec_lua(string.format([[