1" Vim syntax file 2" Language: automake Makefile.am 3" Maintainer: Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> 4" Former Maintainer: John Williams <jrw@pobox.com> 5" Last Change: 2007-10-14 6" URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/automake.vim;hb=debian 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 21" Read the Makefile syntax to start with 22if version < 600 23 source <sfile>:p:h/make.vim 24else 25 runtime! syntax/make.vim 26endif 27 28syn match automakePrimary "^[A-Za-z0-9_]\+\(_PROGRAMS\|LIBRARIES\|_LIST\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_JAVA\|_LTLIBRARIES\)\s*="me=e-1 29syn match automakePrimary "^TESTS\s*="me=e-1 30syn match automakeSecondary "^[A-Za-z0-9_]\+\(_SOURCES\|_LDADD\|_LIBADD\|_LDFLAGS\|_DEPENDENCIES\|_CPPFLAGS\)\s*="me=e-1 31syn match automakeSecondary "^OMIT_DEPENDENCIES\s*="me=e-1 32syn match automakeExtra "^EXTRA_[A-Za-z0-9_]\+\s*="me=e-1 33syn match automakeOptions "^\(AUTOMAKE_OPTIONS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*="me=e-1 34syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*="me=e-1 35syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*="me=e-1 36syn match automakeConditional "^\(if\s*[a-zA-Z0-9_]\+\|else\|endif\)\s*$" 37 38syn match automakeSubst "@[a-zA-Z0-9_]\+@" 39syn match automakeSubst "^\s*@[a-zA-Z0-9_]\+@" 40syn match automakeComment1 "#.*$" contains=automakeSubst 41syn match automakeComment2 "##.*$" 42 43syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call 44 45syn region automakeNoSubst start="^EXTRA_[a-zA-Z0-9_]*\s*=" end="$" contains=ALLBUT,automakeNoSubst transparent 46syn region automakeNoSubst start="^DIST_SUBDIRS\s*=" end="$" contains=ALLBUT,automakeNoSubst transparent 47syn region automakeNoSubst start="^[a-zA-Z0-9_]*_SOURCES\s*=" end="$" contains=ALLBUT,automakeNoSubst transparent 48syn match automakeBadSubst "@\([a-zA-Z0-9_]*@\=\)\=" contained 49 50syn region automakeMakeDString start=+"+ skip=+\\"+ end=+"+ contains=makeIdent,automakeSubstitution 51syn region automakeMakeSString start=+'+ skip=+\\'+ end=+'+ contains=makeIdent,automakeSubstitution 52syn region automakeMakeBString start=+`+ skip=+\\`+ end=+`+ contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution 53 54" Define the default highlighting. 55" For version 5.7 and earlier: only when not done already 56" For version 5.8 and later: only when an item doesn't have highlighting yet 57if version >= 508 || !exists("did_automake_syntax_inits") 58 if version < 508 59 let did_automake_syntax_inits = 1 60 command -nargs=+ HiLink hi link <args> 61 else 62 command -nargs=+ HiLink hi def link <args> 63 endif 64 65 HiLink automakePrimary Statement 66 HiLink automakeSecondary Type 67 HiLink automakeExtra Special 68 HiLink automakeOptions Special 69 HiLink automakeClean Special 70 HiLink automakeSubdirs Statement 71 HiLink automakeConditional PreProc 72 HiLink automakeSubst PreProc 73 HiLink automakeComment1 makeComment 74 HiLink automakeComment2 makeComment 75 HiLink automakeMakeError makeError 76 HiLink automakeBadSubst makeError 77 HiLink automakeMakeDString makeDString 78 HiLink automakeMakeSString makeSString 79 HiLink automakeMakeBString makeBString 80 81 delcommand HiLink 82endif 83 84let b:current_syntax = "automake" 85 86" vi: ts=8 sw=4 sts=4 87