xref: /vim-8.2.3635/runtime/syntax/automake.vim (revision 4c05fa08)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language: automake Makefile.am
3*4c05fa08SBram Moolenaar" Maintainer: Debian Vim Maintainers
4a93fa7eeSBram Moolenaar" Former Maintainer: John Williams <[email protected]>
5*4c05fa08SBram Moolenaar" Last Change: 2018 Dec 27
6*4c05fa08SBram Moolenaar" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/automake.vim
73577c6faSBram Moolenaar"
83577c6faSBram Moolenaar" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
93577c6faSBram Moolenaar"     it only because patches have been submitted for it by Debian users and the
103577c6faSBram Moolenaar"     former maintainer was MIA (Missing In Action), taking over its
113577c6faSBram Moolenaar"     maintenance was thus the only way to include those patches.
123577c6faSBram Moolenaar"     If you care about this file, and have time to maintain it please do so!
13a93fa7eeSBram Moolenaar"
14071d4279SBram Moolenaar" This script adds support for automake's Makefile.am format. It highlights
15071d4279SBram Moolenaar" Makefile variables significant to automake as well as highlighting
16071d4279SBram Moolenaar" autoconf-style @variable@ substitutions . Subsitutions are marked as errors
17071d4279SBram Moolenaar" when they are used in an inappropriate place, such as in defining
18071d4279SBram Moolenaar" EXTRA_SOURCES.
19071d4279SBram Moolenaar
20251e1912SBram Moolenaar" Standard syntax initialization
21*4c05fa08SBram Moolenaarif exists('b:current_syntax')
22251e1912SBram Moolenaar  finish
23251e1912SBram Moolenaarendif
24071d4279SBram Moolenaar
25071d4279SBram Moolenaar" Read the Makefile syntax to start with
26071d4279SBram Moolenaarruntime! syntax/make.vim
27071d4279SBram Moolenaar
28251e1912SBram Moolenaarsyn match automakePrimary "^\w\+\(_PROGRAMS\|_LIBRARIES\|_LISP\|_PYTHON\|_JAVA\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_LTLIBRARIES\)\s*\ze+\=="
29251e1912SBram Moolenaarsyn match automakePrimary "^TESTS\s*\ze+\=="me=e-1
30251e1912SBram Moolenaarsyn match automakeSecondary "^\w\+\(_SOURCES\|_LIBADD\|_LDADD\|_LDFLAGS\|_DEPENDENCIES\|_AR\|_CCASFLAGS\|_CFLAGS\|_CPPFLAGS\|_CXXFLAGS\|_FCFLAGS\|_FFLAGS\|_GCJFLAGS\|_LFLAGS\|_LIBTOOLFLAGS\|OBJCFLAGS\|RFLAGS\|UPCFLAGS\|YFLAGS\)\s*\ze+\=="
31251e1912SBram Moolenaarsyn match automakeSecondary "^\(LDADD\|ARFLAGS\|OMIT_DEPENDENCIES\|AM_MAKEFLAGS\|\(AM_\)\=\(MAKEINFOFLAGS\|RUNTESTDEFAULTFLAGS\|ETAGSFLAGS\|CTAGSFLAGS\|JAVACFLAGS\)\)\s*\ze+\=="
32251e1912SBram Moolenaarsyn match automakeExtra "^EXTRA_\w\+\s*\ze+\=="
33251e1912SBram Moolenaarsyn match automakeOptions "^\(ACLOCAL_AMFLAGS\|AUTOMAKE_OPTIONS\|DISTCHECK_CONFIGURE_FLAGS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*\ze+\=="
34251e1912SBram Moolenaarsyn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*\ze+\=="
35251e1912SBram Moolenaarsyn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*\ze+\=="
36251e1912SBram Moolenaarsyn match automakeConditional "^\(if\s*!\=\w\+\|else\|endif\)\s*$"
37071d4279SBram Moolenaar
38251e1912SBram Moolenaarsyn match automakeSubst     "@\w\+@"
39251e1912SBram Moolenaarsyn match automakeSubst     "^\s*@\w\+@"
40*4c05fa08SBram Moolenaarsyn match automakeComment1 "#.*$" contains=automakeSubst,@Spell
41*4c05fa08SBram Moolenaarsyn match automakeComment2 "##.*$" contains=@Spell
42071d4279SBram Moolenaar
43071d4279SBram Moolenaarsyn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call
44251e1912SBram Moolenaarsyn match automakeMakeError "^AM_LDADD\s*\ze+\==" " Common mistake
45071d4279SBram Moolenaar
46251e1912SBram Moolenaarsyn region automakeNoSubst start="^EXTRA_\w*\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
47251e1912SBram Moolenaarsyn region automakeNoSubst start="^DIST_SUBDIRS\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
48251e1912SBram Moolenaarsyn region automakeNoSubst start="^\w*_SOURCES\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
49251e1912SBram Moolenaarsyn match automakeBadSubst  "@\(\w*@\=\)\=" contained
50071d4279SBram Moolenaar
51071d4279SBram Moolenaarsyn region  automakeMakeDString start=+"+  skip=+\\"+  end=+"+  contains=makeIdent,automakeSubstitution
52071d4279SBram Moolenaarsyn region  automakeMakeSString start=+'+  skip=+\\'+  end=+'+  contains=makeIdent,automakeSubstitution
53071d4279SBram Moolenaarsyn region  automakeMakeBString start=+`+  skip=+\\`+  end=+`+  contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution
54071d4279SBram Moolenaar
55071d4279SBram Moolenaar" Define the default highlighting.
5689bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
57071d4279SBram Moolenaar
58f37506f6SBram Moolenaarhi def link automakePrimary     Statement
59f37506f6SBram Moolenaarhi def link automakeSecondary   Type
60f37506f6SBram Moolenaarhi def link automakeExtra       Special
61f37506f6SBram Moolenaarhi def link automakeOptions     Special
62f37506f6SBram Moolenaarhi def link automakeClean       Special
63f37506f6SBram Moolenaarhi def link automakeSubdirs     Statement
64f37506f6SBram Moolenaarhi def link automakeConditional PreProc
65f37506f6SBram Moolenaarhi def link automakeSubst       PreProc
66f37506f6SBram Moolenaarhi def link automakeComment1    makeComment
67f37506f6SBram Moolenaarhi def link automakeComment2    makeComment
68f37506f6SBram Moolenaarhi def link automakeMakeError   makeError
69f37506f6SBram Moolenaarhi def link automakeBadSubst    makeError
70f37506f6SBram Moolenaarhi def link automakeMakeDString makeDString
71f37506f6SBram Moolenaarhi def link automakeMakeSString makeSString
72f37506f6SBram Moolenaarhi def link automakeMakeBString makeBString
73071d4279SBram Moolenaar
74071d4279SBram Moolenaar
75*4c05fa08SBram Moolenaarlet b:current_syntax = 'automake'
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar" vi: ts=8 sw=4 sts=4
78