From 5953a38bdd23c577c1841f05a7d2f00d68e67be7 Mon Sep 17 00:00:00 2001 From: Frank LENORMAND Date: Thu, 2 Aug 2018 14:20:16 +0300 Subject: [PATCH] rc lint: Be more resilient to null coordinates Some syntax checkers (such as `cppcheck`) like to pass extra-information using a regular diagnostic line - but with null coordinates (0:0). This commit makes the `:lint` command ignore such messages, to prevent `set-option` from failing when assigning coordinates to `lint_flags`, and to avoid unecessary information in the `*lint-output*` buffer. --- rc/base/lint.kak | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/rc/base/lint.kak b/rc/base/lint.kak index d0a8b78cd..29b9031dc 100644 --- a/rc/base/lint.kak +++ b/rc/base/lint.kak @@ -47,17 +47,17 @@ define-command lint -docstring 'Parse the current buffer with a linter' %{ error_count = 0 warning_count = 0 } - /:[0-9]+:[0-9]+: ([Ff]atal )?[Ee]rror/ { + /:[1-9][0-9]*:[1-9][0-9]*: ([Ff]atal )?[Ee]rror/ { flags = flags " " $2 "|{red}█" error_count++ } - /:[0-9]+:[0-9]+:/ { + /:[1-9][0-9]*:[1-9][0-9]*:/ { if ($4 !~ /[Ee]rror/) { flags = flags " " $2 "|{yellow}█" warning_count++ } } - /:[0-9]+:[0-9]+:/ { + /:[1-9][0-9]*:[1-9][0-9]*:/ { kind = substr($4, 2) error = $2 "." $3 "," $2 "." $3 "|" kind msg = "" @@ -78,7 +78,11 @@ define-command lint -docstring 'Parse the current buffer with a linter' %{ } ' "$dir"/stderr | kak -p "$kak_session" - cut -d: -f2- "$dir"/stderr | sed "s@^@$kak_bufname:@" > "$dir"/fifo + cut -d: -f2- "$dir"/stderr | awk -v bufname="${kak_bufname}" ' + /^[1-9][0-9]*:[1-9][0-9]*:/ { + print bufname ":" $0 + } + ' > "$dir"/fifo } >/dev/null 2>&1