mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04: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
 |