diff options
| author | fdschmidt93 <39233597+fdschmidt93@users.noreply.github.com> | 2021-09-10 13:21:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-10 13:21:04 +0200 |
| commit | 1c35ea319e847e07653cde5bb817daba8dd83a70 (patch) | |
| tree | 91f4baa096c89d970d97653d4199ba1802250093 /lua/telescope/previewers/buffer_previewer.lua | |
| parent | b4d6eb9a232dab48ce658470a980e7a15edb500f (diff) | |
fix: stale lnum in buffer previewer (#1229)
* fix: lnum to jump to might be stale eg when resuming buffer picker after changes
Diffstat (limited to 'lua/telescope/previewers/buffer_previewer.lua')
| -rw-r--r-- | lua/telescope/previewers/buffer_previewer.lua | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lua/telescope/previewers/buffer_previewer.lua b/lua/telescope/previewers/buffer_previewer.lua index a80a17e..a4da833 100644 --- a/lua/telescope/previewers/buffer_previewer.lua +++ b/lua/telescope/previewers/buffer_previewer.lua @@ -956,12 +956,13 @@ end, {}) previewers.buffers = defaulter(function(opts) opts = opts or {} local cwd = opts.cwd or vim.loop.cwd() - local previewer_active = true -- decouple provider from preview_win + local previewer_active -- decouple provider from preview_win return Previewer:new { title = function() return "Buffers" end, setup = function(_, status) + previewer_active = true local win_id = status.picker.original_win_id -- required because of see `:h local-options` as -- buffers not yet attached to a current window take the options from the `minimal` popup ... @@ -1030,16 +1031,20 @@ previewers.buffers = defaulter(function(opts) preview_fn = function(self, entry, status) if vim.api.nvim_buf_is_valid(entry.bufnr) then vim.api.nvim_win_set_buf(status.preview_win, entry.bufnr) + self.state.bufnr = entry.bufnr vim.api.nvim_win_set_option(status.preview_win, "winhl", "Normal:TelescopePreviewNormal") vim.api.nvim_win_set_option(status.preview_win, "signcolumn", "no") vim.api.nvim_win_set_option(status.preview_win, "foldlevel", 100) vim.api.nvim_win_set_option(status.preview_win, "wrap", false) - self.state.bufnr = entry.bufnr - if not entry.col then - local _, col = unpack(vim.api.nvim_win_get_cursor(status.preview_win)) - entry.col = col + 1 - end + if self.state.previewed_buffers[entry.bufnr] ~= true then + if entry.lnum then + local lnum, col = unpack(vim.api.nvim_win_get_cursor(status.preview_win)) + entry.lnum = lnum + if not entry.col then + entry.col = col + 1 + end + end self.state.previewed_buffers[entry.bufnr] = true end end |
