commit 50f006b61774311e67e6948cd863bd503e4bcdfb
parent 7335988ce6a5f41a8405462c6c4c90a54d3e588c
Author: Justin M. Keyes <justinkz@gmail.com>
Date: Mon, 7 Oct 2024 08:25:13 -0700
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.
Diffstat:
1 file changed, 3 insertions(+), 0 deletions(-)
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
@@ -296,6 +296,9 @@ local function get_lines(bufnr, rows)
end
local filename = api.nvim_buf_get_name(bufnr)
+ if vim.fn.isdirectory(filename) ~= 0 then
+ return {}
+ end
-- get the data from the file
local fd = uv.fs_open(filename, 'r', 438)