1" Created	: Wed 26 Apr 2006 01:20:53 AM CDT
2" Modified	: Mon 27 Aug 2007 12:10:37 PM PDT
3" Author	: Gautam Iyer <gi1242@users.sourceforge.net>
4" Description	: Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
5
6" Quit when a syntax file was already loaded
7if exists("b:current_syntax")
8  finish
9endif
10
11syn case match
12
13" Errors
14syn match	mrxvtrcError	contained	'\v\S+'
15
16" Comments
17syn match	mrxvtrcComment	contains=@Spell '^\s*[!#].*$'
18syn match	mrxvtrcComment	'\v^\s*[#!]\s*\w+[.*]\w+.*:.*'
19
20"
21" Options.
22"
23syn match	mrxvtrcClass	'\v^\s*\w+[.*]'
24	    \ nextgroup=mrxvtrcOptions,mrxvtrcProfile,@mrxvtrcPOpts,mrxvtrcError
25
26" Boolean options
27syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcBColon,mrxvtrcError
28				\ highlightTabOnBell syncTabTitle hideTabbar
29				\ autohideTabbar bottomTabbar hideButtons
30				\ syncTabIcon veryBoldFont maximized
31				\ fullscreen reverseVideo loginShell
32				\ jumpScroll scrollBar scrollbarRight
33				\ scrollbarFloating scrollTtyOutputInhibit
34				\ scrollTtyKeypress transparentForce
35				\ transparentScrollbar transparentMenubar
36				\ transparentTabbar tabUsePixmap utmpInhibit
37				\ visualBell mapAlert meta8
38				\ mouseWheelScrollPage multibyte_cursor
39				\ tripleclickwords showMenu xft xftNomFont
40				\ xftSlowOutput xftAntialias xftHinting
41				\ xftAutoHint xftGlobalAdvance cmdAllTabs
42				\ protectSecondary thai borderLess
43				\ overrideRedirect broadcast smartResize
44				\ pointerBlank cursorBlink noSysConfig
45				\ disableMacros linuxHomeEndKey sessionMgt
46				\ boldColors smoothResize useFifo veryBright
47syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcBColon,mrxvtrcError
48				\ '\v<transparent>'
49syn match	mrxvtrcBColon	contained skipwhite
50				\ nextgroup=mrxvtrcBoolVal,mrxvtrcError ':'
51syn case ignore
52syn keyword	mrxvtrcBoolVal	contained skipwhite nextgroup=mrxvtrcError
53				\ 0 1 yes no on off true false
54syn case match
55
56" Color options
57syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcCColon,mrxvtrcError
58				\ ufBackground textShadow tabForeground
59				\ itabForeground tabBackground itabBackground
60				\ scrollColor troughColor highlightColor
61				\ cursorColor cursorColor2 pointerColor
62				\ borderColor tintColor
63syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcCColon,mrxvtrcError
64				\ '\v<color([0-9]|1[0-5]|BD|UL|RV)>'
65syn match	mrxvtrcCColon	contained skipwhite
66				\ nextgroup=mrxvtrcColorVal ':'
67syn match	mrxvtrcColorVal	contained skipwhite nextgroup=mrxvtrcError
68				\ '\v#[0-9a-fA-F]{6}'
69
70" Numeric options
71syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcNColon,mrxvtrcError
72				\ maxTabWidth minVisibleTabs
73				\ scrollbarThickness xftmSize xftSize desktop
74				\ externalBorder internalBorder lineSpace
75				\ pointerBlankDelay cursorBlinkInterval
76				\ shading backgroundFade bgRefreshInterval
77				\ fading opacity opacityDegree xftPSize
78syn match	mrxvtrcNColon	contained skipwhite
79				\ nextgroup=mrxvtrcNumVal,mrxvtrcError ':'
80syn match	mrxvtrcNumVal	contained skipwhite nextgroup=mrxvtrcError
81				\ '\v[+-]?<(0[0-7]+|\d+|0x[0-9a-f]+)>'
82
83" String options
84syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcSColon,mrxvtrcError
85				\ tabTitle termName title clientName iconName
86				\ bellCommand backspaceKey deleteKey
87				\ printPipe cutChars answerbackString
88				\ smClientID geometry path boldFont xftFont
89				\ xftmFont xftPFont inputMethod
90				\ greektoggle_key menu menubarPixmap
91				\ scrollbarPixmap tabbarPixmap appIcon
92				\ multichar_encoding initProfileList
93syn match	mrxvtrcOptions	contained nextgroup=mrxvtrcSColon,mrxvtrcError
94				\ '\v<m?font[1-5]?>'
95syn match	mrxvtrcSColon	contained skipwhite nextgroup=mrxvtrcStrVal ':'
96syn match	mrxvtrcStrVal	contained '\v\S.*'
97
98" Profile options
99syn cluster	mrxvtrcPOpts	contains=mrxvtrcPSOpts,mrxvtrcPCOpts,mrxvtrcPNOpts
100syn match	mrxvtrcProfile	contained nextgroup=@mrxvtrcPOpts,mrxvtrcError
101				\ '\vprofile\d+\.'
102syn keyword	mrxvtrcPSOpts	contained nextgroup=mrxvtrcSColon,mrxvtrcError
103				\ tabTitle command holdExitText holdExitTitle
104				\ Pixmap workingDirectory titleFormat
105				\ winTitleFormat
106syn keyword	mrxvtrcPCOpts	contained nextgroup=mrxvtrcCColon,mrxvtrcError
107				\ background foreground
108syn keyword	mrxvtrcPNOpts	contained nextgroup=mrxvtrcNColon,mrxvtrcError
109				\ holdExit saveLines
110
111" scrollbarStyle
112syn match	mrxvtrcOptions	contained skipwhite
113				\ nextgroup=mrxvtrcSBstyle,mrxvtrcError
114				\ '\v<scrollbarStyle:'
115syn keyword	mrxvtrcSBstyle	contained skipwhite nextgroup=mrxvtrcError
116				\ plain xterm rxvt next sgi
117
118" scrollbarAlign
119syn match	mrxvtrcOptions	contained skipwhite
120				\ nextgroup=mrxvtrcSBalign,mrxvtrcError
121				\ '\v<scrollbarAlign:'
122syn keyword	mrxvtrcSBalign	contained skipwhite nextgroup=mrxvtrcError
123				\ top bottom
124
125" textShadowMode
126syn match	mrxvtrcOptions	contained skipwhite
127				\ nextgroup=mrxvtrcTSmode,mrxvtrcError
128				\ '\v<textShadowMode:'
129syn keyword	mrxvtrcTSmode	contained skipwhite nextgroup=mrxvtrcError
130				\ none top bottom left right topleft topright
131				\ botleft botright
132
133" greek_keyboard
134syn match	mrxvtrcOptions	contained skipwhite
135				\ nextgroup=mrxvtrcGrkKbd,mrxvtrcError
136				\ '\v<greek_keyboard:'
137syn keyword	mrxvtrcGrkKbd	contained skipwhite nextgroup=mrxvtrcError
138				\ iso ibm
139
140" xftWeight
141syn match	mrxvtrcOptions	contained skipwhite
142				\ nextgroup=mrxvtrcXftWt,mrxvtrcError
143				\ '\v<(xftWeight|xftBoldWeight):'
144syn keyword	mrxvtrcXftWt	contained skipwhite nextgroup=mrxvtrcError
145				\ light medium demibold bold black
146
147" xftSlant
148syn match	mrxvtrcOptions	contained skipwhite
149				\ nextgroup=mrxvtrcXftSl,mrxvtrcError
150				\ '\v<xftSlant:'
151syn keyword	mrxvtrcXftSl	contained skipwhite nextgroup=mrxvtrcError
152				\ roman italic oblique
153
154" xftWidth
155syn match	mrxvtrcOptions	contained skipwhite
156				\ nextgroup=mrxvtrcXftWd,mrxvtrcError
157				\ '\v<xftWidth:'
158syn keyword	mrxvtrcXftWd	contained skipwhite nextgroup=mrxvtrcError
159				\ ultracondensed ultraexpanded
160				\ condensed expanded normal
161
162" xftRGBA
163syn match	mrxvtrcOptions	contained skipwhite
164				\ nextgroup=mrxvtrcXftHt,mrxvtrcError
165				\ '\v<xftRGBA:'
166syn keyword	mrxvtrcXftHt	contained skipwhite nextgroup=mrxvtrcError
167				\ rgb bgr vrgb vbgr none
168
169" preeditType
170syn match	mrxvtrcOptions	contained skipwhite
171				\ nextgroup=mrxvtrcPedit,mrxvtrcError
172				\ '\v<preeditType:'
173syn keyword	mrxvtrcPedit	contained skipwhite nextgroup=mrxvtrcError
174				\ OverTheSpot OffTheSpot Root
175
176" modifier
177syn match	mrxvtrcOptions	contained skipwhite
178				\ nextgroup=mrxvtrcMod,mrxvtrcError
179				\ '\v<modifier:'
180syn keyword	mrxvtrcMod	contained skipwhite nextgroup=mrxvtrcError
181				\ alt meta hyper super mod1 mod2 mod3 mod4 mod5
182
183" selectStyle
184syn match	mrxvtrcOptions	contained skipwhite
185				\ nextgroup=mrxvtrcSelSty,mrxvtrcError
186				\ '\v<selectStyle:'
187syn keyword	mrxvtrcSelSty	contained skipwhite nextgroup=mrxvtrcError
188				\ old oldword
189
190
191"
192" Macros
193"
194syn keyword	mrxvtrcOptions	contained nextgroup=mrxvtrcKey,mrxvtrcError
195				\ macro
196syn case ignore
197syn match	mrxvtrcKey	contained skipwhite
198			    \ nextgroup=mrxvtrcMacro,mrxvtrcError
199			    \ '\v\.((primary|add|ctrl|alt|meta|shift)\+)*\w+:'
200syn case match
201
202" Macros without arguments
203syn keyword	mrxvtrcMacro	contained skipwhite nextgroup=mrxvtrcError
204				\ Dummy Copy Paste ToggleVeryBold
205				\ ToggleTransparency ToggleBroadcast
206				\ ToggleHold SetTitle ToggleMacros
207				\ ToggleFullscreen Raise
208
209" Macros with a string argument
210syn keyword	mrxvtrcMacro	contained skipwhite nextgroup=mrxvtrcStrVal
211				\ Esc Str Exec Scroll PrintScreen SaveConfig
212
213" Macros with a numeric argument
214syn keyword	mrxvtrcMacro	contained skipwhite
215				\ nextgroup=mrxvtrcNumVal,mrxvtrcError
216				\ Close GotoTab MoveTab ResizeFont UseFifo
217
218" NewTab macro
219syn keyword	mrxvtrcMacro	contained skipwhite
220				\ nextgroup=mrxvtrcTitle,mrxvtrcShell,mrxvtrcCmd
221				\ NewTab
222syn region	mrxvtrcTitle	contained oneline skipwhite
223				\ nextgroup=mrxvtrcShell,mrxvtrcCmd
224				\ start='"' end='"'
225syn match	mrxvtrcShell	contained nextgroup=mrxvtrcCmd '!' 
226syn match	mrxvtrcCmd	contained '\v[^!" \t].*'
227
228" ToggleSubwin macro
229syn keyword	mrxvtrcMacro	contained skipwhite
230				\ nextgroup=mrxvtrcSubwin,mrxvtrcError
231				\ ToggleSubwin
232syn match	mrxvtrcSubwin	contained skipwhite nextgroup=mrxvtrcError
233				\ '\v[-+]?[bmst]>'
234
235"
236" Highlighting groups
237"
238hi def link mrxvtrcError	Error
239hi def link mrxvtrcComment	Comment
240
241hi def link mrxvtrcClass	Statement
242hi def link mrxvtrcOptions	mrxvtrcClass
243hi def link mrxvtrcBColon	mrxvtrcClass
244hi def link mrxvtrcCColon	mrxvtrcClass
245hi def link mrxvtrcNColon	mrxvtrcClass
246hi def link mrxvtrcSColon	mrxvtrcClass
247hi def link mrxvtrcProfile	mrxvtrcClass
248hi def link mrxvtrcPSOpts	mrxvtrcClass
249hi def link mrxvtrcPCOpts	mrxvtrcClass
250hi def link mrxvtrcPNOpts	mrxvtrcClass
251
252hi def link mrxvtrcBoolVal	Boolean
253hi def link mrxvtrcStrVal	String
254hi def link mrxvtrcColorVal	Constant
255hi def link mrxvtrcNumVal	Number
256
257hi def link mrxvtrcSBstyle	mrxvtrcStrVal
258hi def link mrxvtrcSBalign	mrxvtrcStrVal
259hi def link mrxvtrcTSmode	mrxvtrcStrVal
260hi def link mrxvtrcGrkKbd	mrxvtrcStrVal
261hi def link mrxvtrcXftWt	mrxvtrcStrVal
262hi def link mrxvtrcXftSl	mrxvtrcStrVal
263hi def link mrxvtrcXftWd	mrxvtrcStrVal
264hi def link mrxvtrcXftHt	mrxvtrcStrVal
265hi def link mrxvtrcPedit	mrxvtrcStrVal
266hi def link mrxvtrcMod		mrxvtrcStrVal
267hi def link mrxvtrcSelSty	mrxvtrcStrVal
268
269hi def link mrxvtrcMacro	Identifier
270hi def link mrxvtrcKey		mrxvtrcClass
271hi def link mrxvtrcTitle	mrxvtrcStrVal
272hi def link mrxvtrcShell	Special
273hi def link mrxvtrcCmd		PreProc
274hi def link mrxvtrcSubwin	mrxvtrcStrVal
275
276let b:current_syntax = "mrxvtrc"
277