@ 261105.2

260109.3 · eb5e04398e526f9b9a94f5b718f8b73c8d6bd333

fix: remove getwininfo

reading declarations

autoload/fzf_lua.vim

@@ -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) 

lua/fzf-lua/utils.lua

@@ -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)

lua/fzf-lua/win.lua

@@ -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,   }