diff options
Diffstat (limited to 'runtime/compiler')
-rw-r--r-- | runtime/compiler/context.vim | 80 |
1 files changed, 37 insertions, 43 deletions
diff --git a/runtime/compiler/context.vim b/runtime/compiler/context.vim index cb78c96df0..4cabf145c5 100644 --- a/runtime/compiler/context.vim +++ b/runtime/compiler/context.vim @@ -1,54 +1,48 @@ -" Vim compiler file -" Compiler: ConTeXt typesetting engine -" Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> -" Last Change: 2016 Oct 21 +vim9script -if exists("current_compiler") +# Language: ConTeXt typesetting engine +# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> +# Former Maintainers: Nikolai Weibull <now@bitwi.se> +# Latest Revision: 2022 Aug 12 + +if exists("g:current_compiler") finish endif -let s:keepcpo= &cpo -set cpo&vim -if exists(":CompilerSet") != 2 " older Vim always used :setlocal +import autoload '../autoload/context.vim' + +if exists(":CompilerSet") != 2 # Older Vim always used :setlocal command -nargs=* CompilerSet setlocal <args> endif -" If makefile exists and we are not asked to ignore it, we use standard make -" (do not redefine makeprg) +g:current_compiler = 'context' + 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')) + (!filereadable('Makefile') && !filereadable('makefile')) + &l:makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ') else - let current_compiler = 'make' + g: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 +const context_errorformat = join([ + "%-Popen source%.%#> %f", + "%-Qclose source%.%#> %f", + "%-Popen source%.%#name '%f'", + "%-Qclose source%.%#name '%f'", + "tex %trror%.%#error on line %l in file %f: %m", + "%Elua %trror%.%#error on line %l in file %f:", + "%+Emetapost %#> error: %#", + "%Emetafun%.%#error: %m", + "! error: %#%m", + "%-C %#", + "%C! %m", + "%Z[ctxlua]%m", + "%+C<*> %.%#", + "%-C%.%#", + "%Z...%m", + "%-Zno-error", + "%-G%.%#"], ",") + +execute 'CompilerSet errorformat=' .. escape(context_errorformat, ' ') + +# vim: sw=2 fdm=marker |