diff --git a/rc/tools/jump.kak b/rc/tools/jump.kak index 60d777d455..2ffd565323 100644 --- a/rc/tools/jump.kak +++ b/rc/tools/jump.kak @@ -2,6 +2,8 @@ declare-option -docstring "name of the client in which all source code jumps wil str jumpclient declare-option -docstring "name of the client in which utilities display information" \ str toolsclient +declare-option -docstring "the pattern for the jump information in the line, such as file:line:col" \ + str jump_pattern "^([^:\n]+)(?::(\d+))(?::(\d+))?" provide-module jump %{ @@ -11,7 +13,7 @@ define-command -hidden jump %{ evaluate-commands -save-regs a %{ # use evaluate-commands to ensure jumps are collapsed try %{ evaluate-commands -draft %{ - execute-keys ',xs^([^:\n]+):(\d+):(\d+)?' + execute-keys ",xs%opt{jump_pattern}" set-register a %reg{1} %reg{2} %reg{3} } set-option buffer jump_current_line %val{cursor_line} @@ -41,7 +43,10 @@ define-command -hidden jump-select-next %{ # First jump to end of buffer so that if jump_current_line == 0 # 0g will be a no-op and we'll jump to the first result. # Yeah, thats ugly... - execute-keys ge %opt{jump_current_line}g /^[^:\n]+:\d+: + evaluate-commands -save-regs / %{ + set-register / %opt{jump_pattern} + execute-keys ge %opt{jump_current_line}g/ + } } define-command jump-previous -params 1.. -docstring %{ @@ -62,7 +67,10 @@ define-command jump-previous -params 1.. -docstring %{ complete-command jump-previous buffer define-command -hidden jump-select-previous %{ # See comment in jump-select-next - execute-keys ge %opt{jump_current_line}g ^[^:\n]+:\d+: + evaluate-commands -save-regs / %{ + set-register / %opt{jump_pattern} + execute-keys ge %opt{jump_current_line}g + } } }