diff options
Diffstat (limited to 'lua/telescope/previewers/buffer_previewer.lua')
| -rw-r--r-- | lua/telescope/previewers/buffer_previewer.lua | 47 |
1 files changed, 34 insertions, 13 deletions
diff --git a/lua/telescope/previewers/buffer_previewer.lua b/lua/telescope/previewers/buffer_previewer.lua index 0db4365..f9e77d2 100644 --- a/lua/telescope/previewers/buffer_previewer.lua +++ b/lua/telescope/previewers/buffer_previewer.lua @@ -386,6 +386,10 @@ previewers.new_buffer_previewer = function(opts) opts.define_preview(self, entry, status) vim.schedule(function() + if not self or not self.state or not self.state.bufnr then + return + end + if vim.api.nvim_buf_is_valid(self.state.bufnr) then vim.api.nvim_buf_call(self.state.bufnr, function() vim.cmd "do User TelescopePreviewerLoaded" @@ -715,8 +719,12 @@ previewers.git_stash_diff = defaulter(function(opts) value = entry.value, bufname = self.state.bufname, cwd = opts.cwd, + callback = function(bufnr) + if vim.api.nvim_buf_is_valid(bufnr) then + putils.regex_highlighter(bufnr, "diff") + end + end, }) - putils.regex_highlighter(self.state.bufnr, "diff") end, } end, {}) @@ -741,10 +749,12 @@ previewers.git_commit_diff_to_parent = defaulter(function(opts) bufname = self.state.bufname, cwd = opts.cwd, callback = function(bufnr) - search_cb_jump(self, bufnr, opts.current_line) + if vim.api.nvim_buf_is_valid(bufnr) then + search_cb_jump(self, bufnr, opts.current_line) + putils.regex_highlighter(bufnr, "diff") + end end, }) - putils.regex_highlighter(self.state.bufnr, "diff") end, } end, {}) @@ -770,10 +780,12 @@ previewers.git_commit_diff_to_head = defaulter(function(opts) bufname = self.state.bufname, cwd = opts.cwd, callback = function(bufnr) - search_cb_jump(self, bufnr, opts.current_line) + if vim.api.nvim_buf_is_valid(bufnr) then + search_cb_jump(self, bufnr, opts.current_line) + putils.regex_highlighter(bufnr, "diff") + end end, }) - putils.regex_highlighter(self.state.bufnr, "diff") end, } end, {}) @@ -799,10 +811,12 @@ previewers.git_commit_diff_as_was = defaulter(function(opts) bufname = self.state.bufname, cwd = opts.cwd, callback = function(bufnr) - search_cb_jump(self, bufnr, opts.current_line) + if vim.api.nvim_buf_is_valid(bufnr) then + search_cb_jump(self, bufnr, opts.current_line) + putils.regex_highlighter(bufnr, ft) + end end, }) - putils.highlighter(self.state.bufnr, ft) end, } end, {}) @@ -864,8 +878,12 @@ previewers.git_file_diff = defaulter(function(opts) value = entry.value, bufname = self.state.bufname, cwd = opts.cwd, + callback = function(bufnr) + if vim.api.nvim_buf_is_valid(bufnr) then + putils.regex_highlighter(bufnr, "diff") + end + end, }) - putils.regex_highlighter(self.state.bufnr, "diff") end end, } @@ -881,12 +899,12 @@ previewers.autocommands = defaulter(function(_) end, get_buffer_by_name = function(_, entry) - return entry.group + return entry.value.group_name end, define_preview = function(self, entry, status) local results = vim.tbl_filter(function(x) - return x.group == entry.group + return x.value.group_name == entry.value.group_name end, status.picker.finder.results) if self.state.last_set_bufnr then @@ -894,9 +912,9 @@ previewers.autocommands = defaulter(function(_) end local selected_row = 0 - if self.state.bufname ~= entry.group then + if self.state.bufname ~= entry.value.group_name then local display = {} - table.insert(display, string.format(" augroup: %s - [ %d entries ]", entry.group, #results)) + table.insert(display, string.format(" augroup: %s - [ %d entries ]", entry.value.group_name, #results)) -- TODO: calculate banner width/string in setup() -- TODO: get column characters to be the same HL group as border table.insert(display, string.rep("ā", vim.fn.getwininfo(status.preview_win)[1].width)) @@ -905,7 +923,10 @@ previewers.autocommands = defaulter(function(_) if item == entry then selected_row = idx end - table.insert(display, string.format(" %-14sā%-08s %s", item.event, item.ft_pattern, item.command)) + table.insert( + display, + string.format(" %-14sā%-08s %s", item.value.event, item.value.ft_pattern, item.value.command) + ) end vim.api.nvim_buf_set_option(self.state.bufnr, "filetype", "vim") |
