make.kak: Fix echoing of error message when jumping
The use of `%{...%reg{...}}` was not being expanded correctly, as the enclosing %{...} prevents the internal %expand{...} from being considered. The introduction of an additional command allows us to bypass quoting hell as the expansion of %reg{5} could contain arbitrary text.
This commit is contained in:
parent
cbf11d7a07
commit
9755f7f8f2
|
@ -46,6 +46,14 @@ hook global WinSetOption filetype=(?!make).* %{
|
||||||
declare-option -docstring "name of the client in which all source code jumps will be executed" \
|
declare-option -docstring "name of the client in which all source code jumps will be executed" \
|
||||||
str jumpclient
|
str jumpclient
|
||||||
|
|
||||||
|
define-command -hidden make-open-error -params 4 %{
|
||||||
|
evaluate-commands -try-client %opt{jumpclient} %{
|
||||||
|
edit -existing "%arg{1}" %arg{2} %arg{3}
|
||||||
|
echo -markup "{Information}%arg{4}"
|
||||||
|
try %{ focus }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
define-command -hidden make-jump %{
|
define-command -hidden make-jump %{
|
||||||
evaluate-commands -collapse-jumps %{
|
evaluate-commands -collapse-jumps %{
|
||||||
try %{
|
try %{
|
||||||
|
@ -53,11 +61,11 @@ define-command -hidden make-jump %{
|
||||||
# Try to parse the error into capture groups, failing on absolute paths
|
# Try to parse the error into capture groups, failing on absolute paths
|
||||||
execute-keys s "Entering directory '([^']+)'.*\n([^:/][^:]*):(\d+):(?:(\d+):)?([^\n]+)\z" <ret>l
|
execute-keys s "Entering directory '([^']+)'.*\n([^:/][^:]*):(\d+):(?:(\d+):)?([^\n]+)\z" <ret>l
|
||||||
set-option buffer make_current_error_line %val{cursor_line}
|
set-option buffer make_current_error_line %val{cursor_line}
|
||||||
evaluate-commands -try-client %opt{jumpclient} "edit -existing %reg{1}/%reg{2} %reg{3} %reg{4}; echo -markup %{{Information}%reg{5}}; try %{ focus }"
|
make-open-error "%reg{1}/%reg{2}" "%reg{3}" "%reg{4}" "%reg{5}"
|
||||||
} catch %{
|
} catch %{
|
||||||
execute-keys <a-h><a-l> s "((?:\w:)?[^:]+):(\d+):(?:(\d+):)?([^\n]+)\z" <ret>l
|
execute-keys <a-h><a-l> s "((?:\w:)?[^:]+):(\d+):(?:(\d+):)?([^\n]+)\z" <ret>l
|
||||||
set-option buffer make_current_error_line %val{cursor_line}
|
set-option buffer make_current_error_line %val{cursor_line}
|
||||||
evaluate-commands -try-client %opt{jumpclient} "edit -existing %reg{1} %reg{2} %reg{3}; echo -markup %{{Information}%reg{4}}; try %{ focus }"
|
make-open-error "%reg{1}" "%reg{2}" "%reg{3}" "%reg{4}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user