summaryrefslogtreecommitdiff
path: root/lua/telescope/make_entry.lua
diff options
context:
space:
mode:
authorSimon Hauser <Simon-Hauser@outlook.de>2020-11-22 03:33:27 +0100
committerGitHub <noreply@github.com>2020-11-21 21:33:27 -0500
commitd153c006e76db4d56eeb03605698a23344cfadbd (patch)
tree5733881aad9b86dcb2b961b8ff7d8ac5c36f4413 /lua/telescope/make_entry.lua
parent5bf53823eb7bff7031368dbfa659f0b9775b89e7 (diff)
feat: Add highlights builtin (#267)
Diffstat (limited to 'lua/telescope/make_entry.lua')
-rw-r--r--lua/telescope/make_entry.lua28
1 files changed, 27 insertions, 1 deletions
diff --git a/lua/telescope/make_entry.lua b/lua/telescope/make_entry.lua
index 57344ab..e63fef2 100644
--- a/lua/telescope/make_entry.lua
+++ b/lua/telescope/make_entry.lua
@@ -453,7 +453,33 @@ function make_entry.gen_from_marks(_)
end
end
-function make_entry.gen_from_vimoptions(opts)
+function make_entry.gen_from_highlights()
+ return function(entry)
+ local make_display = function(entry)
+ local display = entry.value
+ return display, { { { 0, #display }, display } }
+ end
+
+ local preview_command = function(entry, bufnr)
+ local hl = entry.value
+ vim.api.nvim_buf_set_option(bufnr, 'filetype', 'vim')
+ local output = vim.split(vim.fn.execute('hi ' .. hl), '\n')
+ local start = string.find(output[2], 'xxx', 1, true)
+ vim.api.nvim_buf_set_lines(bufnr, 0, -1, true, output)
+ vim.api.nvim_buf_add_highlight(bufnr, -1, hl, 1, start - 1, start + 2)
+ end
+
+ return {
+ value = entry,
+ display = make_display,
+ ordinal = entry,
+
+ preview_command = preview_command
+ }
+ end
+end
+
+function make_entry.gen_from_vimoptions()
-- TODO: Can we just remove this from `options.lua`?
function N_(s)
return s