diff options
| author | Simon Hauser <Simon-Hauser@outlook.de> | 2021-02-27 16:26:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-27 16:26:25 +0100 |
| commit | ca92ec1a830a61a0b88fff925f2146ab46e0f7c9 (patch) | |
| tree | 4d30266573d6a009280ba9c31348b9ea76f3daec /lua/telescope/pickers.lua | |
| parent | 84732d1d780f1aecb799502be97ec3a403066268 (diff) | |
fix: a lot of small things and adds more customization for caret (#554)
Attention:
prompt_prefix will no longer add a space at the end. So if you still want a space at the end make sure your configuration has one.
The default should not be changed. So if you haven't copied prompt_prefix in your config this doesn't affect you.
Feat:
- prompt prefix does no longer always end with space
- selection_caret configurable. Default: `> `
- result_prefix configurable. Default: ` `
- more actions for git_branches
- <c-t> does track the branch
- <c-r> does rebase branch
- also added delete branch action but not configured. See readme on how to do that
Fixes:
- fix docgen ci
- Better error for lsp_workspace_symbols
- better formatting for CONTRIBUTING.md
- move from systemlist to plenary.job
- git branch now supports checkout on remote branches
Diffstat (limited to 'lua/telescope/pickers.lua')
| -rw-r--r-- | lua/telescope/pickers.lua | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua index 7dc89ae..c04ce17 100644 --- a/lua/telescope/pickers.lua +++ b/lua/telescope/pickers.lua @@ -57,6 +57,8 @@ function Picker:new(opts) preview_title = get_default(opts.preview_title, "Preview"), prompt_prefix = get_default(opts.prompt_prefix, config.values.prompt_prefix), + selection_caret = get_default(opts.selection_caret, config.values.selection_caret), + entry_prefix = get_default(opts.entry_prefix, config.values.entry_prefix), initial_mode = get_default(opts.initial_mode, config.values.initial_mode), default_text = opts.default_text, @@ -112,7 +114,6 @@ function Picker:new(opts) preview_cutoff = get_default(opts.preview_cutoff, config.values.preview_cutoff), }, self) - obj.scroller = p_scroller.create( get_default(opts.scroll_strategy, config.values.scroll_strategy), obj.sorting_strategy @@ -375,10 +376,6 @@ function Picker:find() local prompt_prefix = self.prompt_prefix if prompt_prefix ~= '' then a.nvim_buf_set_option(prompt_bufnr, 'buftype', 'prompt') - - if not vim.endswith(prompt_prefix, " ") then - prompt_prefix = prompt_prefix .. " " - end vim.fn.prompt_setprompt(prompt_bufnr, prompt_prefix) end self.prompt_prefix = prompt_prefix @@ -655,9 +652,6 @@ function Picker:change_prompt_prefix(new_prefix, hl_group) if not new_prefix then return end if new_prefix ~= '' then - if not vim.endswith(new_prefix, " ") then - new_prefix = new_prefix .. " " - end vim.fn.prompt_setprompt(self.prompt_bufnr, new_prefix) else vim.api.nvim_buf_set_text(self.prompt_bufnr, 0, 0, 0, #self.prompt_prefix, {}) @@ -733,21 +727,21 @@ function Picker:set_selection(row) local display, display_highlights = entry_display.resolve(self, self._selection_entry) if display then - display = ' ' .. display + display = self.entry_prefix .. display a.nvim_buf_set_lines(results_bufnr, self._selection_row, self._selection_row + 1, false, {display}) - self.highlighter:hi_display(self._selection_row, ' ', display_highlights) + self.highlighter:hi_display(self._selection_row, self.entry_prefix, display_highlights) self.highlighter:hi_sorter(self._selection_row, prompt, display) self.highlighter:hi_multiselect(self._selection_row, self._selection_entry) end end - local caret = '>' + local caret = self.selection_caret -- local display = string.format('%s %s', caret, -- (a.nvim_buf_get_lines(results_bufnr, row, row + 1, false)[1] or ''):sub(3) -- ) local display, display_highlights = entry_display.resolve(self, entry) - display = caret .. ' ' .. display + display = caret .. display -- TODO: You should go back and redraw the highlights for this line from the sorter. -- That's the only smart thing to do. @@ -757,8 +751,9 @@ function Picker:set_selection(row) end a.nvim_buf_set_lines(results_bufnr, row, row + 1, false, {display}) - self.highlighter:hi_selection(row, caret) - self.highlighter:hi_display(row, ' ', display_highlights) + -- don't highlight the ' ' at the end of caret + self.highlighter:hi_selection(row, caret:sub(1, -2)) + self.highlighter:hi_display(row, caret, display_highlights) self.highlighter:hi_sorter(row, prompt, display) self.highlighter:hi_multiselect(row, entry) end) @@ -809,7 +804,7 @@ function Picker:entry_adder(index, entry, _, insert) -- This is the two spaces to manage the '> ' stuff. -- Maybe someday we can use extmarks or floaty text or something to draw this and not insert here. -- until then, insert two spaces - local prefix = ' ' + local prefix = self.entry_prefix display = prefix .. display self:_increment("displayed") @@ -1109,7 +1104,7 @@ end function Picker:_get_prompt() return vim.trim( - vim.api.nvim_buf_get_lines(self.prompt_bufnr, 0, 1, false)[1]:sub(#self.prompt_prefix) + vim.api.nvim_buf_get_lines(self.prompt_bufnr, 0, 1, false)[1]:sub(#self.prompt_prefix + 1) ) end |
