summaryrefslogtreecommitdiffstats
path: root/runtime/compiler/context.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/compiler/context.vim')
-rw-r--r--runtime/compiler/context.vim48
1 files changed, 48 insertions, 0 deletions
diff --git a/runtime/compiler/context.vim b/runtime/compiler/context.vim
new file mode 100644
index 0000000..f600936
--- /dev/null
+++ b/runtime/compiler/context.vim
@@ -0,0 +1,48 @@
+vim9script
+
+# Language: ConTeXt typesetting engine
+# Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com>
+# Former Maintainers: Nikolai Weibull <now@bitwi.se>
+# Latest Revision: 2023 Dec 26
+
+if exists("g:current_compiler")
+ finish
+endif
+
+import autoload '../autoload/context.vim'
+
+if exists(":CompilerSet") != 2 # Older Vim always used :setlocal
+ command -nargs=* CompilerSet setlocal <args>
+endif
+
+g:current_compiler = 'context'
+
+if get(b:, 'context_ignore_makefile', get(g:, 'context_ignore_makefile', 0)) ||
+ (!filereadable('Makefile') && !filereadable('makefile'))
+ &l:makeprg = join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ')
+else
+ g:current_compiler = 'make'
+endif
+
+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