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