1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
" Vim syntax file
" Language: Makefile
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/make.vim
" Last Change: 2001 Sept 11
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" some special characters
syn match makeSpecial "^\s*[@-]\+"
syn match makeNextLine "\\$"
" some directives
syn match makePreCondit "^\s*\(ifeq\>\|else\>\|endif\>\|define\>\|endef\>\|ifneq\>\|ifdef\>\|ifndef\>\)"
syn match makeInclude "^\s*-\=s\=include"
syn match makeStatement "^\s*vpath"
syn match makeExport "^\s*\(export\|unexport\)\>"
syn match makeOverride "^\s*override"
hi link makeOverride makeStatement
hi link makeExport makeStatement
" Microsoft Makefile specials
syn case ignore
syn match makeInclude "^!\s*include"
syn match makePreCondit "!\s*\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|elseif\|else if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>"
syn case match
" identifiers
syn region makeIdent start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement,makeIdent
syn region makeIdent start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent
syn match makeIdent "\$\$\w*"
syn match makeIdent "\$[^({]"
syn match makeIdent "^\s*\a\w*\s*[:+?!*]="me=e-2
syn match makeIdent "^\s*\a\w*\s*="me=e-1
syn match makeIdent "%"
" make targets
syn match makeSpecTarget "^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\)\>"
syn match makeImplicit "^\.[A-Za-z0-9_./\t -]\+\s*:[^=]"me=e-2
syn match makeImplicit "^\.[A-Za-z0-9_./\t -]\+\s*:$"me=e-1
syn match makeTarget "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:[^=]"me=e-2 contains=makeIdent,makeSpecTarget
syn match makeTarget "^[A-Za-z0-9_./$()%-][A-Za-z0-9_./\t $()%-]*:$"me=e-1 contains=makeIdent,makeSpecTarget
" Statements / Functions (GNU make)
syn match makeStatement contained "(\(subst\|addprefix\|addsuffix\|basename\|call\|dir\|error\|filter-out\|filter\|findstring\|firstword\|foreach\|if\|join\|notdir\|origin\|patsubst\|shell\|sort\|strip\|suffix\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1
" Errors
syn match makeError "^ \+\t"
syn match makeError "^ \{8\}[^ ]"me=e-1
syn region makeIgnore start="\\$" end="^." end="^$" contains=ALLBUT,makeError
" Comment
syn region makeComment start="#" end="[^\\]$" contains=makeTodo
syn match makeComment "#$" contains=makeTodo
syn keyword makeTodo TODO FIXME XXX contained
" match escaped quotes and any other escaped character
" except for $, as a backslash in front of a $ does
" not make it a standard character, but instead it will
" still act as the beginning of a variable
" The escaped char is not highlightet currently
syn match makeEscapedChar "\\[^$]"
syn region makeDString start=+"+ skip=+\\.+ end=+"+ contains=makeIdent
syn region makeSString start=+'+ skip=+\\.+ end=+'+ contains=makeIdent
syn region makeBString start=+`+ skip=+\\.+ end=+`+ contains=makeIdent,makeSString,makeDString,makeNextLine
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_make_syn_inits")
if version < 508
let did_make_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink makeNextLine makeSpecial
HiLink makeSpecTarget Statement
HiLink makeImplicit Function
HiLink makeTarget Function
HiLink makeInclude Include
HiLink makePreCondit PreCondit
HiLink makeStatement Statement
HiLink makeIdent Identifier
HiLink makeSpecial Special
HiLink makeComment Comment
HiLink makeDString String
HiLink makeSString String
HiLink makeBString Function
HiLink makeError Error
HiLink makeTodo Todo
delcommand HiLink
endif
let b:current_syntax = "make"
" vim: ts=8
|