summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul d'Hubert <paul@tymate.com>2016-12-06 15:47:03 +0100
committerPaul d'Hubert <paul@tymate.com>2016-12-08 11:01:05 +0100
commitc54a8ef987a1b2a15fe7ccd7be816b0a2de09fc3 (patch)
tree282142ae94a7e05be114b7254d9571c4b36ad76b
parent03eb128536acb3d870b7010ae3cad3d2b707cf72 (diff)
Allow setting custom make error pattern
The current pattern used by the commands `make-next` and `make-prev` are not suitable for all usages. For example the go compiler will not suffix errors with `error: ` and is not usable with these functions. This change allows the user to define a custom error pattern, instead of having to work around the error (for example using sed to insert the `error: ` suffix). What do you think of this? I have not followed the current convention of having options without separators (like `makecmd`). Also this does not feel to be the right solution because the pattern has to be set at global level.
-rw-r--r--rc/core/make.kak6
1 files changed, 4 insertions, 2 deletions
diff --git a/rc/core/make.kak b/rc/core/make.kak
index f53cb272..76d77b0c 100644
--- a/rc/core/make.kak
+++ b/rc/core/make.kak
@@ -1,4 +1,6 @@
decl str makecmd make
+decl str make_error_pattern "[0-9]+: (?:fatal )?error:"
+
decl str toolsclient
decl -hidden int _make_current_error_line
@@ -59,7 +61,7 @@ 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<a-l>/[0-9]+: (?:fatal )?error:<ret>"
+ exec "%opt{_make_current_error_line}g<a-l>/%opt{make_error_pattern}<ret>"
make-jump
}
try %{ eval -client %opt{toolsclient} %{ exec %opt{_make_current_error_line}g } }
@@ -68,7 +70,7 @@ def make-next -docstring 'Jump to the next make error' %{
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<a-h><a-/>[0-9]+: (?:fatal )?error:<ret>"
+ exec "%opt{_make_current_error_line}g<a-h><a-/>%opt{make_error_pattern}<ret>"
make-jump
}
try %{ eval -client %opt{toolsclient} %{ exec %opt{_make_current_error_line}g } }