annotate runtime/syntax/perl.vim @ 548:f43150a669dc

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