summaryrefslogtreecommitdiff
path: root/lua/telescope/previewers.lua
diff options
context:
space:
mode:
authorSimon Hauser <Simon-Hauser@outlook.de>2020-11-26 08:16:58 +0100
committerGitHub <noreply@github.com>2020-11-26 08:16:58 +0100
commit4a8ea7763ec3c1c0672398418da682c1e0d4017d (patch)
tree916242a10f9b2c67e6f8e8b3a2604df073a19871 /lua/telescope/previewers.lua
parent0f9fd84a9742e22294cfaf46f32bad9b29de0b31 (diff)
Refactor builtin (#287)
Diffstat (limited to 'lua/telescope/previewers.lua')
-rw-r--r--lua/telescope/previewers.lua40
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 {}