1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: configure.in script: M4 with sh 3*7254067eSBram Moolenaar" Former Maintainer: Christian Hammesr <[email protected]> 4*7254067eSBram Moolenaar" Last Change: 2018 Feb 03 583caecf3SBram Moolenaar" (patch from Yngve Inntjore Levinsen to detect AC_MSG) 683caecf3SBram Moolenaar" (patch from Khym Chanur to add @Spell) 7*7254067eSBram Moolenaar" (patch from James McCoy to fix paren matching) 8071d4279SBram Moolenaar 9071d4279SBram Moolenaar" Well, I actually even do not know much about m4. This explains why there 10071d4279SBram Moolenaar" is probably very much missing here, yet ! 1183caecf3SBram Moolenaar" But I missed good highlighting when editing my GNU autoconf/automake 12071d4279SBram Moolenaar" script, so I wrote this quick and dirty patch. 13071d4279SBram Moolenaar 14071d4279SBram Moolenaar 1589bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1689bcfda6SBram Moolenaarif exists("b:current_syntax") 17071d4279SBram Moolenaar finish 18071d4279SBram Moolenaarendif 19071d4279SBram Moolenaar 20071d4279SBram Moolenaar" define the config syntax 21071d4279SBram Moolenaarsyn match configdelimiter "[()\[\];,]" 22071d4279SBram Moolenaarsyn match configoperator "[=|&\*\+\<\>]" 2383caecf3SBram Moolenaarsyn match configcomment "\(dnl.*\)\|\(#.*\)" contains=configDnl,@Spell 24071d4279SBram Moolenaarsyn match configfunction "\<[A-Z_][A-Z0-9_]*\>" 25071d4279SBram Moolenaarsyn match confignumber "[-+]\=\<\d\+\(\.\d*\)\=\>" 2683caecf3SBram Moolenaarsyn keyword configDnl dnl contained 27071d4279SBram Moolenaarsyn keyword configkeyword if then else fi test for in do done 28071d4279SBram Moolenaarsyn keyword configspecial cat rm eval 2983caecf3SBram Moolenaar 3083caecf3SBram Moolenaar" This shortens the script, see syn-ext-match.. 3183caecf3SBram Moolenaarsyn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell 3283caecf3SBram Moolenaar 3383caecf3SBram Moolenaar" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string. 34*7254067eSBram Moolenaarsyn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell 35*7254067eSBram Moolenaarsyn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell 36071d4279SBram Moolenaar 37071d4279SBram Moolenaar" Define the default highlighting. 3889bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 39071d4279SBram Moolenaar 40f37506f6SBram Moolenaarhi def link configdelimiter Delimiter 41f37506f6SBram Moolenaarhi def link configoperator Operator 42f37506f6SBram Moolenaarhi def link configcomment Comment 43f37506f6SBram Moolenaarhi def link configDnl Comment 44f37506f6SBram Moolenaarhi def link configfunction Function 45f37506f6SBram Moolenaarhi def link confignumber Number 46f37506f6SBram Moolenaarhi def link configkeyword Keyword 47f37506f6SBram Moolenaarhi def link configspecial Special 48f37506f6SBram Moolenaarhi def link configstring String 49*7254067eSBram Moolenaarhi def link configmsg String 50071d4279SBram Moolenaar 51071d4279SBram Moolenaar 52071d4279SBram Moolenaarlet b:current_syntax = "config" 53071d4279SBram Moolenaar 54071d4279SBram Moolenaar" vim: ts=4 55