mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 05:35:10 -07:00
91a2e7a571
Update runtime files
71b6d33976
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
|