mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	git attributes
 | 
						|
" Maintainer:	ObserverOfTime <chronobserver@disroot.org>
 | 
						|
" Filenames:	.gitattributes, *.git/info/attributes
 | 
						|
" Last Change:	2022 Sep 09
 | 
						|
 | 
						|
if exists('b:current_syntax')
 | 
						|
    finish
 | 
						|
endif
 | 
						|
 | 
						|
let s:cpo_save = &cpoptions
 | 
						|
set cpoptions&vim
 | 
						|
 | 
						|
" Comment
 | 
						|
syn keyword gitattributesTodo contained TODO FIXME XXX
 | 
						|
syn match gitattributesComment /^\s*#.*/ contains=gitattributesTodo
 | 
						|
 | 
						|
" Pattern
 | 
						|
syn match gitattributesPattern /^\s*#\@!\(".\+"\|\S\+\)/ skipwhite
 | 
						|
            \ nextgroup=gitattributesAttrPrefixed,gitattributesAttrAssigned skipwhite
 | 
						|
            \ contains=gitattributesGlob,gitattributesRange,gitattributesSeparator
 | 
						|
syn match gitattributesGlob /\\\@1<![?*]/ contained
 | 
						|
syn match gitattributesRange /\\\@1<!\[.\{-}\]/ contained
 | 
						|
syn match gitattributesSeparator '/' contained
 | 
						|
 | 
						|
" Attribute
 | 
						|
syn match gitattributesAttrPrefixed /[!-]\?[A-Za-z0-9_.][-A-Za-z0-9_.]*/
 | 
						|
            \ transparent contained skipwhite
 | 
						|
            \ nextgroup=gitattributesAttrPrefixed,gitattributesAttrAssigned
 | 
						|
            \ contains=gitattributesPrefix,gitattributesName
 | 
						|
syn match gitattributesAttrAssigned /[A-Za-z0-9_.][-A-Za-z0-9_.]*=\S\+/
 | 
						|
            \ transparent contained skipwhite
 | 
						|
            \ nextgroup=gitattributesAttrPrefixed,gitattributesAttrAssigned
 | 
						|
            \ contains=gitattributesName,gitattributesAssign,gitattributesBoolean,gitattributesString
 | 
						|
syn match gitattributesName /[A-Za-z0-9_.][-A-Za-z0-9_.]*/
 | 
						|
            \ contained nextgroup=gitattributesAssign
 | 
						|
syn match gitattributesPrefix /[!-]/ contained
 | 
						|
            \ nextgroup=gitAttributesName
 | 
						|
syn match gitattributesAssign '=' contained
 | 
						|
            \ nextgroup=gitattributesBoolean,gitattributesString
 | 
						|
syn match gitattributesString /=\@1<=\S\+/ contained
 | 
						|
syn keyword gitattributesBoolean true false contained
 | 
						|
 | 
						|
" Macro
 | 
						|
syn match gitattributesMacro /^\s*\[attr\]\s*\S\+/
 | 
						|
            \ nextgroup=gitattributesAttribute skipwhite
 | 
						|
 | 
						|
hi def link gitattributesAssign Operator
 | 
						|
hi def link gitattributesBoolean Boolean
 | 
						|
hi def link gitattributesComment Comment
 | 
						|
hi def link gitattributesGlob Special
 | 
						|
hi def link gitattributesMacro Define
 | 
						|
hi def link gitattributesName Identifier
 | 
						|
hi def link gitattributesPrefix SpecialChar
 | 
						|
hi def link gitattributesRange Special
 | 
						|
hi def link gitattributesSeparator Delimiter
 | 
						|
hi def link gitattributesString String
 | 
						|
hi def link gitattributesTodo Todo
 | 
						|
 | 
						|
let b:current_syntax = 'gitattributes'
 | 
						|
 | 
						|
let &cpoptions = s:cpo_save
 | 
						|
unlet s:cpo_save
 |