automake.vim (3936B)
1 " Vim syntax file 2 " Language: automake Makefile.am 3 " Maintainer: Debian Vim Maintainers 4 " Former Maintainer: John Williams <jrw@pobox.com> 5 " Last Change: 2023 Jan 16 6 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/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 21 if exists('b:current_syntax') 22 finish 23 endif 24 25 " Read the Makefile syntax to start with 26 runtime! syntax/make.vim 27 28 syn match automakePrimary "^\w\+\(_PROGRAMS\|_LIBRARIES\|_LISP\|_PYTHON\|_JAVA\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_LTLIBRARIES\)\s*\ze+\==" 29 syn match automakePrimary "^TESTS\s*\ze+\=="me=e-1 30 syn match automakeSecondary "^\w\+\(_SOURCES\|_LIBADD\|_LDADD\|_LDFLAGS\|_DEPENDENCIES\|_AR\|_CCASFLAGS\|_CFLAGS\|_CPPFLAGS\|_CXXFLAGS\|_FCFLAGS\|_FFLAGS\|_GCJFLAGS\|_LFLAGS\|_LIBTOOLFLAGS\|OBJCFLAGS\|RFLAGS\|UPCFLAGS\|YFLAGS\)\s*\ze+\==" 31 syn match automakeSecondary "^\(LDADD\|ARFLAGS\|OMIT_DEPENDENCIES\|AM_MAKEFLAGS\|\(AM_\)\=\(MAKEINFOFLAGS\|RUNTESTDEFAULTFLAGS\|ETAGSFLAGS\|CTAGSFLAGS\|JAVACFLAGS\)\)\s*\ze+\==" 32 syn match automakeExtra "^EXTRA_\w\+\s*\ze+\==" 33 syn match automakeOptions "^\(ACLOCAL_AMFLAGS\|AUTOMAKE_OPTIONS\|DISTCHECK_CONFIGURE_FLAGS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*\ze+\==" 34 syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*\ze+\==" 35 syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*\ze+\==" 36 syn match automakeConditional "^\(if\s*!\=\w\+\|else\|endif\)\s*$" 37 38 syn match automakeSubst "@\w\+@" 39 syn match automakeSubst "^\s*@\w\+@" 40 syn match automakeComment1 "#.*$" contains=automakeSubst,@Spell 41 syn match automakeComment2 "##.*$" contains=@Spell 42 43 syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call 44 syn match automakeMakeError "^AM_LDADD\s*\ze+\==" " Common mistake 45 46 syn region automakeNoSubst start="^EXTRA_\w*\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent 47 syn region automakeNoSubst start="^DIST_SUBDIRS\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent 48 syn region automakeNoSubst start="^\w*_SOURCES\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent 49 syn match automakeBadSubst "@\(\w*@\=\)\=" contained 50 51 syn region automakeMakeDString start=+"+ skip=+\\"+ end=+"+ contains=makeIdent,automakeSubstitution 52 syn region automakeMakeSString start=+'+ skip=+\\'+ end=+'+ contains=makeIdent,automakeSubstitution 53 syn 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 58 hi def link automakePrimary Statement 59 hi def link automakeSecondary Type 60 hi def link automakeExtra Special 61 hi def link automakeOptions Special 62 hi def link automakeClean Special 63 hi def link automakeSubdirs Statement 64 hi def link automakeConditional PreProc 65 hi def link automakeSubst PreProc 66 hi def link automakeComment1 makeComment 67 hi def link automakeComment2 makeComment 68 hi def link automakeMakeError makeError 69 hi def link automakeBadSubst makeError 70 hi def link automakeMakeDString makeDString 71 hi def link automakeMakeSString makeSString 72 hi def link automakeMakeBString makeBString 73 74 75 let b:current_syntax = 'automake' 76 77 " vi: ts=8 sw=4 sts=4