" Vim compiler file " Compiler: ConTeXt typesetting engine " Maintainer: Nicola Vitacolonna " Last Change: 2016 Oct 21 if exists("current_compiler") finish endif let s:keepcpo= &cpo set cpo&vim if exists(":CompilerSet") != 2 " older Vim always used :setlocal command -nargs=* CompilerSet setlocal endif " If makefile exists and we are not asked to ignore it, we use standard make " (do not redefine makeprg) if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) || \ (!filereadable('Makefile') && !filereadable('makefile')) let current_compiler = 'context' " The following assumes that the current working directory is set to the " directory of the file to be typeset let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun')) \ . ' --script context --autogenerate --nonstopmode --synctex=' \ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0') \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', '')) \ . ' ' . shellescape(expand('%:p:t')) else let current_compiler = 'make' endif let b:context_errorformat = '' \ . '%-Popen source%.%#> %f,' \ . '%-Qclose source%.%#> %f,' \ . "%-Popen source%.%#name '%f'," \ . "%-Qclose source%.%#name '%f'," \ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,' \ . 'tex %trror%.%#error on line %l in file %f: %m,' \ . '%Elua %trror%.%#error on line %l in file %f:,' \ . '%+Emetapost %#> error: %#,' \ . '! error: %#%m,' \ . '%-C %#,' \ . '%C! %m,' \ . '%Z[ctxlua]%m,' \ . '%+C<*> %.%#,' \ . '%-C%.%#,' \ . '%Z...%m,' \ . '%-Zno-error,' \ . '%-G%.%#' " Skip remaining lines execute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ') let &cpo = s:keepcpo unlet s:keepcpo