diff options
| author | TJ DeVries <devries.timothyj@gmail.com> | 2022-05-15 16:08:16 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-15 22:08:16 +0200 |
| commit | 0b5f1d69d793660900552ad4606c3adcc9934963 (patch) | |
| tree | 7fcec0a6f058ab0551d0c02ee4250cb03abc4e25 /lua | |
| parent | 2e421ef02dd1acf596d6c382d27230381a946b47 (diff) | |
feat: Add ability to choose window to edit (#745)
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/telescope/actions/set.lua | 6 | ||||
| -rw-r--r-- | lua/telescope/config.lua | 14 | ||||
| -rw-r--r-- | lua/telescope/pickers.lua | 2 |
3 files changed, 21 insertions, 1 deletions
diff --git a/lua/telescope/actions/set.lua b/lua/telescope/actions/set.lua index b880424..51267ce 100644 --- a/lua/telescope/actions/set.lua +++ b/lua/telescope/actions/set.lua @@ -130,8 +130,12 @@ action_set.edit = function(prompt_bufnr, command) local entry_bufnr = entry.bufnr - local picker = action_state.get_current_picker(prompt_bufnr) require("telescope.actions").close(prompt_bufnr) + local picker = action_state.get_current_picker(prompt_bufnr) + local win_id = picker.get_selection_window(picker, entry) + if win_id ~= 0 and a.nvim_get_current_win() ~= win_id then + vim.api.nvim_set_current_win(win_id) + end if picker.push_cursor_on_edit then vim.cmd "normal! m'" diff --git a/lua/telescope/config.lua b/lua/telescope/config.lua index 37a2846..f5cc3c6 100644 --- a/lua/telescope/config.lua +++ b/lua/telescope/config.lua @@ -788,6 +788,20 @@ append( ) append( + "get_selection_window", + function() + return 0 + end, + [[ + Function that takes function(picker, entry) and returns a window id. + The window ID will be used to decide what window the chosen file will + be opened in and the cursor placed in upon leaving the picker. + + Default: `function() return 0 end` + ]] +) + +append( "file_previewer", function(...) return require("telescope.previewers").vim_buffer_cat.new(...) diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua index d2c6e2b..98d4a18 100644 --- a/lua/telescope/pickers.lua +++ b/lua/telescope/pickers.lua @@ -94,6 +94,8 @@ function Picker:new(opts) default_selection_index = opts.default_selection_index, + get_selection_window = get_default(opts.get_selection_window, config.values.get_selection_window), + cwd = opts.cwd, _find_id = 0, |
