1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: X resources files like ~/.Xdefaults (xrdb) 3071d4279SBram Moolenaar" Maintainer: Johannes Zellner <[email protected]> 4071d4279SBram Moolenaar" Author and previous maintainer: 5071d4279SBram Moolenaar" Gautam H. Mudunuri <[email protected]> 69964e468SBram Moolenaar" Last Change: Di, 09 Mai 2006 23:10:23 CEST 75c73622aSBram Moolenaar" $Id: xdefaults.vim,v 1.2 2007/05/05 17:19:40 vimboss Exp $ 8071d4279SBram Moolenaar" 9071d4279SBram Moolenaar" REFERENCES: 10071d4279SBram Moolenaar" xrdb manual page 11071d4279SBram Moolenaar" xrdb source: ftp://ftp.x.org/pub/R6.4/xc/programs/xrdb/xrdb.c 12071d4279SBram Moolenaar 1389bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1489bcfda6SBram Moolenaarif exists("b:current_syntax") 15071d4279SBram Moolenaar finish 16071d4279SBram Moolenaarendif 17071d4279SBram Moolenaar 18071d4279SBram Moolenaar" turn case on 19071d4279SBram Moolenaarsyn case match 20071d4279SBram Moolenaar 21071d4279SBram Moolenaar 22071d4279SBram Moolenaarif !exists("xdefaults_no_colon_errors") 23071d4279SBram Moolenaar " mark lines which do not contain a colon as errors. 24071d4279SBram Moolenaar " This does not really catch all errors but only lines 25071d4279SBram Moolenaar " which contain at least two WORDS and no colon. This 26071d4279SBram Moolenaar " was done this way so that a line is not marked as 27071d4279SBram Moolenaar " error while typing (which would be annoying). 28071d4279SBram Moolenaar syntax match xdefaultsErrorLine "^\s*[a-zA-Z.*]\+\s\+[^: ]\+" 29071d4279SBram Moolenaarendif 30071d4279SBram Moolenaar 31071d4279SBram Moolenaar 32071d4279SBram Moolenaar" syn region xdefaultsLabel start=+^[^:]\{-}:+he=e-1 skip=+\\+ end="$" 331aeaf8c0SBram Moolenaarsyn match xdefaultsLabel +^[^:]\{-}:+he=e-1 contains=xdefaultsPunct,xdefaultsSpecial,xdefaultsLineEnd 34071d4279SBram Moolenaarsyn region xdefaultsValue keepend start=+:+lc=1 skip=+\\+ end=+$+ contains=xdefaultsSpecial,xdefaultsLabel,xdefaultsLineEnd 35071d4279SBram Moolenaar 36071d4279SBram Moolenaarsyn match xdefaultsSpecial contained +#override+ 37071d4279SBram Moolenaarsyn match xdefaultsSpecial contained +#augment+ 38071d4279SBram Moolenaarsyn match xdefaultsPunct contained +[.*:]+ 39071d4279SBram Moolenaarsyn match xdefaultsLineEnd contained +\\$+ 40071d4279SBram Moolenaarsyn match xdefaultsLineEnd contained +\\n\\$+ 41071d4279SBram Moolenaarsyn match xdefaultsLineEnd contained +\\n$+ 42071d4279SBram Moolenaar 43071d4279SBram Moolenaar 44071d4279SBram Moolenaar 45071d4279SBram Moolenaar" COMMENTS 46071d4279SBram Moolenaar 47071d4279SBram Moolenaar" note, that the '!' must be at the very first position of the line 489964e468SBram Moolenaarsyn match xdefaultsComment "^!.*$" contains=xdefaultsTodo,@Spell 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar" lines starting with a '#' mark and which are not preprocessor 51071d4279SBram Moolenaar" lines are skipped. This is not part of the xrdb documentation. 52071d4279SBram Moolenaar" It was reported by Bram Moolenaar and could be confirmed by 53071d4279SBram Moolenaar" having a look at xrdb.c:GetEntries() 54071d4279SBram Moolenaarsyn match xdefaultsCommentH "^#.*$" 55071d4279SBram Moolenaar"syn region xdefaultsComment start="^#" end="$" keepend contains=ALL 569964e468SBram Moolenaarsyn region xdefaultsComment start="/\*" end="\*/" contains=xdefaultsTodo,@Spell 57071d4279SBram Moolenaar 58071d4279SBram Moolenaarsyntax match xdefaultsCommentError "\*/" 59071d4279SBram Moolenaar 60071d4279SBram Moolenaarsyn keyword xdefaultsTodo contained TODO FIXME XXX display 61071d4279SBram Moolenaar 62071d4279SBram Moolenaar 63071d4279SBram Moolenaar 64071d4279SBram Moolenaar" PREPROCESSOR STUFF 65071d4279SBram Moolenaar 66071d4279SBram Moolenaarsyn region xdefaultsPreProc start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>" skip="\\$" end="$" contains=xdefaultsSymbol 67071d4279SBram Moolenaarif !exists("xdefaults_no_if0") 68071d4279SBram Moolenaar syn region xdefaultsCppOut start="^\s*#\s*if\s\+0\>" end=".\|$" contains=xdefaultsCppOut2 69071d4279SBram Moolenaar syn region xdefaultsCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=xdefaultsCppSkip 70071d4279SBram Moolenaar syn region xdefaultsCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=xdefaultsCppSkip 71071d4279SBram Moolenaarendif 72071d4279SBram Moolenaarsyn region xdefaultsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ 73071d4279SBram Moolenaarsyn match xdefaultsIncluded contained "<[^>]*>" 74071d4279SBram Moolenaarsyn match xdefaultsInclude "^\s*#\s*include\>\s*["<]" contains=xdefaultsIncluded 751aeaf8c0SBram Moolenaarsyn cluster xdefaultsPreProcGroup contains=xdefaultsPreProc,xdefaultsIncluded,xdefaultsInclude,xdefaultsDefine,xdefaultsCppOut,xdefaultsCppOut2,xdefaultsCppSkip 761aeaf8c0SBram Moolenaarsyn region xdefaultsDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue 771aeaf8c0SBram Moolenaarsyn region xdefaultsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar 80071d4279SBram Moolenaar 81071d4279SBram Moolenaar" symbols as defined by xrdb 82071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained SERVERHOST 83071d4279SBram Moolenaarsyn match xdefaultsSymbol contained "SRVR_[a-zA-Z0-9_]\+" 84071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained HOST 85071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained DISPLAY_NUM 86071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained CLIENTHOST 87071d4279SBram Moolenaarsyn match xdefaultsSymbol contained "CLNT_[a-zA-Z0-9_]\+" 88071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained RELEASE 89071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained REVISION 90071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained VERSION 91071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained VENDOR 92071d4279SBram Moolenaarsyn match xdefaultsSymbol contained "VNDR_[a-zA-Z0-9_]\+" 93071d4279SBram Moolenaarsyn match xdefaultsSymbol contained "EXT_[a-zA-Z0-9_]\+" 94071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained NUM_SCREENS 95071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained SCREEN_NUM 96071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained BITS_PER_RGB 97071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained CLASS 98071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor 99071d4279SBram Moolenaarsyn match xdefaultsSymbol contained "CLASS_\(StaticGray\|GrayScale\|StaticColor\|PseudoColor\|TrueColor\|DirectColor\)" 100071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained COLOR 101071d4279SBram Moolenaarsyn match xdefaultsSymbol contained "CLASS_\(StaticGray\|GrayScale\|StaticColor\|PseudoColor\|TrueColor\|DirectColor\)_[0-9]\+" 102071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained HEIGHT 103071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained WIDTH 104071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained PLANES 105071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained X_RESOLUTION 106071d4279SBram Moolenaarsyn keyword xdefaultsSymbol contained Y_RESOLUTION 107071d4279SBram Moolenaar 108071d4279SBram Moolenaar" Define the default highlighting. 10989bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 110*f37506f6SBram Moolenaarhi def link xdefaultsLabel Type 111*f37506f6SBram Moolenaarhi def link xdefaultsValue Constant 112*f37506f6SBram Moolenaarhi def link xdefaultsComment Comment 113*f37506f6SBram Moolenaarhi def link xdefaultsCommentH xdefaultsComment 114*f37506f6SBram Moolenaarhi def link xdefaultsPreProc PreProc 115*f37506f6SBram Moolenaarhi def link xdefaultsInclude xdefaultsPreProc 116*f37506f6SBram Moolenaarhi def link xdefaultsCppSkip xdefaultsCppOut 117*f37506f6SBram Moolenaarhi def link xdefaultsCppOut2 xdefaultsCppOut 118*f37506f6SBram Moolenaarhi def link xdefaultsCppOut Comment 119*f37506f6SBram Moolenaarhi def link xdefaultsIncluded String 120*f37506f6SBram Moolenaarhi def link xdefaultsDefine Macro 121*f37506f6SBram Moolenaarhi def link xdefaultsSymbol Statement 122*f37506f6SBram Moolenaarhi def link xdefaultsSpecial Statement 123*f37506f6SBram Moolenaarhi def link xdefaultsErrorLine Error 124*f37506f6SBram Moolenaarhi def link xdefaultsCommentError Error 125*f37506f6SBram Moolenaarhi def link xdefaultsPunct Normal 126*f37506f6SBram Moolenaarhi def link xdefaultsLineEnd Special 127*f37506f6SBram Moolenaarhi def link xdefaultsTodo Todo 128071d4279SBram Moolenaar 129071d4279SBram Moolenaar 130071d4279SBram Moolenaarlet b:current_syntax = "xdefaults" 131071d4279SBram Moolenaar 132071d4279SBram Moolenaar" vim:ts=8 133