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 11if version < 600 12 syntax clear 13elseif exists("b:current_syntax") 14 finish 15endif 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. 23if exists("enforce_freedesktop_standard") 24 let b:enforce_freedesktop_standard = 1 25else 26 let b:enforce_freedesktop_standard = 0 27endif 28 29" case on 30syn case match 31 32" General 33if b:enforce_freedesktop_standard == 0 34 syn match dtNotStLabel "^.\{-}=\@=" nextgroup=dtDelim 35endif 36 37syn match dtGroup /^\s*\[.*\]/ 38syn match dtComment /^\s*#.*$/ 39syn match dtDelim /=/ contained 40 41" Locale 42syn match dtLocale /^\s*\<\(Name\|GenericName\|Comment\|SwallowTitle\|Icon\|UnmountIcon\)\>.*/ contains=dtLocaleKey,dtLocaleName,dtDelim transparent 43syn keyword dtLocaleKey Name GenericName Comment SwallowTitle Icon UnmountIcon nextgroup=dtLocaleName containedin=dtLocale 44syn match dtLocaleName /\(\[.\{-}\]\s*=\@=\|\)/ nextgroup=dtDelim containedin=dtLocale contained 45 46" Numeric 47syn match dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim 48syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained 49 50" Boolean 51syn match dtBoolean /^\s*\<\(StartupNotify\|ReadOnly\|Terminal\|Hidden\|NoDisplay\)\>.*/ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent 52syn keyword dtBooleanKey StartupNotify ReadOnly Terminal Hidden NoDisplay nextgroup=dtDelim containedin=dtBoolean contained 53syn keyword dtBooleanValue true false containedin=dtBoolean contained 54 55" String 56syn match dtString /^\s*\<\(Encoding\|Icon\|Path\|Actions\|FSType\|MountPoint\|UnmountIcon\|URL\|Categories\|OnlyShowIn\|NotShowIn\|StartupWMClass\|FilePattern\|MimeType\)\>.*/ contains=dtStringKey,dtDelim transparent 57syn 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 60syn match dtExec /^\s*\<\(Exec\|TryExec\|SwallowExec\)\>.*/ contains=dtExecKey,dtDelim,dtExecParam transparent 61syn keyword dtExecKey Exec TryExec SwallowExec nextgroup=dtDelim containedin=dtExec contained 62syn match dtExecParam /%[fFuUnNdDickv]/ containedin=dtExec contained 63 64" Type 65syn match dtType /^\s*\<Type\>.*/ contains=dtTypeKey,dtDelim,dtTypeValue transparent 66syn keyword dtTypeKey Type nextgroup=dtDelim containedin=dtType contained 67syn keyword dtTypeValue Application Link FSDevice Directory containedin=dtType contained 68 69" X-Addition 70syn match dtXAdd /^\s*X-.*/ contains=dtXAddKey,dtDelim transparent 71syn match dtXAddKey /^\s*X-.\{-}\s*=\@=/ nextgroup=dtDelim containedin=dtXAdd contains=dtXLocale contained 72 73" Locale for X-Addition 74syn match dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey contained 75 76" Locale for all 77syn 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 83if 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 115endif 116 117let b:current_syntax = "desktop" 118 119" vim:ts=8 120