From 0244e228faf6ee71750cbca3bdcd18411a927d22 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Sun, 11 Sep 2016 13:24:17 +0200 Subject: Update --- syntax/perl6.vim | 1967 ------------------------------------------------------ 1 file changed, 1967 deletions(-) delete mode 100644 syntax/perl6.vim (limited to 'syntax/perl6.vim') diff --git a/syntax/perl6.vim b/syntax/perl6.vim deleted file mode 100644 index 35fddcd8..00000000 --- a/syntax/perl6.vim +++ /dev/null @@ -1,1967 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1 - -" Vim syntax file -" Language: Perl 6 -" Maintainer: vim-perl -" Homepage: http://github.com/vim-perl/vim-perl/tree/master -" Bugs/requests: http://github.com/vim-perl/vim-perl/issues -" Last Change: {{LAST_CHANGE}} - -" Contributors: Luke Palmer -" Moritz Lenz -" Hinrik Örn Sigurðsson -" -" This is a big undertaking. Perl 6 is the sort of language that only Perl -" can parse. But I'll do my best to get vim to. -" -" The ftdetect/perl11.vim file in this repository takes care of setting the -" right filetype for Perl 6 files. To set it explicitly you can also add this -" line near the bottom of your source file: -" # vim: filetype=perl6 - -" TODO: -" * Go over the list of keywords/types to see what's deprecated/missing -" * Add more support for folding (:help syn-fold) -" -" If you want to have Pir code inside Q:PIR// strings highlighted, do: -" let perl6_embedded_pir=1 -" -" The above requires pir.vim, which you can find in Parrot's repository: -" https://github.com/parrot/parrot/tree/master/editor -" -" To highlight Perl 5 regexes (m:P5//): -" let perl6_perl5_regexes=1 -" -" To enable folding: -" let perl6_fold=1 - -if version < 704 | throw "perl6.vim uses regex syntax which Vim <7.4 doesn't support. Try 'make fix_old_vim' in the vim-perl repository." | endif - -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 - syntax clear -elseif exists("b:current_syntax") - finish -endif -let s:keepcpo= &cpo -set cpo&vim - -" Patterns which will be interpolated by the preprocessor (tools/preproc.pl): -" -" @@IDENT_NONDIGIT@@ "[A-Za-z_\xC0-\xFF]" -" @@IDENT_CHAR@@ "[A-Za-z_\xC0-\xFF0-9]" -" @@IDENTIFIER@@ "\%(@@IDENT_NONDIGIT@@\%(@@IDENT_CHAR@@\|[-']@@IDENT_NONDIGIT@@\@=\)*\)" -" @@IDENTIFIER_START@@ "@@IDENT_CHAR@@\@1" or "p5=>". -syn match p6KeywordStart display "\%(\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\)\@!\)\@=[A-Za-z_\xC0-\xFF0-9]\@1" nextgroup=p6Declare,p6Identifier skipwhite skipempty -syn match p6Declare display "[.^]\@1" nextgroup=p6Identifier skipwhite skipempty -syn match p6DeclareRegex display "[.^]\@1" nextgroup=p6RegexName skipwhite skipempty - -syn match p6TypeConstraint display "\%([.^]\|^\s*\)\@" -syn match p6TypeConstraint display "\%([.^]\|^\s*\)\@».;\\∈∉∋∌∩∪≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖∅∘]" -syn match p6Operator display "\%(:\@1\)" -" index overloading -syn match p6Operator display "\%(&\.(\@=\|@\.\[\@=\|%\.{\@=\)" - -" Reduce metaoperators like [+] -syn match p6ReduceOp display "\%(^\|\s\|(\)\@1<=!*\%([RSXZ\[]\)*[&RSXZ]\?\[\+(\?\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+)\?]\+" -syn match p6SetOp display "R\?(\%([-^.+|&]\|[<>][=+]\?\|cont\|elem\))" - -" Reverse, cross, and zip metaoperators -exec "syn match p6RSXZOp display \"[RSXZ]:\\@!\\%(\\a\\@=\\%(". s:alpha_metaops_or . "\\)\\>\\|[[:alnum:]]\\@!\\%([.,]\\|[^[,.[:alnum:][:space:]]\\)\\+\\|\\s\\@=\\|$\\)\"" - -syn match p6BlockLabel display "^\s*\zs\h\w*\s*::\@!\_s\@=" - -syn match p6Number display "[A-Za-z_\xC0-\xFF0-9]\@1" -syn match p6Context display "\%(\$\|@\|%\|&\)(\@=" - -" Quoting - -" one cluster for every quote adverb -syn cluster p6Interp_scalar - \ add=p6InterpScalar - -syn cluster p6Interp_array - \ add=p6InterpArray - -syn cluster p6Interp_hash - \ add=p6InterpHash - -syn cluster p6Interp_function - \ add=p6InterpFunction - -syn cluster p6Interp_closure - \ add=p6InterpClosure - -syn cluster p6Interp_q - \ add=p6EscQQ - \ add=p6EscBackSlash - -syn cluster p6Interp_backslash - \ add=@p6Interp_q - \ add=p6Escape - \ add=p6EscOpenCurly - \ add=p6EscCodePoint - \ add=p6EscHex - \ add=p6EscOct - \ add=p6EscOctOld - \ add=p6EscNull - -syn cluster p6Interp_qq - \ add=@p6Interp_scalar - \ add=@p6Interp_array - \ add=@p6Interp_hash - \ add=@p6Interp_function - \ add=@p6Interp_closure - \ add=@p6Interp_backslash - \ add=p6MatchVarSigil - -syn region p6InterpScalar - \ start="\ze\z(\$\%(\%(\%(\d\+\|!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" - \ start="\ze\z(\$\%(\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" - \ end="\z1\zs" - \ contained keepend - \ contains=TOP - -syn region p6InterpArray - \ matchgroup=p6Context - \ start="@\ze()\@!" - \ skip="([^)]*)" - \ end=")\zs" - \ contained - \ contains=TOP - -syn region p6InterpHash - \ start="\ze\z(%\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" - \ end="\z1\zs" - \ contained keepend - \ contains=TOP - -syn region p6InterpHash - \ matchgroup=p6Context - \ start="%\ze()\@!" - \ skip="([^)]*)" - \ end=")\zs" - \ contained - \ contains=TOP - -syn region p6InterpFunction - \ start="\ze\z(&\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" - \ end="\z1\zs" - \ contained keepend - \ contains=TOP - -syn region p6InterpFunction - \ matchgroup=p6Context - \ start="&\ze()\@!" - \ skip="([^)]*)" - \ end=")\zs" - \ contained - \ contains=TOP - -syn region p6InterpClosure - \ start="\\\@1" contained -syn match p6EscCloseFrench display "\\»" contained -syn match p6EscBackTick display "\\`" contained -syn match p6EscForwardSlash display "\\/" contained -syn match p6EscVerticalBar display "\\|" contained -syn match p6EscExclamation display "\\!" contained -syn match p6EscComma display "\\," contained -syn match p6EscDollar display "\\\$" contained -syn match p6EscCloseCurly display "\\}" contained -syn match p6EscCloseBracket display "\\\]" contained - -" matches :key, :!key, :$var, :key, etc -" Since we don't know in advance how the adverb ends, we use a trick. -" Consume nothing with the start pattern (\ze at the beginning), -" while capturing the whole adverb into \z1 and then putting it before -" the match start (\zs) of the end pattern. -syn region p6Adverb - \ start="\ze\z(:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\?\)" - \ start="\ze\z(:!\?[@$%]\$*\%(::\|\%(\$\@1<=\d\+\|!\|/\|¢\)\|\%(\%([.^*?=!~]\|:\@1 -" Distinguishing this from the "less than" operator is tricky. For now, -" it matches if any of the following is true: -" -" * There is whitespace missing on either side of the "<", since -" people tend to put spaces around "less than". We make an exception -" for " = < ... >" assignments though. -" * It comes after "enum", "for", "any", "all", or "none" -" * It's the first or last thing on a line (ignoring whitespace) -" * It's preceded by "(\s*" or "=\s\+" -" * It's empty and terminated on the same line (e.g. <> and < >) -" -" It never matches when: -" -" * Preceded by [<+~=!] (e.g. <>, =<$foo>, * !< 3) -" * Followed by [-=] (e.g. <--, <=, <==, <->) -syn region p6StringAngle - \ matchgroup=p6Quote - \ start="\%(\<\%(enum\|for\|any\|all\|none\)\>\s*(\?\s*\)\@<=<\%(<\|=>\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" - \ start="\%(\s\|[<+~=!]\)\@\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" - \ start="[<+~=!]\@1\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" - \ start="\%(^\s*\)\@<=<\%(<\|=>\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" - \ start="[<+~=!]\@1\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" - \ start="<\%(\s*>\)\@=" - \ skip="\\\@1" - \ end=">" - \ contains=p6InnerAnglesOne,p6EscBackSlash,p6EscCloseAngle - -syn region p6StringAngleFixed - \ matchgroup=p6Quote - \ start="<" - \ skip="\\\@1" - \ end=">" - \ contains=p6InnerAnglesOne,p6EscBackSlash,p6EscCloseAngle - \ contained - -syn region p6InnerAnglesOne - \ matchgroup=p6StringAngle - \ start="\\\@1" - \ end=">" - \ transparent contained - \ contains=p6InnerAnglesOne - -" <> -syn region p6StringAngles - \ matchgroup=p6Quote - \ start="<<=\@!" - \ skip="\\\@1" - \ end=">>" - \ contains=p6InnerAnglesTwo,@p6Interp_qq,p6Comment,p6BracketComment,p6EscHash,p6EscCloseAngle,p6Adverb,p6StringSQ,p6StringDQ - -syn region p6InnerAnglesTwo - \ matchgroup=p6StringAngles - \ start="<<" - \ skip="\\\@1" - \ end=">>" - \ transparent contained - \ contains=p6InnerAnglesTwo - -" «words» -syn region p6StringFrench - \ matchgroup=p6Quote - \ start="«" - \ skip="\\\@1" and "«»" strings in order to override -" them, but before other types of strings, to avoid matching those delimiters -" as parts of hyperops. -syn match p6HyperOp display #[^[:digit:][{('",:[:space:]][^[{('",:[:space:]]*\%(«\|<<\)# -syn match p6HyperOp display "«\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+[«»]" -syn match p6HyperOp display "»\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+\%(«\|»\?\)" -syn match p6HyperOp display "<<\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+\%(<<\|>>\)" -syn match p6HyperOp display ">>\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+\%(<<\|\%(>>\)\?\)" - -" 'string' -syn region p6StringSQ - \ matchgroup=p6Quote - \ start="'" - \ skip="\\\@1", "p6EscCloseAngle", "\\%(\\\\\\@1\\|<[^>]*>\\)"], - \ ["French", "«", "»", "p6EscCloseFrench", "\\%(\\\\\\@1, @ -syn region p6MatchVarSigil - \ matchgroup=p6Variable - \ start="[$@]\%(<<\@!\)\@=" - \ end=">\@1<=" - \ contains=p6MatchVar - -syn region p6MatchVar - \ matchgroup=p6Twigil - \ start="<" - \ end=">" - \ contained - -syn region p6RxClosure - \ matchgroup=p6Normal - \ start="{" - \ end="}" - \ contained - \ containedin=p6RxClosure - \ contains=TOP -syn region p6RxGroup - \ matchgroup=p6StringSpecial2 - \ start="\[" - \ end="]" - \ contained - \ contains=@p6Regexen,@p6Variables,p6MatchVarSigil -syn region p6RxAssertion - \ matchgroup=p6StringSpecial2 - \ start="<\%(?\?\%(before\|after\)\|\%(\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)=\)\|[+?*]\)\?" - \ end=">" - \ contained - \ contains=@p6Regexen,p6Identifier,@p6Variables,p6RxCharClass,p6RxAssertCall -syn region p6RxAssertGroup - \ matchgroup=p6StringSpecial2 - \ start="<\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)=\[" - \ skip="\\\@1" - \ contained keepend - \ contains=TOP -syn match p6RxBoundary display contained "\%([«»]\|<<\|>>\)" -syn region p6RxCharClass - \ matchgroup=p6StringSpecial2 - \ start="\%(<[-!+?]\?\)\@2<=\[" - \ skip="\\]" - \ end="]" - \ contained - \ contains=p6RxRange,p6RxEscape,p6EscHex,p6EscOct,p6EscCodePoint,p6EscNull -syn region p6RxQuoteWords - \ matchgroup=p6StringSpecial2 - \ start="<\s" - \ end="\s\?>" - \ contained -syn region p6RxAdverb - \ start="\ze\z(:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)" - \ end="\z1\zs" - \ contained keepend - \ contains=TOP -syn region p6RxAdverbArg - \ start="\%(:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\@<=(" - \ skip="([^)]\{-})" - \ end=")" - \ contained - \ keepend - \ contains=TOP -syn region p6RxStorage - \ matchgroup=p6Operator - \ start="\%(^\s*\)\@<=:\%(my\>\|temp\>\)\@=" - \ end="$" - \ contains=TOP - \ contained - \ keepend - -" 'string' inside a regex -syn region p6RxStringSQ - \ matchgroup=p6Quote - \ start="'" - \ skip="\\\@1\)\)\@=" -syn match p6VarSlash display "\$/" -syn match p6VarExclam display "\$!" -syn match p6VarMatch display "\$¢" -syn match p6VarNum display "\$\d\+" -syn match p6Variable display "self" -syn match p6Variable display "[@$%&]\?[@&$%]\$*\%(::\|\%(\%([.^*?=!~]\|:\@1>\)" contained -syn match p6Twigil display "\%([.^*?=!~]\|:\@1\|\<\%(if\|unless\|while\|when\|where\|so\)\)\s*\)\@<=/[/=]\@!" - \ skip="\\/" - \ end="/" - \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum - -" m/foo/, m$foo$, m!foo!, etc -syn region p6Match - \ matchgroup=p6Quote - \ start=+\z([/!$,|`"]\)+ - \ skip="\\\z1" - \ end="\z1" - \ contained - \ contains=@p6Regexen,p6Variable,p6VarNum - -" m, m«foo», m{foo}, etc -for [name, start_delim, end_delim, end_group, skip] in s:bracketing_delims - exec "syn region p6Match matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contained keepend contains=@p6Regexen,@p6Variables" -endfor - -" Substitutions - -" s/foo//, s$foo$$, s!foo!!, etc -syn region p6Substitution - \ matchgroup=p6Quote - \ start=+\z([/!$,|`"]\)+ - \ skip="\\\z1" - \ end="\z1"me=e-1 - \ contained - \ contains=@p6Regexen,p6Variable,p6VarNum - \ nextgroup=p6Replacement - -syn region p6Replacement - \ matchgroup=p6Quote - \ start="\z(.\)" - \ skip="\\\z1" - \ end="\z1" - \ contained - \ contains=@p6Interp_qq - -" s, s«foo»«bar», s{foo}{bar}, etc -for [name, start_delim, end_delim, end_group, skip] in s:bracketing_delims - exec "syn region p6Substitution matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contained keepend contains=@p6Regexen,@p6Variables nextgroup=p6Repl".name - exec "syn region p6Repl".name." matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contained keepend contains=@p6Interp_qq" -endfor - -" Transliteration - -" tr/foo/bar/, tr|foo|bar, etc -syn region p6Transliteration - \ matchgroup=p6Quote - \ start=+\z([/!$,|`"]\)+ - \ skip="\\\z1" - \ end="\z1"me=e-1 - \ contained - \ contains=p6RxRange - \ nextgroup=p6TransRepl - -syn region p6TransRepl - \ matchgroup=p6Quote - \ start="\z(.\)" - \ skip="\\\z1" - \ end="\z1" - \ contained - \ contains=@p6Interp_qq,p6RxRange - -" tr, tr«foo»«bar», tr{foo}{bar}, etc -for [name, start_delim, end_delim, end_group, skip] in s:bracketing_delims - exec "syn region p6Transliteration matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contained keepend contains=p6RxRange nextgroup=p6TransRepl".name - exec "syn region p6TransRepl".name." matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contained keepend contains=@p6Interp_qq,p6RxRange" -endfor -unlet s:bracketing_delims - -if exists("perl6_perl5_regexes") || exists("perl6_extended_all") - -" Perl 5 regex regions - -syn cluster p6RegexP5Base - \ add=p6RxP5Escape - \ add=p6RxP5Oct - \ add=p6RxP5Hex - \ add=p6RxP5EscMeta - \ add=p6RxP5CodePoint - \ add=p6RxP5Prop - -" normal regex stuff -syn cluster p6RegexP5 - \ add=@p6RegexP5Base - \ add=p6RxP5Quantifier - \ add=p6RxP5Meta - \ add=p6RxP5QuoteMeta - \ add=p6RxP5ParenMod - \ add=p6RxP5Verb - \ add=p6RxP5Count - \ add=p6RxP5Named - \ add=p6RxP5ReadRef - \ add=p6RxP5WriteRef - \ add=p6RxP5CharClass - \ add=p6RxP5Anchor - -" inside character classes -syn cluster p6RegexP5Class - \ add=@p6RegexP5Base - \ add=p6RxP5Posix - \ add=p6RxP5Range - -syn match p6RxP5Escape display contained "\\\S" -syn match p6RxP5CodePoint display contained "\\c\S\@=" nextgroup=p6RxP5CPId -syn match p6RxP5CPId display contained "\S" -syn match p6RxP5Oct display contained "\\\%(\o\{1,3}\)\@=" nextgroup=p6RxP5OctSeq -syn match p6RxP5OctSeq display contained "\o\{1,3}" -syn match p6RxP5Anchor display contained "[\^$]" -syn match p6RxP5Hex display contained "\\x\%({\x\+}\|\x\{1,2}\)\@=" nextgroup=p6RxP5HexSeq -syn match p6RxP5HexSeq display contained "\x\{1,2}" -syn region p6RxP5HexSeq - \ matchgroup=p6RxP5Escape - \ start="{" - \ end="}" - \ contained -syn region p6RxP5Named - \ matchgroup=p6RxP5Escape - \ start="\%(\\N\)\@2<={" - \ end="}" - \ contained -syn match p6RxP5Quantifier display contained "\%([+*]\|(\@1" - \ contained -syn match p6RxP5WriteRef display contained "\\g\%(\d\|{\)\@=" nextgroup=p6RxP5WriteRefId -syn match p6RxP5WriteRefId display contained "\d\+" -syn region p6RxP5WriteRefId - \ matchgroup=p6RxP5Escape - \ start="{" - \ end="}" - \ contained -syn match p6RxP5Prop display contained "\\[pP]\%(\a\|{\)\@=" nextgroup=p6RxP5PropId -syn match p6RxP5PropId display contained "\a" -syn region p6RxP5PropId - \ matchgroup=p6RxP5Escape - \ start="{" - \ end="}" - \ contained -syn match p6RxP5Meta display contained "[(|).]" -syn match p6RxP5ParenMod display contained "(\@1<=?\@=" nextgroup=p6RxP5Mod,p6RxP5ModName,p6RxP5Code -syn match p6RxP5Mod display contained "?\%(<\?=\|<\?!\|[#:|]\)" -syn match p6RxP5Mod display contained "?-\?[impsx]\+" -syn match p6RxP5Mod display contained "?\%([-+]\?\d\+\|R\)" -syn match p6RxP5Mod display contained "?(DEFINE)" -syn match p6RxP5Mod display contained "?\%(&\|P[>=]\)" nextgroup=p6RxP5ModDef -syn match p6RxP5ModDef display contained "\h\w*" -syn region p6RxP5ModName - \ matchgroup=p6StringSpecial - \ start="?'" - \ end="'" - \ contained -syn region p6RxP5ModName - \ matchgroup=p6StringSpecial - \ start="?P\?<" - \ end=">" - \ contained -syn region p6RxP5Code - \ matchgroup=p6StringSpecial - \ start="??\?{" - \ end="})\@=" - \ contained - \ contains=TOP -syn match p6RxP5EscMeta display contained "\\[?*.{}()[\]|\^$]" -syn match p6RxP5Count display contained "\%({\d\+\%(,\%(\d\+\)\?\)\?}\)\@=" nextgroup=p6RxP5CountId -syn region p6RxP5CountId - \ matchgroup=p6RxP5Escape - \ start="{" - \ end="}" - \ contained -syn match p6RxP5Verb display contained "(\@1<=\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\?\|\%(MARK\|\):[^)]*\|COMMIT\|F\%(AIL\)\?\|ACCEPT\)" -syn region p6RxP5QuoteMeta - \ matchgroup=p6RxP5Escape - \ start="\\Q" - \ end="\\E" - \ contained - \ contains=@p6Variables,p6EscBackSlash -syn region p6RxP5CharClass - \ matchgroup=p6StringSpecial - \ start="\[\^\?" - \ skip="\\]" - \ end="]" - \ contained - \ contains=@p6RegexP5Class -syn region p6RxP5Posix - \ matchgroup=p6RxP5Escape - \ start="\[:" - \ end=":]" - \ contained -syn match p6RxP5Range display contained "-" - -" m:P5// -syn region p6Match - \ matchgroup=p6Quote - \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@2 -syn region p6Match - \ matchgroup=p6Quote - \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@2\@!" - \ skip="\\>" - \ end=">" - \ contains=@p6RegexP5,p6Variables - -" m:P5«» -syn region p6Match - \ matchgroup=p6Quote - \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@2]*>" - \ end=">" - \ contains=p6Attention,p6BracketComment -syn region p6BracketComment - \ start="#[`|=]«" - \ skip="«[^»]*»" - \ end="»" - \ contains=p6Attention,p6BracketComment - -" Comments with double and triple delimiters -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]((" - \ skip="((\%([^)\|))\@!]\)*))" - \ end="))" - \ contains=p6Attention,p6BracketComment -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=](((" - \ skip="(((\%([^)]\|)\%())\)\@!\)*)))" - \ end=")))" - \ contains=p6Attention,p6BracketComment - -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]\[\[" - \ skip="\[\[\%([^\]]\|]]\@!\)*]]" - \ end="]]" - \ contains=p6Attention,p6BracketComment -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]\[\[\[" - \ skip="\[\[\[\%([^\]]\|]\%(]]\)\@!\)*]]]" - \ end="]]]" - \ contains=p6Attention,p6BracketComment - -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]{{" - \ skip="{{\%([^}]\|}}\@!\)*}}" - \ end="}}" - \ contains=p6Attention,p6BracketComment -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]{{{" - \ skip="{{{\%([^}]\|}\%(}}\)\@!\)*}}}" - \ end="}}}" - \ contains=p6Attention,p6BracketComment - -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]<<" - \ skip="<<\%([^>]\|>>\@!\)*>>" - \ end=">>" - \ contains=p6Attention,p6BracketComment -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]<<<" - \ skip="<<<\%([^>]\|>\%(>>\)\@!\)*>>>" - \ end=">>>" - \ contains=p6Attention,p6BracketComment - -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]««" - \ skip="««\%([^»]\|»»\@!\)*»»" - \ end="»»" - \ contains=p6Attention,p6BracketComment -syn region p6BracketComment - \ matchgroup=p6BracketComment - \ start="#[`|=]«««" - \ skip="«««\%([^»]\|»\%(»»\)\@!\)*»»»" - \ end="»»»" - \ contains=p6Attention,p6BracketComment - -syn match p6Shebang display "\%^#!.*" - -" => and p5=> autoquoting -syn match p6StringP5Auto display "\.\@1" -syn match p6StringAuto display "\.\@1" -syn match p6StringAuto display "\.\@1" -syn match p6StringAuto display "\.\@1" - -" Pod - -" Abbreviated blocks (implicit code forbidden) -syn region p6PodAbbrRegion - \ matchgroup=p6PodPrefix - \ start="^\s*\zs=\ze\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodAbbrNoCodeType - \ keepend - -syn region p6PodAbbrNoCodeType - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodName,p6PodAbbrNoCode - -syn match p6PodName contained ".\+" contains=@p6PodFormat -syn match p6PodComment contained ".\+" - -syn region p6PodAbbrNoCode - \ start="^" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=@p6PodFormat - -" Abbreviated blocks (everything is code) -syn region p6PodAbbrRegion - \ matchgroup=p6PodPrefix - \ start="^\s*\zs=\zecode\>" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodAbbrCodeType - \ keepend - -syn region p6PodAbbrCodeType - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodName,p6PodAbbrCode - -syn region p6PodAbbrCode - \ start="^" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - -" Abbreviated blocks (everything is a comment) -syn region p6PodAbbrRegion - \ matchgroup=p6PodPrefix - \ start="^=\zecomment\>" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodAbbrCommentType - \ keepend - -syn region p6PodAbbrCommentType - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodComment,p6PodAbbrNoCode - -" Abbreviated blocks (implicit code allowed) -syn region p6PodAbbrRegion - \ matchgroup=p6PodPrefix - \ start="^=\ze\%(pod\|item\|nested\|\u\+\)\>" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodAbbrType - \ keepend - -syn region p6PodAbbrType - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodName,p6PodAbbr - -syn region p6PodAbbr - \ start="^" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=@p6PodFormat,p6PodImplicitCode - -" Abbreviated block to end-of-file -syn region p6PodAbbrRegion - \ matchgroup=p6PodPrefix - \ start="^=\zeEND\>" - \ end="\%$" - \ contains=p6PodAbbrEOFType - \ keepend - -syn region p6PodAbbrEOFType - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="\%$" - \ contained - \ contains=p6PodName,p6PodAbbrEOF - -syn region p6PodAbbrEOF - \ start="^" - \ end="\%$" - \ contained - \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode - -" Directives -syn region p6PodDirectRegion - \ matchgroup=p6PodPrefix - \ start="^=\%(config\|use\)\>" - \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" - \ contains=p6PodDirectArgRegion - \ keepend - -syn region p6PodDirectArgRegion - \ matchgroup=p6PodType - \ start="\S\+" - \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" - \ contained - \ contains=p6PodDirectConfigRegion - -syn region p6PodDirectConfigRegion - \ start="" - \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" - \ contained - \ contains=@p6PodConfig - -" =encoding is a special directive -syn region p6PodDirectRegion - \ matchgroup=p6PodPrefix - \ start="^=encoding\>" - \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" - \ contains=p6PodEncodingArgRegion - \ keepend - -syn region p6PodEncodingArgRegion - \ matchgroup=p6PodName - \ start="\S\+" - \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" - \ contained - -" Paragraph blocks (implicit code forbidden) -syn region p6PodParaRegion - \ matchgroup=p6PodPrefix - \ start="^\s*\zs=for\>" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodParaNoCodeTypeRegion - \ keepend extend - -syn region p6PodParaNoCodeTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodParaNoCode,p6PodParaConfigRegion - -syn region p6PodParaConfigRegion - \ start="" - \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\@1\ze\s*code\>" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodParaCodeTypeRegion - \ keepend extend - -syn region p6PodParaCodeTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodParaCode,p6PodParaConfigRegion - -syn region p6PodParaCode - \ start="^[^=]" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - -" Paragraph blocks (implicit code allowed) -syn region p6PodParaRegion - \ matchgroup=p6PodPrefix - \ start="^\s*\zs=for\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>" - \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contains=p6PodParaTypeRegion - \ keepend extend - -syn region p6PodParaTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=p6PodPara,p6PodParaConfigRegion - -syn region p6PodPara - \ start="^[^=]" - \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" - \ contained - \ contains=@p6PodFormat,p6PodImplicitCode - -" Paragraph block to end-of-file -syn region p6PodParaRegion - \ matchgroup=p6PodPrefix - \ start="^=for\>\ze\s\+END\>" - \ end="\%$" - \ contains=p6PodParaEOFTypeRegion - \ keepend extend - -syn region p6PodParaEOFTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="\%$" - \ contained - \ contains=p6PodParaEOF,p6PodParaConfigRegion - -syn region p6PodParaEOF - \ start="^[^=]" - \ end="\%$" - \ contained - \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode - -" Delimited blocks (implicit code forbidden) -syn region p6PodDelimRegion - \ matchgroup=p6PodPrefix - \ start="^\z(\s*\)\zs=begin\>" - \ end="^\z1\zs=end\>" - \ contains=p6PodDelimNoCodeTypeRegion - \ keepend extend skipwhite - \ nextgroup=p6PodType - -syn region p6PodDelimNoCodeTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\s*\zs\ze=end\>" - \ contained - \ contains=p6PodDelimNoCode,p6PodDelimConfigRegion - -syn region p6PodDelimConfigRegion - \ start="" - \ end="^\s*\zs\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" - \ contained - \ contains=@p6PodConfig - -syn region p6PodDelimNoCode - \ start="^" - \ end="^\s*\zs\ze=end\>" - \ contained - \ contains=@p6PodNestedBlocks,@p6PodFormat - -" Delimited blocks (everything is code) -syn region p6PodDelimRegion - \ matchgroup=p6PodPrefix - \ start="^\z(\s*\)\zs=begin\>\ze\s*code\>" - \ end="^\z1\zs=end\>" - \ contains=p6PodDelimCodeTypeRegion - \ keepend extend skipwhite - \ nextgroup=p6PodType - -syn region p6PodDelimCodeTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\s*\zs\ze=end\>" - \ contained - \ contains=p6PodDelimCode,p6PodDelimConfigRegion - -syn region p6PodDelimCode - \ start="^" - \ end="^\s*\zs\ze=end\>" - \ contained - \ contains=@p6PodNestedBlocks - -" Delimited blocks (implicit code allowed) -syn region p6PodDelimRegion - \ matchgroup=p6PodPrefix - \ start="^\z(\s*\)\zs=begin\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>" - \ end="^\z1\zs=end\>" - \ contains=p6PodDelimTypeRegion - \ keepend extend skipwhite - \ nextgroup=p6PodType - -syn region p6PodDelimTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="^\s*\zs\ze=end\>" - \ contained - \ contains=p6PodDelim,p6PodDelimConfigRegion - -syn region p6PodDelim - \ start="^" - \ end="^\s*\zs\ze=end\>" - \ contained - \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode - -" Delimited block to end-of-file -syn region p6PodDelimRegion - \ matchgroup=p6PodPrefix - \ start="^=begin\>\ze\s\+END\>" - \ end="\%$" - \ extend - \ contains=p6PodDelimEOFTypeRegion - -syn region p6PodDelimEOFTypeRegion - \ matchgroup=p6PodType - \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - \ end="\%$" - \ contained - \ contains=p6PodDelimEOF,p6PodDelimConfigRegion - -syn region p6PodDelimEOF - \ start="^" - \ end="\%$" - \ contained - \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode - -syn cluster p6PodConfig - \ add=p6PodConfigOperator - \ add=p6PodExtraConfig - \ add=p6StringAuto - \ add=p6PodAutoQuote - \ add=p6StringSQ - -syn region p6PodParens - \ start="(" - \ end=")" - \ contained - \ contains=p6Number,p6StringSQ - -syn match p6PodAutoQuote display contained "=>" -syn match p6PodConfigOperator display contained ":!\?" nextgroup=p6PodConfigOption -syn match p6PodConfigOption display contained "[^[:space:](<]\+" nextgroup=p6PodParens,p6StringAngle -syn match p6PodExtraConfig display contained "^=" -syn match p6PodVerticalBar display contained "|" -syn match p6PodColon display contained ":" -syn match p6PodSemicolon display contained ";" -syn match p6PodComma display contained "," -syn match p6PodImplicitCode display contained "^\s.*" -syn match p6PodType display contained "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" - -" These may appear inside delimited blocks -syn cluster p6PodNestedBlocks - \ add=p6PodAbbrRegion - \ add=p6PodDirectRegion - \ add=p6PodParaRegion - \ add=p6PodDelimRegion - -" Pod formatting codes - -syn cluster p6PodFormat - \ add=p6PodFormatOne - \ add=p6PodFormatTwo - \ add=p6PodFormatThree - \ add=p6PodFormatFrench - -" Balanced angles found inside formatting codes. Ensures proper nesting. - -syn region p6PodFormatAnglesOne - \ matchgroup=p6PodFormat - \ start="<" - \ skip="<[^>]*>" - \ end=">" - \ transparent contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne - -syn region p6PodFormatAnglesTwo - \ matchgroup=p6PodFormat - \ start="<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ transparent contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne,p6PodFormatAnglesTwo - -syn region p6PodFormatAnglesThree - \ matchgroup=p6PodFormat - \ start="<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ transparent contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne,p6PodFormatAnglesTwo,p6PodFormatAnglesThree - -syn region p6PodFormatAnglesFrench - \ matchgroup=p6PodFormat - \ start="«" - \ skip="«[^»]*»" - \ end="»" - \ transparent contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatAnglesOne,p6PodFormatAnglesTwo,p6PodFormatAnglesThree - -" All formatting codes - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="\u<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="\u<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="\u<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="\u«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree - -" C<> and V<> don't allow nested formatting formatting codes - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="[CV]<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="[CV]<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAnglesTwo - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="[CV]<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="[CV]«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench - -" L<> can have a "|" separator - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="L<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodVerticalBar - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="L<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodVerticalBar - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="L<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="L«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar - -" E<> can have a ";" separator - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="E<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodSemiColon - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="E<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodSemiColon - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="E<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodSemiColon - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="E«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodSemiColon - -" M<> can have a ":" separator - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="M<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodColon - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="M<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodColon - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="M<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodColon - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="M«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodColon - -" D<> can have "|" and ";" separators - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="D<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodVerticalBar,p6PodSemiColon - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="D<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAngleTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodVerticalBar,p6PodSemiColon - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="D<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="D«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon - -" X<> can have "|", "," and ";" separators - -syn region p6PodFormatOne - \ matchgroup=p6PodFormatCode - \ start="X<" - \ skip="<[^>]*>" - \ end=">" - \ contained - \ contains=p6PodFormatAnglesOne,p6PodFormatFrench,p6PodFormatOne,p6PodVerticalBar,p6PodSemiColon,p6PodComma - -syn region p6PodFormatTwo - \ matchgroup=p6PodFormatCode - \ start="X<<" - \ skip="<<[^>]*>>" - \ end=">>" - \ contained - \ contains=p6PodFormatAnglesTwo,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodVerticalBar,p6PodSemiColon,p6PodComma - -syn region p6PodFormatThree - \ matchgroup=p6PodFormatCode - \ start="X<<<" - \ skip="<<<[^>]*>>>" - \ end=">>>" - \ contained - \ contains=p6PodFormatAnglesThree,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon,p6PodComma - -syn region p6PodFormatFrench - \ matchgroup=p6PodFormatCode - \ start="X«" - \ skip="«[^»]*»" - \ end="»" - \ contained - \ contains=p6PodFormatAnglesFrench,p6PodFormatFrench,p6PodFormatOne,p6PodFormatTwo,p6PodFormatThree,p6PodVerticalBar,p6PodSemiColon,p6PodComma - -" Define the default highlighting. -" For version 5.7 and earlier: only when not done already -" For version 5.8 and later: only when an item doesn't have highlighting yet -if version >= 508 || !exists("did_perl6_syntax_inits") - if version < 508 - let did_perl6_syntax_inits = 1 - command -nargs=+ HiLink hi link - else - command -nargs=+ HiLink hi def link - endif - - HiLink p6EscOctOld p6Error - HiLink p6PackageTwigil p6Twigil - HiLink p6StringAngle p6String - HiLink p6StringAngleFixed p6String - HiLink p6StringFrench p6String - HiLink p6StringAngles p6String - HiLink p6StringSQ p6String - HiLink p6StringDQ p6String - HiLink p6StringQ p6String - HiLink p6StringQ_q p6String - HiLink p6StringQ_qww p6String - HiLink p6StringQ_qq p6String - HiLink p6StringQ_to p6String - HiLink p6StringQ_qto p6String - HiLink p6StringQ_qqto p6String - HiLink p6RxStringSQ p6String - HiLink p6RxStringDQ p6String - HiLink p6Replacement p6String - HiLink p6ReplCurly p6String - HiLink p6ReplAngle p6String - HiLink p6ReplFrench p6String - HiLink p6ReplBracket p6String - HiLink p6ReplParen p6String - HiLink p6Transliteration p6String - HiLink p6TransRepl p6String - HiLink p6TransReplCurly p6String - HiLink p6TransReplAngle p6String - HiLink p6TransReplFrench p6String - HiLink p6TransReplBracket p6String - HiLink p6TransReplParen p6String - HiLink p6StringAuto p6String - HiLink p6StringP5Auto p6String - HiLink p6Key p6String - HiLink p6Match p6String - HiLink p6Substitution p6String - HiLink p6MatchBare p6String - HiLink p6RegexBlock p6String - HiLink p6RxP5CharClass p6String - HiLink p6RxP5QuoteMeta p6String - HiLink p6RxCharClass p6String - HiLink p6RxQuoteWords p6String - HiLink p6ReduceOp p6Operator - HiLink p6SetOp p6Operator - HiLink p6RSXZOp p6Operator - HiLink p6HyperOp p6Operator - HiLink p6PostHyperOp p6Operator - HiLink p6QuoteQ p6Quote - HiLink p6QuoteQ_q p6Quote - HiLink p6QuoteQ_qww p6Quote - HiLink p6QuoteQ_qq p6Quote - HiLink p6QuoteQ_to p6Quote - HiLink p6QuoteQ_qto p6Quote - HiLink p6QuoteQ_qqto p6Quote - HiLink p6QuoteQ_PIR p6Quote - HiLink p6MatchStart_m p6Quote - HiLink p6MatchStart_s p6Quote - HiLink p6MatchStart_tr p6Quote - HiLink p6BareSigil p6Variable - HiLink p6RxRange p6StringSpecial - HiLink p6RxAnchor p6StringSpecial - HiLink p6RxBoundary p6StringSpecial - HiLink p6RxP5Anchor p6StringSpecial - HiLink p6CodePoint p6StringSpecial - HiLink p6RxMeta p6StringSpecial - HiLink p6RxP5Range p6StringSpecial - HiLink p6RxP5CPId p6StringSpecial - HiLink p6RxP5Posix p6StringSpecial - HiLink p6RxP5Mod p6StringSpecial - HiLink p6RxP5HexSeq p6StringSpecial - HiLink p6RxP5OctSeq p6StringSpecial - HiLink p6RxP5WriteRefId p6StringSpecial - HiLink p6HexSequence p6StringSpecial - HiLink p6OctSequence p6StringSpecial - HiLink p6RxP5Named p6StringSpecial - HiLink p6RxP5PropId p6StringSpecial - HiLink p6RxP5Quantifier p6StringSpecial - HiLink p6RxP5CountId p6StringSpecial - HiLink p6RxP5Verb p6StringSpecial - HiLink p6RxAssertGroup p6StringSpecial2 - HiLink p6Escape p6StringSpecial2 - HiLink p6EscNull p6StringSpecial2 - HiLink p6EscHash p6StringSpecial2 - HiLink p6EscQQ p6StringSpecial2 - HiLink p6EscQuote p6StringSpecial2 - HiLink p6EscDoubleQuote p6StringSpecial2 - HiLink p6EscBackTick p6StringSpecial2 - HiLink p6EscForwardSlash p6StringSpecial2 - HiLink p6EscVerticalBar p6StringSpecial2 - HiLink p6EscExclamation p6StringSpecial2 - HiLink p6EscDollar p6StringSpecial2 - HiLink p6EscOpenCurly p6StringSpecial2 - HiLink p6EscCloseCurly p6StringSpecial2 - HiLink p6EscCloseBracket p6StringSpecial2 - HiLink p6EscCloseAngle p6StringSpecial2 - HiLink p6EscCloseFrench p6StringSpecial2 - HiLink p6EscBackSlash p6StringSpecial2 - HiLink p6EscCodePoint p6StringSpecial2 - HiLink p6EscOct p6StringSpecial2 - HiLink p6EscHex p6StringSpecial2 - HiLink p6RxEscape p6StringSpecial2 - HiLink p6RxCapture p6StringSpecial2 - HiLink p6RxAlternation p6StringSpecial2 - HiLink p6RxP5 p6StringSpecial2 - HiLink p6RxP5ReadRef p6StringSpecial2 - HiLink p6RxP5Oct p6StringSpecial2 - HiLink p6RxP5Hex p6StringSpecial2 - HiLink p6RxP5EscMeta p6StringSpecial2 - HiLink p6RxP5Meta p6StringSpecial2 - HiLink p6RxP5Escape p6StringSpecial2 - HiLink p6RxP5CodePoint p6StringSpecial2 - HiLink p6RxP5WriteRef p6StringSpecial2 - HiLink p6RxP5Prop p6StringSpecial2 - - HiLink p6Property Tag - HiLink p6Attention Todo - HiLink p6Type Type - HiLink p6Error Error - HiLink p6BlockLabel Label - HiLink p6Normal Normal - HiLink p6Identifier Normal - HiLink p6Package Normal - HiLink p6PackageScope Normal - HiLink p6Number Number - HiLink p6OctNumber Number - HiLink p6BinNumber Number - HiLink p6HexNumber Number - HiLink p6DecNumber Number - HiLink p6String String - HiLink p6Repeat Repeat - HiLink p6Pragma Keyword - HiLink p6PreDeclare Keyword - HiLink p6Declare Keyword - HiLink p6DeclareRegex Keyword - HiLink p6VarStorage Special - HiLink p6FlowControl Special - HiLink p6OctBase Special - HiLink p6BinBase Special - HiLink p6HexBase Special - HiLink p6DecBase Special - HiLink p6Twigil Special - HiLink p6StringSpecial2 Special - HiLink p6Version Special - HiLink p6Comment Comment - HiLink p6BracketComment Comment - HiLink p6Include Include - HiLink p6Shebang PreProc - HiLink p6ClosureTrait PreProc - HiLink p6Operator Operator - HiLink p6Context Operator - HiLink p6Quote Delimiter - HiLink p6TypeConstraint PreCondit - HiLink p6Exception Exception - HiLink p6Variable Identifier - HiLink p6VarSlash Identifier - HiLink p6VarNum Identifier - HiLink p6VarExclam Identifier - HiLink p6VarMatch Identifier - HiLink p6VarName Identifier - HiLink p6MatchVar Identifier - HiLink p6RxP5ReadRefId Identifier - HiLink p6RxP5ModDef Identifier - HiLink p6RxP5ModName Identifier - HiLink p6Conditional Conditional - HiLink p6StringSpecial SpecialChar - - HiLink p6PodAbbr p6Pod - HiLink p6PodAbbrEOF p6Pod - HiLink p6PodAbbrNoCode p6Pod - HiLink p6PodAbbrCode p6PodCode - HiLink p6PodPara p6Pod - HiLink p6PodParaEOF p6Pod - HiLink p6PodParaNoCode p6Pod - HiLink p6PodParaCode p6PodCode - HiLink p6PodDelim p6Pod - HiLink p6PodDelimEOF p6Pod - HiLink p6PodDelimNoCode p6Pod - HiLink p6PodDelimCode p6PodCode - HiLink p6PodImplicitCode p6PodCode - HiLink p6PodExtraConfig p6PodPrefix - HiLink p6PodVerticalBar p6PodFormatCode - HiLink p6PodColon p6PodFormatCode - HiLink p6PodSemicolon p6PodFormatCode - HiLink p6PodComma p6PodFormatCode - HiLink p6PodFormatOne p6PodFormat - HiLink p6PodFormatTwo p6PodFormat - HiLink p6PodFormatThree p6PodFormat - HiLink p6PodFormatFrench p6PodFormat - - HiLink p6PodType Type - HiLink p6PodConfigOption String - HiLink p6PodCode PreProc - HiLink p6Pod Comment - HiLink p6PodComment Comment - HiLink p6PodAutoQuote Operator - HiLink p6PodConfigOperator Operator - HiLink p6PodPrefix Statement - HiLink p6PodName Identifier - HiLink p6PodFormatCode SpecialChar - HiLink p6PodFormat SpecialComment - - delcommand HiLink -endif - -if exists("perl6_fold") || exists("perl6_extended_all") - setl foldmethod=syntax - syn region p6BlockFold - \ start="^\z(\s*\)\%(my\|our\|augment\|multi\|proto\|only\)\?\s*\%(\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\s\+\)\?\<\%(CATCH\|try\|ENTER\|LEAVE\|CHECK\|INIT\|BEGIN\|END\|KEEP\|UNDO\|PRE\|POST\|module\|package\|enum\|subset\|class\|sub\%(method\)\?\|multi\|method\|slang\|grammar\|regex\|token\|rule\)\>[^{]\+\%({\s*\%(#.*\)\?\)\?$" - \ end="^\z1}" - \ transparent fold keepend extend -endif - -let b:current_syntax = "perl6" - -let &cpo = s:keepcpo -unlet s:keepcpo - -" vim:ts=8:sts=4:sw=4:expandtab:ft=vim - -endif -- cgit v1.2.3