annotate runtime/syntax/perl.vim @ 7:3fc0f57ecb91 v7.0001

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