annotate runtime/syntax/perl.vim @ 557:862863033fdd v7.0158

updated for version 7.0158
author vimboss
date Wed, 23 Nov 2005 21:25:05 +0000
parents f43150a669dc
children 2b8ff9e3c520
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: Perl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Maintainer: Nick Hibma <n_hibma@van-laarhoven.org>
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
4 " Last Change: 2005 October 18
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " Location: http://www.van-laarhoven.org/vim/syntax/perl.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 " Please download most recent version first before mailing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 " any comments.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 " See also the file perl.vim.regression.pl to check whether your
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 " modifications work in the most odd cases
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 " http://www.van-laarhoven.org/vim/syntax/perl.vim.regression.pl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 " Original version: Sonia Heimann <niania@netsurf.org>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 " Thanks to many people for their contribution.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 " The following parameters are available for tuning the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 " perl syntax highlighting, with defaults given:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 " unlet perl_include_pod
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
20 " unlet perl_no_scope_in_variables
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
21 " unlet perl_no_extended_vars
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 " unlet perl_string_as_statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 " unlet perl_no_sync_on_sub
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 " unlet perl_no_sync_on_global_var
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 " let perl_sync_dist = 100
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 " unlet perl_fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 " unlet perl_fold_blocks
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 " Remove any old syntax stuff that was loaded (5.x) or quit when a syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 " was already loaded (6.x).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 if version < 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 syntax clear
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 elseif exists("b:current_syntax")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 " Unset perl_fold if it set but vim doesn't support it.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 if version < 600 && exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 unlet perl_fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 " POD starts with ^=<word> and ends with ^=cut
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 if exists("perl_include_pod")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 " Include a while extra syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 syn include @Pod syntax/pod.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 unlet b:current_syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 if exists("perl_fold")
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
50 syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 else
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
53 syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 " Use only the bare minimum of rules
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 if exists("perl_fold")
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
59 syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Spell fold
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 else
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
61 syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Spell
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 " All keywords
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 if exists("perl_fold") && exists("perl_fold_blocks")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 syn match perlConditional "\<if\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 syn match perlConditional "\<elsif\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 syn match perlConditional "\<unless\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 syn match perlConditional "\<else\>" nextgroup=perlElseIfError skipwhite skipnl skipempty
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 syn keyword perlConditional if elsif unless
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 syn keyword perlConditional else nextgroup=perlElseIfError skipwhite skipnl skipempty
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77 syn keyword perlConditional switch eq ne gt lt ge le cmp not and or xor err
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 if exists("perl_fold") && exists("perl_fold_blocks")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 syn match perlRepeat "\<while\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 syn match perlRepeat "\<for\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81 syn match perlRepeat "\<foreach\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82 syn match perlRepeat "\<do\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 syn match perlRepeat "\<until\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84 syn match perlRepeat "\<continue\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 syn keyword perlRepeat while for foreach do until continue
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 syn keyword perlOperator defined undef and or not bless ref
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 if exists("perl_fold")
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
90 " if BEGIN/END is a keyword the perlBEGINENDFold does not work
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
91 syn match perlControl "\<BEGIN\|END\|CHECK\|INIT\>" contained
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 else
548
f43150a669dc updated for version 7.0155
vimboss
parents: 22
diff changeset
93 syn keyword perlControl BEGIN END CHECK INIT
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 syn keyword perlStatementStorage my local our
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 syn keyword perlStatementControl goto return last next redo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 syn keyword perlStatementScalar chomp chop chr crypt index lc lcfirst length ord pack reverse rindex sprintf substr uc ucfirst
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 syn keyword perlStatementRegexp pos quotemeta split study
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 syn keyword perlStatementNumeric abs atan2 cos exp hex int log oct rand sin sqrt srand
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 syn keyword perlStatementList splice unshift shift push pop split join reverse grep map sort unpack
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 syn keyword perlStatementHash each exists keys values tie tied untie
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 syn keyword perlStatementIOfunc carp confess croak dbmclose dbmopen die syscall
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 syn keyword perlStatementFiledesc binmode close closedir eof fileno getc lstat print printf readdir readline readpipe rewinddir select stat tell telldir write nextgroup=perlFiledescStatementNocomma skipwhite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 syn keyword perlStatementFiledesc fcntl flock ioctl open opendir read seek seekdir sysopen sysread sysseek syswrite truncate nextgroup=perlFiledescStatementComma skipwhite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 syn keyword perlStatementVector pack vec
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 syn keyword perlStatementFiles chdir chmod chown chroot glob link mkdir readlink rename rmdir symlink umask unlink utime
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 syn keyword perlStatementFlow caller die dump eval exit wantarray
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 syn keyword perlStatementInclude require
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
111 syn match perlStatementInclude "\<\(use\|no\)\s\+\(\(attributes\|autouse\|base\|big\(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|diagnostics\|encoding\|fields\|filetest\|if\|integer\|less\|lib\|locale\|open\|ops\|overload\|re\|sigtrap\|sort\|strict\|subs\|threads\(::shared\)\=\|utf8\|vars\|vmsish\|warnings\(::register\)\=\)\>\)\="
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
112
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 syn keyword perlStatementProc alarm exec fork getpgrp getppid getpriority kill pipe setpgrp setpriority sleep system times wait waitpid
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 syn keyword perlStatementSocket accept bind connect getpeername getsockname getsockopt listen recv send setsockopt shutdown socket socketpair
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 syn keyword perlStatementIPC msgctl msgget msgrcv msgsnd semctl semget semop shmctl shmget shmread shmwrite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 syn keyword perlStatementNetwork endhostent endnetent endprotoent endservent gethostbyaddr gethostbyname gethostent getnetbyaddr getnetbyname getnetent getprotobyname getprotobynumber getprotoent getservbyname getservbyport getservent sethostent setnetent setprotoent setservent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 syn keyword perlStatementPword getpwuid getpwnam getpwent setpwent endpwent getgrent getgrgid getlogin getgrnam setgrent endgrent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 syn keyword perlStatementTime gmtime localtime time times
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 syn keyword perlStatementMisc warn formline reset scalar delete prototype lock
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
121 if !exists("perl_no_semi_keywords")
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
122 syn keyword perlStatementScope import
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
123 syn keyword perlStatementNew new
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
124 syn keyword perlStatementCarp carp confess croak
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
125 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 syn keyword perlTodo TODO TBD FIXME XXX contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 " Perl Identifiers.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 " Should be cleaned up to better handle identifiers in particular situations
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 " (in hash keys for example)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 " Plain identifiers: $foo, @foo, $#foo, %foo, &foo and dereferences $$foo, @$foo, etc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 " We do not process complex things such as @{${"foo"}}. Too complicated, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 " too slow. And what is after the -> is *not* considered as part of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 " variable - there again, too complicated and too slow.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 " Special variables first ($^A, ...) and ($|, $', ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 syn match perlVarPlain "$^[ADEFHILMOPSTWX]\="
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
140 syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~?@$<>(-]"
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
141 syn match perlVarPlain "$\(0\|[1-9]\d*\)"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 " Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 syn match perlVarPlain "$:[^:]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 " These variables are not recognized within matches.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 syn match perlVarNotInMatches "$[|)]"
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
146 " This variable is not recognized within matches delimited by '/'.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 syn match perlVarSlash "$/"
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
148 " This variable is not recognized within matches delimited by '!'.
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
149 syn match perlVarBang "$!"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 " And plain identifiers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 syn match perlPackageRef "\(\h\w*\)\=\(::\|'\)\I"me=e-1 contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 " FIXME value between {} should be marked as string. is treated as such by Perl.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 " At the moment it is marked as something greyish instead of read. Probably todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 " with transparency. Or maybe we should handle the bare word in that case. or make it into
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
158 if !exists("perl_no_scope_in_variables")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 syn match perlVarPlain "\\\=\([@%$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 syn match perlFunctionName "\\\=&\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 syn match perlVarPlain "\\\=\([@%$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 syn match perlFunctionName "\\\=&\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
166 if !exists("perl_no_extended_vars")
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
167 syn cluster perlExpr contains=perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBang,perlVarBlock,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 syn region perlVarBlock matchgroup=perlVarPlain start="\($#\|[@%$]\)\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 syn region perlVarBlock matchgroup=perlVarPlain start="&\$*{" skip="\\}" end="}" contains=@perlExpr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 syn match perlVarPlain "\\\=\(\$#\|[@%&$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 syn region perlVarMember matchgroup=perlVarPlain start="\(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 syn match perlVarSimpleMember "\(->\)\={\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember contains=perlVarSimpleMemberName contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 syn match perlVarSimpleMemberName "\I\i*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 syn region perlVarMember matchgroup=perlVarPlain start="\(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 syn match perlMethod "\(->\)\I\i*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 " File Descriptors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 syn match perlFiledescRead "[<]\h\w\+[>]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
182 syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^,[:space:]]"me=e-1 transparent contained contains=perlFiledescStatement
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 syn match perlFiledescStatement "\u\w*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 " Special characters in strings and matches
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 syn match perlSpecialString "\\\(\d\+\|[xX]\x\+\|c\u\|.\)" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 syn match perlSpecialStringU "\\['\\]" contained
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
189 syn match perlSpecialMatch "{\d\+\(,\d*\)\=}" contained
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 syn match perlSpecialMatch "\[\(\]\|-\)\=[^\[\]]*\(\[\|\-\)\=\]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 syn match perlSpecialMatch "[+*()?.]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 syn match perlSpecialMatch "(?[#:=!]" contained
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
193 syn match perlSpecialMatch "(?<[=!]" contained
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 syn match perlSpecialMatch "(?[imsx]\+)" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 " FIXME the line below does not work. It should mark end of line and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 " begin of line as perlSpecial.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 " syn match perlSpecialBEOM "^\^\|\$$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 " Possible errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 " Highlight lines with only whitespace (only in blank delimited here documents) as errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 syn match perlNotEmptyLine "^\s\+$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 " Highlight '} else if (...) {', it should be '} else { if (...) { ' or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 " '} elsif (...) {'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 "syn keyword perlElseIfError if contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 " Variable interpolation
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 " These items are interpolated inside "" strings and similar constructs.
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
210 syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBang,perlVarBlock
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 " These items are interpolated inside '' strings and similar constructs.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 syn cluster perlInterpSQ contains=perlSpecialStringU
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 " These items are interpolated inside m// matches and s/// substitutions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 syn cluster perlInterpSlash contains=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock,perlSpecialBEOM
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 " These items are interpolated inside m## matches and s### substitutions.
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
216 syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash,perlVarBang
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 " Shell commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 syn region perlShellCommand matchgroup=perlMatchStartEnd start="`" end="`" contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 " Constants
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 " Numbers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 syn match perlNumber "[-+]\=\(\<\d[[:digit:]_]*L\=\>\|0[xX]\x[[:xdigit:]_]*\>\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 syn match perlFloat "[-+]\=\<\d[[:digit:]_]*[eE][\-+]\=\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 syn match perlFloat "[-+]\=\<\d[[:digit:]_]*\.[[:digit:]_]*\([eE][\-+]\=\d\+\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 syn match perlFloat "[-+]\=\<\.[[:digit:]_]\+\([eE][\-+]\=\d\+\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 " Simple version of searches and matches
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 " caters for m//, m##, m{} and m[] (and the !/ variant)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]#+ end=+#[cgimosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]{+ end=+}[cgimosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]\[+ end=+\][cgimosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 " A special case for m!!x which allows for comments and extra whitespace in the pattern
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]!+ end=+![cgimosx]*+ contains=@perlInterpSlash,perlComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 " Below some hacks to recognise the // variant. This is virtually impossible to catch in all
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 " cases as the / is used in so many other ways, but these should be the most obvious ones.
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
242 syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%&]\<split /+lc=6 start=+^while /+lc=5 start=+[^$@%&]while /+lc=6 start=+^if /+lc=2 start=+[^$@%&]if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^=[:space:][:digit:]$@%&]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 " Substitutions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 " caters for s///, s### and s[][]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 " perlMatch is the first part, perlSubstitution* is the substitution part
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s'+ end=+'+me=e-1 contains=@perlInterpSQ nextgroup=perlSubstitutionSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s"+ end=+"+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s/+ end=+/+me=e-1 contains=@perlInterpSlash nextgroup=perlSubstitutionSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s#+ end=+#+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionHash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s\[+ end=+\]+ contains=@perlInterpMatch nextgroup=perlSubstitutionBracket skipwhite skipempty skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s{+ end=+}+ contains=@perlInterpMatch nextgroup=perlSubstitutionCurly skipwhite skipempty skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[ecgimosx]*+ contained contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 syn region perlSubstitutionDQ matchgroup=perlMatchStartEnd start=+"+ end=+"[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 syn region perlSubstitutionSlash matchgroup=perlMatchStartEnd start=+/+ end=+/[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 syn region perlSubstitutionHash matchgroup=perlMatchStartEnd start=+#+ end=+#[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258 syn region perlSubstitutionBracket matchgroup=perlMatchStartEnd start=+\[+ end=+\][ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259 syn region perlSubstitutionCurly matchgroup=perlMatchStartEnd start=+{+ end=+}[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
261 " A special case for s!!!x which allows for comments and extra whitespace in the pattern
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<s!+ end=+!+me=e-1 contains=@perlInterpSlash,perlComment nextgroup=perlSubstitutionPling
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 syn region perlSubstitutionPling matchgroup=perlMatchStartEnd start=+!+ end=+![ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265 " Substitutions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 " caters for tr///, tr### and tr[][]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 " perlMatch is the first part, perlTranslation* is the second, translator part.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\(tr\|y\)'+ end=+'+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\(tr\|y\)"+ end=+"+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\(tr\|y\)/+ end=+/+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\(tr\|y\)#+ end=+#+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationHash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\(tr\|y\)\[+ end=+\]+ contains=@perlInterpSQ nextgroup=perlTranslationBracket skipwhite skipempty skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\(tr\|y\){+ end=+}+ contains=@perlInterpSQ nextgroup=perlTranslationCurly skipwhite skipempty skipnl
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 syn region perlTranslationSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 syn region perlTranslationDQ matchgroup=perlMatchStartEnd start=+"+ end=+"[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 syn region perlTranslationSlash matchgroup=perlMatchStartEnd start=+/+ end=+/[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 syn region perlTranslationHash matchgroup=perlMatchStartEnd start=+#+ end=+#[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 syn region perlTranslationBracket matchgroup=perlMatchStartEnd start=+\[+ end=+\][cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 syn region perlTranslationCurly matchgroup=perlMatchStartEnd start=+{+ end=+}[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 " The => operator forces a bareword to the left of it to be interpreted as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 " a string
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 syn match perlString "\<\I\i*\s*=>"me=e-2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 " Strings and q, qq, qw and qr expressions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
288 " Parentheses in qq()
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
289 syn region perlParens start=+(+ end=+)+ contained transparent contains=perlParens,@perlStringSQ
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
291 syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@Spell,@perlInterpSQ
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
292 syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@Spell,@perlInterpDQ
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q#+ end=+#+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q|+ end=+|+ contains=@perlInterpSQ
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
295 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlParens
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q{+ end=+}+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q/+ end=+/+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]#+ end=+#+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]|+ end=+|+ contains=@perlInterpDQ
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
300 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlParens
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]{+ end=+}+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]/+ end=+/+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw#+ end=+#+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw|+ end=+|+ contains=@perlInterpSQ
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
305 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlParens
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw{+ end=+}+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw/+ end=+/+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr#+ end=+#[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr|+ end=+|[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr(+ end=+)[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr{+ end=+}[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr/+ end=+/[imosx]*+ contains=@perlInterpSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 " Constructs such as print <<EOF [...] EOF, 'here' documents
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 if version >= 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 " XXX Any statements after the identifier are in perlString colour (i.e.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 " 'if $a' in 'print <<EOF if $a').
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 if exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(.\{-}\)"+ end=+^\z1$+ contains=@perlInterpDQ fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(.\{-}\)'+ end=+^\z1$+ contains=@perlInterpSQ fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 syn region perlAutoload matchgroup=perlStringStartEnd start=+<<['"]\z(END_\(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)['"]+ end=+^\z1$+ contains=ALL fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(.\{-}\)"+ end=+^\z1$+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(.\{-}\)'+ end=+^\z1$+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\(['"]\|\)\z(END_\(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\z1$+ contains=ALL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 syn match perlUntilEOFStart "<<EOF.*"lc=5 nextgroup=perlUntilEOFDQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 syn match perlUntilEOFStart "<<\s*\"EOF\".*" nextgroup=perlUntilEOFDQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 syn match perlUntilEOFStart "<<\s*'EOF'.*" nextgroup=perlUntilEOFSQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 syn match perlUntilEOFStart "<<\s*\"\".*" nextgroup=perlUntilEmptyDQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 syn match perlUntilEOFStart "<<\s*''.*" nextgroup=perlUntilEmptySQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 syn region perlUntilEOFDQ matchgroup=perlStringStartEnd start=++ end="^EOF$" contains=@perlInterpDQ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 syn region perlUntilEOFSQ matchgroup=perlStringStartEnd start=++ end="^EOF$" contains=@perlInterpSQ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 syn region perlUntilEmptySQ matchgroup=perlStringStartEnd start=++ end="^$" contains=@perlInterpDQ,perlNotEmptyLine contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343 syn region perlUntilEmptyDQ matchgroup=perlStringStartEnd start=++ end="^$" contains=@perlInterpSQ,perlNotEmptyLine contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 syn match perlHereIdentifier "<<EOF"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 syn region perlAutoload matchgroup=perlStringStartEnd start=+<<\(['"]\|\)\(END_\(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)\1+ end=+^\(END_\(SUB\|OF_FUNC\|OF_AUTOLOAD\)\)$+ contains=ALL
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 " Class declarations
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 syn match perlPackageDecl "^\s*\<package\s\+\S\+" contains=perlStatementPackage
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 syn keyword perlStatementPackage package contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354 " Functions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355 " sub [name] [(prototype)] {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
357 syn region perlFunction start="\s*\<sub\>" end="[;{]"he=e-1 contains=perlStatementSub,perlFunctionPrototype,perlFunctionPRef,perlFunctionName,perlComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
358 syn keyword perlStatementSub sub contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360 syn match perlFunctionPrototype "([^)]*)" contained
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
361 if !exists("perl_no_scope_in_variables")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 syn match perlFunctionPRef "\h\w*::" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363 syn match perlFunctionName "\h\w*[^:]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 syn match perlFunctionName "\h[[:alnum:]_:]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 " All other # are comments, except ^#!
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
370 syn match perlComment "#.*" contains=@Spell,perlTodo
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
371 syn match perlSharpBang "^#!.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373 " Formats
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 syn region perlFormat matchgroup=perlStatementIOFunc start="^\s*\<format\s\+\k\+\s*=\s*$"rs=s+6 end="^\s*\.\s*$" contains=perlFormatName,perlFormatField,perlVarPlain
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 syn match perlFormatName "format\s\+\k\+\s*="lc=7,me=e-1 contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 syn match perlFormatField "[@^][|<>~]\+\(\.\.\.\)\=" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 syn match perlFormatField "[@^]#[#.]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 syn match perlFormatField "@\*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379 syn match perlFormatField "@[^A-Za-z_|<>~#*]"me=e-1 contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 syn match perlFormatField "@$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 " __END__ and __DATA__ clauses
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 if exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384 syntax region perlDATA start="^__\(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 syntax region perlDATA start="^__\(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 " Folding
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393 if exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 syn region perlPackageFold start="^package \S\+;$" end="^1;$" end="\n\+package"me=s-1 transparent fold keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*$" end="^\z1}\s*\#.*$" transparent fold keepend
548
f43150a669dc updated for version 7.0155
vimboss
parents: 22
diff changeset
396 syn region perlBEGINENDFold start="^\z(\s*\)\<\(BEGIN\|END\|CHECK\|INIT\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 if exists("perl_fold_blocks")
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
399 syn region perlIfFold start="^\z(\s*\)\(if\|unless\|for\|while\|until\)\s*(.*)\(\s*{\)\=\s*$" start="^\z(\s*\)foreach\s*\(\(my\|our\)\=\s*\S\+\s*\)\=(.*)\(\s*{\)\=\s*$" start="\z(\s*\)else\s*{\s*$" end="^\z1}\s*;\=$" transparent fold keepend
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
400 syn region perlIfFold start="^\z(\s*\)do\(\s*{\)\=\s*$" end="^\z1}\s*while" end="^\z1}\s*;\=$" transparent fold keepend
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 setlocal foldmethod=syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 syn sync fromstart
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 " fromstart above seems to set minlines even if perl_fold is not set.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 syn sync minlines=0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 if version >= 508 || !exists("did_perl_syn_inits")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 if version < 508
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 let did_perl_syn_inits = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 command -nargs=+ HiLink hi link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 command -nargs=+ HiLink hi def link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 " The default highlighting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 HiLink perlSharpBang PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 HiLink perlControl PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 HiLink perlInclude Include
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 HiLink perlSpecial Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 HiLink perlString String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 HiLink perlCharacter Character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 HiLink perlNumber Number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 HiLink perlFloat Float
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428 HiLink perlType Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429 HiLink perlIdentifier Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
430 HiLink perlLabel Label
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 HiLink perlStatement Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 HiLink perlConditional Conditional
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 HiLink perlRepeat Repeat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 HiLink perlOperator Operator
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 HiLink perlFunction Function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 HiLink perlFunctionPrototype perlFunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 HiLink perlComment Comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 HiLink perlTodo Todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 if exists("perl_string_as_statement")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 HiLink perlStringStartEnd perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 HiLink perlStringStartEnd perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444 HiLink perlList perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 HiLink perlMisc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 HiLink perlVarPlain perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447 HiLink perlFiledescRead perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448 HiLink perlFiledescStatement perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 HiLink perlVarSimpleMember perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 HiLink perlVarSimpleMemberName perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 HiLink perlVarNotInMatches perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 HiLink perlVarSlash perlIdentifier
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
453 HiLink perlVarBang perlIdentifier
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 HiLink perlQQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 if version >= 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 HiLink perlHereDoc perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
458 HiLink perlHereIdentifier perlStringStartEnd
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 HiLink perlUntilEOFDQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460 HiLink perlUntilEOFSQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 HiLink perlUntilEmptyDQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 HiLink perlUntilEmptySQ perlString
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
463 HiLink perlUntilEOF perlString
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 HiLink perlStringUnexpanded perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 HiLink perlSubstitutionSQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 HiLink perlSubstitutionDQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 HiLink perlSubstitutionSlash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 HiLink perlSubstitutionHash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 HiLink perlSubstitutionBracket perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 HiLink perlSubstitutionCurly perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 HiLink perlSubstitutionPling perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 HiLink perlTranslationSlash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474 HiLink perlTranslationHash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475 HiLink perlTranslationBracket perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476 HiLink perlTranslationCurly perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477 HiLink perlMatch perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 HiLink perlMatchStartEnd perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 HiLink perlFormatName perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 HiLink perlFormatField perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481 HiLink perlPackageDecl perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
482 HiLink perlStorageClass perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
483 HiLink perlPackageRef perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
484 HiLink perlStatementPackage perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
485 HiLink perlStatementSub perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486 HiLink perlStatementStorage perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487 HiLink perlStatementControl perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 HiLink perlStatementScalar perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
489 HiLink perlStatementRegexp perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
490 HiLink perlStatementNumeric perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
491 HiLink perlStatementList perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
492 HiLink perlStatementHash perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493 HiLink perlStatementIOfunc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 HiLink perlStatementFiledesc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
495 HiLink perlStatementVector perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 HiLink perlStatementFiles perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
497 HiLink perlStatementFlow perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
498 HiLink perlStatementScope perlStatement
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
499 HiLink perlStatementInclude perlInclude
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
500 HiLink perlStatementProc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
501 HiLink perlStatementSocket perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
502 HiLink perlStatementIPC perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
503 HiLink perlStatementNetwork perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
504 HiLink perlStatementPword perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
505 HiLink perlStatementTime perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
506 HiLink perlStatementMisc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
507 HiLink perlStatementNew perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
508 HiLink perlFunctionName perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
509 HiLink perlMethod perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
510 HiLink perlFunctionPRef perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
511 HiLink perlPOD perlComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
512 HiLink perlShellCommand perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
513 HiLink perlSpecialAscii perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
514 HiLink perlSpecialDollar perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
515 HiLink perlSpecialString perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
516 HiLink perlSpecialStringU perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
517 HiLink perlSpecialMatch perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
518 HiLink perlSpecialBEOM perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
519 HiLink perlDATA perlComment
557
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
520
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
521 HiLink perlParens Error
862863033fdd updated for version 7.0158
vimboss
parents: 548
diff changeset
522
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 " Possible errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
524 HiLink perlNotEmptyLine Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
525 HiLink perlElseIfError Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
526
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
527 delcommand HiLink
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
528 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
529
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
530 " Syncing to speed up processing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
531 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532 if !exists("perl_no_sync_on_sub")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
533 syn sync match perlSync grouphere NONE "^\s*\<package\s"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
534 syn sync match perlSync grouphere perlFunction "^\s*\<sub\s"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
535 syn sync match perlSync grouphere NONE "^}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
536 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
537
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
538 if !exists("perl_no_sync_on_global_var")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
539 syn sync match perlSync grouphere NONE "^$\I[[:alnum:]_:]+\s*=\s*{"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
540 syn sync match perlSync grouphere NONE "^[@%]\I[[:alnum:]_:]+\s*=\s*("
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
541 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
542
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
543 if exists("perl_sync_dist")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
544 execute "syn sync maxlines=" . perl_sync_dist
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
545 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
546 syn sync maxlines=100
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
547 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
548
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
549 syn sync match perlSyncPOD grouphere perlPOD "^=pod"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
550 syn sync match perlSyncPOD grouphere perlPOD "^=head"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
551 syn sync match perlSyncPOD grouphere perlPOD "^=item"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
552 syn sync match perlSyncPOD grouphere NONE "^=cut"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
553
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
554 let b:current_syntax = "perl"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
555
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
556 " vim: ts=8