Linux web-conference.aiou.edu.pk 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64
Apache/2.4.41 (Ubuntu)
: 172.16.50.247 | : 18.222.113.254
Cant Read [ /etc/named.conf ]
7.4.3-4ubuntu2.28
appadmin
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
usr /
share /
vim /
vim81 /
syntax /
[ HOME SHELL ]
Name
Size
Permission
Action
2html.vim
69.8
KB
-rw-r--r--
8th.vim
28.02
KB
-rw-r--r--
README.txt
1.37
KB
-rw-r--r--
a2ps.vim
2.37
KB
-rw-r--r--
a65.vim
6.24
KB
-rw-r--r--
aap.vim
5.56
KB
-rw-r--r--
abap.vim
8.94
KB
-rw-r--r--
abaqus.vim
1.07
KB
-rw-r--r--
abc.vim
1.8
KB
-rw-r--r--
abel.vim
4.99
KB
-rw-r--r--
acedb.vim
4.76
KB
-rw-r--r--
ada.vim
12.74
KB
-rw-r--r--
aflex.vim
4.27
KB
-rw-r--r--
ahdl.vim
2.71
KB
-rw-r--r--
alsaconf.vim
1.51
KB
-rw-r--r--
amiga.vim
2.9
KB
-rw-r--r--
aml.vim
23.57
KB
-rw-r--r--
ampl.vim
4.01
KB
-rw-r--r--
ant.vim
5.68
KB
-rw-r--r--
antlr.vim
1.75
KB
-rw-r--r--
apache.vim
14.83
KB
-rw-r--r--
apachestyle.vim
1.38
KB
-rw-r--r--
aptconf.vim
21.71
KB
-rw-r--r--
arch.vim
1.12
KB
-rw-r--r--
arduino.vim
1.98
KB
-rw-r--r--
art.vim
1.27
KB
-rw-r--r--
asciidoc.vim
10.74
KB
-rw-r--r--
asm.vim
4.24
KB
-rw-r--r--
asm68k.vim
13.95
KB
-rw-r--r--
asmh8300.vim
1.95
KB
-rw-r--r--
asn.vim
2.52
KB
-rw-r--r--
aspperl.vim
811
B
-rw-r--r--
aspvbs.vim
8.89
KB
-rw-r--r--
asterisk.vim
5.39
KB
-rw-r--r--
asteriskvm.vim
2.28
KB
-rw-r--r--
atlas.vim
2.54
KB
-rw-r--r--
autodoc.vim
3.64
KB
-rw-r--r--
autohotkey.vim
11.58
KB
-rw-r--r--
autoit.vim
46.89
KB
-rw-r--r--
automake.vim
3.85
KB
-rw-r--r--
ave.vim
1.86
KB
-rw-r--r--
avra.vim
2.62
KB
-rw-r--r--
awk.vim
7.66
KB
-rw-r--r--
ayacc.vim
2.52
KB
-rw-r--r--
b.vim
4.79
KB
-rw-r--r--
baan.vim
71.87
KB
-rw-r--r--
bash.vim
371
B
-rw-r--r--
basic.vim
7.94
KB
-rw-r--r--
bc.vim
1.75
KB
-rw-r--r--
bdf.vim
3.75
KB
-rw-r--r--
bib.vim
5.86
KB
-rw-r--r--
bindzone.vim
4.79
KB
-rw-r--r--
blank.vim
794
B
-rw-r--r--
bst.vim
2.76
KB
-rw-r--r--
btm.vim
9.07
KB
-rw-r--r--
bzl.vim
374
B
-rw-r--r--
bzr.vim
1.52
KB
-rw-r--r--
c.vim
26.8
KB
-rw-r--r--
cabal.vim
6.65
KB
-rw-r--r--
calendar.vim
4.92
KB
-rw-r--r--
catalog.vim
921
B
-rw-r--r--
cdl.vim
3.02
KB
-rw-r--r--
cdrdaoconf.vim
3.56
KB
-rw-r--r--
cdrtoc.vim
22.22
KB
-rw-r--r--
cf.vim
18.21
KB
-rw-r--r--
cfg.vim
1.32
KB
-rw-r--r--
ch.vim
922
B
-rw-r--r--
chaiscript.vim
2.82
KB
-rw-r--r--
change.vim
901
B
-rw-r--r--
changelog.vim
2.05
KB
-rw-r--r--
chaskell.vim
333
B
-rw-r--r--
cheetah.vim
1.71
KB
-rw-r--r--
chicken.vim
2.56
KB
-rw-r--r--
chill.vim
7.84
KB
-rw-r--r--
chordpro.vim
2.46
KB
-rw-r--r--
cl.vim
3.81
KB
-rw-r--r--
clean.vim
3.08
KB
-rw-r--r--
clipper.vim
5.45
KB
-rw-r--r--
clojure.vim
40.95
KB
-rw-r--r--
cmake.vim
41.16
KB
-rw-r--r--
cmod.vim
6.12
KB
-rw-r--r--
cmusrc.vim
12.62
KB
-rw-r--r--
cobol.vim
13.27
KB
-rw-r--r--
coco.vim
1.27
KB
-rw-r--r--
colortest.vim
3.13
KB
-rw-r--r--
conaryrecipe.vim
7.85
KB
-rw-r--r--
conf.vim
799
B
-rw-r--r--
config.vim
2.03
KB
-rw-r--r--
context.vim
6.05
KB
-rw-r--r--
cpp.vim
2.8
KB
-rw-r--r--
crm.vim
1.17
KB
-rw-r--r--
crontab.vim
2.16
KB
-rw-r--r--
cs.vim
10.08
KB
-rw-r--r--
csc.vim
8.25
KB
-rw-r--r--
csdl.vim
23.2
KB
-rw-r--r--
csh.vim
6.31
KB
-rw-r--r--
csp.vim
6.98
KB
-rw-r--r--
css.vim
31.78
KB
-rw-r--r--
cterm.vim
6.26
KB
-rw-r--r--
ctrlh.vim
688
B
-rw-r--r--
cucumber.vim
31.14
KB
-rw-r--r--
cuda.vim
2.63
KB
-rw-r--r--
cupl.vim
3.78
KB
-rw-r--r--
cuplsim.vim
1.87
KB
-rw-r--r--
cvs.vim
929
B
-rw-r--r--
cvsrc.vim
1.22
KB
-rw-r--r--
cweb.vim
2.82
KB
-rw-r--r--
cynlib.vim
2.49
KB
-rw-r--r--
cynpp.vim
1.23
KB
-rw-r--r--
d.vim
27.96
KB
-rw-r--r--
dart.vim
3.21
KB
-rw-r--r--
datascript.vim
3.72
KB
-rw-r--r--
dcd.vim
1.76
KB
-rw-r--r--
dcl.vim
6.23
KB
-rw-r--r--
debchangelog.vim
3.45
KB
-rw-r--r--
debcontrol.vim
8.32
KB
-rw-r--r--
debcopyright.vim
1.11
KB
-rw-r--r--
debsources.vim
2.26
KB
-rw-r--r--
def.vim
1.07
KB
-rw-r--r--
denyhosts.vim
7.19
KB
-rw-r--r--
desc.vim
3
KB
-rw-r--r--
desktop.vim
4.05
KB
-rw-r--r--
dictconf.vim
3.04
KB
-rw-r--r--
dictdconf.vim
6.31
KB
-rw-r--r--
diff.vim
16.88
KB
-rw-r--r--
dircolors.vim
6.78
KB
-rw-r--r--
dirpager.vim
1.75
KB
-rw-r--r--
diva.vim
4.63
KB
-rw-r--r--
django.vim
3.84
KB
-rw-r--r--
dns.vim
132
B
-rw-r--r--
dnsmasq.vim
9.83
KB
-rw-r--r--
docbk.vim
10.08
KB
-rw-r--r--
docbksgml.vim
193
B
-rw-r--r--
docbkxml.vim
191
B
-rw-r--r--
dockerfile.vim
715
B
-rw-r--r--
dosbatch.vim
6.11
KB
-rw-r--r--
dosini.vim
1.24
KB
-rw-r--r--
dot.vim
2.95
KB
-rw-r--r--
doxygen.vim
37.74
KB
-rw-r--r--
dracula.vim
2.61
KB
-rw-r--r--
dsl.vim
1.28
KB
-rw-r--r--
dtd.vim
4.89
KB
-rw-r--r--
dtml.vim
16.22
KB
-rw-r--r--
dtrace.vim
6.29
KB
-rw-r--r--
dts.vim
1.18
KB
-rw-r--r--
dune.vim
1.88
KB
-rw-r--r--
dylan.vim
3.33
KB
-rw-r--r--
dylanintr.vim
1.05
KB
-rw-r--r--
dylanlid.vim
664
B
-rw-r--r--
ecd.vim
1.2
KB
-rw-r--r--
edif.vim
1.25
KB
-rw-r--r--
eiffel.vim
6.76
KB
-rw-r--r--
elf.vim
2.29
KB
-rw-r--r--
elinks.vim
10.25
KB
-rw-r--r--
elmfilt.vim
2.82
KB
-rw-r--r--
erlang.vim
10.66
KB
-rw-r--r--
eruby.vim
3.22
KB
-rw-r--r--
esmtprc.vim
938
B
-rw-r--r--
esqlc.vim
2.04
KB
-rw-r--r--
esterel.vim
2.98
KB
-rw-r--r--
eterm.vim
18.72
KB
-rw-r--r--
euphoria3.vim
5.96
KB
-rw-r--r--
euphoria4.vim
14.2
KB
-rw-r--r--
eviews.vim
4.89
KB
-rw-r--r--
exim.vim
17.66
KB
-rw-r--r--
expect.vim
3.65
KB
-rw-r--r--
exports.vim
1.71
KB
-rw-r--r--
falcon.vim
11.73
KB
-rw-r--r--
fan.vim
5.32
KB
-rw-r--r--
fasm.vim
8.55
KB
-rw-r--r--
fdcc.vim
5.52
KB
-rw-r--r--
fetchmail.vim
3.23
KB
-rw-r--r--
fgl.vim
7.1
KB
-rw-r--r--
flexwiki.vim
5.31
KB
-rw-r--r--
focexec.vim
3.44
KB
-rw-r--r--
form.vim
6.24
KB
-rw-r--r--
forth.vim
10.42
KB
-rw-r--r--
fortran.vim
31.8
KB
-rw-r--r--
foxpro.vim
32.09
KB
-rw-r--r--
framescript.vim
11.41
KB
-rw-r--r--
freebasic.vim
10.58
KB
-rw-r--r--
fstab.vim
15.49
KB
-rw-r--r--
fvwm.vim
24.44
KB
-rw-r--r--
fvwm2m4.vim
711
B
-rw-r--r--
gdb.vim
4.26
KB
-rw-r--r--
gdmo.vim
3.22
KB
-rw-r--r--
gedcom.vim
2.22
KB
-rw-r--r--
git.vim
4.06
KB
-rw-r--r--
gitcommit.vim
4.75
KB
-rw-r--r--
gitconfig.vim
1.59
KB
-rw-r--r--
gitolite.vim
4.35
KB
-rw-r--r--
gitrebase.vim
1.81
KB
-rw-r--r--
gitsendemail.vim
580
B
-rw-r--r--
gkrellmrc.vim
4.02
KB
-rw-r--r--
gnash.vim
3.38
KB
-rw-r--r--
gnuplot.vim
23.11
KB
-rw-r--r--
go.vim
7.72
KB
-rw-r--r--
godoc.vim
352
B
-rw-r--r--
gp.vim
2.9
KB
-rw-r--r--
gpg.vim
5.46
KB
-rw-r--r--
gprof.vim
2.07
KB
-rw-r--r--
grads.vim
1.7
KB
-rw-r--r--
gretl.vim
3.64
KB
-rw-r--r--
groff.vim
292
B
-rw-r--r--
groovy.vim
21.77
KB
-rw-r--r--
group.vim
1.68
KB
-rw-r--r--
grub.vim
3.8
KB
-rw-r--r--
gsp.vim
1.98
KB
-rw-r--r--
gtkrc.vim
9.1
KB
-rw-r--r--
haml.vim
6.9
KB
-rw-r--r--
hamster.vim
13.52
KB
-rw-r--r--
haskell.vim
8.7
KB
-rw-r--r--
haste.vim
4.88
KB
-rw-r--r--
hastepreproc.vim
1.39
KB
-rw-r--r--
hb.vim
3.08
KB
-rw-r--r--
help.vim
8.15
KB
-rw-r--r--
hercules.vim
5.59
KB
-rw-r--r--
hex.vim
3.92
KB
-rw-r--r--
hgcommit.vim
1.09
KB
-rw-r--r--
hitest.vim
3.56
KB
-rw-r--r--
hog.vim
11.83
KB
-rw-r--r--
hollywood.vim
43.41
KB
-rw-r--r--
hostconf.vim
3.78
KB
-rw-r--r--
hostsaccess.vim
549
B
-rw-r--r--
html.vim
18.45
KB
-rw-r--r--
htmlcheetah.vim
488
B
-rw-r--r--
htmldjango.vim
1011
B
-rw-r--r--
htmlm4.vim
670
B
-rw-r--r--
htmlos.vim
8.12
KB
-rw-r--r--
ia64.vim
10.3
KB
-rw-r--r--
ibasic.vim
6.87
KB
-rw-r--r--
icemenu.vim
824
B
-rw-r--r--
icon.vim
6.81
KB
-rw-r--r--
idl.vim
19.43
KB
-rw-r--r--
idlang.vim
13.15
KB
-rw-r--r--
indent.vim
7
KB
-rw-r--r--
inform.vim
19.03
KB
-rw-r--r--
initex.vim
18.77
KB
-rw-r--r--
initng.vim
3.32
KB
-rw-r--r--
inittab.vim
2.56
KB
-rw-r--r--
ipfilter.vim
1.58
KB
-rw-r--r--
ishd.vim
26.42
KB
-rw-r--r--
iss.vim
4.91
KB
-rw-r--r--
ist.vim
1.95
KB
-rw-r--r--
j.vim
9.16
KB
-rw-r--r--
jal.vim
8.75
KB
-rw-r--r--
jam.vim
26.08
KB
-rw-r--r--
jargon.vim
638
B
-rw-r--r--
java.vim
18.15
KB
-rw-r--r--
javacc.vim
2.2
KB
-rw-r--r--
javascript.vim
5.48
KB
-rw-r--r--
javascriptreact.vim
109
B
-rw-r--r--
jess.vim
6.08
KB
-rw-r--r--
jgraph.vim
1.18
KB
-rw-r--r--
jovial.vim
4.01
KB
-rw-r--r--
jproperties.vim
5.37
KB
-rw-r--r--
json.vim
6.11
KB
-rw-r--r--
jsp.vim
2.62
KB
-rw-r--r--
kconfig.vim
35.45
KB
-rw-r--r--
kivy.vim
986
B
-rw-r--r--
kix.vim
6.18
KB
-rw-r--r--
kscript.vim
1.94
KB
-rw-r--r--
kwt.vim
2.4
KB
-rw-r--r--
lace.vim
3.98
KB
-rw-r--r--
latte.vim
3.43
KB
-rw-r--r--
ld.vim
2.85
KB
-rw-r--r--
ldapconf.vim
12.99
KB
-rw-r--r--
ldif.vim
1014
B
-rw-r--r--
less.vim
4.13
KB
-rw-r--r--
lex.vim
6.57
KB
-rw-r--r--
lftp.vim
7.3
KB
-rw-r--r--
lhaskell.vim
4.33
KB
-rw-r--r--
libao.vim
636
B
-rw-r--r--
lifelines.vim
6.48
KB
-rw-r--r--
lilo.vim
10.18
KB
-rw-r--r--
limits.vim
1.29
KB
-rw-r--r--
liquid.vim
6.04
KB
-rw-r--r--
lisp.vim
35.05
KB
-rw-r--r--
lite.vim
4.73
KB
-rw-r--r--
litestep.vim
6.52
KB
-rw-r--r--
loginaccess.vim
4.1
KB
-rw-r--r--
logindefs.vim
7.36
KB
-rw-r--r--
logtalk.vim
16.45
KB
-rw-r--r--
lotos.vim
2.31
KB
-rw-r--r--
lout.vim
4.22
KB
-rw-r--r--
lpc.vim
22.6
KB
-rw-r--r--
lprolog.vim
3.89
KB
-rw-r--r--
lscript.vim
11.82
KB
-rw-r--r--
lsl.vim
15.43
KB
-rw-r--r--
lss.vim
4.76
KB
-rw-r--r--
lua.vim
13.72
KB
-rw-r--r--
lynx.vim
6.42
KB
-rw-r--r--
m4.vim
2.63
KB
-rw-r--r--
mail.vim
5.93
KB
-rw-r--r--
mailaliases.vim
2.7
KB
-rw-r--r--
mailcap.vim
1.11
KB
-rw-r--r--
make.vim
6.13
KB
-rw-r--r--
mallard.vim
1.69
KB
-rw-r--r--
man.vim
1.55
KB
-rw-r--r--
manconf.vim
4.24
KB
-rw-r--r--
manual.vim
909
B
-rw-r--r--
maple.vim
27.9
KB
-rw-r--r--
markdown.vim
7.86
KB
-rw-r--r--
masm.vim
16.82
KB
-rw-r--r--
mason.vim
3.73
KB
-rw-r--r--
master.vim
1022
B
-rw-r--r--
matlab.vim
4.21
KB
-rw-r--r--
maxima.vim
18.36
KB
-rw-r--r--
mel.vim
3.33
KB
-rw-r--r--
meson.vim
4.02
KB
-rw-r--r--
messages.vim
2.59
KB
-rw-r--r--
mf.vim
15.06
KB
-rw-r--r--
mgl.vim
3.64
KB
-rw-r--r--
mgp.vim
1.95
KB
-rw-r--r--
mib.vim
2.63
KB
-rw-r--r--
mix.vim
2.87
KB
-rw-r--r--
mma.vim
11.52
KB
-rw-r--r--
mmix.vim
4.85
KB
-rw-r--r--
mmp.vim
1.45
KB
-rw-r--r--
modconf.vim
1.39
KB
-rw-r--r--
model.vim
1.43
KB
-rw-r--r--
modsim3.vim
3.54
KB
-rw-r--r--
modula2.vim
3.15
KB
-rw-r--r--
modula3.vim
1.96
KB
-rw-r--r--
monk.vim
9.98
KB
-rw-r--r--
moo.vim
9.02
KB
-rw-r--r--
mp.vim
43.49
KB
-rw-r--r--
mplayerconf.vim
7.31
KB
-rw-r--r--
mrxvtrc.vim
9.38
KB
-rw-r--r--
msidl.vim
3.38
KB
-rw-r--r--
msmessages.vim
6.17
KB
-rw-r--r--
msql.vim
2.33
KB
-rw-r--r--
mupad.vim
15.11
KB
-rw-r--r--
murphi.vim
4.47
KB
-rw-r--r--
mush.vim
12.88
KB
-rw-r--r--
muttrc.vim
64.27
KB
-rw-r--r--
mysql.vim
17.2
KB
-rw-r--r--
n1ql.vim
12.6
KB
-rw-r--r--
named.vim
9.77
KB
-rw-r--r--
nanorc.vim
10.37
KB
-rw-r--r--
nasm.vim
25.67
KB
-rw-r--r--
nastran.vim
8.3
KB
-rw-r--r--
natural.vim
6.81
KB
-rw-r--r--
ncf.vim
13.1
KB
-rw-r--r--
neomuttrc.vim
77.37
KB
-rw-r--r--
netrc.vim
1.89
KB
-rw-r--r--
netrw.vim
7.05
KB
-rw-r--r--
ninja.vim
2.82
KB
-rw-r--r--
nosyntax.vim
755
B
-rw-r--r--
nqc.vim
13.74
KB
-rw-r--r--
nroff.vim
7.59
KB
-rw-r--r--
nsis.vim
33.26
KB
-rw-r--r--
obj.vim
2.72
KB
-rw-r--r--
objc.vim
40.74
KB
-rw-r--r--
objcpp.vim
600
B
-rw-r--r--
ocaml.vim
15.92
KB
-rw-r--r--
occam.vim
4.21
KB
-rw-r--r--
omnimark.vim
6.23
KB
-rw-r--r--
openroad.vim
13.65
KB
-rw-r--r--
opl.vim
4.03
KB
-rw-r--r--
ora.vim
26.5
KB
-rw-r--r--
pamconf.vim
5.42
KB
-rw-r--r--
papp.vim
3.7
KB
-rw-r--r--
pascal.vim
14.66
KB
-rw-r--r--
passwd.vim
2.39
KB
-rw-r--r--
pcap.vim
1.46
KB
-rw-r--r--
pccts.vim
4
KB
-rw-r--r--
pdf.vim
3.46
KB
-rw-r--r--
perl.vim
37.57
KB
-rw-r--r--
perl6.vim
72.39
KB
-rw-r--r--
pf.vim
10.13
KB
-rw-r--r--
pfmain.vim
90.56
KB
-rw-r--r--
php.vim
78.56
KB
-rw-r--r--
phtml.vim
151
B
-rw-r--r--
pic.vim
3.25
KB
-rw-r--r--
pike.vim
21.3
KB
-rw-r--r--
pilrc.vim
5.19
KB
-rw-r--r--
pine.vim
15.05
KB
-rw-r--r--
pinfo.vim
5.17
KB
-rw-r--r--
plaintex.vim
10.06
KB
-rw-r--r--
pli.vim
12.91
KB
-rw-r--r--
plm.vim
5.24
KB
-rw-r--r--
plp.vim
1.24
KB
-rw-r--r--
plsql.vim
12.62
KB
-rw-r--r--
po.vim
6.24
KB
-rw-r--r--
pod.vim
7.11
KB
-rw-r--r--
postscr.vim
45.05
KB
-rw-r--r--
pov.vim
8.84
KB
-rw-r--r--
povini.vim
3.41
KB
-rw-r--r--
ppd.vim
868
B
-rw-r--r--
ppwiz.vim
2.71
KB
-rw-r--r--
prescribe.vim
2.33
KB
-rw-r--r--
privoxy.vim
3.5
KB
-rw-r--r--
procmail.vim
1.97
KB
-rw-r--r--
progress.vim
31
KB
-rw-r--r--
prolog.vim
4.32
KB
-rw-r--r--
promela.vim
1.69
KB
-rw-r--r--
proto.vim
2.86
KB
-rw-r--r--
protocols.vim
1.4
KB
-rw-r--r--
psf.vim
4.19
KB
-rw-r--r--
ptcap.vim
4.03
KB
-rw-r--r--
purifylog.vim
3.28
KB
-rw-r--r--
pyrex.vim
1.62
KB
-rw-r--r--
python.vim
13.95
KB
-rw-r--r--
qf.vim
596
B
-rw-r--r--
quake.vim
8.35
KB
-rw-r--r--
r.vim
14.38
KB
-rw-r--r--
racc.vim
5.49
KB
-rw-r--r--
radiance.vim
6.99
KB
-rw-r--r--
raml.vim
4.35
KB
-rw-r--r--
ratpoison.vim
16.82
KB
-rw-r--r--
rc.vim
9.98
KB
-rw-r--r--
rcs.vim
2.08
KB
-rw-r--r--
rcslog.vim
557
B
-rw-r--r--
readline.vim
17.08
KB
-rw-r--r--
rebol.vim
7
KB
-rw-r--r--
redif.vim
85.88
KB
-rw-r--r--
registry.vim
3.28
KB
-rw-r--r--
remind.vim
2.65
KB
-rw-r--r--
resolv.vim
2.95
KB
-rw-r--r--
reva.vim
7.41
KB
-rw-r--r--
rexx.vim
14.97
KB
-rw-r--r--
rhelp.vim
11.85
KB
-rw-r--r--
rib.vim
2.14
KB
-rw-r--r--
rmd.vim
5.26
KB
-rw-r--r--
rnc.vim
2.21
KB
-rw-r--r--
rng.vim
817
B
-rw-r--r--
rnoweb.vim
1.86
KB
-rw-r--r--
robots.vim
1.49
KB
-rw-r--r--
rpcgen.vim
1.63
KB
-rw-r--r--
rpl.vim
25.1
KB
-rw-r--r--
rrst.vim
1.28
KB
-rw-r--r--
rst.vim
11.1
KB
-rw-r--r--
rtf.vim
2.28
KB
-rw-r--r--
ruby.vim
40.38
KB
-rw-r--r--
rust.vim
16.22
KB
-rw-r--r--
samba.vim
5.99
KB
-rw-r--r--
sas.vim
33.29
KB
-rw-r--r--
sass.vim
6.17
KB
-rw-r--r--
sather.vim
3.41
KB
-rw-r--r--
sbt.vim
880
B
-rw-r--r--
scala.vim
11.04
KB
-rw-r--r--
scheme.vim
18.88
KB
-rw-r--r--
scilab.vim
3.13
KB
-rw-r--r--
screen.vim
8.89
KB
-rw-r--r--
scss.vim
409
B
-rw-r--r--
sd.vim
2.17
KB
-rw-r--r--
sdc.vim
1.36
KB
-rw-r--r--
sdl.vim
6.41
KB
-rw-r--r--
sed.vim
4.92
KB
-rw-r--r--
sendpr.vim
905
B
-rw-r--r--
sensors.vim
1.48
KB
-rw-r--r--
services.vim
1.78
KB
-rw-r--r--
setserial.vim
5.11
KB
-rw-r--r--
sgml.vim
8.66
KB
-rw-r--r--
sgmldecl.vim
1.99
KB
-rw-r--r--
sgmllnx.vim
1.81
KB
-rw-r--r--
sh.vim
41.79
KB
-rw-r--r--
sicad.vim
18.04
KB
-rw-r--r--
sieve.vim
1.63
KB
-rw-r--r--
simula.vim
3.29
KB
-rw-r--r--
sinda.vim
3.58
KB
-rw-r--r--
sindacmp.vim
1.24
KB
-rw-r--r--
sindaout.vim
1.92
KB
-rw-r--r--
sisu.vim
21.66
KB
-rw-r--r--
skill.vim
25.17
KB
-rw-r--r--
sl.vim
3.99
KB
-rw-r--r--
slang.vim
3.22
KB
-rw-r--r--
slice.vim
2.86
KB
-rw-r--r--
slpconf.vim
11.51
KB
-rw-r--r--
slpreg.vim
5.22
KB
-rw-r--r--
slpspi.vim
1.15
KB
-rw-r--r--
slrnrc.vim
12.51
KB
-rw-r--r--
slrnsc.vim
3.03
KB
-rw-r--r--
sm.vim
2.78
KB
-rw-r--r--
smarty.vim
2.82
KB
-rw-r--r--
smcl.vim
11.76
KB
-rw-r--r--
smil.vim
5.48
KB
-rw-r--r--
smith.vim
793
B
-rw-r--r--
sml.vim
9.11
KB
-rw-r--r--
snnsnet.vim
2.42
KB
-rw-r--r--
snnspat.vim
2.18
KB
-rw-r--r--
snnsres.vim
1.89
KB
-rw-r--r--
snobol4.vim
5.21
KB
-rw-r--r--
spec.vim
12.31
KB
-rw-r--r--
specman.vim
7.17
KB
-rw-r--r--
spice.vim
2.19
KB
-rw-r--r--
splint.vim
15.42
KB
-rw-r--r--
spup.vim
13.6
KB
-rw-r--r--
spyce.vim
4.35
KB
-rw-r--r--
sql.vim
1.09
KB
-rw-r--r--
sqlanywhere.vim
40.95
KB
-rw-r--r--
sqlforms.vim
6.58
KB
-rw-r--r--
sqlhana.vim
10.77
KB
-rw-r--r--
sqlinformix.vim
5.76
KB
-rw-r--r--
sqlj.vim
2.9
KB
-rw-r--r--
sqloracle.vim
7.47
KB
-rw-r--r--
sqr.vim
12.71
KB
-rw-r--r--
squid.vim
6.77
KB
-rw-r--r--
srec.vim
3.73
KB
-rw-r--r--
sshconfig.vim
10.42
KB
-rw-r--r--
sshdconfig.vim
11.61
KB
-rw-r--r--
st.vim
2.69
KB
-rw-r--r--
stata.vim
26.42
KB
-rw-r--r--
stp.vim
5.3
KB
-rw-r--r--
strace.vim
1.92
KB
-rw-r--r--
sudoers.vim
23.88
KB
-rw-r--r--
svg.vim
436
B
-rw-r--r--
svn.vim
1.81
KB
-rw-r--r--
syncolor.vim
4
KB
-rw-r--r--
synload.vim
1.94
KB
-rw-r--r--
syntax.vim
1.2
KB
-rw-r--r--
sysctl.vim
1.13
KB
-rw-r--r--
systemd.vim
184
B
-rw-r--r--
systemverilog.vim
3.46
KB
-rw-r--r--
tads.vim
6.7
KB
-rw-r--r--
tags.vim
1.13
KB
-rw-r--r--
tak.vim
2.85
KB
-rw-r--r--
takcmp.vim
1.56
KB
-rw-r--r--
takout.vim
1.95
KB
-rw-r--r--
tap.vim
4.26
KB
-rw-r--r--
tar.vim
373
B
-rw-r--r--
taskdata.vim
1.18
KB
-rw-r--r--
taskedit.vim
1.1
KB
-rw-r--r--
tasm.vim
5.56
KB
-rw-r--r--
tcl.vim
16.88
KB
-rw-r--r--
tcsh.vim
12.96
KB
-rw-r--r--
template.vim
449
B
-rw-r--r--
teraterm.vim
4.86
KB
-rw-r--r--
terminfo.vim
4.69
KB
-rw-r--r--
tex.vim
62.09
KB
-rw-r--r--
texinfo.vim
24.97
KB
-rw-r--r--
texmf.vim
2.23
KB
-rw-r--r--
tf.vim
6.74
KB
-rw-r--r--
tidy.vim
5.79
KB
-rw-r--r--
tilde.vim
1.5
KB
-rw-r--r--
tli.vim
1.62
KB
-rw-r--r--
tmux.vim
5.7
KB
-rw-r--r--
tpp.vim
3.33
KB
-rw-r--r--
trasys.vim
4.92
KB
-rw-r--r--
treetop.vim
3.58
KB
-rw-r--r--
trustees.vim
1.51
KB
-rw-r--r--
tsalt.vim
8.13
KB
-rw-r--r--
tsscl.vim
5
KB
-rw-r--r--
tssgm.vim
2.72
KB
-rw-r--r--
tssop.vim
1.74
KB
-rw-r--r--
tt2.vim
7.74
KB
-rw-r--r--
tt2html.vim
516
B
-rw-r--r--
tt2js.vim
522
B
-rw-r--r--
typescript.vim
129.55
KB
-rw-r--r--
uc.vim
6.48
KB
-rw-r--r--
udevconf.vim
1.2
KB
-rw-r--r--
udevperm.vim
2.35
KB
-rw-r--r--
udevrules.vim
6.8
KB
-rw-r--r--
uil.vim
2.75
KB
-rw-r--r--
updatedb.vim
1.19
KB
-rw-r--r--
upstart.vim
3.09
KB
-rw-r--r--
upstreamdat.vim
13.72
KB
-rw-r--r--
upstreaminstalllog.vim
971
B
-rw-r--r--
upstreamlog.vim
2.56
KB
-rw-r--r--
upstreamrpt.vim
13.86
KB
-rw-r--r--
usserverlog.vim
3.04
KB
-rw-r--r--
usw2kagtlog.vim
2.64
KB
-rw-r--r--
valgrind.vim
3.14
KB
-rw-r--r--
vb.vim
19.82
KB
-rw-r--r--
vera.vim
19.09
KB
-rw-r--r--
verilog.vim
4.94
KB
-rw-r--r--
verilogams.vim
5.94
KB
-rw-r--r--
vgrindefs.vim
1.19
KB
-rw-r--r--
vhdl.vim
9.48
KB
-rw-r--r--
vim.vim
70.6
KB
-rw-r--r--
viminfo.vim
1.21
KB
-rw-r--r--
virata.vim
11.34
KB
-rw-r--r--
vmasm.vim
8.31
KB
-rw-r--r--
voscm.vim
6.81
KB
-rw-r--r--
vrml.vim
12.49
KB
-rw-r--r--
vroom.vim
3.41
KB
-rw-r--r--
vsejcl.vim
1004
B
-rw-r--r--
vue.vim
433
B
-rw-r--r--
wast.vim
3.83
KB
-rw-r--r--
wdiff.vim
716
B
-rw-r--r--
web.vim
1.09
KB
-rw-r--r--
webmacro.vim
3.06
KB
-rw-r--r--
wget.vim
3.87
KB
-rw-r--r--
whitespace.vim
357
B
-rw-r--r--
winbatch.vim
11.87
KB
-rw-r--r--
wml.vim
5.6
KB
-rw-r--r--
wsh.vim
1.21
KB
-rw-r--r--
wsml.vim
5.27
KB
-rw-r--r--
wvdial.vim
1.07
KB
-rw-r--r--
xbl.vim
568
B
-rw-r--r--
xdefaults.vim
5.75
KB
-rw-r--r--
xf86conf.vim
14.38
KB
-rw-r--r--
xhtml.vim
186
B
-rw-r--r--
xinetd.vim
13.88
KB
-rw-r--r--
xkb.vim
3.24
KB
-rw-r--r--
xmath.vim
10.58
KB
-rw-r--r--
xml.vim
8.69
KB
-rw-r--r--
xmodmap.vim
45.42
KB
-rw-r--r--
xpm.vim
4.3
KB
-rw-r--r--
xpm2.vim
4.59
KB
-rw-r--r--
xquery.vim
7.02
KB
-rw-r--r--
xs.vim
240.96
KB
-rw-r--r--
xsd.vim
2.08
KB
-rw-r--r--
xslt.vim
2.12
KB
-rw-r--r--
xxd.vim
766
B
-rw-r--r--
yacc.vim
5.52
KB
-rw-r--r--
yaml.vim
12.57
KB
-rw-r--r--
z8a.vim
2.83
KB
-rw-r--r--
zimbu.vim
6.29
KB
-rw-r--r--
zsh.vim
23.28
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ruby.vim
" Vim syntax file " Language: Ruby " Maintainer: Doug Kearns <dougkearns@gmail.com> " URL: https://github.com/vim-ruby/vim-ruby " Release Coordinator: Doug Kearns <dougkearns@gmail.com> " Last Change: 2018 Jul 09 " ---------------------------------------------------------------------------- " " Previous Maintainer: Mirko Nasato " Thanks to perl.vim authors, and to Reimer Behrends. :-) (MN) " ---------------------------------------------------------------------------- " Prelude {{{1 if exists("b:current_syntax") finish endif " this file uses line continuations let s:cpo_sav = &cpo set cpo&vim " Folding Config {{{1 if has("folding") && exists("ruby_fold") setlocal foldmethod=syntax endif let s:foldable_groups = split( \ get( \ b:, \ 'ruby_foldable_groups', \ get(g:, 'ruby_foldable_groups', 'ALL') \ ) \ ) function! s:foldable(...) abort if index(s:foldable_groups, 'ALL') > -1 return 1 endif for l:i in a:000 if index(s:foldable_groups, l:i) > -1 return 1 endif endfor return 0 endfunction " }}} syn cluster rubyNotTop contains=@rubyExtendedStringSpecial,@rubyRegexpSpecial,@rubyDeclaration,rubyConditional,rubyExceptional,rubyMethodExceptional,rubyTodo,rubyModuleName,rubyClassName,rubySymbolDelimiter " Whitespace Errors {{{1 if exists("ruby_space_errors") if !exists("ruby_no_trail_space_error") syn match rubySpaceError display excludenl "\s\+$" endif if !exists("ruby_no_tab_space_error") syn match rubySpaceError display " \+\t"me=e-1 endif endif " Operators {{{1 if exists("ruby_operators") syn match rubyOperator "[~!^|*/%+-]\|&\.\@!\|\%(class\s*\)\@<!<<\|<=>\|<=\|\%(<\|\<class\s\+\u\w*\s*\)\@<!<[^<]\@=\|===\|==\|=\~\|>>\|>=\|=\@1<!>\|\*\*\|\.\.\.\|\.\.\|::" syn match rubyOperator "->\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|&&\|||=\||=\|||\|%=\|+=\|!\~\|!=" syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\w[?!]\=\|[]})]\)\@2<=\[\s*" end="\s*]" contains=ALLBUT,@rubyNotTop endif " Expression Substitution and Backslash Notation {{{1 syn match rubyStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display syn match rubyStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display syn match rubyQuoteEscape "\\[\\']" contained display syn region rubyInterpolation matchgroup=rubyInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,@rubyNotTop syn match rubyInterpolation "#\%(\$\|@@\=\)\w\+" display contained contains=rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable,rubyPredefinedVariable syn match rubyInterpolationDelimiter "#\ze\%(\$\|@@\=\)\w\+" display contained syn match rubyInterpolation "#\$\%(-\w\|\W\)" display contained contains=rubyInterpolationDelimiter,rubyPredefinedVariable,rubyInvalidVariable syn match rubyInterpolationDelimiter "#\ze\$\%(-\w\|\W\)" display contained syn region rubyNoInterpolation start="\\#{" end="}" contained syn match rubyNoInterpolation "\\#{" display contained syn match rubyNoInterpolation "\\#\%(\$\|@@\=\)\w\+" display contained syn match rubyNoInterpolation "\\#\$\W" display contained syn match rubyDelimiterEscape "\\[(<{\[)>}\]]" transparent display contained contains=NONE syn region rubyNestedParentheses start="(" skip="\\\\\|\\)" matchgroup=rubyString end=")" transparent contained syn region rubyNestedCurlyBraces start="{" skip="\\\\\|\\}" matchgroup=rubyString end="}" transparent contained syn region rubyNestedAngleBrackets start="<" skip="\\\\\|\\>" matchgroup=rubyString end=">" transparent contained syn region rubyNestedSquareBrackets start="\[" skip="\\\\\|\\\]" matchgroup=rubyString end="\]" transparent contained " Regular Expression Metacharacters {{{1 " These are mostly Oniguruma ready syn region rubyRegexpComment matchgroup=rubyRegexpSpecial start="(?#" skip="\\)" end=")" contained syn region rubyRegexpParens matchgroup=rubyRegexpSpecial start="(\(?:\|?<\=[=!]\|?>\|?<[a-z_]\w*>\|?[imx]*-[imx]*:\=\|\%(?#\)\@!\)" skip="\\)" end=")" contained transparent contains=@rubyRegexpSpecial syn region rubyRegexpBrackets matchgroup=rubyRegexpCharClass start="\[\^\=" skip="\\\]" end="\]" contained transparent contains=rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass oneline syn match rubyRegexpCharClass "\\[DdHhSsWw]" contained display syn match rubyRegexpCharClass "\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\):\]" contained syn match rubyRegexpEscape "\\[].*?+^$|\\/(){}[]" contained syn match rubyRegexpQuantifier "[*?+][?+]\=" contained display syn match rubyRegexpQuantifier "{\d\+\%(,\d*\)\=}?\=" contained display syn match rubyRegexpAnchor "[$^]\|\\[ABbGZz]" contained display syn match rubyRegexpDot "\." contained display syn match rubyRegexpSpecial "|" contained display syn match rubyRegexpSpecial "\\[1-9]\d\=\d\@!" contained display syn match rubyRegexpSpecial "\\k<\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\=>" contained display syn match rubyRegexpSpecial "\\k'\%([a-z_]\w*\|-\=\d\+\)\%([+-]\d\+\)\='" contained display syn match rubyRegexpSpecial "\\g<\%([a-z_]\w*\|-\=\d\+\)>" contained display syn match rubyRegexpSpecial "\\g'\%([a-z_]\w*\|-\=\d\+\)'" contained display syn cluster rubyStringSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape syn cluster rubyExtendedStringSpecial contains=@rubyStringSpecial,rubyNestedParentheses,rubyNestedCurlyBraces,rubyNestedAngleBrackets,rubyNestedSquareBrackets syn cluster rubyRegexpSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyStringEscape,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment " Numbers and ASCII Codes {{{1 syn match rubyASCIICode "\%(\w\|[]})\"'/]\)\@1<!\%(?\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\=\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)\)" syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[xX]\x\+\%(_\x\+\)*r\=i\=\>" display syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0[dD]\)\=\%(0\|[1-9]\d*\%(_\d\+\)*\)r\=i\=\>" display syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[oO]\=\o\+\%(_\o\+\)*r\=i\=\>" display syn match rubyInteger "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<0[bB][01]\+\%(_[01]\+\)*r\=i\=\>" display syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\.\d\+\%(_\d\+\)*r\=i\=\>" display syn match rubyFloat "\%(\%(\w\|[]})\"']\s*\)\@<!-\)\=\<\%(0\|[1-9]\d*\%(_\d\+\)*\)\%(\.\d\+\%(_\d\+\)*\)\=\%([eE][-+]\=\d\+\%(_\d\+\)*\)r\=i\=\>" display " Identifiers {{{1 syn match rubyLocalVariableOrMethod "\<[_[:lower:]][_[:alnum:]]*[?!=]\=" contains=NONE display transparent syn match rubyBlockArgument "&[_[:lower:]][_[:alnum:]]" contains=NONE display transparent syn match rubyClassName "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" contained syn match rubyModuleName "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" contained syn match rubyConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)\@!" syn match rubyClassVariable "@@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display syn match rubyInstanceVariable "@\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" display syn match rubyGlobalVariable "$\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\|-.\)" syn match rubySymbolDelimiter ":" contained syn match rubySymbol "[]})\"':]\@1<!:\%(\^\|\~@\|\~\|<<\|<=>\|<=\|<\|===\|[=!]=\|[=!]\~\|!@\|!\|>>\|>=\|>\||\|-@\|-\|/\|\[]=\|\[]\|\*\*\|\*\|&\|%\|+@\|+\|`\)" contains=rubySymbolDelimiter syn match rubySymbol "[]})\"':]\@1<!:\$\%(-.\|[`~<=>_,;:!?/.'"@$*\&+0]\)" contains=rubySymbolDelimiter syn match rubySymbol "[]})\"':]\@1<!:\%(\$\|@@\=\)\=\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contains=rubySymbolDelimiter syn match rubySymbol "[]})\"':]\@1<!:\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\%([?!=]>\@!\)\=" contains=rubySymbolDelimiter if s:foldable(':') syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial fold else syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:'" end="'" skip="\\\\\|\\'" contains=rubyQuoteEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1<!:\"" end="\"" skip="\\\\\|\\\"" contains=@rubyStringSpecial endif syn match rubyCapitalizedMethod "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\u\%(\w\|[^\x00-\x7F]\)*\>\%(\s*(\)*\s*(\@=" syn match rubyBlockParameter "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*" contained syn region rubyBlockParameterList start="\%(\%(\<do\>\|{\)\_s*\)\@32<=|" end="|" oneline display contains=rubyBlockParameter syn match rubyInvalidVariable "$[^ A-Za-z_-]" syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<=>?@\`~]# syn match rubyPredefinedVariable "$\d\+" display syn match rubyPredefinedVariable "$_\>" display syn match rubyPredefinedVariable "$-[0FIKadilpvw]\>" display syn match rubyPredefinedVariable "$\%(deferr\|defout\|stderr\|stdin\|stdout\)\>" display syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|KCODE\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(ARGF\|ARGV\|ENV\|DATA\|FALSE\|NIL\|STDERR\|STDIN\|STDOUT\|TOPLEVEL_BINDING\|TRUE\)\>\%(\s*(\)\@!" syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@<!\<\%(RUBY_\%(VERSION\|RELEASE_DATE\|PLATFORM\|PATCHLEVEL\|REVISION\|DESCRIPTION\|COPYRIGHT\|ENGINE\)\)\>\%(\s*(\)\@!" " Normal Regular Expression {{{1 if s:foldable('/') syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/\%([ \t=]\|$\)\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial fold else syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\h\k*\s\+\)\@<=/\%([ \t=]\|$\)\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial endif " Generalized Regular Expression {{{1 if s:foldable('%') syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial fold syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial fold else syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="%r\z(\s\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial endif " Normal String {{{1 let s:spell_cluster = exists('ruby_spellcheck_strings') ? ',@Spell' : '' exe 'syn region rubyString matchgroup=rubyStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" ' . \ (s:foldable('%') ? 'fold' : '') . ' contains=@rubyStringSpecial' . s:spell_cluster exe 'syn region rubyString matchgroup=rubyStringDelimiter start="''" end="''" skip="\\\\\|\\''" ' . \ (s:foldable('%') ? 'fold' : '') . ' contains=rubyQuoteEscape' . s:spell_cluster " Shell Command Output {{{1 if s:foldable('%') syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial fold else syn region rubyString matchgroup=rubyStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=@rubyStringSpecial endif " Generalized Single Quoted String, Symbol and Array of Strings {{{1 if s:foldable('%') syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1" fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1" fold else syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" contains=rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" contains=rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" contains=rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" contains=rubyNestedParentheses,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1" syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" contains=rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" contains=rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" contains=rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" contains=rubyNestedParentheses,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1" endif " Generalized Double Quoted String and Array of Strings and Shell Command Output {{{1 " Note: %= is not matched here as the beginning of a double quoted string if s:foldable('%') syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape fold syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape fold syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold else syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape syn region rubyString matchgroup=rubyStringDelimiter start="%[Qx]\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial endif " Array of Symbols {{{1 if s:foldable('%') " Array of Symbols syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i(" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParentheses,rubyDelimiterEscape " Array of interpolated Symbols syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape fold syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape fold else " Array of Symbols syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i{" end="}" skip="\\\\\|\\}" contains=rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i<" end=">" skip="\\\\\|\\>" contains=rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i\[" end="\]" skip="\\\\\|\\\]" contains=rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i(" end=")" skip="\\\\\|\\)" contains=rubyNestedParentheses,rubyDelimiterEscape " Array of interpolated Symbols syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I{" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets,rubyDelimiterEscape syn region rubySymbol matchgroup=rubySymbolDelimiter start="%I(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses,rubyDelimiterEscape endif " Here Document {{{1 syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)+ end=+$+ oneline contains=ALLBUT,@rubyNotTop syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs"\%([^"]*\)"+ end=+$+ oneline contains=ALLBUT,@rubyNotTop syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs'\%([^']*\)'+ end=+$+ oneline contains=ALLBUT,@rubyNotTop syn region rubyHeredocStart matchgroup=rubyStringDelimiter start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<[-~]\=\zs`\%([^`]*\)`+ end=+$+ oneline contains=ALLBUT,@rubyNotTop if s:foldable('<<') syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart fold keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial fold keepend else syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]})"'.]\)\s\|\w\)\@<!<<`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+2 matchgroup=rubyStringDelimiter end=+^\z1$+ contains=rubyHeredocStart,rubyHeredoc,@rubyStringSpecial keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]\z(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]"\z([^"]*\)"\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]'\z([^']*\)'\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart keepend syn region rubyString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<[-~]`\z([^`]*\)`\ze\%(.*<<[-~]\=['`"]\=\h\)\@!+hs=s+3 matchgroup=rubyStringDelimiter end=+^\s*\zs\z1$+ contains=rubyHeredocStart,@rubyStringSpecial keepend endif " eRuby Config {{{1 if exists('main_syntax') && main_syntax == 'eruby' let b:ruby_no_expensive = 1 endif " Module, Class, Method and Alias Declarations {{{1 syn match rubyAliasDeclaration "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable nextgroup=rubyAliasDeclaration2 skipwhite syn match rubyAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=rubySymbol,rubyGlobalVariable,rubyPredefinedVariable syn match rubyMethodDeclaration "[^[:space:];#(]\+" contained contains=rubyConstant,rubyBoolean,rubyPseudoVariable,rubyInstanceVariable,rubyClassVariable,rubyGlobalVariable syn match rubyClassDeclaration "[^[:space:];#<]\+" contained contains=rubyClassName,rubyOperator syn match rubyModuleDeclaration "[^[:space:];#<]\+" contained contains=rubyModuleName,rubyOperator syn match rubyMethodName "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=rubyMethodDeclaration syn match rubyMethodName "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2 syn match rubyMethodName "\%([[:space:].]\|^\)\@2<=\%(\[\]=\=\|\*\*\|[-+!~]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyMethodName,rubyBlockParameter " Keywords {{{1 " Note: the following keywords have already been defined: " begin case class def do end for if module unless until while syn match rubyControl "\<\%(and\|break\|in\|next\|not\|or\|redo\|rescue\|retry\|return\)\>[?!]\@!" syn match rubyOperator "\<defined?" display syn match rubyKeyword "\<\%(super\|yield\)\>[?!]\@!" syn match rubyBoolean "\<\%(true\|false\)\>[?!]\@!" syn match rubyPseudoVariable "\<\%(nil\|self\|__ENCODING__\|__dir__\|__FILE__\|__LINE__\|__callee__\|__method__\)\>[?!]\@!" " TODO: reorganise syn match rubyBeginEnd "\<\%(BEGIN\|END\)\>[?!]\@!" " Expensive Mode {{{1 " Match 'end' with the appropriate opening keyword for syntax based folding " and special highlighting of module/class/method definitions if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive") syn match rubyDefine "\<alias\>" nextgroup=rubyAliasDeclaration skipwhite skipnl syn match rubyDefine "\<def\>" nextgroup=rubyMethodDeclaration skipwhite skipnl syn match rubyDefine "\<undef\>" nextgroup=rubyMethodName skipwhite skipnl syn match rubyClass "\<class\>" nextgroup=rubyClassDeclaration skipwhite skipnl syn match rubyModule "\<module\>" nextgroup=rubyModuleDeclaration skipwhite skipnl if s:foldable('def') syn region rubyMethodBlock start="\<def\>" matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyMethodBlock start="\<def\>" matchgroup=rubyDefine end="\%(\<def\_s\+\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop endif if s:foldable('class') syn region rubyBlock start="\<class\>" matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyBlock start="\<class\>" matchgroup=rubyClass end="\<end\>" contains=ALLBUT,@rubyNotTop endif if s:foldable('module') syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyBlock start="\<module\>" matchgroup=rubyModule end="\<end\>" contains=ALLBUT,@rubyNotTop endif " modifiers syn match rubyLineContinuation "\\$" nextgroup=rubyConditionalModifier,rubyRepeatModifier skipwhite skipnl syn match rubyConditionalModifier "\<\%(if\|unless\)\>" syn match rubyRepeatModifier "\<\%(while\|until\)\>" if s:foldable('do') syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyDoBlock matchgroup=rubyControl start="\<do\>" end="\<end\>" contains=ALLBUT,@rubyNotTop endif " curly bracket block or hash literal if s:foldable('{') syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop fold else syn region rubyCurlyBlock matchgroup=rubyCurlyBlockDelimiter start="{" end="}" contains=ALLBUT,@rubyNotTop endif if s:foldable('[') syn region rubyArrayLiteral matchgroup=rubyArrayDelimiter start="\%(\w\|[\]})]\)\@<!\[" end="]" contains=ALLBUT,@rubyNotTop fold endif " statements without 'do' if s:foldable('begin') syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyBlockExpression matchgroup=rubyControl start="\<begin\>" end="\<end\>" contains=ALLBUT,@rubyNotTop endif if s:foldable('case') syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyCaseExpression matchgroup=rubyConditional start="\<case\>" end="\<end\>" contains=ALLBUT,@rubyNotTop endif if s:foldable('if') syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop fold else syn region rubyConditionalExpression matchgroup=rubyConditional start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*%&^|+=-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![?!]\)\s*\)\@<=\%(if\|unless\)\>" end="\%(\%(\%(\.\@1<!\.\)\|::\)\s*\)\@<!\<end\>" contains=ALLBUT,@rubyNotTop endif syn match rubyConditional "\<\%(then\|else\|when\)\>[?!]\@!" contained containedin=rubyCaseExpression syn match rubyConditional "\<\%(then\|else\|elsif\)\>[?!]\@!" contained containedin=rubyConditionalExpression syn match rubyExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyBlockExpression syn match rubyMethodExceptional "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>[?!]\@!" contained containedin=rubyMethodBlock " statements with optional 'do' syn region rubyOptionalDoLine matchgroup=rubyRepeat start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyOptionalDo end="\%(\<do\>\)" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop if s:foldable('for') syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine fold else syn region rubyRepeatExpression start="\<for\>[?!]\@!" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+-]\|\%(\<[_[:lower:]][_[:alnum:]]*\)\@<![!=?]\)\s*\)\@<=\<\%(until\|while\)\>" matchgroup=rubyRepeat end="\<end\>" contains=ALLBUT,@rubyNotTop nextgroup=rubyOptionalDoLine endif if !exists("ruby_minlines") let ruby_minlines = 500 endif exec "syn sync minlines=" . ruby_minlines else syn match rubyControl "\<def\>[?!]\@!" nextgroup=rubyMethodDeclaration skipwhite skipnl syn match rubyControl "\<class\>[?!]\@!" nextgroup=rubyClassDeclaration skipwhite skipnl syn match rubyControl "\<module\>[?!]\@!" nextgroup=rubyModuleDeclaration skipwhite skipnl syn match rubyControl "\<\%(case\|begin\|do\|for\|if\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!" syn match rubyKeyword "\<\%(alias\|undef\)\>[?!]\@!" endif " Special Methods {{{1 if !exists("ruby_no_special_methods") syn keyword rubyAccess public protected private public_class_method private_class_method public_constant private_constant module_function " attr is a common variable name syn match rubyAttribute "\%(\%(^\|;\)\s*\)\@<=attr\>\(\s*[.=]\)\@!" syn keyword rubyAttribute attr_accessor attr_reader attr_writer syn match rubyControl "\<\%(exit!\|\%(abort\|at_exit\|exit\|fork\|loop\|trap\)\>[?!]\@!\)" syn keyword rubyEval eval class_eval instance_eval module_eval syn keyword rubyException raise fail catch throw syn keyword rubyInclude autoload gem load require require_relative syn keyword rubyKeyword callcc caller lambda proc " false positive with 'include?' syn match rubyMacro "\<include\>[?!]\@!" syn keyword rubyMacro extend prepend refine using syn keyword rubyMacro alias_method define_method define_singleton_method remove_method undef_method endif " Comments and Documentation {{{1 syn match rubySharpBang "\%^#!.*" display syn keyword rubyTodo FIXME NOTE TODO OPTIMIZE HACK REVIEW XXX todo contained syn match rubyComment "#.*" contains=rubySharpBang,rubySpaceError,rubyTodo,@Spell if !exists("ruby_no_comment_fold") && s:foldable('#') syn region rubyMultilineComment start="^\s*#.*\n\%(^\s*#\)\@=" end="^\s*#.*\n\%(^\s*#\)\@!" contains=rubyComment transparent fold keepend syn region rubyDocumentation start="^=begin\ze\%(\s.*\)\=$" end="^=end\%(\s.*\)\=$" contains=rubySpaceError,rubyTodo,@Spell fold else syn region rubyDocumentation start="^=begin\s*$" end="^=end\s*$" contains=rubySpaceError,rubyTodo,@Spell endif " Keyword Nobbling {{{1 " Note: this is a hack to prevent 'keywords' being highlighted as such when called as methods with an explicit receiver syn match rubyKeywordAsMethod "\%(\%(\.\@1<!\.\)\|::\)\_s*\%([_[:lower:]][_[:alnum:]]*\|\<\%(BEGIN\|END\)\>\)" transparent contains=NONE syn match rubyKeywordAsMethod "\(defined?\|exit!\)\@!\<[_[:lower:]][_[:alnum:]]*[?!]" transparent contains=NONE " More Symbols {{{1 syn match rubySymbol "\%([{(,]\_s*\)\zs\l\w*[!?]\=::\@!"he=e-1 syn match rubySymbol "[]})\"':]\@1<!\<\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="he=e-1 syn match rubySymbol "\%([{(,]\_s*\)\zs[[:space:],{]\l\w*[!?]\=::\@!"hs=s+1,he=e-1 syn match rubySymbol "[[:space:],{(]\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[!?]\=:[[:space:],]\@="hs=s+1,he=e-1 " __END__ Directive {{{1 if s:foldable('__END__') syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" fold else syn region rubyData matchgroup=rubyDataDirective start="^__END__$" end="\%$" endif " Default Highlighting {{{1 hi def link rubyClass rubyDefine hi def link rubyModule rubyDefine hi def link rubyMethodExceptional rubyDefine hi def link rubyDefine Define hi def link rubyAccess rubyMacro hi def link rubyAttribute rubyMacro hi def link rubyMacro Macro hi def link rubyMethodName rubyFunction hi def link rubyFunction Function hi def link rubyConditional Conditional hi def link rubyConditionalModifier rubyConditional hi def link rubyExceptional rubyConditional hi def link rubyRepeat Repeat hi def link rubyRepeatModifier rubyRepeat hi def link rubyOptionalDo rubyRepeat hi def link rubyControl Statement hi def link rubyInclude Include hi def link rubyInteger Number hi def link rubyASCIICode Character hi def link rubyFloat Float hi def link rubyBoolean Boolean hi def link rubyException Exception if !exists("ruby_no_identifiers") hi def link rubyIdentifier Identifier else hi def link rubyIdentifier NONE endif hi def link rubyClassVariable rubyIdentifier hi def link rubyConstant Type hi def link rubyClassName rubyConstant hi def link rubyModuleName rubyConstant hi def link rubyGlobalVariable rubyIdentifier hi def link rubyInstanceVariable rubyIdentifier hi def link rubyPredefinedIdentifier rubyIdentifier hi def link rubyPredefinedConstant rubyPredefinedIdentifier hi def link rubyPredefinedVariable rubyPredefinedIdentifier hi def link rubySymbol Constant hi def link rubyKeyword Keyword hi def link rubyOperator Operator hi def link rubyBeginEnd Statement hi def link rubyEval Statement hi def link rubyPseudoVariable Constant hi def link rubyCapitalizedMethod rubyLocalVariableOrMethod hi def link rubyComment Comment hi def link rubyData Comment hi def link rubyDataDirective Delimiter hi def link rubyDocumentation Comment hi def link rubyTodo Todo hi def link rubyQuoteEscape rubyStringEscape hi def link rubyStringEscape Special hi def link rubyInterpolationDelimiter Delimiter hi def link rubyNoInterpolation rubyString hi def link rubySharpBang PreProc hi def link rubyRegexpDelimiter rubyStringDelimiter hi def link rubySymbolDelimiter rubySymbol hi def link rubyStringDelimiter Delimiter hi def link rubyHeredoc rubyString hi def link rubyString String hi def link rubyRegexpEscape rubyRegexpSpecial hi def link rubyRegexpQuantifier rubyRegexpSpecial hi def link rubyRegexpAnchor rubyRegexpSpecial hi def link rubyRegexpDot rubyRegexpCharClass hi def link rubyRegexpCharClass rubyRegexpSpecial hi def link rubyRegexpSpecial Special hi def link rubyRegexpComment Comment hi def link rubyRegexp rubyString hi def link rubyInvalidVariable Error hi def link rubyError Error hi def link rubySpaceError rubyError " Postscript {{{1 let b:current_syntax = "ruby" let &cpo = s:cpo_sav unlet! s:cpo_sav " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker:
Close