feat: lua autocmd (#1707)

This commit is contained in:
Dave Lage
2022-04-22 10:20:59 -04:00
committed by GitHub
parent cc1a3440f9
commit 697ee7aa70
4 changed files with 47 additions and 40 deletions

View File

@@ -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