mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	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:
		| @@ -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) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Justin M. Keyes
					Justin M. Keyes