1" Vim syntax file 2" Language: M4 3" Maintainer: Claudio Fleiner ([email protected]) 4" URL: http://www.fleiner.com/vim/syntax/m4.vim 5" Last Change: 2005 Jan 15 6 7" This file will highlight user function calls if they use only 8" capital letters and have at least one argument (i.e. the '(' 9" must be there). Let me know if this is a problem. 10 11" quit when a syntax file was already loaded 12if !exists("main_syntax") 13 if exists("b:current_syntax") 14 finish 15 endif 16 " we define it here so that included files can test for it 17 let main_syntax='m4' 18endif 19 20" define the m4 syntax 21syn match m4Variable contained "\$\d\+" 22syn match m4Special contained "$[@*#]" 23syn match m4Comment "\<\(m4_\)\=dnl\>.*" contains=SpellErrors 24syn match m4Constants "\<\(m4_\)\=__file__" 25syn match m4Constants "\<\(m4_\)\=__line__" 26syn keyword m4Constants divnum sysval m4_divnum m4_sysval 27syn region m4Paren matchgroup=m4Delimiter start="(" end=")" contained contains=@m4Top 28syn region m4Command matchgroup=m4Function start="\<\(m4_\)\=\(define\|defn\|pushdef\)(" end=")" contains=@m4Top 29syn region m4Command matchgroup=m4Preproc start="\<\(m4_\)\=\(include\|sinclude\)("he=e-1 end=")" contains=@m4Top 30syn region m4Command matchgroup=m4Statement start="\<\(m4_\)\=\(syscmd\|esyscmd\|ifdef\|ifelse\|indir\|builtin\|shift\|errprint\|m4exit\|changecom\|changequote\|changeword\|m4wrap\|debugfile\|divert\|undivert\)("he=e-1 end=")" contains=@m4Top 31syn region m4Command matchgroup=m4builtin start="\<\(m4_\)\=\(len\|index\|regexp\|substr\|translit\|patsubst\|format\|incr\|decr\|eval\|maketemp\)("he=e-1 end=")" contains=@m4Top 32syn keyword m4Statement divert undivert 33syn region m4Command matchgroup=m4Type start="\<\(m4_\)\=\(undefine\|popdef\)("he=e-1 end=")" contains=@m4Top 34syn region m4Function matchgroup=m4Type start="\<[_A-Z][_A-Z0-9]*("he=e-1 end=")" contains=@m4Top 35syn region m4String start="`" end="'" contained contains=@m4Top,@m4StringContents,SpellErrors 36syn cluster m4Top contains=m4Comment,m4Constants,m4Special,m4Variable,m4String,m4Paren,m4Command,m4Statement,m4Function 37 38" Define the default highlighting. 39" Only when an item doesn't have highlighting yet 40hi def link m4Delimiter Delimiter 41hi def link m4Comment Comment 42hi def link m4Function Function 43hi def link m4Keyword Keyword 44hi def link m4Special Special 45hi def link m4String String 46hi def link m4Statement Statement 47hi def link m4Preproc PreProc 48hi def link m4Type Type 49hi def link m4Special Special 50hi def link m4Variable Special 51hi def link m4Constants Constant 52hi def link m4Builtin Statement 53 54let b:current_syntax = "m4" 55 56if main_syntax == 'm4' 57 unlet main_syntax 58endif 59 60" vim: ts=4 61