xref: /vim-8.2.3635/runtime/syntax/xdefaults.vim (revision 89bcfda6)
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
110command -nargs=+ HiLink hi def link <args>
111HiLink xdefaultsLabel		Type
112HiLink xdefaultsValue		Constant
113HiLink xdefaultsComment	Comment
114HiLink xdefaultsCommentH	xdefaultsComment
115HiLink xdefaultsPreProc	PreProc
116HiLink xdefaultsInclude	xdefaultsPreProc
117HiLink xdefaultsCppSkip	xdefaultsCppOut
118HiLink xdefaultsCppOut2	xdefaultsCppOut
119HiLink xdefaultsCppOut	Comment
120HiLink xdefaultsIncluded	String
121HiLink xdefaultsDefine	Macro
122HiLink xdefaultsSymbol	Statement
123HiLink xdefaultsSpecial	Statement
124HiLink xdefaultsErrorLine	Error
125HiLink xdefaultsCommentError	Error
126HiLink xdefaultsPunct		Normal
127HiLink xdefaultsLineEnd	Special
128HiLink xdefaultsTodo		Todo
129
130delcommand HiLink
131
132let b:current_syntax = "xdefaults"
133
134" vim:ts=8
135