From ca225ad4dc7ed27285422691bc4e105e71ba0c9e Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Fri, 9 Dec 2016 13:33:01 +0000 Subject: [PATCH] Cleanup make.kak and optimize the make-next/make-prev regexes --- rc/core/make.kak | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/rc/core/make.kak b/rc/core/make.kak index c446eb09..0a8fccd2 100644 --- a/rc/core/make.kak +++ b/rc/core/make.kak @@ -2,7 +2,7 @@ decl str makecmd make decl str make_error_pattern " (?:fatal )?error:" decl str toolsclient -decl -hidden int _make_current_error_line +decl -hidden int make_current_error_line def -params .. \ -docstring %{make []: make utility wrapper @@ -15,7 +15,7 @@ All the optional arguments are forwarded to the make utility} \ printf %s\\n "eval -try-client '$kak_opt_toolsclient' %{ edit! -fifo ${output} -scroll *make* set buffer filetype make - set buffer _make_current_error_line 0 + set buffer make_current_error_line 0 hook -group fifo buffer BufCloseFifo .* %{ nop %sh{ rm -r $(dirname ${output}) } rmhooks buffer fifo @@ -25,7 +25,7 @@ All the optional arguments are forwarded to the make utility} \ addhl -group / group make addhl -group /make regex "^((?:\w:)?[^:\n]+):(\d+):(?:(\d+):)?\h+(?:((?:fatal )?error)|(warning)|(note)|(required from(?: here)?))?.*?$" 1:cyan 2:green 3:green 4:red 5:yellow 6:blue 7:yellow -addhl -group /make line %{%opt{_make_current_error_line}} default+b +addhl -group /make line '%opt{make_current_error_line}' default+b hook -group make-highlight global WinSetOption filetype=make %{ addhl ref make } @@ -46,14 +46,12 @@ def -hidden make-jump %{ try %{ exec gl "Entering directory" exec s "Entering directory '([^']+)'.*\n([^:]+):(\d+):(?:(\d+):)?([^\n]+)\'" l - set buffer _make_current_error_line %val{cursor_line} - eval -try-client %opt{jumpclient} "edit -existing %reg{1}/%reg{2} %reg{3} %reg{4}; echo -color Information %{%reg{5}}" - try %{ focus %opt{jumpclient} } + set buffer make_current_error_line %val{cursor_line} + eval -try-client %opt{jumpclient} "edit -existing %reg{1}/%reg{2} %reg{3} %reg{4}; echo -color Information %{%reg{5}}; try %{ focus }" } catch %{ exec s "((?:\w:)?[^:]+):(\d+):(?:(\d+):)?([^\n]+)\'" l - set buffer _make_current_error_line %val{cursor_line} - eval -try-client %opt{jumpclient} "edit -existing %reg{1} %reg{2} %reg{3}; echo -color Information %{%reg{4}}" - try %{ focus %opt{jumpclient} } + set buffer make_current_error_line %val{cursor_line} + eval -try-client %opt{jumpclient} "edit -existing %reg{1} %reg{2} %reg{3}; echo -color Information %{%reg{4}}; try %{ focus }" } } } @@ -61,17 +59,17 @@ def -hidden make-jump %{ def make-next -docstring 'Jump to the next make error' %{ eval -collapse-jumps -try-client %opt{jumpclient} %{ buffer '*make*' - exec "%opt{_make_current_error_line}g/(?:\w:)?[^:]+:\d+:(?:\d+:)?%opt{make_error_pattern}" + exec "%opt{make_current_error_line}ggl" "/^(?:\w:)?[^:\n]+:\d+:(?:\d+:)?%opt{make_error_pattern}" make-jump } - try %{ eval -client %opt{toolsclient} %{ exec %opt{_make_current_error_line}g } } + try %{ eval -client %opt{toolsclient} %{ exec %opt{make_current_error_line}g } } } def make-prev -docstring 'Jump to the previous make error' %{ eval -collapse-jumps -try-client %opt{jumpclient} %{ buffer '*make*' - exec "%opt{_make_current_error_line}g(?:\w:)?[^:]+:\d+:(?:\d+:)?%opt{make_error_pattern}" + exec "%opt{make_current_error_line}g" "^(?:\w:)?[^:\n]+:\d+:(?:\d+:)?%opt{make_error_pattern}" make-jump } - try %{ eval -client %opt{toolsclient} %{ exec %opt{_make_current_error_line}g } } + try %{ eval -client %opt{toolsclient} %{ exec %opt{make_current_error_line}g } } }