Para aqueles que procuram fazer a mesma coisa (ou coisas semelhantes), é possível criar um novo compilador que use findfile
e reutilizar errorformat
de algum outro compilador + pequenas modificações. O resultado final parece:
let s:gradlew = escape(findfile('gradlew', '.;') . " -b " . findfile('build.gradle', '.;'), ' \')
if exists("current_compiler")
finish
endif
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let current_compiler = s:gradlew
execute "CompilerSet makeprg=" . s:gradlew
" copied from javac.vim + added the :compileJava bits
CompilerSet errorformat=%E:compileJava%f:%l:\ %m,%E%f:%l:\ %m,%-Z%p^,%-C%.%#,%-G%.%#