view runtime/syntax/gitattributes.vim @ 33070:8362975375a4 v9.0.1822

patch 9.0.1822: Vim9: no check for duplicate members in extended classes Commit: https://github.com/vim/vim/commit/e3b6c78ddc4acf238af35d7fac585e7ead27392f Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Tue Aug 29 22:32:02 2023 +0200 patch 9.0.1822: Vim9: no check for duplicate members in extended classes Problem: Vim9: no check for duplicate members in extended classes Solution: Check for duplicate members in extended classes. Fix memory leak. closes: #12948 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author Christian Brabandt <cb@256bit.org>
date Tue, 29 Aug 2023 22:45:03 +0200
parents fee9eccee266
children
line wrap: on
line source

" 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