aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer
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
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')
-rw-r--r--lua/nvim-lsp-installer/core/ui/display.lua20
-rw-r--r--lua/nvim-lsp-installer/ui/init.lua2
2 files changed, 18 insertions, 4 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
diff --git a/lua/nvim-lsp-installer/ui/init.lua b/lua/nvim-lsp-installer/ui/init.lua
index 9086f6cd..32f420ac 100644
--- a/lua/nvim-lsp-installer/ui/init.lua
+++ b/lua/nvim-lsp-installer/ui/init.lua
@@ -262,7 +262,7 @@ local function ServerMetadata(server)
{ server.metadata.filetypes, "" },
}),
_.when(server.is_installed, {
- { "path", "LspInstallerMuted" },
+ { "install dir", "LspInstallerMuted" },
{ server.metadata.install_dir, "String" },
}),
{