Skip to content

Commit a6e9b58

Browse files
committed
refactor: enable wrapping, use API to open window
Signed-off-by: Guennadi Maximov C <g.maxc.fox@protonmail.com>
1 parent d03b55a commit a6e9b58

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

lua/hoversplit/init.lua

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,29 @@ function M.update_hover_content()
3636
end)
3737
end
3838

39-
---@param command "vsp"|"sp"
39+
---@param vertical boolean
4040
---@param remain_focused boolean
41-
function M.create_hover_split(command, remain_focused)
41+
function M.create_hover_split(vertical, remain_focused)
4242
if M.hover_winid and vim.api.nvim_win_is_valid(M.hover_winid) then
4343
M.close_hover_split()
4444
return
4545
end
4646

4747
M.orig_winid = vim.api.nvim_get_current_win()
4848
M.hover_bufnr = vim.api.nvim_create_buf(false, true)
49-
vim.cmd(command)
50-
M.hover_winid = vim.api.nvim_get_current_win()
51-
vim.api.nvim_set_current_buf(M.hover_bufnr)
49+
-- vim.cmd(command)
50+
M.hover_winid = vim.api.nvim_open_win(M.hover_bufnr, not remain_focused, {
51+
focusable = true,
52+
split ="below",
53+
vertical = vertical,
54+
style = "minimal",
55+
})
56+
vim.api.nvim_win_set_buf(M.hover_winid, M.hover_bufnr)
5257
vim.api.nvim_buf_set_name(M.hover_bufnr, "hoversplit")
5358
vim.api.nvim_set_option_value("bufhidden", "wipe", { buf = M.hover_bufnr })
5459
vim.api.nvim_set_option_value("modifiable", false, { buf = M.hover_bufnr })
5560
vim.api.nvim_set_option_value("filetype", "markdown", { buf = M.hover_bufnr })
61+
vim.api.nvim_set_option_value("wrap", true, { win = M.hover_winid })
5662
vim.b[M.hover_bufnr].is_lsp_hover_split = true
5763

5864
if not remain_focused then -- added the comparison to false
@@ -62,23 +68,23 @@ function M.create_hover_split(command, remain_focused)
6268
M.update_hover_content()
6369
end
6470

65-
M.split = function()
66-
M.create_hover_split("sp", true) -- reversed the logic, now true
71+
function M.split()
72+
M.create_hover_split(false, true) -- reversed the logic, now true
6773
end
6874

69-
M.vsplit = function()
70-
M.create_hover_split("vsp", true) -- reversed the logic, now true
75+
function M.vsplit()
76+
M.create_hover_split(true, true) -- reversed the logic, now true
7177
end
7278

73-
M.split_remain_focused = function()
74-
M.create_hover_split("sp", false) -- reversed the logic, now false
79+
function M.split_remain_focused()
80+
M.create_hover_split(false, false) -- reversed the logic, now false
7581
end
7682

77-
M.vsplit_remain_focused = function()
78-
M.create_hover_split("vsp", false) -- reversed the logic, now false
83+
function M.vsplit_remain_focused()
84+
M.create_hover_split(true, false) -- reversed the logic, now false
7985
end
8086

81-
M.close_hover_split = function()
87+
function M.close_hover_split()
8288
if M.hover_bufnr and vim.api.nvim_buf_is_valid(M.hover_bufnr) then
8389
vim.api.nvim_buf_delete(M.hover_bufnr, { force = true })
8490
M.hover_bufnr = nil

0 commit comments

Comments
 (0)