GRAYBYTE WORDPRESS FILE MANAGER4450

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /usr/share/vim/vim80/syntax/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /usr/share/vim/vim80/syntax//perl6.vim
" Vim syntax file
" Language:      Perl 6
" Maintainer:    vim-perl <vim-perl@googlegroups.com>
" Homepage:      http://github.com/vim-perl/vim-perl/tree/master
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change:   2013-07-21

" Contributors:  Luke Palmer <fibonaci@babylonia.flatirons.org>
"                Moritz Lenz <moritz@faui2k3.org>
"                Hinrik Örn Sigurðsson <hinrik.sig@gmail.com>
"
" 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.
"
" You can associate the extension ".pl" with the filetype "perl6" by setting
"     autocmd BufNewFile,BufRead *.pl setf perl6
" in your ~/.vimrc. But that will infringe on Perl 5, so you might want to
" put a modeline near the beginning or end of your Perl 6 files instead:
"     # vim: filetype=perl6

" TODO:
"   * Deal with s:Perl5//
"   * m:s// is a match, not a substitution
"   * Make these highlight as strings, not operators:
"       <==> <=:=> <===> <=~> <« »> «>» «<»
"   * Allow more keywords to match as function calls(leave() is export(), etc)
"   * Optimization: use nextgroup instead of lookaround (:help syn-nextgroup)
"   * Fix s''' substitutions being matched as package names
"   * Match s/// and m/// better, so things like "$s/" won't match
"   * Add more support for folding (:help syn-fold)
"   * Add more syntax syncing hooks (:help syn-sync)
"   * Q//:
"       :to, :heredoc
"       interpolate \q:s{$scalar} (though the spec isn't very clear on it)
"
" Impossible TODO?:
"   * Unspace
"   * Unicode bracketing characters for quoting (there are so many)
"   * Various tricks depending on context. I.e. we can't know when Perl
"     expects «*» to be a string or a hyperoperator. The latter is presumably
"     more common, so that's what we assume.
"   * Selective highlighting of Pod formatting codes with the :allow option
"   * Arbitrary number, order, and negation of adverbs to Q//, q//, qq//.
"     Currently only the first adverb is considered significant. Anything
"     more would require an exponential amount of regexes, making this
"     already slow syntax file even slower.
"
" 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://svn.parrot.org/parrot/trunk/editor/
"
" Some less than crucial things have been made optional to speed things up.
" Look at the comments near the if/else branches in this file to see exactly
" which features are affected. "perl6_extended_all" enables everything.
"
" The defaults are:
"
"  unlet perl6_extended_comments
"  unlet perl6_extended_q
"  unlet perl6_extended_all

" quit when a syntax file was already loaded
if exists("b:current_syntax")
    finish
endif
let s:keepcpo= &cpo
set cpo&vim

" identifiers
syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*"

" This is used in the for loops below
" Don't use the "syn keyword" construct because that always has higher
" priority than matches/regions, so the words can't be autoquoted with
" the "=>" and "p5=>" operators. All the lookaround stuff is to make sure
" we don't match them as part of some other identifier.
let s:before_keyword = " display \"\\%(\\k\\|\\K\\@<=[-']\\)\\@<!\\%("
let s:after_keyword = "\\)\\%(\\k\\|[-']\\K\\@=\\)\\@!\""

" Billions of keywords
let s:keywords = {
 \ "p6Attention": [
 \   "ACHTUNG ATTN ATTENTION FIXME NB TODO TBD WTF XXX NOTE",
 \ ],
 \ "p6DeclareRoutine": [
 \   "macro sub submethod method multi proto only rule token regex category",
 \ ],
 \ "p6Module": [
 \   "module class role package enum grammar slang subset",
 \ ],
 \ "p6Variable": [
 \   "self",
 \ ],
 \ "p6Include": [
 \   "use require",
 \ ],
 \ "p6Conditional": [
 \   "if else elsif unless",
 \ ],
 \ "p6VarStorage": [
 \   "let my our state temp has constant",
 \ ],
 \ "p6Repeat": [
 \   "for loop repeat while until gather given",
 \ ],
 \ "p6FlowControl": [
 \   "take do when next last redo return contend maybe defer",
 \   "default exit make continue break goto leave async lift",
 \ ],
 \ "p6TypeConstraint": [
 \   "is as but trusts of returns handles where augment supersede",
 \ ],
 \ "p6ClosureTrait": [
 \   "BEGIN CHECK INIT START FIRST ENTER LEAVE KEEP",
 \   "UNDO NEXT LAST PRE POST END CATCH CONTROL TEMP",
 \ ],
 \ "p6Exception": [
 \   "die fail try warn",
 \ ],
 \ "p6Property": [
 \   "prec irs ofs ors export deep binary unary reparsed rw parsed cached",
 \   "readonly defequiv will ref copy inline tighter looser equiv assoc",
 \   "required",
 \ ],
 \ "p6Number": [
 \   "NaN Inf",
 \ ],
 \ "p6Pragma": [
 \   "oo fatal",
 \ ],
 \ "p6Type": [
 \   "Object Any Junction Whatever Capture Match",
 \   "Signature Proxy Matcher Package Module Class",
 \   "Grammar Scalar Array Hash KeyHash KeySet KeyBag",
 \   "Pair List Seq Range Set Bag Mapping Void Undef",
 \   "Failure Exception Code Block Routine Sub Macro",
 \   "Method Submethod Regex Str Blob Char Byte",
 \   "Codepoint Grapheme StrPos StrLen Version Num",
 \   "Complex num complex Bit bit bool True False",
 \   "Increasing Decreasing Ordered Callable AnyChar",
 \   "Positional Associative Ordering KeyExtractor",
 \   "Comparator OrderingPair IO KitchenSink Role",
 \   "Int int int1 int2 int4 int8 int16 int32 int64",
 \   "Rat rat rat1 rat2 rat4 rat8 rat16 rat32 rat64",
 \   "Buf buf buf1 buf2 buf4 buf8 buf16 buf32 buf64",
 \   "UInt uint uint1 uint2 uint4 uint8 uint16 uint32",
 \   "uint64 Abstraction utf8 utf16 utf32",
 \ ],
 \ "p6Operator": [
 \   "div x xx mod also leg cmp before after eq ne le lt",
 \   "gt ge eqv ff fff and andthen Z X or xor",
 \   "orelse extra m mm rx s tr",
 \ ],
\ }

for [group, words] in items(s:keywords)
    let s:words_space = join(words, " ")
    let s:temp = split(s:words_space)
    let s:words = join(s:temp, "\\|")
    exec "syn match ". group ." ". s:before_keyword . s:words . s:after_keyword
endfor
unlet s:keywords s:words_space s:temp s:words

" More operators
" Don't put a "\+" at the end of the character class. That makes it so
" greedy that the "%" " in "+%foo" won't be allowed to match as a sigil,
" among other things
syn match p6Operator display "[-+/*~?|=^!%&,<>.;\\]"
syn match p6Operator display "\%(:\@<!::\@!\|::=\|\.::\)"
" these require whitespace on the left side
syn match p6Operator display "\%(\s\|^\)\@<=\%(xx=\|p5=>\)"
" "i" requires a digit to the left, and no keyword char to the right
syn match p6Operator display "\d\@<=i\k\@!"
" index overloading
syn match p6Operator display "\%(&\.(\@=\|@\.\[\@=\|%\.{\@=\)"

" all infix operators except nonassocative ones
let s:infix_a = [
    \ "div % mod +& +< +> \\~& ?& \\~< \\~> +| +\\^ \\~| \\~\\^ ?| ?\\^ xx x",
    \ "\\~ && & also <== ==> <<== ==>> == != < <= > >= \\~\\~ eq ne lt le gt",
    \ "ge =:= === eqv before after \\^\\^ min max \\^ff ff\\^ \\^ff\\^",
    \ "\\^fff fff\\^ \\^fff\\^ fff ff ::= := \\.= => , : p5=> Z minmax",
    \ "\\.\\.\\. and andthen or orelse xor \\^ += -= /= \\*= \\~= //= ||=",
    \ "+ - \\*\\* \\* // / \\~ || |",
\ ]
" nonassociative infix operators
let s:infix_n = "but does <=> leg cmp \\.\\. \\.\\.\\^\\^ \\^\\.\\. \\^\\.\\.\\^"

let s:infix_a_long = join(s:infix_a, " ")
let s:infix_a_words = split(s:infix_a_long)
let s:infix_a_pattern = join(s:infix_a_words, "\\|")

let s:infix_n_words = split(s:infix_n)
let s:infix_n_pattern = join(s:infix_n_words, "\\|")

let s:both = [s:infix_a_pattern, s:infix_n_pattern]
let s:infix = join(s:both, "\\|")

let s:infix_assoc = "!\\?\\%(" . s:infix_a_pattern . "\\)"
let s:infix = "!\\?\\%(" . s:infix . "\\)"

unlet s:infix_a s:infix_a_long s:infix_a_words s:infix_a_pattern
unlet s:infix_n s:infix_n_pattern s:both

" [+] reduce
exec "syn match p6ReduceOp display \"\\k\\@<!\\[[R\\\\]\\?!\\?". s:infix_assoc ."]\\%(«\\|<<\\)\\?\""
unlet s:infix_assoc

" Reverse and cross operators (Rop, Xop)
exec "syn match p6ReverseCrossOp display \"[RX]". s:infix ."\""

" q() or whatever() is always a function call
syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*(\@="

" basically all builtins that can be followed by parentheses
let s:routines = [
 \ "eager hyper substr index rindex grep map sort join lines hints chmod",
 \ "split reduce min max reverse truncate zip cat roundrobin classify",
 \ "first sum keys values pairs defined delete exists elems end kv any",
 \ "all one wrap shape key value name pop push shift splice unshift floor",
 \ "ceiling abs exp log log10 rand sign sqrt sin cos tan round strand",
 \ "roots cis unpolar polar atan2 pick chop p5chop chomp p5chomp lc",
 \ "lcfirst uc ucfirst capitalize normalize pack unpack quotemeta comb",
 \ "samecase sameaccent chars nfd nfc nfkd nfkc printf sprintf caller",
 \ "evalfile run runinstead nothing want bless chr ord gmtime time eof",
 \ "localtime gethost getpw chroot getlogin getpeername kill fork wait",
 \ "perl graphs codes bytes clone print open read write readline say seek",
 \ "close opendir readdir slurp pos fmt vec link unlink symlink uniq pair",
 \ "asin atan sec cosec cotan asec acosec acotan sinh cosh tanh asinh",
 \ "acos acosh atanh sech cosech cotanh sech acosech acotanh asech ok",
 \ "plan_ok dies_ok lives_ok skip todo pass flunk force_todo use_ok isa_ok",
 \ "diag is_deeply isnt like skip_rest unlike cmp_ok eval_dies_ok nok_error",
 \ "eval_lives_ok approx is_approx throws_ok version_lt plan eval succ pred",
 \ "times nonce once signature new connect operator undef undefine sleep",
 \ "from to infix postfix prefix circumfix postcircumfix minmax lazy count",
 \ "unwrap getc pi e context void quasi body each contains rewinddir subst",
 \ "can isa flush arity assuming rewind callwith callsame nextwith nextsame",
 \ "attr eval_elsewhere none srand trim trim_start trim_end lastcall WHAT",
 \ "WHERE HOW WHICH VAR WHO WHENCE ACCEPTS REJECTS does not true iterator by",
 \ "re im invert flip",
\ ]

" we want to highlight builtins like split() though, so this comes afterwards
" TODO: check if this would be faster as one big regex
let s:words_space = join(s:routines, " ")
let s:temp = split(s:words_space)
let s:words = join(s:temp, "\\|")
exec "syn match p6Routine ". s:before_keyword . s:words . s:after_keyword
unlet s:before_keyword s:after_keyword s:words_space s:temp s:words s:routines

" packages, must come after all the keywords
syn match p6Normal display "\%(::\)\@<=\K\%(\k\|[-']\K\@=\)*"
syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*\%(::\)\@="

" some standard packages
syn match p6Type display "\%(::\|\k\|\K\@<=[-']\)\@<!\%(Order\%(::Same\|::Increase\|::Decrease\)\?\)\%(\k\|[-']\K\@=\)\@!"
syn match p6Type display "\%(::\|\k\|\K\@<=[-']\)\@<!\%(Bool\%(::True\|::False\)\?\)\%(\k\|[-']\K\@=\)\@!"


syn match p6Shebang    display "\%^#!.*"
syn match p6BlockLabel display "\%(^\s*\)\@<=\h\w*\s*::\@!\_s\@="
syn match p6Number     display "\k\@<!_\@!\%(\d\|__\@!\)\+_\@<!\%([eE]_\@!+\?\%(\d\|_\)\+\)\?_\@<!"
syn match p6Float      display "\k\@<!_\@!\%(\d\|__\@!\)\+_\@<![eE]_\@!-\%(\d\|_\)\+"
syn match p6Float      display "\k\@<!_\@<!\%(\d\|__\@!\)*_\@<!\.\@<!\._\@!\.\@!\a\@!\%(\d\|_\)\+_\@<!\%([eE]_\@!\%(\d\|_\)\+\)\?"

syn match p6NumberBase display "[obxd]" contained
syn match p6Number     display "\<0\%(o[0-7][0-7_]*\)\@="     nextgroup=p6NumberBase
syn match p6Number     display "\<0\%(b[01][01_]*\)\@="       nextgroup=p6NumberBase
syn match p6Number     display "\<0\%(x\x[[:xdigit:]_]*\)\@=" nextgroup=p6NumberBase
syn match p6Number     display "\<0\%(d\d[[:digit:]_]*\)\@="  nextgroup=p6NumberBase
syn match p6Number     display "\%(\<0o\)\@<=[0-7][0-7_]*"
syn match p6Number     display "\%(\<0b\)\@<=[01][01_]*"
syn match p6Number     display "\%(\<0x\)\@<=\x[[:xdigit:]_]*"
syn match p6Number     display "\%(\<0d\)\@<=\d[[:digit:]_]*"

syn match p6Version    display "\<v\d\@=" nextgroup=p6VersionNum
syn match p6VersionNum display "\d\+" nextgroup=p6VersionDot contained
syn match p6VersionDot display "\.\%(\d\|\*\)\@=" nextgroup=p6VersionNum contained

" try to distinguish the "is" function from the "is" trail auxiliary
syn match p6Routine     display "\%(\%(\S\k\@<!\|^\)\s*\)\@<=is\>"

" does is a type constraint sometimes
syn match p6TypeConstraint display "does\%(\s*\%(\k\|[-']\K\@=\)\)\@="

" int is a type sometimes
syn match p6Type        display "\<int\>\%(\s*(\|\s\+\d\)\@!"

" these Routine names are also Properties, if preceded by "is"
syn match p6Property    display "\%(is\s\+\)\@<=\%(signature\|context\|also\|shape\)"

" The sigil in ::*Package
syn match p6PackageTwigil display "\%(::\)\@<=\*"

" $<match>
syn region p6MatchVarSigil
    \ matchgroup=p6Variable
    \ start="\$\%(<<\@!\)\@="
    \ end=">\@<="
    \ contains=p6MatchVar

syn region p6MatchVar
    \ matchgroup=p6Twigil
    \ start="<"
    \ end=">"
    \ contained

" Contextualizers
syn match p6Context display "\<\%(item\|list\|slice\|hash\)\>"
syn match p6Context display "\%(\$\|@\|%\|&\|@@\)(\@="

" the "$" placeholder in "$var1, $, var2 = @list"
syn match p6Placeholder display "\%(,\s*\)\@<=\$\%(\K\|\%([.^*?=!~]\|:\@<!::\@!\)\)\@!"
syn match p6Placeholder display "\$\%(\K\|\%([.^*?=!~]\|:\@<!::\@!\)\)\@!\%(,\s*\)\@="

" Quoting

" one cluster for every quote adverb
syn cluster p6Interp_s
    \ add=p6InterpScalar
syn cluster p6Interp_scalar
    \ add=p6InterpScalar

syn cluster p6Interp_a
    \ add=p6InterpArray
syn cluster p6Interp_array
    \ add=p6InterpArray

syn cluster p6Interp_h
    \ add=p6InterpHash
syn cluster p6Interp_hash
    \ add=p6InterpHash

syn cluster p6Interp_f
    \ add=p6InterpFunction
syn cluster p6Interp_f
    \ add=p6InterpFunction

syn cluster p6Interp_c
    \ add=p6InterpClosure
syn cluster p6Interp_closure
    \ add=p6InterpClosure


if exists("perl6_extended_q") || exists("perl6_extended_all")
    syn cluster p6Interp_ww
        \ add=p6StringSQ
        \ add=p6StringDQ
    syn cluster p6Interp_quotewords
        \ add=p6StringSQ
        \ add=p6StringDQ
endif

syn cluster p6Interp_q
    \ add=p6EscQQ
    \ add=p6EscBackSlash
syn cluster p6Interp_single
    \ add=p6EscQQ
    \ add=p6EscBackSlash

syn cluster p6Interp_b
    \ add=@p6Interp_q
    \ add=p6Escape
    \ add=p6EscOpenCurly
    \ add=p6EscCodePoint
    \ add=p6EscHex
    \ add=p6EscOct
    \ add=p6EscOctOld
    \ add=p6EscNull
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
syn cluster p6Interp_double
    \ add=@p6Interp_scalar
    \ add=@p6Interp_array
    \ add=@p6Interp_hash
    \ add=@p6Interp_function
    \ add=@p6Interp_closure
    \ add=@p6Interp_backslash

syn region p6InterpScalar
    \ start="\ze\z(\$\%(\%(\%(\d\+\|!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ start="\ze\z(\$\%(\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\|\%(\d\+\|!\|/\|¢\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpScalar
    \ matchgroup=p6Context
    \ start="\$\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpArray
    \ start="\ze\z(@\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpArray
    \ matchgroup=p6Context
    \ start="@\ze()\@!"
    \ start="@@\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpHash
    \ start="\ze\z(%\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\)\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpHash
    \ matchgroup=p6Context
    \ start="%\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpFunction
    \ start="\ze\z(&\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\@=\)\?\K\%(\k\|[-']\K\@=\)*\%(\.\%(\K\%(\k\|[-']\K\@=\)*\)\|\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

syn region p6InterpFunction
    \ matchgroup=p6Context
    \ start="&\ze()\@!"
    \ skip="([^)]*)"
    \ end=")\zs"
    \ contained
    \ contains=TOP

syn region p6InterpClosure
    \ start="\\\@<!{}\@!"
    \ skip="{[^}]*}"
    \ end="}"
    \ contained
    \ contains=TOP
    \ keepend

" generic escape
syn match p6Escape          display "\\\S" contained

" escaped closing delimiters
syn match p6EscQuote        display "\\'" contained
syn match p6EscDoubleQuote  display "\\\"" contained
syn match p6EscCloseAngle   display "\\>" 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

" misc escapes
syn match p6EscOctOld    display "\\\d\{1,3}" contained
syn match p6EscNull      display "\\0\d\@!" contained
syn match p6EscCodePoint display "\%(\\c\)\@<=\%(\d\|\S\|\[\)\@=" contained nextgroup=p6CodePoint
syn match p6EscHex       display "\%(\\x\)\@<=\%(\x\|\[\)\@=" contained nextgroup=p6HexSequence
syn match p6EscOct       display "\%(\\o\)\@<=\%(\o\|\[\)\@=" contained nextgroup=p6OctSequence
syn match p6EscQQ        display "\\qq" contained nextgroup=p6QQSequence
syn match p6EscOpenCurly display "\\{" contained
syn match p6EscHash      display "\\#" contained
syn match p6EscBackSlash display "\\\\" contained

syn region p6QQSequence
    \ matchgroup=p6Escape
    \ start="\["
    \ skip="\[[^\]]*]"
    \ end="]"
    \ contained
    \ transparent
    \ contains=@p6Interp_qq

syn match p6CodePoint   display "\%(\d\+\|\S\)" contained
syn region p6CodePoint
    \ matchgroup=p6Escape
    \ start="\["
    \ end="]"
    \ contained

syn match p6HexSequence display "\x\+" contained
syn region p6HexSequence
    \ matchgroup=p6Escape
    \ start="\["
    \ end="]"
    \ contained

syn match p6OctSequence display "\o\+" contained
syn region p6OctSequence
    \ matchgroup=p6Escape
    \ start="\["
    \ end="]"
    \ contained

" matches :key, :!key, :$var, :key<var>, 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(:!\?\K\%(\k\|[-']\K\@=\)*\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\?\)"
    \ start="\ze\z(:!\?[@$%]\$*\%(::\|\%(\$\@<=\d\+\|!\|/\|¢\)\|\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\)\|\%(\K\%(\k\|[-']\K\@=\)*\)\)\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend

" <words>
" FIXME: not sure how to distinguish this from the "less than" operator
" in all cases. 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"
" * 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 never matches when:
"
" * Preceded by [<+~=] (e.g. <<foo>>, =<$foo>)
" * Followed by [-=] (e.g. <--, <=, <==)
syn region p6StringAngle
    \ matchgroup=p6Quote
    \ start="\%(\<\%(enum\|for\|any\|all\|none\)\>\s*(\?\s*\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="\%(\s\|[<+~=]\)\@<!<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="[<+~=]\@<!<\%(\s\|<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="\%(^\s*\)\@<=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ start="[<+~=]\@<!<\%(\s*$\)\@="
    \ start="\%(=\s\+\)\@=<\%(<\|=>\|[-=]\{1,2}>\@!\)\@!"
    \ skip="\\\@<!\\>"
    \ end=">"
    \ contains=p6InnerAnglesOne,p6EscBackSlash,p6EscCloseAngle

syn region p6InnerAnglesOne
    \ matchgroup=p6StringAngle
    \ start="<"
    \ skip="\\\@<!\\>"
    \ end=">"
    \ transparent
    \ contained
    \ contains=p6InnerAnglesOne

" <<words>>
syn region p6StringAngles
    \ matchgroup=p6Quote
    \ start="<<=\@!"
    \ skip="\\\@<!\\>"
    \ end=">>"
    \ contains=p6InnerAnglesTwo,@p6Interp_qq,p6Comment,p6EscHash,p6EscCloseAngle,p6Adverb,p6StringSQ,p6StringDQ

syn region p6InnerAnglesTwo
    \ matchgroup=p6StringAngles
    \ start="<<"
    \ skip="\\\@<!\\>"
    \ end=">>"
    \ transparent
    \ contained
    \ contains=p6InnerAnglesTwo

" «words»
syn region p6StringFrench
    \ matchgroup=p6Quote
    \ start="«"
    \ skip="\\\@<!\\»"
    \ end="»"
    \ contains=p6InnerFrench,@p6Interp_qq,p6Comment,p6EscHash,p6EscCloseFrench,p6Adverb,p6StringSQ,p6StringDQ

syn region p6InnerFrench
    \ matchgroup=p6StringFrench
    \ start="«"
    \ skip="\\\@<!\\»"
    \ end="»"
    \ transparent
    \ contained
    \ contains=p6InnerFrench

" 'string'
syn region p6StringSQ
    \ matchgroup=p6Quote
    \ start="'"
    \ skip="\\\@<!\\'"
    \ end="'"
    \ contains=@p6Interp_q,p6EscQuote

" "string"
syn region p6StringDQ
    \ matchgroup=p6Quote
    \ start=+"+
    \ skip=+\\\@<!\\"+
    \ end=+"+
    \ contains=@p6Interp_qq,p6EscDoubleQuote

" Q// and friends.

syn match p6QuoteQ display "\%([Qq]\%(ww\|to\|[qwxsahfcb]\)\?\)\>" nextgroup=p6QPairs skipwhite skipempty
syn match p6QPairs contained transparent skipwhite skipempty nextgroup=p6StringQ,p6StringQ_PIR "\%(\_s*:!\?\K\%(\k\|[-']\K\@=\)*\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\?\)*"

if exists("perl6_embedded_pir")
    syn include @p6PIR syntax/pir.vim
endif

" hardcoded set of delimiters
let s:delims = [
  \ ["\\\"",         "\\\"", "p6EscDoubleQuote",  "\\\\\\@<!\\\\\\\""],
  \ ["'",            "'",    "p6EscQuote",        "\\\\\\@<!\\\\'"],
  \ ["/",            "/",    "p6EscForwardSlash", "\\\\\\@<!\\\\/"],
  \ ["`",            "`",    "p6EscBackTick",     "\\\\\\@<!\\\\`"],
  \ ["|",            "|",    "p6EscVerticalBar",  "\\\\\\@<!\\\\|"],
  \ ["!",            "!",    "p6EscExclamation",  "\\\\\\@<!\\\\!"],
  \ [",",            ",",    "p6EscComma",        "\\\\\\@<!\\\\,"],
  \ ["\\$",          "\\$",  "p6EscDollar",       "\\\\\\@<!\\\\\\$"],
  \ ["{",            "}",    "p6EscCloseCurly",   "\\%(\\\\\\@<!\\\\}\\|{[^}]*}\\)"],
  \ ["<",            ">",    "p6EscCloseAngle",   "\\%(\\\\\\@<!\\\\>\\|<[^>]*>\\)"],
  \ ["«",            "»",    "p6EscCloseFrench",  "\\%(\\\\\\@<!\\\\»\\|«[^»]*»\\)"],
  \ ["\\\[",         "]",    "p6EscCloseBracket", "\\%(\\\\\\@<!\\\\]\\|\\[^\\]]*]\\)"],
  \ ["\\s\\@<=(",    ")",    "p6EscCloseParen",   "\\%(\\\\\\@<!\\\\)\\|([^)]*)\\)"],
\ ]

" double and triple delimiters too
if exists("perl6_extended_q") || exists("perl6_extended_all")
    call add(s:delims, ["««",           "»»",  "p6EscCloseFrench",  "\\%(\\\\\\@<!\\\\»»\\|««\\%([^»]\\|»»\\@!\\)*»»\\)"])
    call add(s:delims, ["«««",          "»»»", "p6EscCloseFrench",  "\\%(\\\\\\@<!\\\\»»»\\|«««\\%([^»]\\|»\\%(»»\\)\\@!\\)*»»»\\)"])
    call add(s:delims, ["{{",           "}}",  "p6EscCloseCurly",   "\\%(\\\\\\@<!\\\\}}\\|{{\\%([^}]\\|}}\\@!\\)*}}\\)"])
    call add(s:delims, ["{{{",          "}}}", "p6EscCloseCurly",   "\\%(\\\\\\@<!\\\\}}}\\|{{{\\%([^}]\\|}\\%(}}\\)\\@!\\)*}}}\\)"])
    call add(s:delims, ["\\\[\\\[",     "]]",  "p6EscCloseBracket", "\\%(\\\\\\@<!\\\\]]\\|\\[\\[\\%([^\\]]\\|]]\\@!\\)*]]\\)"])
    call add(s:delims, ["\\\[\\\[\\\[", "]]]", "p6EscCloseBracket", "\\%(\\\\\\@<!\\\\]]]\\|\\[\\[\\[\\%([^\\]]\\|]\\%(]]\\)\\@!\\)*]]]\\)"])
    call add(s:delims, ["\\s\\@<=((",   "))",  "p6EscCloseParen",   "\\%(\\\\\\@<!\\\\))\\|((\\%([^)]\\|))\\@!\\)*))\\)"])
    call add(s:delims, ["\\s\\@<=(((",  ")))", "p6EscCloseParen",   "\\%(\\\\\\@<!\\\\)))\\|(((\\%([^)]\\|)\\%())\\)\\@!\\)*)))\\)"])
    call add(s:delims, ["\\s\\@<=<<",   ">>",  "p6EscCloseAngle",   "\\%(\\\\\\@<!\\\\>>\\|<<\\%([^>]\\|>>\\@!\\)*>>\\)"])
    call add(s:delims, ["\\s\\@<=<<<",  ">>>", "p6EscCloseAngle",   "\\%(\\\\\\@<!\\\\>>>\\|<<<\\%([^>]\\|>\\%(>>\\)\\@!\\)*>>>\\)"])
endif

if !exists("perl6_extended_q") && !exists("perl6_extended_all")
    " simple version, no special highlighting within the string
    for [start_delim, end_delim, end_group, skip] in s:delims
        exec "syn region p6StringQ matchgroup=p6Quote start=\"".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contains=".end_group." contained"
    endfor

    if exists("perl6_embedded_pir")
        " highlight embedded PIR code
        for [start_delim, end_delim, end_group, skip] in s:delims
            exec "syn region p6StringQ_PIR matchgroup=p6Quote start=\"\\%(Q\\s*:PIR\\s*\\)\\@<=".start_delim."\" skip=\"".skip."\" end=\"".end_delim."\" contains=@p6PIR,".end_group." contained"
        endfor
    endif
else
    let s:before = "syn region p6StringQ matchgroup=p6Quote start=\"\\%("
    let s:after  = "\\%(\\_s*:!\\?\\K\\%(\\k\\|[-']\\K\\@=\\)*\\%(([^)]*)\\|\\[[^\\]]*]\\|<[^>]*>\\|«[^»]*»\\|{[^}]*}\\)\\?\\)*\\_s*\\)\\@<="

    let s:adverbs = [
        \ ["s", "scalar"],
        \ ["a", "array"],
        \ ["h", "hash"],
        \ ["f", "function"],
        \ ["c", "closure"],
        \ ["b", "backslash"],
        \ ["w", "words"],
        \ ["ww", "quotewords"],
        \ ["x", "exec"],
    \ ]

    " these can't be conjoined with q and qq (e.g. as qqq and qqqq)
    let s:q_adverbs = [
        \ ["q", "single"],
        \ ["qq", "double"],
    \ ]

    for [start_delim, end_delim, end_group, skip] in s:delims
        " Q, q, and qq with any number of (ignored) adverbs
        exec s:before ."Q". s:after .start_delim."\" end=\"". end_delim ."\""." contained"
        exec s:before ."q". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q"." contained"
        exec s:before ."qq". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq"." contained"

        for [short, long] in s:adverbs
            " Qs, qs, qqs, Qa, qa, qqa, etc, with ignored adverbs
            exec s:before ."Q".short. s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long." contained"
            exec s:before ."q".short. s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q,@p6Interp_".long." contained"
            exec s:before ."qq".short. s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq,@p6Interp_".long." contained"

            " Q, q, and qq, with one significant adverb
            exec s:before ."Q\\s*:\\%(".short."\\|".long."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long." contained"
            for [q_short, q_long] in s:q_adverbs
                exec s:before ."Q\\s*:\\%(".q_short."\\|".q_long."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".q_long." contained"
            endfor
            exec s:before ."q\\s*:\\%(".short."\\|".long."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q,@p6Interp_".long." contained"
            exec s:before ."qq\\s*:\\%(".short."\\|".long."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq,@p6Interp_".long." contained"

            for [short2, long2] in s:adverbs
                " Qs, qs, qqs, Qa, qa, qqa, etc, with one significant adverb
                exec s:before ."Q".short."\\s*:\\%(".short2."\\|".long2."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long.",@p6Interp_".long2." contained"
                for [q_short2, q_long2] in s:q_adverbs
                    exec s:before ."Q".short."\\s*:\\%(".q_short2."\\|".q_long2."\\)". s:after .start_delim ."\" end=\"". end_delim ."\" contains=@p6Interp_".long.",@p6Interp_".q_long2." contained"
                endfor
                exec s:before ."q".short."\\s*:\\%(".short2."\\|".long2."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_q,@p6Interp_".long.",@p6Interp_".long2." contained"
                exec s:before ."qq".short."\\s*:\\%(".short2."\\|".long2."\\)". s:after .start_delim ."\" skip=\"". skip ."\" end=\"". end_delim ."\" contains=". end_group .",@p6Interp_qq,@p6Interp_".long.",@p6Interp_".long2." contained"
            endfor
        endfor
    endfor
    unlet s:before s:after s:adverbs s:q_adverbs
endif
unlet s:delims

" Match these so something else above can't. E.g. the "q" in "role q { }"
" should not be considered a string
syn match p6Normal display "\%(\<\%(role\|grammar\|slang\)\s\+\)\@<=\K\%(\k\|[-']\K\@=\)*"

" :key
syn match p6Operator display ":\@<!::\@!!\?" nextgroup=p6Key
syn match p6Key display "\k\%(\k\|[-']\K\@=\)*" contained

" => and p5=> autoquoting
syn match p6StringP5Auto display "\K\%(\k\|[-']\K\@=\)*\ze\s\+p5=>"
syn match p6StringAuto   display "\K\%(\k\|[-']\K\@=\)*\ze\%(p5\)\@<!=>"
syn match p6StringAuto   display "\K\%(\k\|[-']\K\@=\)*\ze\s\+=>"
syn match p6StringAuto   display "\K\%(\k\|[-']\K\@=\)*p5\ze=>"

" Hyperoperators. Needs to come after the quoting operators (<>, «», etc)
exec "syn match p6HyperOp display \"»"   .s:infix."»\\?\""
exec "syn match p6HyperOp display \"«\\?".s:infix."«\""
exec "syn match p6HyperOp display \"»"   .s:infix."«\""
exec "syn match p6HyperOp display \"«"   .s:infix. "»\""

exec "syn match p6HyperOp display \">>"          .s:infix."\\%(>>\\)\\?\""
exec "syn match p6HyperOp display \"\\%(<<\\)\\?".s:infix."<<\""
exec "syn match p6HyperOp display \">>"          .s:infix."<<\""
exec "syn match p6HyperOp display \"<<"          .s:infix.">>\""
unlet s:infix

" Regexes and grammars

syn match p6RegexName display "\%(\<\%(regex\|rule\|token\)\s\+\)\@<=\K\%(\k\|[-']\K\@=\)*" nextgroup=p6RegexBlockCrap skipwhite skipempty
syn match p6RegexBlockCrap "[^{]*" nextgroup=p6RegexBlock skipwhite skipempty transparent contained

syn region p6RegexBlock
    \ matchgroup=p6Normal
    \ start="{"
    \ end="}"
    \ contained
    \ contains=@p6Regexen,@p6Variables

" Perl 6 regex bits

syn cluster p6Regexen
    \ add=p6RxMeta
    \ add=p6RxEscape
    \ add=p6EscHex
    \ add=p6EscOct
    \ add=p6EscNull
    \ add=p6RxAnchor
    \ add=p6RxCapture
    \ add=p6RxGroup
    \ add=p6RxAlternation
    \ add=p6RxAdverb
    \ add=p6RxAdverbArg
    \ add=p6RxStorage
    \ add=p6RxAssertion
    \ add=p6RxQuoteWords
    \ add=p6RxClosure
    \ add=p6RxStringSQ
    \ add=p6RxStringDQ
    \ add=p6Comment

syn match p6RxMeta        display contained ".\%(\k\|\s\)\@<!"
syn match p6RxAnchor      display contained "[$^]"
syn match p6RxEscape      display contained "\\\S"
syn match p6RxCapture     display contained "[()]"
syn match p6RxAlternation display contained "|"
syn match p6RxRange       display contained "\.\."

syn region p6RxClosure
    \ matchgroup=p6Normal
    \ start="{"
    \ end="}"
    \ contained
    \ containedin=p6RxClosure
    \ contains=TOP
syn region p6RxGroup
    \ matchgroup=p6StringSpecial2
    \ start="\["
    \ end="]"
    \ contained
    \ contains=@p6Regexen,@p6Variables
syn region p6RxAssertion
    \ matchgroup=p6StringSpecial2
    \ start="<"
    \ end=">"
    \ contained
    \ contains=@p6Regexen,@p6Variables,p6RxCharClass,p6RxAssertCall
syn region p6RxAssertCall
    \ matchgroup=p6Normal
    \ start="\%(::\|\%(\K\%(\k\|[-']\K\@=\)*\)\)\@<=(\@="
    \ end=")\@<="
    \ contained
    \ contains=TOP
syn region p6RxCharClass
    \ matchgroup=p6StringSpecial2
    \ start="\%(<[-!+?]\?\)\@<=\["
    \ skip="\\]"
    \ end="]"
    \ contained
    \ contains=p6RxRange,p6RxEscape,p6EscHex,p6EscOct,p6EscNull
syn region p6RxQuoteWords
    \ matchgroup=p6StringSpecial2
    \ start="< "
    \ end=">"
    \ contained
syn region p6RxAdverb
    \ start="\ze\z(:!\?\K\%(\k\|[-']\K\@=\)*\)"
    \ end="\z1\zs"
    \ contained
    \ contains=TOP
    \ keepend
syn region p6RxAdverbArg
    \ start="\%(:!\?\K\%(\k\|[-']\K\@=\)*\)\@<=("
    \ skip="([^)]*)"
    \ end=")"
    \ contained
    \ contains=TOP
syn region p6RxStorage
    \ matchgroup=p6Operator
    \ start="\%(^\s*\)\@<=:\%(my\>\|temp\>\)\@="
    \ end="$"
    \ contains=TOP
    \ contained

" Perl 5 regex bits

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\)\@<={"
    \ end="}"
    \ contained
syn match p6RxP5Quantifier display contained "\%([+*]\|(\@<!?\)"
syn match p6RxP5ReadRef    display contained "\\[1-9]\d\@!"
syn match p6RxP5ReadRef    display contained "\\k<\@=" nextgroup=p6RxP5ReadRefId
syn region p6RxP5ReadRefId
    \ matchgroup=p6RxP5Escape
    \ start="<"
    \ end=">"
    \ 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 "(\@<=?\@=" 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 "(\@<=\*\%(\%(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 "-"

" 'string' inside a regex
syn region p6RxStringSQ
    \ matchgroup=p6Quote
    \ start="'"
    \ skip="\\\@<!\\'"
    \ end="'"
    \ contained
    \ contains=p6EscQuote,p6EscBackSlash

" "string" inside a regex
syn region p6RxStringDQ
    \ matchgroup=p6Quote
    \ start=+"+
    \ skip=+\\\@<!\\"+
    \ end=+"+
    \ contained
    \ contains=p6EscDoubleQuote,p6EscBackSlash

" $!, $var, $!var, $::var, $package::var $*::package::var, etc
" Thus must come after the matches for the "$" regex anchor, but before
" the match for the $ regex delimiter
syn cluster p6Variables
    \ add=p6VarSlash
    \ add=p6VarExclam
    \ add=p6VarMatch
    \ add=p6VarNum
    \ add=p6Variable

syn match p6VarSlash     display "\$/"
syn match p6VarExclam    display "\$!"
syn match p6VarMatch     display "\$¢"
syn match p6VarNum       display "\$\d\+"
syn match p6Variable     display "\%(@@\|[@&$%]\$*\)\%(::\|\%(\%([.^*?=!~]\|:\@<!::\@!\)\K\)\|\K\)\@=" nextgroup=p6Twigil,p6VarName,p6PackageScope
syn match p6VarName      display "\K\%(\k\|[-']\K\@=\)*" contained
syn match p6Twigil       display "\%([.^*?=!~]\|:\@<!::\@!\)\K\@=" nextgroup=p6PackageScope,p6VarName contained
syn match p6PackageScope display "\%(\K\%(\k\|[-']\K\@=\)*\)\?::" nextgroup=p6PackageScope,p6VarName contained

" Perl 6 regex regions

" /foo/
" Below some hacks to recognise the // variant. This is virtually impossible
" to catch in all cases as the / is used in so many other ways, but these
" should be the most obvious ones.
" TODO: mostly stolen from perl.vim, might need more work
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\%(\<\%(split\|while\|until\|if\|unless\)\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=//\@!"
    \ start="^//\@!"
    \ start=+\s\@<=/[^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!/\@!+
    \ skip="\\/"
    \ end="/"
    \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum

" m/foo/, mm/foo/, rx/foo/
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=//\@!"
    \ skip="\\/"
    \ end="/"
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum

" m!foo!, mm!foo!, rx!foo!
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!!\@!"
    \ skip="\\!"
    \ end="!"
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarSlash,p6VarMatch,p6VarNum

" m$foo$, mm$foo$, rx$foo$, m|foo|, mm|foo|, rx|foo|, etc
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)\$\@!"
    \ skip="\\\z1"
    \ end="\z1"
    \ keepend
    \ contains=@p6Regexen,@p6Variables

" m (foo), mm (foo), rx (foo)
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!)\@!"
    \ skip="\\)"
    \ end=")"
    \ contains=@p6Regexen,@p6Variables

" m[foo], mm[foo], rx[foo]
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!]\@!"
    \ skip="\\]"
    \ end="]"
    \ contains=@p6Regexen,@p6Variables

" m{foo}, mm{foo}, rx{foo}
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!}\@!"
    \ skip="\\}"
    \ end="}"
    \ contains=@p6Regexen,@p6Variables

" m<foo>, mm<foo>, rx<foo>
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!>\@!"
    \ skip="\\>"
    \ end=">"
    \ contains=@p6Regexen,@p6Variables

" m«foo», mm«foo», rx«foo»
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<\%(mm\?\|rx\)\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!»\@!"
    \ skip="\\»"
    \ end="»"
    \ contains=@p6Regexen,@p6Variables

" Substitutions

" s/foo/bar/
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=/"
    \ skip="\\/"
    \ end="/"me=e-1
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarExclam,p6VarMatch,p6VarNum
    \ nextgroup=p6Substitution

syn region p6Substitution
    \ matchgroup=p6Quote
    \ start="/"
    \ skip="\\/"
    \ end="/"
    \ contained
    \ keepend
    \ contains=@p6Interp_qq

" s!foo!bar!
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=!"
    \ skip="\\!"
    \ end="!"me=e-1
    \ keepend
    \ contains=@p6Regexen,p6Variable,p6VarSlash,p6VarMatch,p6VarNum
    \ nextgroup=p6Substitution

syn region p6Substitution
    \ matchgroup=p6Quote
    \ start="!"
    \ skip="\\!"
    \ end="!"
    \ contained
    \ keepend
    \ contains=@p6Interp_qq

" s$foo$bar$, s|foo|bar, etc
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([\"'`|,$]\)"
    \ skip="\\\z1"
    \ end="\z1"me=e-1
    \ keepend
    \ contains=@p6Regexen,@p6Variables
    \ nextgroup=p6Substitution

syn region p6Substitution
    \ matchgroup=p6Quote
    \ start="\z([\"'`|,$]\)"
    \ skip="\\\z1"
    \ end="\z1"
    \ contained
    \ keepend
    \ contains=@p6Interp_qq

" s{foo}
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<={}\@!"
    \ skip="\\}"
    \ end="}"
    \ contains=@p6Regexen,@p6Variables

" s[foo]
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\[]\@!"
    \ skip="\\]"
    \ end="]"
    \ contains=@p6Regexen,@p6Variables

" s<foo>
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=<>\@!"
    \ skip="\\>"
    \ end=">"
    \ contains=@p6Regexen,@p6Variables

" s«foo»
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=«»\@!"
    \ skip="\\»"
    \ end="»"
    \ contains=@p6Regexen,@p6Variables

" s (foo)
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<s\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s\+\)\@<=()\@!"
    \ skip="\\)"
    \ end=")"
    \ contains=@p6Regexen,@p6Variables

" Perl 5 regex regions

" m:P5//
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=/"
    \ skip="\\/"
    \ end="/"
    \ contains=@p6RegexP5,p6Variable,p6VarExclam,p6VarMatch,p6VarNum

" m:P5!!
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=!"
    \ skip="\\!"
    \ end="!"
    \ contains=@p6RegexP5,p6Variable,p6VarSlash,p6VarMatch,p6VarNum

" m:P5$$, m:P5||, etc
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=\z([\"'`|,$]\)"
    \ skip="\\\z1"
    \ end="\z1"
    \ contains=@p6RegexP5,@p6Variables

" m:P5 ()
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s\+\)\@<=()\@!"
    \ skip="\\)"
    \ end=")"
    \ contains=@p6RegexP5,@p6Variables

" m:P5[]
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=[]\@!"
    \ skip="\\]"
    \ end="]"
    \ contains=@p6RegexP5,@p6Variables

" m:P5{}
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<={}\@!"
    \ skip="\\}"
    \ end="}"
    \ contains=@p6RegexP5,p6Variables

" m:P5<>
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=<>\@!"
    \ skip="\\>"
    \ end=">"
    \ contains=@p6RegexP5,p6Variables

" m:P5«»
syn region p6Match
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<m\s*:P\%(erl\)\?5\s*\)\@<=«»\@!"
    \ skip="\\»"
    \ end="»"
    \ contains=@p6RegexP5,p6Variables

" Transliteration

" tr/foo/bar/, tr|foo|bar, etc
syn region p6String
    \ matchgroup=p6Quote
    \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@<!\<tr\%(\s*:!\?\k\%(\k\|[-']\K\@=\)*\%(([^)]*)\)\?\)*\s*\)\@<=\z([/\"'`|!,$]\)"
    \ skip="\\\z1"
    \ end="\z1"me=e-1
    \ contains=p6RxRange
    \ nextgroup=p6Transliteration

syn region p6Transliteration
    \ matchgroup=p6Quote
    \ start="\z([/\"'`|!,$]\)"
    \ skip="\\\z1"
    \ end="\z1"
    \ contained
    \ contains=@p6Interp_qq

" Comments

" normal end-of-line comment
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
    \ matchgroup=p6Comment
    \ start="^\@<!#("
    \ skip="([^)]*)"
    \ end=")"
    \ matchgroup=p6Error
    \ start="^#("
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#\["
    \ skip="\[[^\]]*]"
    \ end="]"
    \ matchgroup=p6Error
    \ start="^#\["
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#{"
    \ skip="{[^}]*}"
    \ end="}"
    \ matchgroup=p6Error
    \ start="^#{"
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#<"
    \ skip="<[^>]*>"
    \ end=">"
    \ matchgroup=p6Error
    \ start="^#<"
    \ contains=p6Attention,p6Comment
syn region p6Comment
    \ matchgroup=p6Comment
    \ start="^\@<!#«"
    \ skip="«[^»]*»"
    \ end="»"
    \ matchgroup=p6Error
    \ start="^#«"
    \ contains=p6Attention,p6Comment

" double and triple delimiters
if exists("perl6_extended_comments") || exists("perl6_extended_all")
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#(("
        \ skip="((\%([^)\|))\@!]\)*))"
        \ end="))"
        \ matchgroup=p6Error
        \ start="^#(("
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#((("
        \ skip="(((\%([^)]\|)\%())\)\@!\)*)))"
        \ end=")))"
        \ matchgroup=p6Error
        \ start="^#((("
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#\[\["
        \ skip="\[\[\%([^\]]\|]]\@!\)*]]"
        \ end="]]"
        \ matchgroup=p6Error
        \ start="^#\[\["
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#\[\[\["
        \ skip="\[\[\[\%([^\]]\|]\%(]]\)\@!\)*]]]"
        \ end="]]]"
        \ matchgroup=p6Error
        \ start="^#\[\[\["
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#{{"
        \ skip="{{\%([^}]\|}}\@!\)*}}"
        \ end="}}"
        \ matchgroup=p6Error
        \ start="^#{{"
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#{{{"
        \ skip="{{{\%([^}]\|}\%(}}\)\@!\)*}}}"
        \ end="}}}"
        \ matchgroup=p6Error
        \ start="^#{{{"
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#<<"
        \ skip="<<\%([^>]\|>>\@!\)*>>"
        \ end=">>"
        \ matchgroup=p6Error
        \ start="^#<<"
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#<<<"
        \ skip="<<<\%([^>]\|>\%(>>\)\@!\)*>>>"
        \ end=">>>"
        \ matchgroup=p6Error
        \ start="^#<<<"
        \ contains=p6Attention,p6Comment

    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#««"
        \ skip="««\%([^»]\|»»\@!\)*»»"
        \ end="»»"
        \ matchgroup=p6Error
        \ start="^#««"
        \ contains=p6Attention,p6Comment
    syn region p6Comment
        \ matchgroup=p6Comment
        \ start="^\@<!#«««"
        \ skip="«««\%([^»]\|»\%(»»\)\@!\)*»»»"
        \ end="»»»"
        \ matchgroup=p6Error
        \ start="^#«««"
        \ contains=p6Attention,p6Comment
endif

" Pod

" Abbreviated blocks (implicit code forbidden)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\ze\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrNoCodeType
    \ keepend

syn region p6PodAbbrNoCodeType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodName,p6PodAbbrNoCode

syn match p6PodName contained ".\+" contains=@p6PodFormat
syn match p6PodComment contained ".\+"

syn region p6PodAbbrNoCode
    \ start="^"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=@p6PodFormat

" Abbreviated blocks (everything is code)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\zecode\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrCodeType
    \ keepend

syn region p6PodAbbrCodeType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodName,p6PodAbbrCode

syn region p6PodAbbrCode
    \ start="^"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained

" Abbreviated blocks (everything is a comment)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\zecomment\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrCommentType
    \ keepend

syn region p6PodAbbrCommentType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodComment,p6PodAbbrNoCode

" Abbreviated blocks (implicit code allowed)
syn region p6PodAbbrRegion
    \ matchgroup=p6PodPrefix
    \ start="^=\ze\%(pod\|item\|nested\|\u\+\)\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodAbbrType
    \ keepend

syn region p6PodAbbrType
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodName,p6PodAbbr

syn region p6PodAbbr
    \ start="^"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ 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="\K\k*"
    \ 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\%([^=]\|=\K\|\s*$\)"
    \ contains=p6PodDirectArgRegion
    \ keepend

syn region p6PodDirectArgRegion
    \ matchgroup=p6PodType
    \ start="\S\+"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained
    \ contains=p6PodDirectConfigRegion

syn region p6PodDirectConfigRegion
    \ start=""
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained
    \ contains=@p6PodConfig

" =encoding is a special directive
syn region p6PodDirectRegion
    \ matchgroup=p6PodPrefix
    \ start="^=encoding\>"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contains=p6PodEncodingArgRegion
    \ keepend

syn region p6PodEncodingArgRegion
    \ matchgroup=p6PodName
    \ start="\S\+"
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained

" Paragraph blocks (implicit code forbidden)
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodParaNoCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodParaNoCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodParaNoCode,p6PodParaConfigRegion

syn region p6PodParaConfigRegion
    \ start=""
    \ end="^\ze\%([^=]\|=\k\@<!\)"
    \ contained
    \ contains=@p6PodConfig

syn region p6PodParaNoCode
    \ start="^[^=]"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=@p6PodFormat

" Paragraph blocks (everything is code)
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>\ze\s*code\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodParaCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodParaCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodParaCode,p6PodParaConfigRegion

syn region p6PodParaCode
    \ start="^[^=]"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained

" Paragraph blocks (implicit code allowed)
syn region p6PodParaRegion
    \ matchgroup=p6PodPrefix
    \ start="^=for\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contains=p6PodParaTypeRegion
    \ keepend
    \ extend

syn region p6PodParaTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ contained
    \ contains=p6PodPara,p6PodParaConfigRegion

syn region p6PodPara
    \ start="^[^=]"
    \ end="^\ze\%(\s*$\|=\K\)"
    \ 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="\K\k*"
    \ 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="^=begin\>"
    \ end="^=end\>"
    \ contains=p6PodDelimNoCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodDelimNoCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze=end\>"
    \ contained
    \ contains=p6PodDelimNoCode,p6PodDelimConfigRegion

syn region p6PodDelimConfigRegion
    \ start=""
    \ end="^\ze\%([^=]\|=\K\|\s*$\)"
    \ contained
    \ contains=@p6PodConfig

syn region p6PodDelimNoCode
    \ start="^"
    \ end="^\ze=end\>"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat

" Delimited blocks (everything is code)
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>\ze\s*code\>"
    \ end="^=end\>"
    \ contains=p6PodDelimCodeTypeRegion
    \ keepend
    \ extend

syn region p6PodDelimCodeTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze=end\>"
    \ contained
    \ contains=p6PodDelimCode,p6PodDelimConfigRegion

syn region p6PodDelimCode
    \ start="^"
    \ end="^\ze=end\>"
    \ contained
    \ contains=@p6PodNestedBlocks

" Delimited blocks (implicit code allowed)
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>"
    \ end="^=end\>"
    \ contains=p6PodDelimTypeRegion
    \ keepend
    \ extend

syn region p6PodDelimTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ end="^\ze=end\>"
    \ contained
    \ contains=p6PodDelim,p6PodDelimConfigRegion

syn region p6PodDelim
    \ start="^"
    \ end="^\ze=end\>"
    \ contained
    \ contains=@p6PodNestedBlocks,@p6PodFormat,p6PodImplicitCode

" Delimited block to end-of-file
syn region p6PodDelimRegion
    \ matchgroup=p6PodPrefix
    \ start="^=begin\>\ze\s\+END\>"
    \ end="\%$"
    \ contains=p6PodDelimEOFTypeRegion
    \ extend

syn region p6PodDelimEOFTypeRegion
    \ matchgroup=p6PodType
    \ start="\K\k*"
    \ 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 region p6PodDelimEndRegion
    \ matchgroup=p6PodType
    \ start="\%(^=end\>\)\@<="
    \ end="\K\k*"

" These may appear inside delimited blocks
syn cluster p6PodNestedBlocks
    \ add=p6PodAbbrRegion
    \ add=p6PodDirectRegion
    \ add=p6PodParaRegion
    \ add=p6PodDelimRegion
    \ add=p6PodDelimEndRegion

" 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.
" Only when an item doesn't have highlighting yet

hi def link p6EscOctOld       p6Error
hi def link p6PackageTwigil   p6Twigil
hi def link p6StringAngle     p6String
hi def link p6StringFrench    p6String
hi def link p6StringAngles    p6String
hi def link p6StringSQ        p6String
hi def link p6StringDQ        p6String
hi def link p6StringQ         p6String
hi def link p6RxStringSQ      p6String
hi def link p6RxStringDQ      p6String
hi def link p6Substitution    p6String
hi def link p6Transliteration p6String
hi def link p6StringAuto      p6String
hi def link p6StringP5Auto    p6String
hi def link p6Key             p6String
hi def link p6Match           p6String
hi def link p6RegexBlock      p6String
hi def link p6RxP5CharClass   p6String
hi def link p6RxP5QuoteMeta   p6String
hi def link p6RxCharClass     p6String
hi def link p6RxQuoteWords    p6String
hi def link p6ReduceOp        p6Operator
hi def link p6ReverseCrossOp  p6Operator
hi def link p6HyperOp         p6Operator
hi def link p6QuoteQ          p6Operator
hi def link p6RxRange         p6StringSpecial
hi def link p6RxAnchor        p6StringSpecial
hi def link p6RxP5Anchor      p6StringSpecial
hi def link p6CodePoint       p6StringSpecial
hi def link p6RxMeta          p6StringSpecial
hi def link p6RxP5Range       p6StringSpecial
hi def link p6RxP5CPId        p6StringSpecial
hi def link p6RxP5Posix       p6StringSpecial
hi def link p6RxP5Mod         p6StringSpecial
hi def link p6RxP5HexSeq      p6StringSpecial
hi def link p6RxP5OctSeq      p6StringSpecial
hi def link p6RxP5WriteRefId  p6StringSpecial
hi def link p6HexSequence     p6StringSpecial
hi def link p6OctSequence     p6StringSpecial
hi def link p6RxP5Named       p6StringSpecial
hi def link p6RxP5PropId      p6StringSpecial
hi def link p6RxP5Quantifier  p6StringSpecial
hi def link p6RxP5CountId     p6StringSpecial
hi def link p6RxP5Verb        p6StringSpecial
hi def link p6Escape          p6StringSpecial2
hi def link p6EscNull         p6StringSpecial2
hi def link p6EscHash         p6StringSpecial2
hi def link p6EscQQ           p6StringSpecial2
hi def link p6EscQuote        p6StringSpecial2
hi def link p6EscDoubleQuote  p6StringSpecial2
hi def link p6EscBackTick     p6StringSpecial2
hi def link p6EscForwardSlash p6StringSpecial2
hi def link p6EscVerticalBar  p6StringSpecial2
hi def link p6EscExclamation  p6StringSpecial2
hi def link p6EscDollar       p6StringSpecial2
hi def link p6EscOpenCurly    p6StringSpecial2
hi def link p6EscCloseCurly   p6StringSpecial2
hi def link p6EscCloseBracket p6StringSpecial2
hi def link p6EscCloseAngle   p6StringSpecial2
hi def link p6EscCloseFrench  p6StringSpecial2
hi def link p6EscBackSlash    p6StringSpecial2
hi def link p6RxEscape        p6StringSpecial2
hi def link p6RxCapture       p6StringSpecial2
hi def link p6RxAlternation   p6StringSpecial2
hi def link p6RxP5            p6StringSpecial2
hi def link p6RxP5ReadRef     p6StringSpecial2
hi def link p6RxP5Oct         p6StringSpecial2
hi def link p6RxP5Hex         p6StringSpecial2
hi def link p6RxP5EscMeta     p6StringSpecial2
hi def link p6RxP5Meta        p6StringSpecial2
hi def link p6RxP5Escape      p6StringSpecial2
hi def link p6RxP5CodePoint   p6StringSpecial2
hi def link p6RxP5WriteRef    p6StringSpecial2
hi def link p6RxP5Prop        p6StringSpecial2

hi def link p6Property       Tag
hi def link p6Attention      Todo
hi def link p6Type           Type
hi def link p6Error          Error
hi def link p6BlockLabel     Label
hi def link p6Float          Float
hi def link p6Normal         Normal
hi def link p6Package        Normal
hi def link p6PackageScope   Normal
hi def link p6Number         Number
hi def link p6VersionNum     Number
hi def link p6String         String
hi def link p6Repeat         Repeat
hi def link p6Keyword        Keyword
hi def link p6Pragma         Keyword
hi def link p6Module         Keyword
hi def link p6DeclareRoutine Keyword
hi def link p6VarStorage     Special
hi def link p6FlowControl    Special
hi def link p6NumberBase     Special
hi def link p6Twigil         Special
hi def link p6StringSpecial2 Special
hi def link p6VersionDot     Special
hi def link p6Comment        Comment
hi def link p6Include        Include
hi def link p6Shebang        PreProc
hi def link p6ClosureTrait   PreProc
hi def link p6Routine        Function
hi def link p6Operator       Operator
hi def link p6Version        Operator
hi def link p6Context        Operator
hi def link p6Quote          Delimiter
hi def link p6TypeConstraint PreCondit
hi def link p6Exception      Exception
hi def link p6Placeholder    Identifier
hi def link p6Variable       Identifier
hi def link p6VarSlash       Identifier
hi def link p6VarNum         Identifier
hi def link p6VarExclam      Identifier
hi def link p6VarMatch       Identifier
hi def link p6VarName        Identifier
hi def link p6MatchVar       Identifier
hi def link p6RxP5ReadRefId  Identifier
hi def link p6RxP5ModDef     Identifier
hi def link p6RxP5ModName    Identifier
hi def link p6Conditional    Conditional
hi def link p6StringSpecial  SpecialChar

hi def link p6PodAbbr         p6Pod
hi def link p6PodAbbrEOF      p6Pod
hi def link p6PodAbbrNoCode   p6Pod
hi def link p6PodAbbrCode     p6PodCode
hi def link p6PodPara         p6Pod
hi def link p6PodParaEOF      p6Pod
hi def link p6PodParaNoCode   p6Pod
hi def link p6PodParaCode     p6PodCode
hi def link p6PodDelim        p6Pod
hi def link p6PodDelimEOF     p6Pod
hi def link p6PodDelimNoCode  p6Pod
hi def link p6PodDelimCode    p6PodCode
hi def link p6PodImplicitCode p6PodCode
hi def link p6PodExtraConfig  p6PodPrefix
hi def link p6PodVerticalBar  p6PodFormatCode
hi def link p6PodColon        p6PodFormatCode
hi def link p6PodSemicolon    p6PodFormatCode
hi def link p6PodComma        p6PodFormatCode
hi def link p6PodFormatOne    p6PodFormat
hi def link p6PodFormatTwo    p6PodFormat
hi def link p6PodFormatThree  p6PodFormat
hi def link p6PodFormatFrench p6PodFormat

hi def link p6PodType           Type
hi def link p6PodConfigOption   String
hi def link p6PodCode           PreProc
hi def link p6Pod               Comment
hi def link p6PodComment        Comment
hi def link p6PodAutoQuote      Operator
hi def link p6PodConfigOperator Operator
hi def link p6PodPrefix         Statement
hi def link p6PodName           Identifier
hi def link p6PodFormatCode     SpecialChar
hi def link p6PodFormat         SpecialComment


" Syncing to speed up processing
"syn sync match p6SyncPod groupthere p6PodAbbrRegion     "^=\K\k*\>"
"syn sync match p6SyncPod groupthere p6PodDirectRegion   "^=\%(config\|use\|encoding\)\>"
"syn sync match p6SyncPod groupthere p6PodParaRegion     "^=for\>"
"syn sync match p6SyncPod groupthere p6PodDelimRegion    "^=begin\>"
"syn sync match p6SyncPod groupthere p6PodDelimEndRegion "^=end\>"

" Let's just sync whole file, the other methods aren't reliable (or I don't
" know how to use them reliably)
syn sync fromstart

setlocal foldmethod=syntax

let b:current_syntax = "perl6"

let &cpo = s:keepcpo
unlet s:keepcpo

" vim:ts=8:sts=4:sw=4:expandtab:ft=vim

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 05 2024 23:19:13
root / root
0755
2html.vim
67.554 KB
August 02 2022 16:56:59
root / root
0644
README.txt
1.37 KB
August 02 2022 16:56:59
root / root
0644
a2ps.vim
2.369 KB
August 02 2022 16:56:59
root / root
0644
a65.vim
6.244 KB
August 02 2022 16:56:59
root / root
0644
aap.vim
5.563 KB
August 02 2022 16:56:59
root / root
0644
abap.vim
8.818 KB
August 02 2022 16:56:59
root / root
0644
abaqus.vim
1.068 KB
August 02 2022 16:56:59
root / root
0644
abc.vim
1.799 KB
August 02 2022 16:56:59
root / root
0644
abel.vim
4.994 KB
August 02 2022 16:56:59
root / root
0644
acedb.vim
4.757 KB
August 02 2022 16:56:59
root / root
0644
ada.vim
12.744 KB
August 02 2022 16:56:59
root / root
0644
aflex.vim
4.266 KB
August 02 2022 16:56:59
root / root
0644
ahdl.vim
2.706 KB
August 02 2022 16:56:59
root / root
0644
alsaconf.vim
1.51 KB
August 02 2022 16:56:59
root / root
0644
amiga.vim
2.897 KB
August 02 2022 16:56:59
root / root
0644
aml.vim
23.571 KB
August 02 2022 16:56:59
root / root
0644
ampl.vim
4.012 KB
August 02 2022 16:56:59
root / root
0644
ant.vim
5.68 KB
August 02 2022 16:56:59
root / root
0644
antlr.vim
1.751 KB
August 02 2022 16:56:59
root / root
0644
apache.vim
14.618 KB
August 02 2022 16:56:59
root / root
0644
apachestyle.vim
1.384 KB
August 02 2022 16:56:59
root / root
0644
aptconf.vim
21.707 KB
August 02 2022 16:56:59
root / root
0644
arch.vim
1.122 KB
August 02 2022 16:56:59
root / root
0644
arduino.vim
1.983 KB
August 02 2022 16:56:59
root / root
0644
art.vim
1.267 KB
August 02 2022 16:56:59
root / root
0644
asciidoc.vim
10.74 KB
August 02 2022 16:56:59
root / root
0644
asm.vim
4.236 KB
August 02 2022 16:56:59
root / root
0644
asm68k.vim
13.945 KB
August 02 2022 16:56:59
root / root
0644
asmh8300.vim
1.947 KB
August 02 2022 16:56:59
root / root
0644
asn.vim
2.518 KB
August 02 2022 16:56:59
root / root
0644
aspperl.vim
0.792 KB
August 02 2022 16:56:59
root / root
0644
aspvbs.vim
8.886 KB
August 02 2022 16:56:59
root / root
0644
asterisk.vim
5.395 KB
August 02 2022 16:56:59
root / root
0644
asteriskvm.vim
2.277 KB
August 02 2022 16:56:59
root / root
0644
atlas.vim
2.541 KB
August 02 2022 16:56:59
root / root
0644
autodoc.vim
3.643 KB
August 02 2022 16:56:59
root / root
0644
autohotkey.vim
11.583 KB
August 02 2022 16:56:59
root / root
0644
autoit.vim
46.889 KB
August 02 2022 16:56:59
root / root
0644
automake.vim
3.879 KB
August 02 2022 16:56:59
root / root
0644
ave.vim
1.855 KB
August 02 2022 16:56:59
root / root
0644
avra.vim
2.62 KB
August 02 2022 16:56:59
root / root
0644
awk.vim
7.655 KB
August 02 2022 16:56:59
root / root
0644
ayacc.vim
2.524 KB
August 02 2022 16:56:59
root / root
0644
b.vim
4.787 KB
August 02 2022 16:56:59
root / root
0644
baan.vim
71.87 KB
August 02 2022 16:56:59
root / root
0644
basic.vim
7.938 KB
August 02 2022 16:56:59
root / root
0644
bc.vim
1.749 KB
August 02 2022 16:56:59
root / root
0644
bdf.vim
3.751 KB
August 02 2022 16:56:59
root / root
0644
bib.vim
5.863 KB
August 02 2022 16:56:59
root / root
0644
bindzone.vim
4.713 KB
August 02 2022 16:56:59
root / root
0644
blank.vim
0.775 KB
August 02 2022 16:56:59
root / root
0644
bst.vim
2.759 KB
August 02 2022 16:56:59
root / root
0644
btm.vim
9.067 KB
August 02 2022 16:56:59
root / root
0644
bzl.vim
0.365 KB
August 02 2022 16:56:59
root / root
0644
bzr.vim
1.523 KB
August 02 2022 16:56:59
root / root
0644
c.vim
25.748 KB
August 02 2022 16:56:59
root / root
0644
cabal.vim
4.209 KB
August 02 2022 16:56:59
root / root
0644
calendar.vim
4.924 KB
August 02 2022 16:56:59
root / root
0644
catalog.vim
0.899 KB
August 02 2022 16:56:59
root / root
0644
cdl.vim
3.02 KB
August 02 2022 16:56:59
root / root
0644
cdrdaoconf.vim
3.562 KB
August 02 2022 16:56:59
root / root
0644
cdrtoc.vim
22.223 KB
August 02 2022 16:56:59
root / root
0644
cf.vim
18.207 KB
August 02 2022 16:56:59
root / root
0644
cfg.vim
1.319 KB
August 02 2022 16:56:59
root / root
0644
ch.vim
0.9 KB
August 02 2022 16:56:59
root / root
0644
chaiscript.vim
2.819 KB
August 02 2022 16:56:59
root / root
0644
change.vim
0.88 KB
August 02 2022 16:56:59
root / root
0644
changelog.vim
2.048 KB
August 02 2022 16:56:59
root / root
0644
chaskell.vim
0.325 KB
August 02 2022 16:56:59
root / root
0644
cheetah.vim
1.711 KB
August 02 2022 16:56:59
root / root
0644
chicken.vim
2.557 KB
August 02 2022 16:56:59
root / root
0644
chill.vim
7.836 KB
August 02 2022 16:56:59
root / root
0644
chordpro.vim
2.462 KB
August 02 2022 16:56:59
root / root
0644
cl.vim
3.813 KB
August 02 2022 16:56:59
root / root
0644
clean.vim
3.077 KB
August 02 2022 16:56:59
root / root
0644
clipper.vim
5.445 KB
August 02 2022 16:56:59
root / root
0644
clojure.vim
40.95 KB
August 02 2022 16:56:59
root / root
0644
cmake.vim
41.16 KB
August 02 2022 16:56:59
root / root
0644
cmod.vim
6.124 KB
August 02 2022 16:56:59
root / root
0644
cmusrc.vim
12.618 KB
August 02 2022 16:56:59
root / root
0644
cobol.vim
9.688 KB
August 02 2022 16:56:59
root / root
0644
coco.vim
1.27 KB
August 02 2022 16:56:59
root / root
0644
colortest.vim
3.126 KB
August 02 2022 16:56:59
root / root
0644
conaryrecipe.vim
7.848 KB
August 02 2022 16:56:59
root / root
0644
conf.vim
0.78 KB
August 02 2022 16:56:59
root / root
0644
config.vim
2.025 KB
August 02 2022 16:56:59
root / root
0644
context.vim
6.054 KB
August 02 2022 16:56:59
root / root
0644
cpp.vim
2.802 KB
August 02 2022 16:56:59
root / root
0644
crm.vim
1.169 KB
August 02 2022 16:56:59
root / root
0644
crontab.vim
2.163 KB
August 02 2022 16:56:59
root / root
0644
cs.vim
5.947 KB
August 02 2022 16:56:59
root / root
0644
csc.vim
8.251 KB
August 02 2022 16:56:59
root / root
0644
csdl.vim
23.198 KB
August 02 2022 16:56:59
root / root
0644
csh.vim
6.308 KB
August 02 2022 16:56:59
root / root
0644
csp.vim
6.984 KB
August 02 2022 16:56:59
root / root
0644
css.vim
31.192 KB
August 02 2022 16:56:59
root / root
0644
cterm.vim
6.256 KB
August 02 2022 16:56:59
root / root
0644
ctrlh.vim
0.672 KB
August 02 2022 16:56:59
root / root
0644
cucumber.vim
31.14 KB
August 02 2022 16:56:59
root / root
0644
cuda.vim
2.628 KB
August 02 2022 16:56:59
root / root
0644
cupl.vim
3.782 KB
August 02 2022 16:56:59
root / root
0644
cuplsim.vim
1.871 KB
August 02 2022 16:56:59
root / root
0644
cvs.vim
0.907 KB
August 02 2022 16:56:59
root / root
0644
cvsrc.vim
1.225 KB
August 02 2022 16:56:59
root / root
0644
cweb.vim
2.824 KB
August 02 2022 16:56:59
root / root
0644
cynlib.vim
2.488 KB
August 02 2022 16:56:59
root / root
0644
cynpp.vim
1.233 KB
August 02 2022 16:56:59
root / root
0644
d.vim
27.96 KB
August 02 2022 16:56:59
root / root
0644
datascript.vim
3.718 KB
August 02 2022 16:56:59
root / root
0644
dcd.vim
1.761 KB
August 02 2022 16:56:59
root / root
0644
dcl.vim
6.194 KB
August 02 2022 16:56:59
root / root
0644
debchangelog.vim
2.531 KB
August 02 2022 16:56:59
root / root
0644
debcontrol.vim
8.293 KB
August 02 2022 16:56:59
root / root
0644
debsources.vim
2.039 KB
August 02 2022 16:56:59
root / root
0644
def.vim
1.071 KB
August 02 2022 16:56:59
root / root
0644
denyhosts.vim
7.192 KB
August 02 2022 16:56:59
root / root
0644
desc.vim
3.005 KB
August 02 2022 16:56:59
root / root
0644
desktop.vim
4.047 KB
August 02 2022 16:56:59
root / root
0644
dictconf.vim
3.045 KB
August 02 2022 16:56:59
root / root
0644
dictdconf.vim
6.313 KB
August 02 2022 16:56:59
root / root
0644
diff.vim
16.877 KB
August 02 2022 16:56:59
root / root
0644
dircolors.vim
6.783 KB
August 02 2022 16:56:59
root / root
0644
dirpager.vim
1.745 KB
August 02 2022 16:56:59
root / root
0644
diva.vim
4.625 KB
August 02 2022 16:56:59
root / root
0644
django.vim
3.842 KB
August 02 2022 16:56:59
root / root
0644
dns.vim
0.129 KB
August 02 2022 16:56:59
root / root
0644
dnsmasq.vim
9.831 KB
August 02 2022 16:56:59
root / root
0644
docbk.vim
10.079 KB
August 02 2022 16:56:59
root / root
0644
docbksgml.vim
0.188 KB
August 02 2022 16:56:59
root / root
0644
docbkxml.vim
0.187 KB
August 02 2022 16:56:59
root / root
0644
dockerfile.vim
0.657 KB
August 02 2022 16:56:59
root / root
0644
dosbatch.vim
6.113 KB
August 02 2022 16:56:59
root / root
0644
dosini.vim
1.111 KB
August 02 2022 16:56:59
root / root
0644
dot.vim
2.947 KB
August 02 2022 16:56:59
root / root
0644
doxygen.vim
37.736 KB
August 02 2022 16:56:59
root / root
0644
dracula.vim
2.605 KB
August 02 2022 16:56:59
root / root
0644
dsl.vim
1.281 KB
August 02 2022 16:56:59
root / root
0644
dtd.vim
4.818 KB
August 02 2022 16:56:59
root / root
0644
dtml.vim
16.224 KB
August 02 2022 16:56:59
root / root
0644
dtrace.vim
6.291 KB
August 02 2022 16:56:59
root / root
0644
dts.vim
1.182 KB
August 02 2022 16:56:59
root / root
0644
dylan.vim
3.334 KB
August 02 2022 16:56:59
root / root
0644
dylanintr.vim
1.053 KB
August 02 2022 16:56:59
root / root
0644
dylanlid.vim
0.648 KB
August 02 2022 16:56:59
root / root
0644
ecd.vim
1.2 KB
August 02 2022 16:56:59
root / root
0644
edif.vim
1.248 KB
August 02 2022 16:56:59
root / root
0644
eiffel.vim
6.764 KB
August 02 2022 16:56:59
root / root
0644
elf.vim
2.293 KB
August 02 2022 16:56:59
root / root
0644
elinks.vim
10.248 KB
August 02 2022 16:56:59
root / root
0644
elmfilt.vim
2.824 KB
August 02 2022 16:56:59
root / root
0644
erlang.vim
10.655 KB
August 02 2022 16:56:59
root / root
0644
eruby.vim
2.84 KB
August 02 2022 16:56:59
root / root
0644
esmtprc.vim
0.916 KB
August 02 2022 16:56:59
root / root
0644
esqlc.vim
2.045 KB
August 02 2022 16:56:59
root / root
0644
esterel.vim
2.981 KB
August 02 2022 16:56:59
root / root
0644
eterm.vim
18.723 KB
August 02 2022 16:56:59
root / root
0644
euphoria3.vim
5.96 KB
August 02 2022 16:56:59
root / root
0644
euphoria4.vim
14.196 KB
August 02 2022 16:56:59
root / root
0644
eviews.vim
4.887 KB
August 02 2022 16:56:59
root / root
0644
exim.vim
17.661 KB
August 02 2022 16:56:59
root / root
0644
expect.vim
3.646 KB
August 02 2022 16:56:59
root / root
0644
exports.vim
1.706 KB
August 02 2022 16:56:59
root / root
0644
falcon.vim
11.731 KB
August 02 2022 16:56:59
root / root
0644
fan.vim
5.317 KB
August 02 2022 16:56:59
root / root
0644
fasm.vim
8.552 KB
August 02 2022 16:56:59
root / root
0644
fdcc.vim
5.516 KB
August 02 2022 16:56:59
root / root
0644
fetchmail.vim
3.23 KB
August 02 2022 16:56:59
root / root
0644
fgl.vim
7.104 KB
August 02 2022 16:56:59
root / root
0644
flexwiki.vim
5.308 KB
August 02 2022 16:56:59
root / root
0644
focexec.vim
3.442 KB
August 02 2022 16:56:59
root / root
0644
form.vim
6.235 KB
August 02 2022 16:56:59
root / root
0644
forth.vim
10.419 KB
August 02 2022 16:56:59
root / root
0644
fortran.vim
31.803 KB
August 02 2022 16:56:59
root / root
0644
foxpro.vim
32.086 KB
August 02 2022 16:56:59
root / root
0644
framescript.vim
11.405 KB
August 02 2022 16:56:59
root / root
0644
freebasic.vim
10.266 KB
August 02 2022 16:56:59
root / root
0644
fstab.vim
15.516 KB
August 02 2022 16:56:59
root / root
0644
fvwm.vim
24.439 KB
August 02 2022 16:56:59
root / root
0644
fvwm2m4.vim
0.694 KB
August 02 2022 16:56:59
root / root
0644
gdb.vim
4.264 KB
August 02 2022 16:56:59
root / root
0644
gdmo.vim
3.222 KB
August 02 2022 16:56:59
root / root
0644
gedcom.vim
2.222 KB
August 02 2022 16:56:59
root / root
0644
git.vim
4.059 KB
August 02 2022 16:56:59
root / root
0644
gitcommit.vim
4.753 KB
August 02 2022 16:56:59
root / root
0644
gitconfig.vim
1.578 KB
August 02 2022 16:56:59
root / root
0644
gitolite.vim
4.35 KB
August 02 2022 16:56:59
root / root
0644
gitrebase.vim
1.809 KB
August 02 2022 16:56:59
root / root
0644
gitsendemail.vim
0.566 KB
August 02 2022 16:56:59
root / root
0644
gkrellmrc.vim
4.02 KB
August 02 2022 16:56:59
root / root
0644
gnash.vim
3.381 KB
August 02 2022 16:56:59
root / root
0644
gnuplot.vim
23.108 KB
August 02 2022 16:56:59
root / root
0644
go.vim
7.719 KB
August 02 2022 16:56:59
root / root
0644
godoc.vim
0.344 KB
August 02 2022 16:56:59
root / root
0644
gp.vim
2.896 KB
August 02 2022 16:56:59
root / root
0644
gpg.vim
5.46 KB
August 02 2022 16:56:59
root / root
0644
gprof.vim
2.067 KB
August 02 2022 16:56:59
root / root
0644
grads.vim
1.701 KB
August 02 2022 16:56:59
root / root
0644
gretl.vim
3.643 KB
August 02 2022 16:56:59
root / root
0644
groff.vim
0.285 KB
August 02 2022 16:56:59
root / root
0644
groovy.vim
21.768 KB
August 02 2022 16:56:59
root / root
0644
group.vim
1.679 KB
August 02 2022 16:56:59
root / root
0644
grub.vim
3.791 KB
August 02 2022 16:56:59
root / root
0644
gsp.vim
1.983 KB
August 02 2022 16:56:59
root / root
0644
gtkrc.vim
9.1 KB
August 02 2022 16:56:59
root / root
0644
haml.vim
6.901 KB
August 02 2022 16:56:59
root / root
0644
hamster.vim
13.516 KB
August 02 2022 16:56:59
root / root
0644
haskell.vim
8.698 KB
August 02 2022 16:56:59
root / root
0644
haste.vim
4.877 KB
August 02 2022 16:56:59
root / root
0644
hastepreproc.vim
1.389 KB
August 02 2022 16:56:59
root / root
0644
hb.vim
3.084 KB
August 02 2022 16:56:59
root / root
0644
help.vim
8.152 KB
August 02 2022 16:56:59
root / root
0644
hercules.vim
5.586 KB
August 02 2022 16:56:59
root / root
0644
hex.vim
3.917 KB
August 02 2022 16:56:59
root / root
0644
hgcommit.vim
1.088 KB
August 02 2022 16:56:59
root / root
0644
hitest.vim
3.217 KB
August 02 2022 16:56:59
root / root
0644
hog.vim
10.422 KB
August 02 2022 16:56:59
root / root
0644
hostconf.vim
3.779 KB
August 02 2022 16:56:59
root / root
0644
hostsaccess.vim
0.536 KB
August 02 2022 16:56:59
root / root
0644
html.vim
16.836 KB
August 02 2022 16:56:59
root / root
0644
htmlcheetah.vim
0.477 KB
August 02 2022 16:56:59
root / root
0644
htmldjango.vim
0.987 KB
August 02 2022 16:56:59
root / root
0644
htmlm4.vim
0.654 KB
August 02 2022 16:56:59
root / root
0644
htmlos.vim
8.118 KB
August 02 2022 16:56:59
root / root
0644
ia64.vim
10.3 KB
August 02 2022 16:56:59
root / root
0644
ibasic.vim
6.871 KB
August 02 2022 16:56:59
root / root
0644
icemenu.vim
0.805 KB
August 02 2022 16:56:59
root / root
0644
icon.vim
6.813 KB
August 02 2022 16:56:59
root / root
0644
idl.vim
19.435 KB
August 02 2022 16:56:59
root / root
0644
idlang.vim
13.146 KB
August 02 2022 16:56:59
root / root
0644
indent.vim
7.003 KB
August 02 2022 16:56:59
root / root
0644
inform.vim
19.026 KB
August 02 2022 16:56:59
root / root
0644
initex.vim
18.773 KB
August 02 2022 16:56:59
root / root
0644
initng.vim
3.318 KB
August 02 2022 16:56:59
root / root
0644
inittab.vim
2.558 KB
August 02 2022 16:56:59
root / root
0644
ipfilter.vim
1.584 KB
August 02 2022 16:56:59
root / root
0644
ishd.vim
26.423 KB
August 02 2022 16:56:59
root / root
0644
iss.vim
4.871 KB
August 02 2022 16:56:59
root / root
0644
ist.vim
1.953 KB
August 02 2022 16:56:59
root / root
0644
j.vim
9.155 KB
August 02 2022 16:56:59
root / root
0644
jal.vim
8.753 KB
August 02 2022 16:56:59
root / root
0644
jam.vim
26.085 KB
August 02 2022 16:56:59
root / root
0644
jargon.vim
0.597 KB
August 02 2022 16:56:59
root / root
0644
java.vim
17.558 KB
August 02 2022 16:56:59
root / root
0644
javacc.vim
2.203 KB
August 02 2022 16:56:59
root / root
0644
javascript.vim
4.965 KB
August 02 2022 16:56:59
root / root
0644
jess.vim
6.084 KB
August 02 2022 16:56:59
root / root
0644
jgraph.vim
1.184 KB
August 02 2022 16:56:59
root / root
0644
jovial.vim
4.011 KB
August 02 2022 16:56:59
root / root
0644
jproperties.vim
5.367 KB
August 02 2022 16:56:59
root / root
0644
json.vim
5.877 KB
August 02 2022 16:56:59
root / root
0644
jsp.vim
2.615 KB
August 02 2022 16:56:59
root / root
0644
kconfig.vim
35.453 KB
August 02 2022 16:56:59
root / root
0644
kivy.vim
0.963 KB
August 02 2022 16:56:59
root / root
0644
kix.vim
6.181 KB
August 02 2022 16:56:59
root / root
0644
kscript.vim
1.938 KB
August 02 2022 16:56:59
root / root
0644
kwt.vim
2.396 KB
August 02 2022 16:56:59
root / root
0644
lace.vim
3.979 KB
August 02 2022 16:56:59
root / root
0644
latte.vim
3.429 KB
August 02 2022 16:56:59
root / root
0644
ld.vim
2.834 KB
August 02 2022 16:56:59
root / root
0644
ldapconf.vim
12.99 KB
August 02 2022 16:56:59
root / root
0644
ldif.vim
0.99 KB
August 02 2022 16:56:59
root / root
0644
less.vim
4.131 KB
August 02 2022 16:56:59
root / root
0644
lex.vim
6.57 KB
August 02 2022 16:56:59
root / root
0644
lftp.vim
7.296 KB
August 02 2022 16:56:59
root / root
0644
lhaskell.vim
4.331 KB
August 02 2022 16:56:59
root / root
0644
libao.vim
0.621 KB
August 02 2022 16:56:59
root / root
0644
lifelines.vim
6.484 KB
August 02 2022 16:56:59
root / root
0644
lilo.vim
10.183 KB
August 02 2022 16:56:59
root / root
0644
limits.vim
1.286 KB
August 02 2022 16:56:59
root / root
0644
liquid.vim
6.039 KB
August 02 2022 16:56:59
root / root
0644
lisp.vim
34.971 KB
August 02 2022 16:56:59
root / root
0644
lite.vim
4.731 KB
August 02 2022 16:56:59
root / root
0644
litestep.vim
6.52 KB
August 02 2022 16:56:59
root / root
0644
loginaccess.vim
4.099 KB
August 02 2022 16:56:59
root / root
0644
logindefs.vim
7.36 KB
August 02 2022 16:56:59
root / root
0644
logtalk.vim
15.663 KB
August 02 2022 16:56:59
root / root
0644
lotos.vim
2.306 KB
August 02 2022 16:56:59
root / root
0644
lout.vim
4.224 KB
August 02 2022 16:56:59
root / root
0644
lpc.vim
22.596 KB
August 02 2022 16:56:59
root / root
0644
lprolog.vim
3.886 KB
August 02 2022 16:56:59
root / root
0644
lscript.vim
11.815 KB
August 02 2022 16:56:59
root / root
0644
lsl.vim
15.43 KB
August 02 2022 16:56:59
root / root
0644
lss.vim
4.756 KB
August 02 2022 16:56:59
root / root
0644
lua.vim
13.723 KB
August 02 2022 16:56:59
root / root
0644
lynx.vim
6.425 KB
August 02 2022 16:56:59
root / root
0644
m4.vim
2.63 KB
August 02 2022 16:56:59
root / root
0644
mail.vim
5.927 KB
August 02 2022 16:56:59
root / root
0644
mailaliases.vim
2.702 KB
August 02 2022 16:56:59
root / root
0644
mailcap.vim
1.108 KB
August 02 2022 16:56:59
root / root
0644
make.vim
6.052 KB
August 02 2022 16:56:59
root / root
0644
mallard.vim
1.686 KB
August 02 2022 16:56:59
root / root
0644
man.vim
1.553 KB
August 02 2022 16:56:59
root / root
0644
manconf.vim
4.242 KB
August 02 2022 16:56:59
root / root
0644
manual.vim
0.888 KB
August 02 2022 16:56:59
root / root
0644
maple.vim
27.86 KB
August 02 2022 16:56:59
root / root
0644
markdown.vim
7.863 KB
August 02 2022 16:56:59
root / root
0644
masm.vim
16.821 KB
August 02 2022 16:56:59
root / root
0644
mason.vim
3.729 KB
August 02 2022 16:56:59
root / root
0644
master.vim
0.998 KB
August 02 2022 16:56:59
root / root
0644
matlab.vim
4.036 KB
August 02 2022 16:56:59
root / root
0644
maxima.vim
18.361 KB
August 02 2022 16:56:59
root / root
0644
mel.vim
3.326 KB
August 02 2022 16:56:59
root / root
0644
messages.vim
2.591 KB
August 02 2022 16:56:59
root / root
0644
mf.vim
15.062 KB
August 02 2022 16:56:59
root / root
0644
mgl.vim
3.637 KB
August 02 2022 16:56:59
root / root
0644
mgp.vim
1.953 KB
August 02 2022 16:56:59
root / root
0644
mib.vim
2.633 KB
August 02 2022 16:56:59
root / root
0644
mix.vim
2.873 KB
August 02 2022 16:56:59
root / root
0644
mma.vim
11.522 KB
August 02 2022 16:56:59
root / root
0644
mmix.vim
4.852 KB
August 02 2022 16:56:59
root / root
0644
mmp.vim
1.451 KB
August 02 2022 16:56:59
root / root
0644
modconf.vim
1.386 KB
August 02 2022 16:56:59
root / root
0644
model.vim
1.435 KB
August 02 2022 16:56:59
root / root
0644
modsim3.vim
3.538 KB
August 02 2022 16:56:59
root / root
0644
modula2.vim
3.149 KB
August 02 2022 16:56:59
root / root
0644
modula3.vim
1.965 KB
August 02 2022 16:56:59
root / root
0644
monk.vim
9.979 KB
August 02 2022 16:56:59
root / root
0644
moo.vim
9.018 KB
August 02 2022 16:56:59
root / root
0644
mp.vim
43.486 KB
August 02 2022 16:56:59
root / root
0644
mplayerconf.vim
7.312 KB
August 02 2022 16:56:59
root / root
0644
mrxvtrc.vim
9.378 KB
August 02 2022 16:56:59
root / root
0644
msidl.vim
3.383 KB
August 02 2022 16:56:59
root / root
0644
msmessages.vim
6.17 KB
August 02 2022 16:56:59
root / root
0644
msql.vim
2.334 KB
August 02 2022 16:56:59
root / root
0644
mupad.vim
15.113 KB
August 02 2022 16:56:59
root / root
0644
murphi.vim
4.511 KB
August 02 2022 16:56:59
root / root
0644
mush.vim
12.878 KB
August 02 2022 16:56:59
root / root
0644
muttrc.vim
62.554 KB
August 02 2022 16:56:59
root / root
0644
mysql.vim
17.196 KB
August 02 2022 16:56:59
root / root
0644
n1ql.vim
12.597 KB
August 02 2022 16:56:59
root / root
0644
named.vim
9.757 KB
August 02 2022 16:56:59
root / root
0644
nanorc.vim
10.371 KB
August 02 2022 16:56:59
root / root
0644
nasm.vim
25.669 KB
August 02 2022 16:56:59
root / root
0644
nastran.vim
8.305 KB
August 02 2022 16:56:59
root / root
0644
natural.vim
6.813 KB
August 02 2022 16:56:59
root / root
0644
ncf.vim
13.102 KB
August 02 2022 16:56:59
root / root
0644
neomuttrc.vim
77.37 KB
August 02 2022 16:56:59
root / root
0644
netrc.vim
1.889 KB
August 02 2022 16:56:59
root / root
0644
netrw.vim
7.05 KB
August 02 2022 16:56:59
root / root
0644
ninja.vim
2.821 KB
August 02 2022 16:56:59
root / root
0644
nosyntax.vim
0.737 KB
August 02 2022 16:56:59
root / root
0644
nqc.vim
13.738 KB
August 02 2022 16:56:59
root / root
0644
nroff.vim
7.593 KB
August 02 2022 16:56:59
root / root
0644
nsis.vim
33.111 KB
August 02 2022 16:56:59
root / root
0644
obj.vim
2.721 KB
August 02 2022 16:56:59
root / root
0644
objc.vim
40.742 KB
August 02 2022 16:56:59
root / root
0644
objcpp.vim
0.586 KB
August 02 2022 16:56:59
root / root
0644
ocaml.vim
13.224 KB
August 02 2022 16:56:59
root / root
0644
occam.vim
4.215 KB
August 02 2022 16:56:59
root / root
0644
omnimark.vim
6.228 KB
August 02 2022 16:56:59
root / root
0644
openroad.vim
13.651 KB
August 02 2022 16:56:59
root / root
0644
opl.vim
4.031 KB
August 02 2022 16:56:59
root / root
0644
ora.vim
26.505 KB
August 02 2022 16:56:59
root / root
0644
pamconf.vim
5.416 KB
August 02 2022 16:56:59
root / root
0644
papp.vim
3.7 KB
August 02 2022 16:56:59
root / root
0644
pascal.vim
14.656 KB
August 02 2022 16:56:59
root / root
0644
passwd.vim
2.386 KB
August 02 2022 16:56:59
root / root
0644
pcap.vim
1.461 KB
August 02 2022 16:56:59
root / root
0644
pccts.vim
3.997 KB
August 02 2022 16:56:59
root / root
0644
pdf.vim
3.456 KB
August 02 2022 16:56:59
root / root
0644
perl.vim
37.568 KB
August 02 2022 16:56:59
root / root
0644
perl6.vim
72.39 KB
August 02 2022 16:56:59
root / root
0644
pf.vim
5.17 KB
August 02 2022 16:56:59
root / root
0644
pfmain.vim
90.563 KB
August 02 2022 16:56:59
root / root
0644
php.vim
78.544 KB
August 02 2022 16:56:59
root / root
0644
phtml.vim
0.147 KB
August 02 2022 16:56:59
root / root
0644
pic.vim
3.255 KB
August 02 2022 16:56:59
root / root
0644
pike.vim
21.296 KB
August 02 2022 16:56:59
root / root
0644
pilrc.vim
5.187 KB
August 02 2022 16:56:59
root / root
0644
pine.vim
15.05 KB
August 02 2022 16:56:59
root / root
0644
pinfo.vim
5.172 KB
August 02 2022 16:56:59
root / root
0644
plaintex.vim
10.06 KB
August 02 2022 16:56:59
root / root
0644
pli.vim
12.912 KB
August 02 2022 16:56:59
root / root
0644
plm.vim
5.235 KB
August 02 2022 16:56:59
root / root
0644
plp.vim
1.237 KB
August 02 2022 16:56:59
root / root
0644
plsql.vim
12.615 KB
August 02 2022 16:56:59
root / root
0644
po.vim
6.243 KB
August 02 2022 16:56:59
root / root
0644
pod.vim
7.112 KB
August 02 2022 16:56:59
root / root
0644
postscr.vim
45.052 KB
August 02 2022 16:56:59
root / root
0644
pov.vim
8.845 KB
August 02 2022 16:56:59
root / root
0644
povini.vim
3.406 KB
August 02 2022 16:56:59
root / root
0644
ppd.vim
0.848 KB
August 02 2022 16:56:59
root / root
0644
ppwiz.vim
2.715 KB
August 02 2022 16:56:59
root / root
0644
prescribe.vim
2.327 KB
August 02 2022 16:56:59
root / root
0644
privoxy.vim
3.495 KB
August 02 2022 16:56:59
root / root
0644
procmail.vim
1.972 KB
August 02 2022 16:56:59
root / root
0644
progress.vim
31.004 KB
August 02 2022 16:56:59
root / root
0644
prolog.vim
4.258 KB
August 02 2022 16:56:59
root / root
0644
promela.vim
1.688 KB
August 02 2022 16:56:59
root / root
0644
proto.vim
2.864 KB
August 02 2022 16:56:59
root / root
0644
protocols.vim
1.396 KB
August 02 2022 16:56:59
root / root
0644
psf.vim
4.189 KB
August 02 2022 16:56:59
root / root
0644
ptcap.vim
4.031 KB
August 02 2022 16:56:59
root / root
0644
purifylog.vim
3.278 KB
August 02 2022 16:56:59
root / root
0644
pyrex.vim
1.624 KB
August 02 2022 16:56:59
root / root
0644
python.vim
13.945 KB
August 02 2022 16:56:59
root / root
0644
qf.vim
0.582 KB
August 02 2022 16:56:59
root / root
0644
quake.vim
8.354 KB
August 02 2022 16:56:59
root / root
0644
r.vim
13.98 KB
August 02 2022 16:56:59
root / root
0644
racc.vim
5.487 KB
August 02 2022 16:56:59
root / root
0644
radiance.vim
6.987 KB
August 02 2022 16:56:59
root / root
0644
ratpoison.vim
16.817 KB
August 02 2022 16:56:59
root / root
0644
rc.vim
9.978 KB
August 02 2022 16:56:59
root / root
0644
rcs.vim
2.083 KB
August 02 2022 16:56:59
root / root
0644
rcslog.vim
0.544 KB
August 02 2022 16:56:59
root / root
0644
readline.vim
16.601 KB
August 02 2022 16:56:59
root / root
0644
rebol.vim
6.999 KB
August 02 2022 16:56:59
root / root
0644
redif.vim
85.881 KB
August 02 2022 16:56:59
root / root
0644
registry.vim
3.276 KB
August 02 2022 16:56:59
root / root
0644
remind.vim
2.649 KB
August 02 2022 16:56:59
root / root
0644
resolv.vim
2.948 KB
August 02 2022 16:56:59
root / root
0644
reva.vim
7.403 KB
August 02 2022 16:56:59
root / root
0644
rexx.vim
14.972 KB
August 02 2022 16:56:59
root / root
0644
rhelp.vim
11.85 KB
August 02 2022 16:56:59
root / root
0644
rib.vim
2.141 KB
August 02 2022 16:56:59
root / root
0644
rmd.vim
4.303 KB
August 02 2022 16:56:59
root / root
0644
rnc.vim
2.21 KB
August 02 2022 16:56:59
root / root
0644
rng.vim
0.798 KB
August 02 2022 16:56:59
root / root
0644
rnoweb.vim
1.863 KB
August 02 2022 16:56:59
root / root
0644
robots.vim
1.493 KB
August 02 2022 16:56:59
root / root
0644
rpcgen.vim
1.627 KB
August 02 2022 16:56:59
root / root
0644
rpl.vim
25.097 KB
August 02 2022 16:56:59
root / root
0644
rrst.vim
1.274 KB
August 02 2022 16:56:59
root / root
0644
rst.vim
8.627 KB
August 02 2022 16:56:59
root / root
0644
rtf.vim
2.275 KB
August 02 2022 16:56:59
root / root
0644
ruby.vim
39.69 KB
August 02 2022 16:56:59
root / root
0644
rust.vim
16.223 KB
August 02 2022 16:56:59
root / root
0644
samba.vim
5.987 KB
August 02 2022 16:56:59
root / root
0644
sas.vim
33.288 KB
August 02 2022 16:56:59
root / root
0644
sass.vim
6.175 KB
August 02 2022 16:56:59
root / root
0644
sather.vim
3.408 KB
August 02 2022 16:56:59
root / root
0644
sbt.vim
0.859 KB
August 02 2022 16:56:59
root / root
0644
scala.vim
11.042 KB
August 02 2022 16:56:59
root / root
0644
scheme.vim
18.877 KB
August 02 2022 16:56:59
root / root
0644
scilab.vim
3.135 KB
August 02 2022 16:56:59
root / root
0644
screen.vim
8.891 KB
August 02 2022 16:56:59
root / root
0644
scss.vim
0.399 KB
August 02 2022 16:56:59
root / root
0644
sd.vim
2.171 KB
August 02 2022 16:56:59
root / root
0644
sdc.vim
1.358 KB
August 02 2022 16:56:59
root / root
0644
sdl.vim
6.409 KB
August 02 2022 16:56:59
root / root
0644
sed.vim
4.915 KB
August 02 2022 16:56:59
root / root
0644
sendpr.vim
0.884 KB
August 02 2022 16:56:59
root / root
0644
sensors.vim
1.478 KB
August 02 2022 16:56:59
root / root
0644
services.vim
1.78 KB
August 02 2022 16:56:59
root / root
0644
setserial.vim
5.106 KB
August 02 2022 16:56:59
root / root
0644
sgml.vim
8.658 KB
August 02 2022 16:56:59
root / root
0644
sgmldecl.vim
1.993 KB
August 02 2022 16:56:59
root / root
0644
sgmllnx.vim
1.808 KB
August 02 2022 16:56:59
root / root
0644
sh.vim
39.548 KB
August 02 2022 16:56:59
root / root
0644
sicad.vim
18.042 KB
August 02 2022 16:56:59
root / root
0644
sieve.vim
1.632 KB
August 02 2022 16:56:59
root / root
0644
simula.vim
3.292 KB
August 02 2022 16:56:59
root / root
0644
sinda.vim
3.58 KB
August 02 2022 16:56:59
root / root
0644
sindacmp.vim
1.244 KB
August 02 2022 16:56:59
root / root
0644
sindaout.vim
1.915 KB
August 02 2022 16:56:59
root / root
0644
sisu.vim
21.66 KB
August 02 2022 16:56:59
root / root
0644
skill.vim
25.165 KB
August 02 2022 16:56:59
root / root
0644
sl.vim
3.988 KB
August 02 2022 16:56:59
root / root
0644
slang.vim
3.225 KB
August 02 2022 16:56:59
root / root
0644
slice.vim
2.859 KB
August 02 2022 16:56:59
root / root
0644
slpconf.vim
11.515 KB
August 02 2022 16:56:59
root / root
0644
slpreg.vim
5.221 KB
August 02 2022 16:56:59
root / root
0644
slpspi.vim
1.153 KB
August 02 2022 16:56:59
root / root
0644
slrnrc.vim
12.511 KB
August 02 2022 16:56:59
root / root
0644
slrnsc.vim
3.025 KB
August 02 2022 16:56:59
root / root
0644
sm.vim
2.783 KB
August 02 2022 16:56:59
root / root
0644
smarty.vim
2.815 KB
August 02 2022 16:56:59
root / root
0644
smcl.vim
11.761 KB
August 02 2022 16:56:59
root / root
0644
smil.vim
5.484 KB
August 02 2022 16:56:59
root / root
0644
smith.vim
0.774 KB
August 02 2022 16:56:59
root / root
0644
sml.vim
9.109 KB
August 02 2022 16:56:59
root / root
0644
snnsnet.vim
2.424 KB
August 02 2022 16:56:59
root / root
0644
snnspat.vim
2.176 KB
August 02 2022 16:56:59
root / root
0644
snnsres.vim
1.888 KB
August 02 2022 16:56:59
root / root
0644
snobol4.vim
5.209 KB
August 02 2022 16:56:59
root / root
0644
spec.vim
12.332 KB
August 02 2022 16:56:59
root / root
0644
specman.vim
7.173 KB
August 02 2022 16:56:59
root / root
0644
spice.vim
2.19 KB
August 02 2022 16:56:59
root / root
0644
splint.vim
15.416 KB
August 02 2022 16:56:59
root / root
0644
spup.vim
13.6 KB
August 02 2022 16:56:59
root / root
0644
spyce.vim
4.351 KB
August 02 2022 16:56:59
root / root
0644
sql.vim
1.094 KB
August 02 2022 16:56:59
root / root
0644
sqlanywhere.vim
40.946 KB
August 02 2022 16:56:59
root / root
0644
sqlforms.vim
6.576 KB
August 02 2022 16:56:59
root / root
0644
sqlhana.vim
10.769 KB
August 02 2022 16:56:59
root / root
0644
sqlinformix.vim
5.763 KB
August 02 2022 16:56:59
root / root
0644
sqlj.vim
2.9 KB
August 02 2022 16:56:59
root / root
0644
sqloracle.vim
7.073 KB
August 02 2022 16:56:59
root / root
0644
sqr.vim
12.707 KB
August 02 2022 16:56:59
root / root
0644
squid.vim
6.769 KB
August 02 2022 16:56:59
root / root
0644
srec.vim
3.726 KB
August 02 2022 16:56:59
root / root
0644
sshconfig.vim
10.331 KB
August 02 2022 16:56:59
root / root
0644
sshdconfig.vim
10.832 KB
August 02 2022 16:56:59
root / root
0644
st.vim
2.688 KB
August 02 2022 16:56:59
root / root
0644
stata.vim
26.422 KB
August 02 2022 16:56:59
root / root
0644
stp.vim
5.3 KB
August 02 2022 16:56:59
root / root
0644
strace.vim
1.924 KB
August 02 2022 16:56:59
root / root
0644
sudoers.vim
21.536 KB
August 02 2022 16:56:59
root / root
0644
svg.vim
0.426 KB
August 02 2022 16:56:59
root / root
0644
svn.vim
1.809 KB
August 02 2022 16:56:59
root / root
0644
syncolor.vim
3.997 KB
August 02 2022 16:56:59
root / root
0644
synload.vim
1.938 KB
August 02 2022 16:56:59
root / root
0644
syntax.vim
1.199 KB
August 02 2022 16:56:59
root / root
0644
sysctl.vim
1.126 KB
August 02 2022 16:56:59
root / root
0644
systemd.vim
0.18 KB
August 02 2022 16:56:59
root / root
0644
systemverilog.vim
3.456 KB
August 02 2022 16:56:59
root / root
0644
tads.vim
6.701 KB
August 02 2022 16:56:59
root / root
0644
tags.vim
1.128 KB
August 02 2022 16:56:59
root / root
0644
tak.vim
2.852 KB
August 02 2022 16:56:59
root / root
0644
takcmp.vim
1.556 KB
August 02 2022 16:56:59
root / root
0644
takout.vim
1.953 KB
August 02 2022 16:56:59
root / root
0644
tap.vim
4.26 KB
August 02 2022 16:56:59
root / root
0644
tar.vim
0.364 KB
August 02 2022 16:56:59
root / root
0644
taskdata.vim
1.179 KB
August 02 2022 16:56:59
root / root
0644
taskedit.vim
1.104 KB
August 02 2022 16:56:59
root / root
0644
tasm.vim
5.539 KB
August 02 2022 16:56:59
root / root
0644
tcl.vim
16.881 KB
August 02 2022 16:56:59
root / root
0644
tcsh.vim
12.958 KB
August 02 2022 16:56:59
root / root
0644
teraterm.vim
4.822 KB
August 02 2022 16:56:59
root / root
0644
terminfo.vim
4.69 KB
August 02 2022 16:56:59
root / root
0644
tex.vim
65.126 KB
August 02 2022 16:56:59
root / root
0644
texinfo.vim
24.969 KB
August 02 2022 16:56:59
root / root
0644
texmf.vim
2.228 KB
August 02 2022 16:56:59
root / root
0644
tf.vim
6.742 KB
August 02 2022 16:56:59
root / root
0644
tidy.vim
5.788 KB
August 02 2022 16:56:59
root / root
0644
tilde.vim
1.502 KB
August 02 2022 16:56:59
root / root
0644
tli.vim
1.619 KB
August 02 2022 16:56:59
root / root
0644
tmux.vim
6.263 KB
August 02 2022 16:56:59
root / root
0644
tpp.vim
3.399 KB
August 02 2022 16:56:59
root / root
0644
trasys.vim
4.915 KB
August 02 2022 16:56:59
root / root
0644
treetop.vim
3.582 KB
August 02 2022 16:56:59
root / root
0644
trustees.vim
1.51 KB
August 02 2022 16:56:59
root / root
0644
tsalt.vim
8.13 KB
August 02 2022 16:56:59
root / root
0644
tsscl.vim
5 KB
August 02 2022 16:56:59
root / root
0644
tssgm.vim
2.722 KB
August 02 2022 16:56:59
root / root
0644
tssop.vim
1.743 KB
August 02 2022 16:56:59
root / root
0644
tt2.vim
7.737 KB
August 02 2022 16:56:59
root / root
0644
tt2html.vim
0.504 KB
August 02 2022 16:56:59
root / root
0644
tt2js.vim
0.51 KB
August 02 2022 16:56:59
root / root
0644
uc.vim
6.479 KB
August 02 2022 16:56:59
root / root
0644
udevconf.vim
1.198 KB
August 02 2022 16:56:59
root / root
0644
udevperm.vim
2.353 KB
August 02 2022 16:56:59
root / root
0644
udevrules.vim
6.797 KB
August 02 2022 16:56:59
root / root
0644
uil.vim
2.755 KB
August 02 2022 16:56:59
root / root
0644
updatedb.vim
1.191 KB
August 02 2022 16:56:59
root / root
0644
upstart.vim
3.077 KB
August 02 2022 16:56:59
root / root
0644
upstreamdat.vim
13.719 KB
August 02 2022 16:56:59
root / root
0644
upstreaminstalllog.vim
0.948 KB
August 02 2022 16:56:59
root / root
0644
upstreamlog.vim
2.559 KB
August 02 2022 16:56:59
root / root
0644
upstreamrpt.vim
13.864 KB
August 02 2022 16:56:59
root / root
0644
usserverlog.vim
3.045 KB
August 02 2022 16:56:59
root / root
0644
usw2kagtlog.vim
2.639 KB
August 02 2022 16:56:59
root / root
0644
valgrind.vim
3.174 KB
August 02 2022 16:56:59
root / root
0644
vb.vim
19.823 KB
August 02 2022 16:56:59
root / root
0644
vera.vim
19.094 KB
August 02 2022 16:56:59
root / root
0644
verilog.vim
4.937 KB
August 02 2022 16:56:59
root / root
0644
verilogams.vim
5.94 KB
August 02 2022 16:56:59
root / root
0644
vgrindefs.vim
1.186 KB
August 02 2022 16:56:59
root / root
0644
vhdl.vim
9.169 KB
August 02 2022 16:56:59
root / root
0644
vim.vim
66.621 KB
August 02 2022 16:56:59
root / root
0644
viminfo.vim
1.212 KB
August 02 2022 16:56:59
root / root
0644
virata.vim
11.341 KB
August 02 2022 16:56:59
root / root
0644
vmasm.vim
8.313 KB
August 02 2022 16:56:59
root / root
0644
voscm.vim
6.812 KB
August 02 2022 16:56:59
root / root
0644
vrml.vim
12.488 KB
August 02 2022 16:56:59
root / root
0644
vroom.vim
3.41 KB
August 02 2022 16:56:59
root / root
0644
vsejcl.vim
0.98 KB
August 02 2022 16:56:59
root / root
0644
wdiff.vim
0.699 KB
August 02 2022 16:56:59
root / root
0644
web.vim
1.088 KB
August 02 2022 16:56:59
root / root
0644
webmacro.vim
3.057 KB
August 02 2022 16:56:59
root / root
0644
wget.vim
3.868 KB
August 02 2022 16:56:59
root / root
0644
whitespace.vim
0.349 KB
August 02 2022 16:56:59
root / root
0644
winbatch.vim
11.867 KB
August 02 2022 16:56:59
root / root
0644
wml.vim
5.597 KB
August 02 2022 16:56:59
root / root
0644
wsh.vim
1.213 KB
August 02 2022 16:56:59
root / root
0644
wsml.vim
5.273 KB
August 02 2022 16:56:59
root / root
0644
wvdial.vim
1.067 KB
August 02 2022 16:56:59
root / root
0644
xbl.vim
0.555 KB
August 02 2022 16:56:59
root / root
0644
xdefaults.vim
5.749 KB
August 02 2022 16:56:59
root / root
0644
xf86conf.vim
14.38 KB
August 02 2022 16:56:59
root / root
0644
xhtml.vim
0.182 KB
August 02 2022 16:56:59
root / root
0644
xinetd.vim
13.875 KB
August 02 2022 16:56:59
root / root
0644
xkb.vim
3.242 KB
August 02 2022 16:56:59
root / root
0644
xmath.vim
10.575 KB
August 02 2022 16:56:59
root / root
0644
xml.vim
8.407 KB
August 02 2022 16:56:59
root / root
0644
xmodmap.vim
45.421 KB
August 02 2022 16:56:59
root / root
0644
xpm.vim
4.3 KB
August 02 2022 16:56:59
root / root
0644
xpm2.vim
4.587 KB
August 02 2022 16:56:59
root / root
0644
xquery.vim
7.022 KB
August 02 2022 16:56:59
root / root
0644
xs.vim
240.962 KB
August 02 2022 16:56:59
root / root
0644
xsd.vim
2.075 KB
August 02 2022 16:56:59
root / root
0644
xslt.vim
2.115 KB
August 02 2022 16:56:59
root / root
0644
xxd.vim
0.748 KB
August 02 2022 16:56:59
root / root
0644
yacc.vim
5.384 KB
August 02 2022 16:56:59
root / root
0644
yaml.vim
12.563 KB
August 02 2022 16:56:59
root / root
0644
z8a.vim
2.826 KB
August 02 2022 16:56:59
root / root
0644
zimbu.vim
6.295 KB
August 02 2022 16:56:59
root / root
0644
zsh.vim
22.938 KB
August 02 2022 16:56:59
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF