xref: /vim-8.2.3635/runtime/syntax/automake.vim (revision cf2d8dee)
1" Vim syntax file
2" Language:	automake Makefile.am
3" Maintainer:   Debian VIM Maintainers <[email protected]>
4" Former Maintainer:	John Williams <[email protected]>
5" Last Change:	2011-06-13
6" URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/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 version < 600
22  syntax clear
23elseif exists("b:current_syntax")
24  finish
25endif
26
27" Read the Makefile syntax to start with
28if version < 600
29  source <sfile>:p:h/make.vim
30else
31  runtime! syntax/make.vim
32endif
33
34syn match automakePrimary "^\w\+\(_PROGRAMS\|_LIBRARIES\|_LISP\|_PYTHON\|_JAVA\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_LTLIBRARIES\)\s*\ze+\=="
35syn match automakePrimary "^TESTS\s*\ze+\=="me=e-1
36syn match automakeSecondary "^\w\+\(_SOURCES\|_LIBADD\|_LDADD\|_LDFLAGS\|_DEPENDENCIES\|_AR\|_CCASFLAGS\|_CFLAGS\|_CPPFLAGS\|_CXXFLAGS\|_FCFLAGS\|_FFLAGS\|_GCJFLAGS\|_LFLAGS\|_LIBTOOLFLAGS\|OBJCFLAGS\|RFLAGS\|UPCFLAGS\|YFLAGS\)\s*\ze+\=="
37syn match automakeSecondary "^\(LDADD\|ARFLAGS\|OMIT_DEPENDENCIES\|AM_MAKEFLAGS\|\(AM_\)\=\(MAKEINFOFLAGS\|RUNTESTDEFAULTFLAGS\|ETAGSFLAGS\|CTAGSFLAGS\|JAVACFLAGS\)\)\s*\ze+\=="
38syn match automakeExtra "^EXTRA_\w\+\s*\ze+\=="
39syn match automakeOptions "^\(ACLOCAL_AMFLAGS\|AUTOMAKE_OPTIONS\|DISTCHECK_CONFIGURE_FLAGS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*\ze+\=="
40syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*\ze+\=="
41syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*\ze+\=="
42syn match automakeConditional "^\(if\s*!\=\w\+\|else\|endif\)\s*$"
43
44syn match automakeSubst     "@\w\+@"
45syn match automakeSubst     "^\s*@\w\+@"
46syn match automakeComment1 "#.*$" contains=automakeSubst
47syn match automakeComment2 "##.*$"
48
49syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call
50syn match automakeMakeError "^AM_LDADD\s*\ze+\==" " Common mistake
51
52syn region automakeNoSubst start="^EXTRA_\w*\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
53syn region automakeNoSubst start="^DIST_SUBDIRS\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
54syn region automakeNoSubst start="^\w*_SOURCES\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent
55syn match automakeBadSubst  "@\(\w*@\=\)\=" contained
56
57syn region  automakeMakeDString start=+"+  skip=+\\"+  end=+"+  contains=makeIdent,automakeSubstitution
58syn region  automakeMakeSString start=+'+  skip=+\\'+  end=+'+  contains=makeIdent,automakeSubstitution
59syn region  automakeMakeBString start=+`+  skip=+\\`+  end=+`+  contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution
60
61" Define the default highlighting.
62" For version 5.7 and earlier: only when not done already
63" For version 5.8 and later: only when an item doesn't have highlighting yet
64if version >= 508 || !exists("did_automake_syntax_inits")
65  if version < 508
66    let did_automake_syntax_inits = 1
67    command -nargs=+ HiLink hi link <args>
68  else
69    command -nargs=+ HiLink hi def link <args>
70  endif
71
72  HiLink automakePrimary     Statement
73  HiLink automakeSecondary   Type
74  HiLink automakeExtra       Special
75  HiLink automakeOptions     Special
76  HiLink automakeClean       Special
77  HiLink automakeSubdirs     Statement
78  HiLink automakeConditional PreProc
79  HiLink automakeSubst       PreProc
80  HiLink automakeComment1    makeComment
81  HiLink automakeComment2    makeComment
82  HiLink automakeMakeError   makeError
83  HiLink automakeBadSubst    makeError
84  HiLink automakeMakeDString makeDString
85  HiLink automakeMakeSString makeSString
86  HiLink automakeMakeBString makeBString
87
88  delcommand HiLink
89endif
90
91let b:current_syntax = "automake"
92
93" vi: ts=8 sw=4 sts=4
94