blob: 7da5969cdebf32de532ed97d8720f61b102b7b95 [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020013" quit when a syntax file was already loaded
14if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000015 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="$"
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +020033syn match xdefaultsLabel +^[^:]\{-}:+he=e-1 contains=xdefaultsPunct,xdefaultsSpecial,xdefaultsLineEnd
Bram Moolenaar071d4272004-06-13 20:20:40 +000034syn 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
Bram Moolenaar9964e462007-05-05 17:54:07 +000048syn match xdefaultsComment "^!.*$" contains=xdefaultsTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
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
Bram Moolenaar9964e462007-05-05 17:54:07 +000056syn region xdefaultsComment start="/\*" end="\*/" contains=xdefaultsTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000057
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
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +020075syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000078
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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200109" Only when an item doesn't have highlighting yet
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200110hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128
Bram Moolenaar071d4272004-06-13 20:20:40 +0000129
130let b:current_syntax = "xdefaults"
131
132" vim:ts=8