neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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