Skip to content

Instantly share code, notes, and snippets.

@petdance
Created March 14, 2017 15:53
Show Gist options
  • Save petdance/a08a21e3ad4724f5203b1cd9bfbcb553 to your computer and use it in GitHub Desktop.
Save petdance/a08a21e3ad4724f5203b1cd9bfbcb553 to your computer and use it in GitHub Desktop.
--- Syntax items ---
podCmdText xxx match /.*$/ contained contains=podFormat,@NoSpell
match /.*$/ contained contains=podFormat,podBold,podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,@NoSpell
links to String
podCommand xxx match /^=encoding/ contained contains=@NoSpell nextgroup=podCmdText
match /^=head[1234]/ contained contains=@NoSpell nextgroup=podCmdText
match /^=item/ contained contains=@NoSpell nextgroup=podCmdText
match /^=over/ contained contains=@NoSpell nextgroup=podOverIndent skipwhite
match /^=back/ contained contains=@NoSpell
match /^=cut/ contained contains=@NoSpell
match /^=pod/ contained contains=@NoSpell
match /^=for/ contained contains=@NoSpell nextgroup=podForKeywd skipwhite
match /^=begin/ contained contains=@NoSpell nextgroup=podForKeywd skipwhite
match /^=end/ contained contains=@NoSpell nextgroup=podForKeywd skipwhite
links to Statement
podOverIndent xxx match /\d\+/ contained contains=@NoSpell
links to Number
podForKeywd xxx match /\S\+/ contained contains=@NoSpell
links to Identifier
podFormat xxx start=/[IBSCLFX]<[^<]/me=e-1 end=/>/ contained oneline contains=podFormat,@NoSpell
start=/[IBSCLFX]<<\s/ end=/\s>>/ contained oneline contains=podFormat,@NoSpell
match /Z<>/ contained
match /E<\(\d\+\|\I\i*\)>/ contained contains=podEscape,podEscape2,@NoSpell
start=/[CLF]<[^<]/me=e-1 end=/>/ contained oneline contains=podFormat,@NoSpell
start=/[CLF]<<\s/ end=/\s>>/ contained oneline contains=podFormat,@NoSpell
match /E<\(\d\+\|\I\i*\)>/ contained contains=podEscape,podEscape2,@NoSpell
match /Z<>/ contained contains=podEscape,podEscape2,@NoSpell
links to Identifier
podVerbatimLine xxx match /^\s.*$/ contained contains=@NoSpell
match /^\s.*$/ contained contains=@NoSpell
links to PreProc
podSpecial xxx match /\(\<\|&\)\I\i*\(::\I\i*\)*([^)]*)/ contained contains=@NoSpell
match /[$@%]\I\i*\(::\I\i*\)*\>/ contained contains=@NoSpell
links to Identifier
podEscape xxx match /\I\i*>/me=e-1 contained contains=@NoSpell
links to String
podEscape2 xxx match /\d\+>/me=e-1 contained contains=@NoSpell
links to Number
podBoldOpen xxx match /B</ contained contains=@NoSpell
links to podBold
podItalicOpen xxx match /I</ contained contains=@NoSpell
links to podItalic
podNoSpaceOpen xxx match /S</ contained contains=@NoSpell
podIndexOpen xxx match /X</ contained contains=@NoSpell
podBoldAlternativeDelimOpen xxx match /B<< / contained contains=@NoSpell
links to podBold
podItalicAlternativeDelimOpen xxx match /I<< / contained contains=@NoSpell
links to podItalic
podNoSpaceAlternativeDelimOpen xxx match /S<< / contained contains=@NoSpell
podIndexAlternativeDelimOpen xxx match /X<< / contained contains=@NoSpell
podBoldItalic xxx start=/I<[^<]/me=e end=/>/ contained oneline
podBold xxx start=/B<[^<]/me=e end=/>/ contained oneline contains=podBoldItalic,podBoldOpen
podBoldAlternativeDelim xxx start=/B<<\s/ end=/\s>>/ contained oneline contains=podBoldAlternativeDelimOpen
links to podBold
podItalicBold xxx start=/B<[^<]/me=e end=/>/ contained oneline
podItalic xxx start=/I<[^<]/me=e end=/>/ contained oneline contains=podItalicBold,podItalicOpen
podItalicAlternativeDelim xxx start=/I<<\s/ end=/\s>>/ contained oneline contains=podItalicAlternativeDelimOpen
links to podItalic
podNoSpace xxx start=/S<[^<]/ms=s-2 end=/>/me=e contained oneline contains=podNoSpaceOpen
links to Identifier
podNoSpaceAlternativeDelim xxx start=/S<<\s/ms=s-2 end=/\s>>/me=e contained oneline contains=podNoSpaceAlternativeDelimOpen
links to Identifier
podIndex xxx start=/X<[^<]/ms=s-2 end=/>/me=e contained oneline contains=podIndexOpen
links to Identifier
podIndexAlternativeDelim xxx start=/X<<\s/ms=s-2 end=/\s>>/me=e contained oneline contains=podIndexAlternativeDelimOpen
links to Identifier
perlTodo xxx contained TODO: NOTE: TBD TBD: NOTE FIXME: XXX FIXME XXX: TODO
links to Todo
perlPOD xxx start=/^=[a-z]/ end=/^=cut/ keepend contains=@Pod,@Spell,perlTodo
start=/^=cut/ end=/^=cut/ keepend contains=perlTodo
perlBraces xxx start=/{/ end=/}/ extend transparent
perlConditional xxx match /\<\%(if\|elsif\|unless\|given\|when\|default\)\>/
match /\<else\%(\%(\_s\*if\>\)\|\>\)/ contains=perlElseIfError
links to Conditional
perlElseIfError xxx containedin=perlConditional elseif
match /else\_s*if/ containedin=perlConditional
links to Error
perlRepeat xxx match /\<\%(while\|for\%(each\)\=\|do\|until\|continue\)\>/
links to Repeat
perlOperator xxx match /\<\%(defined\|undef\|eq\|ne\|[gl][et]\|cmp\|not\|and\|or\|xor\|not\|bless\|ref\|do\)\>/
links to Operator
perlFakeGroup xxx match // contained
perlControl xxx match /\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*/ nextgroup=perlFakeGroup
links to PreProc
perlStatementStorage xxx match /\<\%(my\|our\|local\|state\)\>/
links to perlStatement
perlStatementControl xxx match /\<\%(return\|last\|next\|redo\|goto\|break\)\>/
links to perlStatement
perlStatementScalar xxx match /\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|fc\|uc\%(first\)\=\)\>/
links to perlStatement
perlStatementRegexp xxx match /\<\%(pos\|quotemeta\|split\|study\)\>/
links to perlStatement
perlStatementNumeric xxx match /\<\%(abs\|atan2\|cos\|exp\|hex\|int\|log\|oct\|rand\|sin\|sqrt\|srand\)\>/
links to perlStatement
perlStatementList xxx match /\<\%(splice\|unshift\|shift\|push\|pop\|join\|reverse\|grep\|map\|sort\|unpack\)\>/
links to perlStatement
perlStatementHash xxx match /\<\%(delete\|each\|exists\|keys\|values\)\>/
links to perlStatement
perlStatementIOfunc xxx match /\<\%(syscall\|dbmopen\|dbmclose\)\>/
links to perlStatement
perlFiledescStatementNocomma xxx match /(\=\s*\<\u\w*\>\s*[^, \t]/me=e-1 contained transparent contains=perlFiledescStatement
perlStatementFiledesc xxx match /\<\%(binmode\|close\%(dir\)\=\|eof\|fileno\|getc\|lstat\|printf\=\|read\%(dir\|line\|pipe\)\|rewinddir\|say\|select\|stat\|tell\%(dir\)\=\|write\)\>/ nextgroup=perlFiledescStatementNocomma skipwhite
match /\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read\|seek\%(dir\)\=\|sys\%(open\|read\|seek\|write\)\|truncate\)\>/ nextgroup=perlFiledescStatementComma skipwhite
links to perlStatement
perlFiledescStatementComma xxx match /(\=\s*\<\u\w*\>\s*,/me=e-1 contained transparent contains=perlFiledescStatement
perlStatementVector xxx match /\<vec\>/
links to perlStatement
perlStatementFiles xxx match /\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>/
match /-[rwxoRWXOezsfdlpSbctugkTBMAC]\>/
links to perlStatement
perlStatementFlow xxx match /\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>/
links to perlStatement
perlStatementInclude xxx match /\<\%(require\|import\|unimport\)\>/
match /\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\%(::warnings\)\=\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\=/
links to perlStatement
perlStatementProc xxx match /\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>/
links to perlStatement
perlStatementSocket xxx match /\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>/
links to perlStatement
perlStatementIPC xxx match /\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>/
links to perlStatement
perlStatementNetwork xxx match /\<\%(\%(end\|[gs]et\)\%(host\|net\|proto\|serv\)ent\|get\%(\%(host\|net\)by\%(addr\|name\)\|protoby\%(name\|number\)\|servby\%(name\|port\)\)\)\>/
links to perlStatement
perlStatementPword xxx match /\<\%(get\%(pw\%(uid\|nam\)\|gr\%(gid\|nam\)\|login\)\)\|\%(end\|[gs]et\)\%(pw\|gr\)ent\>/
links to perlStatement
perlStatementTime xxx match /\<\%(gmtime\|localtime\|time\)\>/
links to perlStatement
perlStatementMisc xxx match /\<\%(warn\|format\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>/
links to perlStatement
perlStatementIndirObjWrap xxx matchgroup=perlStatementIndirObj start=/\%(\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*\)\@<={/ end=/}/ extend transparent
perlLabel xxx match /^\s*\h\w*\s*::\@!\%(\<v\d\+\s*:\)\@<!/
links to Label
perlVarPlain xxx match /$^[ACDEFHILMNOPRSTVWX]\=/
match /$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]/
match /@[-+]/
match /$\%(0\|[1-9]\d*\)/
match /$::\@!/
match /\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)/ contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
match /\%(\$#\|[@$]\)\$*{\I\i*}/ extend nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
links to perlIdentifier
perlVarNotInMatches xxx match /$[|)]/
links to perlIdentifier
perlVarSlash xxx match +$/+
links to perlIdentifier
perlPackageRef xxx match /[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\=\%(::\|'\)\I/ms=s+1,me=e-1 contained
links to perlType
perlVarMember xxx matchgroup=perlVarPlain start=/\%(->\)\={/ skip=/\\}/ end=/}/ contained extend contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
matchgroup=perlVarPlain start=/\%(->\)\=\[/ skip=/\\]/ end=/]/ contained extend contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
perlVarSimpleMember xxx match /\%(->\)\={\s*\I\i*\s*}/ contained extend contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
links to perlIdentifier
perlMethod xxx match /->\$*\I\i*/ contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
links to perlIdentifier
perlPostDeref xxx match /->\%($#\|[$@%&*]\)\*/ contained nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
start=/->\%($#\|[$@%&*]\)\[/ skip=/\\]/ end=/]/ contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
matchgroup=perlPostDeref start=/->\%($#\|[$@%&*]\){/ skip=/\\}/ end=/}/ contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlMethod,perlPostDeref
links to perlIdentifier
perlVarPlain2 xxx match /%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)/ contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
match /%[-+]/
match /[%&*]\$*{\I\i*}/ extend nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
links to perlIdentifier
perlFunctionName xxx match /&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)/ contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
links to perlIdentifier
perlVarBlock xxx matchgroup=perlVarPlain start=/\%($#\|[$@]\)\$*{/ skip=/\\}/ end=/}\|\%(\%(<<\%('\|"\)\?\)\@=\)/ extend contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
perlVarBlock2 xxx matchgroup=perlVarPlain start=/[%&*]\$*{/ skip=/\\}/ end=/}\|\%(\%(<<\%('\|"\)\?\)\@=\)/ extend contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
perlShellCommand xxx matchgroup=perlMatchStartEnd start=/`/ end=/`/ keepend contains=@perlInterpDQ
links to perlString
perlFloat xxx match /\<\d[[:digit:]_]*[eE][\-+]\=\d\+/
match /\<\d[[:digit:]_]*\.[[:digit:]_]*\%([eE][\-+]\=\d\+\)\=/
match /\.[[:digit:]][[:digit:]_]*\%([eE][\-+]\=\d\+\)\=/
links to Float
perlNumber xxx match /\<\%(0\%(x\x[[:xdigit:]_]*\|b[01][01_]*\|\o[0-7_]*\|\)\|[1-9][[:digit:]_]*\)\>/
links to Number
perlStringUnexpanded xxx matchgroup=perlStringStartEnd start=/'/ end=/'/ keepend extend contains=@perlInterpSQ
links to perlString
perlString xxx match /\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>/ contains=perlVStringV
matchgroup=perlStringStartEnd start=/"/ end=/"/ keepend extend contains=@perlInterpDQ
match /\I\@<!-\?\I\i*\%(\s*=>\)\@=/
links to String
perlQQ xxx matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q\>\s*\z([^[:space:]#([{<]\)/ end=/\z1/ keepend extend contains=@perlInterpSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q#/ end=/#/ keepend extend contains=@perlInterpSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q\s*(/ end=/)/ keepend extend contains=@perlInterpSQ,perlParensSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q\s*\[/ end=/\]/ keepend extend contains=@perlInterpSQ,perlBracketsSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q\s*{/ end=/}/ keepend extend contains=@perlInterpSQ,perlBracesSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q\s*</ end=/>/ keepend extend contains=@perlInterpSQ,perlAnglesSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q[qx]\>\s*\z([^[:space:]#([{<]\)/ end=/\z1/ keepend extend contains=@perlInterpDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q[qx]#/ end=/#/ keepend extend contains=@perlInterpDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q[qx]\s*(/ end=/)/ keepend extend contains=@perlInterpDQ,perlParensDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q[qx]\s*\[/ end=/\]/ keepend extend contains=@perlInterpDQ,perlBracketsDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q[qx]\s*{/ end=/}/ keepend extend contains=@perlInterpDQ,perlBracesDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!q[qx]\s*</ end=/>/ keepend extend contains=@perlInterpDQ,perlAnglesDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qw\s*\z([^[:space:]#([{<]\)/ end=/\z1/ keepend extend contains=@perlInterpSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qw#/ end=/#/ keepend extend contains=@perlInterpSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qw\s*(/ end=/)/ keepend extend contains=@perlInterpSQ,perlParensSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qw\s*\[/ end=/\]/ keepend extend contains=@perlInterpSQ,perlBracketsSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qw\s*{/ end=/}/ keepend extend contains=@perlInterpSQ,perlBracesSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qw\s*</ end=/>/ keepend extend contains=@perlInterpSQ,perlAnglesSQ
matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\>\s*\z([^[:space:]#([{<'/]\)+ end=/\z1[imosxdual]*/ keepend extend contains=@perlInterpMatch
matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@<!qr\s*/+ end=+/[imosxdual]*+ keepend extend contains=@perlInterpSlash
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qr#/ end=/#[imosxdual]*/ keepend extend contains=@perlInterpMatch
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qr\s*'/ end=/'[imosxdual]*/ keepend extend contains=@perlInterpSQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qr\s*(/ end=/)[imosxdual]*/ keepend extend contains=@perlInterpMatch,perlParensDQ
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qr\s*{/ end=/}[imosxdual]*/ keepend extend contains=@perlInterpMatch,perlBracesDQ,perlComment
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qr\s*</ end=/>[imosxdual]*/ keepend extend contains=@perlInterpMatch,perlAnglesDQ,perlComment
matchgroup=perlStringStartEnd start=/\<\%(::\|'\|->\)\@<!qr\s*\[/ end=/\][imosxdual]*/ keepend extend contains=@perlInterpMatch,perlBracketsDQ,perlComment
links to perlString
perlArrow xxx matchgroup=perlArrow start=/->\s*(/ end=/)/ contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
matchgroup=perlArrow start=/->\s*\[/ end=/\]/ contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
matchgroup=perlArrow start=/->\s*{/ end=/}/ contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
match /->\s*{\s*\I\i*\s*}/ contained contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
matchgroup=perlArrow start=/->\s*\$*\I\i*\s*(/ end=/)/ contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlMethod,perlPostDeref
links to perlIdentifier
perlVarSimpleMemberName xxx match /\I\i*/ contained
links to perlString
perlPackageConst xxx match /__PACKAGE__/ nextgroup=perlMethod,perlPostDeref
perlFiledescRead xxx match /<\h\w*>/
links to perlIdentifier
perlFiledescStatement xxx match /\<\u\w*\>/ contained
links to perlIdentifier
perlSpecialString xxx match /\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)/ contained extend
links to perlSpecial
perlSpecialStringU2 xxx match /\\./ contained extend contains=NONE
links to perlString
perlSpecialStringU xxx match /\\\\/ contained
links to perlSpecial
perlSpecialMatch xxx match /\\[1-9]/ contained extend
match /\\g\%(\d\+\|{\%(-\=\d\+\|\h\w*\)}\)/ contained
match /\\k\%(<\h\w*>\|'\h\w*'\)/ contained
match /{\d\+\%(,\%(\d\+\)\=\)\=}/ contained
match /\[[]-]\=[^\[\]]*[]-]\=\]/ contained extend
match /[+*()?.]/ contained
match /(?[#:=!]/ contained
match /(?[impsx]*\%(-[imsx]\+\)\=)/ contained
match /(?\%([-+]\=\d\+\|R\))/ contained
match /(?\%(&\|P[>=]\)\h\w*)/ contained
match /(\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\=\|\%(MARK\|\):[^)]*\|COMMIT\|F\%(AIL\)\=\|ACCEPT\))/ contained
links to perlSpecial
perlNotEmptyLine xxx match /^\s\+$/ contained
links to Error
perlVStringV xxx match /\<v/ contained
links to perlStringStartEnd
perlParensSQ xxx start=/(/ end=/)/ contained keepend extend contains=perlParensSQ,@perlInterpSQ
links to perlString
perlBracketsSQ xxx start=/\[/ end=/\]/ contained keepend extend contains=perlBracketsSQ,@perlInterpSQ
links to perlString
perlBracesSQ xxx start=/{/ end=/}/ contained keepend extend contains=perlBracesSQ,@perlInterpSQ
links to perlString
perlAnglesSQ xxx start=/</ end=/>/ contained keepend extend contains=perlAnglesSQ,@perlInterpSQ
links to perlString
perlParensDQ xxx start=/(/ end=/)/ contained keepend extend contains=perlParensDQ,@perlInterpDQ
links to perlString
perlBracketsDQ xxx start=/\[/ end=/\]/ contained keepend extend contains=perlBracketsDQ,@perlInterpDQ
links to perlString
perlBracesDQ xxx start=/{/ end=/}/ contained keepend extend contains=perlBracesDQ,@perlInterpDQ
links to perlString
perlAnglesDQ xxx start=/</ end=/>/ contained keepend extend contains=perlAnglesDQ,@perlInterpDQ
links to perlString
perlMatch xxx matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m\>\s*\z([^[:space:]'([{<#]\)/ end=/\z1[msixpodualgcn]*/ keepend extend contains=@perlInterpMatch
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m#/ end=/#[msixpodualgcn]*/ keepend extend contains=@perlInterpMatch
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m\s*'/ end=/'[msixpodualgcn]*/ keepend extend contains=@perlInterpSQ
matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!m\s*/+ end=+/[msixpodualgcn]*+ keepend extend contains=@perlInterpSlash
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m\s*(/ end=/)[msixpodualgcn]*/ keepend extend contains=@perlInterpMatch,perlParensDQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m\s*{/ end=/}[msixpodualgcn]*/ extend contains=@perlInterpMatch,perlBracesDQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m\s*</ end=/>[msixpodualgcn]*/ keepend extend contains=@perlInterpMatch,perlAnglesDQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!m\s*\[/ end=/\][msixpodualgcn]*/ keepend extend contains=@perlInterpMatch,perlBracketsDQ
matchgroup=perlMatchStartEnd start=+\s\@<=/\%(/=\)\@![^[:space:][:digit:]$@%=]\@=\%(/\_s*\%([([{$@%&*[:digit:]"'`]\|\_s\w\|[[:upper:]_abd-fhjklnqrt-wyz]\)\)\@!+ start=+^/\%(/=\)\@!+ start=#\%([$@%&*]\@<!\%(\<split\|\<while\|\<if\|\<unless\|\.\.\|[-+*!~(\[{=]\)\s*\)\@<=/\%(/=\)\@!# skip=+\\/+ end=+/[msixpodualgcn]*+ extend contains=@perlInterpSlash
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s\>\s*\z([^[:space:]'([{<#]\)/ end=/\z1/me=e-1 keepend extend contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s\s*'/ end=/'/me=e-1 keepend extend contains=@perlInterpSQ nextgroup=perlSubstitutionSQ
matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@<!s\s*/+ end=+/+me=e-1 keepend extend contains=@perlInterpSlash nextgroup=perlSubstitutionGQQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s#/ end=/#/me=e-1 keepend extend contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s\s*(/ end=/)/ keepend extend contains=@perlInterpMatch,perlParensDQ nextgroup=perlSubstitutionGQQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s\s*</ end=/>/ keepend extend contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s\s*\[/ end=/\]/ keepend extend contains=@perlInterpMatch,perlBracketsDQ nextgroup=perlSubstitutionGQQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!s\s*{/ end=/}/ keepend extend contains=@perlInterpMatch,perlBracesDQ nextgroup=perlSubstitutionGQQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!\%(tr\|y\)\>\s*\z([^[:space:]([{<#]\)/ end=/\z1/me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!\%(tr\|y\)#/ end=/#/me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*\[/ end=/\]/ contains=@perlInterpSQ,perlBracketsSQ nextgroup=perlTranslationGQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*(/ end=/)/ contains=@perlInterpSQ,perlParensSQ nextgroup=perlTranslationGQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*</ end=/>/ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipnl skipempty
matchgroup=perlMatchStartEnd start=/\<\%(::\|'\|->\)\@<!\%(tr\|y\)\s*{/ end=/}/ contains=@perlInterpSQ,perlBracesSQ nextgroup=perlTranslationGQ skipwhite skipnl skipempty
links to perlString
perlSubstitutionGQQ xxx matchgroup=perlMatchStartEnd start=/\z([^[:space:]'([{<]\)/ end=/\z1[msixpodualgcern]*/ contained keepend extend contains=@perlInterpDQ
matchgroup=perlMatchStartEnd start=/(/ end=/)[msixpodualgcern]*/ contained keepend extend contains=@perlInterpDQ,perlParensDQ
matchgroup=perlMatchStartEnd start=/\[/ end=/\][msixpodualgcern]*/ contained keepend extend contains=@perlInterpDQ,perlBracketsDQ
matchgroup=perlMatchStartEnd start=/{/ end=/}[msixpodualgcern]*/ contained keepend extend contains=@perlInterpDQ,perlBracesDQ
matchgroup=perlMatchStartEnd start=/</ end=/>[msixpodualgcern]*/ contained keepend extend contains=@perlInterpDQ,perlAnglesDQ
links to perlString
perlSubstitutionSQ xxx matchgroup=perlMatchStartEnd start=/'/ end=/'[msixpodualgcern]*/ contained keepend extend contains=@perlInterpSQ
links to perlString
perlTranslationGQ xxx matchgroup=perlMatchStartEnd start=/\z([^[:space:]([{<]\)/ end=/\z1[cdsr]*/ contained
matchgroup=perlMatchStartEnd start=/(/ end=/)[cdsr]*/ contained contains=perlParensSQ
matchgroup=perlMatchStartEnd start=/\[/ end=/\][cdsr]*/ contained contains=perlBracketsSQ
matchgroup=perlMatchStartEnd start=/{/ end=/}[cdsr]*/ contained contains=perlBracesSQ
matchgroup=perlMatchStartEnd start=/</ end=/>[cdsr]*/ contained contains=perlAnglesSQ
links to perlString
perlComment xxx match /#.*/ extend contains=perlTodo,@Spell
links to Comment
perlHereDocStart xxx matchgroup=perlStringStartEnd start=/<<\z(\I\i*\)/ end=/$/ oneline contains=@perlTop
matchgroup=perlStringStartEnd start=/<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"/ end=/$/ oneline contains=@perlTop
matchgroup=perlStringStartEnd start=/<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'/ end=/$/ oneline contains=@perlTop
matchgroup=perlStringStartEnd start=/<<\s*""/ end=/$/ oneline contains=@perlTop
matchgroup=perlStringStartEnd start=/<<\s*''/ end=/$/ oneline contains=@perlTop
perlHereDoc xxx start=/<<\z(\I\i*\)/ matchgroup=perlStringStartEnd end=/^\z1$/ contains=perlHereDocStart,@perlInterpDQ
start=/<<\s*"\z([^\\"]*\%(\\.[^\\"]*\)*\)"/ matchgroup=perlStringStartEnd end=/^\z1$/ contains=perlHereDocStart,@perlInterpDQ
start=/<<\s*'\z([^\\']*\%(\\.[^\\']*\)*\)'/ matchgroup=perlStringStartEnd end=/^\z1$/ contains=perlHereDocStart,@perlInterpSQ
start=/<<\s*""/ matchgroup=perlStringStartEnd end=/^$/ contains=perlHereDocStart,@perlInterpDQ,perlNotEmptyLine
start=/<<\s*''/ matchgroup=perlStringStartEnd end=/^$/ contains=perlHereDocStart,@perlInterpSQ,perlNotEmptyLine
links to perlString
perlAutoload xxx matchgroup=perlStringStartEnd start=/<<\s*\(['"]\=\)\z(END_\%(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1/ end=/^\z1$/ contains=ALL
perlStatementPackage xxx contained package
links to perlStatement
perlPackageDecl xxx match /\<package\s\+\%(\h\|::\)\%(\w\|::\)*/ contains=perlStatementPackage
links to perlType
perlSubError xxx match /[^[:space:];{#]/ contained
links to Error
perlSubAttributesCont xxx match /\h\w*\_s*\%(:\_s*\)\=/ contained nextgroup=@perlSubAttrMaybe
matchgroup=perlSubAttributesCont start=/\h\w*(/ end=/)\_s*\%(:\_s*\)\=/ contained contains=@perlInterpSQ,perlParensSQ nextgroup=@perlSubAttrMaybe
links to perlSubAttributes
perlSubAttributes xxx match // contained nextgroup=perlSubError
match /:\_s*/ contained nextgroup=@perlSubAttrMaybe
links to PreProc
perlSubPrototypeError xxx match /(\%(\_s*\%(\%(\\\%([$@%&*]\|\[[$@%&*]\+\]\)\|[$&*]\|[@%]\%(\_s*)\)\@=\|;\%(\_s*[)$@%&*\\]\)\@=\|_\%(\_s*[);]\)\@=\)\_s*\)*\)\@>\zs\_[^)]\+/ contained
links to Error
perlSubPrototype xxx match /(\_[^)]*)\_s*/ contained contains=perlSubPrototypeError nextgroup=perlSubAttributes,perlComment
links to Type
perlSubName xxx match /\%(\h\|::\|'\w\)\%(\w\|::\|'\w\)*\_s*\|/ contained nextgroup=perlSubPrototype,perlSignature,perlSubAttributes,perlComment
links to Function
perlFunction xxx match /\<sub\>\_s*/ nextgroup=perlSubName
links to Keyword
perlSharpBang xxx match /^#!.*/
links to PreProc
perlFormatName xxx match /format\s\+\k\+\s*=/ms=s+7,me=e-1,lc=7 contained
links to perlIdentifier
perlFormatField xxx match /[@^][|<>~]\+\%(\.\.\.\)\=/ contained
match /[@^]#[#.]*/ contained
match /@\*/ contained
match /@[^A-Za-z_|<>~#*]/me=e-1 contained
match /@$/ contained
links to perlString
perlFormat xxx matchgroup=perlStatementIOfunc start=/^\s*\<format\s\+\k\+\s*=\s*$/rs=s+6 end=/^\s*\.\s*$/ contains=perlFormatName,perlFormatField,perlVarPlain,perlVarPlain2
perlDATA xxx start=/^__DATA__$/ skip=/./ end=/./ contains=@perlDATA
start=/^__END__$/ skip=/./ end=/./ contains=perlPOD,@perlDATA
links to perlComment
sqlSpecial xxx contained true null false
links to Special
sqlKeyword xxx contained check offline pctfree return of on initrans parallel index end nologging maxextents nowait initial view online for tablespace table where immediate unique privileges maxtrans having start identified type increment cluster from when using
contained current loop file share compress mode public if into outer is level option join cache trigger link row exception monitoring to begin add rows procedure order connect modify nocache user exclusive elsif values as logging inner resource
contained smallint asc cross whenever size session by with rowlabel else noparallel access column decimal right left default group validate then function rownum desc case pctused synonym nocompress cursor successful uid
links to sqlSpecial
sqlOperator xxx contained or like and some any out intersect all in minus escape exists sysdate union not prior distinct between
links to sqlStatement
sqlStatement xxx contained comment explain lock drop alter delete analyze rename savepoint rollback audit insert create set grant noaudit revoke commit update execute select truncate
links to Statement
sqlType xxx contained number date rowid long varray raw varchar2 mlslabel float boolean integer character varchar char
links to Type
sqlString xxx matchgroup=Quote start=/"/ skip=/\\\\\|\\"/ end=/"/ contained
matchgroup=Quote start=/'/ skip=/\\\\\|\\'/ end=/'/ contained
matchgroup=Quote start=/n\?q'\z([^[(<{]\)/ end=/\z1'/ contained
matchgroup=Quote start=/n\?q'</ end=/>'/ contained
matchgroup=Quote start=/n\?q'{/ end=/}'/ contained
matchgroup=Quote start=/n\?q'(/ end=/)'/ contained
matchgroup=Quote start=/n\?q'\[/ end=/]'/ contained
links to String
sqlNumber xxx match /-\=\<\d*\.\=[0-9_]\>/ contained
links to Number
sqlTodo xxx contained note xxx todo fixme debug
links to Todo
sqlComment xxx start=+/\*+ end=+\*/+ contained fold contains=sqlTodo,@Spell
match /--.*$/ contained contains=sqlTodo,@Spell
links to Comment
sqlFold xxx start=/^\s*\zs\c\(Create\|Update\|Alter\|Select\|Insert\)/ end=/;$\|^$/ contained transparent fold contains=ALL
sqlFunction xxx contained instr bitand path lnnvl deletexml tanh avg collect collect floor substr covar_pop atan2 nvl2 cluster_set concat abs var_pop exp ls_charset_decl_len timestamp_to_scn coalesce regr_slope stats_t_test_indep remainder xmlroot regexp_instr atan
contained numtoyminterval numtoyminterval from_tz percent_rank corr_s hextoraw xmlcast prediction_probability dbtimezone regexp_substr appendchildxml prediction_bounds rawtonhex to_dsinterval to_dsinterval to_dsinterval xmlsequence xmltable xmldiff
contained to_nchar to_nchar to_nchar covar_samp nls_upper stats_mw_test power xmlcdata powermultiset cardin sys_dburigen grouping_id stddev sum trunc trunc stats_mode replace prediction_cost greatest xmlcolattval depth current_date to_multi_byte corr
contained xmlquery to_binary_double min userenv last ltrim convert nvl regexp_replace xmlparse regr_r2 stats_wsr_test rowidtonchar add_months unistr stddev_samp months_between initcap rowidtochar variance sys_typeid regr_count cosh soundex ascii
contained stats_crosstab new_time sys_extract_utc dense_rank sessiontimezone rtrim rank insertchildxml sys_xmlgen stddev_pop regr_intercept xmlexists to_single_byte nls_lower to_lob sin systimestamp corr_k insertxmlbefore max to_binary_float tan
contained to_char to_char to_char to_char feature_id next_day to_timestamp_tz to_timestamp_tz xmltransform xmlconcat count sys_connect_by_path to_number to_nclob median sinh stats_t_test_one chartorowid chr regr_sxx bin_to_num treat rawtohex empty_blob
contained compose extract extract nls_charset_name regr_sxy user nlssort last_day extractvalue cluster_probability stats_f_test least cluster_id sysdate sqrt xmlpatch bfilename translate translate sys_context regr_syy regr_avgx regr_avgy first length
contained dump prediction_details cos lpad ln to_clob upper feature_value powermultiset_by_cardinality empty_clob var_samp current_timestamp nls_charset_id ceil stats_binomial_test tz_offset existsnode decompose group_id percentile_disc nls_initcap
contained scn_to_timestamp nanvl round round ora_hash feature_set to_timestamp to_timestamp localtimestamp rpad asciistr xmlcomment mod sign sys_guid trim xmlserialize stats_one_way_anova to_yminterval to_yminterval to_yminterval cume_dist
contained numtodsinterval numtodsinterval xmlelement prediction_set updatexml xmlagg xmlagg grouping log cast xmlforest nullif stats_t_test_indepu stats_t_test_paired asin vsizeality percentile_cont acos lower decode prediction xmlpi width_bucket
contained to_date sys_xmlagg sys_xmlagg uid stats_ks_test
links to Function
perlHereDocSQL xxx start=/<<['"]SQL['"].*;\s*$/ end=/^SQL$/ contains=@SQL
start=/<<['"]SQL_TEXT['"].*;\s*$/ end=/^SQL_TEXT$/ contains=@SQL
start=/<<['"]__SQL__['"].*;\s*$/ end=/^__SQL__$/ contains=@SQL
Pod cluster=podCommand,podFormat,podVerbatimLine,podSpecial,podBoldOpen,podItalicOpen,podNoSpaceOpen,podIndexOpen,podBoldAlternativeDelimOpen,podItalicAlternativeDelimOpen,podNoSpaceAlternativeDelimOpen,podIndexAlternativeDelimOpen,podBold,podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim,podNoSpace,podNoSpaceAlternativeDelim,podIndex,podIndexAlternativeDelim
NoSpell cluster=NONE
Spell cluster=NONE
perlTop cluster=TOP
perlExpr cluster=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ,perlArrow,perlBraces
perlInterpDQ cluster=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock
perlInterpSQ cluster=perlSpecialStringU,perlSpecialStringU2
perlInterpSlash cluster=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock
perlInterpMatch cluster=@perlInterpSlash,perlVarSlash
perlSubAttrMaybe cluster=perlSubAttributesCont,perlSubError,perlFakeGroup
perlDATA cluster=NONE
SQL cluster=sqlSpecial,sqlKeyword,sqlOperator,sqlStatement,sqlType,sqlString,sqlNumber,sqlComment,sqlFold,sqlFunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment