@@ -36,23 +36,29 @@ function M.update_hover_content()
36
36
end )
37
37
end
38
38
39
- --- @param command " vsp " | " sp "
39
+ --- @param vertical boolean
40
40
--- @param remain_focused boolean
41
- function M .create_hover_split (command , remain_focused )
41
+ function M .create_hover_split (vertical , remain_focused )
42
42
if M .hover_winid and vim .api .nvim_win_is_valid (M .hover_winid ) then
43
43
M .close_hover_split ()
44
44
return
45
45
end
46
46
47
47
M .orig_winid = vim .api .nvim_get_current_win ()
48
48
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 )
52
57
vim .api .nvim_buf_set_name (M .hover_bufnr , " hoversplit" )
53
58
vim .api .nvim_set_option_value (" bufhidden" , " wipe" , { buf = M .hover_bufnr })
54
59
vim .api .nvim_set_option_value (" modifiable" , false , { buf = M .hover_bufnr })
55
60
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 })
56
62
vim .b [M .hover_bufnr ].is_lsp_hover_split = true
57
63
58
64
if not remain_focused then -- added the comparison to false
@@ -62,23 +68,23 @@ function M.create_hover_split(command, remain_focused)
62
68
M .update_hover_content ()
63
69
end
64
70
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
67
73
end
68
74
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
71
77
end
72
78
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
75
81
end
76
82
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
79
85
end
80
86
81
- M .close_hover_split = function ()
87
+ function M .close_hover_split ()
82
88
if M .hover_bufnr and vim .api .nvim_buf_is_valid (M .hover_bufnr ) then
83
89
vim .api .nvim_buf_delete (M .hover_bufnr , { force = true })
84
90
M .hover_bufnr = nil
0 commit comments