summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/mrxvtrc.vim
blob: d3e3129317f655bcd6202f24d355bb2137a16929 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
" Created	: Wed 26 Apr 2006 01:20:53 AM CDT
" Modified	: Thu 27 Apr 2006 02:29:25 PM CDT
" Author	: Gautam Iyer <gi1242@users.sourceforge.net>
" Description	: Syntax file for mrxvtrc

" Quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif

" Define options.
let s:boolOpts = '(highlightTabOnBell|syncTabTitle|hideTabbar|autohideTabbar|bottomTabbar|hideButtons|syncTabIcon|veryBoldFont|maximized|fullscreen|reverseVideo|loginShell|jumpScroll|scrollBar|scrollbarRight|scrollbarFloating|scrollTtyOutputInhibit|scrollTtyKeypress|scrollWithBuffer|transparent|transparentForce|transparentScrollbar|transparentMenubar|transparentTabbar|tabUsePixmap|utmpInhibit|visualBell|mapAlert|meta8|mouseWheelScrollPage|multibyte_cursor|tripleclickwords|showMenu|xft|xftNomFont|xftSlowOutput|xftAntialias|xftHinting|xftAutoHint|xftGlobalAdvance|tabShell|cmdAllTabs|cmdInitTabs|protectSecondary|thai|borderLess|overrideRedirect|holdExit|broadcast|smartResize|smoothResize|pointerBlank|cursorBlink|noSysConfig|disableMacros|linuxHomeEndKey|sessionMgt)'

let s:colorOpts = '(vt\d+.(foreground|background)|background|foreground|ufBackground|textShadow|i?tab(Foreground|Background)|color([0-9]|1[0-5]|BD|UL|RV)|(scroll|trough|highlight|cursor|pointer|border|tint)Color|cursorColor2)'

let s:numOpts = '(vt\d+.saveLines|maxTabWidth|minVisibleTabs|saveLines|scrollbarThickness|xftmSize|xftSize|desktop|externalBorder|internalBorder|lineSpace|pointerBlankDelay|cursorBlinkInterval|initTermNumber|shading|backgroundFade|bgRefreshInterval|fading|opacity|opacityDegree|xftPSize)'

let s:strOpts = '(vt\d+\.(tabTitle|command)|tabTitle|termName|title|clientName|iconName|bellCommand|holdExitText|backspaceKey|deleteKey|printPipe|cutChars|answerbackString|smClientID|geometry|confFileSave|path|boldFont|m?font[1-5]?|xftFont|xftmFont|xftPFont|inputMethod|greektoggle_key|menu|menubarPixmap|vt\d+\.Pixmap|Pixmap|scrollbarPixmap|tabbarPixmap|appIcon|multichar_encoding)'

syn case match

syn match	mrxvtrcComment	contains=@Spell '^\s*!.*$'
syn match	mrxvtrcComment	'\v^\s*!\s*\w+[.*]\w+.*:.*'

"
" Generic options (string / color / number / boolean)
"
syn match	mrxvtrcOptErr	'\v^\s*\w+[.*]?.{-}(:|$)'
exec 'syn match	mrxvtrcBoolOpts	nextgroup=mrxvtrcBoolVal,mrxvtrcValErr'
	    \ '"\v^\w+[.*]'.s:boolOpts.':\s*"'
exec 'syn match	mrxvtrcNumOpts	nextgroup=mrxvtrcNumVal,mrxvtrcValErr'
	    \ '"\v^\w+[.*]'.s:numOpts.':\s*"'
exec 'syn match	mrxvtrcColorOpts	nextgroup=mrxvtrcColorVal'
	    \ '"\v^\w+[.*]'.s:colorOpts.':\s*"'
exec 'syn match	mrxvtrcStrOpts	nextgroup=mrxvtrcStrVal,mrxvtrcValErr'
	    \ '"\v^\w+[.*]'.s:strOpts.':\s*"'

syn case ignore

syn match	mrxvtrcValErr	contained '\v.+$'
syn keyword	mrxvtrcBoolVal	contained 0 1 yes no on off true false
syn match	mrxvtrcStrVal	contained '\v.+$'
syn match	mrxvtrcColorVal	contained '\v#[0-9a-f]{6}\s*$'
syn match	mrxvtrcNumVal	contained '\v[+-]?(0[0-7]+|\d+|0x[0-9a-f]+)$'

syn case match

"
" Options with special values
"
syn match	mrxvtrcOptions	nextgroup=mrxvtrcSBstyle,mrxvtrcValErr
				\ '\v^\w+[.*]scrollbarStyle:\s*'
syn keyword	mrxvtrcSBstyle	contained plain xterm rxvt next sgi

syn match	mrxvtrcOptions	nextgroup=mrxvtrcSBalign,mrxvtrcValErr
				\ '\v^\w+[.*]scrollbarAlign:\s*'
syn keyword	mrxvtrcSBalign	contained top bottom

syn match	mrxvtrcOptions	nextgroup=mrxvtrcTSmode,mrxvtrcValErr
				\ '\v^\w+[.*]textShadowMode:\s*'
syn keyword	mrxvtrcTSmode	contained
				\ none top bottom left right topleft topright
				\ botleft botright

syn match	mrxvtrcOptions	nextgroup=mrxvtrcGrkKbd,mrxvtrcValErr
				\ '\v^\w+[.*]greek_keyboard:\s*'
syn keyword	mrxvtrcGrkKbd	contained iso ibm

syn match	mrxvtrcOptions	nextgroup=mrxvtrcXftWt,mrxvtrcValErr
				\ '\v^\w+[.*]xftWeight:\s*'
syn keyword	mrxvtrcXftWt	contained light medium bold

syn match	mrxvtrcOptions	nextgroup=mrxvtrcXftSl,mrxvtrcValErr
				\ '\v^\w+[.*]xftSlant:\s*'
syn keyword	mrxvtrcXftSl	contained roman italic oblique

syn match	mrxvtrcOptions	nextgroup=mrxvtrcXftWd,mrxvtrcValErr
				\ '\v^\w+[.*]xftWidth:\s*'
syn keyword	mrxvtrcXftWd	contained
				\ ultracondensed ultraexpanded
				\ condensed expanded normal

syn match	mrxvtrcOptions	nextgroup=mrxvtrcXftHt,mrxvtrcValErr
				\ '\v^\w+[.*]xftRGBA:\s*'
syn keyword	mrxvtrcXftHt	contained rgb bgr vrgb vbgr none

syn match	mrxvtrcOptions	nextgroup=mrxvtrcPedit,mrxvtrcValErr
				\ '\v^\w+[.*]preeditType:\s*'
syn keyword	mrxvtrcPedit	contained OverTheSpot OffTheSpot Root

syn match	mrxvtrcOptions	nextgroup=mrxvtrcMod,mrxvtrcValErr
				\ '\v^\w+[.*]modifier:\s*'
syn keyword	mrxvtrcMod	contained
				\ alt meta hyper super mod1 mod2 mod3 mod4 mod5

syn match	mrxvtrcOptions	nextgroup=mrxvtrcSelSty,mrxvtrcValErr
				\ '\v^\w+[.*]selectStyle:\s*'
syn keyword	mrxvtrcSelSty	contained old oldword


"
" Macros
"
syn match	mrxvtrcOptions	nextgroup=mrxvtrcMacro,mrxvtrcValErr
	    \ '\v\c^\w+[.*]macro.(primary\+)?((ctrl|alt|meta|shift)\+)*\w+:\s*'
syn keyword	mrxvtrcMacro	contained nextgroup=mrxvtrcMacroArg
				\ Dummy Esc Str NewTab Close GotoTab MoveTab
				\ Scroll Copy Paste ToggleSubwin ResizeFont
				\ ToggleVeryBold ToggleTransparency
				\ ToggleBroadcast ToggleHold SetTitle
				\ PrintScreen SaveConfig ToggleMacros
syn match	mrxvtrcMacroArg	contained '.\+$'


unlet s:strOpts s:boolOpts s:colorOpts s:numOpts

"
" Highlighting groups
"
hi def link mrxvtrcComment	Comment

hi def link mrxvtrcBoolOpts	Statement
hi def link mrxvtrcColorOpts	mrxvtrcBoolOpts
hi def link mrxvtrcNumOpts	mrxvtrcBoolOpts
hi def link mrxvtrcStrOpts	mrxvtrcBoolOpts
hi def link mrxvtrcOptions	mrxvtrcBoolOpts

hi def link mrxvtrcBoolVal	Boolean
hi def link mrxvtrcStrVal	String
hi def link mrxvtrcColorVal	Constant
hi def link mrxvtrcNumVal	Number

hi def link mrxvtrcSBstyle	mrxvtrcStrVal
hi def link mrxvtrcSBalign	mrxvtrcStrVal
hi def link mrxvtrcTSmode	mrxvtrcStrVal
hi def link mrxvtrcGrkKbd	mrxvtrcStrVal
hi def link mrxvtrcXftWt	mrxvtrcStrVal
hi def link mrxvtrcXftSl	mrxvtrcStrVal
hi def link mrxvtrcXftWd	mrxvtrcStrVal
hi def link mrxvtrcXftHt	mrxvtrcStrVal
hi def link mrxvtrcPedit	mrxvtrcStrVal
hi def link mrxvtrcMod		mrxvtrcStrVal
hi def link mrxvtrcSelSty	mrxvtrcStrVal

hi def link mrxvtrcMacro	Identifier
hi def link mrxvtrcMacroArg	String

hi def link mrxvtrcOptErr	Error
hi def link mrxvtrcValErr	Error

let b:current_syntax = "mrxvtrc"