xref: /vim-8.2.3635/runtime/syntax/xdefaults.vim (revision f37506f6)
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