aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/core/ui/display.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-06-01 14:37:42 +0200
committerGitHub <noreply@github.com>2022-06-01 14:37:42 +0200
commitae29c9a2e06f5263acfdd6c085e6093f28fc0b9e (patch)
tree5f0c02a4b785024f356bedabf8bb99966230013f /lua/nvim-lsp-installer/core/ui/display.lua
parentdocs: update plugin intro (diff)
downloadmason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.tar
mason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.tar.gz
mason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.tar.bz2
mason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.tar.lz
mason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.tar.xz
mason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.tar.zst
mason-ae29c9a2e06f5263acfdd6c085e6093f28fc0b9e.zip
refactor(ui): improve autoclose logic and update install dir label (#743)
Diffstat (limited to 'lua/nvim-lsp-installer/core/ui/display.lua')
-rw-r--r--lua/nvim-lsp-installer/core/ui/display.lua20
1 files changed, 17 insertions, 3 deletions
diff --git a/lua/nvim-lsp-installer/core/ui/display.lua b/lua/nvim-lsp-installer/core/ui/display.lua
index df12eade..b7c60c28 100644
--- a/lua/nvim-lsp-installer/core/ui/display.lua
+++ b/lua/nvim-lsp-installer/core/ui/display.lua
@@ -357,14 +357,28 @@ function M.new_view_only_win(name)
end,
})
+ vim.api.nvim_create_autocmd({ "BufHidden", "BufUnload" }, {
+ group = autoclose_augroup,
+ buffer = bufnr,
+ callback = function()
+ -- Schedule is done because otherwise the window wont actually close in some cases (for example if
+ -- you're loading another buffer into it)
+ vim.schedule(function()
+ if vim.api.nvim_win_is_valid(win_id) then
+ vim.api.nvim_win_close(win_id, true)
+ end
+ end)
+ end,
+ })
+
local win_enter_aucmd
win_enter_aucmd = vim.api.nvim_create_autocmd({ "WinEnter" }, {
group = autoclose_augroup,
pattern = "*",
callback = function()
- -- Only autoclose the popup window if the user enters a "normal" buffer.
- -- This allows us to keep the popup window open for things like diagnostic popups, UI inputs á la dressing.nvim, etc.
- if vim.api.nvim_buf_get_option(0, "buftype") == "" then
+ local buftype = vim.api.nvim_buf_get_option(0, "buftype")
+ -- This allows us to keep the floating window open for things like diagnostic popups, UI inputs á la dressing.nvim, etc.
+ if buftype ~= "prompt" and buftype ~= "nofile" then
delete_win_buf()
vim.api.nvim_del_autocmd(win_enter_aucmd)
end