aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/lua/vim/diagnostic.lua11
-rw-r--r--runtime/lua/vim/lsp/util.lua2
2 files changed, 9 insertions, 4 deletions
diff --git a/runtime/lua/vim/diagnostic.lua b/runtime/lua/vim/diagnostic.lua
index a903f25b58..708ee1727a 100644
--- a/runtime/lua/vim/diagnostic.lua
+++ b/runtime/lua/vim/diagnostic.lua
@@ -508,10 +508,13 @@ local function diagnostic_move_pos(opts, pos)
return
end
- -- Save position in the window's jumplist
- vim.api.nvim_win_call(win_id, function() vim.cmd("normal! m'") end)
-
- vim.api.nvim_win_set_cursor(win_id, {pos[1] + 1, pos[2]})
+ vim.api.nvim_win_call(win_id, function()
+ -- Save position in the window's jumplist
+ vim.cmd("normal! m'")
+ vim.api.nvim_win_set_cursor(win_id, {pos[1] + 1, pos[2]})
+ -- Open folds under the cursor
+ vim.cmd("normal! zv")
+ end)
if float then
local float_opts = type(float) == "table" and float or {}
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index fad2b962b5..059e66c53a 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -965,6 +965,8 @@ function M.jump_to_location(location)
local row = range.start.line
local col = get_line_byte_from_position(0, range.start)
api.nvim_win_set_cursor(0, {row + 1, col})
+ -- Open folds under the cursor
+ vim.cmd("normal! zv")
return true
end