" Created : Wed 26 Apr 2006 01:20:53 AM CDT " Modified : Thu 27 Apr 2006 02:29:25 PM CDT " Author : Gautam Iyer " 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"