diff --git a/README.md b/README.md index 67db7574..df1682f4 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,7 @@ require('opencode').setup({ display_context_size = true, -- Display context size in the footer display_cost = true, -- Display cost in the footer window_highlight = 'Normal:OpencodeBackground,FloatBorder:OpencodeBorder', -- Highlight group for the opencode window + reference_picker_center_on_jump = false, -- Center viewport (zz) when jumping to a code reference (default: false) icons = { preset = 'nerdfonts', -- 'nerdfonts' | 'text'. Choose UI icon style (default: 'nerdfonts') overrides = {}, -- Optional per-key overrides, see section below diff --git a/lua/opencode/config.lua b/lua/opencode/config.lua index be98c34f..8b35f4ef 100644 --- a/lua/opencode/config.lua +++ b/lua/opencode/config.lua @@ -116,6 +116,7 @@ M.defaults = { display_context_size = true, display_cost = true, window_highlight = 'Normal:OpencodeBackground,FloatBorder:OpencodeBorder', + reference_picker_center_on_jump = false, icons = { preset = 'nerdfonts', overrides = {}, diff --git a/lua/opencode/types.lua b/lua/opencode/types.lua index 5bd755a9..ed0e6d23 100644 --- a/lua/opencode/types.lua +++ b/lua/opencode/types.lua @@ -121,6 +121,7 @@ ---@field display_context_size boolean ---@field display_cost boolean ---@field window_highlight string +---@field reference_picker_center_on_jump boolean ---@field icons { preset: 'text'|'nerdfonts', overrides: table } ---@field loading_animation OpencodeLoadingAnimationConfig ---@field output OpencodeUIOutputConfig diff --git a/lua/opencode/ui/reference_picker.lua b/lua/opencode/ui/reference_picker.lua index 632d664f..6424d8f2 100644 --- a/lua/opencode/ui/reference_picker.lua +++ b/lua/opencode/ui/reference_picker.lua @@ -308,7 +308,9 @@ function M.navigate_to(ref) line = math.min(line, line_count) vim.api.nvim_win_set_cursor(0, { line, col }) - vim.cmd('normal! zz') + if config.ui.reference_picker_center_on_jump then + vim.cmd('normal! zz') + end end end