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