xref: /vim-8.2.3635/runtime/syntax/xdefaults.vim (revision 818c9e7e)
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" 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
51syn match   xdefaultsComment "^!.*$"                     contains=xdefaultsTodo,@Spell
52
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
59syn region  xdefaultsComment start="/\*" end="\*/"       contains=xdefaultsTodo,@Spell
60
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,xdefaultsCppOut,xdefaultsCppOut2,xdefaultsCppSkip
79syn region	xdefaultsDefine		start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue
80syn region	xdefaultsPreProc	start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@xdefaultsPreProcGroup,xdefaultsCommentH,xdefaultsErrorLine,xdefaultsLabel,xdefaultsValue
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
146