summaryrefslogtreecommitdiff
path: root/lua/telescope/actions
diff options
context:
space:
mode:
authorDave Lage <rockerboo@gmail.com>2022-04-22 10:20:59 -0400
committerGitHub <noreply@github.com>2022-04-22 16:20:59 +0200
commit697ee7aa7035841866bd2af0dcdbde45ae2e053c (patch)
tree7949a3c140131e5b60c2aa96f81e4cbec87844b7 /lua/telescope/actions
parentcc1a3440f9ba6f28a8ca0bfff867f60c2d80c353 (diff)
feat: lua autocmd (#1707)
Diffstat (limited to 'lua/telescope/actions')
-rw-r--r--lua/telescope/actions/init.lua33
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