diff options
| author | Dave Lage <rockerboo@gmail.com> | 2022-04-22 10:20:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-22 16:20:59 +0200 |
| commit | 697ee7aa7035841866bd2af0dcdbde45ae2e053c (patch) | |
| tree | 7949a3c140131e5b60c2aa96f81e4cbec87844b7 /lua/telescope/actions | |
| parent | cc1a3440f9ba6f28a8ca0bfff867f60c2d80c353 (diff) | |
feat: lua autocmd (#1707)
Diffstat (limited to 'lua/telescope/actions')
| -rw-r--r-- | lua/telescope/actions/init.lua | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/lua/telescope/actions/init.lua b/lua/telescope/actions/init.lua index 95f2ce4..03bd20c 100644 --- a/lua/telescope/actions/init.lua +++ b/lua/telescope/actions/init.lua @@ -1205,14 +1205,15 @@ actions.which_key = function(prompt_bufnr, opts) a.nvim_win_set_option(km_win_id, "winblend", opts.winblend) a.nvim_win_set_option(km_win_id, "foldenable", false) - vim.cmd(string.format( - "autocmd BufLeave <buffer> ++once lua %s", - table.concat({ - string.format("pcall(vim.api.nvim_win_close, %s, true)", km_win_id), - string.format("pcall(vim.api.nvim_win_close, %s, true)", km_opts.border.win_id), - string.format("require 'telescope.utils'.buf_delete(%s)", km_buf), - }, ";") - )) + vim.api.nvim_create_autocmd("BufLeave", { + buffer = km_buf, + once = true, + callback = function() + pcall(vim.api.nvim_win_close, km_win_id, true) + pcall(vim.api.nvim_win_close, km_opts.border.win_id, true) + require("telescope.utils").buf_delete(km_buf) + end, + }) a.nvim_buf_set_lines(km_buf, 0, -1, false, utils.repeated_table(opts.num_rows + 2 * opts.line_padding, column_indent)) @@ -1245,14 +1246,14 @@ actions.which_key = function(prompt_bufnr, opts) -- only set up autocommand after showing preview completed if opts.close_with_action then vim.schedule(function() - vim.cmd(string.format( - "autocmd User TelescopeKeymap ++once lua %s", - table.concat({ - string.format("pcall(vim.api.nvim_win_close, %s, true)", km_win_id), - string.format("pcall(vim.api.nvim_win_close, %s, true)", km_opts.border.win_id), - string.format("require 'telescope.utils'.buf_delete(%s)", km_buf), - }, ";") - )) + vim.api.nvim_create_autocmd("User TelescopeKeymap", { + once = true, + callback = function() + pcall(vim.api.nvim_win_close, km_win_id, true) + pcall(vim.api.nvim_win_close, km_opts.border.win_id, true) + require("telescope.utils").buf_delete(km_buf) + end, + }) end) end end |
