view runtime/compiler/context.vim @ 34702:2c3f939d46bf

runtime(compilers): ensure compiler! sets global options (#14336) Commit: https://github.com/vim/vim/commit/18d730d7b5728c8f87272ac7047d86354013eeb9 Author: Enno <Konfekt@users.noreply.github.com> Date: Sun Mar 31 18:37:05 2024 +0200 runtime(compilers): ensure compiler! sets global options (https://github.com/vim/vim/issues/14336) Previously some options were only set locally by &l:makeprg/errorformat This suffices for :compiler (without a trailing bang) but falls short for :compiler! that sets &g:makeprg/errorformat as well Also apply kind suggestions by @dkearns and @lifepillar Signed-off-by: Konfekt <Konfekt@users.noreply.github.com> Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 31 Mar 2024 18:45:03 +0200
parents d81556766132
children e1df51f68736
line wrap: on
line source

vim9script

# Language:           ConTeXt typesetting engine
# Maintainer:         Nicola Vitacolonna <nvitacolonna@gmail.com>
# Former Maintainers: Nikolai Weibull <now@bitwi.se>
# Contributors:       Enno Nagel
# Last Change:        2024 Mar 29

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'))
  var makeprg =  join(context.ConTeXtCmd(shellescape(expand('%:p:t'))), ' ')
  execute 'CompilerSet makeprg=' .. escape(makeprg, ' ')
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