fix(lsp): tagfunc fails in unusual buffer #30700

Problem:
tagfunc failed in a weird buffer (either a directory or some other
non-file buffer, I don't remember):

    E987: Invalid return value from tagfunc
    E5108: Error executing lua …/runtime/lua/vim/lsp/util.lua:311: EISDIR: illegal operation on a directory
    stack traceback:

at this line:

    local data = assert(uv.fs_read(fd, stat.size, 0))

Solution:
Check for directory.
This commit is contained in:
Justin M. Keyes 2024-10-07 08:25:13 -07:00 committed by GitHub
parent 7335988ce6
commit 50f006b617
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -296,6 +296,9 @@ local function get_lines(bufnr, rows)
end end
local filename = api.nvim_buf_get_name(bufnr) local filename = api.nvim_buf_get_name(bufnr)
if vim.fn.isdirectory(filename) ~= 0 then
return {}
end
-- get the data from the file -- get the data from the file
local fd = uv.fs_open(filename, 'r', 438) local fd = uv.fs_open(filename, 'r', 438)