1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-16 06:47:52 +01:00
vim/runtime/syntax/m4.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

63 lines
2.7 KiB
VimL
Raw Permalink Normal View History

2004-06-13 20:20:40 +00:00
" Vim syntax file
" Language: M4
2006-01-19 22:16:24 +00:00
" Maintainer: Claudio Fleiner (claudio@fleiner.com)
2004-06-13 20:20:40 +00:00
" URL: http://www.fleiner.com/vim/syntax/m4.vim
2022-06-12 22:15:57 +01:00
" (outdated)
" Last Change: 2022 Jun 12
2004-06-13 20:20:40 +00:00
" This file will highlight user function calls if they use only
" capital letters and have at least one argument (i.e. the '('
" must be there). Let me know if this is a problem.
" quit when a syntax file was already loaded
2004-06-13 20:20:40 +00:00
if !exists("main_syntax")
if exists("b:current_syntax")
finish
endif
" we define it here so that included files can test for it
2004-06-13 20:20:40 +00:00
let main_syntax='m4'
endif
" define the m4 syntax
syn match m4Variable contained "\$\d\+"
syn match m4Special contained "$[@*#]"
2006-01-19 22:16:24 +00:00
syn match m4Comment "\<\(m4_\)\=dnl\>.*" contains=SpellErrors
2022-06-09 20:45:54 +01:00
syn match m4Comment "#.*" contains=SpellErrors
2006-01-19 22:16:24 +00:00
syn match m4Constants "\<\(m4_\)\=__file__"
syn match m4Constants "\<\(m4_\)\=__line__"
2004-06-13 20:20:40 +00:00
syn keyword m4Constants divnum sysval m4_divnum m4_sysval
syn region m4Paren matchgroup=m4Delimiter start="(" end=")" contained contains=@m4Top
syn region m4Command matchgroup=m4Function start="\<\(m4_\)\=\(define\|defn\|pushdef\)(" end=")" contains=@m4Top
syn region m4Command matchgroup=m4Preproc start="\<\(m4_\)\=\(include\|sinclude\)("he=e-1 end=")" contains=@m4Top
syn 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
syn region m4Command matchgroup=m4builtin start="\<\(m4_\)\=\(len\|index\|regexp\|substr\|translit\|patsubst\|format\|incr\|decr\|eval\|maketemp\)("he=e-1 end=")" contains=@m4Top
syn keyword m4Statement divert undivert
syn region m4Command matchgroup=m4Type start="\<\(m4_\)\=\(undefine\|popdef\)("he=e-1 end=")" contains=@m4Top
syn region m4Function matchgroup=m4Type start="\<[_A-Z][_A-Z0-9]*("he=e-1 end=")" contains=@m4Top
2022-06-09 20:45:54 +01:00
syn region m4String start="`" end="'" contains=SpellErrors
2004-06-13 20:20:40 +00:00
syn cluster m4Top contains=m4Comment,m4Constants,m4Special,m4Variable,m4String,m4Paren,m4Command,m4Statement,m4Function
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link m4Delimiter Delimiter
hi def link m4Comment Comment
hi def link m4Function Function
hi def link m4Keyword Keyword
hi def link m4Special Special
hi def link m4String String
hi def link m4Statement Statement
hi def link m4Preproc PreProc
hi def link m4Type Type
hi def link m4Special Special
hi def link m4Variable Special
hi def link m4Constants Constant
hi def link m4Builtin Statement
2004-06-13 20:20:40 +00:00
let b:current_syntax = "m4"
if main_syntax == 'm4'
unlet main_syntax
endif
" vim: ts=4