updated for version 7.1a
diff --git a/runtime/syntax/fvwm.vim b/runtime/syntax/fvwm.vim
index ff1b783..43b7abc 100644
--- a/runtime/syntax/fvwm.vim
+++ b/runtime/syntax/fvwm.vim
@@ -1,15 +1,15 @@
 " Vim syntax file
-" Language:	Fvwm{1,2} configuration file
-" Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
-" Last Change:	2002 Jun 2
+" Language:		Fvwm{1,2} configuration file
+" Maintainer:		Gautam Iyer <gi1242@users.sourceforge.net>
+" Previous Maintainer:	Haakon Riiser <hakonrk@fys.uio.no>
+" Last Change:		Sat 04 Nov 2006 11:28:37 PM PST
 "
 " Thanks to David Necas (Yeti) for adding Fvwm 2.4 support.
+"
+" 2006-05-09 gi1242: Rewrote fvwm2 syntax completely. Also since fvwm1 is now
+" mostly obsolete, made the syntax file pick fvwm2 syntax by default.
 
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
-    syn clear
-elseif exists("b:current_syntax")
+if exists("b:current_syntax")
     finish
 endif
 
@@ -18,332 +18,600 @@
 
 " Identifiers in Fvwm can contain most characters, so we only
 " include the most common ones here.
-if version >= 600
-    setlocal iskeyword=_,-,+,.,a-z,A-Z,48-57
-else
-    set iskeyword=_,-,+,.,a-z,A-Z,48-57
-endif
+setlocal iskeyword=_,-,+,.,a-z,A-Z,48-57
 
-" Read system colors from the color database (rgb.txt)
-if exists("rgb_file")
-    " We don't want any hit-return prompts, so we make sure that
-    " &shortmess is set to `O'
-    let __fvwm_oldshm = &shortmess
-    set shortmess=O
-
-    " And we set &report to a huge number, so that no hit-return prompts
-    " will be given
-    let __fvwm_oldreport = &report
-    set report=10000
-
-    " Append the color database to the fvwm configuration, and read the
-    " colors from this buffer
-    let __fvwm_i = line("$") + 1
-    exe "$r" rgb_file
-    let __fvwm_lastline = line("$")
-    while __fvwm_i <= __fvwm_lastline
-	let __fvwm_s = matchstr(getline(__fvwm_i), '^\s*\d\+\s\+\d\+\s\+\d\+\s\+\h.*$')
-	if __fvwm_s != ""
-	    exe "syn keyword fvwmColors ".substitute(__fvwm_s, '^\s*\d\+\s\+\d\+\s\+\d\+\s\+\(\h.*\)$', '\1', "")
-	endif
-	let __fvwm_i = __fvwm_i + 1
-    endwhile
-
-    " Remove the appended data
-    undo
-
-    " Goto first line again
-    1
-
-    " and restore the old values of the variables
-    let &shortmess = __fvwm_oldshm
-    let &report = __fvwm_oldreport
-    unlet __fvwm_i __fvwm_s __fvwm_lastline __fvwm_oldshm __fvwm_oldreport
-endif
-" done reading colors
-
-syn match   fvwmWhitespace	"\s\+" contained
+" Syntax items common to fvwm1 and fvwm2 config files
+syn cluster fvwmConstants	contains=fvwmEnvVar,fvwmNumber
 syn match   fvwmEnvVar		"\$\w\+"
-syn match   fvwmModConf		"^\s*\*\a\+" contains=fvwmWhitespace
-syn match   fvwmString		'".\{-}"'
+syn match   fvwmNumber		'\v<(\d+|0x[0-9a-f]+)>' 
+
+syn match   fvwmModConf		nextgroup=fvwmModArg	"\v^\s*\*\a+"
+syn region  fvwmModArg		contained contains=fvwmString,fvwmRGBValue
+				\ start='.' skip='\\$' end='$'
+
+syn region  fvwmString		contains=fvwmBackslash start='"'
+				\ matchgroup=fvwmBackslash skip='\v\\"' end='"'
+syn region  fvwmString		contains=fvwmBackslash start='`'
+				\ matchgroup=fvwmBackslash skip='\v\\`' end='`'
+syn region  fvwmString		contains=fvwmBackslash start="'"
+				\ matchgroup=fvwmBackslash skip="\v\\'" end="'"
+syn match   fvwmBackslash	contained '\\[^"'`]'
+
 syn match   fvwmRGBValue	"#\x\{3}"
 syn match   fvwmRGBValue	"#\x\{6}"
 syn match   fvwmRGBValue	"#\x\{9}"
 syn match   fvwmRGBValue	"#\x\{12}"
 syn match   fvwmRGBValue	"rgb:\x\{1,4}/\x\{1,4}/\x\{1,4}"
-syn match   fvwmPath		"\<IconPath\s.*$"lc=8 contains=fvwmEnvVar
-syn match   fvwmPath		"\<ModulePath\s.*$"lc=10 contains=fvwmEnvVar
-syn match   fvwmPath		"\<PixmapPath\s.*$"lc=10 contains=fvwmEnvVar
-syn match   fvwmModule		"\<Module\s\+\w\+"he=s+6
-syn match   fvwmKey		"\<Key\s\+\w\+"he=s+3
-syn keyword fvwmExec		Exec
-syn match   fvwmComment		"^#.*$"
 
-if (exists("b:fvwm_version") && b:fvwm_version == 1) || (exists("use_fvwm_1") && use_fvwm_1)
+syn region  fvwmComment		contains=@Spell start="^\s*#" skip='\\$' end='$'
+
+if (exists("b:fvwm_version") && b:fvwm_version == 1)
+	    \ || (exists("use_fvwm_1") && use_fvwm_1)
+
+    "
+    " Syntax highlighting for Fvwm1 files.
+    "
+
+    " Moved from common syntax items
+    syn match   fvwmModule	"\<Module\s\+\w\+"he=s+6
+    syn keyword fvwmExec	Exec
+    syn match   fvwmPath	"\<IconPath\s.*$"lc=8 contains=fvwmEnvVar
+    syn match   fvwmPath	"\<ModulePath\s.*$"lc=10 contains=fvwmEnvVar
+    syn match   fvwmPath	"\<PixmapPath\s.*$"lc=10 contains=fvwmEnvVar
+    syn match   fvwmKey		"\<Key\s\+\w\+"he=s+3
+
+    " fvwm1 specific items
     syn match  fvwmEnvVar	"\$(\w\+)"
-    syn region fvwmStyle	matchgroup=fvwmFunction start="^\s*Style\>"hs=e-5 end="$" oneline keepend contains=fvwmString,fvwmKeyword,fvwmWhiteSpace
+    syn match  fvwmWhitespace	contained "\s\+"
+    syn region fvwmStyle	oneline keepend
+				\ contains=fvwmString,fvwmKeyword,fvwmWhiteSpace
+				\ matchgroup=fvwmFunction
+				\ start="^\s*Style\>"hs=e-5 end="$"
 
-    syn keyword fvwmFunction	AppsBackingStore AutoRaise BackingStore
-    syn keyword fvwmFunction	Beep BoundaryWidth ButtonStyle
-    syn keyword fvwmFunction	CenterOnCirculate CirculateDown
-    syn keyword fvwmFunction	CirculateHit CirculateSkip
-    syn keyword fvwmFunction	CirculateSkipIcons CirculateUp
-    syn keyword fvwmFunction	ClickTime ClickToFocus Close Cursor
-    syn keyword fvwmFunction	CursorMove DecorateTransients Delete
-    syn keyword fvwmFunction	Desk DeskTopScale DeskTopSize Destroy
-    syn keyword fvwmFunction	DontMoveOff EdgeResistance EdgeScroll
-    syn keyword fvwmFunction	EndFunction EndMenu EndPopup Focus
-    syn keyword fvwmFunction	Font Function GotoPage HiBackColor
-    syn keyword fvwmFunction	HiForeColor Icon IconBox IconFont
-    syn keyword fvwmFunction	Iconify IconPath Key Lenience Lower
-    syn keyword fvwmFunction	Maximize MenuBackColor MenuForeColor
-    syn keyword fvwmFunction	MenuStippleColor Module ModulePath Mouse
-    syn keyword fvwmFunction	Move MWMBorders MWMButtons MWMDecorHints
-    syn keyword fvwmFunction	MWMFunctionHints MWMHintOverride MWMMenus
-    syn keyword fvwmFunction	NoBorder NoBoundaryWidth Nop NoPPosition
-    syn keyword fvwmFunction	NoTitle OpaqueMove OpaqueResize Pager
-    syn keyword fvwmFunction	PagerBackColor PagerFont PagerForeColor
-    syn keyword fvwmFunction	PagingDefault PixmapPath Popup Quit Raise
-    syn keyword fvwmFunction	RaiseLower RandomPlacement Refresh Resize
-    syn keyword fvwmFunction	Restart SaveUnders Scroll SloppyFocus
-    syn keyword fvwmFunction	SmartPlacement StartsOnDesk StaysOnTop
-    syn keyword fvwmFunction	StdBackColor StdForeColor Stick Sticky
-    syn keyword fvwmFunction	StickyBackColor StickyForeColor
-    syn keyword fvwmFunction	StickyIcons StubbornIconPlacement
-    syn keyword fvwmFunction	StubbornIcons StubbornPlacement
-    syn keyword fvwmFunction	SuppressIcons Title TogglePage Wait Warp
-    syn keyword fvwmFunction	WindowFont WindowList WindowListSkip
-    syn keyword fvwmFunction	WindowsDesk WindowShade XORvalue
+    syn keyword fvwmFunction	AppsBackingStore AutoRaise BackingStore Beep
+				\ BoundaryWidth ButtonStyle CenterOnCirculate
+				\ CirculateDown CirculateHit CirculateSkip
+				\ CirculateSkipIcons CirculateUp ClickTime
+				\ ClickToFocus Close Cursor CursorMove
+				\ DecorateTransients Delete Desk DeskTopScale
+				\ DeskTopSize Destroy DontMoveOff
+				\ EdgeResistance EdgeScroll EndFunction
+				\ EndMenu EndPopup Focus Font Function
+				\ GotoPage HiBackColor HiForeColor Icon
+				\ IconBox IconFont Iconify IconPath Key
+				\ Lenience Lower Maximize MenuBackColor
+				\ MenuForeColor MenuStippleColor Module
+				\ ModulePath Mouse Move MWMBorders MWMButtons
+				\ MWMDecorHints MWMFunctionHints
+				\ MWMHintOverride MWMMenus NoBorder
+				\ NoBoundaryWidth Nop NoPPosition NoTitle
+				\ OpaqueMove OpaqueResize Pager PagerBackColor
+				\ PagerFont PagerForeColor PagingDefault
+				\ PixmapPath Popup Quit Raise RaiseLower
+				\ RandomPlacement Refresh Resize Restart
+				\ SaveUnders Scroll SloppyFocus SmartPlacement
+				\ StartsOnDesk StaysOnTop StdBackColor
+				\ StdForeColor Stick Sticky StickyBackColor
+				\ StickyForeColor StickyIcons
+				\ StubbornIconPlacement StubbornIcons
+				\ StubbornPlacement SuppressIcons Title
+				\ TogglePage Wait Warp WindowFont WindowList
+				\ WindowListSkip WindowsDesk WindowShade
+				\ XORvalue
 
     " These keywords are only used after the "Style" command.  To avoid
     " name collision with several commands, they are contained.
-    syn keyword fvwmKeyword	BackColor BorderWidth BoundaryWidth contained
-    syn keyword fvwmKeyword	Button CirculateHit CirculateSkip Color contained
-    syn keyword fvwmKeyword	DoubleClick ForeColor Handles HandleWidth contained
-    syn keyword fvwmKeyword	Icon IconTitle NoBorder NoBoundaryWidth contained
-    syn keyword fvwmKeyword	NoButton NoHandles NoIcon NoIconTitle contained
-    syn keyword fvwmKeyword	NoTitle Slippery StartIconic StartNormal contained
-    syn keyword fvwmKeyword	StartsAnyWhere StartsOnDesk StaysOnTop contained
-    syn keyword fvwmKeyword	StaysPut Sticky Title WindowListHit contained
-    syn keyword fvwmKeyword	WindowListSkip contained
-elseif (exists("b:fvwm_version") && b:fvwm_version == 2) || (exists("use_fvwm_2") && use_fvwm_2)
+    syn keyword fvwmKeyword	contained
+				\ BackColor BorderWidth BoundaryWidth Button
+				\ CirculateHit CirculateSkip Color DoubleClick
+				\ ForeColor Handles HandleWidth Icon IconTitle
+				\ NoBorder NoBoundaryWidth NoButton NoHandles
+				\ NoIcon NoIconTitle NoTitle Slippery
+				\ StartIconic StartNormal StartsAnyWhere
+				\ StartsOnDesk StaysOnTop StaysPut Sticky
+				\ Title WindowListHit WindowListSkip
+
+" elseif (exists("b:fvwm_version") && b:fvwm_version == 2)
+" 	    \ || (exists("use_fvwm_2") && use_fvwm_2)
+else
+
+    "
+    " Syntax highlighting for fvwm2 files.
+    "
     syn match   fvwmEnvVar	"\${\w\+}"
     syn match   fvwmEnvVar	"\$\[[^]]\+\]"
     syn match   fvwmEnvVar	"\$[$0-9*]"
-    syn match   fvwmDef		'^\s*+\s*".\{-}"' contains=fvwmMenuString,fvwmWhitespace
-    syn match   fvwmIcon	'%.\{-}%' contained
-    syn match   fvwmIcon	'\*.\{-}\*' contained
-    syn match   fvwmMenuString	'".\{-}"' contains=fvwmIcon,fvwmShortcutKey contained
-    syn match   fvwmShortcutKey	"&." contained
-    syn match   fvwmModule	"\<KillModule\s\+\w\+"he=s+10 contains=fvwmModuleName
-    syn match   fvwmModule	"\<SendToModule\s\+\w\+"he=s+12 contains=fvwmModuleName
-    syn match   fvwmModule	"\<DestroyModuleConfig\s\+\w\+"he=s+19 contains=fvwmModuleName
 
-    syn keyword fvwmFunction	AddButtonStyle AddTitleStyle AddToDecor AddToFunc
-    syn keyword fvwmFunction	AddToMenu AnimatedMove Beep BorderStyle BugOpts
-    syn keyword fvwmFunction	BusyCursor ButtonState ButtonStyle ChangeDecor
-    syn keyword fvwmFunction	ChangeMenuStyle ClickTime Close ColorLimit
-    syn keyword fvwmFunction	ColormapFocus CopyMenuStyle Current CursorMove
-    syn keyword fvwmFunction	CursorStyle DefaultColors DefaultColorset
-    syn keyword fvwmFunction	DefaultFont DefaultIcon DefaultLayers Delete Desk
-    syn keyword fvwmFunction	DeskTopSize Destroy DestroyDecor DestroyFunc
-    syn keyword fvwmFunction	DestroyMenu DestroyMenuStyle Direction Echo
-    syn keyword fvwmFunction	EdgeResistance EdgeScroll EdgeThickness Emulate
-    syn keyword fvwmFunction	EscapeFunc Exec ExecUseShell ExitFunction
-    syn keyword fvwmFunction	FakeClick FlipFocus Focus Function GlobalOpts
-    syn keyword fvwmFunction	GnomeButton GotoDesk GotoDeskAndPage GotoPage
-    syn keyword fvwmFunction	HideGeometryWindow HilightColor HilightColorset
-    syn keyword fvwmFunction	IconFont IconPath Iconify IgnoreModifiers
-    syn keyword fvwmFunction	ImagePath Key Layer Lower Maximize Menu MenuStyle
-    syn keyword fvwmFunction	ModulePath ModuleSynchronous ModuleTimeout
-    syn keyword fvwmFunction	Mouse Move MoveThreshold MoveToDesk MoveToPage
-    syn keyword fvwmFunction	MoveToScreen Next None Nop OpaqueMoveSize
-    syn keyword fvwmFunction	PipeRead PixmapPath PlaceAgain PointerKey
-    syn keyword fvwmFunction	Popup Prev Quit QuitScreen QuitSession Raise
-    syn keyword fvwmFunction	RaiseLower Read Recapture RecaptureWindow
-    syn keyword fvwmFunction	Refresh RefreshWindow Resize ResizeMove
-    syn keyword fvwmFunction	Restart SaveQuitSession SaveSession Scroll
-    syn keyword fvwmFunction	SetAnimation SetEnv SetMenuDelay SetMenuStyle
-    syn keyword fvwmFunction	Silent SnapAttraction SnapGrid Stick Stroke
-    syn keyword fvwmFunction	StrokeFunc Style Title TitleStyle UnsetEnv
-    syn keyword fvwmFunction	UpdateDecor UpdateStyles Wait WarpToWindow
-    syn keyword fvwmFunction	WindowFont WindowId WindowList WindowShade
-    syn keyword fvwmFunction	WindowShadeAnimate WindowsDesk Xinerama
-    syn keyword fvwmFunction	XineramaPrimaryScreen XineramaSls XineramaSlsSize
-    syn keyword fvwmFunction	XorPixmap XorValue
+    syn match   fvwmDef		contains=fvwmMenuString,fvwmWhitespace
+				\ '^\s*+\s*".\{-}"'
+    syn region  fvwmMenuString	contains=fvwmIcon,fvwmShortcutKey
+				\ start='^\s*+\s*\zs"' skip='\v\\\\|\\\"' end='"'
+    syn region	fvwmIcon	contained start='\v\%\%@!' end='%'
+    syn match   fvwmShortcutKey	contained "&."
 
-    syn keyword fvwmKeyword	Active ActiveColorset ActiveDown
-    syn keyword fvwmKeyword	ActiveFore ActiveForeOff ActivePlacement
-    syn keyword fvwmKeyword	ActivePlacementHonorsStartsOnPage
-    syn keyword fvwmKeyword	ActivePlacementIgnoresStartsOnPage ActiveUp All
-    syn keyword fvwmKeyword	AllowRestack Alphabetic Anim Animated Animation
-    syn keyword fvwmKeyword	AnimationOff AutomaticHotkeys AutomaticHotkeysOff
-    syn keyword fvwmKeyword	BGradient BackColor Background BackingStore
-    syn keyword fvwmKeyword	BackingStoreOff BorderColorset BorderWidth
-    syn keyword fvwmKeyword	Bottom Button Button0 Button1 Button2 Button3
-    syn keyword fvwmKeyword	Button4 Button5 Button6 Button7 Button8
-    syn keyword fvwmKeyword	Button9 CGradient CaptureHonorsStartsOnPage
-    syn keyword fvwmKeyword	CaptureIgnoresStartsOnPage CascadePlacement
-    syn keyword fvwmKeyword	Centered CirculateHit CirculateHitIcon
-    syn keyword fvwmKeyword	CirculateHitShaded CirculateSkip
-    syn keyword fvwmKeyword	CirculateSkipIcon CirculateSkipShaded Clear
-    syn keyword fvwmKeyword	ClickToFocus ClickToFocusDoesntPassClick
-    syn keyword fvwmKeyword	ClickToFocusDoesntRaise ClickToFocusPassesClick
-    syn keyword fvwmKeyword	ClickToFocusPassesClickOff ClickToFocusRaises
-    syn keyword fvwmKeyword	ClickToFocusRaisesOff Color Colorset Context
-    syn keyword fvwmKeyword	CurrentDesk CurrentPage CurrentPageAnyDesk
-    syn keyword fvwmKeyword	DGradient DecorateTransient Default
-    syn keyword fvwmKeyword	DepressableBorder Desk DontLowerTransient
-    syn keyword fvwmKeyword	DontRaiseTransient DontStackTransientParent
-    syn keyword fvwmKeyword	DoubleClickTime Down DumbPlacement DynamicMenu
-    syn keyword fvwmKeyword	DynamicPopDownAction DynamicPopUpAction
-    syn keyword fvwmKeyword	East Expect FVWM FirmBorder Fixed
-    syn keyword fvwmKeyword	FixedPosition Flat FlickeringMoveWorkaround
-    syn keyword fvwmKeyword	FlickeringQtDialogsWorkaround FocusFollowsMouse
-    syn keyword fvwmKeyword	FollowsFocus FollowsMouse Font ForeColor
-    syn keyword fvwmKeyword	Foreground Function Fvwm FvwmBorder
-    syn keyword fvwmKeyword	FvwmButtons GNOMEIgnoreHints GNOMEUseHints
-    syn keyword fvwmKeyword	GrabFocus GrabFocusOff GrabFocusTransient
-    syn keyword fvwmKeyword	GrabFocusTransientOff Greyed GreyedColorset
-    syn keyword fvwmKeyword	HGradient HandleWidth Handles Height
-    syn keyword fvwmKeyword	HiddenHandles Hilight3DOff Hilight3DThick
-    syn keyword fvwmKeyword	Hilight3DThickness Hilight3DThin HilightBack
-    syn keyword fvwmKeyword	HilightBackOff HilightBorderColorset
-    syn keyword fvwmKeyword	HilightColorset HilightFore HintOverride
-    syn keyword fvwmKeyword	HoldSubmenus Icon IconBox IconFill IconFont
-    syn keyword fvwmKeyword	IconGrid IconOverride IconTitle Iconic
-    syn keyword fvwmKeyword	IconifyWindowGroups IconifyWindowGroupsOff
-    syn keyword fvwmKeyword	Icons IgnoreRestack Inactive Interior Item
-    syn keyword fvwmKeyword	ItemFormat KeepWindowGroupsOnDesk Layer Left
-    syn keyword fvwmKeyword	LeftJustified Lenience LowerTransient MWM
-    syn keyword fvwmKeyword	MWMBorder MWMButtons MWMDecor MWMDecorMax
-    syn keyword fvwmKeyword	MWMDecorMenu MWMDecorMin MWMFunctions
-    syn keyword fvwmKeyword	ManualPlacement ManualPlacementHonorsStartsOnPage
-    syn keyword fvwmKeyword	ManualPlacementIgnoresStartsOnPage MaxWindowSize
-    syn keyword fvwmKeyword	Maximized Menu MenuColorset MenuFace
-    syn keyword fvwmKeyword	MinOverlapPercentPlacement MinOverlapPlacement
-    syn keyword fvwmKeyword	MiniIcon MixedVisualWorkaround ModalityIsEvil
-    syn keyword fvwmKeyword	ModuleSynchronous Mouse MouseFocus
-    syn keyword fvwmKeyword	MouseFocusClickDoesntRaise MouseFocusClickRaises
-    syn keyword fvwmKeyword	MouseFocusClickRaisesOff Move Mwm MwmBorder
-    syn keyword fvwmKeyword	MwmButtons MwmDecor MwmFunctions NakedTransient
-    syn keyword fvwmKeyword	Never NeverFocus NoActiveIconOverride NoButton
-    syn keyword fvwmKeyword	NoDecorHint NoDeskSort NoFuncHint NoGeometry
-    syn keyword fvwmKeyword	NoGeometryWithInfo NoHandles NoHotkeys NoIcon
-    syn keyword fvwmKeyword	NoIconOverride NoIconPosition NoIconTitle
-    syn keyword fvwmKeyword	NoIcons NoInset NoLenience NoNormal
-    syn keyword fvwmKeyword	NoOLDecor NoOnBottom NoOnTop NoOverride
-    syn keyword fvwmKeyword	NoPPosition NoResizeOverride NoSticky
-    syn keyword fvwmKeyword	NoStipledTitles NoTitle NoTransientPPosition
-    syn keyword fvwmKeyword	NoTransientUSPosition NoUSPosition
-    syn keyword fvwmKeyword	NoWarp Normal North Northeast Northwest
-    syn keyword fvwmKeyword	NotAlphabetic OLDecor OnBottom OnTop Once
-    syn keyword fvwmKeyword	OnlyIcons OnlyListSkip OnlyNormal OnlyOnBottom
-    syn keyword fvwmKeyword	OnlyOnTop OnlySticky Opacity ParentalRelativity
-    syn keyword fvwmKeyword	Pixmap PopdownDelayed PopdownDelay PopupDelay
-    syn keyword fvwmKeyword	PopupAsRootMenu PopupAsSubmenu PopdownImmediately
-    syn keyword fvwmKeyword	PopupDelayed PopupImmediately PopupOffset
-    syn keyword fvwmKeyword	Quiet RGradient RaiseOverNativeWindows
-    syn keyword fvwmKeyword	RaiseOverUnmanaged RaiseTransient
-    syn keyword fvwmKeyword	Raised Read RecaptureHonorsStartsOnPage
-    syn keyword fvwmKeyword	RecaptureIgnoresStartsOnPage Rectangle
-    syn keyword fvwmKeyword	RemoveSubmenus Reset Resize ResizeHintOverride
-    syn keyword fvwmKeyword	ResizeOpaque ResizeOutline ReverseOrder
-    syn keyword fvwmKeyword	Right RightJustified Root SGradient SameType
-    syn keyword fvwmKeyword	SaveUnder SaveUnderOff ScatterWindowGroups
-    syn keyword fvwmKeyword	Screen SelectInPlace SelectOnRelease
-    syn keyword fvwmKeyword	SelectWarp SeparatorsLong SeparatorsShort
-    syn keyword fvwmKeyword	ShowMapping SideColor SidePic Simple
-    syn keyword fvwmKeyword	SkipMapping Slippery SlipperyIcon SloppyFocus
-    syn keyword fvwmKeyword	SmartPlacement SmartPlacementIsNormal
-    syn keyword fvwmKeyword	SmartPlacementIsReallySmart Solid South
-    syn keyword fvwmKeyword	Southeast Southwest StackTransientParent
-    syn keyword fvwmKeyword	StartIconic StartNormal StartsAnyWhere
-    syn keyword fvwmKeyword	StartsLowered StartsOnDesk StartsOnPage
-    syn keyword fvwmKeyword	StartsOnPageIgnoresTransients
-    syn keyword fvwmKeyword	StartsOnPageIncludesTransients StartsOnScreen
-    syn keyword fvwmKeyword	StartsRaised StaysOnBottom StaysOnTop StaysPut
-    syn keyword fvwmKeyword	Sticky StickyIcon StipledTitles StippledTitle
-    syn keyword fvwmKeyword	StippledTitleOff SubmenusLeft SubmenusRight Sunk
-    syn keyword fvwmKeyword	This TileCascadePlacement TileManualPlacement
-    syn keyword fvwmKeyword	TiledPixmap Timeout Title TitleAtBottom
-    syn keyword fvwmKeyword	TitleAtTop TitleUnderlines0 TitleUnderlines1
-    syn keyword fvwmKeyword	TitleUnderlines2 TitleWarp TitleWarpOff Top
-    syn keyword fvwmKeyword	Transient TrianglesRelief TrianglesSolid
-    syn keyword fvwmKeyword	Up UseBorderStyle UseDecor UseIconName
-    syn keyword fvwmKeyword	UseIconPosition UseListSkip UsePPosition
-    syn keyword fvwmKeyword	UseStyle UseTitleStyle UseTransientPPosition
-    syn keyword fvwmKeyword	UseTransientUSPosition UseUSPosition VGradient
-    syn keyword fvwmKeyword	VariablePosition Vector VerticalItemSpacing
-    syn keyword fvwmKeyword	VerticalTitleSpacing WIN Wait Warp WarpTitle
-    syn keyword fvwmKeyword	West Win Window WindowListHit WindowListSkip
-    syn keyword fvwmKeyword	WindowShadeScrolls WindowShadeShrinks
-    syn keyword fvwmKeyword	WindowShadeSteps Windows XineramaRoot YGradient
-    syn keyword fvwmKeyword	bottomright default pointer prev quiet
-    syn keyword fvwmKeyword	True False Toggle
+    syn keyword fvwmModuleName	FvwmAnimate FvwmAudio FvwmAuto FvwmBacker
+				\ FvwmBanner FvwmButtons FvwmCommandS
+				\ FvwmConsole FvwmCpp FvwmDebug FvwmDragWell
+				\ FvwmEvent FvwmForm FvwmGtk FvwmIconBox
+				\ FvwmIconMan FvwmIdent FvwmM4 FvwmPager
+				\ FvwmSave FvwmSaveDesk FvwmScript FvwmScroll
+				\ FvwmTaskBar FvwmWinList FvwmWharf
+    " Obsolete fvwmModuleName: FvwmTheme
 
-    syn keyword fvwmConditionName	AcceptsFocus CurrentDesk CurrentGlobalPage
-    syn keyword fvwmConditionName	CurrentGlobalPageAnyDesk CurrentPage
-    syn keyword fvwmConditionName	CurrentPageAnyDesk CurrentScreen Iconic Layer
-    syn keyword fvwmConditionName	Maximized PlacedByButton3 PlacedByFvwm Raised
-    syn keyword fvwmConditionName	Shaded Sticky Transient Visible
+    syn keyword fvwmKeyword	AddToMenu ChangeMenuStyle CopyMenuStyle
+				\ DestroyMenu DestroyMenuStyle Menu
+				\ Popup TearMenuOff Title BugOpts BusyCursor
+				\ ClickTime ColorLimit ColormapFocus
+				\ DefaultColors DefaultColorset DefaultFont
+				\ DefaultIcon DefaultLayers Deschedule Emulate
+				\ EscapeFunc FakeClick FakeKeypress GlobalOpts
+				\ HilightColor HilightColorset IconFont
+				\ PrintInfo Repeat Schedule State WindowFont
+				\ XSync XSynchronize AnimatedMove
+				\ HideGeometryWindow Layer Lower Move
+				\ MoveToDesk MoveThreshold MoveToPage
+				\ MoveToScreen OpaqueMoveSize PlaceAgain Raise
+				\ RaiseLower ResizeMaximize ResizeMove
+				\ ResizeMoveMaximize RestackTransients
+				\ SetAnimation SnapAttraction SnapGrid
+				\ WindowsDesk XorPixmap XorValue CursorMove
+				\ FlipFocus Focus WarpToWindow Close Delete
+				\ Destroy Iconify Recapture RecaptureWindow
+				\ Refresh RefreshWindow Stick StickAcrossPages
+				\ StickAcrossDesks WindowShade
+				\ WindowShadeAnimate IgnoreModifiers
+				\ EdgeCommand EdgeLeaveCommand GnomeButton
+				\ Stroke StrokeFunc FocusStyle DestroyStyle
+				\ UpdateStyles AddToDecor BorderStyle
+				\ ChangeDecor DestroyDecor UpdateDecor
+				\ DesktopName DeskTopSize EdgeResistance
+				\ EdgeScroll EdgeThickness EwmhBaseStruts
+				\ EWMHNumberOfDesktops GotoDeskAndPage
+				\ GotoPage Scroll Xinerama
+				\ XineramaPrimaryScreen XineramaSls
+				\ XineramaSlsSize XineramaSlsScreens AddToFunc
+				\ Beep DestroyFunc Echo Exec ExecUseShell
+				\ Function Nop PipeRead Read SetEnv Silent
+				\ UnsetEnv Wait DestroyModuleConfig KillModule
+				\ Module ModuleSynchronous ModuleTimeout
+				\ SendToModule Quit QuitScreen QuitSession
+				\ Restart SaveSession SaveQuitSession KeepRc
+				\ NoWindow Break CleanupColorsets
 
-    syn keyword fvwmContextName	BOTTOM BOTTOM_EDGE BOTTOM_LEFT BOTTOM_RIGHT
-    syn keyword fvwmContextName	DEFAULT DESTROY LEFT LEFT_EDGE MENU MOVE
-    syn keyword fvwmContextName	RESIZE RIGHT RIGHT_EDGE ROOT SELECT STROKE SYS
-    syn keyword fvwmContextName	TITLE TOP TOP_EDGE TOP_LEFT TOP_RIGHT WAIT
-    syn keyword fvwmContextName	POSITION
+    " Conditional commands
+    syn keyword fvwmKeyword	nextgroup=fvwmCondition skipwhite
+				\ All Any Current Next None Pick PointerWindow
+				\ Prev ThisWindow
+    syn keyword fvwmKeyword	nextgroup=fvwmDirection skipwhite
+				\ Direction
+    syn keyword fvwmDirection	contained nextgroup=fvwmDirection skipwhite
+				\ FromPointer
+    syn keyword fvwmDirection	contained nextgroup=fvwmCondition skipwhite
+				\ North Northeast East Southeast South
+				\ Southwest West Northwest Center
+    syn region	fvwmCondition	contained contains=fvwmCondNames,fvwmString
+				\ matchgroup=fvwmKeyword start='(' skip=','
+				\ end=')'
+    syn keyword fvwmCondNames	contained
+				\ AcceptsFocus AnyScreen CirculateHit
+				\ CirculateHitIcon CirculateHitShaded Closable
+				\ CurrentDesk CurrentGlobalPage
+				\ CurrentGlobalPageAnyDesk CurrentPage
+				\ CurrentPageAnyDesk CurrentScreen FixedSize
+				\ Focused HasHandles HasPointer Iconic
+				\ Iconifiable Maximizable Maximized
+				\ Overlapped PlacedByButton3 PlacedByFvwm Raised
+				\ Shaded Sticky StickyAcrossDesks
+				\ StickyAcrossPages Transient Visible
+    syn keyword fvwmCondNames	contained skipwhite nextgroup=@fvwmConstants
+				\ State Layer
 
-    syn keyword fvwmFunctionName	contained FvwmAnimate FvwmAudio FvwmAuto
-    syn keyword fvwmFunctionName	contained FvwmBacker FvwmBanner FvwmButtons
-    syn keyword fvwmFunctionName	contained FvwmCascade FvwmCommandS
-    syn keyword fvwmFunctionName	contained FvwmConsole FvwmConsoleC FvwmCpp
-    syn keyword fvwmFunctionName	contained FvwmDebug FvwmDragWell FvwmEvent
-    syn keyword fvwmFunctionName	contained FvwmForm FvwmGtk FvwmIconBox
-    syn keyword fvwmFunctionName	contained FvwmIconMan FvwmIdent FvwmM4
-    syn keyword fvwmFunctionName	contained FvwmPager FvwmRearrange FvwmSave
-    syn keyword fvwmFunctionName	contained FvwmSaveDesk FvwmScript FvwmScroll
-    syn keyword fvwmFunctionName	contained FvwmTalk FvwmTaskBar FvwmTheme
-    syn keyword fvwmFunctionName	contained FvwmTile FvwmWharf FvwmWinList
+    " Test
+    syn keyword fvwmKeyword	nextgroup=fvwmTCond skipwhite
+				\ Test
+    syn region	fvwmTCond	contained contains=fvwmTCNames,fvwmString
+				\ matchgroup=fvwmKeyword start='(' end=')'
+    syn keyword	fvwmTCNames	contained
+				\ Version EnvIsSet EnvMatch EdgeHasPointer
+				\ EdgeIsActive Start Init Restart Exit Quit
+				\ ToRestart True False F R W X I
+    
+    " TestRc
+    syn keyword fvwmKeyword	nextgroup=fvwmTRCond skipwhite
+				\ TestRc
+    syn region	fvwmTRCond	contained contains=fvwmTRNames,fvwmNumber
+				\ matchgroup=fvwmKeyword start='(' end=')'
+    syn keyword	fvwmTRNames	contained NoMatch Match Error Break
 
-    syn keyword fvwmFunctionName	StartFunction InitFunction RestartFunction
-    syn keyword fvwmFunctionName	ExitFunction SessionInitFunction
-    syn keyword fvwmFunctionName	SessionRestartFunction SessionExitFunction
-    syn keyword fvwmFunctionName	MissingSubmenuFunction
+    " Colorsets
+    syn keyword fvwmKeyword	nextgroup=fvwmCSArgs	skipwhite
+				\ ColorSet
+    syn region	fvwmCSArgs	contained transparent contains=fvwmCSNames,@fvwmConstants,fvwmString,fvwmRGBValue,fvwmGradient
+		\ start='.' skip='\\$' end='$'
+    syn keyword	fvwmCSNames	contained
+				\ fg Fore Foreground bg Back Background hi
+				\ Hilite Hilight sh Shade Shadow fgsh Pixmap
+				\ TiledPixmap AspectPixmap RootTransparent
+				\ Shape TiledShape AspectShape Tint fgTint
+				\ bgTint Alpha fgAlpha Dither IconTint
+				\ IconAlpha NoShape Plain Translucent
+    syn match	fvwmCSNames	contained	'\v<Transparent>'
+    syn match	fvwmGradient	contained	'\v<[HVDBSCRY]Gradient>'
+
+    " Styles
+    syn keyword fvwmKeyword	nextgroup=fvwmStyleArgs skipwhite
+				\ Style WindowStyle
+    syn region	fvwmStyleArgs	contained transparent contains=fvwmStyleNames,@fvwmConstants,fvwmString,fvwmRGBValue
+				\ start='.' skip='\\$' end='$'
+    syn keyword	fvwmStyleNames	contained
+				\ BorderWidth HandleWidth NoIcon Icon MiniIcon
+				\ IconBox IconGrid IconFill IconSize NoTitle
+				\ Title TitleAtBottom TitleAtLeft TitleAtRight
+				\ TitleAtTop LeftTitleRotatedCW
+				\ LeftTitleRotatedCCW RightTitleRotatedCCW
+				\ RightTitleRotatedCW TopTitleRotated
+				\ TopTitleNotRotated BottomTitleRotated
+				\ BottomTitleNotRotated UseTitleDecorRotation
+				\ StippledTitle StippledTitleOff
+				\ IndexedWindowName ExactWindowName
+				\ IndexedIconName ExactIconName Borders
+				\ NoHandles Handles WindowListSkip
+				\ WindowListHit CirculateSkip CirculateHit
+				\ CirculateSkipShaded CirculateHitShaded Layer
+				\ StaysOnTop StaysOnBottom StaysPut Sticky
+				\ Slippery StickyAcrossPages StickyAcrossDesks
+				\ StartIconic StartNormal Color ForeColor
+				\ BackColor Colorset HilightFore HilightBack
+				\ HilightColorset BorderColorset
+				\ HilightBorderColorset IconTitleColorset
+				\ HilightIconTitleColorset
+				\ IconBackgroundColorset IconTitleRelief
+				\ IconBackgroundRelief IconBackgroundPadding
+				\ Font IconFont StartsOnDesk StartsOnPage
+				\ StartsAnyWhere StartsOnScreen
+				\ ManualPlacementHonorsStartsOnPage
+				\ ManualPlacementIgnoresStartsOnPage
+				\ CaptureHonorsStartsOnPage
+				\ CaptureIgnoresStartsOnPage
+				\ RecaptureHonorsStartsOnPage
+				\ RecaptureIgnoresStartsOnPage
+				\ StartsOnPageIncludesTransients
+				\ StartsOnPageIgnoresTransients IconTitle
+				\ NoIconTitle MwmButtons FvwmButtons MwmBorder
+				\ FvwmBorder MwmDecor NoDecorHint MwmFunctions
+				\ NoFuncHint HintOverride NoOverride NoButton
+				\ Button ResizeHintOverride NoResizeOverride
+				\ OLDecor NoOLDecor GNOMEUseHints
+				\ GNOMEIgnoreHints StickyIcon SlipperyIcon
+				\ StickyAcrossPagesIcon StickyAcrossDesksIcon
+				\ ManualPlacement CascadePlacement
+				\ MinOverlapPlacement
+				\ MinOverlapPercentPlacement
+				\ TileManualPlacement TileCascadePlacement
+				\ CenterPlacement MinOverlapPlacementPenalties
+				\ MinOverlapPercentPlacementPenalties
+				\ DecorateTransient NakedTransient
+				\ DontRaiseTransient RaiseTransient
+				\ DontLowerTransient LowerTransient
+				\ DontStackTransientParent
+				\ StackTransientParent SkipMapping ShowMapping
+				\ ScatterWindowGroups KeepWindowGroupsOnDesk
+				\ UseDecor UseStyle NoPPosition UsePPosition
+				\ NoUSPosition UseUSPosition
+				\ NoTransientPPosition UseTransientPPosition
+				\ NoTransientUSPosition UseTransientUSPosition
+				\ NoIconPosition UseIconPosition Lenience
+				\ NoLenience ClickToFocus SloppyFocus
+				\ MouseFocus FocusFollowsMouse NeverFocus
+				\ ClickToFocusPassesClickOff
+				\ ClickToFocusPassesClick
+				\ ClickToFocusRaisesOff ClickToFocusRaises
+				\ MouseFocusClickRaises
+				\ MouseFocusClickRaisesOff GrabFocus
+				\ GrabFocusOff GrabFocusTransientOff
+				\ GrabFocusTransient FPFocusClickButtons
+				\ FPFocusClickModifiers
+				\ FPSortWindowlistByFocus FPClickRaisesFocused
+				\ FPClickDecorRaisesFocused
+				\ FPClickIconRaisesFocused
+				\ FPClickRaisesUnfocused
+				\ FPClickDecorRaisesUnfocused
+				\ FPClickIconRaisesUnfocused FPClickToFocus
+				\ FPClickDecorToFocus FPClickIconToFocus
+				\ FPEnterToFocus FPLeaveToUnfocus
+				\ FPFocusByProgram FPFocusByFunction
+				\ FPFocusByFunctionWarpPointer FPLenient
+				\ FPPassFocusClick FPPassRaiseClick
+				\ FPIgnoreFocusClickMotion
+				\ FPIgnoreRaiseClickMotion
+				\ FPAllowFocusClickFunction
+				\ FPAllowRaiseClickFunction FPGrabFocus
+				\ FPGrabFocusTransient FPOverrideGrabFocus
+				\ FPReleaseFocus FPReleaseFocusTransient
+				\ FPOverrideReleaseFocus StartsLowered
+				\ StartsRaised IgnoreRestack AllowRestack
+				\ FixedPosition VariablePosition
+				\ FixedUSPosition VariableUSPosition
+				\ FixedPPosition VariablePPosition FixedSize
+				\ VariableSize FixedUSSize VariableUSSize
+				\ FixedPSize VariablePSize Closable
+				\ Iconifiable Maximizable
+				\ AllowMaximizeFixedSize IconOverride
+				\ NoIconOverride NoActiveIconOverride
+				\ DepressableBorder FirmBorder MaxWindowSize
+				\ IconifyWindowGroups IconifyWindowGroupsOff
+				\ ResizeOpaque ResizeOutline BackingStore
+				\ BackingStoreOff BackingStoreWindowDefault
+				\ Opacity ParentalRelativity SaveUnder
+				\ SaveUnderOff WindowShadeShrinks
+				\ WindowShadeScrolls WindowShadeSteps
+				\ WindowShadeAlwaysLazy WindowShadeBusy
+				\ WindowShadeLazy EWMHDonateIcon
+				\ EWMHDontDonateIcon EWMHDonateMiniIcon
+				\ EWMHDontDonateMiniIcon EWMHMiniIconOverride
+				\ EWMHNoMiniIconOverride
+				\ EWMHUseStackingOrderHints
+				\ EWMHIgnoreStackingOrderHints
+				\ EWMHIgnoreStateHints EWMHUseStateHints
+				\ EWMHIgnoreStrutHints EWMHUseStrutHints
+				\ EWMHMaximizeIgnoreWorkingArea
+				\ EWMHMaximizeUseWorkingArea
+				\ EWMHMaximizeUseDynamicWorkingArea
+				\ EWMHPlacementIgnoreWorkingArea
+				\ EWMHPlacementUseWorkingArea
+				\ EWMHPlacementUseDynamicWorkingArea
+				\ MoveByProgramMethod Unmanaged State
+
+    " Cursor styles
+    syn keyword fvwmKeyword	nextgroup=fvwmCursorStyle skipwhite
+				\ CursorStyle
+    syn case match
+    syn keyword fvwmCursorStyle	contained
+				\ POSITION TITLE DEFAULT SYS MOVE RESIZE WAIT
+				\ MENU SELECT DESTROY TOP RIGHT BOTTOM LEFT
+				\ TOP_LEFT TOP_RIGHT BOTTOM_LEFT BOTTOM_RIGHT
+				\ TOP_EDGE RIGHT_EDGE BOTTOM_EDGE LEFT_EDGE
+				\ ROOT STROKE
+    syn case ignore
+
+    " Menu style
+    syn keyword fvwmKeyword	nextgroup=fvwmMStyleArgs skipwhite
+				\ MenuStyle
+    syn region	fvwmMStyleArgs	contained transparent contains=fvwmMStyleNames,@fvwmConstants,fvwmString,fvwmGradient,fvwmRGBValue
+				\ start='.' skip='\\$' end='$'
+    syn keyword	fvwmMStyleNames	contained
+				\ Fvwm Mwm Win BorderWidth Foreground
+				\ Background Greyed HilightBack HilightBackOff
+				\ ActiveFore ActiveForeOff MenuColorset
+				\ ActiveColorset GreyedColorset Hilight3DThick
+				\ Hilight3DThin Hilight3DOff
+				\ Hilight3DThickness Animation AnimationOff
+				\ Font MenuFace PopupDelay PopupOffset
+				\ TitleWarp TitleWarpOff TitleUnderlines0
+				\ TitleUnderlines1 TitleUnderlines2
+				\ SeparatorsLong SeparatorsShort
+				\ TrianglesSolid TrianglesRelief
+				\ PopupImmediately PopupDelayed
+				\ PopdownImmediately PopdownDelayed
+				\ PopupActiveArea DoubleClickTime SidePic
+				\ SideColor PopupAsRootMenu PopupAsSubmenu
+				\ PopupIgnore PopupClose RemoveSubmenus
+				\ HoldSubmenus SubmenusRight SubmenusLeft
+				\ SelectOnRelease ItemFormat
+				\ VerticalItemSpacing VerticalTitleSpacing
+				\ AutomaticHotkeys AutomaticHotkeysOff
+
+    " Button style
+    syn keyword fvwmKeyword	nextgroup=fvwmBNum	skipwhite
+				\ ButtonStyle AddButtonStyle
+    syn match	fvwmBNum	contained
+				\ nextgroup=fvwmBState,fvwmBStyleArgs skipwhite 
+				\ '\v<([0-9]|All|Left|Right|Reset)>'
+    syn keyword	fvwmBState	contained nextgroup=fvwmBStyleArgs skipwhite
+				\ ActiveUp ActiveDown InactiveUp InactiveDown
+				\ Active Inactive ToggledActiveUp
+				\ ToggledActiveDown ToggledInactiveUp
+				\ ToggledInactiveDown ToggledActive
+				\ ToggledInactive AllNormal AllToggled
+				\ AllActive AllInactive AllUp AllDown
+    syn region	fvwmBStyleArgs	contained contains=fvwmBStyleFlags,fvwmBStyleNames,fvwmGradient,fvwmRGBValue,@fvwmConstants,fvwmString
+				\ start='\S' skip='\\$' end='$'
+    syn keyword	fvwmBStyleNames	contained
+				\ Simple Default Solid Colorset Vector Pixmap
+				\ AdjustedPixmap ShrunkPixmap StretchedPixmap
+				\ TiledPixmap MiniIcon
+    syn keyword fvwmBStyleFlags	contained
+				\ Raised Sunk Flat UseTitleStyle
+				\ UseBorderStyle
+
+    " Border style
+    syn keyword fvwmKeyword	skipwhite nextgroup=fvwmBdState,fvwmBdStyleArgs
+				\ BorderStyle
+    syn keyword	fvwmBdState	contained skipwhite nextgroup=fvwmBdStyleArgs
+				\ Active Inactive
+    syn region	fvwmBdStyleArgs	contained contains=fvwmBdStyNames,fvwmBdStyFlags
+				\ start='\S' skip='\\$' end='$'
+    syn keyword	fvwmBdStyNames	contained
+				\ TiledPixmap Colorset
+    syn keyword	fvwmBdStyFlags	contained
+				\ HiddenHandles NoInset Raised Sunk Flat
+
+    " Title styles
+    syn keyword	fvwmKeyword	skipwhite nextgroup=fvwmTState,fvwmTStyleArgs
+				\ TitleStyle AddTitleStyle
+    syn keyword	fvwmTState	contained skipwhite nextgroup=fvwmTStyleArgs
+				\ ActiveUp ActiveDown InactiveUp InactiveDown
+				\ Active Inactive ToggledActiveUp
+				\ ToggledActiveDown ToggledInactiveUp
+				\ ToggledInactiveDown ToggledActive
+				\ ToggledInactive AllNormal AllToggled
+				\ AllActive AllInactive AllUp AllDown
+    syn region	fvwmTStyleArgs	contained contains=fvwmBStyleNames,fvwmTStyleNames,fvwmMPmapNames,fvwmTStyleFlags,fvwmGradient,fvwmRGBValue,@fvwmConstants
+				\ start='\S' skip='\\$' end='$'
+    syn keyword	fvwmTStyleNames	contained
+				\ MultiPixmap
+    syn keyword fvwmTStyleNames	contained
+				\ LeftJustified Centered RightJustified Height
+				\ MinHeight
+    syn keyword	fvwmMPmapNames	contained
+				\ Main LeftMain RightMain UnderText LeftOfText
+				\ RightOfText LeftEnd RightEnd Buttons
+				\ LeftButtons RightButtons
+    syn keyword	fvwmTStyleFlags	contained
+				\ Raised Flat Sunk
+
+    " Button state
+    syn keyword fvwmKeyword	nextgroup=fvwmBStateArgs
+				\ ButtonState
+    syn region	fvwmBStateArgs	contained contains=fvwmBStateTF,fvwmBStateNames
+				\ start='.' skip='\\$' end='$'
+    syn keyword	fvwmBStateNames	contained ActiveDown Inactive InactiveDown
+    syn keyword fvwmBStateTF	contained True False
+
+    " Paths
+    syn keyword fvwmKeyword	nextgroup=fvwmPath	skipwhite
+				\ IconPath ImagePath LocalePath PixmapPath
+				\ ModulePath 
+    syn match	fvwmPath	contained contains=fvwmEnvVar '\v.+$'
+
+    " Window list command
+    syn keyword fvwmKeyword	nextgroup=fvwmWLArgs skipwhite
+				\ WindowList
+    syn region	fvwmWLArgs	contained
+		\ contains=fvwmCondition,@fvwmConstants,fvwmString,fvwmWLOpts
+		\ start='.' skip='\\$' end='$'
+    syn keyword fvwmWLOpts	contained
+				\ Geometry NoGeometry NoGeometryWithInfo
+				\ NoDeskNum NoNumInDeskTitle
+				\ NoCurrentDeskTitle MaxLabelWidth width
+				\ TitleForAllDesks Function funcname Desk
+				\ desknum CurrentDesk NoIcons Icons OnlyIcons
+				\ NoNormal Normal OnlyNormal NoSticky Sticky
+				\ OnlySticky NoStickyAcrossPages
+				\ StickyAcrossPages OnlyStickyAcrossPages
+				\ NoStickyAcrossDesks StickyAcrossDesks
+				\ OnlyStickyAcrossDesks NoOnTop OnTop
+				\ OnlyOnTop NoOnBottom OnBottom OnlyOnBottom
+				\ Layer UseListSkip OnlyListSkip NoDeskSort
+				\ ReverseOrder CurrentAtEnd IconifiedAtEnd
+				\ UseIconName Alphabetic NotAlphabetic
+				\ SortByResource SortByClass NoHotkeys
+				\ SelectOnRelease
+
+    syn keyword fvwmSpecialFn	StartFunction InitFunction RestartFunction
+				\ ExitFunction SessionInitFunction
+				\ SessionRestartFunction SessionExitFunction
+				\ MissingSubmenuFunction WindowListFunc
+
+    syn keyword fvwmKeyword	skipwhite nextgroup=fvwmKeyWin,fvwmKeyName
+				\ Key PointerKey
+    syn region	fvwmKeyWin	contained skipwhite nextgroup=fvwmKeyName
+				\ start='(' end=')'
+    syn case match
+    syn match	fvwmKeyName	contained skipwhite nextgroup=fvwmKeyContext
+				\ '\v<([a-zA-Z0-9]|F\d+|KP_\d)>'
+    syn keyword fvwmKeyName	contained skipwhite nextgroup=fvwmKeyContext
+				\ BackSpace Begin Break Cancel Clear Delete
+				\ Down End Escape Execute Find Help Home
+				\ Insert KP_Add KP_Begin KP_Decimal KP_Delete
+				\ KP_Divide KP_Down KP_End KP_Enter KP_Equal
+				\ KP_Home KP_Insert KP_Left KP_Multiply
+				\ KP_Next KP_Page_Down KP_Page_Up KP_Prior
+				\ KP_Right KP_Separator KP_Space KP_Subtract
+				\ KP_Tab KP_Up Left Linefeed Menu Mode_switch
+				\ Next Num_Lock Page_Down Page_Up Pause Print
+				\ Prior Redo Return Right script_switch
+				\ Scroll_Lock Select Sys_Req Tab Undo Up space
+				\ exclam quotedbl numbersign dollar percent
+				\ ampersand apostrophe quoteright parenleft
+				\ parenright asterisk plus comma minus period
+				\ slash colon semicolon less equal greater
+				\ question at bracketleft backslash
+				\ bracketright asciicircum underscore grave
+				\ quoteleft braceleft bar braceright
+				\ asciitilde
+
+    syn match	fvwmKeyContext	contained skipwhite nextgroup=fvwmKeyMods
+				\ '\v<[][RWDTS_F<^>vI0-9AM-]+>'
+    syn match	fvwmKeyMods	contained '\v[NCSMLA1-5]+'
+    syn case ignore
+
+    syn keyword	fvwmKeyword	skipwhite nextgroup=fvwmMouseWin,fvwmMouseButton
+				\ Mouse
+    syn region	fvwmMouseWin	contained skipwhite nextgroup=fvwmMouseButton
+				\ start='(' end=')'
+    syn match	fvwmMouseButton	contained skipwhite nextgroup=fvwmKeyContext
+				\ '[0-5]'
 endif
 
-if version >= 508 || !exists("did_fvwm_syntax_inits")
-    if version < 508
-	let did_fvwm_syntax_inits = 1
-	command -nargs=+ HiLink hi link <args>
-    else
-	command -nargs=+ HiLink hi def link <args>
-    endif
+" Define syntax highlighting groups
 
-    HiLink fvwmComment		Comment
-    HiLink fvwmEnvVar		Macro
-    HiLink fvwmExec		Function
-    HiLink fvwmFunction		Function
-    HiLink fvwmFunctionName	Special
-    HiLink fvwmContextName	Function
-    HiLink fvwmConditionName	Function
-    HiLink fvwmIcon		Comment
-    HiLink fvwmKey		Function
-    HiLink fvwmKeyword		Keyword
-    HiLink fvwmMenuString	String
-    HiLink fvwmModConf		Macro
-    HiLink fvwmModule		Function
-    HiLink fvwmModuleName	Special
-    HiLink fvwmRGBValue		Type
-    HiLink fvwmShortcutKey	SpecialChar
-    HiLink fvwmString		String
+"
+" Common highlighting groups
+"
+hi def link fvwmComment		Comment
+hi def link fvwmEnvVar		Macro
+hi def link fvwmNumber		Number
+hi def link fvwmKeyword		Keyword
+hi def link fvwmPath		Constant
+hi def link fvwmModConf		Macro
+hi def link fvwmRGBValue	Constant
+hi def link fvwmString		String
+hi def link fvwmBackslash	SpecialChar
 
-    if exists("rgb_file")
-	HiLink fvwmColors	Type
-    endif
 
-    delcommand HiLink
-endif
+"
+" Highlighting groups for fvwm1 specific items
+"
+hi def link fvwmExec		fvwmKeyword
+hi def link fvwmKey		fvwmKeyword
+hi def link fvwmModule		fvwmKeyword
+hi def link fvwmFunction	Function
+
+"
+" Highlighting groups for fvwm2 specific items
+"
+hi def link fvwmSpecialFn	Type
+hi def link fvwmCursorStyle	fvwmStyleNames
+hi def link fvwmStyleNames	Identifier
+hi def link fvwmMStyleNames	fvwmStyleNames
+hi def link fvwmCSNames		fvwmStyleNames
+hi def link fvwmGradient	fvwmStyleNames
+hi def link fvwmCondNames	fvwmStyleNames
+hi def link fvwmTCNames		fvwmStyleNames
+hi def link fvwmTRNames		fvwmStyleNames
+hi def link fvwmWLOpts		fvwmStyleNames
+
+hi def link fvwmBNum		Number
+hi def link fvwmBState		Type
+hi def link fvwmBStyleNames	fvwmStyleNames
+hi def link fvwmBStyleFlags	Special
+
+hi def link fvwmBStateTF	Constant
+hi def link fvwmBStateNames	fvwmStyleNames
+
+hi def link fvwmBdState		fvwmBState
+hi def link fvwmBdStyNames	fvwmStyleNames
+hi def link fvwmBdStyFlags	fvwmBStyleFlags
+
+hi def link fvwmTState		fvwmBState
+hi def link fvwmTStyleNames	fvwmStyleNames
+hi def link fvwmMPmapNames	fvwmBStyleFlags
+hi def link fvwmTStyleFlags	fvwmBStyleFlags
+
+hi def link fvwmDirection	fvwmBStyleFlags
+
+hi def link fvwmKeyWin		Constant
+hi def link fvwmMouseWin	fvwmKeyWin
+hi def link fvwmKeyName		Special
+hi def link fvwmKeyContext	fvwmKeyName
+hi def link fvwmKeyMods		fvwmKeyName
+hi def link fvwmMouseButton	fvwmKeyName
+
+hi def link fvwmMenuString	String
+hi def link fvwmIcon		Type
+hi def link fvwmShortcutKey	SpecialChar
+
+hi def link fvwmModuleName	Function
 
 let b:current_syntax = "fvwm"
-" vim: sts=4 sw=4 ts=8