xref: /vim-8.2.3635/runtime/syntax/config.vim (revision 36e294c0)
1" Vim syntax file
2" Language:		configure.in script: M4 with sh
3" Maintainer:	Christian Hammesr <[email protected]>
4" Last Change:	2015 Jan 14
5" 				(patch from Yngve Inntjore Levinsen to detect AC_MSG)
6" 				(patch from Khym Chanur to add @Spell)
7
8" Well, I actually even do not know much about m4. This explains why there
9" is probably very much missing here, yet !
10" But I missed good highlighting when editing my GNU autoconf/automake
11" 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  "[=|&\*\+\<\>]"
25syn match   configcomment   "\(dnl.*\)\|\(#.*\)" contains=configDnl,@Spell
26syn match   configfunction  "\<[A-Z_][A-Z0-9_]*\>"
27syn match   confignumber    "[-+]\=\<\d\+\(\.\d*\)\=\>"
28syn keyword configDnl   	dnl contained
29syn keyword configkeyword   if then else fi test for in do done
30syn keyword configspecial   cat rm eval
31
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
38
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
53  HiLink configDnl  	 Comment
54  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
66