260109.3 · eb5e04398e526f9b9a94f5b718f8b73c8d6bd333
fix: remove getwininfo
reading declarations
@@ -16,13 +16,3 @@ function! fzf_lua#getbufinfo(bufnr) abort endif return info[0] endfunction--" Similar to fzf_lua#getbufinfo, but for getwininfo.-function! fzf_lua#getwininfo(winid) abort- let info = getwininfo(a:winid)- if empty(info)- return []- endif- unlet! info[0].variables- return info[0]-endfunction
lua/fzf-lua/previewer/builtin.lua
@@ -284,11 +284,6 @@ function Previewer.base:set_style_winopts() self.win:set_winopts(self.win.preview_winid, self:gen_winopts(), true) end -function Previewer.base:preview_is_terminal()- if not self.win or not self.win:validate_preview() then return end- return (utils.getwininfo(self.win.preview_winid) or {}).terminal == 1-end- ---@diagnostic disable-next-line: unused ---@return integer function Previewer.base:get_tmp_buffer()@@ -577,10 +572,11 @@ function Previewer.base:scroll(direction) pcall(api.nvim_win_call, preview_winid, function() vim.cmd([[norm! ]] .. input) -- `zb` at bottom?- local wi = utils.getwininfo(preview_winid)- ---@cast wi -?- if wi.height > (wi.botline - wi.topline) then- api.nvim_win_set_cursor(0, { wi.botline, 1 })+ local height = api.nvim_win_get_height(preview_winid)+ local topline = fn.line("w0")+ local botline = fn.line("w$")+ if height > (botline - topline) then+ api.nvim_win_set_cursor(0, { botline, 1 }) vim.cmd("norm! zvzb") end end)@@ -612,9 +608,9 @@ function Previewer.base:copy_extmarks() local src_bufnr = self.loaded_entry.bufnr local dst_bufnr = self.preview_bufnr local ns = self.ns_extmarks- local wi = utils.getwininfo(self.win.preview_winid) ---@cast wi -?- local topline = wi.topline- local botline = wi.botline+ local win = self.win.preview_winid+ local topline = fn.line("w0", win)+ local botline = fn.line("w$", win) for _, n in pairs(api.nvim_get_namespaces()) do local extmarks = api.nvim_buf_get_extmarks(src_bufnr, n, { topline - 1, 0 }, { botline - 1, -1 },@@ -1269,12 +1265,8 @@ end function Previewer.base:maybe_set_cursorline(win, pos) if not pos then return end- local wininfo = utils.getwininfo(win) local cursorline = false- if wininfo- and pos[1] >= wininfo.topline- and pos[1] <= wininfo.botline- then+ if pos[1] >= fn.line("w0", win) and pos[1] <= fn.line("w$", win) then -- reset cursor pos even when it's already there, no bigggie -- local curpos = api.nvim_win_get_cursor(win) api.nvim_win_set_cursor(win, pos)@@ -1385,7 +1377,7 @@ end ---@param min_winopts boolean? function Previewer.buffer_or_file:preview_buf_post(entry, min_winopts) if not self.win or not self.win:validate_preview() then return end- if not self:preview_is_terminal() then+ if not utils.is_term_buffer(self.preview_bufnr) then -- set cursor highlights for line|col or tag self:set_cursor_hl(entry)
@@ -1021,14 +1021,7 @@ end ---@param bufnr integer ---@return boolean function M.is_term_buffer(bufnr)- -- convert bufnr=0 to current buf so we can call 'bufwinid'- bufnr = bufnr == 0 and vim.api.nvim_get_current_buf() or bufnr- local winid = vim.fn.bufwinid(bufnr)- if tonumber(winid) > 0 and vim.api.nvim_win_is_valid(winid) then- return M.getwininfo(winid) --[[@cast -?]].terminal == 1- end- local bufname = vim.api.nvim_buf_is_valid(bufnr) and vim.api.nvim_buf_get_name(bufnr)- return M.is_term_bufname(bufname)+ return vim.api.nvim_buf_is_valid(bufnr) and vim.bo[bufnr].buftype == "terminal" end ---@param bufnr integer@@ -1079,18 +1072,14 @@ end -- 1 for qf list -- 2 for loc list ---@param winid integer----@param wininfo (vim.fn.getwininfo.ret.item|vim.fn.getwininfo.ret.item[]|false|table)? ---@return 1|2|false-function M.win_is_qf(winid, wininfo)- wininfo = wininfo or (vim.api.nvim_win_is_valid(winid) and M.getwininfo(winid))- if wininfo and wininfo.quickfix == 1 then- return wininfo.loclist == 1 and 2 or 1- end- return false+function M.win_is_qf(winid)+ local winty = vim.api.nvim_win_is_valid(winid) and vim.fn.win_gettype(winid) or nil+ return winty == "quickfix" and 1 or winty == "loclist" and 2 or false end ---@param bufnr integer----@param bufinfo (vim.fn.getwininfo.ret.item|vim.fn.getwininfo.ret.item[]|false|table)?+---@param bufinfo (vim.fn.getbufinfo.ret.item|vim.fn.getbufinfo.ret.item[]|false|table)? ---@return 1|2|false function M.buf_is_qf(bufnr, bufinfo) bufinfo = bufinfo or (vim.api.nvim_buf_is_valid(bufnr) and M.getbufinfo(bufnr))@@ -1288,16 +1277,6 @@ function M.getbufinfo(bufnr) end end ----@param winid? integer----@return vim.fn.getwininfo.ret.item?-function M.getwininfo(winid)- if M.__HAS_AUTOLOAD_FNS then- return vim.fn["fzf_lua#getwininfo"](winid)- else- return vim.fn.getwininfo(winid)[1]- end-end- ---@param cmd string[] ---@return string[] lines in the stdout or stderr, separated by '\n' ---@return integer exit_code (0: success)
@@ -349,7 +349,7 @@ function FzfWin:generate_layout() end if self.previewer_is_builtin and winopts.split then- local wininfo = assert(utils.getwininfo(self.fzf_winid))+ local wininfo = api.nvim_win_get_config(self.fzf_winid) -- no signcolumn/number/relativenumber (in set_style_minimal) ---@diagnostic disable-next-line: missing-fields winopts = {@@ -1552,10 +1552,10 @@ function FzfWin:update_preview_scrollbar() end local buf = api.nvim_win_get_buf(self.preview_winid)- local wininfo = assert(utils.getwininfo(self.preview_winid)) local line_count = utils.line_count(self.preview_winid, buf) - local topline, height = wininfo.topline, wininfo.height+ local topline, height = fn.line("w0", self.preview_winid),+ api.nvim_win_get_height(self.preview_winid) if api.nvim_win_text_height then topline = topline == 1 and topline or api.nvim_win_text_height(self.preview_winid, { end_row = topline - 1 }).all + 1@@ -1584,7 +1584,7 @@ function FzfWin:update_preview_scrollbar() height = height, zindex = self.winopts.zindex + 1, row = 0,- col = wininfo.width + scrolloff,+ col = api.nvim_win_get_width(self.preview_winid) + scrolloff, border = "none", hide = self.winopts.hide, }