summaryrefslogtreecommitdiff
path: root/mnv/runtime/compiler/tex.mnv
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/runtime/compiler/tex.mnv')
-rw-r--r--mnv/runtime/compiler/tex.mnv70
1 files changed, 70 insertions, 0 deletions
diff --git a/mnv/runtime/compiler/tex.mnv b/mnv/runtime/compiler/tex.mnv
new file mode 100644
index 0000000000..f04f2dfd8f
--- /dev/null
+++ b/mnv/runtime/compiler/tex.mnv
@@ -0,0 +1,70 @@
+" MNV compiler file
+" Compiler: TeX
+" Maintainer: Artem Chuprina <ran@ran.pp.ru>
+" Contributors: Enno Nagel
+" Last Change: 2024 Mar 29
+" 2024 Apr 03 by the MNV Project (removed :CompilerSet definition)
+" 2024 Apr 05 by the MNV Project (avoid leaving behind g:makeprg)
+" 2024 Nov 19 by the MNV Project (properly escape makeprg setting)
+" 2025 Mar 11 by the MNV Project (add comment for Dispatch)
+
+if exists("current_compiler")
+ finish
+endif
+let s:keepcpo= &cpo
+set cpo&mnv
+
+" If makefile exists and we are not asked to ignore it, we use standard make
+" (do not redefine makeprg)
+if exists('b:tex_ignore_makefile') || exists('g:tex_ignore_makefile') ||
+ \(!filereadable('Makefile') && !filereadable('makefile'))
+ " If buffer-local variable 'tex_flavor' exists, it defines TeX flavor,
+ " otherwise the same for global variable with same name, else it will be
+ " LaTeX
+ if exists("b:tex_flavor")
+ let current_compiler = b:tex_flavor
+ elseif exists("g:tex_flavor")
+ let current_compiler = g:tex_flavor
+ else
+ let current_compiler = "latex"
+ endif
+ let s:makeprg=current_compiler .. ' -interaction=nonstopmode'
+ " CompilerSet makeprg=latex
+ execute 'CompilerSet makeprg=' .. escape(s:makeprg, ' \|"')
+else
+ let current_compiler = 'make'
+endif
+
+" Value errorformat are taken from mnv help, see :help errorformat-LaTeX, with
+" addition from Srinath Avadhanula <srinath@fastmail.fm>
+CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
+ \%E!\ %m,
+ \%+WLaTeX\ %.%#Warning:\ %.%#line\ %l%.%#,
+ \%+W%.%#\ at\ lines\ %l--%*\\d,
+ \%WLaTeX\ %.%#Warning:\ %m,
+ \%Cl.%l\ %m,
+ \%+C\ \ %m.,
+ \%+C%.%#-%.%#,
+ \%+C%.%#[]%.%#,
+ \%+C[]%.%#,
+ \%+C%.%#%[{}\\]%.%#,
+ \%+C<%.%#>%.%#,
+ \%C\ \ %m,
+ \%-GSee\ the\ LaTeX%m,
+ \%-GType\ \ H\ <return>%m,
+ \%-G\ ...%.%#,
+ \%-G%.%#\ (C)\ %.%#,
+ \%-G(see\ the\ transcript%.%#),
+ \%-G\\s%#,
+ \%+O(%*[^()])%r,
+ \%+O%*[^()](%*[^()])%r,
+ \%+P(%f%r,
+ \%+P\ %\\=(%f%r,
+ \%+P%*[^()](%f%r,
+ \%+P[%\\d%[^()]%#(%f%r,
+ \%+Q)%r,
+ \%+Q%*[^()])%r,
+ \%+Q[%\\d%*[^()])%r
+
+let &cpo = s:keepcpo
+unlet s:keepcpo