diff options
| author | Simon Hauser <Simon-Hauser@outlook.de> | 2020-11-22 03:33:27 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-21 21:33:27 -0500 |
| commit | d153c006e76db4d56eeb03605698a23344cfadbd (patch) | |
| tree | 5733881aad9b86dcb2b961b8ff7d8ac5c36f4413 /lua/telescope/make_entry.lua | |
| parent | 5bf53823eb7bff7031368dbfa659f0b9775b89e7 (diff) | |
feat: Add highlights builtin (#267)
Diffstat (limited to 'lua/telescope/make_entry.lua')
| -rw-r--r-- | lua/telescope/make_entry.lua | 28 |
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 |
