From 2ff2785c396e66c285fecf5b151d8f8863f9d4e6 Mon Sep 17 00:00:00 2001 From: Pablo Arias Date: Mon, 25 Dec 2023 01:30:56 +0100 Subject: feat(health): checkhealth buffer can show in a split window (#26714) :checkhealth now respects :vertical and :horizontal. For example: :vertical checkhealth foo bar will open the healthcheck buffer in a vertical split. --- runtime/lua/vim/health.lua | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/health.lua b/runtime/lua/vim/health.lua index 6e47a22d03..4659ab1694 100644 --- a/runtime/lua/vim/health.lua +++ b/runtime/lua/vim/health.lua @@ -268,14 +268,27 @@ end -- Runs the specified healthchecks. -- Runs all discovered healthchecks if plugin_names is empty. -function M._check(plugin_names) +-- splitmod controls how the healthcheck window opens: "vertical", "horizontal" or "tab" +function M._check(splitmod, plugin_names) local healthchecks = plugin_names == '' and get_healthcheck('*') or get_healthcheck(plugin_names) - -- Create buffer and open in a tab, unless this is the default buffer when Nvim starts. local emptybuf = vim.fn.bufnr('$') == 1 and vim.fn.getline(1) == '' and 1 == vim.fn.line('$') - local mod = emptybuf and 'buffer' or 'tab sbuffer' + local mod = function() + if splitmod == 'vertical' then + return 'vertical sbuffer' + elseif splitmod == 'horizontal' then + return 'horizontal sbuffer' + elseif emptybuf then + -- if this is the default buffer when Nvim starts, open healthcheck directly + return 'buffer' + else + -- if not specified otherwise open healthcheck in a tab + return 'tab sbuffer' + end + end + local bufnr = vim.api.nvim_create_buf(true, true) - vim.cmd(mod .. ' ' .. bufnr) + vim.cmd(mod() .. ' ' .. bufnr) if vim.fn.bufexists('health://') == 1 then vim.cmd.bwipe('health://') -- cgit