xref: /vim-8.2.3635/runtime/compiler/context.vim (revision 46fceaaa)
1*46fceaaaSBram Moolenaar" Vim compiler file
2*46fceaaaSBram Moolenaar" Compiler:     ConTeXt typesetting engine
3*46fceaaaSBram Moolenaar" Maintainer:   Nicola Vitacolonna <[email protected]>
4*46fceaaaSBram Moolenaar" Last Change:  2016 Oct 21
5*46fceaaaSBram Moolenaar
6*46fceaaaSBram Moolenaarif exists("current_compiler")
7*46fceaaaSBram Moolenaar  finish
8*46fceaaaSBram Moolenaarendif
9*46fceaaaSBram Moolenaarlet s:keepcpo= &cpo
10*46fceaaaSBram Moolenaarset cpo&vim
11*46fceaaaSBram Moolenaar
12*46fceaaaSBram Moolenaarif exists(":CompilerSet") != 2    " older Vim always used :setlocal
13*46fceaaaSBram Moolenaar  command -nargs=* CompilerSet setlocal <args>
14*46fceaaaSBram Moolenaarendif
15*46fceaaaSBram Moolenaar
16*46fceaaaSBram Moolenaar" If makefile exists and we are not asked to ignore it, we use standard make
17*46fceaaaSBram Moolenaar" (do not redefine makeprg)
18*46fceaaaSBram Moolenaarif get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
19*46fceaaaSBram Moolenaar      \ (!filereadable('Makefile') && !filereadable('makefile'))
20*46fceaaaSBram Moolenaar  let current_compiler = 'context'
21*46fceaaaSBram Moolenaar  " The following assumes that the current working directory is set to the
22*46fceaaaSBram Moolenaar  " directory of the file to be typeset
23*46fceaaaSBram Moolenaar  let &l:makeprg = get(b:, 'context_mtxrun', get(g:, 'context_mtxrun', 'mtxrun'))
24*46fceaaaSBram Moolenaar        \ . ' --script context --autogenerate --nonstopmode --synctex='
25*46fceaaaSBram Moolenaar        \ . (get(b:, 'context_synctex', get(g:, 'context_synctex', 0)) ? '1' : '0')
26*46fceaaaSBram Moolenaar        \ . ' ' . get(b:, 'context_extra_options', get(g:, 'context_extra_options', ''))
27*46fceaaaSBram Moolenaar        \ . ' ' . shellescape(expand('%:p:t'))
28*46fceaaaSBram Moolenaarelse
29*46fceaaaSBram Moolenaar  let current_compiler = 'make'
30*46fceaaaSBram Moolenaarendif
31*46fceaaaSBram Moolenaar
32*46fceaaaSBram Moolenaarlet b:context_errorformat = ''
33*46fceaaaSBram Moolenaar      \ . '%-Popen source%.%#> %f,'
34*46fceaaaSBram Moolenaar      \ . '%-Qclose source%.%#> %f,'
35*46fceaaaSBram Moolenaar      \ . "%-Popen source%.%#name '%f',"
36*46fceaaaSBram Moolenaar      \ . "%-Qclose source%.%#name '%f',"
37*46fceaaaSBram Moolenaar      \ . '%Etex %trror%.%#mp error on line %l in file %f:%.%#,'
38*46fceaaaSBram Moolenaar      \ . 'tex %trror%.%#error on line %l in file %f: %m,'
39*46fceaaaSBram Moolenaar      \ . '%Elua %trror%.%#error on line %l in file %f:,'
40*46fceaaaSBram Moolenaar      \ . '%+Emetapost %#> error: %#,'
41*46fceaaaSBram Moolenaar      \ . '! error: %#%m,'
42*46fceaaaSBram Moolenaar      \ . '%-C %#,'
43*46fceaaaSBram Moolenaar      \ . '%C! %m,'
44*46fceaaaSBram Moolenaar      \ . '%Z[ctxlua]%m,'
45*46fceaaaSBram Moolenaar      \ . '%+C<*> %.%#,'
46*46fceaaaSBram Moolenaar      \ . '%-C%.%#,'
47*46fceaaaSBram Moolenaar      \ . '%Z...%m,'
48*46fceaaaSBram Moolenaar      \ . '%-Zno-error,'
49*46fceaaaSBram Moolenaar      \ . '%-G%.%#' " Skip remaining lines
50*46fceaaaSBram Moolenaar
51*46fceaaaSBram Moolenaarexecute 'CompilerSet errorformat=' . escape(b:context_errorformat, ' ')
52*46fceaaaSBram Moolenaar
53*46fceaaaSBram Moolenaarlet &cpo = s:keepcpo
54*46fceaaaSBram Moolenaarunlet s:keepcpo
55