From 697ee7aa7035841866bd2af0dcdbde45ae2e053c Mon Sep 17 00:00:00 2001 From: Dave Lage Date: Fri, 22 Apr 2022 10:20:59 -0400 Subject: feat: lua autocmd (#1707) --- lua/telescope/actions/init.lua | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'lua/telescope/actions') 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 ++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 -- cgit v1.2.3