annotate runtime/syntax/perl.vim @ 1118:2b8ff9e3c520

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