view runtime/syntax/slpreg.vim @ 34665:ca2da8e8fb53 v9.1.0215

patch 9.1.0215: Half-page scrolling does not support smooth-scrolling Commit: https://github.com/vim/vim/commit/5a2e3ec9ac72b6e644fea4ebba7e632498296e2f Author: Luuk van Baal <luukvbaal@gmail.com> Date: Thu Mar 28 10:07:29 2024 +0100 patch 9.1.0215: Half-page scrolling does not support smooth-scrolling Problem: Page-wise scrolling with Ctrl-D/Ctrl-U implements it's own logic to change the topline and cursor. More logic than necessary for scrolling with Ctrl-F/Ctrl-B was removed in patch 9.1.0211. Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while staying backward compatible as much as possible. Restore some of the logic that determined how many lines will be scrolled (Luuk van Baal) closes: #14316 Signed-off-by: Luuk van Baal <luukvbaal@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 28 Mar 2024 10:15:08 +0100
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