clang.kak: add a clang-diagnostics-next command
clang-diagnostics-next will jump to the next line with a clang error/warning.
This commit is contained in:
parent
15bb048428
commit
5cefaa1819
21
rc/clang.kak
21
rc/clang.kak
|
@ -73,7 +73,8 @@ def -shell-params clang-parse %{
|
||||||
" | paste -s -d ':')
|
" | paste -s -d ':')
|
||||||
|
|
||||||
errors=$(cat ${dir}/stderr | sed -rne "
|
errors=$(cat ${dir}/stderr | sed -rne "
|
||||||
/^<stdin>:[0-9]+:([0-9]+:)? (error|warning)/ { s/^<stdin>:([0-9]+):([0-9]+:)? (.*)/\1,\3/; s/'/\\\\'/g; p }")
|
/^<stdin>:[0-9]+:([0-9]+:)? (error|warning)/ { s/^<stdin>:([0-9]+):([0-9]+:)? (.*)/\1,\3/; s/'/\\\\'/g; p }
|
||||||
|
" | sort -n)
|
||||||
|
|
||||||
sed -e "s|<stdin>|${kak_bufname}|g" < ${dir}/stderr > ${dir}/fifo
|
sed -e "s|<stdin>|${kak_bufname}|g" < ${dir}/stderr > ${dir}/fifo
|
||||||
|
|
||||||
|
@ -118,3 +119,21 @@ def clang-disable-diagnostics %{
|
||||||
rmhl hlflags_clang_flags
|
rmhl hlflags_clang_flags
|
||||||
rmhooks window clang-diagnostics
|
rmhooks window clang-diagnostics
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def clang-diagnostics-next %{ %sh{
|
||||||
|
echo "${kak_opt_clang_errors}" | (
|
||||||
|
line=-1
|
||||||
|
first_line=-1
|
||||||
|
while read line_content; do
|
||||||
|
candidate=${line_content%%,*}
|
||||||
|
first_line=$(( first_line == -1 ? candidate : first_line ))
|
||||||
|
line=$((candidate > kak_cursor_line && (candidate < line || line == -1) ? candidate : line ))
|
||||||
|
done
|
||||||
|
line=$((line == -1 ? first_line : line))
|
||||||
|
if [ ${line} -ne -1 ]; then
|
||||||
|
echo "exec ${line} g"
|
||||||
|
else
|
||||||
|
echo 'echo -color Error no next clang diagnostic'
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
} }
|
||||||
|
|
Loading…
Reference in New Issue
Block a user