annotate runtime/syntax/perl.vim @ 44:af1bcb9a13c0

updated for version 7.0027
author vimboss
date Fri, 31 Dec 2004 20:56:11 +0000
parents cc049b00ee70
children f43150a669dc
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>
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
4 " Last Change: 2004 Aug 29
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")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend fold
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
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend
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")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 syn region perlPOD start="^=[a-z]" end="^=cut" fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 syn region perlPOD start="^=[a-z]" end="^=cut"
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")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
90 " if BEGIN/END is a keyword the perlBEGINENDFold does not work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 syn match perlControl "\<BEGIN\>" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 syn match perlControl "\<END\>" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 syn keyword perlControl BEGIN END
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 syn keyword perlStatementStorage my local our
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 syn keyword perlStatementControl goto return last next redo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 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
100 syn keyword perlStatementRegexp pos quotemeta split study
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 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
102 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
103 syn keyword perlStatementHash each exists keys values tie tied untie
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 syn keyword perlStatementIOfunc carp confess croak dbmclose dbmopen die syscall
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 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
106 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
107 syn keyword perlStatementVector pack vec
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 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
109 syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 syn keyword perlStatementFlow caller die dump eval exit wantarray
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 syn keyword perlStatementInclude require
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 syn match perlStatementInclude "\(use\|no\)\s\+\(integer\>\|strict\>\|lib\>\|sigtrap\>\|subs\>\|vars\>\|warnings\>\|utf8\>\|byte\>\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 syn keyword perlStatementScope import
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 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
115 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
116 syn keyword perlStatementIPC msgctl msgget msgrcv msgsnd semctl semget semop shmctl shmget shmread shmwrite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 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
118 syn keyword perlStatementPword getpwuid getpwnam getpwent setpwent endpwent getgrent getgrgid getlogin getgrnam setgrent endgrent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 syn keyword perlStatementTime gmtime localtime time times
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121 syn keyword perlStatementMisc warn formline reset scalar delete prototype lock
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 syn keyword perlStatementNew new
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 syn keyword perlTodo TODO TBD FIXME XXX contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 " Perl Identifiers.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 " Should be cleaned up to better handle identifiers in particular situations
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 " (in hash keys for example)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 " Plain identifiers: $foo, @foo, $#foo, %foo, &foo and dereferences $$foo, @$foo, etc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 " We do not process complex things such as @{${"foo"}}. Too complicated, and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 " too slow. And what is after the -> is *not* considered as part of the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 " variable - there again, too complicated and too slow.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136 " Special variables first ($^A, ...) and ($|, $', ...)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 syn match perlVarPlain "$^[ADEFHILMOPSTWX]\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@$<>(-]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 syn match perlVarPlain "$\(0\|[1-9][0-9]*\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 " Same as above, but avoids confusion in $::foo (equivalent to $main::foo)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 syn match perlVarPlain "$:[^:]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 " These variables are not recognized within matches.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 syn match perlVarNotInMatches "$[|)]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 " This variable is not recognized within matches delimited by m//.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 syn match perlVarSlash "$/"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 " And plain identifiers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 syn match perlPackageRef "\(\h\w*\)\=\(::\|'\)\I"me=e-1 contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 " FIXME value between {} should be marked as string. is treated as such by Perl.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 " At the moment it is marked as something greyish instead of read. Probably todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 " 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
153
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
154 if !exists("perl_no_scope_in_variables")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 syn match perlVarPlain "\\\=\([@%$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 syn match perlFunctionName "\\\=&\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158 syn match perlVarPlain "\\\=\([@%$]\|\$#\)\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember,perlMethod
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 syn match perlFunctionName "\\\=&\$*\(\I\i*\)\=\(\(::\|'\)\I\i*\)*\>" nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
162 if !exists("perl_no_extended_vars")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 syn cluster perlExpr contains=perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 syn region perlVarBlock matchgroup=perlVarPlain start="\($#\|[@%$]\)\$*{" skip="\\}" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 syn region perlVarBlock matchgroup=perlVarPlain start="&\$*{" skip="\\}" end="}" contains=@perlExpr
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 syn match perlVarPlain "\\\=\(\$#\|[@%&$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 syn region perlVarMember matchgroup=perlVarPlain start="\(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 syn match perlVarSimpleMember "\(->\)\={\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember contains=perlVarSimpleMemberName contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 syn match perlVarSimpleMemberName "\I\i*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 syn region perlVarMember matchgroup=perlVarPlain start="\(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 syn match perlMethod "\(->\)\I\i*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 " File Descriptors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 syn match perlFiledescRead "[<]\h\w\+[>]"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 syn match perlFiledescStatementComma "(\=\s*\u\w*\s*,"me=e-1 transparent contained contains=perlFiledescStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 syn match perlFiledescStatementNocomma "(\=\s*\u\w*\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 syn match perlFiledescStatement "\u\w*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 " Special characters in strings and matches
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 syn match perlSpecialString "\\\(\d\+\|[xX]\x\+\|c\u\|.\)" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 syn match perlSpecialStringU "\\['\\]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 syn match perlSpecialMatch "{\d\(,\d\)\=}" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 syn match perlSpecialMatch "\[\(\]\|-\)\=[^\[\]]*\(\[\|\-\)\=\]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 syn match perlSpecialMatch "[+*()?.]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 syn match perlSpecialMatch "(?[#:=!]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 syn match perlSpecialMatch "(?[imsx]\+)" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 " FIXME the line below does not work. It should mark end of line and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 " begin of line as perlSpecial.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 " syn match perlSpecialBEOM "^\^\|\$$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 " Possible errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 " Highlight lines with only whitespace (only in blank delimited here documents) as errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 syn match perlNotEmptyLine "^\s\+$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 " Highlight '} else if (...) {', it should be '} else { if (...) { ' or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 " '} elsif (...) {'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 "syn keyword perlElseIfError if contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 " Variable interpolation
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 " These items are interpolated inside "" strings and similar constructs.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 " These items are interpolated inside '' strings and similar constructs.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 syn cluster perlInterpSQ contains=perlSpecialStringU
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 " These items are interpolated inside m// matches and s/// substitutions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 syn cluster perlInterpSlash contains=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock,perlSpecialBEOM
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 " These items are interpolated inside m## matches and s### substitutions.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 " Shell commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 syn region perlShellCommand matchgroup=perlMatchStartEnd start="`" end="`" contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 " Constants
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 " Numbers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219 syn match perlNumber "[-+]\=\(\<\d[[:digit:]_]*L\=\>\|0[xX]\x[[:xdigit:]_]*\>\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 syn match perlFloat "[-+]\=\<\d[[:digit:]_]*[eE][\-+]\=\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 syn match perlFloat "[-+]\=\<\d[[:digit:]_]*\.[[:digit:]_]*\([eE][\-+]\=\d\+\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 syn match perlFloat "[-+]\=\<\.[[:digit:]_]\+\([eE][\-+]\=\d\+\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 " Simple version of searches and matches
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 " caters for m//, m##, m{} and m[] (and the !/ variant)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]#+ end=+#[cgimosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]{+ end=+}[cgimosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]\[+ end=+\][cgimosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 " 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
233 syn region perlMatch matchgroup=perlMatchStartEnd start=+[m!]!+ end=+![cgimosx]*+ contains=@perlInterpSlash,perlComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 " 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
236 " cases as the / is used in so many other ways, but these should be the most obvious ones.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 "syn region perlMatch matchgroup=perlMatchStartEnd start=+^split /+lc=5 start=+[^$@%]\<split /+lc=6 start=+^if /+lc=2 start=+[^$@%]if /+lc=3 start=+[!=]\~\s*/+lc=2 start=+[(~]/+lc=1 start=+\.\./+lc=2 start=+\s/[^= \t0-9$@%]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238 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/[^= \t0-9$@%]+lc=1,me=e-1,rs=e-1 start=+^/+ skip=+\\/+ end=+/[cgimosx]*+ contains=@perlInterpSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 " Substitutions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 " caters for s///, s### and s[][]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243 " perlMatch is the first part, perlSubstitution* is the substitution part
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 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
245 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
246 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
247 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
248 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
249 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
250 syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[ecgimosx]*+ contained contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 syn region perlSubstitutionDQ matchgroup=perlMatchStartEnd start=+"+ end=+"[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 syn region perlSubstitutionSlash matchgroup=perlMatchStartEnd start=+/+ end=+/[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 syn region perlSubstitutionHash matchgroup=perlMatchStartEnd start=+#+ end=+#[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 syn region perlSubstitutionBracket matchgroup=perlMatchStartEnd start=+\[+ end=+\][ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 syn region perlSubstitutionCurly matchgroup=perlMatchStartEnd start=+{+ end=+}[ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 " 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
258 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
259 syn region perlSubstitutionPling matchgroup=perlMatchStartEnd start=+!+ end=+![ecgimosx]*+ contained contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 " Substitutions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 " caters for tr///, tr### and tr[][]
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 " perlMatch is the first part, perlTranslation* is the second, translator part.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264 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
265 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
266 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
267 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
268 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
269 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
270 syn region perlTranslationSQ matchgroup=perlMatchStartEnd start=+'+ end=+'[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 syn region perlTranslationDQ matchgroup=perlMatchStartEnd start=+"+ end=+"[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 syn region perlTranslationSlash matchgroup=perlMatchStartEnd start=+/+ end=+/[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 syn region perlTranslationHash matchgroup=perlMatchStartEnd start=+#+ end=+#[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 syn region perlTranslationBracket matchgroup=perlMatchStartEnd start=+\[+ end=+\][cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 syn region perlTranslationCurly matchgroup=perlMatchStartEnd start=+{+ end=+}[cds]*+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 " The => operator forces a bareword to the left of it to be interpreted as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 " a string
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 syn match perlString "\<\I\i*\s*=>"me=e-2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 " Strings and q, qq, qw and qr expressions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 " Brackets in qq()
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 syn region perlBrackets start=+(+ end=+)+ contained transparent contains=perlBrackets,@perlStringSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q#+ end=+#+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q|+ end=+|+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q(+ end=+)+ contains=@perlInterpSQ,perlBrackets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q{+ end=+}+ contains=@perlInterpSQ
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[qx]#+ end=+#+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]|+ end=+|+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx](+ end=+)+ contains=@perlInterpDQ,perlBrackets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 syn region perlQQ matchgroup=perlStringStartEnd start=+\<q[qx]{+ end=+}+ contains=@perlInterpDQ
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=+\<qw#+ end=+#+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw|+ end=+|+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw(+ end=+)+ contains=@perlInterpSQ,perlBrackets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qw{+ end=+}+ contains=@perlInterpSQ
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=+\<qr#+ end=+#[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr|+ end=+|[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr(+ end=+)[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr{+ end=+}[imosx]*+ contains=@perlInterpMatch
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308 syn region perlQQ matchgroup=perlStringStartEnd start=+\<qr/+ end=+/[imosx]*+ contains=@perlInterpSlash
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 " Constructs such as print <<EOF [...] EOF, 'here' documents
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312 if version >= 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313 " XXX Any statements after the identifier are in perlString colour (i.e.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 " 'if $a' in 'print <<EOF if $a').
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
315 if exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
317 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(.\{-}\)"+ end=+^\z1$+ contains=@perlInterpDQ fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(.\{-}\)'+ end=+^\z1$+ contains=@perlInterpSQ fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
319 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
320 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
321 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
322 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\z(\I\i*\)+ end=+^\z1$+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*"\z(.\{-}\)"+ end=+^\z1$+ contains=@perlInterpDQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*'\z(.\{-}\)'+ end=+^\z1$+ contains=@perlInterpSQ
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*""+ end=+^$+ contains=@perlInterpDQ,perlNotEmptyLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 syn region perlHereDoc matchgroup=perlStringStartEnd start=+<<\s*''+ end=+^$+ contains=@perlInterpSQ,perlNotEmptyLine
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 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
329 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 syn match perlUntilEOFStart "<<EOF.*"lc=5 nextgroup=perlUntilEOFDQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 syn match perlUntilEOFStart "<<\s*\"EOF\".*" nextgroup=perlUntilEOFDQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 syn match perlUntilEOFStart "<<\s*'EOF'.*" nextgroup=perlUntilEOFSQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 syn match perlUntilEOFStart "<<\s*\"\".*" nextgroup=perlUntilEmptyDQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 syn match perlUntilEOFStart "<<\s*''.*" nextgroup=perlUntilEmptySQ skipnl transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 syn region perlUntilEOFDQ matchgroup=perlStringStartEnd start=++ end="^EOF$" contains=@perlInterpDQ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
337 syn region perlUntilEOFSQ matchgroup=perlStringStartEnd start=++ end="^EOF$" contains=@perlInterpSQ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 syn region perlUntilEmptySQ matchgroup=perlStringStartEnd start=++ end="^$" contains=@perlInterpDQ,perlNotEmptyLine contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 syn region perlUntilEmptyDQ matchgroup=perlStringStartEnd start=++ end="^$" contains=@perlInterpSQ,perlNotEmptyLine contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 syn match perlHereIdentifier "<<EOF"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 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
342 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
345 " Class declarations
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347 syn match perlPackageDecl "^\s*\<package\s\+\S\+" contains=perlStatementPackage
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 syn keyword perlStatementPackage package contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 " Functions
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 " sub [name] [(prototype)] {
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353 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
354 syn keyword perlStatementSub sub contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356 syn match perlFunctionPrototype "([^)]*)" contained
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
357 if !exists("perl_no_scope_in_variables")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
358 syn match perlFunctionPRef "\h\w*::" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
359 syn match perlFunctionName "\h\w*[^:]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
360 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
361 syn match perlFunctionName "\h[[:alnum:]_:]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
363
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365 " All other # are comments, except ^#!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 syn match perlComment "#.*" contains=perlTodo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367 syn match perlSharpBang "^#!.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 " Formats
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 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
371 syn match perlFormatName "format\s\+\k\+\s*="lc=7,me=e-1 contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 syn match perlFormatField "[@^][|<>~]\+\(\.\.\.\)\=" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
373 syn match perlFormatField "[@^]#[#.]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 syn match perlFormatField "@\*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
375 syn match perlFormatField "@[^A-Za-z_|<>~#*]"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
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 " __END__ and __DATA__ clauses
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
379 if exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 syntax region perlDATA start="^__\(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA fold
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
381 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 syntax region perlDATA start="^__\(DATA\|END\)__$" skip="." end="." contains=perlPOD,@perlDATA
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
383 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387 " Folding
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 if exists("perl_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 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
391 syn region perlSubFold start="^\z(\s*\)\<sub\>.*[^};]$" end="^\z1}\s*$" end="^\z1}\s*\#.*$" transparent fold keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 syn region perlBEGINENDFold start="^\z(\s*\)\<\(BEGIN\|END\)\>.*[^};]$" end="^\z1}\s*$" transparent fold keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 if exists("perl_fold_blocks")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 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*$" end="^\z1}\s*;\=$" transparent fold keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396 syn region perlIfFold start="^\z(\s*\)do\s*{\s*$" end="^\z1}\s*while" end="^\z1}\s*;\=$" transparent fold keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399 setlocal foldmethod=syntax
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400 syn sync fromstart
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 " fromstart above seems to set minlines even if perl_fold is not set.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 syn sync minlines=0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 if version >= 508 || !exists("did_perl_syn_inits")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408 if version < 508
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409 let did_perl_syn_inits = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410 command -nargs=+ HiLink hi link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 command -nargs=+ HiLink hi def link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 " The default highlighting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 HiLink perlSharpBang PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 HiLink perlControl PreProc
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 HiLink perlInclude Include
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419 HiLink perlSpecial Special
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 HiLink perlString String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 HiLink perlCharacter Character
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 HiLink perlNumber Number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 HiLink perlFloat Float
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 HiLink perlType Type
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 HiLink perlIdentifier Identifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 HiLink perlLabel Label
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
427 HiLink perlStatement Statement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
428 HiLink perlConditional Conditional
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
429 HiLink perlRepeat Repeat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
430 HiLink perlOperator Operator
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 HiLink perlFunction Function
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
432 HiLink perlFunctionPrototype perlFunction
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
433 HiLink perlComment Comment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
434 HiLink perlTodo Todo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
435 if exists("perl_string_as_statement")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
436 HiLink perlStringStartEnd perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
437 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 HiLink perlStringStartEnd perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
440 HiLink perlList perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
441 HiLink perlMisc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 HiLink perlVarPlain perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
443 HiLink perlFiledescRead perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
444 HiLink perlFiledescStatement perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
445 HiLink perlVarSimpleMember perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
446 HiLink perlVarSimpleMemberName perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
447 HiLink perlVarNotInMatches perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
448 HiLink perlVarSlash perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
449 HiLink perlQQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
450 if version >= 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
451 HiLink perlHereDoc perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
452 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
453 HiLink perlHereIdentifier perlStringStartEnd
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
454 HiLink perlUntilEOFDQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
455 HiLink perlUntilEOFSQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
456 HiLink perlUntilEmptyDQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
457 HiLink perlUntilEmptySQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
458 HiLink perlUntilEOF perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
459 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
460 HiLink perlStringUnexpanded perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
461 HiLink perlSubstitutionSQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
462 HiLink perlSubstitutionDQ perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
463 HiLink perlSubstitutionSlash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464 HiLink perlSubstitutionHash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 HiLink perlSubstitutionBracket perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
466 HiLink perlSubstitutionCurly perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 HiLink perlSubstitutionPling perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 HiLink perlTranslationSlash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 HiLink perlTranslationHash perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 HiLink perlTranslationBracket perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 HiLink perlTranslationCurly perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 HiLink perlMatch perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 HiLink perlMatchStartEnd perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
474 HiLink perlFormatName perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475 HiLink perlFormatField perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
476 HiLink perlPackageDecl perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477 HiLink perlStorageClass perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 HiLink perlPackageRef perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 HiLink perlStatementPackage perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 HiLink perlStatementSub perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481 HiLink perlStatementStorage perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
482 HiLink perlStatementControl perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
483 HiLink perlStatementScalar perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
484 HiLink perlStatementRegexp perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
485 HiLink perlStatementNumeric perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486 HiLink perlStatementList perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487 HiLink perlStatementHash perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 HiLink perlStatementIOfunc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
489 HiLink perlStatementFiledesc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
490 HiLink perlStatementVector perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
491 HiLink perlStatementFiles perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
492 HiLink perlStatementFlow perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493 HiLink perlStatementScope perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 HiLink perlStatementInclude perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
495 HiLink perlStatementProc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 HiLink perlStatementSocket perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
497 HiLink perlStatementIPC perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
498 HiLink perlStatementNetwork perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
499 HiLink perlStatementPword perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
500 HiLink perlStatementTime perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
501 HiLink perlStatementMisc perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
502 HiLink perlStatementNew perlStatement
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
503 HiLink perlFunctionName perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
504 HiLink perlMethod perlIdentifier
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
505 HiLink perlFunctionPRef perlType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
506 HiLink perlPOD perlComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
507 HiLink perlShellCommand perlString
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
508 HiLink perlSpecialAscii perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
509 HiLink perlSpecialDollar perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
510 HiLink perlSpecialString perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
511 HiLink perlSpecialStringU perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
512 HiLink perlSpecialMatch perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
513 HiLink perlSpecialBEOM perlSpecial
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
514 HiLink perlDATA perlComment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
515
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
516 HiLink perlBrackets Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
517
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
518 " Possible errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
519 HiLink perlNotEmptyLine Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
520 HiLink perlElseIfError Error
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
521
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
522 delcommand HiLink
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
524
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
525 " Syncing to speed up processing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
526 "
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
527 if !exists("perl_no_sync_on_sub")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
528 syn sync match perlSync grouphere NONE "^\s*\<package\s"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
529 syn sync match perlSync grouphere perlFunction "^\s*\<sub\s"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
530 syn sync match perlSync grouphere NONE "^}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
531 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
533 if !exists("perl_no_sync_on_global_var")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
534 syn sync match perlSync grouphere NONE "^$\I[[:alnum:]_:]+\s*=\s*{"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
535 syn sync match perlSync grouphere NONE "^[@%]\I[[:alnum:]_:]+\s*=\s*("
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_sync_dist")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
539 execute "syn sync maxlines=" . perl_sync_dist
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
540 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
541 syn sync maxlines=100
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
542 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
543
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
544 syn sync match perlSyncPOD grouphere perlPOD "^=pod"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
545 syn sync match perlSyncPOD grouphere perlPOD "^=head"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
546 syn sync match perlSyncPOD grouphere perlPOD "^=item"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
547 syn sync match perlSyncPOD grouphere NONE "^=cut"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
548
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
549 let b:current_syntax = "perl"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
550
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
551 " vim: ts=8