home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / syntax / fvwm.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  25.1 KB  |  643 lines

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