view runtime/syntax/slpreg.vim @ 30489:1e4d93103d01 v9.0.0580

patch 9.0.0580: no CI running for MacOS on M1 Commit: https://github.com/vim/vim/commit/1d61408af31667669edcbffc876e4eafdcacca96 Author: Philip H <47042125+pheiduck@users.noreply.github.com> Date: Sat Sep 24 19:32:11 2022 +0100 patch 9.0.0580: no CI running for MacOS on M1 Problem: No CI running for MacOS on M1. Solution: Add a cirrus CI task. (closes https://github.com/vim/vim/issues/11203)
author Bram Moolenaar <Bram@vim.org>
date Sat, 24 Sep 2022 20:45:03 +0200
parents 1218c5353e2b
children
line wrap: on
line source

" Vim syntax file
" Language:             RFC 2614 - An API for Service Location registration file
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
" Latest Revision:      2006-04-19

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword slpregTodo          contained TODO FIXME XXX NOTE

syn region  slpregComment       display oneline start='^[#;]' end='$'
                                \ contains=slpregTodo,@Spell

syn match   slpregBegin         display '^'
                                \ nextgroup=slpregServiceURL,
                                \ slpregComment

syn match   slpregServiceURL    contained display 'service:'
                                \ nextgroup=slpregServiceType

syn match   slpregServiceType   contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\='
                                \ nextgroup=slpregServiceSAPCol

syn match   slpregServiceSAPCol contained display ':'
                                \ nextgroup=slpregSAP

syn match   slpregSAP           contained '[^,]\+'
                                \ nextgroup=slpregLangSep
"syn match   slpregSAP           contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*'

syn match   slpregLangSep       contained display ','
                                \ nextgroup=slpregLang

syn match   slpregLang          contained display '\a\{1,8}\%(-\a\{1,8\}\)\='
                                \ nextgroup=slpregLTimeSep

syn match   slpregLTimeSep      contained display ','
                                \ nextgroup=slpregLTime

syn match   slpregLTime         contained display '\d\{1,5}'
                                \ nextgroup=slpregType,slpregUNewline

syn match   slpregType          contained display '\a[[:alpha:][:digit:]+-]*'
                                \ nextgroup=slpregUNewLine

syn match   slpregUNewLine      contained '\s*\n'
                                \ nextgroup=slpregScopes,slpregAttrList skipnl

syn keyword slpregScopes        contained scopes
                                \ nextgroup=slpregScopesEq

syn match   slpregScopesEq      contained '=' nextgroup=slpregScopeName

syn match   slpregScopeName     contained '[^(),\\!<=>[:cntrl:];*+ ]\+'
                                \ nextgroup=slpregScopeNameSep,
                                \ slpregScopeNewline

syn match   slpregScopeNameSep  contained ','
                                \ nextgroup=slpregScopeName

syn match   slpregScopeNewline  contained '\s*\n'
                                \ nextgroup=slpregAttribute skipnl

syn match   slpregAttribute     contained '[^(),\\!<=>[:cntrl:]* \t_]\+'
                                \ nextgroup=slpregAttributeEq,
                                \ slpregScopeNewline

syn match   slpregAttributeEq   contained '='
                                \ nextgroup=@slpregAttrValue

syn cluster slpregAttrValueCon  contains=slpregAttribute,slpregAttrValueSep

syn cluster slpregAttrValue     contains=slpregAttrIValue,slpregAttrSValue,
                                \ slpregAttrBValue,slpregAttrSSValue

syn match   slpregAttrSValue    contained display '[^(),\\!<=>~[:cntrl:]]\+'
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn match   slpregAttrSSValue   contained display '\\FF\%(\\\x\x\)\+'
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn match   slpregAttrIValue    contained display '[-]\=\d\+\>'
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn keyword slpregAttrBValue    contained true false
                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl

syn match   slpregAttrValueSep  contained display ','
                                \ nextgroup=@slpregAttrValue skipwhite skipnl

hi def link slpregTodo          Todo
hi def link slpregComment       Comment
hi def link slpregServiceURL    Type
hi def link slpregServiceType   slpregServiceURL
hi def link slpregServiceSAPCol slpregServiceURL
hi def link slpregSAP           slpregServiceURL
hi def link slpregDelimiter     Delimiter
hi def link slpregLangSep       slpregDelimiter
hi def link slpregLang          String
hi def link slpregLTimeSep      slpregDelimiter
hi def link slpregLTime         Number
hi def link slpregType          Type
hi def link slpregScopes        Identifier
hi def link slpregScopesEq      Operator
hi def link slpregScopeName     String
hi def link slpregScopeNameSep  slpregDelimiter
hi def link slpregAttribute     Identifier
hi def link slpregAttributeEq   Operator
hi def link slpregAttrSValue    String
hi def link slpregAttrSSValue   slpregAttrSValue
hi def link slpregAttrIValue    Number
hi def link slpregAttrBValue    Boolean
hi def link slpregAttrValueSep  slpregDelimiter

let b:current_syntax = "slpreg"

let &cpo = s:cpo_save
unlet s:cpo_save