Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / syntax / desktop.vim
blob5b71e51192368225536b49602adced2054ee8b58
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
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
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
29 " case on
30 syn case match
32 " General
33 if b:enforce_freedesktop_standard == 0
34         syn match  dtNotStLabel "^.\{-}=\@=" nextgroup=dtDelim
35 endif
37 syn match  dtGroup      /^\s*\[.*\]/
38 syn match  dtComment    /^\s*#.*$/
39 syn match  dtDelim      /=/ contained
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
46 " Numeric
47 syn match   dtNumeric /^\s*\<Version\>/ contains=dtNumericKey,dtDelim
48 syn keyword dtNumericKey Version nextgroup=dtDelim containedin=dtNumeric contained
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
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
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
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
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
73 " Locale for X-Addition
74 syn match   dtXLocale /\[.\{-}\]\s*=\@=/ containedin=dtXAddKey contained
76 " Locale for all
77 syn match   dtALocale /\[.\{-}\]\s*=\@=/ containedin=ALL
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
91         HiLink dtGroup           Special
92         HiLink dtComment         Comment
93         HiLink dtDelim           String
95         HiLink dtLocaleKey       Type
96         HiLink dtLocaleName      Identifier
97         HiLink dtXLocale         Identifier
98         HiLink dtALocale         Identifier
100         HiLink dtNumericKey      Type
102         HiLink dtBooleanKey      Type
103         HiLink dtBooleanValue    Constant
105         HiLink dtStringKey       Type
107         HiLink dtExecKey         Type
108         HiLink dtExecParam       Special
109         HiLink dtTypeKey         Type
110         HiLink dtTypeValue       Constant
111         HiLink dtNotStLabel      Type
112         HiLink dtXAddKey         Type
114         delcommand HiLink
115 endif
117 let b:current_syntax = "desktop"
119 " vim:ts=8