mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Update runtime files
9fbdbb814f
Skip ftplugin/vim.vim (vim9script change)
Drop indent/vim.vim and autoload/dist/vimindent.vim (vim9script rewrite)
		
	
		
			
				
	
	
		
			268 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			268 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language: XDG desktop entry
 | 
						|
" Filenames: *.desktop, *.directory
 | 
						|
" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com )
 | 
						|
" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
 | 
						|
" Last Change: 2022 Sep 22
 | 
						|
" Version Info: desktop.vim 1.5
 | 
						|
" References:
 | 
						|
" - https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.5.html (2020-04-27)
 | 
						|
" - https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-0.11.html (2006-02-07)
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
let s:cpo_save = &cpo
 | 
						|
set cpo&vim
 | 
						|
syn case match
 | 
						|
 | 
						|
" Variable {{{1
 | 
						|
" This syntax file can be used to all *nix configuration files similar to dos
 | 
						|
" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode.
 | 
						|
" By default strict following of freedesktop.org standard is enforced.
 | 
						|
" To highlight nonstandard extensions that does not begin with X-, set
 | 
						|
"   let g:desktop_enable_nonstd = v:true
 | 
						|
" Note that this may cause wrong highlight.
 | 
						|
" To highlight KDE-reserved features, set
 | 
						|
"   let g:desktop_enable_kde = v:true
 | 
						|
" g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied
 | 
						|
 | 
						|
if exists("g:desktop_enable_nonstd") && g:desktop_enable_nonstd
 | 
						|
  let s:desktop_enable_nonstd = v:true
 | 
						|
else
 | 
						|
  let s:desktop_enable_nonstd = v:false
 | 
						|
endif
 | 
						|
 | 
						|
if exists("g:desktop_enable_kde") && g:desktop_enable_kde || s:desktop_enable_nonstd
 | 
						|
  let s:desktop_enable_kde = v:true
 | 
						|
else
 | 
						|
  let s:desktop_enable_kde = v:false
 | 
						|
endif
 | 
						|
 | 
						|
" Comment {{{1
 | 
						|
syn match dtComment /^#.*$/
 | 
						|
 | 
						|
" Error {{{1
 | 
						|
syn match dtError /\%(^\s.*\|\s\+$\)/
 | 
						|
 | 
						|
" Group Header {{{1
 | 
						|
" ASCII printable characters except for brackets [ (0x5B) and ] (0x5D)
 | 
						|
syn match dtGroup /^\[[\x20-\x5A\x5C\x5E-\x7E]\+\]$/
 | 
						|
 | 
						|
" Entries {{{1
 | 
						|
syn match dtDelim /=/ contained
 | 
						|
" lang_territory.codeset@modifier
 | 
						|
syn match dtLocaleSuffix
 | 
						|
      \ /\[\%(C\|POSIX\|[a-z]\{2,4}\%(_[A-Z0-9]\{2,3}\)\?\)\%(\.[A-Za-z0-9_-]\+\)\?\%(@[A-Za-z]\+\)\?\]\ze\s*=/
 | 
						|
      \ contained
 | 
						|
 | 
						|
" Boolean Value {{{2
 | 
						|
syn match   dtBoolean
 | 
						|
      \ /^\%(DBusActivatable\|Hidden\|NoDisplay\|PrefersNonDefaultGPU\|SingleMainWindow\|StartupNotify\|Terminal\)\s*=\s*\%(true\|false\)/
 | 
						|
      \ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
 | 
						|
syn keyword dtBooleanKey
 | 
						|
      \ DBusActivatable Hidden NoDisplay PrefersNonDefaultGPU SingleMainWindow StartupNotify Terminal
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
 | 
						|
if s:desktop_enable_kde
 | 
						|
  syn match   dtBoolean
 | 
						|
        \ /^ReadOnly\s*=\s*\%(true\|false\)/
 | 
						|
        \ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent
 | 
						|
  syn keyword dtBooleanKey
 | 
						|
        \ ReadOnly
 | 
						|
        \ contained nextgroup=dtDelim
 | 
						|
endif
 | 
						|
syn keyword dtBooleanValue true false contained
 | 
						|
 | 
						|
" Numeric Value {{{2
 | 
						|
" icon theme
 | 
						|
syn match   dtNumeric /^\%(MaxSize\|MinSize\|Size\|Threshold\)\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal
 | 
						|
syn keyword dtNumericKey
 | 
						|
      \ MaxSize MinSize Size Threshold
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
 | 
						|
if s:desktop_enable_kde
 | 
						|
  syn match   dtNumeric /^InitialPreference\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal
 | 
						|
  syn keyword dtNumericKey
 | 
						|
        \ InitialPreference
 | 
						|
        \ contained nextgroup=dtDelim
 | 
						|
endif
 | 
						|
 | 
						|
syn match   dtNumericDecimal /\<\d\+$/ contained
 | 
						|
 | 
						|
" String Value {{{2
 | 
						|
syn match   dtString
 | 
						|
      \ /^\%(Actions\|Implements\|MimeType\|NotShowIn\|OnlyShowIn\|Path\|StartupWMClass\|URL\)\s*=.*\S/
 | 
						|
      \ contains=dtStringKey,dtDelim transparent
 | 
						|
syn keyword dtStringKey
 | 
						|
      \ Actions Implements MimeType NotShowIn OnlyShowIn Path StartupWMClass URL Version
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
 | 
						|
" icon theme
 | 
						|
syn match   dtString
 | 
						|
      \ /^\%(Context\|Directories\|Example\|Inherits\)\s*=.*\S/
 | 
						|
      \ contains=dtStringKey,dtDelim transparent
 | 
						|
syn keyword dtStringKey
 | 
						|
      \ Context Directories Example Inherits
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
 | 
						|
if s:desktop_enable_kde
 | 
						|
  syn match   dtString
 | 
						|
        \ /^\%(Dev\|DocPath\|FSType\|MountPoint\|ServiceTypes\)\s*=.*\S/
 | 
						|
        \ contains=dtStringKey,dtDelim transparent
 | 
						|
  syn keyword dtStringKey
 | 
						|
        \ Dev DocPath FSType MountPoint ServiceTypes
 | 
						|
        \ contained nextgroup=dtDelim
 | 
						|
endif
 | 
						|
 | 
						|
" Categories {{{3
 | 
						|
" https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry
 | 
						|
syn match   dtCategories /^Categories\s*=.\+\S/ contains=dtCategoriesKey,dtDelim,dtCategoriesValue transparent
 | 
						|
syn keyword dtCategoriesKey
 | 
						|
      \ Categories
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
 | 
						|
" Main Categories
 | 
						|
syn keyword dtCategoriesValue
 | 
						|
      \ Audio AudioVideo Development Education Game Graphics Network Office
 | 
						|
      \ Settings System Utility Video
 | 
						|
      \ contained
 | 
						|
 | 
						|
" Additional Categories
 | 
						|
syn keyword dtCategoriesValue
 | 
						|
      \ BoardGame Chat Clock Geoscience Presentation 2DGraphics 3DGraphics
 | 
						|
      \ Accessibility ActionGame AdventureGame Amusement ArcadeGame Archiving
 | 
						|
      \ Art ArtificialIntelligence Astronomy AudioVideoEditing Biology
 | 
						|
      \ BlocksGame BoardGame Building Calculator Calendar CardGame Chart Chat
 | 
						|
      \ Chemistry Clock Compression ComputerScience ConsoleOnly Construction
 | 
						|
      \ ContactManagement Core DataVisualization Database Debugger
 | 
						|
      \ DesktopSettings Dialup Dictionary DiscBurning Documentation Economy
 | 
						|
      \ Electricity Electronics Email Emulator Engineering FileManager
 | 
						|
      \ FileTools FileTransfer Filesystem Finance FlowChart GNOME GTK
 | 
						|
      \ GUIDesigner Geography Geology Geoscience HamRadio HardwareSettings
 | 
						|
      \ History IDE IRCClient ImageProcessing InstantMessaging Java KDE
 | 
						|
      \ KidsGame Languages Literature LogicGame Math MedicalSoftware Midi
 | 
						|
      \ Mixer Monitor Motif Music News NumericalAnalysis OCR P2P PDA
 | 
						|
      \ PackageManager ParallelComputing Photography Physics Player
 | 
						|
      \ Presentation Printing Profiling ProjectManagement Publishing Qt
 | 
						|
      \ RasterGraphics Recorder RemoteAccess RevisionControl Robotics
 | 
						|
      \ RolePlaying Scanning Science Security Sequencer Simulation Sports
 | 
						|
      \ SportsGame Spreadsheet StrategyGame TV Telephony TelephonyTools
 | 
						|
      \ TerminalEmulator TextEditor TextTools Translation Tuner VectorGraphics
 | 
						|
      \ VideoConference Viewer WebBrowser WebDevelopment WordProcessor
 | 
						|
      \ contained
 | 
						|
 | 
						|
" Reserved Category
 | 
						|
syn keyword dtCategoriesValue
 | 
						|
      \ Applet Screensaver Shell TrayIcon
 | 
						|
      \ contained
 | 
						|
 | 
						|
" Exec/TryExec {{{3
 | 
						|
syn match   dtExec /^\%(Exec\|TryExec\)\s*=.\+\S/ contains=dtExecKey,dtDelim,dtExecParam transparent
 | 
						|
syn keyword dtExecKey
 | 
						|
      \ Exec TryExec
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
" code for file(s), URL(s), etc
 | 
						|
syn match   dtExecParam  /\s\zs%[fFuUick]\ze\%(\W\|$\)/ contained
 | 
						|
 | 
						|
" Type {{{3
 | 
						|
syn match   dtType /^Type\s*=\s*\S\+/ contains=dtTypeKey,dtDelim,dtTypeValue transparent
 | 
						|
syn keyword dtTypeKey
 | 
						|
      \ Type
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
syn keyword dtTypeValue
 | 
						|
      \ Application Directory Link
 | 
						|
      \ contained
 | 
						|
 | 
						|
if s:desktop_enable_kde
 | 
						|
  syn keyword dtTypeValue
 | 
						|
        \ FSDevice Service ServiceType
 | 
						|
        \ contained
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
" Version {{{3
 | 
						|
syn match   dtVersion /^Version\s*=\s*\S\+/ contains=dtVersionKey,dtDelim,dtVersionValue transparent
 | 
						|
syn keyword dtVersionKey
 | 
						|
      \ Version
 | 
						|
      \ contained nextgroup=dtDelim
 | 
						|
syn match   dtVersionValue /[0-9]\+\%(\.[0-9]\+\)\{1,2}$/ contained
 | 
						|
 | 
						|
" Localestring Value {{{2
 | 
						|
syn match   dtLocalestring
 | 
						|
      \ /^\%(Comment\|GenericName\|Keywords\|Name\)\%(\[.\{-}\]\)\?\s*=.*\S/
 | 
						|
      \ contains=dtLocalestringKey,dtLocaleSuffix,dtDelim transparent
 | 
						|
syn keyword dtLocalestringKey
 | 
						|
      \ Comment GenericName Keywords Name
 | 
						|
      \ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite
 | 
						|
 | 
						|
" Iconstring Value {{{2
 | 
						|
syn match   dtIconstring
 | 
						|
      \ /^Icon\s*=.*\S/
 | 
						|
      \ contains=dtIconstringKey,dtDelim transparent
 | 
						|
syn keyword dtIconstringKey
 | 
						|
      \ Icon
 | 
						|
      \ contained nextgroup=dtDelim skipwhite
 | 
						|
 | 
						|
if s:desktop_enable_kde
 | 
						|
  syn match   dtIconstring
 | 
						|
        \ /^UnmountIcon\>\%(\[.\{-}\]\)\?\s*=.*\S/
 | 
						|
        \ contains=dtIconstringKey,dtLocaleSuffix,dtDelim transparent
 | 
						|
  syn keyword dtIconstringKey
 | 
						|
        \ UnmountIcon
 | 
						|
        \ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite
 | 
						|
endif
 | 
						|
 | 
						|
" X-Extension {{{2
 | 
						|
syn match   dtXExtension    /^X-[0-9A-Za-z-]*\%(\[.\{-}\]\)\?\s*=.*\S/
 | 
						|
      \ contains=dtXExtensionKey,dtLocaleSuffix,dtDelim transparent
 | 
						|
syn match   dtXExtensionKey /^X-[0-9A-Za-z-]*/ contained nextgroup=dtLocaleSuffix,dtDelim
 | 
						|
 | 
						|
" non standard {{{2
 | 
						|
if s:desktop_enable_nonstd
 | 
						|
  syn match dtNonStdLabel    /^[0-9A-Za-z-]\+\%(\[.\{-}\]\)\?\s*=.*\S/
 | 
						|
        \ contains=dtNonStdLabelKey,dtLocaleSuffix,dtDelim transparent
 | 
						|
  syn match dtNonStdLabelKey /^[0-9A-Za-z-]\+/ contained nextgroup=dtLocaleSuffix,dtDelim
 | 
						|
endif
 | 
						|
 | 
						|
" Highlight {{{1
 | 
						|
hi def link dtComment		Comment
 | 
						|
hi def link dtError		Error
 | 
						|
 | 
						|
hi def link dtGroup		Special
 | 
						|
 | 
						|
hi def link dtDelim		Delimiter
 | 
						|
hi def link dtLocaleSuffix	Identifier
 | 
						|
 | 
						|
hi def link dtBooleanKey	Type
 | 
						|
hi def link dtBooleanValue	Boolean
 | 
						|
 | 
						|
hi def link dtNumericKey	Type
 | 
						|
hi def link dtNumericDecimal	Number
 | 
						|
 | 
						|
hi def link dtStringKey		Type
 | 
						|
hi def link dtCategoriesKey	Type
 | 
						|
hi def link dtCategoriesValue	Constant
 | 
						|
hi def link dtExecKey		Type
 | 
						|
hi def link dtExecParam		Special
 | 
						|
hi def link dtTypeKey		Type
 | 
						|
hi def link dtTypeValue		Constant
 | 
						|
hi def link dtVersionKey	Type
 | 
						|
hi def link dtVersionValue	Constant
 | 
						|
 | 
						|
hi def link dtLocalestringKey	Type
 | 
						|
 | 
						|
hi def link dtIconStringKey	Type
 | 
						|
 | 
						|
hi def link dtXExtensionKey	Type
 | 
						|
 | 
						|
hi def link dtNonStdLabelKey	Type
 | 
						|
 | 
						|
" Clean Up {{{1
 | 
						|
let b:current_syntax = "desktop"
 | 
						|
let &cpo = s:cpo_save
 | 
						|
 | 
						|
" vim:ts=8:sw=2:fdm=marker
 |