xref: /vim-8.2.3635/runtime/syntax/config.vim (revision 7254067e)
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