xref: /vim-8.2.3635/runtime/syntax/automake.vim (revision 4c05fa08)
1" Vim syntax file
2" Language: automake Makefile.am
3" Maintainer: Debian Vim Maintainers
4" Former Maintainer: John Williams <[email protected]>
5" Last Change: 2018 Dec 27
6" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/automake.vim
7"
8" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain
9"     it only because patches have been submitted for it by Debian users and the
10"     former maintainer was MIA (Missing In Action), taking over its
11"     maintenance was thus the only way to include those patches.
12"     If you care about this file, and have time to maintain it please do so!
13"
14" This script adds support for automake's Makefile.am format. It highlights
15" Makefile variables significant to automake as well as highlighting
16" autoconf-style @variable@ substitutions . Subsitutions are marked as errors
17" when they are used in an inappropriate place, such as in defining
18" EXTRA_SOURCES.
19
20" Standard syntax initialization
21if exists('b:current_syntax')
22  finish
23endif
24
25" Read the Makefile syntax to start with
26runtime! syntax/make.vim
27
28syn match automakePrimary "^\w\+\(_PROGRAMS\|_LIBRARIES\|_LISP\|_PYTHON\|_JAVA\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_LTLIBRARIES\)\s*\ze+\=="
29syn match automakePrimary "^TESTS\s*\ze+\=="me=e-1
30syn match automakeSecondary "^\w\+\(_SOURCES\|_LIBADD\|_LDADD\|_LDFLAGS\|_DEPENDENCIES\|_AR\|_CCASFLAGS\|_CFLAGS\|_CPPFLAGS\|_CXXFLAGS\|_FCFLAGS\|_FFLAGS\|_GCJFLAGS\|_LFLAGS\|_LIBTOOLFLAGS\|OBJCFLAGS\|RFLAGS\|UPCFLAGS\|YFLAGS\)\s*\ze+\=="
31syn match automakeSecondary "^\(LDADD\|ARFLAGS\|OMIT_DEPENDENCIES\|AM_MAKEFLAGS\|\(AM_\)\=\(MAKEINFOFLAGS\|RUNTESTDEFAULTFLAGS\|ETAGSFLAGS\|CTAGSFLAGS\|JAVACFLAGS\)\)\s*\ze+\=="
32syn match automakeExtra "^EXTRA_\w\+\s*\ze+\=="
33syn match automakeOptions "^\(ACLOCAL_AMFLAGS\|AUTOMAKE_OPTIONS\|DISTCHECK_CONFIGURE_FLAGS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*\ze+\=="
34syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*\ze+\=="
35syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*\ze+\=="
36syn match automakeConditional "^\(if\s*!\=\w\+\|else\|endif\)\s*$"
37
38syn match automakeSubst     "@\w\+@"
39syn match automakeSubst     "^\s*@\w\+@"
40syn match automakeComment1 "#.*$" contains=automakeSubst,@Spell
41syn match automakeComment2 "##.*$" contains=@Spell
42
43syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call
44syn match automakeMakeError "^AM_LDADD\s*\ze+\==" " Common mistake
45
46syn region automakeNoSubst start="^EXTRA_\w*\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
47syn region automakeNoSubst start="^DIST_SUBDIRS\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
48syn region automakeNoSubst start="^\w*_SOURCES\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
49syn match automakeBadSubst  "@\(\w*@\=\)\=" contained
50
51syn region  automakeMakeDString start=+"+  skip=+\\"+  end=+"+  contains=makeIdent,automakeSubstitution
52syn region  automakeMakeSString start=+'+  skip=+\\'+  end=+'+  contains=makeIdent,automakeSubstitution
53syn region  automakeMakeBString start=+`+  skip=+\\`+  end=+`+  contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution
54
55" Define the default highlighting.
56" Only when an item doesn't have highlighting yet
57
58hi def link automakePrimary     Statement
59hi def link automakeSecondary   Type
60hi def link automakeExtra       Special
61hi def link automakeOptions     Special
62hi def link automakeClean       Special
63hi def link automakeSubdirs     Statement
64hi def link automakeConditional PreProc
65hi def link automakeSubst       PreProc
66hi def link automakeComment1    makeComment
67hi def link automakeComment2    makeComment
68hi def link automakeMakeError   makeError
69hi def link automakeBadSubst    makeError
70hi def link automakeMakeDString makeDString
71hi def link automakeMakeSString makeSString
72hi def link automakeMakeBString makeBString
73
74
75let b:current_syntax = 'automake'
76
77" vi: ts=8 sw=4 sts=4
78