1" Vim syntax file 2" Language: X resources files like ~/.Xdefaults (xrdb) 3" Maintainer: Johannes Zellner <[email protected]> 4" Author and previous maintainer: 5" Gautam H. Mudunuri <[email protected]> 6" Last Change: Di, 09 Mai 2006 23:10:23 CEST 7" $Id: xdefaults.vim,v 1.2 2007/05/05 17:19:40 vimboss Exp $ 8" 9" REFERENCES: 10" xrdb manual page 11" xrdb source: ftp://ftp.x.org/pub/R6.4/xc/programs/xrdb/xrdb.c 12 13" quit when a syntax file was already loaded 14if exists("b:current_syntax") 15 finish 16endif 17 18" turn case on 19syn case match 20 21 22if !exists("xdefaults_no_colon_errors") 23 " mark lines which do not contain a colon as errors. 24 " This does not really catch all errors but only lines 25 " which contain at least two WORDS and no colon. This 26 " was done this way so that a line is not marked as 27 " error while typing (which would be annoying). 28 syntax match xdefaultsErrorLine "^\s*[a-zA-Z.*]\+\s\+[^: ]\+" 29endif 30 31 32" syn region xdefaultsLabel start=+^[^:]\{-}:+he=e-1 skip=+\\+ end="$" 33syn match xdefaultsLabel +^[^:]\{-}:+he=e-1 contains=xdefaultsPunct,xdefaultsSpecial,xdefaultsLineEnd 34syn region xdefaultsValue keepend start=+:+lc=1 skip=+\\+ end=+$+ contains=xdefaultsSpecial,xdefaultsLabel,xdefaultsLineEnd 35 36syn match xdefaultsSpecial contained +#override+ 37syn match xdefaultsSpecial contained +#augment+ 38syn match xdefaultsPunct contained +[.*:]+ 39syn match xdefaultsLineEnd contained +\\$+ 40syn match xdefaultsLineEnd contained +\\n\\$+ 41syn match xdefaultsLineEnd contained +\\n$+ 42 43 44 45" COMMENTS 46 47" note, that the '!' must be at the very first position of the line 48syn match xdefaultsComment "^!.*$" contains=xdefaultsTodo,@Spell 49 50" lines starting with a '#' mark and which are not preprocessor 51" lines are skipped. This is not part of the xrdb documentation. 52" It was reported by Bram Moolenaar and could be confirmed by 53" having a look at xrdb.c:GetEntries() 54syn match xdefaultsCommentH "^#.*$" 55"syn region xdefaultsComment start="^#" end="$" keepend contains=ALL 56syn region xdefaultsComment start="/\*" end="\*/" contains=xdefaultsTodo,@Spell 57 58syntax match xdefaultsCommentError "\*/" 59 60syn keyword xdefaultsTodo contained TODO FIXME XXX display 61 62 63 64" PREPROCESSOR STUFF 65 66syn region xdefaultsPreProc start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>" skip="\\$" end="$" contains=xdefaultsSymbol 67if !exists("xdefaults_no_if0") 68 syn region xdefaultsCppOut start="^\s*#\s*if\s\+0\>" end=".\|$" contains=xdefaultsCppOut2 69 syn region xdefaultsCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=xdefaultsCppSkip 70 syn region xdefaultsCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=xdefaultsCppSkip 71endif 72syn region xdefaultsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 73syn match xdefaultsIncluded contained "<[^>]*>" 74syn match xdefaultsInclude "^\s*#\s*include\>\s*["<]" contains=xdefaultsIncluded 75syn cluster xdefaultsPreProcGroup contains=xdefaultsPreProc,xdefaultsIncluded,xdefaultsInclude,xdefaultsDefine,xdefaultsCppOut,xdefaultsCppOut2,xdefaultsCppSkip 76syn region xdefaultsDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue 77syn region xdefaultsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue 78 79 80 81" symbols as defined by xrdb 82syn keyword xdefaultsSymbol contained SERVERHOST 83syn match xdefaultsSymbol contained "SRVR_[a-zA-Z0-9_]\+" 84syn keyword xdefaultsSymbol contained HOST 85syn keyword xdefaultsSymbol contained DISPLAY_NUM 86syn keyword xdefaultsSymbol contained CLIENTHOST 87syn match xdefaultsSymbol contained "CLNT_[a-zA-Z0-9_]\+" 88syn keyword xdefaultsSymbol contained RELEASE 89syn keyword xdefaultsSymbol contained REVISION 90syn keyword xdefaultsSymbol contained VERSION 91syn keyword xdefaultsSymbol contained VENDOR 92syn match xdefaultsSymbol contained "VNDR_[a-zA-Z0-9_]\+" 93syn match xdefaultsSymbol contained "EXT_[a-zA-Z0-9_]\+" 94syn keyword xdefaultsSymbol contained NUM_SCREENS 95syn keyword xdefaultsSymbol contained SCREEN_NUM 96syn keyword xdefaultsSymbol contained BITS_PER_RGB 97syn keyword xdefaultsSymbol contained CLASS 98syn keyword xdefaultsSymbol contained StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor 99syn match xdefaultsSymbol contained "CLASS_\(StaticGray\|GrayScale\|StaticColor\|PseudoColor\|TrueColor\|DirectColor\)" 100syn keyword xdefaultsSymbol contained COLOR 101syn match xdefaultsSymbol contained "CLASS_\(StaticGray\|GrayScale\|StaticColor\|PseudoColor\|TrueColor\|DirectColor\)_[0-9]\+" 102syn keyword xdefaultsSymbol contained HEIGHT 103syn keyword xdefaultsSymbol contained WIDTH 104syn keyword xdefaultsSymbol contained PLANES 105syn keyword xdefaultsSymbol contained X_RESOLUTION 106syn keyword xdefaultsSymbol contained Y_RESOLUTION 107 108" Define the default highlighting. 109" Only when an item doesn't have highlighting yet 110hi def link xdefaultsLabel Type 111hi def link xdefaultsValue Constant 112hi def link xdefaultsComment Comment 113hi def link xdefaultsCommentH xdefaultsComment 114hi def link xdefaultsPreProc PreProc 115hi def link xdefaultsInclude xdefaultsPreProc 116hi def link xdefaultsCppSkip xdefaultsCppOut 117hi def link xdefaultsCppOut2 xdefaultsCppOut 118hi def link xdefaultsCppOut Comment 119hi def link xdefaultsIncluded String 120hi def link xdefaultsDefine Macro 121hi def link xdefaultsSymbol Statement 122hi def link xdefaultsSpecial Statement 123hi def link xdefaultsErrorLine Error 124hi def link xdefaultsCommentError Error 125hi def link xdefaultsPunct Normal 126hi def link xdefaultsLineEnd Special 127hi def link xdefaultsTodo Todo 128 129 130let b:current_syntax = "xdefaults" 131 132" vim:ts=8 133