This commit is contained in:
Adam Stankiewicz
2021-03-01 13:44:50 +01:00
parent 4c10562d2c
commit cc63193ce8
62 changed files with 1166 additions and 1072 deletions

View File

@@ -11,6 +11,7 @@ syn keyword jenkinsfileDirective environment options parameters triggers stage t
syn keyword jenkinsfileOption contained buildDiscarder disableConcurrentBuilds overrideIndexTriggers skipDefaultCheckout nextgroup=jenkinsfileOptionParams
syn keyword jenkinsfileOption contained skipStagesAfterUnstable checkoutToSubdirectory timeout retry timestamps nextgroup=jenkinsfileOptionParams
syn keyword jenkinsfileOption contained disableResume newContainerPerStage preserveStashes quietPeriod parallelsAlwaysFailFast nextgroup=jenkinsfileOptionParams
syn region jenkinsfileOptionParams contained start='(' end=')' transparent contains=@groovyTop
syn match jenkinsfileOptionO /[a-zA-Z]\+([^)]*)/ contains=jenkinsfileOption,jenkinsfileOptionParams transparent containedin=groovyParenT1

View File

@@ -3,16 +3,18 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'basic', 'syntax/basic.vim')
endif
" Vim syntax file
" Language: BASIC
" Maintainer: Allan Kelly <allan@fruitloaf.co.uk>
" Last Change: 2011 Dec 25 by Thilo Six
" Language: BASIC
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Previous Maintainer: Allan Kelly <allan@fruitloaf.co.uk>
" Contributors: Thilo Six
" Last Change: 2015 Jan 10
" First version based on Micro$soft QBASIC circa 1989, as documented in
" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989.
" This syntax file not a complete implementation yet. Send suggestions to the
" maintainer.
" quit when a syntax file was already loaded
" Prelude {{{1
if exists("b:current_syntax")
finish
endif
@@ -20,7 +22,7 @@ endif
let s:cpo_save = &cpo
set cpo&vim
" A bunch of useful BASIC keywords
" Keywords {{{1
syn keyword basicStatement BEEP beep Beep BLOAD bload Bload BSAVE bsave Bsave
syn keyword basicStatement CALL call Call ABSOLUTE absolute Absolute
syn keyword basicStatement CHAIN chain Chain CHDIR chdir Chdir
@@ -120,32 +122,39 @@ syn keyword basicFunction RIGHT$ right$ Right$ RTRIM$ rtrim$ Rtrim$
syn keyword basicFunction SPACE$ space$ Space$ STR$ str$ Str$
syn keyword basicFunction STRING$ string$ String$ TIME$ time$ Time$
syn keyword basicFunction UCASE$ ucase$ Ucase$ VARPTR$ varptr$ Varptr$
syn keyword basicTodo contained TODO
"integer number, or floating point number without a dot.
" Numbers {{{1
" Integer number, or floating point number without a dot.
syn match basicNumber "\<\d\+\>"
"floating point number, with dot
" Floating point number, with dot
syn match basicNumber "\<\d\+\.\d*\>"
"floating point number, starting with a dot
" Floating point number, starting with a dot
syn match basicNumber "\.\d\+\>"
" String and Character contstants
syn match basicSpecial contained "\\\d\d\d\|\\."
syn region basicString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=basicSpecial
" String and Character constants {{{1
syn match basicSpecial "\\\d\d\d\|\\." contained
syn region basicString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=basicSpecial
syn region basicComment start="REM" end="$" contains=basicTodo
syn region basicComment start="^[ \t]*'" end="$" contains=basicTodo
" Line numbers {{{1
syn region basicLineNumber start="^\d" end="\s"
syn match basicTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1
" Data-type suffixes {{{1
syn match basicTypeSpecifier "[a-zA-Z0-9][$%&!#]"ms=s+1
" Used with OPEN statement
syn match basicFilenumber "#\d\+"
"syn sync ccomment basicComment
" Mathematical operators {{{1
" syn match basicMathsOperator "[<>+\*^/\\=-]"
syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR"
syn match basicMathsOperator "-\|=\|[:<>+\*^/\\]\|AND\|OR"
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
" Comments {{{1
syn keyword basicTodo TODO FIXME XXX NOTE contained
syn region basicComment start="^\s*\zsREM\>" start="\%(:\s*\)\@<=REM\>" end="$" contains=basicTodo
syn region basicComment start="'" end="$" contains=basicTodo
"syn sync ccomment basicComment
" Default Highlighting {{{1
hi def link basicLabel Label
hi def link basicConditional Conditional
hi def link basicRepeat Repeat
@@ -154,17 +163,18 @@ hi def link basicNumber Number
hi def link basicError Error
hi def link basicStatement Statement
hi def link basicString String
hi def link basicComment Comment
hi def link basicSpecial Special
hi def link basicComment Comment
hi def link basicSpecial Special
hi def link basicTodo Todo
hi def link basicFunction Identifier
hi def link basicTypeSpecifier Type
hi def link basicFilenumber basicTypeSpecifier
hi def link basicFunction Identifier
hi def link basicTypeSpecifier Type
hi def link basicFilenumber basicTypeSpecifier
"hi basicMathsOperator term=bold cterm=bold gui=bold
" Postscript {{{1
let b:current_syntax = "basic"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:

View File

@@ -13,9 +13,11 @@ syntax region typescriptTemplateSubstitution matchgroup=typescriptTemplateSB
\ contained
syntax region typescriptString
syntax region typescriptString
\ start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+
\ contains=typescriptSpecial,@Spell
\ nextgroup=@typescriptSymbols
\ skipwhite skipempty
\ extend
syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)"
@@ -42,4 +44,4 @@ syntax match typescriptNumber /\<0[bB][01][01_]*\>/ nextgroup=@typescript
syntax match typescriptNumber /\<0[oO][0-7][0-7_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
syntax match typescriptNumber /\<0[xX][0-9a-fA-F][0-9a-fA-F_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty
syntax match typescriptNumber /\<\%(\d[0-9_]*\%(\.\d[0-9_]*\)\=\|\.\d[0-9_]*\)\%([eE][+-]\=\d[0-9_]*\)\=\>/
\ nextgroup=typescriptSymbols skipwhite skipempty
\ nextgroup=@typescriptSymbols skipwhite skipempty

View File

@@ -132,7 +132,7 @@ syntax region typescriptGenericFunc matchgroup=typescriptTypeBrackets
\ contained skipwhite skipnl
syntax region typescriptFuncType matchgroup=typescriptParens
\ start=/(/ end=/)\s*=>/me=e-2
\ start=/(\(\k\+:\|)\)\@=/ end=/)\s*=>/me=e-2
\ contains=@typescriptParameterList
\ nextgroup=typescriptFuncTypeArrow
\ contained skipwhite skipnl oneline
@@ -142,7 +142,6 @@ syntax match typescriptFuncTypeArrow /=>/
\ containedin=typescriptFuncType
\ contained skipwhite skipnl
syntax keyword typescriptConstructorType new
\ nextgroup=@typescriptFunctionType
\ contained skipwhite skipnl

View File

@@ -5,7 +5,7 @@ endif
" Vim syntax file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2019 Nov 29
" Last Change: 2021 Jan 11
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@@ -17,6 +17,9 @@ set cpo&vim
let s:ft = matchstr(&ft, '^\([^.]\)\+')
" check if this was included from cpp.vim
let s:in_cpp_family = exists("b:filetype_in_cpp_family")
" Optional embedded Autodoc parsing
" To enable it add: let g:c_autodoc = 1
" to your .vimrc
@@ -59,7 +62,7 @@ if !exists("c_no_cformat")
endif
" cCppString: same as cString, but ends at end of line
if s:ft ==# "cpp" && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
if s:in_cpp_family && !exists("cpp_no_cpp11") && !exists("c_no_cformat")
" ISO C++11
syn region cString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend
syn region cCppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell
@@ -91,7 +94,7 @@ syn match cSpecialCharacter display "L\='\\\o\{1,3}'"
syn match cSpecialCharacter display "'\\x\x\{1,2}'"
syn match cSpecialCharacter display "L'\\x\x\+'"
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:ft ==# "cpp" && !exists("cpp_no_cpp11"))
if (s:ft ==# "c" && !exists("c_no_c11")) || (s:in_cpp_family && !exists("cpp_no_cpp11"))
" ISO C11 or ISO C++ 11
if exists("c_no_cformat")
syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend
@@ -134,7 +137,7 @@ endif
" But avoid matching <::.
syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom
if exists("c_no_curly_error")
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
if s:in_cpp_family && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
@@ -148,7 +151,7 @@ if exists("c_no_curly_error")
syn match cErrInParen display contained "^[{}]\|^<%\|^%>"
endif
elseif exists("c_no_bracket_error")
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
if s:in_cpp_family && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
@@ -162,7 +165,7 @@ elseif exists("c_no_bracket_error")
syn match cErrInParen display contained "[{}]\|<%\|%>"
endif
else
if s:ft ==# 'cpp' && !exists("cpp_no_cpp11")
if s:in_cpp_family && !exists("cpp_no_cpp11")
syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell
@@ -276,12 +279,13 @@ if exists("c_gnu")
syn keyword cType __label__ __complex__ __volatile__
endif
syn keyword cStructure struct union enum typedef
syn keyword cTypedef typedef
syn keyword cStructure struct union enum
syn keyword cStorageClass static register auto volatile extern const
if exists("c_gnu")
syn keyword cStorageClass inline __attribute__
endif
if !exists("c_no_c99") && s:ft !=# 'cpp'
if !exists("c_no_c99") && !s:in_cpp_family
syn keyword cStorageClass inline restrict
endif
if !exists("c_no_c11")
@@ -315,8 +319,7 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
if exists("c_gnu")
syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ __func__
endif
syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__
syn keyword cConstant __STDC_VERSION__
syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ __STDC_VERSION__ __STDC_HOSTED__
syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX
syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX
syn keyword cConstant CHAR_MIN INT_MIN LONG_MIN SHRT_MIN
@@ -350,6 +353,8 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF FOPEN_MAX FILENAME_MAX L_tmpnam
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET TMP_MAX stderr stdin stdout EXIT_FAILURE EXIT_SUCCESS RAND_MAX
" used in assert.h
syn keyword cConstant NDEBUG
" POSIX 2001
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG SIGVTALRM SIGXCPU SIGXFSZ
" non-POSIX signals
@@ -422,7 +427,7 @@ endif
syn cluster cLabelGroup contains=cUserLabel
syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup
if s:ft ==# 'cpp'
if s:in_cpp_family
syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup
else
@@ -479,6 +484,7 @@ hi def link cSpecialError cError
hi def link cCurlyError cError
hi def link cOperator Operator
hi def link cStructure Structure
hi def link cTypedef Structure
hi def link cStorageClass StorageClass
hi def link cInclude Include
hi def link cPreProc PreProc

View File

@@ -25,7 +25,7 @@ syn match cabalDocBulletPoint "^\s\+\*"
syn match cabalDocHeadline "^\s\+=.*$"
syn match cabalDocCode "^\s\+>.*$"
syn match cabalDocNewline "^\s\+\.\s*$"
syn match cabalSection "^\c\(executable\|library\|flag\|source-repository\|test-suite\|benchmark\)"
syn match cabalSection "^\c\(executable\|library\|flag\|source-repository\|test-suite\|benchmark\|common\)"
syn match cabalEntry "^\s*[A-Za-z][a-zA-Z\-]*:" contains=cabalIdentifier,cabalColon
syn region cabalDescription start="^\s*[dD]escription:" end="^\<" keepend

View File

@@ -33,6 +33,7 @@ syn keyword carpSyntax str* println* break doc sig hidden private
syn keyword carpSyntax while-do const-assert save-docs defproject
syn keyword carpSyntax relative-include not-on-windows load-and-use
syn keyword carpSyntax deftest
syn keyword carpSyntax quasiquote unquote unquote-splicing
syn match carpSyntax "\vc(a|d){1,4}r"
syn keyword carpFunc λ
@@ -55,7 +56,7 @@ syn keyword carpFunc string-join free sleep-seconds sleep-micros substitute
syn keyword carpFunc neg to-float match matches? find global-match match-str
syn keyword carpFunc from-float tan asin atan cosh sinh tanh exp frexp ldexp
syn keyword carpFunc log log10 modf pow ceil clamp approx refstr foreach
syn keyword carpFunc => ==> repeat nth replicate range raw aset aset!
syn keyword carpFunc -> --> => ==> repeat nth replicate range raw aset aset!
syn keyword carpFunc push-back pop-back sort index-of element-count
syn keyword carpFunc apply unsafe-from from just? nothing? ptr from-ptr
syn keyword carpFunc map and-then unwrap-or-zero or-else unwrap-or-else
@@ -126,6 +127,13 @@ syn match carpComment /;.*$/ contains=@Spell
syn region carpQuoted matchgroup=Delimiter start="#['`]"rs=s+2 end=![ \t()\[\]";]!re=e-1,me=e-1 contains=@carpQuotedStuff,@carpQuotedOrNormal
syn region carpQuoted matchgroup=Delimiter start="#['`]("rs=s+3 matchgroup=Delimiter end=")"re=e-1 contains=@carpQuotedStuff,@carpQuotedOrNormal
syn region carpUnquote matchgroup=Delimiter start="%"rs=s+1 end=![ \t\[\]()";]!re=e-1,me=e-1 contained contains=@carpNormal
syn region carpUnquote matchgroup=Delimiter start="%@"rs=s+2 end=![ \t\[\]()";]!re=e-1,me=e-1 contained contains=@carpNormal
syn region carpUnquote matchgroup=Delimiter start="%@("rs=s+2 end=")"re=e-1 contained contains=@carpNormal
syn region carpUnquote matchgroup=Delimiter start="%("rs=s+2 end=")"re=e-1 contained contains=@carpNormal
syn cluster carpQuotedStuff add=carpUnquote
syn cluster carpNormal add=carpQuoted,carpComment
syn cluster carpQuotedOrNormal add=carpComment

View File

@@ -6,13 +6,16 @@ endif
" Language: C++
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
" Last Change: 2017 Jun 05
" Last Change: 2021 Jan 12
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" inform C syntax that the file was included from cpp.vim
let b:filetype_in_cpp_family = 1
" Read the C syntax to start with
runtime! syntax/c.vim
unlet b:current_syntax
@@ -59,12 +62,6 @@ if !exists("cpp_no_cpp14")
syn case match
endif
" C++ 17 extensions
if !exists("cpp_no_cpp17")
syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1
syn match cppCast "\<reinterpret_pointer_cast\s*$"
endif
" C++ 20 extensions
if !exists("cpp_no_cpp20")
syn keyword cppStatement co_await co_return co_yield requires
@@ -74,6 +71,12 @@ if !exists("cpp_no_cpp20")
syn keyword cppModule import module export
endif
" C++ 17 extensions
if !exists("cpp_no_cpp17")
syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1
syn match cppCast "\<reinterpret_pointer_cast\s*$"
endif
" The minimum and maximum operators in GNU C++
syn match cppMinMax "[<>]?"

View File

@@ -95,8 +95,6 @@ syn match crystalStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C
syn region crystalInterpolation matchgroup=crystalInterpolationDelim start="#{" end="}" contained contains=TOP
syn region crystalNoInterpolation start="\\#{" end="}" contained
syn match crystalNoInterpolation "\\#{" display contained
syn match crystalNoInterpolation "\\#\%(\$\|@@\=\)\w\+" display contained
syn match crystalNoInterpolation "\\#\$\W" display contained
syn match crystalDelimEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE
@@ -261,10 +259,10 @@ syn cluster crystalDeclaration contains=crystalAliasDeclaration,crystalAliasDecl
" Note: the following keywords have already been defined:
" begin case class def do end for if module unless until while
syn match crystalControl "\<\%(break\|next\|rescue\|return\)\>[?!]\@!"
syn match crystalKeyword "\<\%(super\|previous_def\|yield\|of\|with\|uninitialized\|union\)\>[?!]\@!"
syn match crystalKeyword "\<\%(super\|previous_def\|yield\|of\|with\|uninitialized\|union\|out\)\>[?!]\@!"
syn match crystalBoolean "\<\%(true\|false\)\>[?!]\@!"
syn match crystalPseudoVariable "\<\%(nil\|__DIR__\|__FILE__\|__LINE__\|__END_LINE__\)\>[?!]\@!" " TODO: reorganise
syn match crystalPseudoVariable "\<self\>"
syn match crystalPseudoVariable "\<self\>[?!]\@!"
" Expensive Mode - match 'end' with the appropriate opening keyword for syntax
" based folding and special highlighting of module/class/method definitions

View File

@@ -1,4 +1,4 @@
if polyglot#init#is_disabled(expand('<sfile>:p'), 'puppet', 'syntax/embeddedpuppet.vim')
if polyglot#init#is_disabled(expand('<sfile>:p'), 'puppet', 'syntax/epuppet.vim')
finish
endif
@@ -29,5 +29,5 @@ syn region ePuppetComment matchgroup=ePuppetDelimiter start="<%-\=#" end=
hi def link ePuppetDelimiter PreProc
hi def link ePuppetComment Comment
let b:current_syntax = "embeddedpuppet"
let b:current_syntax = "epuppet"

View File

@@ -6,9 +6,9 @@ endif
" Language: Groovy
" Original Author: Alessio Pace <billy.corgan AT tiscali.it>
" Maintainer: Tobias Rapp <yahuxo+vim AT mailbox.org>
" Version: 0.1.17
" Version: 0.1.18
" URL: http://www.vim.org/scripts/script.php?script_id=945
" Last Change: 2020 May 26
" Last Change: 2021 Feb 03
" THE ORIGINAL AUTHOR'S NOTES:
"
@@ -257,7 +257,8 @@ if exists("groovy_regex_strings")
endif
" syn region groovyELExpr start=+${+ end=+}+ keepend contained
syn match groovyELExpr /\${.\{-}}/ contained
syn match groovyELExpr /\$[a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE_][a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE0-9_.]*/ contained
" Fix: force use of the NFA regexp engine (2), see GitHub issue #7280
syn match groovyELExpr /\%#=2\$[a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE_][a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE0-9_.]*/ contained
hi def link groovyELExpr Identifier
" TODO: better matching. I am waiting to understand how it really works in groovy

View File

@@ -40,7 +40,12 @@ syn match haskellTypeSig
\ haskellParens
syn keyword haskellWhere where
syn keyword haskellLet let
syn match HaskellDerive "\<deriving\>\(\s\+\<\(anyclass\|instance\|newtype\|stock\)\>\)\?"
syn keyword haskellDeriveKeyword deriving anyclass instance newtype stock via contained
syn match haskellDerive "deriving\(\s\+instance\)\?\(\s\+anyclass\|\s\+newtype\|\s\+stock\|\s\+.\{-}\_s\+via\)\?"
\ contains=
\ haskellDeriveKeyword,
\ haskellParens,
\ haskellType
syn keyword haskellDeclKeyword module class instance newtype in
syn match haskellDecl "\<\(type\|data\)\>\s\+\(\<family\>\)\?"
syn keyword haskellDefault default
@@ -67,8 +72,8 @@ if get(g:, 'haskell_enable_static_pointers', 0)
syn keyword haskellStatic static
endif
syn keyword haskellConditional if then else
syn match haskellNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>\|\<0[bB][10]\+\>"
syn match haskellFloat "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>"
syn match haskellNumber "\<[0-9]\+\>\|\<[0-9_]\+\>\|\<0[xX][0-9a-fA-F_]\+\>\|\<0[oO][0-7_]\+\>\|\<0[bB][10_]\+\>"
syn match haskellFloat "\<[0-9]\+\.[0-9_]\+\([eE][-+]\=[0-9_]\+\)\=\>"
syn match haskellSeparator "[,;]"
syn region haskellParens matchgroup=haskellDelimiter start="(" end=")" contains=TOP,haskellTypeSig,@Spell
syn region haskellBrackets matchgroup=haskellDelimiter start="\[" end="]" contains=TOP,haskellTypeSig,@Spell
@@ -94,7 +99,7 @@ syn match haskellLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$"
syn match haskellBacktick "`[A-Za-z_][A-Za-z0-9_\.']*#\?`"
syn region haskellString start=+"+ skip=+\\\\\|\\"+ end=+"+
\ contains=@Spell
syn match haskellIdentifier "[_a-z][a-zA-z0-9_']*" contained
syn match haskellIdentifier "[_a-z][a-zA-Z0-9_']*" contained
syn match haskellChar "\<'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'\>"
syn match haskellType "\<[A-Z][a-zA-Z0-9_']*\>"
syn region haskellBlockComment start="{-" end="-}"
@@ -110,7 +115,7 @@ syn keyword haskellTodo TODO FIXME contained
syn match haskellShebang "\%^#!.*$"
if !get(g:, 'haskell_disable_TH', 0)
syn match haskellQuasiQuoted "." containedin=haskellQuasiQuote contained
syn region haskellQuasiQuote matchgroup=haskellTH start="\[[_a-zA-Z][a-zA-z0-9._']*|" end="|\]"
syn region haskellQuasiQuote matchgroup=haskellTH start="\[[_a-zA-Z][a-zA-Z0-9._']*|" end="|\]"
syn region haskellTHBlock matchgroup=haskellTH start="\[\(d\|t\|p\)\?|" end="|]" contains=TOP
syn region haskellTHDoubleBlock matchgroup=haskellTH start="\[||" end="||]" contains=TOP
endif
@@ -165,13 +170,13 @@ highlight def link haskellType Type
highlight def link haskellImportKeywords Include
if get(g:, 'haskell_classic_highlighting', 0)
highlight def link haskellDeclKeyword Keyword
highlight def link HaskellDerive Keyword
highlight def link haskellDeriveKeyword Keyword
highlight def link haskellDecl Keyword
highlight def link haskellWhere Keyword
highlight def link haskellLet Keyword
else
highlight def link haskellDeclKeyword Structure
highlight def link HaskellDerive Structure
highlight def link haskellDeriveKeyword Structure
highlight def link haskellDecl Structure
highlight def link haskellWhere Structure
highlight def link haskellLet Structure

View File

@@ -4,11 +4,11 @@ endif
" Vim syntax file
" Language: HTML
" Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Jorge Maldonado Ventura <jorgesumle@freakspot.net>
" Previous Maintainer: Claudio Fleiner <claudio@fleiner.com>
" Repository: https://notabug.org/jorgesumle/vim-html-syntax
" Last Change: 2020 Mar 17
" Included patch from Florian Breisch to add the summary element
" Last Change: 2021 Feb 25
" Included patch #7900 to fix comments
"
" Please check :help html.vim for some comments and a description of the options
@@ -145,9 +145,21 @@ syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
if exists("html_wrong_comments")
syn region htmlComment start=+<!--+ end=+--\s*>+ contains=@Spell
else
syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentPart,htmlCommentError,@Spell
syn match htmlCommentError contained "[^><!]"
syn region htmlCommentPart contained start=+--+ end=+--\s*+ contains=@htmlPreProc,@Spell
" The HTML 5.2 syntax 8.2.4.41-42: bogus comment is parser error; browser skips until next &gt;
" Note: must stand first to get lesser :syn-priority
syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentError
" Normal comment opening <!-- ...>
syn region htmlComment start=+<!--+ end=+>+ contains=htmlCommentPart,@Spell
" Idem 8.2.4.43-44: <!--> and <!---> are parser errors; browser treats as comments
syn match htmlComment "<!---\?>" contains=htmlCommentError
" Idem 8.2.4.51: any number of consecutive dashes within comment is okay; --> closes comment
" Idem 8.2.4.52: closing comment by dash-dash-bang (--!>) is error ignored by parser(!); closes comment
syn region htmlCommentPart contained start=+--+ end=+--!\?>+me=e-1 contains=htmlCommentNested,@htmlPreProc,@Spell
" Idem 8.2.4.49: opening nested comment <!-- is parser error, ignored by browser, except <!--> is all right
syn match htmlCommentNested contained "<!--[^>]"me=e-1
syn match htmlCommentNested contained "<!--->"me=e-3
syn match htmlCommentNested contained "<!---\?!>"me=e-4
syn match htmlCommentError contained "[^><!]"
endif
syn region htmlComment start=+<!DOCTYPE+ keepend end=+>+
@@ -321,6 +333,7 @@ hi def link htmlStatement Statement
hi def link htmlComment Comment
hi def link htmlCommentPart Comment
hi def link htmlValue String
hi def link htmlCommentNested htmlCommentError
hi def link htmlCommentError htmlError
hi def link htmlTagError htmlError
hi def link htmlEvent javaScript

View File

@@ -143,7 +143,7 @@ exec 'syntax region juliaConditionalEBlock matchgroup=juliaConditional transpar
exec 'syntax region juliaWhileBlock matchgroup=juliaRepeat start="'.s:nodot.'\<while\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaForBlock matchgroup=juliaRepeat start="'.s:nodot.'\<for\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaOuter fold'
exec 'syntax region juliaBeginBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<begin\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaFunctionBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<function\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaFunctionBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<function\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions,juliaFunctionDef,juliaFunctionDefP fold'
exec 'syntax region juliaMacroBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<macro\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaQuoteBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<quote\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
exec 'syntax region juliaStructBlock matchgroup=juliaBlKeyword start="'.s:nodot.'\<struct\>" end="'.s:nodot.'\<end\>" contains=@juliaExpressions fold'
@@ -201,6 +201,10 @@ syntax match juliaConstIO display "\<\%(std\%(out\|in\|err\)\|devnull\)\>"
syntax match juliaConstC display "\<\%(C_NULL\)\>"
syntax match juliaConstGeneric display "\<\%(nothing\|Main\|undef\|missing\)\>"
exec 'syntax match juliaFunctionDef contained transparent "\%(\<function\s\+\)\@'.s:d(20).'<=' . s:idregex . '\%(\.' . s:idregex . '\)*\ze\s\+\%(end\>\|$\)" contains=juliaFunctionName'
exec 'syntax region juliaFunctionDefP contained transparent start="\%(\<function\s\+\)\@'.s:d(20).'<=' . s:idregex . '\%(\.' . s:idregex . '\)*\s*(" end=")\@'.s:d(1).'<=" contains=juliaFunctionName,juliaParBlock'
exec 'syntax match juliaFunctionName contained "\%(\<function\s\+\)\@'.s:d(20).'<=' . s:idregex . '\%(\.' . s:idregex . '\)*"'
syntax match juliaPossibleMacro transparent "@" contains=juliaMacroCall,juliaMacroCallP,juliaPrintfMacro
exec 'syntax match juliaMacro contained "@' . s:idregex . '\%(\.' . s:idregex . '\)*"'
@@ -369,7 +373,8 @@ hi def link juliaComma juliaNone
hi def link juliaColon juliaOperator
hi def link juliaMacroName juliaMacro
hi def link juliaFunctionName juliaFunction
hi def link juliaMacroName juliaMacro
hi def link juliaKeyword Keyword
@@ -423,6 +428,7 @@ hi def link juliaComprehensionIf Keyword
hi def link juliaDollarVar Identifier
hi def link juliaFunction Function
hi def link juliaMacro Macro
hi def link juliaSymbol Identifier
hi def link juliaSymbolS Identifier

View File

@@ -5,7 +5,7 @@ endif
" Vim syntax file
" Language: Kotlin
" Maintainer: Alexander Udalov
" Latest Revision: 13 July 2020
" Latest Revision: 17 February 2021
if exists('b:current_syntax')
finish
@@ -33,21 +33,21 @@ syn keyword ktType ExperimentalTime ExperimentalTypeInference ExperimentalUnsign
syn keyword ktType FileWalkDirection Float FloatArray FloatIterator Function Function0 Function1 Function10 Function11 Function12 Function13 Function14 Function15 Function16
syn keyword ktType Function17 Function18 Function19 Function2 Function20 Function21 Function22 Function3 Function4 Function5 Function6 Function7 Function8 Function9 FunctionN
syn keyword ktType Getter Grouping HashMap HashSet IllegalArgumentException IllegalStateException IndexOutOfBoundsException IndexedValue Int IntArray IntIterator IntProgression
syn keyword ktType IntRange InvocationKind Iterable Iterator JsExport JsName JvmDefault JvmDefaultWithoutCompatibility JvmField JvmMultifileClass JvmName JvmOverloads JvmStatic
syn keyword ktType JvmSuppressWildcards JvmSynthetic JvmWildcard KAnnotatedElement KCallable KClass KClassifier KDeclarationContainer KFunction KMutableProperty KMutableProperty0
syn keyword ktType KMutableProperty1 KMutableProperty2 KParameter KProperty KProperty0 KProperty1 KProperty2 KType KTypeParameter KTypeProjection KVariance KVisibility Key Kind
syn keyword ktType KotlinNullPointerException KotlinReflectionNotSupportedError KotlinVersion Lazy LazyThreadSafetyMode Level LinkedHashMap LinkedHashSet List ListIterator Long
syn keyword ktType LongArray LongIterator LongProgression LongRange Map MatchGroup MatchGroupCollection MatchNamedGroupCollection MatchResult Metadata Monotonic MustBeDocumented
syn keyword ktType MutableCollection MutableEntry MutableIterable MutableIterator MutableList MutableListIterator MutableMap MutableSet NoSuchElementException NoSuchFileException
syn keyword ktType NoWhenBranchMatchedException NotImplementedError Nothing NullPointerException Number NumberFormatException ObservableProperty OnErrorAction OptIn
syn keyword ktType OptionalExpectation OverloadResolutionByLambdaReturnType Pair ParameterName PropertyDelegateProvider PublishedApi PurelyImplements Random RandomAccess
syn keyword ktType IntRange InvocationKind Iterable Iterator JsExport JsName JvmDefault JvmDefaultWithoutCompatibility JvmField JvmInline JvmMultifileClass JvmName JvmOverloads
syn keyword ktType JvmRecord JvmStatic JvmSuppressWildcards JvmSynthetic JvmWildcard KAnnotatedElement KCallable KClass KClassifier KDeclarationContainer KFunction KMutableProperty
syn keyword ktType KMutableProperty0 KMutableProperty1 KMutableProperty2 KParameter KProperty KProperty0 KProperty1 KProperty2 KType KTypeParameter KTypeProjection KVariance
syn keyword ktType KVisibility Key Kind KotlinNullPointerException KotlinReflectionNotSupportedError KotlinVersion Lazy LazyThreadSafetyMode Level LinkedHashMap LinkedHashSet List
syn keyword ktType ListIterator Long LongArray LongIterator LongProgression LongRange Map MatchGroup MatchGroupCollection MatchNamedGroupCollection MatchResult Metadata Monotonic
syn keyword ktType MustBeDocumented MutableCollection MutableEntry MutableIterable MutableIterator MutableList MutableListIterator MutableMap MutableSet NoSuchElementException
syn keyword ktType NoSuchFileException NoWhenBranchMatchedException NotImplementedError Nothing NullPointerException Number NumberFormatException ObservableProperty OnErrorAction
syn keyword ktType OptIn OptionalExpectation OverloadResolutionByLambdaReturnType Pair ParameterName PropertyDelegateProvider PublishedApi PurelyImplements Random RandomAccess
syn keyword ktType ReadOnlyProperty ReadWriteProperty Regex RegexOption Repeatable ReplaceWith RequiresOptIn RestrictsSuspension Result Retention Returns ReturnsNotNull
syn keyword ktType RuntimeException Sequence SequenceScope Set Setter SharedImmutable Short ShortArray ShortIterator SimpleEffect SinceKotlin Strictfp String StringBuilder Suppress
syn keyword ktType Synchronized Target TestTimeSource ThreadLocal Throwable Throws TimeMark TimeSource TimedValue Transient Triple TypeCastException Typography UByte UByteArray
syn keyword ktType UByteIterator UInt UIntArray UIntIterator UIntProgression UIntRange ULong ULongArray ULongIterator ULongProgression ULongRange UShort UShortArray UShortIterator
syn keyword ktType UninitializedPropertyAccessException Unit UnsafeVariance UnsupportedOperationException UseExperimental Volatile
syn keyword ktModifier annotation companion enum inner internal private protected public abstract final open override sealed vararg dynamic expect actual
syn keyword ktModifier annotation companion enum inner abstract final open override sealed vararg dynamic expect actual
syn keyword ktStructure class object interface typealias fun val var constructor init
syn keyword ktReservedKeyword typeof
@@ -55,7 +55,13 @@ syn keyword ktReservedKeyword typeof
syn keyword ktBoolean true false
syn keyword ktConstant null
syn keyword ktModifier data tailrec lateinit reified external inline noinline crossinline const operator infix suspend
syn keyword ktModifier reified external inline noinline crossinline
syn match ktModifier "\v<(data|value)>\ze\@=.*<class>"
syn match ktModifier "\v<(tailrec|operator|infix|suspend)>\ze\@=.*<fun>"
syn match ktModifier "\v<(const)>\ze\@=.*<val>"
syn match ktModifier "\v<(lateinit)>\ze\@=.*<var>"
syn match ktModifier "\v<(internal|private|protected|public)>\ze\@=.*<(class|fun|val|var|typealias)>"
syn match ktOperator "\v\?:|::|\<\=? | \>\=?|[!=]\=\=?|<as>\??|[-!%&*+/|]"

View File

@@ -4,12 +4,12 @@ endif
" Vim syntax file
" Language: Haskell with literate comments, Bird style,
" TeX style and plain text surrounding
" Markdown style, TeX style and plain text surrounding
" \begin{code} \end{code} blocks
" Maintainer: Haskell Cafe mailinglist <haskell-cafe@haskell.org>
" Original Author: Arthur van Leeuwen <arthurvl@cs.uu.nl>
" Last Change: 2010 Apr 11
" Version: 1.04
" Last Change: 2020 Feb 25
" Version: 1.05
"
" Thanks to Ian Lynagh for thoughtful comments on initial versions and
" for the inspiration for writing this in the first place.
@@ -48,8 +48,8 @@ endif
" First off, see if we can inherit a user preference for lhs_markup
if !exists("b:lhs_markup")
if exists("lhs_markup")
if lhs_markup =~ '\<\%(tex\|none\)\>'
let b:lhs_markup = matchstr(lhs_markup,'\<\%(tex\|none\)\>')
if lhs_markup =~ '\<\%(tex\|md\|none\)\>'
let b:lhs_markup = matchstr(lhs_markup,'\<\%(tex\|md\|none\)\>')
else
echohl WarningMsg | echo "Unknown value of lhs_markup" | echohl None
let b:lhs_markup = "unknown"
@@ -58,7 +58,7 @@ if !exists("b:lhs_markup")
let b:lhs_markup = "unknown"
endif
else
if b:lhs_markup !~ '\<\%(tex\|none\)\>'
if b:lhs_markup !~ '\<\%(tex\|md\|none\)\>'
let b:lhs_markup = "unknown"
endif
endif
@@ -78,6 +78,8 @@ call cursor(1,1)
if b:lhs_markup == "unknown"
if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub\)*section\|\\chapter|\\part','W') != 0
let b:lhs_markup = "tex"
elseif search('```haskell','W') != 0
let b:lhs_markup = "md"
else
let b:lhs_markup = "plain"
endif
@@ -90,6 +92,10 @@ if b:lhs_markup == "tex"
" Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
setlocal isk+=_
syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
elseif b:lhs_markup == "md"
runtime! syntax/markdown.vim
unlet b:current_syntax
syntax cluster lhsTeXContainer contains=markdown.*
else
syntax cluster lhsTeXContainer contains=.*
endif
@@ -100,9 +106,12 @@ syntax include @haskellTop syntax/haskell.vim
syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,beginCodeBegin containedin=@lhsTeXContainer
syntax region lhsHaskellMDBlock start="^```haskell$" matchgroup=NONE end="^```$" keepend contains=@haskellTop,lhsMarkdownCode containedin=@lhsTeXContainer
syntax match lhsBirdTrack "^>" contained
syntax match lhsMarkdownCode "^\(```haskell\|^```\)$" contained
syntax match beginCodeBegin "^\\begin" nextgroup=beginCodeCode contained
syntax region beginCodeCode matchgroup=texDelimiter start="{" end="}"
@@ -111,6 +120,8 @@ syntax region beginCodeCode matchgroup=texDelimiter start="{" end="}"
hi def link lhsBirdTrack Comment
hi def link lhsMarkdownCode Comment
hi def link beginCodeBegin texCmdName
hi def link beginCodeCode texSection

View File

@@ -8,6 +8,7 @@ endif
" Latest Revision: 2008-06-29
" Changes: 2008-06-29 support for RFC3339 tuimestamps James Vega
" 2016 Jan 19: messagesDate changed by Bram
" 2021 Jan 27: messagesHourRFC3339 changed from #946
if exists("b:current_syntax")
finish
@@ -30,7 +31,7 @@ syn match messagesDateRFC3339 contained display '\d\{4}-\d\d-\d\d'
syn match messagesRFC3339T contained display '\cT'
\ nextgroup=messagesHourRFC3339
syn match messagesHourRFC3339 contained display '\c\d\d:\d\d:\d\d\(\.\d\+\)\=\([+-]\d\d:\d\d\|Z\)'
syn match messagesHourRFC3339 contained display '\c\d\d:\d\d:\d\d\(\.\d\+\)\=\([+-]\d\d:\d\d\|Z\)\s*'
\ nextgroup=messagesHost
syn match messagesHost contained display '\S*\s*'

View File

@@ -2280,7 +2280,6 @@ hi link ngxComment Comment
hi link ngxVariable Identifier
hi link ngxVariableBlock Identifier
hi link ngxVariableString PreProc
hi link ngxBlock Normal
hi link ngxString String
hi link ngxIPaddr Delimiter
hi link ngxBoolean Boolean

View File

@@ -88,10 +88,10 @@ syn cluster ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlMo
" Enclosing delimiters
syn region ocamlEncl transparent matchgroup=ocamlKeyword start="(" matchgroup=ocamlKeyword end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr
syn region ocamlEncl transparent matchgroup=ocamlKeyword start="{" matchgroup=ocamlKeyword end="}" contains=ALLBUT,@ocamlContained,ocamlBraceErr
syn region ocamlEncl transparent matchgroup=ocamlKeyword start="\[" matchgroup=ocamlKeyword end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr
syn region ocamlEncl transparent matchgroup=ocamlKeyword start="\[|" matchgroup=ocamlKeyword end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr
syn region ocamlEncl transparent matchgroup=ocamlKeywordDelimiter start="(" matchgroup=ocamlKeywordDelimiter end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr
syn region ocamlEncl transparent matchgroup=ocamlKeywordDelimiter start="{" matchgroup=ocamlKeywordDelimiter end="}" contains=ALLBUT,@ocamlContained,ocamlBraceErr
syn region ocamlEncl transparent matchgroup=ocamlKeywordDelimiter start="\[" matchgroup=ocamlKeywordDelimiter end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr
syn region ocamlEncl transparent matchgroup=ocamlKeywordDelimiter start="\[|" matchgroup=ocamlKeywordDelimiter end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr
" Comments
@@ -196,10 +196,10 @@ syn keyword ocamlType array bool char exn float format format4
syn keyword ocamlType int int32 int64 lazy_t list nativeint option
syn keyword ocamlType bytes string unit
syn match ocamlConstructor "(\s*)"
syn match ocamlConstructor "\[\s*\]"
syn match ocamlConstructor "\[|\s*>|]"
syn match ocamlConstructor "\[<\s*>\]"
syn match ocamlConstructorDelimiter "(\s*)"
syn match ocamlConstructorDelimiter "\[\s*\]"
syn match ocamlConstructorDelimiter "\[|\s*>|]"
syn match ocamlConstructorDelimiter "\[<\s*>\]"
syn match ocamlConstructor "\u\(\w\|'\)*\>"
" Polymorphic variants
@@ -343,11 +343,13 @@ hi def link ocamlStructEncl ocamlModule
hi def link ocamlScript Include
hi def link ocamlConstructor Constant
hi def link ocamlConstructorDelimiter ocamlConstructor
hi def link ocamlVal Keyword
hi def link ocamlModPreRHS Keyword
hi def link ocamlMPRestr2 Keyword
hi def link ocamlKeyword Keyword
hi def link ocamlKeywordDelimiter ocamlKeyword
hi def link ocamlMethod Include
hi def link ocamlArrow Keyword
hi def link ocamlKeyChar Keyword

View File

@@ -9,7 +9,7 @@ endif
" License: Vim license (see `:help license`)
" Based on PostgreSQL 13.1
" Automatically generated on 2021-01-13 at 20:54:21
" Automatically generated on 2021-02-07 at 10:45:10
if exists("b:current_syntax")
finish
@@ -17,7 +17,11 @@ endif
syn case ignore
syn sync minlines=100
syn iskeyword @,48-57,192-255,_
if has('patch-7.4.1142')
syn iskeyword @,48-57,192-255,_
else
setlocal iskeyword=@,48-57,192-255,_
endif
syn match sqlIsKeyword /\<\h\w*\>/ contains=sqlStatement,sqlKeyword,sqlCatalog,sqlConstant,sqlSpecial,sqlOption,sqlErrorCode,sqlType,sqlTable,sqlView
syn match sqlIsFunction /\<\h\w*\ze(/ contains=sqlFunction,sqlKeyword,sqlType
@@ -723,7 +727,7 @@ syn keyword sqlConstant contained ltree_plpythonu pldbgapi plpython2u plpython3u
if index(get(g:, 'pgsql_disabled_extensions', []), 'refint') == -1
syn keyword sqlFunction contained check_foreign_key check_primary_key
endif " refint
" Extension: postgis (v3.1.0)
" Extension: postgis (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis') == -1
syn keyword sqlFunction contained addauth addgeometrycolumn box
syn keyword sqlFunction contained box2d box2d_in box2d_out box2df_in
@@ -1018,7 +1022,7 @@ endif " dict_xsyn
if index(get(g:, 'pgsql_disabled_extensions', []), 'bool_plperlu') == -1
syn keyword sqlFunction contained bool_to_plperlu plperlu_to_bool
endif " bool_plperlu
" Extension: address_standardizer (v3.1.0)
" Extension: address_standardizer (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer') == -1
syn keyword sqlFunction contained parse_address standardize_address
syn keyword sqlType contained stdaddr
@@ -1077,7 +1081,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'cube') == -1
syn keyword sqlType contained cube
syn keyword sqlFunction contained g_cube_compress g_cube_decompress
endif " cube
" Extension: postgis_tiger_geocoder (v3.1.0)
" Extension: postgis_tiger_geocoder (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_tiger_geocoder') == -1
syn keyword sqlFunction contained count_words create_census_base_tables
syn keyword sqlFunction contained cull_null diff_zip
@@ -1181,11 +1185,11 @@ endif " pgstattuple
if index(get(g:, 'pgsql_disabled_extensions', []), 'autoinc') == -1
syn keyword sqlFunction contained autoinc
endif " autoinc
" Extension: address_standardizer_data_us (v3.1.0)
" Extension: address_standardizer_data_us (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'address_standardizer_data_us') == -1
syn keyword sqlTable contained us_gaz us_lex us_rules
endif " address_standardizer_data_us
" Extension: postgis_topology (v3.1.0)
" Extension: postgis_topology (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlFunction contained addedge addface addnode
syn keyword sqlFunction contained addtopogeometrycolumn addtosearchpath asgml
@@ -1218,7 +1222,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_topology') == -1
syn keyword sqlType contained topoelementarray topogeometry
syn keyword sqlType contained validatetopology_returntype
endif " postgis_topology
" Extension: postgis_raster (v3.1.0)
" Extension: postgis_raster (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_raster') == -1
syn keyword sqlFunction contained addoverviewconstraints addrasterconstraints
syn keyword sqlFunction contained box3d bytea dropoverviewconstraints
@@ -1566,7 +1570,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'fuzzystrmatch') == -1
syn keyword sqlFunction contained levenshtein levenshtein_less_equal
syn keyword sqlFunction contained metaphone soundex text_soundex
endif " fuzzystrmatch
" Extension: pgrouting (v3.1.1)
" Extension: pgrouting (v3.1.3)
if index(get(g:, 'pgsql_disabled_extensions', []), 'pgrouting') == -1
syn keyword sqlFunction contained pgr_alphashape pgr_analyzegraph
syn keyword sqlFunction contained pgr_analyzeoneway pgr_articulationpoints pgr_astar
@@ -1610,7 +1614,7 @@ if index(get(g:, 'pgsql_disabled_extensions', []), 'pgcrypto') == -1
syn keyword sqlFunction contained pgp_sym_decrypt_bytea pgp_sym_encrypt
syn keyword sqlFunction contained pgp_sym_encrypt_bytea
endif " pgcrypto
" Extension: postgis_sfcgal (v3.1.0)
" Extension: postgis_sfcgal (v3.1.1)
if index(get(g:, 'pgsql_disabled_extensions', []), 'postgis_sfcgal') == -1
syn keyword sqlFunction contained postgis_sfcgal_noop
syn keyword sqlFunction contained postgis_sfcgal_scripts_installed postgis_sfcgal_version st_3darea
@@ -2025,8 +2029,17 @@ for pl in get(b:, 'pgsql_pl', get(g:, 'pgsql_pl', []))
endfor
" Folding
execute "syn region sqlFold start='^\s*\zs\c\(create\|update\|alter\|select\|insert\|do\)\>' end=';$' transparent fold "
\ .. "contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlIdentifier,sqlNumber,sqlOperator,sqlSpecial,sqlString,sqlTodo," .. s:plgroups
if get(g:, 'pgsql_fold_functions_only', 0)
execute 'syn region sqlFold start=/^\s*\zs\c\%(create\s\+[a-z ]*\%(function\|procedure\)\|do\)\>/ end=/;$/ transparent fold '
\ .. "contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlIdentifier,sqlNumber,sqlOperator,sqlSpecial,sqlString,sqlTodo," .. s:plgroups
else
execute 'syn region sqlFold start=/^\s*\zs\c\(create\|update\|alter\|select\|insert\|do\)\>/ end=/;$/ transparent fold '
\ .. "contains=sqlIsKeyword,sqlIsFunction,sqlComment,sqlIdentifier,sqlNumber,sqlOperator,sqlSpecial,sqlString,sqlTodo," .. s:plgroups
endif
unlet s:plgroups
@@ -2058,4 +2071,3 @@ hi def link sqlCreateOperatorKeyword sqlKeyword
hi def link sqlCreateTextSearchKeyword sqlKeyword
let b:current_syntax = "sql"

View File

@@ -32,9 +32,9 @@ syn match puppetOperator "+=\|-=\|==\|!=\|=\~\|!\~\|>=\|<=\|<-\|<\~\|=>\|+>\|->
" three character operators
syn match puppetOperator "<<|\||>>"
syn region puppetBracketOperator matchgroup=puppetDelimiter start="\[\s*" end="\s*]" contains=ALLBUT,@puppetNotTop
syn region puppetBraceOperator matchgroup=puppetDelimiter start="{\s*" end="\s*}" contains=ALLBUT,@puppetNotTop
syn region puppetParenOperator matchgroup=puppetDelimiter start="(\s*" end="\s*)" contains=ALLBUT,@puppetNotTop
syn region puppetBracketOperator matchgroup=puppetDelimiter start="\[\s*" end="\s*]" fold contains=ALLBUT,@puppetNotTop
syn region puppetBraceOperator matchgroup=puppetDelimiter start="{\s*" end="\s*}" fold contains=ALLBUT,@puppetNotTop
syn region puppetParenOperator matchgroup=puppetDelimiter start="(\s*" end="\s*)" fold contains=ALLBUT,@puppetNotTop
" Expression Substitution and Backslash Notation {{{1
syn match puppetStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display

View File

@@ -21,8 +21,9 @@ syn case ignore
syn match rstTransition /^[=`:.'"~^_*+#-]\{4,}\s*$/
syn cluster rstCruft contains=rstEmphasis,rstStrongEmphasis,
\ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference,
\ rstInlineInternalTargets,rstFootnoteReference,rstHyperlinkReference
\ rstInterpretedTextOrHyperlinkReference,rstInlineLiteral,
\ rstSubstitutionReference, rstInlineInternalTargets,rstFootnoteReference,
\ rstHyperlinkReference
syn region rstLiteralBlock matchgroup=rstDelimiter
\ start='\(^\z(\s*\).*\)\@<=::\n\s*\n' skip='^\s*$' end='^\(\z1\s\+\)\@!'
@@ -88,7 +89,7 @@ syn region rstHyperlinkTarget matchgroup=rstDirective
execute 'syn region rstExDirective contained matchgroup=rstDirective' .
\ ' start=+' . s:ReferenceName . '::\_s+' .
\ ' skip=+^$+' .
\ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock'
\ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock,rstExplicitMarkup'
execute 'syn match rstSubstitutionDefinition contained' .
\ ' /|.*|\_s\+/ nextgroup=@rstDirectives'

View File

@@ -13,7 +13,7 @@ endif
let b:current_syntax = "smt2"
" Comments
syntax match smt2Comment ";.*$"
syntax match smt2Comment "\m\C;.*$"
" Commands
syntax keyword smt2Commands
@@ -64,10 +64,10 @@ syntax keyword smt2Commands
\ set-logic
\ set-option
\ simplify
syntax match smt2Commands "!"
syntax match smt2Commands "\m\C!"
" Operators
syntax match smt2Operator "[=\|>\|<\|<=\|>=\|=>\|+\|\-\|*\|/\|!]"
syntax match smt2Operator "\m\C[=\|>\|<\|<=\|>=\|=>\|+\|\-\|*\|/\|!]"
" Builtins
syntax keyword smt2Builtin
@@ -140,29 +140,29 @@ syntax keyword smt2Builtin
\ unsat
\ xor
\ zero_extend
syntax match smt2Builtin "[\^\~]"
syntax match smt2Builtin "\m\C[\^\~]"
" Identifier
syntax match smt2Identifier "\<[a-z_][a-zA-Z0-9_\-\.']*\>"
syntax match smt2Identifier "\m\C\<[a-z_][a-zA-Z0-9_\-\.']*\>"
" Types
syntax match smt2Type "\<[A-Z][a-zA-Z0-9_\-\.']*\>"
syntax match smt2Type "\m\C\<[A-Z][a-zA-Z0-9_\-\.']*\>"
" Strings
syntax region smt2String start=+"+ skip=+\\\\\|\\"+ end=+"+
syntax match smt2Option "\<:[a-zA-Z0-9_\-\.']*\>"
syntax match smt2Option "\m\C\<:[a-zA-Z0-9_\-\.']*\>"
" Constructors
syntax match smt2Constructor "\<\$[a-zA-Z0-9_\-\.']*\>"
syntax match smt2Constructor "\m\C\<\$[a-zA-Z0-9_\-\.']*\>"
" Number
syntax match smt2Int "\<[0-9]\+\>"
syntax match smt2Hex "\<[0#][xX][0-9a-fA-F]\+\>"
syntax match smt2Binary "\<#b[01]\+\>"
syntax match smt2Float "\<[0-9]\+\.[0-9]\+\([eE][\-+]\=[0-9]\+\)\=\>"
syntax match smt2Int "\m\C\<[0-9]\+\>"
syntax match smt2Hex "\m\C\<[0#][xX][0-9a-fA-F]\+\>"
syntax match smt2Binary "\m\C\<#b[01]\+\>"
syntax match smt2Float "\m\C\<[0-9]\+\.[0-9]\+\([eE][\-+]\=[0-9]\+\)\=\>"
" Delimiter
syntax match smt2Delimiter "[()]"
syntax match smt2Delimiter "\m\C[()]"
" Error
syntax keyword smt2Error error

View File

@@ -3,10 +3,11 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'tidy', 'syntax/tidy.vim')
endif
" Vim syntax file
" Language: HMTL Tidy configuration file (/etc/tidyrc ~/.tidyrc)
" Language: HMTL Tidy Configuration
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Last Change: 2016 Apr 24
" Last Change: 2020 Sep 4
" Preamble {{{1
if exists("b:current_syntax")
finish
endif
@@ -16,10 +17,15 @@ set cpo&vim
syn iskeyword @,48-57,-,_
" Values {{{1
syn match tidyWordSeparator contained ",\|\s" nextgroup=tidyWord skipwhite skipnl
syn match tidyMuteIDSeparator contained ",\|\s" nextgroup=tidyMuteID skipwhite skipnl
syn case ignore
syn keyword tidyBoolean contained t[rue] f[alse] y[es] n[o] 1 0
syn keyword tidyAutoBoolean contained t[rue] f[alse] y[es] n[o] 1 0 auto
syn case match
syn keyword tidyCustomTags contained no blocklevel empty inline pre
syn keyword tidyDoctype contained html5 omit auto strict loose transitional user
syn keyword tidyEncoding contained raw ascii latin0 latin1 utf8 iso2022 mac win1252 ibm858 utf16le utf16be utf16 big5 shiftjis
syn keyword tidyNewline contained LF CRLF CR
@@ -28,36 +34,148 @@ syn keyword tidyRepeat contained keep-first keep-last
syn keyword tidySorter contained alpha none
syn region tidyString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
syn region tidyString contained start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline
syn match tidyTags contained "\<\w\+\(\s*,\s*\w\+\)*\>"
" Tag and attribute lists
syn match tidyWord contained "\<\k\+\>:\@!" nextgroup=tidyWordSeparator skipwhite skipnl
syn keyword tidyBooleanOption add-xml-decl add-xml-pi add-xml-space
\ anchor-as-name ascii-chars assume-xml-procins bare break-before-br
\ clean coerce-endtags decorate-inferred-ul drop-empty-paras
\ drop-empty-elements drop-font-tags drop-proprietary-attributes
\ enclose-block-text enclose-text escape-cdata escape-scripts
\ fix-backslash fix-bad-comments fix-uri force-output gdoc gnu-emacs
\ hide-comments hide-endtags indent-attributes indent-cdata
\ indent-with-tabs input-xml join-classes join-styles keep-time
\ language literal-attributes logical-emphasis lower-literals markup
\ merge-emphasis ncr numeric-entities omit-optional-tags output-html
\ output-xhtml output-xml preserve-entities punctuation-wrap quiet
\ quote-ampersand quote-marks quote-nbsp raw replace-color show-info
\ show-warnings skip-nested split strict-tags-attributes tidy-mark
\ uppercase-attributes uppercase-tags word-2000 wrap-asp
\ wrap-attributes wrap-jste wrap-php wrap-script-literals
\ wrap-sections write-back
" Mute Message IDs {{{2
syn keyword tidyMuteID ADDED_MISSING_CHARSET ANCHOR_DUPLICATED
\ ANCHOR_NOT_UNIQUE APOS_UNDEFINED APPLET_MISSING_ALT AREA_MISSING_ALT
\ ASCII_REQUIRES_DESCRIPTION ASSOCIATE_LABELS_EXPLICITLY
\ ASSOCIATE_LABELS_EXPLICITLY_FOR ASSOCIATE_LABELS_EXPLICITLY_ID
\ ATTRIBUTE_IS_NOT_ALLOWED ATTRIBUTE_VALUE_REPLACED
\ ATTR_VALUE_NOT_LCASE AUDIO_MISSING_TEXT_AIFF AUDIO_MISSING_TEXT_AU
\ AUDIO_MISSING_TEXT_RA AUDIO_MISSING_TEXT_RM AUDIO_MISSING_TEXT_SND
\ AUDIO_MISSING_TEXT_WAV BACKSLASH_IN_URI BAD_ATTRIBUTE_VALUE
\ BAD_ATTRIBUTE_VALUE_REPLACED BAD_CDATA_CONTENT BAD_SUMMARY_HTML5
\ BAD_SURROGATE_LEAD BAD_SURROGATE_PAIR BAD_SURROGATE_TAIL
\ CANT_BE_NESTED COERCE_TO_ENDTAG COLOR_CONTRAST_ACTIVE_LINK
\ COLOR_CONTRAST_LINK COLOR_CONTRAST_TEXT COLOR_CONTRAST_VISITED_LINK
\ CONTENT_AFTER_BODY CUSTOM_TAG_DETECTED DATA_TABLE_MISSING_HEADERS
\ DATA_TABLE_MISSING_HEADERS_COLUMN DATA_TABLE_MISSING_HEADERS_ROW
\ DATA_TABLE_REQUIRE_MARKUP_COLUMN_HEADERS
\ DATA_TABLE_REQUIRE_MARKUP_ROW_HEADERS DISCARDING_UNEXPECTED
\ DOCTYPE_AFTER_TAGS DOCTYPE_MISSING DUPLICATE_FRAMESET
\ ELEMENT_NOT_EMPTY ELEMENT_VERS_MISMATCH_ERROR
\ ELEMENT_VERS_MISMATCH_WARN ENCODING_MISMATCH
\ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_APPLET
\ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_EMBED
\ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_OBJECT
\ ENSURE_PROGRAMMATIC_OBJECTS_ACCESSIBLE_SCRIPT ESCAPED_ILLEGAL_URI
\ FILE_CANT_OPEN FILE_CANT_OPEN_CFG FILE_NOT_FILE FIXED_BACKSLASH
\ FOUND_STYLE_IN_BODY FRAME_MISSING_LONGDESC FRAME_MISSING_NOFRAMES
\ FRAME_MISSING_TITLE FRAME_SRC_INVALID FRAME_TITLE_INVALID_NULL
\ FRAME_TITLE_INVALID_SPACES HEADERS_IMPROPERLY_NESTED
\ HEADER_USED_FORMAT_TEXT ID_NAME_MISMATCH ILLEGAL_NESTING
\ ILLEGAL_URI_CODEPOINT ILLEGAL_URI_REFERENCE
\ IMAGE_MAP_SERVER_SIDE_REQUIRES_CONVERSION
\ IMG_ALT_SUSPICIOUS_FILENAME IMG_ALT_SUSPICIOUS_FILE_SIZE
\ IMG_ALT_SUSPICIOUS_PLACEHOLDER IMG_ALT_SUSPICIOUS_TOO_LONG
\ IMG_BUTTON_MISSING_ALT IMG_MAP_CLIENT_MISSING_TEXT_LINKS
\ IMG_MAP_SERVER_REQUIRES_TEXT_LINKS IMG_MISSING_ALT IMG_MISSING_DLINK
\ IMG_MISSING_LONGDESC IMG_MISSING_LONGDESC_DLINK
\ INFORMATION_NOT_CONVEYED_APPLET INFORMATION_NOT_CONVEYED_IMAGE
\ INFORMATION_NOT_CONVEYED_INPUT INFORMATION_NOT_CONVEYED_OBJECT
\ INFORMATION_NOT_CONVEYED_SCRIPT INSERTING_AUTO_ATTRIBUTE
\ INSERTING_TAG INVALID_ATTRIBUTE INVALID_NCR INVALID_SGML_CHARS
\ INVALID_UTF16 INVALID_UTF8 INVALID_XML_ID JOINING_ATTRIBUTE
\ LANGUAGE_INVALID LANGUAGE_NOT_IDENTIFIED
\ LAYOUT_TABLES_LINEARIZE_PROPERLY LAYOUT_TABLE_INVALID_MARKUP
\ LINK_TEXT_MISSING LINK_TEXT_NOT_MEANINGFUL
\ LINK_TEXT_NOT_MEANINGFUL_CLICK_HERE LINK_TEXT_TOO_LONG
\ LIST_USAGE_INVALID_LI LIST_USAGE_INVALID_OL LIST_USAGE_INVALID_UL
\ MALFORMED_COMMENT MALFORMED_COMMENT_DROPPING MALFORMED_COMMENT_EOS
\ MALFORMED_COMMENT_WARN MALFORMED_DOCTYPE METADATA_MISSING
\ METADATA_MISSING_REDIRECT_AUTOREFRESH MISMATCHED_ATTRIBUTE_ERROR
\ MISMATCHED_ATTRIBUTE_WARN MISSING_ATTRIBUTE MISSING_ATTR_VALUE
\ MISSING_DOCTYPE MISSING_ENDTAG_BEFORE MISSING_ENDTAG_FOR
\ MISSING_ENDTAG_OPTIONAL MISSING_IMAGEMAP MISSING_QUOTEMARK
\ MISSING_QUOTEMARK_OPEN MISSING_SEMICOLON MISSING_SEMICOLON_NCR
\ MISSING_STARTTAG MISSING_TITLE_ELEMENT MOVED_STYLE_TO_HEAD
\ MULTIMEDIA_REQUIRES_TEXT NESTED_EMPHASIS NESTED_QUOTATION
\ NEWLINE_IN_URI NEW_WINDOWS_REQUIRE_WARNING_BLANK
\ NEW_WINDOWS_REQUIRE_WARNING_NEW NOFRAMES_CONTENT
\ NOFRAMES_INVALID_CONTENT NOFRAMES_INVALID_LINK
\ NOFRAMES_INVALID_NO_VALUE NON_MATCHING_ENDTAG OBJECT_MISSING_ALT
\ OBSOLETE_ELEMENT OPTION_REMOVED OPTION_REMOVED_APPLIED
\ OPTION_REMOVED_UNAPPLIED POTENTIAL_HEADER_BOLD
\ POTENTIAL_HEADER_ITALICS POTENTIAL_HEADER_UNDERLINE
\ PREVIOUS_LOCATION PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_APPLET
\ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_EMBED
\ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_OBJECT
\ PROGRAMMATIC_OBJECTS_REQUIRE_TESTING_SCRIPT PROPRIETARY_ATTRIBUTE
\ PROPRIETARY_ATTR_VALUE PROPRIETARY_ELEMENT REMOVED_HTML5
\ REMOVE_AUTO_REDIRECT REMOVE_AUTO_REFRESH REMOVE_BLINK_MARQUEE
\ REMOVE_FLICKER_ANIMATED_GIF REMOVE_FLICKER_APPLET
\ REMOVE_FLICKER_EMBED REMOVE_FLICKER_OBJECT REMOVE_FLICKER_SCRIPT
\ REPEATED_ATTRIBUTE REPLACE_DEPRECATED_HTML_APPLET
\ REPLACE_DEPRECATED_HTML_BASEFONT REPLACE_DEPRECATED_HTML_CENTER
\ REPLACE_DEPRECATED_HTML_DIR REPLACE_DEPRECATED_HTML_FONT
\ REPLACE_DEPRECATED_HTML_ISINDEX REPLACE_DEPRECATED_HTML_MENU
\ REPLACE_DEPRECATED_HTML_S REPLACE_DEPRECATED_HTML_STRIKE
\ REPLACE_DEPRECATED_HTML_U REPLACING_ELEMENT REPLACING_UNEX_ELEMENT
\ SCRIPT_MISSING_NOSCRIPT SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_CLICK
\ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_DOWN
\ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_MOVE
\ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OUT
\ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_OVER
\ SCRIPT_NOT_KEYBOARD_ACCESSIBLE_ON_MOUSE_UP SKIPOVER_ASCII_ART
\ SPACE_PRECEDING_XMLDECL STRING_ARGUMENT_BAD STRING_CONTENT_LOOKS
\ STRING_DOCTYPE_GIVEN STRING_MISSING_MALFORMED STRING_MUTING_TYPE
\ STRING_NO_SYSID STRING_UNKNOWN_OPTION
\ STYLESHEETS_REQUIRE_TESTING_LINK
\ STYLESHEETS_REQUIRE_TESTING_STYLE_ATTR
\ STYLESHEETS_REQUIRE_TESTING_STYLE_ELEMENT
\ STYLE_SHEET_CONTROL_PRESENTATION SUSPECTED_MISSING_QUOTE
\ TABLE_MAY_REQUIRE_HEADER_ABBR TABLE_MAY_REQUIRE_HEADER_ABBR_NULL
\ TABLE_MAY_REQUIRE_HEADER_ABBR_SPACES TABLE_MISSING_CAPTION
\ TABLE_MISSING_SUMMARY TABLE_SUMMARY_INVALID_NULL
\ TABLE_SUMMARY_INVALID_PLACEHOLDER TABLE_SUMMARY_INVALID_SPACES
\ TAG_NOT_ALLOWED_IN TEXT_EQUIVALENTS_REQUIRE_UPDATING_APPLET
\ TEXT_EQUIVALENTS_REQUIRE_UPDATING_OBJECT
\ TEXT_EQUIVALENTS_REQUIRE_UPDATING_SCRIPT TOO_MANY_ELEMENTS
\ TOO_MANY_ELEMENTS_IN TRIM_EMPTY_ELEMENT UNESCAPED_AMPERSAND
\ UNEXPECTED_ENDTAG UNEXPECTED_ENDTAG_ERR UNEXPECTED_ENDTAG_IN
\ UNEXPECTED_END_OF_FILE UNEXPECTED_END_OF_FILE_ATTR
\ UNEXPECTED_EQUALSIGN UNEXPECTED_GT UNEXPECTED_QUOTEMARK
\ UNKNOWN_ELEMENT UNKNOWN_ELEMENT_LOOKS_CUSTOM UNKNOWN_ENTITY
\ USING_BR_INPLACE_OF VENDOR_SPECIFIC_CHARS WHITE_IN_URI
\ XML_DECLARATION_DETECTED XML_ID_SYNTAX
\ contained nextgroup=tidyMuteIDSeparator skipwhite skipnl
" Options {{{1
syn keyword tidyCustomTagsOption custom-tags contained nextgroup=tidyCustomTagsDelimiter
syn match tidyCustomTagsDelimiter ":" nextgroup=tidyCustomTags contained skipwhite
syn keyword tidyBooleanOption add-meta-charset add-xml-decl
\ add-xml-pi add-xml-space anchor-as-name ascii-chars
\ assume-xml-procins bare break-before-br clean coerce-endtags
\ decorate-inferred-ul drop-empty-paras drop-empty-elements
\ drop-font-tags drop-proprietary-attributes enclose-block-text
\ enclose-text escape-cdata escape-scripts fix-backslash
\ fix-style-tags fix-uri force-output gdoc gnu-emacs hide-comments
\ hide-endtags indent-attributes indent-cdata indent-with-tabs
\ input-xml join-classes join-styles keep-tabs keep-time language
\ literal-attributes logical-emphasis lower-literals markup
\ merge-emphasis mute-id ncr numeric-entities omit-optional-tags
\ output-html output-xhtml output-xml preserve-entities
\ punctuation-wrap quiet quote-ampersand quote-marks quote-nbsp raw
\ replace-color show-filename show-info show-meta-change show-warnings
\ skip-nested split strict-tags-attributes tidy-mark
\ uppercase-attributes uppercase-tags warn-proprietary-attributes
\ word-2000 wrap-asp wrap-attributes wrap-jste wrap-php
\ wrap-script-literals wrap-sections write-back
\ contained nextgroup=tidyBooleanDelimiter
syn match tidyBooleanDelimiter ":" nextgroup=tidyBoolean contained skipwhite
syn keyword tidyAutoBooleanOption indent merge-divs merge-spans output-bom show-body-only vertical-space contained nextgroup=tidyAutoBooleanDelimiter
syn keyword tidyAutoBooleanOption fix-bad-comments indent merge-divs merge-spans output-bom show-body-only vertical-space contained nextgroup=tidyAutoBooleanDelimiter
syn match tidyAutoBooleanDelimiter ":" nextgroup=tidyAutoBoolean contained skipwhite
syn keyword tidyCSSSelectorOption css-prefix contained nextgroup=tidyCSSSelectorDelimiter
syn match tidyCSSSelectorDelimiter ":" nextgroup=tidyCSSSelector contained skipwhite
syn keyword tidyDoctypeOption doctype contained nextgroup=tidyDoctypeDelimiter
syn match tidyDoctypeDelimiter ":" nextgroup=tidyDoctype contained skipwhite
syn match tidyDoctypeDelimiter ":" nextgroup=tidyDoctype,tidyString contained skipwhite
syn keyword tidyEncodingOption char-encoding input-encoding output-encoding contained nextgroup=tidyEncodingDelimiter
syn match tidyEncodingDelimiter ":" nextgroup=tidyEncoding contained skipwhite
@@ -71,8 +189,11 @@ syn match tidyNameDelimiter ":" nextgroup=tidyName contained skipwhite
syn keyword tidyNewlineOption newline contained nextgroup=tidyNewlineDelimiter
syn match tidyNewlineDelimiter ":" nextgroup=tidyNewline contained skipwhite
syn keyword tidyAttributesOption priority-attributes contained nextgroup=tidyAttributesDelimiter
syn match tidyAttributesDelimiter ":" nextgroup=tidyWord contained skipwhite
syn keyword tidyTagsOption new-blocklevel-tags new-empty-tags new-inline-tags new-pre-tags contained nextgroup=tidyTagsDelimiter
syn match tidyTagsDelimiter ":" nextgroup=tidyTags contained skipwhite
syn match tidyTagsDelimiter ":" nextgroup=tidyWord contained skipwhite
syn keyword tidyRepeatOption repeated-attributes contained nextgroup=tidyRepeatDelimiter
syn match tidyRepeatDelimiter ":" nextgroup=tidyRepeat contained skipwhite
@@ -83,57 +204,77 @@ syn match tidySorterDelimiter ":" nextgroup=tidySorter contained skipwhite
syn keyword tidyStringOption alt-text error-file gnu-emacs-file output-file contained nextgroup=tidyStringDelimiter
syn match tidyStringDelimiter ":" nextgroup=tidyString contained skipwhite
syn keyword tidyMuteOption mute contained nextgroup=tidyMuteDelimiter
syn match tidyMuteDelimiter ":" nextgroup=tidyMuteID contained skipwhite
syn cluster tidyOptions contains=tidy.*Option
" Option line anchor {{{1
syn match tidyStart "^" nextgroup=@tidyOptions
" Long standing bug - option lines (except the first) with leading whitespace
" are silently ignored.
syn match tidyErrorStart '^\s\+\ze\S'
" Comments {{{1
syn match tidyComment "^\s*//.*$" contains=tidyTodo
syn match tidyComment "^\s*#.*$" contains=tidyTodo
syn keyword tidyTodo TODO NOTE FIXME XXX contained
" Default highlighting {{{1
hi def link tidyAttributesOption Identifier
hi def link tidyAutoBooleanOption Identifier
hi def link tidyBooleanOption Identifier
hi def link tidyCSSSelectorOption Identifier
hi def link tidyCustomTagsOption Identifier
hi def link tidyDoctypeOption Identifier
hi def link tidyEncodingOption Identifier
hi def link tidyIntegerOption Identifier
hi def link tidyMuteOption Identifier
hi def link tidyNameOption Identifier
hi def link tidyNewlineOption Identifier
hi def link tidyTagsOption Identifier
hi def link tidyRepeatOption Identifier
hi def link tidySorterOption Identifier
hi def link tidyStringOption Identifier
hi def link tidyTagsOption Identifier
hi def link tidyAttributesDelimiter Special
hi def link tidyAutoBooleanDelimiter Special
hi def link tidyBooleanDelimiter Special
hi def link tidyCSSSelectorDelimiter Special
hi def link tidyCustomTagsDelimiter Special
hi def link tidyDoctypeDelimiter Special
hi def link tidyEncodingDelimiter Special
hi def link tidyIntegerDelimiter Special
hi def link tidyMuteDelimiter Special
hi def link tidyNameDelimiter Special
hi def link tidyNewlineDelimiter Special
hi def link tidyTagsDelimiter Special
hi def link tidyRepeatDelimiter Special
hi def link tidySorterDelimiter Special
hi def link tidyStringDelimiter Special
hi def link tidyTagsDelimiter Special
hi def link tidyAutoBoolean Boolean
hi def link tidyBoolean Boolean
hi def link tidyCustomTags Constant
hi def link tidyDoctype Constant
hi def link tidyEncoding Constant
hi def link tidyMuteID Constant
hi def link tidyNewline Constant
hi def link tidyTags Constant
hi def link tidyNumber Number
hi def link tidyRepeat Constant
hi def link tidySorter Constant
hi def link tidyString String
hi def link tidyWord Constant
hi def link tidyComment Comment
hi def link tidyTodo Todo
hi def link tidyErrorStart Error
" Postscript {{{1
let b:current_syntax = "tidy"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: ts=8
" vim: ts=8 fdm=marker

View File

@@ -10,99 +10,283 @@ endif
if exists("b:current_syntax")
finish
endif
let b:current_syntax = "zig"
syn keyword zigStorage const var extern packed export pub noalias inline noinline comptime callconv volatile allowzero align linksection threadlocal anytype
syn keyword zigStructure struct enum union error opaque
syn keyword zigStatement break return continue asm defer errdefer unreachable try catch async nosuspend await suspend resume
syn keyword zigConditional if else switch and or orelse
syn keyword zigRepeat while for
let s:cpo_save = &cpo
set cpo&vim
syn keyword zigConstant null undefined
syn keyword zigKeyword fn usingnamespace test
syn keyword zigType bool f16 f32 f64 f128 void noreturn type anyerror anyframe
syn keyword zigType i0 u0 isize usize comptime_int comptime_float
syn keyword zigType c_short c_ushort c_int c_uint c_long c_ulong c_longlong c_ulonglong c_longdouble c_void
let s:zig_syntax_keywords = {
\ 'zigBoolean': ["true"
\ , "false"]
\ , 'zigNull': ["null"]
\ , 'zigType': ["bool"
\ , "f16"
\ , "f32"
\ , "f64"
\ , "f128"
\ , "void"
\ , "type"
\ , "anytype"
\ , "anyerror"
\ , "anyframe"
\ , "volatile"
\ , "linksection"
\ , "noreturn"
\ , "allowzero"
\ , "i0"
\ , "u0"
\ , "isize"
\ , "usize"
\ , "comptime_int"
\ , "comptime_float"
\ , "c_short"
\ , "c_ushort"
\ , "c_int"
\ , "c_uint"
\ , "c_long"
\ , "c_ulong"
\ , "c_longlong"
\ , "c_ulonglong"
\ , "c_longdouble"
\ , "c_void"]
\ , 'zigConstant': ["undefined"
\ , "unreachable"]
\ , 'zigConditional': ["if"
\ , "else"
\ , "switch"]
\ , 'zigRepeat': ["while"
\ , "for"]
\ , 'zigComparatorWord': ["and"
\ , "or"
\ , "orelse"]
\ , 'zigStructure': ["struct"
\ , "enum"
\ , "union"
\ , "error"
\ , "packed"
\ , "opaque"]
\ , 'zigException': ["error"]
\ , 'zigVarDecl': ["var"
\ , "const"
\ , "comptime"
\ , "threadlocal"]
\ , 'zigDummyVariable': ["_"]
\ , 'zigKeyword': ["fn"
\ , "try"
\ , "test"
\ , "pub"
\ , "usingnamespace"]
\ , 'zigExecution': ["return"
\ , "break"
\ , "continue"]
\ , 'zigMacro': ["defer"
\ , "errdefer"
\ , "async"
\ , "nosuspend"
\ , "await"
\ , "suspend"
\ , "resume"
\ , "export"
\ , "extern"]
\ , 'zigPreProc': ["catch"
\ , "inline"
\ , "noinline"
\ , "asm"
\ , "callconv"
\ , "noalias"]
\ , 'zigBuiltinFn': ["align"
\ , "@add"
\ , "@WithOverflow"
\ , "@as"
\ , "@atomicLoad"
\ , "@atomicStore"
\ , "@bitCast"
\ , "@breakpoint"
\ , "@alignCast"
\ , "@alignOf"
\ , "@cDefine"
\ , "@cImport"
\ , "@cInclude"
\ , "@cUndef"
\ , "@canImplicitCast"
\ , "@clz"
\ , "@cmpxchgWeak"
\ , "@cmpxchgStrong"
\ , "@compileError"
\ , "@compileLog"
\ , "@ctz"
\ , "@popCount"
\ , "@divExact"
\ , "@divFloor"
\ , "@divTrunc"
\ , "@embedFile"
\ , "@export"
\ , "@tagName"
\ , "@TagType"
\ , "@errorName"
\ , "@call"
\ , "@errorReturnTrace"
\ , "@fence"
\ , "@fieldParentPtr"
\ , "@field"
\ , "@unionInit"
\ , "@frameAddress"
\ , "@import"
\ , "@newStackCall"
\ , "@asyncCall"
\ , "@intToPtr"
\ , "@memcpy"
\ , "@memset"
\ , "@mod"
\ , "@mulWithOverflow"
\ , "@splat"
\ , "@src"
\ , "@bitOffsetOf"
\ , "@byteOffsetOf"
\ , "@OpaqueType"
\ , "@panic"
\ , "@ptrCast"
\ , "@ptrToInt"
\ , "@rem"
\ , "@returnAddress"
\ , "@setCold"
\ , "@Type"
\ , "@shuffle"
\ , "@reduce"
\ , "@setRuntimeSafety"
\ , "@setEvalBranchQuota"
\ , "@setFloatMode"
\ , "@setGlobalLinkage"
\ , "@setGlobalSection"
\ , "@shlExact"
\ , "@This"
\ , "@hasDecl"
\ , "@hasField"
\ , "@shlWithOverflow"
\ , "@shrExact"
\ , "@sizeOf"
\ , "@bitSizeOf"
\ , "@sqrt"
\ , "@byteSwap"
\ , "@subWithOverflow"
\ , "@intCast"
\ , "@floatCast"
\ , "@intToFloat"
\ , "@floatToInt"
\ , "@boolToInt"
\ , "@errSetCast"
\ , "@truncate"
\ , "@typeInfo"
\ , "@typeName"
\ , "@TypeOf"
\ , "@atomicRmw"
\ , "@bytesToSlice"
\ , "@sliceToBytes"
\ , "@intToError"
\ , "@errorToInt"
\ , "@intToEnum"
\ , "@enumToInt"
\ , "@setAlignStack"
\ , "@frame"
\ , "@Frame"
\ , "@frameSize"
\ , "@bitReverse"
\ , "@Vector"
\ , "@sin"
\ , "@cos"
\ , "@exp"
\ , "@exp2"
\ , "@log"
\ , "@log2"
\ , "@log10"
\ , "@fabs"
\ , "@floor"
\ , "@ceil"
\ , "@trunc"
\ , "@round"]
\ }
syn keyword zigBoolean true false
function! s:syntax_keyword(dict)
for key in keys(a:dict)
execute 'syntax keyword' key join(a:dict[key], ' ')
endfor
endfunction
syn match zigType "\v<[iu][1-9]\d*>"
call s:syntax_keyword(s:zig_syntax_keywords)
syn match zigOperator display "\V\[-+/*=^&?|!><%~]"
syn match zigArrowCharacter display "\V->"
syn match zigBuiltinFn "\v\@(addWithOverflow|as|atomicLoad|atomicStore|bitCast|breakpoint)>"
syn match zigBuiltinFn "\v\@(alignCast|alignOf|cDefine|cImport|cInclude)>"
syn match zigBuiltinFn "\v\@(cUndef|canImplicitCast|clz|cmpxchgWeak|cmpxchgStrong|compileError)>"
syn match zigBuiltinFn "\v\@(compileLog|ctz|popCount|divExact|divFloor|divTrunc)>"
syn match zigBuiltinFn "\v\@(embedFile|export|tagName|TagType|errorName|call)>"
syn match zigBuiltinFn "\v\@(errorReturnTrace|fence|fieldParentPtr|field|unionInit)>"
syn match zigBuiltinFn "\v\@(frameAddress|import|newStackCall|asyncCall|intToPtr)>"
syn match zigBuiltinFn "\v\@(memcpy|memset|mod|mulWithOverflow|splat|src)>"
syn match zigBuiltinFn "\v\@(bitOffsetOf|byteOffsetOf|OpaqueType|panic|ptrCast)>"
syn match zigBuiltinFn "\v\@(ptrToInt|rem|returnAddress|setCold|Type|shuffle|reduce)>"
syn match zigBuiltinFn "\v\@(setRuntimeSafety|setEvalBranchQuota|setFloatMode)>"
syn match zigBuiltinFn "\v\@(setGlobalLinkage|setGlobalSection|shlExact|This|hasDecl|hasField)>"
syn match zigBuiltinFn "\v\@(shlWithOverflow|shrExact|sizeOf|bitSizeOf|sqrt|byteSwap|subWithOverflow|intCast|floatCast|intToFloat|floatToInt|boolToInt|errSetCast)>"
syn match zigBuiltinFn "\v\@(truncate|typeInfo|typeName|TypeOf|atomicRmw|bytesToSlice|sliceToBytes)>"
syn match zigBuiltinFn "\v\@(intToError|errorToInt|intToEnum|enumToInt|setAlignStack|frame|Frame|frameSize|bitReverse|Vector)>"
syn match zigBuiltinFn "\v\@(sin|cos|exp|exp2|log|log2|log10|fabs|floor|ceil|trunc|round)>"
syntax match zigType "\v<[iu][1-9]\d*>"
syntax match zigOperator display "\V\[-+/*=^&?|!><%~]"
syntax match zigArrowCharacter display "\V->"
" 12_34 (. but not ..)? (12_34)? (exponent 12_34)?
syn match zigDecNumber display "\v<\d%(_?\d)*%(\.\.@!)?%(\d%(_?\d)*)?%([eE][+-]?\d%(_?\d)*)?"
syn match zigHexNumber display "\v<0x\x%(_?\x)*%(\.\.@!)?%(\x%(_?\x)*)?%([pP][+-]?\d%(_?\d)*)?"
syn match zigOctNumber display "\v<0o\o%(_?\o)*"
syn match zigBinNumber display "\v<0b[01]%(_?[01])*"
syntax match zigDecNumber display "\v<\d%(_?\d)*%(\.\.@!)?%(\d%(_?\d)*)?%([eE][+-]?\d%(_?\d)*)?"
syntax match zigHexNumber display "\v<0x\x%(_?\x)*%(\.\.@!)?%(\x%(_?\x)*)?%([pP][+-]?\d%(_?\d)*)?"
syntax match zigOctNumber display "\v<0o\o%(_?\o)*"
syntax match zigBinNumber display "\v<0b[01]%(_?[01])*"
syn match zigCharacterInvalid display contained /b\?'\zs[\n\r\t']\ze'/
syn match zigCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/
syn match zigCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=zigEscape,zigEscapeError,zigCharacterInvalid,zigCharacterInvalidUnicode
syn match zigCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{6}\)\)'/ contains=zigEscape,zigEscapeUnicode,zigEscapeError,zigCharacterInvalid
syntax match zigCharacterInvalid display contained /b\?'\zs[\n\r\t']\ze'/
syntax match zigCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/
syntax match zigCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=zigEscape,zigEscapeError,zigCharacterInvalid,zigCharacterInvalidUnicode
syntax match zigCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u\x\{4}\|U\x\{6}\)\)'/ contains=zigEscape,zigEscapeUnicode,zigEscapeError,zigCharacterInvalid
syn region zigBlock start="{" end="}" transparent fold
syntax region zigBlock start="{" end="}" transparent fold
syn region zigCommentLine start="//" end="$" contains=zigTodo,@Spell
syn region zigCommentLineDoc start="//[/!]/\@!" end="$" contains=zigTodo,@Spell
syntax region zigCommentLine start="//" end="$" contains=zigTodo,@Spell
syntax region zigCommentLineDoc start="//[/!]/\@!" end="$" contains=zigTodo,@Spell
" TODO: match only the first '\\' within the zigMultilineString as zigMultilineStringPrefix
syn match zigMultilineStringPrefix display contained /c\?\\\\/
syn region zigMultilineString start="c\?\\\\" end="$" contains=zigMultilineStringPrefix
syntax match zigMultilineStringPrefix /c\?\\\\/ contained containedin=zigMultilineString
syntax region zigMultilineString matchgroup=zigMultilineStringDelimiter start="c\?\\\\" end="$" contains=zigMultilineStringPrefix display
syn keyword zigTodo contained TODO
syntax keyword zigTodo contained TODO
syn match zigEscapeError display contained /\\./
syn match zigEscape display contained /\\\([nrt\\'"]\|x\x\{2}\)/
syn match zigEscapeUnicode display contained /\\\(u\x\{4}\|U\x\{6}\)/
syn region zigString start=+c\?"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=zigEscape,zigEscapeUnicode,zigEscapeError,@Spell
syntax region zigString matchgroup=zigStringDelimiter start=+c\?"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=zigEscape,zigEscapeUnicode,zigEscapeError,@Spell
syntax match zigEscapeError display contained /\\./
syntax match zigEscape display contained /\\\([nrt\\'"]\|x\x\{2}\)/
syntax match zigEscapeUnicode display contained /\\\(u\x\{4}\|U\x\{6}\)/
hi def link zigDecNumber zigNumber
hi def link zigHexNumber zigNumber
hi def link zigOctNumber zigNumber
hi def link zigBinNumber zigNumber
highlight default link zigDecNumber zigNumber
highlight default link zigHexNumber zigNumber
highlight default link zigOctNumber zigNumber
highlight default link zigBinNumber zigNumber
hi def link zigBuiltinFn Function
hi def link zigKeyword Keyword
hi def link zigType Type
hi def link zigCommentLine Comment
hi def link zigCommentLineDoc SpecialComment
hi def link zigTodo Todo
hi def link zigString String
hi def link zigMultilineString String
hi def link zigMultilineStringContent String
hi def link zigMultilineStringPrefix Comment
hi def link zigCharacterInvalid Error
hi def link zigCharacterInvalidUnicode zigCharacterInvalid
hi def link zigCharacter Character
hi def link zigEscape Special
hi def link zigEscapeUnicode zigEscape
hi def link zigEscapeError Error
hi def link zigBoolean Boolean
hi def link zigConstant Constant
hi def link zigNumber Number
hi def link zigArrowCharacter zigOperator
hi def link zigOperator Operator
hi def link zigStorage StorageClass
hi def link zigStructure Structure
hi def link zigStatement Statement
hi def link zigConditional Conditional
hi def link zigRepeat Repeat
highlight default link zigBuiltinFn Statement
highlight default link zigKeyword Keyword
highlight default link zigType Type
highlight default link zigCommentLine Comment
highlight default link zigCommentLineDoc Comment
highlight default link zigDummyVariable Comment
highlight default link zigTodo Todo
highlight default link zigString String
highlight default link zigStringDelimiter Delimiter
highlight default link zigMultilineString String
highlight default link zigMultilineStringContent String
highlight default link zigMultilineStringPrefix String
highlight default link zigMultilineStringDelimiter Ignore
highlight default link zigCharacterInvalid Error
highlight default link zigCharacterInvalidUnicode zigCharacterInvalid
highlight default link zigCharacter Character
highlight default link zigEscape Special
highlight default link zigEscapeUnicode zigEscape
highlight default link zigEscapeError Error
highlight default link zigBoolean Boolean
highlight default link zigNull Boolean
highlight default link zigConstant Constant
highlight default link zigNumber Number
highlight default link zigArrowCharacter zigOperator
highlight default link zigOperator Operator
highlight default link zigStructure Structure
highlight default link zigExecution Special
highlight default link zigMacro Macro
highlight default link zigConditional Conditional
highlight default link zigComparatorWord Operator
highlight default link zigRepeat Repeat
highlight default link zigSpecial Special
highlight default link zigVarDecl Function
highlight default link zigPreProc PreProc
highlight default link zigException Exception
delfunction s:syntax_keyword
let b:current_syntax = "zig"
let &cpo = s:cpo_save
unlet! s:cpo_save