neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

fvwm.vim (25275B)


      1 " Vim syntax file for Fvwm-2.5.22
      2 " Language:		Fvwm{1,2} configuration file
      3 " Maintainer:		Gautam Iyer <gi1242@users.sourceforge.net>
      4 " Previous Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
      5 " Last Change:		Sat 29 Sep 2007 11:08:34 AM PDT
      6 " 2025 Dec 14: Update fvwm2 keywords #18924
      7 "
      8 " Thanks to David Necas (Yeti) for adding Fvwm 2.4 support.
      9 "
     10 " 2006-05-09 gi1242: Rewrote fvwm2 syntax completely. Also since fvwm1 is now
     11 " mostly obsolete, made the syntax file pick fvwm2 syntax by default.
     12 
     13 if exists("b:current_syntax")
     14    finish
     15 endif
     16 let s:keepcpo= &cpo
     17 set cpo&vim
     18 
     19 " Fvwm configuration files are case insensitive
     20 syn case ignore
     21 
     22 " Identifiers in Fvwm can contain most characters, so we only
     23 " include the most common ones here.
     24 setlocal iskeyword=_,-,+,.,a-z,A-Z,48-57
     25 
     26 " Syntax items common to fvwm1 and fvwm2 config files
     27 syn cluster fvwmConstants	contains=fvwmEnvVar,fvwmNumber
     28 syn match   fvwmEnvVar		"\$\w\+"
     29 syn match   fvwmNumber		'\v<(\d+|0x[0-9a-f]+)>' 
     30 
     31 syn match   fvwmModConf		nextgroup=fvwmModArg	"\v^\s*\*\a+"
     32 syn region  fvwmModArg		contained contains=fvwmString,fvwmRGBValue
     33 			\ start='.' skip='\\$' end='$'
     34 
     35 syn region  fvwmString		contains=fvwmBackslash start='"'
     36 			\ matchgroup=fvwmBackslash skip='\v\\"' end='"'
     37 syn region  fvwmString		contains=fvwmBackslash start='`'
     38 			\ matchgroup=fvwmBackslash skip='\v\\`' end='`'
     39 syn region  fvwmString		contains=fvwmBackslash start="'"
     40 			\ matchgroup=fvwmBackslash skip="\v\\'" end="'"
     41 syn match   fvwmBackslash	contained '\\[^"'`]'
     42 
     43 syn match   fvwmRGBValue	"#\x\{3}"
     44 syn match   fvwmRGBValue	"#\x\{6}"
     45 syn match   fvwmRGBValue	"#\x\{9}"
     46 syn match   fvwmRGBValue	"#\x\{12}"
     47 syn match   fvwmRGBValue	"rgb:\x\{1,4}/\x\{1,4}/\x\{1,4}"
     48 
     49 syn region  fvwmComment		contains=@Spell
     50 			\ start='^\s*#\s' skip='\\$' end='$'
     51 syn region  fvwmComment		start="\v^\s*#(\S|$)" skip='\\$' end='$'
     52 
     53 if (exists("b:fvwm_version") && b:fvwm_version == 1)
     54     \ || (exists("use_fvwm_1") && use_fvwm_1)
     55 
     56    "
     57    " Syntax highlighting for Fvwm1 files.
     58    "
     59 
     60    " Moved from common syntax items
     61    syn match   fvwmModule	"\<Module\s\+\w\+"he=s+6
     62    syn keyword fvwmExec	Exec
     63    syn match   fvwmPath	"\<IconPath\s.*$"lc=8 contains=fvwmEnvVar
     64    syn match   fvwmPath	"\<ModulePath\s.*$"lc=10 contains=fvwmEnvVar
     65    syn match   fvwmPath	"\<PixmapPath\s.*$"lc=10 contains=fvwmEnvVar
     66    syn match   fvwmKey		"\<Key\s\+\w\+"he=s+3
     67 
     68    " fvwm1 specific items
     69    syn match  fvwmEnvVar	"\$(\w\+)"
     70    syn match  fvwmWhitespace	contained "\s\+"
     71    syn region fvwmStyle	oneline keepend
     72 			\ contains=fvwmString,fvwmKeyword,fvwmWhiteSpace
     73 			\ matchgroup=fvwmFunction
     74 			\ start="^\s*Style\>"hs=e-5 end="$"
     75 
     76    syn keyword fvwmFunction	AppsBackingStore AutoRaise BackingStore Beep
     77 			\ BoundaryWidth ButtonStyle CenterOnCirculate
     78 			\ CirculateDown CirculateHit CirculateSkip
     79 			\ CirculateSkipIcons CirculateUp ClickTime
     80 			\ ClickToFocus Close Cursor CursorMove
     81 			\ DecorateTransients Delete Desk DeskTopScale
     82 			\ DeskTopSize Destroy DontMoveOff
     83 			\ EdgeResistance EdgeScroll EndFunction
     84 			\ EndMenu EndPopup Focus Font Function
     85 			\ GotoPage HiBackColor HiForeColor Icon
     86 			\ IconBox IconFont Iconify IconPath Key
     87 			\ Lenience Lower Maximize MenuBackColor
     88 			\ MenuForeColor MenuStippleColor Module
     89 			\ ModulePath Mouse Move MWMBorders MWMButtons
     90 			\ MWMDecorHints MWMFunctionHints
     91 			\ MWMHintOverride MWMMenus NoBorder
     92 			\ NoBoundaryWidth Nop NoPPosition NoTitle
     93 			\ OpaqueMove OpaqueResize Pager PagerBackColor
     94 			\ PagerFont PagerForeColor PagingDefault
     95 			\ PixmapPath Popup Quit Raise RaiseLower
     96 			\ RandomPlacement Refresh Resize Restart
     97 			\ SaveUnders Scroll SloppyFocus SmartPlacement
     98 			\ StartsOnDesk StaysOnTop StdBackColor
     99 			\ StdForeColor Stick Sticky StickyBackColor
    100 			\ StickyForeColor StickyIcons
    101 			\ StubbornIconPlacement StubbornIcons
    102 			\ StubbornPlacement SuppressIcons Title
    103 			\ TogglePage Wait Warp WindowFont WindowList
    104 			\ WindowListSkip WindowsDesk WindowShade
    105 			\ XORvalue
    106 
    107    " These keywords are only used after the "Style" command.  To avoid
    108    " name collision with several commands, they are contained.
    109    syn keyword fvwmKeyword	contained
    110 			\ BackColor BorderWidth BoundaryWidth Button
    111 			\ CirculateHit CirculateSkip Color DoubleClick
    112 			\ ForeColor Handles HandleWidth Icon IconTitle
    113 			\ NoBorder NoBoundaryWidth NoButton NoHandles
    114 			\ NoIcon NoIconTitle NoTitle Slippery
    115 			\ StartIconic StartNormal StartsAnyWhere
    116 			\ StartsOnDesk StaysOnTop StaysPut Sticky
    117 			\ Title WindowListHit WindowListSkip
    118 
    119 " elseif (exists("b:fvwm_version") && b:fvwm_version == 2)
    120 " 	    \ || (exists("use_fvwm_2") && use_fvwm_2)
    121 else
    122 
    123    "
    124    " Syntax highlighting for fvwm2 files.
    125    "
    126    syn match   fvwmEnvVar	"\${\w\+}"
    127    syn match   fvwmEnvVar	"\$\[[^]]\+\]"
    128    syn match   fvwmEnvVar	"\$[$0-9*]"
    129 
    130    syn match   fvwmDef		contains=fvwmMenuString,fvwmWhitespace
    131 			\ '^\s*+\s*".\{-}"'
    132    syn region  fvwmMenuString	contains=fvwmIcon,fvwmShortcutKey
    133 			\ start='^\s*+\s*\zs"' skip='\v\\\\|\\\"' end='"'
    134    syn region	fvwmIcon	contained start='\v\%\%@!' end='%'
    135    syn match   fvwmShortcutKey	contained "&."
    136 
    137    syn keyword fvwmModuleName	FvwmAnimate FvwmAudio FvwmAuto FvwmBacker
    138 			\ FvwmBanner FvwmButtons FvwmCascade
    139 			\ FvwmCommandS FvwmConsole FvwmConsoleC
    140 			\ FvwmCpp FvwmDebug FvwmDragWell FvwmEvent
    141 			\ FvwmForm FvwmGtkDebug FvwmIconBox
    142 			\ FvwmIconMan FvwmIdent FvwmM4 FvwmPager
    143 			\ FvwmPerl FvwmProxy FvwmRearrange FvwmSave
    144 			\ FvwmSaveDesk FvwmScript FvwmScroll FvwmTabs
    145 			\ FvwmTalk FvwmTaskBar FvwmTheme FvwmTile
    146 			\ FvwmWharf FvwmWindowMenu FvwmWinList
    147 
    148    " Obsolete fvwmModuleName: FvwmTheme
    149 
    150    syn keyword fvwmKeyword	AddToMenu ChangeMenuStyle CopyMenuStyle
    151 			\ DestroyMenu DestroyMenuStyle Menu
    152 			\ Popup TearMenuOff Title BugOpts BusyCursor
    153 			\ ClickTime ColorLimit ColormapFocus
    154 			\ DefaultColors DefaultColorset DefaultFont
    155 			\ DefaultIcon DefaultLayers Deschedule Emulate
    156 			\ EscapeFunc FakeClick FakeKeypress GlobalOpts
    157 			\ HilightColor HilightColorset IconFont
    158 			\ PrintInfo Repeat Schedule State WindowFont
    159 			\ XSync XSynchronize AnimatedMove
    160 			\ HideGeometryWindow Layer Lower Move
    161 			\ MoveToDesk MoveThreshold MoveToPage Resize
    162 			\ MoveToScreen OpaqueMoveSize PlaceAgain Raise
    163 			\ RaiseLower ResizeMaximize ResizeMove
    164 			\ ResizeMoveMaximize RestackTransients
    165 			\ SetAnimation SnapAttraction SnapGrid
    166 			\ WindowsDesk XorPixmap XorValue CursorMove
    167 			\ FlipFocus Focus WarpToWindow Close Delete
    168 			\ Destroy Iconify Recapture RecaptureWindow
    169 			\ Refresh RefreshWindow Stick StickAcrossPages
    170 			\ StickAcrossDesks WindowShade Maximize GotoDesk
    171 			\ WindowShadeAnimate IgnoreModifiers
    172 			\ EdgeCommand EdgeLeaveCommand GnomeButton
    173 			\ Stroke StrokeFunc FocusStyle DestroyStyle
    174 			\ DestroyWindowStyle UpdateStyles AddToDecor
    175 			\ BorderStyle ChangeDecor DestroyDecor
    176 			\ UpdateDecor DesktopName DeskTopSize
    177 			\ EdgeResistance EdgeScroll EdgeThickness
    178 			\ EwmhBaseStruts EWMHNumberOfDesktops
    179 			\ GotoDeskAndPage GotoPage Scroll Xinerama
    180 			\ XineramaPrimaryScreen XineramaSls
    181 			\ XineramaSlsSize XineramaSlsScreens AddToFunc
    182 			\ Beep DestroyFunc Echo Exec ExecUseShell
    183 			\ Function Nop PipeRead Read SetEnv Silent
    184 			\ UnsetEnv Wait DestroyModuleConfig KillModule
    185 			\ Module ModuleListenOnly ModuleSynchronous
    186 			\ ModuleTimeout SendToModule Quit QuitScreen
    187 			\ QuitSession Restart SaveSession
    188 			\ SaveQuitSession KeepRc NoWindow Break
    189 			\ CleanupColorsets EchoFuncDefinition
    190 			\ InfoStoreAdd DesktopConfiguration
    191 
    192    " Conditional commands
    193    syn keyword fvwmKeyword	nextgroup=fvwmCondition skipwhite
    194 			\ All Any Current Next None Pick PointerWindow
    195 			\ Prev ThisWindow
    196    syn keyword fvwmKeyword	nextgroup=fvwmDirection skipwhite
    197 			\ Direction
    198    syn keyword fvwmDirection	contained nextgroup=fvwmDirection skipwhite
    199 			\ FromPointer
    200    syn keyword fvwmDirection	contained nextgroup=fvwmCondition skipwhite
    201 			\ North Northeast East Southeast South
    202 			\ Southwest West Northwest Center
    203    syn region	fvwmCondition	contained contains=fvwmCondNames,fvwmString
    204 			\ matchgroup=fvwmKeyword start='(' skip=','
    205 			\ end=')'
    206    syn keyword fvwmCondNames	contained
    207 			\ AcceptsFocus AnyScreen CirculateHit
    208 			\ CirculateHitIcon CirculateHitShaded Closable
    209 			\ CurrentDesk CurrentGlobalPage
    210 			\ CurrentGlobalPageAnyDesk CurrentPage
    211 			\ CurrentPageAnyDesk CurrentScreen FixedSize
    212 			\ Focused HasHandles HasPointer Iconic
    213 			\ Iconifiable Maximizable Maximized
    214 			\ Overlapped PlacedByButton PlacedByButton3
    215 			\ PlacedByFvwm Raised Shaded Sticky
    216 			\ StickyAcrossDesks StickyAcrossPages
    217 			\ Transient Visible StickyIcon
    218 			\ StickyAcrossPagesIcon StickyAcrossDesksIcon
    219 
    220    syn keyword fvwmCondNames	contained skipwhite nextgroup=@fvwmConstants
    221 			\ State Layer
    222 
    223    " Test
    224    syn keyword fvwmKeyword	nextgroup=fvwmTCond skipwhite
    225 			\ Test
    226    syn region	fvwmTCond	contained contains=fvwmTCNames,fvwmString
    227 			\ matchgroup=fvwmKeyword start='(' end=')'
    228    syn keyword	fvwmTCNames	contained
    229 			\ Version EnvIsSet EnvMatch EdgeHasPointer
    230 			\ EdgeIsActive Start Init Restart Exit Quit
    231 			\ ToRestart True False F R W X I
    232    
    233    " TestRc
    234    syn keyword fvwmKeyword	nextgroup=fvwmTRCond skipwhite
    235 			\ TestRc
    236    syn region	fvwmTRCond	contained contains=fvwmTRNames,fvwmNumber
    237 			\ matchgroup=fvwmKeyword start='(' end=')'
    238    syn keyword	fvwmTRNames	contained NoMatch Match Error Break
    239 
    240    " Colorsets
    241    syn keyword fvwmKeyword	nextgroup=fvwmCSArgs	skipwhite
    242 			\ ColorSet
    243    syn region	fvwmCSArgs	contained transparent contains=fvwmCSNames,@fvwmConstants,fvwmString,fvwmRGBValue,fvwmGradient
    244 	\ start='.' skip='\\$' end='$'
    245    syn keyword	fvwmCSNames	contained
    246 			\ fg Fore Foreground bg Back Background hi
    247 			\ Hilite Hilight sh Shade Shadow fgsh Pixmap
    248 			\ TiledPixmap AspectPixmap RootTransparent
    249 			\ Shape TiledShape AspectShape Tint fgTint
    250 			\ bgTint Alpha fgAlpha Dither IconTint
    251 			\ IconAlpha NoShape Plain Translucent
    252    syn match	fvwmCSNames	contained	'\v<Transparent>'
    253    syn match	fvwmGradient	contained	'\v<[HVDBSCRY]Gradient>'
    254 
    255    " Styles
    256    syn keyword fvwmKeyword	nextgroup=fvwmStyleArgs skipwhite
    257 			\ Style WindowStyle
    258    syn region	fvwmStyleArgs	contained transparent contains=fvwmStyleNames,@fvwmConstants,fvwmString,fvwmRGBValue
    259 			\ start='.' skip='\\$' end='$'
    260    syn keyword	fvwmStyleNames	contained
    261 			\ BorderWidth HandleWidth NoIcon Icon MiniIcon
    262 			\ IconBox IconGrid IconFill IconSize NoTitle
    263 			\ Title TitleAtBottom TitleAtLeft TitleAtRight
    264 			\ TitleAtTop LeftTitleRotatedCW
    265 			\ LeftTitleRotatedCCW RightTitleRotatedCCW
    266 			\ RightTitleRotatedCW TopTitleRotated
    267 			\ TopTitleNotRotated BottomTitleRotated
    268 			\ BottomTitleNotRotated UseTitleDecorRotation
    269 			\ StippledTitle StippledTitleOff
    270 			\ IndexedWindowName ExactWindowName
    271 			\ IndexedIconName ExactIconName Borders
    272 			\ NoHandles Handles WindowListSkip
    273 			\ WindowListHit CirculateSkip CirculateHit
    274 			\ CirculateSkipShaded CirculateHitShaded Layer
    275 			\ StaysOnTop StaysOnBottom StaysPut Sticky
    276 			\ Slippery StickyAcrossPages StickyAcrossDesks
    277 			\ StartIconic StartNormal Color ForeColor
    278 			\ BackColor Colorset HilightFore HilightBack
    279 			\ HilightColorset BorderColorset
    280 			\ HilightBorderColorset IconTitleColorset
    281 			\ HilightIconTitleColorset IconTitleFormat
    282 			\ IconBackgroundColorset IconTitleRelief
    283 			\ IconBackgroundRelief IconBackgroundPadding
    284 			\ Font IconFont StartsOnDesk StartsOnPage
    285 			\ StartsAnyWhere StartsOnScreen
    286 			\ ManualPlacementHonorsStartsOnPage
    287 			\ ManualPlacementIgnoresStartsOnPage
    288 			\ CaptureHonorsStartsOnPage
    289 			\ CaptureIgnoresStartsOnPage
    290 			\ RecaptureHonorsStartsOnPage
    291 			\ RecaptureIgnoresStartsOnPage
    292 			\ StartsOnPageIncludesTransients
    293 			\ StartsOnPageIgnoresTransients IconTitle
    294 			\ NoIconTitle MwmButtons FvwmButtons MwmBorder
    295 			\ FvwmBorder MwmDecor NoDecorHint MwmFunctions
    296 			\ NoFuncHint HintOverride NoOverride NoButton
    297 			\ Button ResizeHintOverride NoResizeOverride
    298 			\ OLDecor NoOLDecor GNOMEUseHints
    299 			\ GNOMEIgnoreHints StickyIcon SlipperyIcon
    300 			\ StickyAcrossPagesIcon StickyAcrossDesksIcon
    301 			\ ManualPlacement CascadePlacement
    302 			\ MinOverlapPlacement
    303 			\ MinOverlapPercentPlacement
    304 			\ TileManualPlacement TileCascadePlacement
    305 			\ MinOverlapPlacementPenalties
    306 			\ MinOverlapPercentPlacementPenalties
    307 			\ DecorateTransient NakedTransient
    308 			\ DontRaiseTransient RaiseTransient
    309 			\ DontLowerTransient LowerTransient
    310 			\ DontStackTransientParent
    311 			\ StackTransientParent SkipMapping ShowMapping
    312 			\ ScatterWindowGroups KeepWindowGroupsOnDesk
    313 			\ UseDecor UseStyle NoPPosition UsePPosition
    314 			\ NoUSPosition UseUSPosition
    315 			\ NoTransientPPosition UseTransientPPosition
    316 			\ NoTransientUSPosition UseTransientUSPosition
    317 			\ NoIconPosition UseIconPosition Lenience
    318 			\ NoLenience ClickToFocus SloppyFocus
    319 			\ MouseFocus FocusFollowsMouse NeverFocus
    320 			\ ClickToFocusPassesClickOff
    321 			\ ClickToFocusPassesClick
    322 			\ ClickToFocusRaisesOff ClickToFocusRaises
    323 			\ MouseFocusClickRaises
    324 			\ MouseFocusClickRaisesOff GrabFocus
    325 			\ GrabFocusOff GrabFocusTransientOff
    326 			\ GrabFocusTransient FPFocusClickButtons
    327 			\ FPFocusClickModifiers
    328 			\ FPSortWindowlistByFocus FPClickRaisesFocused
    329 			\ FPClickDecorRaisesFocused
    330 			\ FPClickIconRaisesFocused
    331 			\ FPClickRaisesUnfocused
    332 			\ FPClickDecorRaisesUnfocused
    333 			\ FPClickIconRaisesUnfocused FPClickToFocus
    334 			\ FPClickDecorToFocus FPClickIconToFocus
    335 			\ FPEnterToFocus FPLeaveToUnfocus
    336 			\ FPFocusByProgram FPFocusByFunction
    337 			\ FPFocusByFunctionWarpPointer FPLenient
    338 			\ FPPassFocusClick FPPassRaiseClick
    339 			\ FPIgnoreFocusClickMotion
    340 			\ FPIgnoreRaiseClickMotion
    341 			\ FPAllowFocusClickFunction
    342 			\ FPAllowRaiseClickFunction FPGrabFocus
    343 			\ FPGrabFocusTransient FPOverrideGrabFocus
    344 			\ FPReleaseFocus FPReleaseFocusTransient
    345 			\ FPOverrideReleaseFocus StartsLowered
    346 			\ StartsRaised IgnoreRestack AllowRestack
    347 			\ FixedPosition VariablePosition
    348 			\ FixedUSPosition VariableUSPosition
    349 			\ FixedPPosition VariablePPosition FixedSize
    350 			\ VariableSize FixedUSSize VariableUSSize
    351 			\ FixedPSize VariablePSize Closable
    352 			\ Iconifiable Maximizable
    353 			\ AllowMaximizeFixedSize IconOverride
    354 			\ NoIconOverride NoActiveIconOverride
    355 			\ DepressableBorder FirmBorder MaxWindowSize
    356 			\ IconifyWindowGroups IconifyWindowGroupsOff
    357 			\ ResizeOpaque ResizeOutline BackingStore
    358 			\ BackingStoreOff BackingStoreWindowDefault
    359 			\ Opacity ParentalRelativity SaveUnder
    360 			\ SaveUnderOff WindowShadeShrinks
    361 			\ WindowShadeScrolls WindowShadeSteps
    362 			\ WindowShadeAlwaysLazy WindowShadeBusy
    363 			\ WindowShadeLazy EWMHDonateIcon
    364 			\ EWMHDontDonateIcon EWMHDonateMiniIcon
    365 			\ EWMHDontDonateMiniIcon EWMHMiniIconOverride
    366 			\ EWMHNoMiniIconOverride
    367 			\ EWMHUseStackingOrderHints
    368 			\ EWMHIgnoreStackingOrderHints
    369 			\ EWMHIgnoreStateHints EWMHUseStateHints
    370 			\ EWMHIgnoreStrutHints EWMHIgnoreWindowType
    371 			\ EWMHUseStrutHints
    372 			\ EWMHMaximizeIgnoreWorkingArea
    373 			\ EWMHMaximizeUseWorkingArea
    374 			\ EWMHMaximizeUseDynamicWorkingArea
    375 			\ EWMHPlacementIgnoreWorkingArea
    376 			\ EWMHPlacementUseWorkingArea
    377 			\ EWMHPlacementUseDynamicWorkingArea
    378 			\ MoveByProgramMethod Unmanaged State
    379 			\ StippledIconTitle StickyStippledTitle
    380 			\ StickyStippledIconTitle
    381 			\ PositionPlacement
    382 			\ UnderMousePlacementHonorsStartsOnPage
    383 			\ UnderMousePlacementIgnoresStartsOnPage
    384 			\ MinOverlapPlacementPenalties
    385 			\ MinOverlapPercentPlacementPenalties
    386 			\ MinWindowSize StartShaded
    387 			\ EdgeMoveDelay EdgeMoveResistance
    388 
    389    " Cursor styles
    390    syn keyword fvwmKeyword	nextgroup=fvwmCursorStyle skipwhite
    391 			\ CursorStyle
    392    syn case match
    393    syn keyword fvwmCursorStyle	contained
    394 			\ POSITION TITLE DEFAULT SYS MOVE RESIZE WAIT
    395 			\ MENU SELECT DESTROY TOP RIGHT BOTTOM LEFT
    396 			\ TOP_LEFT TOP_RIGHT BOTTOM_LEFT BOTTOM_RIGHT
    397 			\ TOP_EDGE RIGHT_EDGE BOTTOM_EDGE LEFT_EDGE
    398 			\ ROOT STROKE
    399    syn case ignore
    400 
    401    " Menu style
    402    syn keyword fvwmKeyword	nextgroup=fvwmMStyleArgs skipwhite
    403 			\ MenuStyle
    404    syn region	fvwmMStyleArgs	contained transparent contains=fvwmMStyleNames,@fvwmConstants,fvwmString,fvwmGradient,fvwmRGBValue
    405 			\ start='.' skip='\\$' end='$'
    406    syn keyword	fvwmMStyleNames	contained
    407 			\ Fvwm Mwm Win BorderWidth Foreground
    408 			\ Background Greyed HilightBack HilightBackOff
    409 			\ ActiveFore ActiveForeOff MenuColorset
    410 			\ ActiveColorset GreyedColorset Hilight3DThick
    411 			\ Hilight3DThin Hilight3DOff
    412 			\ Hilight3DThickness Animation AnimationOff
    413 			\ Font MenuFace PopupDelay PopupOffset
    414 			\ TitleWarp TitleWarpOff TitleUnderlines0
    415 			\ TitleUnderlines1 TitleUnderlines2
    416 			\ SeparatorsLong SeparatorsShort
    417 			\ TrianglesSolid TrianglesRelief
    418 			\ PopupImmediately PopupDelayed
    419 			\ PopdownImmediately PopdownDelayed
    420 			\ PopupActiveArea DoubleClickTime SidePic
    421 			\ SideColor PopupAsRootMenu PopupAsSubmenu
    422 			\ PopupIgnore PopupClose RemoveSubmenus
    423 			\ HoldSubmenus SubmenusRight SubmenusLeft
    424 			\ SelectOnRelease ItemFormat
    425 			\ VerticalItemSpacing VerticalTitleSpacing
    426 			\ AutomaticHotkeys AutomaticHotkeysOff
    427 			\ TitleFont TitleColorset HilightTitleBack
    428 
    429    " Button style
    430    syn keyword fvwmKeyword	nextgroup=fvwmBNum	skipwhite
    431 			\ ButtonStyle AddButtonStyle
    432    syn match	fvwmBNum	contained
    433 			\ nextgroup=fvwmBState,fvwmBStyleArgs skipwhite 
    434 			\ '\v<([0-9]|All|Left|Right|Reset)>'
    435    syn keyword	fvwmBState	contained nextgroup=fvwmBStyleArgs skipwhite
    436 			\ ActiveUp ActiveDown InactiveUp InactiveDown
    437 			\ Active Inactive ToggledActiveUp
    438 			\ ToggledActiveDown ToggledInactiveUp
    439 			\ ToggledInactiveDown ToggledActive
    440 			\ ToggledInactive AllNormal AllToggled
    441 			\ AllActive AllInactive AllUp AllDown
    442    syn region	fvwmBStyleArgs	contained contains=fvwmBStyleFlags,fvwmBStyleNames,fvwmGradient,fvwmRGBValue,@fvwmConstants,fvwmString
    443 			\ start='\S' skip='\\$' end='$'
    444    syn keyword	fvwmBStyleNames	contained
    445 			\ Simple Default Solid Colorset Vector Pixmap
    446 			\ AdjustedPixmap ShrunkPixmap StretchedPixmap
    447 			\ TiledPixmap MiniIcon MwmDecorMenu MwmDecorMin
    448 			\ MwmDecorMax MwmDecorShade MwmDecorStick MwmDecorLayer
    449    syn keyword fvwmBStyleFlags	contained
    450 			\ Raised Sunk Flat UseTitleStyle
    451 			\ UseBorderStyle
    452 
    453    " Border style
    454    syn keyword fvwmKeyword	skipwhite nextgroup=fvwmBdState,fvwmBdStyleArgs
    455 			\ BorderStyle
    456    syn keyword	fvwmBdState	contained skipwhite nextgroup=fvwmBdStyleArgs
    457 			\ Active Inactive
    458    syn region	fvwmBdStyleArgs	contained contains=fvwmBdStyNames,fvwmBdStyFlags
    459 			\ start='\S' skip='\\$' end='$'
    460    syn keyword	fvwmBdStyNames	contained
    461 			\ TiledPixmap Colorset
    462    syn keyword	fvwmBdStyFlags	contained
    463 			\ HiddenHandles NoInset Raised Sunk Flat
    464 
    465    " Title styles
    466    syn keyword	fvwmKeyword	skipwhite nextgroup=fvwmTState,fvwmTStyleArgs
    467 			\ TitleStyle AddTitleStyle
    468    syn keyword	fvwmTState	contained skipwhite nextgroup=fvwmTStyleArgs
    469 			\ ActiveUp ActiveDown InactiveUp InactiveDown
    470 			\ Active Inactive ToggledActiveUp
    471 			\ ToggledActiveDown ToggledInactiveUp
    472 			\ ToggledInactiveDown ToggledActive
    473 			\ ToggledInactive AllNormal AllToggled
    474 			\ AllActive AllInactive AllUp AllDown
    475    syn region	fvwmTStyleArgs	contained contains=fvwmBStyleNames,fvwmTStyleNames,fvwmMPmapNames,fvwmTStyleFlags,fvwmGradient,fvwmRGBValue,@fvwmConstants
    476 			\ start='\S' skip='\\$' end='$'
    477    syn keyword	fvwmTStyleNames	contained
    478 			\ MultiPixmap
    479    syn keyword fvwmTStyleNames	contained
    480 			\ LeftJustified Centered RightJustified Height
    481 			\ MinHeight
    482    syn keyword	fvwmMPmapNames	contained
    483 			\ Main LeftMain RightMain UnderText LeftOfText
    484 			\ RightOfText LeftEnd RightEnd Buttons
    485 			\ LeftButtons RightButtons
    486    syn keyword	fvwmTStyleFlags	contained
    487 			\ Raised Flat Sunk
    488 
    489    " Button state
    490    syn keyword fvwmKeyword	nextgroup=fvwmBStateArgs
    491 			\ ButtonState
    492    syn region	fvwmBStateArgs	contained contains=fvwmBStateTF,fvwmBStateNames
    493 			\ start='.' skip='\\$' end='$'
    494    syn keyword	fvwmBStateNames	contained ActiveDown Inactive InactiveDown
    495    syn keyword fvwmBStateTF	contained True False
    496 
    497    " Paths
    498    syn keyword fvwmKeyword	nextgroup=fvwmPath	skipwhite
    499 			\ IconPath ImagePath LocalePath PixmapPath
    500 			\ ModulePath 
    501    syn match	fvwmPath	contained contains=fvwmEnvVar '\v.+$'
    502 
    503    " Window list command
    504    syn keyword fvwmKeyword	nextgroup=fvwmWLArgs skipwhite
    505 			\ WindowList
    506    syn region	fvwmWLArgs	contained
    507 	\ contains=fvwmCondition,@fvwmConstants,fvwmString,fvwmWLOpts
    508 	\ start='.' skip='\\$' end='$'
    509    syn keyword fvwmWLOpts	contained
    510 			\ Geometry NoGeometry NoGeometryWithInfo
    511 			\ NoDeskNum NoNumInDeskTitle
    512 			\ NoCurrentDeskTitle MaxLabelWidth width
    513 			\ TitleForAllDesks Function funcname Desk
    514 			\ desknum CurrentDesk NoIcons Icons OnlyIcons
    515 			\ NoNormal Normal OnlyNormal NoSticky Sticky
    516 			\ OnlySticky NoStickyAcrossPages
    517 			\ StickyAcrossPages OnlyStickyAcrossPages
    518 			\ NoStickyAcrossDesks StickyAcrossDesks
    519 			\ OnlyStickyAcrossDesks NoOnTop OnTop
    520 			\ OnlyOnTop NoOnBottom OnBottom OnlyOnBottom
    521 			\ Layer UseListSkip OnlyListSkip NoDeskSort
    522 			\ ReverseOrder CurrentAtEnd IconifiedAtEnd
    523 			\ UseIconName Alphabetic NotAlphabetic
    524 			\ SortByResource SortByClass NoHotkeys
    525 			\ SelectOnRelease
    526 
    527    syn keyword fvwmSpecialFn	StartFunction InitFunction RestartFunction
    528 			\ ExitFunction SessionInitFunction
    529 			\ SessionRestartFunction SessionExitFunction
    530 			\ MissingSubmenuFunction WindowListFunc
    531 
    532    syn keyword fvwmKeyword	skipwhite nextgroup=fvwmKeyWin,fvwmKeyName
    533 			\ Key PointerKey
    534    syn region	fvwmKeyWin	contained skipwhite nextgroup=fvwmKeyName
    535 			\ start='(' end=')'
    536    syn case match
    537    syn match	fvwmKeyName	contained skipwhite nextgroup=fvwmKeyContext
    538 			\ '\v<([a-zA-Z0-9]|F\d+|KP_\d)>'
    539    syn keyword fvwmKeyName	contained skipwhite nextgroup=fvwmKeyContext
    540 			\ BackSpace Begin Break Cancel Clear Delete
    541 			\ Down End Escape Execute Find Help Home
    542 			\ Insert KP_Add KP_Begin KP_Decimal KP_Delete
    543 			\ KP_Divide KP_Down KP_End KP_Enter KP_Equal
    544 			\ KP_Home KP_Insert KP_Left KP_Multiply
    545 			\ KP_Next KP_Page_Down KP_Page_Up KP_Prior
    546 			\ KP_Right KP_Separator KP_Space KP_Subtract
    547 			\ KP_Tab KP_Up Left Linefeed Menu Mode_switch
    548 			\ Next Num_Lock Page_Down Page_Up Pause Print
    549 			\ Prior Redo Return Right script_switch
    550 			\ Scroll_Lock Select Sys_Req Tab Undo Up space
    551 			\ exclam quotedbl numbersign dollar percent
    552 			\ ampersand apostrophe quoteright parenleft
    553 			\ parenright asterisk plus comma minus period
    554 			\ slash colon semicolon less equal greater
    555 			\ question at bracketleft backslash
    556 			\ bracketright asciicircum underscore grave
    557 			\ quoteleft braceleft bar braceright
    558 			\ asciitilde
    559 
    560    syn match	fvwmKeyContext	contained skipwhite nextgroup=fvwmKeyMods
    561 			\ '\v<[][RWDTS_F<^>vI0-9AM-]+>'
    562    syn match	fvwmKeyMods	contained '\v[NCSMLA1-5]+'
    563    syn case ignore
    564 
    565    syn keyword	fvwmKeyword	skipwhite nextgroup=fvwmMouseWin,fvwmMouseButton
    566 			\ Mouse
    567    syn region	fvwmMouseWin	contained skipwhite nextgroup=fvwmMouseButton
    568 			\ start='(' end=')'
    569    syn match	fvwmMouseButton	contained skipwhite nextgroup=fvwmKeyContext
    570 			\ '[0-5]'
    571 endif
    572 
    573 " Define syntax highlighting groups
    574 
    575 "
    576 " Common highlighting groups
    577 "
    578 hi def link fvwmComment		Comment
    579 hi def link fvwmEnvVar		Macro
    580 hi def link fvwmNumber		Number
    581 hi def link fvwmKeyword		Keyword
    582 hi def link fvwmPath		Constant
    583 hi def link fvwmModConf		Macro
    584 hi def link fvwmRGBValue	Constant
    585 hi def link fvwmString		String
    586 hi def link fvwmBackslash	SpecialChar
    587 
    588 
    589 "
    590 " Highlighting groups for fvwm1 specific items
    591 "
    592 hi def link fvwmExec		fvwmKeyword
    593 hi def link fvwmKey		fvwmKeyword
    594 hi def link fvwmModule		fvwmKeyword
    595 hi def link fvwmFunction	Function
    596 
    597 "
    598 " Highlighting groups for fvwm2 specific items
    599 "
    600 hi def link fvwmSpecialFn	Type
    601 hi def link fvwmCursorStyle	fvwmStyleNames
    602 hi def link fvwmStyleNames	Identifier
    603 hi def link fvwmMStyleNames	fvwmStyleNames
    604 hi def link fvwmCSNames		fvwmStyleNames
    605 hi def link fvwmGradient	fvwmStyleNames
    606 hi def link fvwmCondNames	fvwmStyleNames
    607 hi def link fvwmTCNames		fvwmStyleNames
    608 hi def link fvwmTRNames		fvwmStyleNames
    609 hi def link fvwmWLOpts		fvwmStyleNames
    610 
    611 hi def link fvwmBNum		Number
    612 hi def link fvwmBState		Type
    613 hi def link fvwmBStyleNames	fvwmStyleNames
    614 hi def link fvwmBStyleFlags	Special
    615 
    616 hi def link fvwmBStateTF	Constant
    617 hi def link fvwmBStateNames	fvwmStyleNames
    618 
    619 hi def link fvwmBdState		fvwmBState
    620 hi def link fvwmBdStyNames	fvwmStyleNames
    621 hi def link fvwmBdStyFlags	fvwmBStyleFlags
    622 
    623 hi def link fvwmTState		fvwmBState
    624 hi def link fvwmTStyleNames	fvwmStyleNames
    625 hi def link fvwmMPmapNames	fvwmBStyleFlags
    626 hi def link fvwmTStyleFlags	fvwmBStyleFlags
    627 
    628 hi def link fvwmDirection	fvwmBStyleFlags
    629 
    630 hi def link fvwmKeyWin		Constant
    631 hi def link fvwmMouseWin	fvwmKeyWin
    632 hi def link fvwmKeyName		Special
    633 hi def link fvwmKeyContext	fvwmKeyName
    634 hi def link fvwmKeyMods		fvwmKeyName
    635 hi def link fvwmMouseButton	fvwmKeyName
    636 
    637 hi def link fvwmMenuString	String
    638 hi def link fvwmIcon		Type
    639 hi def link fvwmShortcutKey	SpecialChar
    640 
    641 hi def link fvwmModuleName	Function
    642 
    643 let b:current_syntax = "fvwm"
    644 
    645 let &cpo = s:keepcpo
    646 unlet s:keepcpo