fix(lsp): resolve bufnr for get_lines (#16997)

Closes https://github.com/neovim/neovim/issues/16985

* get_lines checks if buf_loaded using bufnr 0, which is
  typically used as a sentinel value, but here must be resolved
  to the true bufnr

(cherry picked from commit 5ebb1951bc)

Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
This commit is contained in:
github-actions[bot]
2022-01-08 13:31:39 +01:00
committed by GitHub
parent 11f18a8adf
commit e44f88bbe7

View File

@@ -201,6 +201,11 @@ end
local function get_lines(bufnr, rows)
rows = type(rows) == "table" and rows or { rows }
-- This is needed for bufload and bufloaded
if bufnr == 0 then
bufnr = vim.api.nvim_get_current_buf()
end
---@private
local function buf_lines()
local lines = {}
@@ -1822,7 +1827,7 @@ function M.make_given_range_params(start_pos, end_pos, bufnr, offset_encoding)
end_pos = {end_pos, 't', true};
offset_encoding = {offset_encoding, 's', true};
}
bufnr = bufnr or 0
bufnr = bufnr or vim.api.nvim_get_current_buf()
offset_encoding = offset_encoding or M._get_offset_encoding(bufnr)
local A = list_extend({}, start_pos or api.nvim_buf_get_mark(bufnr, '<'))
local B = list_extend({}, end_pos or api.nvim_buf_get_mark(bufnr, '>'))