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 / desktop.vim < prev    next >
Encoding:
Text File  |  2010-08-14  |  4.5 KB  |  120 lines

  1. " Vim syntax file
  2. " Language:    .desktop, .directory files
  3. "        according to freedesktop.org specification 0.9.4
  4. " http://pdx.freedesktop.org/Standards/desktop-entry-spec/desktop-entry-spec-0.9.4.html
  5. " Maintainer:    Mikolaj Machowski ( mikmach AT wp DOT pl )
  6. " Last Change:    2004 May 16
  7. " Version Info: desktop.vim 0.9.4-1.2
  8.  
  9. " For version 5.x: Clear all syntax items
  10. " For version 6.x: Quit when a syntax file was already loaded
  11. if version < 600
  12.     syntax clear
  13. elseif exists("b:current_syntax")
  14.     finish
  15. endif
  16.  
  17. " This syntax file can be used to all *nix configuration files similar to dos
  18. " ini format (eg. .xawtv, .radio, kde rc files) - this is default mode. But
  19. " you can also enforce strict following of freedesktop.org standard for
  20. " .desktop and .directory files . Set (eg. in vimrc)
  21. " let enforce_freedesktop_standard = 1
  22. " and nonstandard extensions not following X- notation will not be highlighted.
  23. if exists("enforce_freedesktop_standard")
  24.     let b:enforce_freedesktop_standard = 1
  25. else
  26.     let b:enforce_freedesktop_standard = 0
  27. endif
  28.  
  29. " case on
  30. syn case match
  31.  
  32. " General
  33. if b:enforce_freedesktop_standard == 0
  34.     syn match  dtNotStLabel    "^.\{-}=\@=" nextgroup=dtDelim
  35. endif
  36.  
  37. syn match  dtGroup    /^\s*\[.*\]/
  38. syn match  dtComment    /^\s*#.*$/
  39. syn match  dtDelim    /=/ contained
  40.  
  41. " Locale
  42. syn match   dtLocale /^\s*\<\(Name\|GenericName\|Comment\|SwallowTitle\|Icon\|UnmountIcon\)\>.*/ contains=dtLocaleKey,dtLocaleName,dtDelim transparent
  43. syn keyword dtLocaleKey Name GenericName Comment SwallowTitle Icon UnmountIcon nextgroup=dtLocaleName containedin=dtLocale
  44. syn match   dtLocaleName /\(\[.\{-}\]\s*=\@=\|\)/ nextgroup=dtDelim containedin=dtLocale contained
  45.  
  46. " Numeric
  47. syn match   dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim
  48. syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained
  49.  
  50. " Boolean
  51. syn match   dtBoolean /^\s*\<\(StartupNotify\|ReadOnly\|Terminal\|Hidden\|NoDisplay\)\>.*/ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
  52. syn keyword dtBooleanKey StartupNotify ReadOnly Terminal Hidden NoDisplay nextgroup=dtDelim containedin=dtBoolean contained
  53. syn keyword dtBooleanValue true false containedin=dtBoolean contained
  54.  
  55. " String
  56. syn match   dtString /^\s*\<\(Encoding\|Icon\|Path\|Actions\|FSType\|MountPoint\|UnmountIcon\|URL\|Categories\|OnlyShowIn\|NotShowIn\|StartupWMClass\|FilePattern\|MimeType\)\>.*/ contains=dtStringKey,dtDelim transparent
  57. syn keyword dtStringKey Type Encoding TryExec Exec Path Actions FSType MountPoint URL Categories OnlyShowIn NotShowIn StartupWMClass FilePattern MimeType nextgroup=dtDelim containedin=dtString contained
  58.  
  59. " Exec
  60. syn match   dtExec /^\s*\<\(Exec\|TryExec\|SwallowExec\)\>.*/ contains=dtExecKey,dtDelim,dtExecParam transparent
  61. syn keyword dtExecKey Exec TryExec SwallowExec nextgroup=dtDelim containedin=dtExec contained
  62. syn match   dtExecParam  /%[fFuUnNdDickv]/ containedin=dtExec contained
  63.  
  64. " Type
  65. syn match   dtType /^\s*\<Type\>.*/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
  66. syn keyword dtTypeKey Type nextgroup=dtDelim containedin=dtType contained
  67. syn keyword dtTypeValue Application Link FSDevice Directory containedin=dtType contained
  68.  
  69. " X-Addition
  70. syn match   dtXAdd    /^\s*X-.*/ contains=dtXAddKey,dtDelim transparent
  71. syn match   dtXAddKey /^\s*X-.\{-}\s*=\@=/ nextgroup=dtDelim containedin=dtXAdd contains=dtXLocale contained
  72.  
  73. " Locale for X-Addition
  74. syn match   dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey contained
  75.  
  76. " Locale for all
  77. syn match   dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL
  78.  
  79.  
  80. " Define the default highlighting.
  81. " For version 5.7 and earlier: only when not done already
  82. " For version 5.8 and later: only when an item doesn't have highlighting yet
  83. if version >= 508 || !exists("did_desktop_syntax_inits")
  84.     if version < 508
  85.         let did_dosini_syntax_inits = 1
  86.         command -nargs=+ HiLink hi link <args>
  87.     else
  88.         command -nargs=+ HiLink hi def link <args>
  89.     endif
  90.  
  91.     HiLink dtGroup         Special
  92.     HiLink dtComment     Comment
  93.     HiLink dtDelim         String
  94.  
  95.     HiLink dtLocaleKey     Type
  96.     HiLink dtLocaleName     Identifier
  97.     HiLink dtXLocale     Identifier
  98.     HiLink dtALocale     Identifier
  99.  
  100.     HiLink dtNumericKey     Type
  101.  
  102.     HiLink dtBooleanKey     Type
  103.     HiLink dtBooleanValue     Constant
  104.  
  105.     HiLink dtStringKey     Type
  106.  
  107.     HiLink dtExecKey     Type
  108.     HiLink dtExecParam     Special
  109.     HiLink dtTypeKey     Type
  110.     HiLink dtTypeValue     Constant
  111.     HiLink dtNotStLabel     Type
  112.     HiLink dtXAddKey     Type
  113.  
  114.     delcommand HiLink
  115. endif
  116.  
  117. let b:current_syntax = "desktop"
  118.  
  119. " vim:ts=8
  120.