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 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 41syn match automakeComment2 "##.*$" 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