From e1e6a76b843504987da213c1bfb24c726a8c23ec Mon Sep 17 00:00:00 2001 From: Bob Qi Date: Wed, 19 Jun 2024 16:05:30 +0800 Subject: [PATCH 1/2] support three path style in jump --- rc/tools/jump.kak | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rc/tools/jump.kak b/rc/tools/jump.kak index 60d777d45..f0e0081b4 100644 --- a/rc/tools/jump.kak +++ b/rc/tools/jump.kak @@ -11,7 +11,10 @@ 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+)?' + # file + # file:line + # file:line:col + execute-keys ',xs^([^:\n]+)(?::(\d+))?(?::(\d+))?' set-register a %reg{1} %reg{2} %reg{3} } set-option buffer jump_current_line %val{cursor_line} From 7519871aecc0b5af4927c36d1b4c9db0f9018058 Mon Sep 17 00:00:00 2001 From: Bob Qi Date: Fri, 21 Jun 2024 09:58:25 +0800 Subject: [PATCH 2/2] introduce jump_pattern --- rc/tools/jump.kak | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/rc/tools/jump.kak b/rc/tools/jump.kak index f0e0081b4..94f02d1f2 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,10 +13,7 @@ define-command -hidden jump %{ evaluate-commands -save-regs a %{ # use evaluate-commands to ensure jumps are collapsed try %{ evaluate-commands -draft %{ - # file - # file:line - # file:line:col - 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} @@ -44,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 %{ @@ -65,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 + } } }