blob: cd83b243525f6e011ea593943e08ca46150b3448 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: configure.in script: M4 with sh
3" Maintainer: Christian Hammesr <ch@lathspell.westend.com>
Bram Moolenaar83caecf2015-01-14 19:42:21 +01004" Last Change: 2015 Jan 14
5" (patch from Yngve Inntjore Levinsen to detect AC_MSG)
6" (patch from Khym Chanur to add @Spell)
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
8" Well, I actually even do not know much about m4. This explains why there
9" is probably very much missing here, yet !
Bram Moolenaar83caecf2015-01-14 19:42:21 +010010" But I missed good highlighting when editing my GNU autoconf/automake
Bram Moolenaar071d4272004-06-13 20:20:40 +000011" script, so I wrote this quick and dirty patch.
12
13
14" For version 5.x: Clear all syntax items
15" For version 6.x: Quit when a syntax file was already loaded
16if version < 600
17 syntax clear
18elseif exists("b:current_syntax")
19 finish
20endif
21
22" define the config syntax
23syn match configdelimiter "[()\[\];,]"
24syn match configoperator "[=|&\*\+\<\>]"
Bram Moolenaar83caecf2015-01-14 19:42:21 +010025syn match configcomment "\(dnl.*\)\|\(#.*\)" contains=configDnl,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000026syn match configfunction "\<[A-Z_][A-Z0-9_]*\>"
27syn match confignumber "[-+]\=\<\d\+\(\.\d*\)\=\>"
Bram Moolenaar83caecf2015-01-14 19:42:21 +010028syn keyword configDnl dnl contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000029syn keyword configkeyword if then else fi test for in do done
30syn keyword configspecial cat rm eval
Bram Moolenaar83caecf2015-01-14 19:42:21 +010031
32" This shortens the script, see syn-ext-match..
33syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell
34
35" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string.
36syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell
37syn region configstring matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
39" Define the default highlighting.
40" For version 5.7 and earlier: only when not done already
41" For version 5.8 and later: only when an item doesn't have highlighting yet
42if version >= 508 || !exists("did_config_syntax_inits")
43 if version < 508
44 let did_config_syntax_inits = 1
45 command -nargs=+ HiLink hi link <args>
46 else
47 command -nargs=+ HiLink hi def link <args>
48 endif
49
50 HiLink configdelimiter Delimiter
51 HiLink configoperator Operator
52 HiLink configcomment Comment
Bram Moolenaar83caecf2015-01-14 19:42:21 +010053 HiLink configDnl Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +000054 HiLink configfunction Function
55 HiLink confignumber Number
56 HiLink configkeyword Keyword
57 HiLink configspecial Special
58 HiLink configstring String
59
60 delcommand HiLink
61endif
62
63let b:current_syntax = "config"
64
65" vim: ts=4