diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2015-05-11 15:05:13 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2015-05-11 15:05:13 +0200 |
commit | 271b63d71707720ad0d35590b8cb50f8f8f43014 (patch) | |
tree | 1b71daa457afc68465f66ee2afc9a00c1380f23d /syntax/perl6.vim | |
parent | acd7ce59503b22ac7663fc25776efe25e266f1d4 (diff) | |
download | vim-polyglot-1.13.2.tar.gz vim-polyglot-1.13.2.zip |
Updatev1.13.2
Diffstat (limited to 'syntax/perl6.vim')
-rw-r--r-- | syntax/perl6.vim | 140 |
1 files changed, 71 insertions, 69 deletions
diff --git a/syntax/perl6.vim b/syntax/perl6.vim index ed928852..1d6608d7 100644 --- a/syntax/perl6.vim +++ b/syntax/perl6.vim @@ -186,7 +186,7 @@ syn match p6ReduceOp display "\%(^\|\s\|(\)\@1<=!*\%([RSXZ\[]\)*[&RSXZ]\?\[\+(\? syn match p6SetOp display "R\?(\%([-^.+|&]\|[<>][=+]\?\|cont\|elem\))" " Reverse, cross, and zip metaoperators -exec "syn match p6RSXZOp display \"[RSXZ]:\\@!\\%(\\a\\@=\\%(". s:alpha_metaops_or . "\\)\\|[[:alnum:]]\\@!\\%([.,]\\|[^[,.[:space:]]\\)\\+\\|\\s\\@=\\|$\\)\"" +exec "syn match p6RSXZOp display \"[RSXZ]:\\@!\\%(\\a\\@=\\%(". s:alpha_metaops_or . "\\)\\>\\|[[:alnum:]]\\@!\\%([.,]\\|[^[,.[:space:]]\\)\\+\\|\\s\\@=\\|$\\)\"" syn match p6BlockLabel display "^\s*\zs\h\w*\s*::\@!\_s\@=" @@ -202,7 +202,7 @@ syn match p6BinNumber display "[01][01_]*" contained syn match p6HexNumber display "\x[[:xdigit:]_]*" contained syn match p6DecNumber display "\d[[:digit:]_]*" contained -syn match p6Version display "\<v\d\+\%(\.[*[:digit:]]\+\)*+\?" +syn match p6Version display "\<v\d\+\%(\.\%(\*\|\d\+\)\)*+\?" " Contextualizers syn match p6Context display "\<\%(item\|list\|slice\|hash\)\>" @@ -350,7 +350,7 @@ syn region p6Adverb " 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 "= " +" * It's preceded by "(\s*" or "=\s\+" " * It's empty and terminated on the same line (e.g. <> and < >) " " It never matches when: @@ -364,7 +364,7 @@ syn region p6StringAngle \ start="[<+~=!]\@1<!<\%(\s\|<\|=>\|[-=]\{1,2}\)\@!" \ start="\%(^\s*\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!" \ start="[<+~=!]\@1<!<\%(\s*$\)\@=" - \ start="\%(=\s\+\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!" + \ start="\%((\s*\|=\s\+\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!" \ start="<\%(\s*>\)\@=" \ skip="\\\@1<!\\>" \ end=">" @@ -392,7 +392,7 @@ syn region p6StringAngles \ start="<<=\@!" \ skip="\\\@1<!\\>" \ end=">>" - \ contains=p6InnerAnglesTwo,@p6Interp_qq,p6Comment,p6EscHash,p6EscCloseAngle,p6Adverb,p6StringSQ,p6StringDQ + \ contains=p6InnerAnglesTwo,@p6Interp_qq,p6Comment,p6BracketComment,p6EscHash,p6EscCloseAngle,p6Adverb,p6StringSQ,p6StringDQ syn region p6InnerAnglesTwo \ matchgroup=p6StringAngles @@ -408,7 +408,7 @@ syn region p6StringFrench \ start="«" \ skip="\\\@1<!\\»" \ end="»" - \ contains=p6InnerFrench,@p6Interp_qq,p6Comment,p6EscHash,p6EscCloseFrench,p6Adverb,p6StringSQ,p6StringDQ + \ contains=p6InnerFrench,@p6Interp_qq,p6Comment,p6BracketComment,p6EscHash,p6EscCloseFrench,p6Adverb,p6StringSQ,p6StringDQ syn region p6InnerFrench \ matchgroup=p6StringFrench @@ -454,8 +454,8 @@ syn match p6QuoteQ_qww display "qww[A-Za-z(]\@!" nextgroup=p6PairsQ_qww skipwhi syn match p6QuoteQ_qq display "qq[pwx]\?[A-Za-z(]\@!" nextgroup=p6PairsQ_qq skipwhite skipempty contained syn match p6QuoteQ_qto display "qto[A-Za-z(]\@!" nextgroup=p6StringQ_qto skipwhite skipempty contained syn match p6QuoteQ_qqto display "qqto[A-Za-z(]\@!" nextgroup=p6StringQ_qqto skipwhite skipempty contained -syn match p6QuoteQ_qto display "q\%(:\%(to\|heredoc\)[A-Za-z(]\@!\)\@=" nextgroup=p6PairsQ_qto skipwhite skipempty contained -syn match p6QuoteQ_qqto display "qq\%(:\%(to\|heredoc\)[A-Za-z(]\@!\)\@=" nextgroup=p6PairsQ_qqto skipwhite skipempty contained +syn match p6QuoteQ_qto display "q\_s*\%(:\%(to\|heredoc\)[A-Za-z(]\@!\)\@=" nextgroup=p6PairsQ_qto skipwhite skipempty contained +syn match p6QuoteQ_qqto display "qq\_s*\%(:\%(to\|heredoc\)[A-Za-z(]\@!\)\@=" nextgroup=p6PairsQ_qqto skipwhite skipempty contained syn match p6PairsQ "\%(\_s*:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(([^)]*)\)\?\)*" contained transparent skipwhite skipempty nextgroup=p6StringQ syn match p6PairsQ_q "\%(\_s*:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(([^)]*)\)\?\)*" contained transparent skipwhite skipempty nextgroup=p6StringQ_q syn match p6PairsQ_qww "\%(\_s*:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(([^)]*)\)\?\)*" contained transparent skipwhite skipempty nextgroup=p6StringQ_qww @@ -508,12 +508,6 @@ unlet s:plain_delims s:all_delims syn match p6Operator display ":\@1<!::\@!!\?" nextgroup=p6Key,p6StringAngleFixed,p6StringAngles,p6StringFrench syn match p6Key display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" contained nextgroup=p6StringAngleFixed,p6StringAngles,p6StringFrench -" => and p5=> autoquoting -syn match p6StringP5Auto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\ze\s\+p5=>" -syn match p6StringAuto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\ze\%(p5\)\@2<![RSXZ]\@1<!=>" -syn match p6StringAuto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\ze\s\+=>" -syn match p6StringAuto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)p5\ze=>" - " Regexes and grammars syn match p6DeclareRegex display "\%(regex\|rule\|token\)" nextgroup=p6RegexName skipwhite skipempty @@ -551,6 +545,7 @@ syn cluster p6Regexen \ add=p6RxStringSQ \ add=p6RxStringDQ \ add=p6Comment + \ add=p6BracketComment \ add=p6MatchVarSigil syn match p6RxMeta display contained ".\%([A-Za-z_\xC0-\xFF0-9]\|\s\)\@1<!" @@ -1007,100 +1002,106 @@ syn match p6Comment display "#`\@!.*" contains=p6Attention " Multiline comments. Arbitrary numbers of opening brackets are allowed, " but we only define regions for 1 to 3 -syn region p6Comment - \ start="#`(" +syn region p6BracketComment + \ start="#[`|=](" \ skip="([^)]*)" \ end=")" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ start="#`\[" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ start="#[`|=]\[" \ skip="\[[^\]]*]" \ end="]" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ start="#`{" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ start="#[`|=]{" \ skip="{[^}]*}" \ end="}" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ start="#`<" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ start="#[`|=]<" \ skip="<[^>]*>" \ end=">" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ start="#`«" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ start="#[`|=]«" \ skip="«[^»]*»" \ end="»" - \ contains=p6Attention,p6Comment + \ contains=p6Attention,p6BracketComment " Comments with double and triple delimiters -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`((" +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]((" \ skip="((\%([^)\|))\@!]\)*))" \ end="))" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`(((" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=](((" \ skip="(((\%([^)]\|)\%())\)\@!\)*)))" \ end=")))" - \ contains=p6Attention,p6Comment + \ contains=p6Attention,p6BracketComment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`\[\[" +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]\[\[" \ skip="\[\[\%([^\]]\|]]\@!\)*]]" \ end="]]" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`\[\[\[" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]\[\[\[" \ skip="\[\[\[\%([^\]]\|]\%(]]\)\@!\)*]]]" \ end="]]]" - \ contains=p6Attention,p6Comment + \ contains=p6Attention,p6BracketComment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`{{" +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]{{" \ skip="{{\%([^}]\|}}\@!\)*}}" \ end="}}" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`{{{" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]{{{" \ skip="{{{\%([^}]\|}\%(}}\)\@!\)*}}}" \ end="}}}" - \ contains=p6Attention,p6Comment + \ contains=p6Attention,p6BracketComment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`<<" +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]<<" \ skip="<<\%([^>]\|>>\@!\)*>>" \ end=">>" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`<<<" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]<<<" \ skip="<<<\%([^>]\|>\%(>>\)\@!\)*>>>" \ end=">>>" - \ contains=p6Attention,p6Comment + \ contains=p6Attention,p6BracketComment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`««" +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]««" \ skip="««\%([^»]\|»»\@!\)*»»" \ end="»»" - \ contains=p6Attention,p6Comment -syn region p6Comment - \ matchgroup=p6Comment - \ start="#`«««" + \ contains=p6Attention,p6BracketComment +syn region p6BracketComment + \ matchgroup=p6BracketComment + \ start="#[`|=]«««" \ skip="«««\%([^»]\|»\%(»»\)\@!\)*»»»" \ end="»»»" - \ contains=p6Attention,p6Comment + \ contains=p6Attention,p6BracketComment syn match p6Shebang display "\%^#!.*" +" => and p5=> autoquoting +syn match p6StringP5Auto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\ze\s\+p5=>" +syn match p6StringAuto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\ze\%(p5\)\@2<![RSXZ]\@1<!=>" +syn match p6StringAuto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\ze\s\+=>" +syn match p6StringAuto display "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)p5\ze=>" + " Pod " Abbreviated blocks (implicit code forbidden) @@ -1884,6 +1885,7 @@ if version >= 508 || !exists("did_perl6_syntax_inits") HiLink p6StringSpecial2 Special HiLink p6Version Special HiLink p6Comment Comment + HiLink p6BracketComment Comment HiLink p6Include Include HiLink p6Shebang PreProc HiLink p6ClosureTrait PreProc |