diff options
| author | Simon Hauser <Simon-Hauser@outlook.de> | 2020-11-26 08:16:58 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-26 08:16:58 +0100 |
| commit | 4a8ea7763ec3c1c0672398418da682c1e0d4017d (patch) | |
| tree | 916242a10f9b2c67e6f8e8b3a2604df073a19871 /lua/telescope/previewers.lua | |
| parent | 0f9fd84a9742e22294cfaf46f32bad9b29de0b31 (diff) | |
Refactor builtin (#287)
Diffstat (limited to 'lua/telescope/previewers.lua')
| -rw-r--r-- | lua/telescope/previewers.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/lua/telescope/previewers.lua b/lua/telescope/previewers.lua index ee98f1c..a51c17e 100644 --- a/lua/telescope/previewers.lua +++ b/lua/telescope/previewers.lua @@ -474,6 +474,7 @@ previewers.ctags = defaulter(function(_) vim.api.nvim_win_set_option(status.preview_win, 'scrolloff', 999) pcall(vim.fn.matchdelete, self.state.hl_id, self.state.hl_win) + vim.cmd "norm! gg" vim.fn.search(scode) self.state.hl_win = status.preview_win @@ -483,6 +484,45 @@ previewers.ctags = defaulter(function(_) } end, {}) +previewers.builtin = defaulter(function(_) + return previewers.new_buffer_previewer { + setup = function() + return {} + end, + + teardown = function(self) + if self.state and self.state.hl_id then + pcall(vim.fn.matchdelete, self.state.hl_id, self.state.hl_win) + self.state.hl_id = nil + end + end, + + preview_fn = function(self, entry, status) + with_preview_window(status, nil, function() + local module_name = vim.fn.fnamemodify(entry.filename, ':t:r') + local text = module_name .. '\\.' .. entry.text + + local new_bufnr = vim.fn.bufnr(entry.filename, true) + vim.fn.bufload(new_bufnr) + + vim.api.nvim_win_set_buf(status.preview_win, new_bufnr) + vim.api.nvim_win_set_option(status.preview_win, 'wrap', false) + vim.api.nvim_win_set_option(status.preview_win, 'winhl', 'Normal:Normal') + 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, 'scrolloff', 999) + + pcall(vim.fn.matchdelete, self.state.hl_id, self.state.hl_win) + vim.cmd "norm! gg" + vim.fn.search(text) + + self.state.hl_win = status.preview_win + self.state.hl_id = vim.fn.matchadd('Search', text) + end) + end + } +end, {}) + previewers.qflist = defaulter(function(opts) opts = opts or {} |
