From 029f72b1a93430b24b88eb3a72c6114d9f149737 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:09:20 +0200 Subject: Adding upstream version 2:9.1.0016. Signed-off-by: Daniel Baumann --- runtime/syntax/2html.vim | 2068 ++++++++ runtime/syntax/8th.vim | 459 ++ runtime/syntax/Makefile | 35 + runtime/syntax/README.txt | 43 + runtime/syntax/a2ps.vim | 71 + runtime/syntax/a65.vim | 153 + runtime/syntax/aap.vim | 159 + runtime/syntax/abap.vim | 196 + runtime/syntax/abaqus.vim | 34 + runtime/syntax/abc.vim | 51 + runtime/syntax/abel.vim | 161 + runtime/syntax/acedb.vim | 110 + runtime/syntax/ada.vim | 368 ++ runtime/syntax/aflex.vim | 82 + runtime/syntax/ahdl.vim | 81 + runtime/syntax/aidl.vim | 23 + runtime/syntax/alsaconf.vim | 49 + runtime/syntax/amiga.vim | 88 + runtime/syntax/aml.vim | 144 + runtime/syntax/ampl.vim | 140 + runtime/syntax/ant.vim | 97 + runtime/syntax/antlr.vim | 54 + runtime/syntax/apache.vim | 204 + runtime/syntax/apachestyle.vim | 54 + runtime/syntax/aptconf.vim | 577 +++ runtime/syntax/arch.vim | 41 + runtime/syntax/arduino.vim | 83 + runtime/syntax/art.vim | 50 + runtime/syntax/asciidoc.vim | 185 + runtime/syntax/asm.vim | 164 + runtime/syntax/asm68k.vim | 378 ++ runtime/syntax/asmh8300.vim | 58 + runtime/syntax/asn.vim | 73 + runtime/syntax/aspperl.vim | 25 + runtime/syntax/aspvbs.vim | 182 + runtime/syntax/asterisk.vim | 88 + runtime/syntax/asteriskvm.vim | 51 + runtime/syntax/atlas.vim | 85 + runtime/syntax/autodoc.vim | 101 + runtime/syntax/autohotkey.vim | 325 ++ runtime/syntax/autoit.vim | 1125 +++++ runtime/syntax/automake.vim | 77 + runtime/syntax/ave.vim | 79 + runtime/syntax/avra.vim | 71 + runtime/syntax/awk.vim | 217 + runtime/syntax/ayacc.vim | 75 + runtime/syntax/b.vim | 114 + runtime/syntax/baan.vim | 1917 ++++++++ runtime/syntax/bash.vim | 20 + runtime/syntax/basic.vim | 380 ++ runtime/syntax/bc.vim | 66 + runtime/syntax/bdf.vim | 97 + runtime/syntax/bib.vim | 121 + runtime/syntax/bindzone.vim | 97 + runtime/syntax/bitbake.vim | 126 + runtime/syntax/blank.vim | 39 + runtime/syntax/bsdl.vim | 17 + runtime/syntax/bst.vim | 70 + runtime/syntax/btm.vim | 216 + runtime/syntax/bzl.vim | 16 + runtime/syntax/bzr.vim | 50 + runtime/syntax/c.vim | 523 ++ runtime/syntax/cabal.vim | 278 ++ runtime/syntax/cabalconfig.vim | 30 + runtime/syntax/cabalproject.vim | 28 + runtime/syntax/calendar.vim | 110 + runtime/syntax/catalog.vim | 30 + runtime/syntax/cdl.vim | 78 + runtime/syntax/cdrdaoconf.vim | 139 + runtime/syntax/cdrtoc.vim | 537 +++ runtime/syntax/cf.vim | 1018 ++++ runtime/syntax/cfg.vim | 48 + runtime/syntax/ch.vim | 38 + runtime/syntax/chaiscript.vim | 94 + runtime/syntax/change.vim | 29 + runtime/syntax/changelog.vim | 58 + runtime/syntax/chaskell.vim | 14 + runtime/syntax/chatito.vim | 62 + runtime/syntax/cheetah.vim | 47 + runtime/syntax/chicken.vim | 94 + runtime/syntax/chill.vim | 178 + runtime/syntax/chordpro.vim | 173 + runtime/syntax/cl.vim | 98 + runtime/syntax/clean.vim | 90 + runtime/syntax/clipper.vim | 135 + runtime/syntax/clojure.vim | 218 + runtime/syntax/cmake.vim | 4980 ++++++++++++++++++++ runtime/syntax/cmod.vim | 144 + runtime/syntax/cmusrc.vim | 309 ++ runtime/syntax/cobol.vim | 260 + runtime/syntax/coco.vim | 33 + runtime/syntax/colortest.vim | 82 + runtime/syntax/conaryrecipe.vim | 137 + runtime/syntax/conf.vim | 27 + runtime/syntax/config.vim | 54 + runtime/syntax/confini.vim | 12 + runtime/syntax/context.vim | 144 + runtime/syntax/cpp.vim | 130 + runtime/syntax/crm.vim | 41 + runtime/syntax/crontab.vim | 67 + runtime/syntax/cs.vim | 331 ++ runtime/syntax/csc.vim | 191 + runtime/syntax/csdl.vim | 536 +++ runtime/syntax/csh.vim | 143 + runtime/syntax/csp.vim | 182 + runtime/syntax/css.vim | 665 +++ runtime/syntax/cterm.vim | 177 + runtime/syntax/ctrlh.vim | 24 + runtime/syntax/cucumber.vim | 170 + runtime/syntax/cuda.vim | 65 + runtime/syntax/cupl.vim | 124 + runtime/syntax/cuplsim.vim | 63 + runtime/syntax/cvs.vim | 29 + runtime/syntax/cvsrc.vim | 39 + runtime/syntax/cweb.vim | 68 + runtime/syntax/cynlib.vim | 74 + runtime/syntax/cynpp.vim | 50 + runtime/syntax/d.vim | 573 +++ runtime/syntax/dart.vim | 90 + runtime/syntax/datascript.vim | 102 + runtime/syntax/dcd.vim | 51 + runtime/syntax/dcl.vim | 152 + runtime/syntax/deb822sources.vim | 63 + runtime/syntax/debchangelog.vim | 62 + runtime/syntax/debcontrol.vim | 145 + runtime/syntax/debcopyright.vim | 33 + runtime/syntax/debsources.vim | 47 + runtime/syntax/def.vim | 44 + runtime/syntax/denyhosts.vim | 289 ++ runtime/syntax/dep3patch.vim | 57 + runtime/syntax/desc.vim | 88 + runtime/syntax/desktop.vim | 267 ++ runtime/syntax/dictconf.vim | 80 + runtime/syntax/dictdconf.vim | 146 + runtime/syntax/diff.vim | 390 ++ runtime/syntax/dircolors.vim | 222 + runtime/syntax/dirpager.vim | 56 + runtime/syntax/diva.vim | 96 + runtime/syntax/django.vim | 84 + runtime/syntax/dns.vim | 5 + runtime/syntax/dnsmasq.vim | 242 + runtime/syntax/docbk.vim | 186 + runtime/syntax/docbksgml.vim | 7 + runtime/syntax/docbkxml.vim | 7 + runtime/syntax/dockerfile.vim | 45 + runtime/syntax/dosbatch.vim | 152 + runtime/syntax/dosini.vim | 49 + runtime/syntax/dot.vim | 121 + runtime/syntax/doxygen.vim | 633 +++ runtime/syntax/dracula.vim | 72 + runtime/syntax/dsl.vim | 38 + runtime/syntax/dtd.vim | 161 + runtime/syntax/dtml.vim | 208 + runtime/syntax/dtrace.vim | 145 + runtime/syntax/dts.vim | 80 + runtime/syntax/dune.vim | 47 + runtime/syntax/dylan.vim | 92 + runtime/syntax/dylanintr.vim | 39 + runtime/syntax/dylanlid.vim | 29 + runtime/syntax/ecd.vim | 44 + runtime/syntax/edif.vim | 45 + runtime/syntax/editorconfig.vim | 21 + runtime/syntax/eiffel.vim | 199 + runtime/syntax/elf.vim | 82 + runtime/syntax/elinks.vim | 188 + runtime/syntax/elm.vim | 105 + runtime/syntax/elmfilt.vim | 58 + runtime/syntax/erlang.vim | 266 ++ runtime/syntax/eruby.vim | 79 + runtime/syntax/esmtprc.vim | 31 + runtime/syntax/esqlc.vim | 58 + runtime/syntax/esterel.vim | 78 + runtime/syntax/eterm.vim | 429 ++ runtime/syntax/euphoria3.vim | 133 + runtime/syntax/euphoria4.vim | 245 + runtime/syntax/eviews.vim | 87 + runtime/syntax/exim.vim | 105 + runtime/syntax/expect.vim | 103 + runtime/syntax/exports.vim | 58 + runtime/syntax/falcon.vim | 197 + runtime/syntax/fan.vim | 132 + runtime/syntax/fasm.vim | 151 + runtime/syntax/fdcc.vim | 101 + runtime/syntax/fetchmail.vim | 83 + runtime/syntax/fgl.vim | 134 + runtime/syntax/fish.vim | 225 + runtime/syntax/flexwiki.vim | 133 + runtime/syntax/focexec.vim | 88 + runtime/syntax/form.vim | 145 + runtime/syntax/forth.vim | 455 ++ runtime/syntax/fortran.vim | 490 ++ runtime/syntax/foxpro.vim | 716 +++ runtime/syntax/fpcmake.vim | 58 + runtime/syntax/framescript.vim | 491 ++ runtime/syntax/freebasic.vim | 674 +++ runtime/syntax/fstab.vim | 494 ++ runtime/syntax/fvwm.vim | 642 +++ runtime/syntax/fvwm2m4.vim | 32 + runtime/syntax/gdb.vim | 104 + runtime/syntax/gdmo.vim | 83 + runtime/syntax/gdresource.vim | 65 + runtime/syntax/gdscript.vim | 103 + runtime/syntax/gdshader.vim | 57 + runtime/syntax/gedcom.vim | 53 + runtime/syntax/gemtext.vim | 24 + runtime/syntax/gift.vim | 216 + runtime/syntax/git.vim | 111 + runtime/syntax/gitattributes.vim | 63 + runtime/syntax/gitcommit.vim | 111 + runtime/syntax/gitconfig.vim | 36 + runtime/syntax/gitignore.vim | 29 + runtime/syntax/gitolite.vim | 94 + runtime/syntax/gitrebase.vim | 62 + runtime/syntax/gitsendemail.vim | 23 + runtime/syntax/gkrellmrc.vim | 75 + runtime/syntax/gnash.vim | 96 + runtime/syntax/gnuplot.vim | 549 +++ runtime/syntax/go.vim | 550 +++ runtime/syntax/godoc.vim | 19 + runtime/syntax/gp.vim | 88 + runtime/syntax/gpg.vim | 180 + runtime/syntax/gprof.vim | 70 + runtime/syntax/grads.vim | 73 + runtime/syntax/gretl.vim | 85 + runtime/syntax/groff.vim | 10 + runtime/syntax/groovy.vim | 451 ++ runtime/syntax/group.vim | 52 + runtime/syntax/grub.vim | 93 + runtime/syntax/gsp.vim | 54 + runtime/syntax/gtkrc.vim | 126 + runtime/syntax/gvpr.vim | 85 + runtime/syntax/gyp.vim | 49 + runtime/syntax/haml.vim | 109 + runtime/syntax/hamster.vim | 370 ++ runtime/syntax/hare.vim | 133 + runtime/syntax/haskell.vim | 193 + runtime/syntax/haste.vim | 142 + runtime/syntax/hastepreproc.vim | 38 + runtime/syntax/hb.vim | 89 + runtime/syntax/help.vim | 237 + runtime/syntax/help_ru.vim | 65 + runtime/syntax/hercules.vim | 119 + runtime/syntax/hex.vim | 89 + runtime/syntax/hgcommit.vim | 30 + runtime/syntax/hitest.vim | 10 + runtime/syntax/hlsplaylist.vim | 120 + runtime/syntax/hog.vim | 208 + runtime/syntax/hollywood.vim | 180 + runtime/syntax/hostconf.vim | 147 + runtime/syntax/hostsaccess.vim | 23 + runtime/syntax/html.vim | 411 ++ runtime/syntax/htmlcheetah.vim | 24 + runtime/syntax/htmldjango.vim | 26 + runtime/syntax/htmlm4.vim | 31 + runtime/syntax/htmlos.vim | 149 + runtime/syntax/i3config.vim | 337 ++ runtime/syntax/ia64.vim | 293 ++ runtime/syntax/ibasic.vim | 176 + runtime/syntax/icemenu.vim | 34 + runtime/syntax/icon.vim | 211 + runtime/syntax/idl.vim | 324 ++ runtime/syntax/idlang.vim | 240 + runtime/syntax/indent.vim | 153 + runtime/syntax/inform.vim | 392 ++ runtime/syntax/initex.vim | 376 ++ runtime/syntax/initng.vim | 90 + runtime/syntax/inittab.vim | 62 + runtime/syntax/ipfilter.vim | 55 + runtime/syntax/ishd.vim | 409 ++ runtime/syntax/iss.vim | 138 + runtime/syntax/ist.vim | 58 + runtime/syntax/j.vim | 146 + runtime/syntax/jal.vim | 236 + runtime/syntax/jam.vim | 240 + runtime/syntax/jargon.vim | 24 + runtime/syntax/java.vim | 380 ++ runtime/syntax/javacc.vim | 65 + runtime/syntax/javascript.vim | 142 + runtime/syntax/javascriptreact.vim | 3 + runtime/syntax/jess.vim | 144 + runtime/syntax/jgraph.vim | 45 + runtime/syntax/jovial.vim | 110 + runtime/syntax/jproperties.vim | 135 + runtime/syntax/json.vim | 136 + runtime/syntax/json5.vim | 76 + runtime/syntax/jsonc.vim | 44 + runtime/syntax/jsp.vim | 68 + runtime/syntax/julia.vim | 550 +++ runtime/syntax/kconfig.vim | 739 +++ runtime/syntax/kivy.vim | 36 + runtime/syntax/kix.vim | 170 + runtime/syntax/kotlin.vim | 157 + runtime/syntax/krl.vim | 461 ++ runtime/syntax/kscript.vim | 57 + runtime/syntax/kwt.vim | 70 + runtime/syntax/lace.vim | 122 + runtime/syntax/latte.vim | 81 + runtime/syntax/lc.vim | 31 + runtime/syntax/ld.vim | 82 + runtime/syntax/ldapconf.vim | 338 ++ runtime/syntax/ldif.vim | 33 + runtime/syntax/less.vim | 78 + runtime/syntax/lex.vim | 188 + runtime/syntax/lftp.vim | 152 + runtime/syntax/lhaskell.vim | 134 + runtime/syntax/libao.vim | 27 + runtime/syntax/lifelines.vim | 154 + runtime/syntax/lilo.vim | 174 + runtime/syntax/limits.vim | 44 + runtime/syntax/liquid.vim | 138 + runtime/syntax/lisp.vim | 622 +++ runtime/syntax/lite.vim | 168 + runtime/syntax/litestep.vim | 269 ++ runtime/syntax/livebook.vim | 8 + runtime/syntax/loginaccess.vim | 96 + runtime/syntax/logindefs.vim | 174 + runtime/syntax/logtalk.vim | 455 ++ runtime/syntax/lotos.vim | 69 + runtime/syntax/lout.vim | 135 + runtime/syntax/lpc.vim | 447 ++ runtime/syntax/lprolog.vim | 124 + runtime/syntax/lscript.vim | 200 + runtime/syntax/lsl.vim | 277 ++ runtime/syntax/lss.vim | 123 + runtime/syntax/lua.vim | 442 ++ runtime/syntax/luau.vim | 15 + runtime/syntax/lynx.vim | 151 + runtime/syntax/lyrics.vim | 43 + runtime/syntax/m3build.vim | 177 + runtime/syntax/m3quake.vim | 74 + runtime/syntax/m4.vim | 62 + runtime/syntax/mail.vim | 112 + runtime/syntax/mailaliases.vim | 71 + runtime/syntax/mailcap.vim | 35 + runtime/syntax/make.vim | 144 + runtime/syntax/mallard.vim | 37 + runtime/syntax/man.vim | 58 + runtime/syntax/manconf.vim | 117 + runtime/syntax/manual.vim | 30 + runtime/syntax/maple.vim | 622 +++ runtime/syntax/markdown.vim | 200 + runtime/syntax/masm.vim | 560 +++ runtime/syntax/mason.vim | 85 + runtime/syntax/master.vim | 37 + runtime/syntax/matlab.vim | 119 + runtime/syntax/maxima.vim | 261 + runtime/syntax/mel.vim | 108 + runtime/syntax/mermaid.vim | 131 + runtime/syntax/meson.vim | 162 + runtime/syntax/messages.vim | 74 + runtime/syntax/mf.vim | 308 ++ runtime/syntax/mgl.vim | 117 + runtime/syntax/mgp.vim | 69 + runtime/syntax/mib.vim | 57 + runtime/syntax/mix.vim | 84 + runtime/syntax/mma.vim | 321 ++ runtime/syntax/mmix.vim | 152 + runtime/syntax/mmp.vim | 49 + runtime/syntax/modconf.vim | 44 + runtime/syntax/model.vim | 45 + runtime/syntax/modsim3.vim | 97 + runtime/syntax/modula2.vim | 16 + runtime/syntax/modula2/opt/iso.vim | 380 ++ runtime/syntax/modula2/opt/pim.vim | 377 ++ runtime/syntax/modula2/opt/r10.vim | 452 ++ runtime/syntax/modula3.vim | 145 + runtime/syntax/mojo.vim | 316 ++ runtime/syntax/monk.vim | 217 + runtime/syntax/moo.vim | 173 + runtime/syntax/mp.vim | 273 ++ runtime/syntax/mplayerconf.vim | 128 + runtime/syntax/mrxvtrc.vim | 282 ++ runtime/syntax/msidl.vim | 84 + runtime/syntax/msmessages.vim | 132 + runtime/syntax/msql.vim | 83 + runtime/syntax/mupad.vim | 284 ++ runtime/syntax/murphi.vim | 126 + runtime/syntax/mush.vim | 215 + runtime/syntax/muttrc.vim | 846 ++++ runtime/syntax/mysql.vim | 288 ++ runtime/syntax/n1ql.vim | 434 ++ runtime/syntax/named.vim | 229 + runtime/syntax/nanorc.vim | 243 + runtime/syntax/nasm.vim | 589 +++ runtime/syntax/nastran.vim | 181 + runtime/syntax/natural.vim | 201 + runtime/syntax/ncf.vim | 247 + runtime/syntax/neomuttrc.vim | 880 ++++ runtime/syntax/netrc.vim | 56 + runtime/syntax/netrw.vim | 146 + runtime/syntax/nginx.vim | 2340 +++++++++ runtime/syntax/ninja.vim | 87 + runtime/syntax/nix.vim | 212 + runtime/syntax/nosyntax.vim | 31 + runtime/syntax/nqc.vim | 365 ++ runtime/syntax/nroff.vim | 249 + runtime/syntax/nsis.vim | 730 +++ runtime/syntax/obj.vim | 83 + runtime/syntax/objc.vim | 534 +++ runtime/syntax/objcpp.vim | 20 + runtime/syntax/obse.vim | 3360 +++++++++++++ runtime/syntax/ocaml.vim | 393 ++ runtime/syntax/occam.vim | 116 + runtime/syntax/omnimark.vim | 106 + runtime/syntax/opam.vim | 38 + runtime/syntax/openroad.vim | 252 + runtime/syntax/openscad.vim | 129 + runtime/syntax/openvpn.vim | 72 + runtime/syntax/opl.vim | 89 + runtime/syntax/ora.vim | 464 ++ runtime/syntax/pacmanlog.vim | 41 + runtime/syntax/pamconf.vim | 131 + runtime/syntax/pamenv.vim | 28 + runtime/syntax/papp.vim | 76 + runtime/syntax/pascal.vim | 384 ++ runtime/syntax/passwd.vim | 71 + runtime/syntax/pbtxt.vim | 44 + runtime/syntax/pcap.vim | 48 + runtime/syntax/pccts.vim | 89 + runtime/syntax/pdf.vim | 73 + runtime/syntax/perl.vim | 662 +++ runtime/syntax/pf.vim | 333 ++ runtime/syntax/pfmain.vim | 1835 ++++++++ runtime/syntax/php.vim | 978 ++++ runtime/syntax/phtml.vim | 6 + runtime/syntax/pic.vim | 114 + runtime/syntax/pike.vim | 386 ++ runtime/syntax/pilrc.vim | 136 + runtime/syntax/pine.vim | 355 ++ runtime/syntax/pinfo.vim | 110 + runtime/syntax/plaintex.vim | 170 + runtime/syntax/pli.vim | 266 ++ runtime/syntax/plm.vim | 134 + runtime/syntax/plp.vim | 37 + runtime/syntax/plsql.vim | 863 ++++ runtime/syntax/po.vim | 133 + runtime/syntax/pod.vim | 222 + runtime/syntax/poefilter.vim | 167 + runtime/syntax/poke.vim | 151 + runtime/syntax/postscr.vim | 780 +++ runtime/syntax/pov.vim | 144 + runtime/syntax/povini.vim | 56 + runtime/syntax/ppd.vim | 35 + runtime/syntax/ppwiz.vim | 84 + runtime/syntax/prescribe.vim | 56 + runtime/syntax/privoxy.vim | 71 + runtime/syntax/procmail.vim | 54 + runtime/syntax/progress.vim | 312 ++ runtime/syntax/prolog.vim | 118 + runtime/syntax/promela.vim | 53 + runtime/syntax/proto.vim | 83 + runtime/syntax/protocols.vim | 44 + runtime/syntax/ps1.vim | 182 + runtime/syntax/ps1xml.vim | 51 + runtime/syntax/psf.vim | 91 + runtime/syntax/psl.vim | 83 + runtime/syntax/ptcap.vim | 95 + runtime/syntax/purifylog.vim | 106 + runtime/syntax/pymanifest.vim | 44 + runtime/syntax/pyrex.vim | 51 + runtime/syntax/python.vim | 340 ++ runtime/syntax/python2.vim | 345 ++ runtime/syntax/qb64.vim | 409 ++ runtime/syntax/qf.vim | 25 + runtime/syntax/qml.vim | 1130 +++++ runtime/syntax/quake.vim | 170 + runtime/syntax/quarto.vim | 17 + runtime/syntax/r.vim | 386 ++ runtime/syntax/racc.vim | 142 + runtime/syntax/racket.vim | 657 +++ runtime/syntax/radiance.vim | 142 + runtime/syntax/raku.vim | 1971 ++++++++ runtime/syntax/raml.vim | 106 + runtime/syntax/rapid.vim | 687 +++ runtime/syntax/ratpoison.vim | 275 ++ runtime/syntax/rc.vim | 191 + runtime/syntax/rcs.vim | 63 + runtime/syntax/rcslog.vim | 25 + runtime/syntax/readline.vim | 411 ++ runtime/syntax/rebol.vim | 199 + runtime/syntax/redif.vim | 970 ++++ runtime/syntax/registry.vim | 103 + runtime/syntax/rego.vim | 120 + runtime/syntax/remind.vim | 73 + runtime/syntax/resolv.vim | 119 + runtime/syntax/reva.vim | 191 + runtime/syntax/rexx.vim | 318 ++ runtime/syntax/rhelp.vim | 274 ++ runtime/syntax/rib.vim | 62 + runtime/syntax/rmd.vim | 266 ++ runtime/syntax/rnc.vim | 68 + runtime/syntax/rng.vim | 25 + runtime/syntax/rnoweb.vim | 52 + runtime/syntax/robots.vim | 57 + runtime/syntax/routeros.vim | 91 + runtime/syntax/rpcgen.vim | 46 + runtime/syntax/rpl.vim | 483 ++ runtime/syntax/rrst.vim | 43 + runtime/syntax/rst.vim | 290 ++ runtime/syntax/rtf.vim | 75 + runtime/syntax/ruby.vim | 606 +++ runtime/syntax/rust.vim | 387 ++ runtime/syntax/samba.vim | 118 + runtime/syntax/sas.vim | 265 ++ runtime/syntax/sass.vim | 106 + runtime/syntax/sather.vim | 92 + runtime/syntax/sbt.vim | 32 + runtime/syntax/scala.vim | 233 + runtime/syntax/scdoc.vim | 63 + runtime/syntax/scheme.vim | 467 ++ runtime/syntax/scilab.vim | 102 + runtime/syntax/screen.vim | 260 + runtime/syntax/scss.vim | 25 + runtime/syntax/sd.vim | 71 + runtime/syntax/sdc.vim | 41 + runtime/syntax/sdl.vim | 153 + runtime/syntax/sed.vim | 123 + runtime/syntax/sendpr.vim | 37 + runtime/syntax/sensors.vim | 52 + runtime/syntax/services.vim | 54 + runtime/syntax/setserial.vim | 120 + runtime/syntax/sexplib.vim | 88 + runtime/syntax/sgml.vim | 334 ++ runtime/syntax/sgmldecl.vim | 72 + runtime/syntax/sgmllnx.vim | 54 + runtime/syntax/sh.vim | 813 ++++ runtime/syntax/shared/README.txt | 2 + runtime/syntax/shared/context-data-context.vim | 340 ++ runtime/syntax/shared/context-data-interfaces.vim | 1185 +++++ runtime/syntax/shared/context-data-metafun.vim | 117 + runtime/syntax/shared/context-data-tex.vim | 250 + runtime/syntax/shared/debversions.vim | 29 + runtime/syntax/shared/hgcommitDiff.vim | 390 ++ runtime/syntax/shared/typescriptcommon.vim | 2099 +++++++++ runtime/syntax/sicad.vim | 390 ++ runtime/syntax/sieve.vim | 55 + runtime/syntax/sil.vim | 179 + runtime/syntax/simula.vim | 87 + runtime/syntax/sinda.vim | 129 + runtime/syntax/sindacmp.vim | 61 + runtime/syntax/sindaout.vim | 83 + runtime/syntax/sisu.vim | 275 ++ runtime/syntax/skill.vim | 549 +++ runtime/syntax/sl.vim | 107 + runtime/syntax/slang.vim | 89 + runtime/syntax/slice.vim | 78 + runtime/syntax/slpconf.vim | 273 ++ runtime/syntax/slpreg.vim | 122 + runtime/syntax/slpspi.vim | 39 + runtime/syntax/slrnrc.vim | 181 + runtime/syntax/slrnsc.vim | 68 + runtime/syntax/sm.vim | 80 + runtime/syntax/smarty.vim | 76 + runtime/syntax/smcl.vim | 307 ++ runtime/syntax/smil.vim | 146 + runtime/syntax/smith.vim | 39 + runtime/syntax/sml.vim | 220 + runtime/syntax/snnsnet.vim | 67 + runtime/syntax/snnspat.vim | 62 + runtime/syntax/snnsres.vim | 50 + runtime/syntax/snobol4.vim | 113 + runtime/syntax/solidity.vim | 173 + runtime/syntax/spec.vim | 226 + runtime/syntax/specman.vim | 169 + runtime/syntax/spice.vim | 75 + runtime/syntax/splint.vim | 243 + runtime/syntax/spup.vim | 269 ++ runtime/syntax/spyce.vim | 104 + runtime/syntax/sql.vim | 36 + runtime/syntax/sqlanywhere.vim | 905 ++++ runtime/syntax/sqlforms.vim | 152 + runtime/syntax/sqlhana.vim | 290 ++ runtime/syntax/sqlinformix.vim | 183 + runtime/syntax/sqlj.vim | 91 + runtime/syntax/sqloracle.vim | 150 + runtime/syntax/sqr.vim | 262 + runtime/syntax/squid.vim | 140 + runtime/syntax/squirrel.vim | 51 + runtime/syntax/srec.vim | 83 + runtime/syntax/srt.vim | 62 + runtime/syntax/ssa.vim | 63 + runtime/syntax/sshconfig.vim | 296 ++ runtime/syntax/sshdconfig.vim | 308 ++ runtime/syntax/st.vim | 95 + runtime/syntax/stata.vim | 450 ++ runtime/syntax/stp.vim | 154 + runtime/syntax/strace.vim | 52 + runtime/syntax/structurizr.vim | 84 + runtime/syntax/sudoers.vim | 390 ++ runtime/syntax/svg.vim | 15 + runtime/syntax/svn.vim | 56 + runtime/syntax/swayconfig.vim | 150 + runtime/syntax/swift.vim | 286 ++ runtime/syntax/swiftgyb.vim | 24 + runtime/syntax/swig.vim | 99 + runtime/syntax/syncolor.vim | 94 + runtime/syntax/synload.vim | 84 + runtime/syntax/syntax.vim | 45 + runtime/syntax/sysctl.vim | 39 + runtime/syntax/systemd.vim | 8 + runtime/syntax/systemverilog.vim | 85 + runtime/syntax/tads.vim | 171 + runtime/syntax/tags.vim | 31 + runtime/syntax/tak.vim | 119 + runtime/syntax/takcmp.vim | 69 + runtime/syntax/takout.vim | 85 + runtime/syntax/tap.vim | 86 + runtime/syntax/tar.vim | 19 + runtime/syntax/taskdata.vim | 45 + runtime/syntax/taskedit.vim | 37 + runtime/syntax/tasm.vim | 115 + runtime/syntax/tcl.vim | 274 ++ runtime/syntax/tcsh.vim | 255 + runtime/syntax/template.vim | 16 + runtime/syntax/teraterm.vim | 140 + runtime/syntax/terminfo.vim | 93 + runtime/syntax/testdir/README.txt | 97 + runtime/syntax/testdir/dumps/c_00.dump | 20 + runtime/syntax/testdir/dumps/c_01.dump | 20 + runtime/syntax/testdir/dumps/c_02.dump | 20 + runtime/syntax/testdir/dumps/c_03.dump | 20 + runtime/syntax/testdir/dumps/c_04.dump | 20 + runtime/syntax/testdir/dumps/c_05.dump | 20 + runtime/syntax/testdir/dumps/c_06.dump | 20 + runtime/syntax/testdir/dumps/c_99.dump | 20 + runtime/syntax/testdir/dumps/html_00.dump | 20 + runtime/syntax/testdir/dumps/html_01.dump | 20 + runtime/syntax/testdir/dumps/html_02.dump | 20 + runtime/syntax/testdir/dumps/html_03.dump | 20 + runtime/syntax/testdir/dumps/html_04.dump | 20 + runtime/syntax/testdir/dumps/html_05.dump | 20 + runtime/syntax/testdir/dumps/html_06.dump | 20 + runtime/syntax/testdir/dumps/html_07.dump | 20 + runtime/syntax/testdir/dumps/html_99.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_00.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_01.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_02.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_03.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_04.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_05.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_06.dump | 20 + runtime/syntax/testdir/dumps/modula2_iso_99.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_00.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_01.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_02.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_03.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_04.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_05.dump | 20 + runtime/syntax/testdir/dumps/modula2_pim_99.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_00.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_01.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_02.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_03.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_04.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_05.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_06.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_07.dump | 20 + runtime/syntax/testdir/dumps/modula2_r10_99.dump | 20 + runtime/syntax/testdir/dumps/sh_01_00.dump | 20 + runtime/syntax/testdir/dumps/sh_01_99.dump | 20 + runtime/syntax/testdir/dumps/sh_02_00.dump | 20 + runtime/syntax/testdir/dumps/sh_02_01.dump | 20 + runtime/syntax/testdir/dumps/sh_02_99.dump | 20 + runtime/syntax/testdir/dumps/sh_03_00.dump | 20 + runtime/syntax/testdir/dumps/sh_03_01.dump | 20 + runtime/syntax/testdir/dumps/sh_03_99.dump | 20 + runtime/syntax/testdir/dumps/sh_04_00.dump | 20 + runtime/syntax/testdir/dumps/sh_04_01.dump | 20 + runtime/syntax/testdir/dumps/sh_04_99.dump | 20 + runtime/syntax/testdir/dumps/sh_05_00.dump | 20 + runtime/syntax/testdir/dumps/sh_05_01.dump | 20 + runtime/syntax/testdir/dumps/sh_05_02.dump | 20 + runtime/syntax/testdir/dumps/sh_05_03.dump | 20 + runtime/syntax/testdir/dumps/sh_05_04.dump | 20 + runtime/syntax/testdir/dumps/sh_05_05.dump | 20 + runtime/syntax/testdir/dumps/sh_05_06.dump | 20 + runtime/syntax/testdir/dumps/sh_05_07.dump | 20 + runtime/syntax/testdir/dumps/sh_05_08.dump | 20 + runtime/syntax/testdir/dumps/sh_05_09.dump | 20 + runtime/syntax/testdir/dumps/sh_05_10.dump | 20 + runtime/syntax/testdir/dumps/sh_05_11.dump | 20 + runtime/syntax/testdir/dumps/sh_05_12.dump | 20 + runtime/syntax/testdir/dumps/sh_05_13.dump | 20 + runtime/syntax/testdir/dumps/sh_05_14.dump | 20 + runtime/syntax/testdir/dumps/sh_05_15.dump | 20 + runtime/syntax/testdir/dumps/sh_05_16.dump | 20 + runtime/syntax/testdir/dumps/sh_05_17.dump | 20 + runtime/syntax/testdir/dumps/sh_05_18.dump | 20 + runtime/syntax/testdir/dumps/sh_05_19.dump | 20 + runtime/syntax/testdir/dumps/sh_05_20.dump | 20 + runtime/syntax/testdir/dumps/sh_05_99.dump | 20 + runtime/syntax/testdir/dumps/sh_06_00.dump | 20 + runtime/syntax/testdir/dumps/sh_06_01.dump | 20 + runtime/syntax/testdir/dumps/sh_06_02.dump | 20 + runtime/syntax/testdir/dumps/sh_06_03.dump | 20 + runtime/syntax/testdir/dumps/sh_06_99.dump | 20 + runtime/syntax/testdir/dumps/sh_07_00.dump | 20 + runtime/syntax/testdir/dumps/sh_07_01.dump | 20 + runtime/syntax/testdir/dumps/sh_07_02.dump | 20 + runtime/syntax/testdir/dumps/sh_07_03.dump | 20 + runtime/syntax/testdir/dumps/sh_07_04.dump | 20 + runtime/syntax/testdir/dumps/sh_07_99.dump | 20 + runtime/syntax/testdir/dumps/sh_08_00.dump | 20 + runtime/syntax/testdir/dumps/sh_08_01.dump | 20 + runtime/syntax/testdir/dumps/sh_08_02.dump | 20 + runtime/syntax/testdir/dumps/sh_08_03.dump | 20 + runtime/syntax/testdir/dumps/sh_08_04.dump | 20 + runtime/syntax/testdir/dumps/sh_08_99.dump | 20 + runtime/syntax/testdir/dumps/sh_09_00.dump | 20 + runtime/syntax/testdir/dumps/sh_09_99.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_00.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_01.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_02.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_03.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_04.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_05.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_06.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_07.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_08.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_09.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_10.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_11.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_12.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_13.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_14.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_15.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_16.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_17.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_18.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_19.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_20.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_21.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_22.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_23.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_24.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_25.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_26.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_27.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_28.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_29.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_30.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_31.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_32.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_33.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_34.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_35.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_36.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_37.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_38.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_39.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_40.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_41.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_42.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_43.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_44.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_45.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_46.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_47.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_48.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_49.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_50.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_51.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_52.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_53.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_54.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_55.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_56.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_57.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_58.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_59.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_60.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_61.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_62.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_63.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_64.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_65.dump | 20 + .../syntax/testdir/dumps/vim_ex_commands_99.dump | 20 + runtime/syntax/testdir/dumps/vim_keymap_00.dump | 20 + runtime/syntax/testdir/dumps/vim_keymap_01.dump | 20 + runtime/syntax/testdir/dumps/vim_keymap_99.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_00.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_01.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_02.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_03.dump | 20 + runtime/syntax/testdir/dumps/vim_syntax_99.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_00.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_01.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_02.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_03.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_04.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_05.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_06.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_07.dump | 20 + runtime/syntax/testdir/dumps/vim_variables_99.dump | 20 + runtime/syntax/testdir/input/c.c | 122 + runtime/syntax/testdir/input/html_html | 146 + runtime/syntax/testdir/input/modula2_iso.def | 114 + runtime/syntax/testdir/input/modula2_pim.def | 111 + runtime/syntax/testdir/input/modula2_r10.def | 146 + runtime/syntax/testdir/input/sh_01.sh | 4 + runtime/syntax/testdir/input/sh_02.sh | 30 + runtime/syntax/testdir/input/sh_03.sh | 33 + runtime/syntax/testdir/input/sh_04.sh | 27 + runtime/syntax/testdir/input/sh_05.sh | 373 ++ runtime/syntax/testdir/input/sh_06.sh | 71 + runtime/syntax/testdir/input/sh_07.sh | 93 + runtime/syntax/testdir/input/sh_08.sh | 82 + runtime/syntax/testdir/input/sh_09.sh | 19 + runtime/syntax/testdir/input/vim_ex_commands.vim | 1191 +++++ runtime/syntax/testdir/input/vim_keymap.vim | 26 + runtime/syntax/testdir/input/vim_syntax.vim | 75 + runtime/syntax/testdir/input/vim_variables.vim | 138 + runtime/syntax/testdir/runtest.vim | 247 + runtime/syntax/tex.vim | 1352 ++++++ runtime/syntax/texinfo.vim | 46 + runtime/syntax/texmf.vim | 74 + runtime/syntax/tf.vim | 196 + runtime/syntax/tidy.vim | 276 ++ runtime/syntax/tilde.vim | 41 + runtime/syntax/tli.vim | 58 + runtime/syntax/tmux.vim | 172 + runtime/syntax/toml.vim | 81 + runtime/syntax/tpp.vim | 83 + runtime/syntax/trasys.vim | 160 + runtime/syntax/treetop.vim | 110 + runtime/syntax/trustees.vim | 44 + runtime/syntax/tsalt.vim | 206 + runtime/syntax/tsscl.vim | 204 + runtime/syntax/tssgm.vim | 98 + runtime/syntax/tssop.vim | 74 + runtime/syntax/tt2.vim | 209 + runtime/syntax/tt2html.vim | 22 + runtime/syntax/tt2js.vim | 22 + runtime/syntax/typescript.vim | 47 + runtime/syntax/typescriptreact.vim | 160 + runtime/syntax/uc.vim | 165 + runtime/syntax/udevconf.vim | 39 + runtime/syntax/udevperm.vim | 69 + runtime/syntax/udevrules.vim | 171 + runtime/syntax/uil.vim | 75 + runtime/syntax/unison.vim | 103 + runtime/syntax/updatedb.vim | 41 + runtime/syntax/upstart.vim | 111 + runtime/syntax/upstreamdat.vim | 305 ++ runtime/syntax/upstreaminstalllog.vim | 27 + runtime/syntax/upstreamlog.vim | 54 + runtime/syntax/upstreamrpt.vim | 310 ++ runtime/syntax/urlshortcut.vim | 14 + runtime/syntax/usserverlog.vim | 60 + runtime/syntax/usw2kagtlog.vim | 54 + runtime/syntax/valgrind.vim | 110 + runtime/syntax/vb.vim | 375 ++ runtime/syntax/vdf.vim | 54 + runtime/syntax/vera.vim | 348 ++ runtime/syntax/verilog.vim | 119 + runtime/syntax/verilogams.vim | 132 + runtime/syntax/vgrindefs.vim | 46 + runtime/syntax/vhdl.vim | 268 ++ runtime/syntax/vim.vim | 1103 +++++ runtime/syntax/viminfo.vim | 49 + runtime/syntax/virata.vim | 207 + runtime/syntax/vmasm.vim | 238 + runtime/syntax/voscm.vim | 94 + runtime/syntax/vrml.vim | 222 + runtime/syntax/vroom.vim | 110 + runtime/syntax/vsejcl.vim | 36 + runtime/syntax/vue.vim | 14 + runtime/syntax/wat.vim | 97 + runtime/syntax/wdiff.vim | 29 + runtime/syntax/wdl.vim | 41 + runtime/syntax/web.vim | 32 + runtime/syntax/webmacro.vim | 67 + runtime/syntax/wget.vim | 241 + runtime/syntax/wget2.vim | 250 + runtime/syntax/whitespace.vim | 13 + runtime/syntax/winbatch.vim | 174 + runtime/syntax/wml.vim | 150 + runtime/syntax/wsh.vim | 45 + runtime/syntax/wsml.vim | 113 + runtime/syntax/wvdial.vim | 28 + runtime/syntax/xbl.vim | 29 + runtime/syntax/xcompose.vim | 37 + runtime/syntax/xdefaults.vim | 132 + runtime/syntax/xf86conf.vim | 207 + runtime/syntax/xhtml.vim | 11 + runtime/syntax/xinetd.vim | 347 ++ runtime/syntax/xkb.vim | 79 + runtime/syntax/xmath.vim | 225 + runtime/syntax/xml.vim | 361 ++ runtime/syntax/xmodmap.vim | 677 +++ runtime/syntax/xpm.vim | 154 + runtime/syntax/xpm2.vim | 153 + runtime/syntax/xquery.vim | 82 + runtime/syntax/xs.vim | 3680 +++++++++++++++ runtime/syntax/xsd.vim | 61 + runtime/syntax/xslt.vim | 71 + runtime/syntax/xxd.vim | 30 + runtime/syntax/yacc.vim | 120 + runtime/syntax/yaml.vim | 243 + runtime/syntax/z8a.vim | 101 + runtime/syntax/zig.vim | 297 ++ runtime/syntax/zimbu.vim | 161 + runtime/syntax/zir.vim | 49 + runtime/syntax/zserio.vim | 112 + runtime/syntax/zsh.vim | 359 ++ 905 files changed, 149453 insertions(+) create mode 100644 runtime/syntax/2html.vim create mode 100644 runtime/syntax/8th.vim create mode 100644 runtime/syntax/Makefile create mode 100644 runtime/syntax/README.txt create mode 100644 runtime/syntax/a2ps.vim create mode 100644 runtime/syntax/a65.vim create mode 100644 runtime/syntax/aap.vim create mode 100644 runtime/syntax/abap.vim create mode 100644 runtime/syntax/abaqus.vim create mode 100644 runtime/syntax/abc.vim create mode 100644 runtime/syntax/abel.vim create mode 100644 runtime/syntax/acedb.vim create mode 100644 runtime/syntax/ada.vim create mode 100644 runtime/syntax/aflex.vim create mode 100644 runtime/syntax/ahdl.vim create mode 100644 runtime/syntax/aidl.vim create mode 100644 runtime/syntax/alsaconf.vim create mode 100644 runtime/syntax/amiga.vim create mode 100644 runtime/syntax/aml.vim create mode 100644 runtime/syntax/ampl.vim create mode 100644 runtime/syntax/ant.vim create mode 100644 runtime/syntax/antlr.vim create mode 100644 runtime/syntax/apache.vim create mode 100644 runtime/syntax/apachestyle.vim create mode 100644 runtime/syntax/aptconf.vim create mode 100644 runtime/syntax/arch.vim create mode 100644 runtime/syntax/arduino.vim create mode 100644 runtime/syntax/art.vim create mode 100644 runtime/syntax/asciidoc.vim create mode 100644 runtime/syntax/asm.vim create mode 100644 runtime/syntax/asm68k.vim create mode 100644 runtime/syntax/asmh8300.vim create mode 100644 runtime/syntax/asn.vim create mode 100644 runtime/syntax/aspperl.vim create mode 100644 runtime/syntax/aspvbs.vim create mode 100644 runtime/syntax/asterisk.vim create mode 100644 runtime/syntax/asteriskvm.vim create mode 100644 runtime/syntax/atlas.vim create mode 100644 runtime/syntax/autodoc.vim create mode 100644 runtime/syntax/autohotkey.vim create mode 100644 runtime/syntax/autoit.vim create mode 100644 runtime/syntax/automake.vim create mode 100644 runtime/syntax/ave.vim create mode 100644 runtime/syntax/avra.vim create mode 100644 runtime/syntax/awk.vim create mode 100644 runtime/syntax/ayacc.vim create mode 100644 runtime/syntax/b.vim create mode 100644 runtime/syntax/baan.vim create mode 100644 runtime/syntax/bash.vim create mode 100644 runtime/syntax/basic.vim create mode 100644 runtime/syntax/bc.vim create mode 100644 runtime/syntax/bdf.vim create mode 100644 runtime/syntax/bib.vim create mode 100644 runtime/syntax/bindzone.vim create mode 100644 runtime/syntax/bitbake.vim create mode 100644 runtime/syntax/blank.vim create mode 100644 runtime/syntax/bsdl.vim create mode 100644 runtime/syntax/bst.vim create mode 100644 runtime/syntax/btm.vim create mode 100644 runtime/syntax/bzl.vim create mode 100644 runtime/syntax/bzr.vim create mode 100644 runtime/syntax/c.vim create mode 100644 runtime/syntax/cabal.vim create mode 100644 runtime/syntax/cabalconfig.vim create mode 100644 runtime/syntax/cabalproject.vim create mode 100644 runtime/syntax/calendar.vim create mode 100644 runtime/syntax/catalog.vim create mode 100644 runtime/syntax/cdl.vim create mode 100644 runtime/syntax/cdrdaoconf.vim create mode 100644 runtime/syntax/cdrtoc.vim create mode 100644 runtime/syntax/cf.vim create mode 100644 runtime/syntax/cfg.vim create mode 100644 runtime/syntax/ch.vim create mode 100644 runtime/syntax/chaiscript.vim create mode 100644 runtime/syntax/change.vim create mode 100644 runtime/syntax/changelog.vim create mode 100644 runtime/syntax/chaskell.vim create mode 100644 runtime/syntax/chatito.vim create mode 100644 runtime/syntax/cheetah.vim create mode 100644 runtime/syntax/chicken.vim create mode 100644 runtime/syntax/chill.vim create mode 100644 runtime/syntax/chordpro.vim create mode 100644 runtime/syntax/cl.vim create mode 100644 runtime/syntax/clean.vim create mode 100644 runtime/syntax/clipper.vim create mode 100644 runtime/syntax/clojure.vim create mode 100644 runtime/syntax/cmake.vim create mode 100644 runtime/syntax/cmod.vim create mode 100644 runtime/syntax/cmusrc.vim create mode 100644 runtime/syntax/cobol.vim create mode 100644 runtime/syntax/coco.vim create mode 100644 runtime/syntax/colortest.vim create mode 100644 runtime/syntax/conaryrecipe.vim create mode 100644 runtime/syntax/conf.vim create mode 100644 runtime/syntax/config.vim create mode 100644 runtime/syntax/confini.vim create mode 100644 runtime/syntax/context.vim create mode 100644 runtime/syntax/cpp.vim create mode 100644 runtime/syntax/crm.vim create mode 100644 runtime/syntax/crontab.vim create mode 100644 runtime/syntax/cs.vim create mode 100644 runtime/syntax/csc.vim create mode 100644 runtime/syntax/csdl.vim create mode 100644 runtime/syntax/csh.vim create mode 100644 runtime/syntax/csp.vim create mode 100644 runtime/syntax/css.vim create mode 100644 runtime/syntax/cterm.vim create mode 100644 runtime/syntax/ctrlh.vim create mode 100644 runtime/syntax/cucumber.vim create mode 100644 runtime/syntax/cuda.vim create mode 100644 runtime/syntax/cupl.vim create mode 100644 runtime/syntax/cuplsim.vim create mode 100644 runtime/syntax/cvs.vim create mode 100644 runtime/syntax/cvsrc.vim create mode 100644 runtime/syntax/cweb.vim create mode 100644 runtime/syntax/cynlib.vim create mode 100644 runtime/syntax/cynpp.vim create mode 100644 runtime/syntax/d.vim create mode 100644 runtime/syntax/dart.vim create mode 100644 runtime/syntax/datascript.vim create mode 100644 runtime/syntax/dcd.vim create mode 100644 runtime/syntax/dcl.vim create mode 100644 runtime/syntax/deb822sources.vim create mode 100644 runtime/syntax/debchangelog.vim create mode 100644 runtime/syntax/debcontrol.vim create mode 100644 runtime/syntax/debcopyright.vim create mode 100644 runtime/syntax/debsources.vim create mode 100644 runtime/syntax/def.vim create mode 100644 runtime/syntax/denyhosts.vim create mode 100644 runtime/syntax/dep3patch.vim create mode 100644 runtime/syntax/desc.vim create mode 100644 runtime/syntax/desktop.vim create mode 100644 runtime/syntax/dictconf.vim create mode 100644 runtime/syntax/dictdconf.vim create mode 100644 runtime/syntax/diff.vim create mode 100644 runtime/syntax/dircolors.vim create mode 100644 runtime/syntax/dirpager.vim create mode 100644 runtime/syntax/diva.vim create mode 100644 runtime/syntax/django.vim create mode 100644 runtime/syntax/dns.vim create mode 100644 runtime/syntax/dnsmasq.vim create mode 100644 runtime/syntax/docbk.vim create mode 100644 runtime/syntax/docbksgml.vim create mode 100644 runtime/syntax/docbkxml.vim create mode 100644 runtime/syntax/dockerfile.vim create mode 100644 runtime/syntax/dosbatch.vim create mode 100644 runtime/syntax/dosini.vim create mode 100644 runtime/syntax/dot.vim create mode 100644 runtime/syntax/doxygen.vim create mode 100644 runtime/syntax/dracula.vim create mode 100644 runtime/syntax/dsl.vim create mode 100644 runtime/syntax/dtd.vim create mode 100644 runtime/syntax/dtml.vim create mode 100644 runtime/syntax/dtrace.vim create mode 100644 runtime/syntax/dts.vim create mode 100644 runtime/syntax/dune.vim create mode 100644 runtime/syntax/dylan.vim create mode 100644 runtime/syntax/dylanintr.vim create mode 100644 runtime/syntax/dylanlid.vim create mode 100644 runtime/syntax/ecd.vim create mode 100644 runtime/syntax/edif.vim create mode 100644 runtime/syntax/editorconfig.vim create mode 100644 runtime/syntax/eiffel.vim create mode 100644 runtime/syntax/elf.vim create mode 100644 runtime/syntax/elinks.vim create mode 100644 runtime/syntax/elm.vim create mode 100644 runtime/syntax/elmfilt.vim create mode 100644 runtime/syntax/erlang.vim create mode 100644 runtime/syntax/eruby.vim create mode 100644 runtime/syntax/esmtprc.vim create mode 100644 runtime/syntax/esqlc.vim create mode 100644 runtime/syntax/esterel.vim create mode 100644 runtime/syntax/eterm.vim create mode 100644 runtime/syntax/euphoria3.vim create mode 100644 runtime/syntax/euphoria4.vim create mode 100644 runtime/syntax/eviews.vim create mode 100644 runtime/syntax/exim.vim create mode 100644 runtime/syntax/expect.vim create mode 100644 runtime/syntax/exports.vim create mode 100644 runtime/syntax/falcon.vim create mode 100644 runtime/syntax/fan.vim create mode 100644 runtime/syntax/fasm.vim create mode 100644 runtime/syntax/fdcc.vim create mode 100644 runtime/syntax/fetchmail.vim create mode 100644 runtime/syntax/fgl.vim create mode 100644 runtime/syntax/fish.vim create mode 100644 runtime/syntax/flexwiki.vim create mode 100644 runtime/syntax/focexec.vim create mode 100644 runtime/syntax/form.vim create mode 100644 runtime/syntax/forth.vim create mode 100644 runtime/syntax/fortran.vim create mode 100644 runtime/syntax/foxpro.vim create mode 100644 runtime/syntax/fpcmake.vim create mode 100644 runtime/syntax/framescript.vim create mode 100644 runtime/syntax/freebasic.vim create mode 100644 runtime/syntax/fstab.vim create mode 100644 runtime/syntax/fvwm.vim create mode 100644 runtime/syntax/fvwm2m4.vim create mode 100644 runtime/syntax/gdb.vim create mode 100644 runtime/syntax/gdmo.vim create mode 100644 runtime/syntax/gdresource.vim create mode 100644 runtime/syntax/gdscript.vim create mode 100644 runtime/syntax/gdshader.vim create mode 100644 runtime/syntax/gedcom.vim create mode 100644 runtime/syntax/gemtext.vim create mode 100644 runtime/syntax/gift.vim create mode 100644 runtime/syntax/git.vim create mode 100644 runtime/syntax/gitattributes.vim create mode 100644 runtime/syntax/gitcommit.vim create mode 100644 runtime/syntax/gitconfig.vim create mode 100644 runtime/syntax/gitignore.vim create mode 100644 runtime/syntax/gitolite.vim create mode 100644 runtime/syntax/gitrebase.vim create mode 100644 runtime/syntax/gitsendemail.vim create mode 100644 runtime/syntax/gkrellmrc.vim create mode 100644 runtime/syntax/gnash.vim create mode 100644 runtime/syntax/gnuplot.vim create mode 100644 runtime/syntax/go.vim create mode 100644 runtime/syntax/godoc.vim create mode 100644 runtime/syntax/gp.vim create mode 100644 runtime/syntax/gpg.vim create mode 100644 runtime/syntax/gprof.vim create mode 100644 runtime/syntax/grads.vim create mode 100644 runtime/syntax/gretl.vim create mode 100644 runtime/syntax/groff.vim create mode 100644 runtime/syntax/groovy.vim create mode 100644 runtime/syntax/group.vim create mode 100644 runtime/syntax/grub.vim create mode 100644 runtime/syntax/gsp.vim create mode 100644 runtime/syntax/gtkrc.vim create mode 100644 runtime/syntax/gvpr.vim create mode 100644 runtime/syntax/gyp.vim create mode 100644 runtime/syntax/haml.vim create mode 100644 runtime/syntax/hamster.vim create mode 100644 runtime/syntax/hare.vim create mode 100644 runtime/syntax/haskell.vim create mode 100644 runtime/syntax/haste.vim create mode 100644 runtime/syntax/hastepreproc.vim create mode 100644 runtime/syntax/hb.vim create mode 100644 runtime/syntax/help.vim create mode 100644 runtime/syntax/help_ru.vim create mode 100644 runtime/syntax/hercules.vim create mode 100644 runtime/syntax/hex.vim create mode 100644 runtime/syntax/hgcommit.vim create mode 100644 runtime/syntax/hitest.vim create mode 100644 runtime/syntax/hlsplaylist.vim create mode 100644 runtime/syntax/hog.vim create mode 100644 runtime/syntax/hollywood.vim create mode 100644 runtime/syntax/hostconf.vim create mode 100644 runtime/syntax/hostsaccess.vim create mode 100644 runtime/syntax/html.vim create mode 100644 runtime/syntax/htmlcheetah.vim create mode 100644 runtime/syntax/htmldjango.vim create mode 100644 runtime/syntax/htmlm4.vim create mode 100644 runtime/syntax/htmlos.vim create mode 100644 runtime/syntax/i3config.vim create mode 100644 runtime/syntax/ia64.vim create mode 100644 runtime/syntax/ibasic.vim create mode 100644 runtime/syntax/icemenu.vim create mode 100644 runtime/syntax/icon.vim create mode 100644 runtime/syntax/idl.vim create mode 100644 runtime/syntax/idlang.vim create mode 100644 runtime/syntax/indent.vim create mode 100644 runtime/syntax/inform.vim create mode 100644 runtime/syntax/initex.vim create mode 100644 runtime/syntax/initng.vim create mode 100644 runtime/syntax/inittab.vim create mode 100644 runtime/syntax/ipfilter.vim create mode 100644 runtime/syntax/ishd.vim create mode 100644 runtime/syntax/iss.vim create mode 100644 runtime/syntax/ist.vim create mode 100644 runtime/syntax/j.vim create mode 100644 runtime/syntax/jal.vim create mode 100644 runtime/syntax/jam.vim create mode 100644 runtime/syntax/jargon.vim create mode 100644 runtime/syntax/java.vim create mode 100644 runtime/syntax/javacc.vim create mode 100644 runtime/syntax/javascript.vim create mode 100644 runtime/syntax/javascriptreact.vim create mode 100644 runtime/syntax/jess.vim create mode 100644 runtime/syntax/jgraph.vim create mode 100644 runtime/syntax/jovial.vim create mode 100644 runtime/syntax/jproperties.vim create mode 100644 runtime/syntax/json.vim create mode 100644 runtime/syntax/json5.vim create mode 100644 runtime/syntax/jsonc.vim create mode 100644 runtime/syntax/jsp.vim create mode 100644 runtime/syntax/julia.vim create mode 100644 runtime/syntax/kconfig.vim create mode 100644 runtime/syntax/kivy.vim create mode 100644 runtime/syntax/kix.vim create mode 100644 runtime/syntax/kotlin.vim create mode 100644 runtime/syntax/krl.vim create mode 100644 runtime/syntax/kscript.vim create mode 100644 runtime/syntax/kwt.vim create mode 100644 runtime/syntax/lace.vim create mode 100644 runtime/syntax/latte.vim create mode 100644 runtime/syntax/lc.vim create mode 100644 runtime/syntax/ld.vim create mode 100644 runtime/syntax/ldapconf.vim create mode 100644 runtime/syntax/ldif.vim create mode 100644 runtime/syntax/less.vim create mode 100644 runtime/syntax/lex.vim create mode 100644 runtime/syntax/lftp.vim create mode 100644 runtime/syntax/lhaskell.vim create mode 100644 runtime/syntax/libao.vim create mode 100644 runtime/syntax/lifelines.vim create mode 100644 runtime/syntax/lilo.vim create mode 100644 runtime/syntax/limits.vim create mode 100644 runtime/syntax/liquid.vim create mode 100644 runtime/syntax/lisp.vim create mode 100644 runtime/syntax/lite.vim create mode 100644 runtime/syntax/litestep.vim create mode 100644 runtime/syntax/livebook.vim create mode 100644 runtime/syntax/loginaccess.vim create mode 100644 runtime/syntax/logindefs.vim create mode 100644 runtime/syntax/logtalk.vim create mode 100644 runtime/syntax/lotos.vim create mode 100644 runtime/syntax/lout.vim create mode 100644 runtime/syntax/lpc.vim create mode 100644 runtime/syntax/lprolog.vim create mode 100644 runtime/syntax/lscript.vim create mode 100644 runtime/syntax/lsl.vim create mode 100644 runtime/syntax/lss.vim create mode 100644 runtime/syntax/lua.vim create mode 100644 runtime/syntax/luau.vim create mode 100644 runtime/syntax/lynx.vim create mode 100644 runtime/syntax/lyrics.vim create mode 100644 runtime/syntax/m3build.vim create mode 100644 runtime/syntax/m3quake.vim create mode 100644 runtime/syntax/m4.vim create mode 100644 runtime/syntax/mail.vim create mode 100644 runtime/syntax/mailaliases.vim create mode 100644 runtime/syntax/mailcap.vim create mode 100644 runtime/syntax/make.vim create mode 100644 runtime/syntax/mallard.vim create mode 100644 runtime/syntax/man.vim create mode 100644 runtime/syntax/manconf.vim create mode 100644 runtime/syntax/manual.vim create mode 100644 runtime/syntax/maple.vim create mode 100644 runtime/syntax/markdown.vim create mode 100644 runtime/syntax/masm.vim create mode 100644 runtime/syntax/mason.vim create mode 100644 runtime/syntax/master.vim create mode 100644 runtime/syntax/matlab.vim create mode 100644 runtime/syntax/maxima.vim create mode 100644 runtime/syntax/mel.vim create mode 100644 runtime/syntax/mermaid.vim create mode 100644 runtime/syntax/meson.vim create mode 100644 runtime/syntax/messages.vim create mode 100644 runtime/syntax/mf.vim create mode 100644 runtime/syntax/mgl.vim create mode 100644 runtime/syntax/mgp.vim create mode 100644 runtime/syntax/mib.vim create mode 100644 runtime/syntax/mix.vim create mode 100644 runtime/syntax/mma.vim create mode 100644 runtime/syntax/mmix.vim create mode 100644 runtime/syntax/mmp.vim create mode 100644 runtime/syntax/modconf.vim create mode 100644 runtime/syntax/model.vim create mode 100644 runtime/syntax/modsim3.vim create mode 100644 runtime/syntax/modula2.vim create mode 100644 runtime/syntax/modula2/opt/iso.vim create mode 100644 runtime/syntax/modula2/opt/pim.vim create mode 100644 runtime/syntax/modula2/opt/r10.vim create mode 100644 runtime/syntax/modula3.vim create mode 100644 runtime/syntax/mojo.vim create mode 100644 runtime/syntax/monk.vim create mode 100644 runtime/syntax/moo.vim create mode 100644 runtime/syntax/mp.vim create mode 100644 runtime/syntax/mplayerconf.vim create mode 100644 runtime/syntax/mrxvtrc.vim create mode 100644 runtime/syntax/msidl.vim create mode 100644 runtime/syntax/msmessages.vim create mode 100644 runtime/syntax/msql.vim create mode 100644 runtime/syntax/mupad.vim create mode 100644 runtime/syntax/murphi.vim create mode 100644 runtime/syntax/mush.vim create mode 100644 runtime/syntax/muttrc.vim create mode 100644 runtime/syntax/mysql.vim create mode 100644 runtime/syntax/n1ql.vim create mode 100644 runtime/syntax/named.vim create mode 100644 runtime/syntax/nanorc.vim create mode 100644 runtime/syntax/nasm.vim create mode 100644 runtime/syntax/nastran.vim create mode 100644 runtime/syntax/natural.vim create mode 100644 runtime/syntax/ncf.vim create mode 100644 runtime/syntax/neomuttrc.vim create mode 100644 runtime/syntax/netrc.vim create mode 100644 runtime/syntax/netrw.vim create mode 100644 runtime/syntax/nginx.vim create mode 100644 runtime/syntax/ninja.vim create mode 100644 runtime/syntax/nix.vim create mode 100644 runtime/syntax/nosyntax.vim create mode 100644 runtime/syntax/nqc.vim create mode 100644 runtime/syntax/nroff.vim create mode 100644 runtime/syntax/nsis.vim create mode 100644 runtime/syntax/obj.vim create mode 100644 runtime/syntax/objc.vim create mode 100644 runtime/syntax/objcpp.vim create mode 100644 runtime/syntax/obse.vim create mode 100644 runtime/syntax/ocaml.vim create mode 100644 runtime/syntax/occam.vim create mode 100644 runtime/syntax/omnimark.vim create mode 100644 runtime/syntax/opam.vim create mode 100644 runtime/syntax/openroad.vim create mode 100644 runtime/syntax/openscad.vim create mode 100644 runtime/syntax/openvpn.vim create mode 100644 runtime/syntax/opl.vim create mode 100644 runtime/syntax/ora.vim create mode 100644 runtime/syntax/pacmanlog.vim create mode 100644 runtime/syntax/pamconf.vim create mode 100644 runtime/syntax/pamenv.vim create mode 100644 runtime/syntax/papp.vim create mode 100644 runtime/syntax/pascal.vim create mode 100644 runtime/syntax/passwd.vim create mode 100644 runtime/syntax/pbtxt.vim create mode 100644 runtime/syntax/pcap.vim create mode 100644 runtime/syntax/pccts.vim create mode 100644 runtime/syntax/pdf.vim create mode 100644 runtime/syntax/perl.vim create mode 100644 runtime/syntax/pf.vim create mode 100644 runtime/syntax/pfmain.vim create mode 100644 runtime/syntax/php.vim create mode 100644 runtime/syntax/phtml.vim create mode 100644 runtime/syntax/pic.vim create mode 100644 runtime/syntax/pike.vim create mode 100644 runtime/syntax/pilrc.vim create mode 100644 runtime/syntax/pine.vim create mode 100644 runtime/syntax/pinfo.vim create mode 100644 runtime/syntax/plaintex.vim create mode 100644 runtime/syntax/pli.vim create mode 100644 runtime/syntax/plm.vim create mode 100644 runtime/syntax/plp.vim create mode 100644 runtime/syntax/plsql.vim create mode 100644 runtime/syntax/po.vim create mode 100644 runtime/syntax/pod.vim create mode 100644 runtime/syntax/poefilter.vim create mode 100644 runtime/syntax/poke.vim create mode 100644 runtime/syntax/postscr.vim create mode 100644 runtime/syntax/pov.vim create mode 100644 runtime/syntax/povini.vim create mode 100644 runtime/syntax/ppd.vim create mode 100644 runtime/syntax/ppwiz.vim create mode 100644 runtime/syntax/prescribe.vim create mode 100644 runtime/syntax/privoxy.vim create mode 100644 runtime/syntax/procmail.vim create mode 100644 runtime/syntax/progress.vim create mode 100644 runtime/syntax/prolog.vim create mode 100644 runtime/syntax/promela.vim create mode 100644 runtime/syntax/proto.vim create mode 100644 runtime/syntax/protocols.vim create mode 100644 runtime/syntax/ps1.vim create mode 100644 runtime/syntax/ps1xml.vim create mode 100644 runtime/syntax/psf.vim create mode 100644 runtime/syntax/psl.vim create mode 100644 runtime/syntax/ptcap.vim create mode 100644 runtime/syntax/purifylog.vim create mode 100644 runtime/syntax/pymanifest.vim create mode 100644 runtime/syntax/pyrex.vim create mode 100644 runtime/syntax/python.vim create mode 100644 runtime/syntax/python2.vim create mode 100644 runtime/syntax/qb64.vim create mode 100644 runtime/syntax/qf.vim create mode 100644 runtime/syntax/qml.vim create mode 100644 runtime/syntax/quake.vim create mode 100644 runtime/syntax/quarto.vim create mode 100644 runtime/syntax/r.vim create mode 100644 runtime/syntax/racc.vim create mode 100644 runtime/syntax/racket.vim create mode 100644 runtime/syntax/radiance.vim create mode 100644 runtime/syntax/raku.vim create mode 100644 runtime/syntax/raml.vim create mode 100644 runtime/syntax/rapid.vim create mode 100644 runtime/syntax/ratpoison.vim create mode 100644 runtime/syntax/rc.vim create mode 100644 runtime/syntax/rcs.vim create mode 100644 runtime/syntax/rcslog.vim create mode 100644 runtime/syntax/readline.vim create mode 100644 runtime/syntax/rebol.vim create mode 100644 runtime/syntax/redif.vim create mode 100644 runtime/syntax/registry.vim create mode 100644 runtime/syntax/rego.vim create mode 100644 runtime/syntax/remind.vim create mode 100644 runtime/syntax/resolv.vim create mode 100644 runtime/syntax/reva.vim create mode 100644 runtime/syntax/rexx.vim create mode 100644 runtime/syntax/rhelp.vim create mode 100644 runtime/syntax/rib.vim create mode 100644 runtime/syntax/rmd.vim create mode 100644 runtime/syntax/rnc.vim create mode 100644 runtime/syntax/rng.vim create mode 100644 runtime/syntax/rnoweb.vim create mode 100644 runtime/syntax/robots.vim create mode 100644 runtime/syntax/routeros.vim create mode 100644 runtime/syntax/rpcgen.vim create mode 100644 runtime/syntax/rpl.vim create mode 100644 runtime/syntax/rrst.vim create mode 100644 runtime/syntax/rst.vim create mode 100644 runtime/syntax/rtf.vim create mode 100644 runtime/syntax/ruby.vim create mode 100644 runtime/syntax/rust.vim create mode 100644 runtime/syntax/samba.vim create mode 100644 runtime/syntax/sas.vim create mode 100644 runtime/syntax/sass.vim create mode 100644 runtime/syntax/sather.vim create mode 100644 runtime/syntax/sbt.vim create mode 100644 runtime/syntax/scala.vim create mode 100644 runtime/syntax/scdoc.vim create mode 100644 runtime/syntax/scheme.vim create mode 100644 runtime/syntax/scilab.vim create mode 100644 runtime/syntax/screen.vim create mode 100644 runtime/syntax/scss.vim create mode 100644 runtime/syntax/sd.vim create mode 100644 runtime/syntax/sdc.vim create mode 100644 runtime/syntax/sdl.vim create mode 100644 runtime/syntax/sed.vim create mode 100644 runtime/syntax/sendpr.vim create mode 100644 runtime/syntax/sensors.vim create mode 100644 runtime/syntax/services.vim create mode 100644 runtime/syntax/setserial.vim create mode 100644 runtime/syntax/sexplib.vim create mode 100644 runtime/syntax/sgml.vim create mode 100644 runtime/syntax/sgmldecl.vim create mode 100644 runtime/syntax/sgmllnx.vim create mode 100644 runtime/syntax/sh.vim create mode 100644 runtime/syntax/shared/README.txt create mode 100644 runtime/syntax/shared/context-data-context.vim create mode 100644 runtime/syntax/shared/context-data-interfaces.vim create mode 100644 runtime/syntax/shared/context-data-metafun.vim create mode 100644 runtime/syntax/shared/context-data-tex.vim create mode 100644 runtime/syntax/shared/debversions.vim create mode 100644 runtime/syntax/shared/hgcommitDiff.vim create mode 100644 runtime/syntax/shared/typescriptcommon.vim create mode 100644 runtime/syntax/sicad.vim create mode 100644 runtime/syntax/sieve.vim create mode 100644 runtime/syntax/sil.vim create mode 100644 runtime/syntax/simula.vim create mode 100644 runtime/syntax/sinda.vim create mode 100644 runtime/syntax/sindacmp.vim create mode 100644 runtime/syntax/sindaout.vim create mode 100644 runtime/syntax/sisu.vim create mode 100644 runtime/syntax/skill.vim create mode 100644 runtime/syntax/sl.vim create mode 100644 runtime/syntax/slang.vim create mode 100644 runtime/syntax/slice.vim create mode 100644 runtime/syntax/slpconf.vim create mode 100644 runtime/syntax/slpreg.vim create mode 100644 runtime/syntax/slpspi.vim create mode 100644 runtime/syntax/slrnrc.vim create mode 100644 runtime/syntax/slrnsc.vim create mode 100644 runtime/syntax/sm.vim create mode 100644 runtime/syntax/smarty.vim create mode 100644 runtime/syntax/smcl.vim create mode 100644 runtime/syntax/smil.vim create mode 100644 runtime/syntax/smith.vim create mode 100644 runtime/syntax/sml.vim create mode 100644 runtime/syntax/snnsnet.vim create mode 100644 runtime/syntax/snnspat.vim create mode 100644 runtime/syntax/snnsres.vim create mode 100644 runtime/syntax/snobol4.vim create mode 100644 runtime/syntax/solidity.vim create mode 100644 runtime/syntax/spec.vim create mode 100644 runtime/syntax/specman.vim create mode 100644 runtime/syntax/spice.vim create mode 100644 runtime/syntax/splint.vim create mode 100644 runtime/syntax/spup.vim create mode 100644 runtime/syntax/spyce.vim create mode 100644 runtime/syntax/sql.vim create mode 100644 runtime/syntax/sqlanywhere.vim create mode 100644 runtime/syntax/sqlforms.vim create mode 100644 runtime/syntax/sqlhana.vim create mode 100644 runtime/syntax/sqlinformix.vim create mode 100644 runtime/syntax/sqlj.vim create mode 100644 runtime/syntax/sqloracle.vim create mode 100644 runtime/syntax/sqr.vim create mode 100644 runtime/syntax/squid.vim create mode 100644 runtime/syntax/squirrel.vim create mode 100644 runtime/syntax/srec.vim create mode 100644 runtime/syntax/srt.vim create mode 100644 runtime/syntax/ssa.vim create mode 100644 runtime/syntax/sshconfig.vim create mode 100644 runtime/syntax/sshdconfig.vim create mode 100644 runtime/syntax/st.vim create mode 100644 runtime/syntax/stata.vim create mode 100644 runtime/syntax/stp.vim create mode 100644 runtime/syntax/strace.vim create mode 100644 runtime/syntax/structurizr.vim create mode 100644 runtime/syntax/sudoers.vim create mode 100644 runtime/syntax/svg.vim create mode 100644 runtime/syntax/svn.vim create mode 100644 runtime/syntax/swayconfig.vim create mode 100644 runtime/syntax/swift.vim create mode 100644 runtime/syntax/swiftgyb.vim create mode 100644 runtime/syntax/swig.vim create mode 100644 runtime/syntax/syncolor.vim create mode 100644 runtime/syntax/synload.vim create mode 100644 runtime/syntax/syntax.vim create mode 100644 runtime/syntax/sysctl.vim create mode 100644 runtime/syntax/systemd.vim create mode 100644 runtime/syntax/systemverilog.vim create mode 100644 runtime/syntax/tads.vim create mode 100644 runtime/syntax/tags.vim create mode 100644 runtime/syntax/tak.vim create mode 100644 runtime/syntax/takcmp.vim create mode 100644 runtime/syntax/takout.vim create mode 100644 runtime/syntax/tap.vim create mode 100644 runtime/syntax/tar.vim create mode 100644 runtime/syntax/taskdata.vim create mode 100644 runtime/syntax/taskedit.vim create mode 100644 runtime/syntax/tasm.vim create mode 100644 runtime/syntax/tcl.vim create mode 100644 runtime/syntax/tcsh.vim create mode 100644 runtime/syntax/template.vim create mode 100644 runtime/syntax/teraterm.vim create mode 100644 runtime/syntax/terminfo.vim create mode 100644 runtime/syntax/testdir/README.txt create mode 100644 runtime/syntax/testdir/dumps/c_00.dump create mode 100644 runtime/syntax/testdir/dumps/c_01.dump create mode 100644 runtime/syntax/testdir/dumps/c_02.dump create mode 100644 runtime/syntax/testdir/dumps/c_03.dump create mode 100644 runtime/syntax/testdir/dumps/c_04.dump create mode 100644 runtime/syntax/testdir/dumps/c_05.dump create mode 100644 runtime/syntax/testdir/dumps/c_06.dump create mode 100644 runtime/syntax/testdir/dumps/c_99.dump create mode 100644 runtime/syntax/testdir/dumps/html_00.dump create mode 100644 runtime/syntax/testdir/dumps/html_01.dump create mode 100644 runtime/syntax/testdir/dumps/html_02.dump create mode 100644 runtime/syntax/testdir/dumps/html_03.dump create mode 100644 runtime/syntax/testdir/dumps/html_04.dump create mode 100644 runtime/syntax/testdir/dumps/html_05.dump create mode 100644 runtime/syntax/testdir/dumps/html_06.dump create mode 100644 runtime/syntax/testdir/dumps/html_07.dump create mode 100644 runtime/syntax/testdir/dumps/html_99.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_00.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_01.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_02.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_03.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_04.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_05.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_06.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_iso_99.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_00.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_01.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_02.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_03.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_04.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_05.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_pim_99.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_00.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_01.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_02.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_03.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_04.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_05.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_06.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_07.dump create mode 100644 runtime/syntax/testdir/dumps/modula2_r10_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_01_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_01_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_02_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_02_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_02_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_03_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_03_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_03_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_04_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_04_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_04_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_02.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_03.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_04.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_05.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_06.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_07.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_08.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_09.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_10.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_11.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_12.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_13.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_14.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_15.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_16.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_17.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_18.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_19.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_20.dump create mode 100644 runtime/syntax/testdir/dumps/sh_05_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_06_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_06_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_06_02.dump create mode 100644 runtime/syntax/testdir/dumps/sh_06_03.dump create mode 100644 runtime/syntax/testdir/dumps/sh_06_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_07_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_07_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_07_02.dump create mode 100644 runtime/syntax/testdir/dumps/sh_07_03.dump create mode 100644 runtime/syntax/testdir/dumps/sh_07_04.dump create mode 100644 runtime/syntax/testdir/dumps/sh_07_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_08_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_08_01.dump create mode 100644 runtime/syntax/testdir/dumps/sh_08_02.dump create mode 100644 runtime/syntax/testdir/dumps/sh_08_03.dump create mode 100644 runtime/syntax/testdir/dumps/sh_08_04.dump create mode 100644 runtime/syntax/testdir/dumps/sh_08_99.dump create mode 100644 runtime/syntax/testdir/dumps/sh_09_00.dump create mode 100644 runtime/syntax/testdir/dumps/sh_09_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_08.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_09.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_10.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_11.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_12.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_13.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_14.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_15.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_16.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_17.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_18.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_19.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_20.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_21.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_22.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_23.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_24.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_25.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_26.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_27.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_28.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_29.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_30.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_31.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_32.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_33.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_34.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_35.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_36.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_37.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_38.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_39.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_40.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_41.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_42.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_43.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_44.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_45.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_46.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_47.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_48.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_49.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_50.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_51.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_52.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_53.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_54.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_55.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_56.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_57.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_58.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_59.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_60.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_61.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_62.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_63.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_64.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_65.dump create mode 100644 runtime/syntax/testdir/dumps/vim_ex_commands_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_keymap_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_keymap_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_keymap_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_syntax_99.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_00.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_01.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_02.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_03.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_04.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_05.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_06.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_07.dump create mode 100644 runtime/syntax/testdir/dumps/vim_variables_99.dump create mode 100644 runtime/syntax/testdir/input/c.c create mode 100644 runtime/syntax/testdir/input/html_html create mode 100644 runtime/syntax/testdir/input/modula2_iso.def create mode 100644 runtime/syntax/testdir/input/modula2_pim.def create mode 100644 runtime/syntax/testdir/input/modula2_r10.def create mode 100644 runtime/syntax/testdir/input/sh_01.sh create mode 100644 runtime/syntax/testdir/input/sh_02.sh create mode 100644 runtime/syntax/testdir/input/sh_03.sh create mode 100644 runtime/syntax/testdir/input/sh_04.sh create mode 100644 runtime/syntax/testdir/input/sh_05.sh create mode 100644 runtime/syntax/testdir/input/sh_06.sh create mode 100644 runtime/syntax/testdir/input/sh_07.sh create mode 100644 runtime/syntax/testdir/input/sh_08.sh create mode 100644 runtime/syntax/testdir/input/sh_09.sh create mode 100644 runtime/syntax/testdir/input/vim_ex_commands.vim create mode 100644 runtime/syntax/testdir/input/vim_keymap.vim create mode 100644 runtime/syntax/testdir/input/vim_syntax.vim create mode 100644 runtime/syntax/testdir/input/vim_variables.vim create mode 100644 runtime/syntax/testdir/runtest.vim create mode 100644 runtime/syntax/tex.vim create mode 100644 runtime/syntax/texinfo.vim create mode 100644 runtime/syntax/texmf.vim create mode 100644 runtime/syntax/tf.vim create mode 100644 runtime/syntax/tidy.vim create mode 100644 runtime/syntax/tilde.vim create mode 100644 runtime/syntax/tli.vim create mode 100644 runtime/syntax/tmux.vim create mode 100644 runtime/syntax/toml.vim create mode 100644 runtime/syntax/tpp.vim create mode 100644 runtime/syntax/trasys.vim create mode 100644 runtime/syntax/treetop.vim create mode 100644 runtime/syntax/trustees.vim create mode 100644 runtime/syntax/tsalt.vim create mode 100644 runtime/syntax/tsscl.vim create mode 100644 runtime/syntax/tssgm.vim create mode 100644 runtime/syntax/tssop.vim create mode 100644 runtime/syntax/tt2.vim create mode 100644 runtime/syntax/tt2html.vim create mode 100644 runtime/syntax/tt2js.vim create mode 100644 runtime/syntax/typescript.vim create mode 100644 runtime/syntax/typescriptreact.vim create mode 100644 runtime/syntax/uc.vim create mode 100644 runtime/syntax/udevconf.vim create mode 100644 runtime/syntax/udevperm.vim create mode 100644 runtime/syntax/udevrules.vim create mode 100644 runtime/syntax/uil.vim create mode 100644 runtime/syntax/unison.vim create mode 100644 runtime/syntax/updatedb.vim create mode 100644 runtime/syntax/upstart.vim create mode 100644 runtime/syntax/upstreamdat.vim create mode 100644 runtime/syntax/upstreaminstalllog.vim create mode 100644 runtime/syntax/upstreamlog.vim create mode 100644 runtime/syntax/upstreamrpt.vim create mode 100644 runtime/syntax/urlshortcut.vim create mode 100644 runtime/syntax/usserverlog.vim create mode 100644 runtime/syntax/usw2kagtlog.vim create mode 100644 runtime/syntax/valgrind.vim create mode 100644 runtime/syntax/vb.vim create mode 100644 runtime/syntax/vdf.vim create mode 100644 runtime/syntax/vera.vim create mode 100644 runtime/syntax/verilog.vim create mode 100644 runtime/syntax/verilogams.vim create mode 100644 runtime/syntax/vgrindefs.vim create mode 100644 runtime/syntax/vhdl.vim create mode 100644 runtime/syntax/vim.vim create mode 100644 runtime/syntax/viminfo.vim create mode 100644 runtime/syntax/virata.vim create mode 100644 runtime/syntax/vmasm.vim create mode 100644 runtime/syntax/voscm.vim create mode 100644 runtime/syntax/vrml.vim create mode 100644 runtime/syntax/vroom.vim create mode 100644 runtime/syntax/vsejcl.vim create mode 100644 runtime/syntax/vue.vim create mode 100644 runtime/syntax/wat.vim create mode 100644 runtime/syntax/wdiff.vim create mode 100644 runtime/syntax/wdl.vim create mode 100644 runtime/syntax/web.vim create mode 100644 runtime/syntax/webmacro.vim create mode 100644 runtime/syntax/wget.vim create mode 100644 runtime/syntax/wget2.vim create mode 100644 runtime/syntax/whitespace.vim create mode 100644 runtime/syntax/winbatch.vim create mode 100644 runtime/syntax/wml.vim create mode 100644 runtime/syntax/wsh.vim create mode 100644 runtime/syntax/wsml.vim create mode 100644 runtime/syntax/wvdial.vim create mode 100644 runtime/syntax/xbl.vim create mode 100644 runtime/syntax/xcompose.vim create mode 100644 runtime/syntax/xdefaults.vim create mode 100644 runtime/syntax/xf86conf.vim create mode 100644 runtime/syntax/xhtml.vim create mode 100644 runtime/syntax/xinetd.vim create mode 100644 runtime/syntax/xkb.vim create mode 100644 runtime/syntax/xmath.vim create mode 100644 runtime/syntax/xml.vim create mode 100644 runtime/syntax/xmodmap.vim create mode 100644 runtime/syntax/xpm.vim create mode 100644 runtime/syntax/xpm2.vim create mode 100644 runtime/syntax/xquery.vim create mode 100644 runtime/syntax/xs.vim create mode 100644 runtime/syntax/xsd.vim create mode 100644 runtime/syntax/xslt.vim create mode 100644 runtime/syntax/xxd.vim create mode 100644 runtime/syntax/yacc.vim create mode 100644 runtime/syntax/yaml.vim create mode 100644 runtime/syntax/z8a.vim create mode 100644 runtime/syntax/zig.vim create mode 100644 runtime/syntax/zimbu.vim create mode 100644 runtime/syntax/zir.vim create mode 100644 runtime/syntax/zserio.vim create mode 100644 runtime/syntax/zsh.vim (limited to 'runtime/syntax') diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim new file mode 100644 index 0000000..f3ce8be --- /dev/null +++ b/runtime/syntax/2html.vim @@ -0,0 +1,2068 @@ +" Vim syntax support file +" Maintainer: Ben Fritz +" Last Change: 2023 Sep 05 +" +" Additional contributors: +" +" Original by Bram Moolenaar +" Modified by David Ne\v{c}as (Yeti) +" XHTML support by Panagiotis Issaris +" Made w3 compliant by Edd Barrett +" Added html_font. Edd Barrett +" Progress bar based off code from "progressbar widget" plugin by +" Andreas Politz, heavily modified: +" http://www.vim.org/scripts/script.php?script_id=2006 +" +" See Mercurial change logs for more! + +" Transform a file into HTML, using the current syntax highlighting. + +" this file uses line continuations +let s:cpo_sav = &cpo +let s:ls = &ls +let s:ei_sav = &eventignore +set cpo&vim + +" HTML filetype can take a while to load/highlight if the destination file +" already exists. +set eventignore+=FileType + +let s:end=line('$') + +" Font +if exists("g:html_font") + if type(g:html_font) == type([]) + let s:htmlfont = "'".. join(g:html_font,"','") .. "', monospace" + else + let s:htmlfont = "'".. g:html_font .. "', monospace" + endif +else + let s:htmlfont = "monospace" +endif + +let s:settings = tohtml#GetUserSettings() + +if s:settings.use_xhtml + let s:html5 = 0 +elseif s:settings.use_css && !s:settings.no_pre + let s:html5 = 1 +else + let s:html5 = 0 +endif + +if !exists('s:FOLDED_ID') + let s:FOLDED_ID = hlID("Folded") | lockvar s:FOLDED_ID + let s:FOLD_C_ID = hlID("FoldColumn") | lockvar s:FOLD_C_ID + let s:LINENR_ID = hlID('LineNr') | lockvar s:LINENR_ID + let s:DIFF_D_ID = hlID("DiffDelete") | lockvar s:DIFF_D_ID + let s:DIFF_A_ID = hlID("DiffAdd") | lockvar s:DIFF_A_ID + let s:DIFF_C_ID = hlID("DiffChange") | lockvar s:DIFF_C_ID + let s:DIFF_T_ID = hlID("DiffText") | lockvar s:DIFF_T_ID + let s:CONCEAL_ID = hlID('Conceal') | lockvar s:CONCEAL_ID +endif + +" Whitespace +if s:settings.pre_wrap + let s:whitespace = "white-space: pre-wrap; " +else + let s:whitespace = "" +endif + +if !empty(s:settings.prevent_copy) + if s:settings.no_invalid + " User has decided they don't want invalid markup. Still works in + " OpenOffice, and for text editors, but when pasting into Microsoft Word the + " input elements get pasted too and they cannot be deleted (at least not + " easily). + let s:unselInputType = "" + else + " Prevent from copy-pasting the input elements into Microsoft Word where + " they cannot be deleted easily by deliberately inserting invalid markup. + let s:unselInputType = " type='invalid_input_type'" + endif +endif + +" When gui colors are not supported, we can only guess the colors. +" TODO - is this true anymore? Is there a way to ask the terminal what colors +" each number means or read them from some file? +if &termguicolors || has("gui_running") + let s:whatterm = "gui" +else + let s:whatterm = "cterm" + if &t_Co == 8 + let s:cterm_color = { + \ 0: "#808080", 1: "#ff6060", 2: "#00ff00", 3: "#ffff00", + \ 4: "#8080ff", 5: "#ff40ff", 6: "#00ffff", 7: "#ffffff" + \ } + else + let s:cterm_color = { + \ 0: "#000000", 1: "#c00000", 2: "#008000", 3: "#804000", + \ 4: "#0000c0", 5: "#c000c0", 6: "#008080", 7: "#c0c0c0", + \ 8: "#808080", 9: "#ff6060", 10: "#00ff00", 11: "#ffff00", + \ 12: "#8080ff", 13: "#ff40ff", 14: "#00ffff", 15: "#ffffff" + \ } + + " Colors for 88 and 256 come from xterm. + if &t_Co == 88 + call extend(s:cterm_color, { + \ 16: "#000000", 17: "#00008b", 18: "#0000cd", 19: "#0000ff", + \ 20: "#008b00", 21: "#008b8b", 22: "#008bcd", 23: "#008bff", + \ 24: "#00cd00", 25: "#00cd8b", 26: "#00cdcd", 27: "#00cdff", + \ 28: "#00ff00", 29: "#00ff8b", 30: "#00ffcd", 31: "#00ffff", + \ 32: "#8b0000", 33: "#8b008b", 34: "#8b00cd", 35: "#8b00ff", + \ 36: "#8b8b00", 37: "#8b8b8b", 38: "#8b8bcd", 39: "#8b8bff", + \ 40: "#8bcd00", 41: "#8bcd8b", 42: "#8bcdcd", 43: "#8bcdff", + \ 44: "#8bff00", 45: "#8bff8b", 46: "#8bffcd", 47: "#8bffff", + \ 48: "#cd0000", 49: "#cd008b", 50: "#cd00cd", 51: "#cd00ff", + \ 52: "#cd8b00", 53: "#cd8b8b", 54: "#cd8bcd", 55: "#cd8bff", + \ 56: "#cdcd00", 57: "#cdcd8b", 58: "#cdcdcd", 59: "#cdcdff", + \ 60: "#cdff00", 61: "#cdff8b", 62: "#cdffcd", 63: "#cdffff", + \ 64: "#ff0000" + \ }) + call extend(s:cterm_color, { + \ 65: "#ff008b", 66: "#ff00cd", 67: "#ff00ff", 68: "#ff8b00", + \ 69: "#ff8b8b", 70: "#ff8bcd", 71: "#ff8bff", 72: "#ffcd00", + \ 73: "#ffcd8b", 74: "#ffcdcd", 75: "#ffcdff", 76: "#ffff00", + \ 77: "#ffff8b", 78: "#ffffcd", 79: "#ffffff", 80: "#2e2e2e", + \ 81: "#5c5c5c", 82: "#737373", 83: "#8b8b8b", 84: "#a2a2a2", + \ 85: "#b9b9b9", 86: "#d0d0d0", 87: "#e7e7e7" + \ }) + elseif &t_Co == 256 + call extend(s:cterm_color, { + \ 16: "#000000", 17: "#00005f", 18: "#000087", 19: "#0000af", + \ 20: "#0000d7", 21: "#0000ff", 22: "#005f00", 23: "#005f5f", + \ 24: "#005f87", 25: "#005faf", 26: "#005fd7", 27: "#005fff", + \ 28: "#008700", 29: "#00875f", 30: "#008787", 31: "#0087af", + \ 32: "#0087d7", 33: "#0087ff", 34: "#00af00", 35: "#00af5f", + \ 36: "#00af87", 37: "#00afaf", 38: "#00afd7", 39: "#00afff", + \ 40: "#00d700", 41: "#00d75f", 42: "#00d787", 43: "#00d7af", + \ 44: "#00d7d7", 45: "#00d7ff", 46: "#00ff00", 47: "#00ff5f", + \ 48: "#00ff87", 49: "#00ffaf", 50: "#00ffd7", 51: "#00ffff", + \ 52: "#5f0000", 53: "#5f005f", 54: "#5f0087", 55: "#5f00af", + \ 56: "#5f00d7", 57: "#5f00ff", 58: "#5f5f00", 59: "#5f5f5f", + \ 60: "#5f5f87", 61: "#5f5faf", 62: "#5f5fd7", 63: "#5f5fff", + \ 64: "#5f8700" + \ }) + call extend(s:cterm_color, { + \ 65: "#5f875f", 66: "#5f8787", 67: "#5f87af", 68: "#5f87d7", + \ 69: "#5f87ff", 70: "#5faf00", 71: "#5faf5f", 72: "#5faf87", + \ 73: "#5fafaf", 74: "#5fafd7", 75: "#5fafff", 76: "#5fd700", + \ 77: "#5fd75f", 78: "#5fd787", 79: "#5fd7af", 80: "#5fd7d7", + \ 81: "#5fd7ff", 82: "#5fff00", 83: "#5fff5f", 84: "#5fff87", + \ 85: "#5fffaf", 86: "#5fffd7", 87: "#5fffff", 88: "#870000", + \ 89: "#87005f", 90: "#870087", 91: "#8700af", 92: "#8700d7", + \ 93: "#8700ff", 94: "#875f00", 95: "#875f5f", 96: "#875f87", + \ 97: "#875faf", 98: "#875fd7", 99: "#875fff", 100: "#878700", + \ 101: "#87875f", 102: "#878787", 103: "#8787af", 104: "#8787d7", + \ 105: "#8787ff", 106: "#87af00", 107: "#87af5f", 108: "#87af87", + \ 109: "#87afaf", 110: "#87afd7", 111: "#87afff", 112: "#87d700" + \ }) + call extend(s:cterm_color, { + \ 113: "#87d75f", 114: "#87d787", 115: "#87d7af", 116: "#87d7d7", + \ 117: "#87d7ff", 118: "#87ff00", 119: "#87ff5f", 120: "#87ff87", + \ 121: "#87ffaf", 122: "#87ffd7", 123: "#87ffff", 124: "#af0000", + \ 125: "#af005f", 126: "#af0087", 127: "#af00af", 128: "#af00d7", + \ 129: "#af00ff", 130: "#af5f00", 131: "#af5f5f", 132: "#af5f87", + \ 133: "#af5faf", 134: "#af5fd7", 135: "#af5fff", 136: "#af8700", + \ 137: "#af875f", 138: "#af8787", 139: "#af87af", 140: "#af87d7", + \ 141: "#af87ff", 142: "#afaf00", 143: "#afaf5f", 144: "#afaf87", + \ 145: "#afafaf", 146: "#afafd7", 147: "#afafff", 148: "#afd700", + \ 149: "#afd75f", 150: "#afd787", 151: "#afd7af", 152: "#afd7d7", + \ 153: "#afd7ff", 154: "#afff00", 155: "#afff5f", 156: "#afff87", + \ 157: "#afffaf", 158: "#afffd7" + \ }) + call extend(s:cterm_color, { + \ 159: "#afffff", 160: "#d70000", 161: "#d7005f", 162: "#d70087", + \ 163: "#d700af", 164: "#d700d7", 165: "#d700ff", 166: "#d75f00", + \ 167: "#d75f5f", 168: "#d75f87", 169: "#d75faf", 170: "#d75fd7", + \ 171: "#d75fff", 172: "#d78700", 173: "#d7875f", 174: "#d78787", + \ 175: "#d787af", 176: "#d787d7", 177: "#d787ff", 178: "#d7af00", + \ 179: "#d7af5f", 180: "#d7af87", 181: "#d7afaf", 182: "#d7afd7", + \ 183: "#d7afff", 184: "#d7d700", 185: "#d7d75f", 186: "#d7d787", + \ 187: "#d7d7af", 188: "#d7d7d7", 189: "#d7d7ff", 190: "#d7ff00", + \ 191: "#d7ff5f", 192: "#d7ff87", 193: "#d7ffaf", 194: "#d7ffd7", + \ 195: "#d7ffff", 196: "#ff0000", 197: "#ff005f", 198: "#ff0087", + \ 199: "#ff00af", 200: "#ff00d7", 201: "#ff00ff", 202: "#ff5f00", + \ 203: "#ff5f5f", 204: "#ff5f87" + \ }) + call extend(s:cterm_color, { + \ 205: "#ff5faf", 206: "#ff5fd7", 207: "#ff5fff", 208: "#ff8700", + \ 209: "#ff875f", 210: "#ff8787", 211: "#ff87af", 212: "#ff87d7", + \ 213: "#ff87ff", 214: "#ffaf00", 215: "#ffaf5f", 216: "#ffaf87", + \ 217: "#ffafaf", 218: "#ffafd7", 219: "#ffafff", 220: "#ffd700", + \ 221: "#ffd75f", 222: "#ffd787", 223: "#ffd7af", 224: "#ffd7d7", + \ 225: "#ffd7ff", 226: "#ffff00", 227: "#ffff5f", 228: "#ffff87", + \ 229: "#ffffaf", 230: "#ffffd7", 231: "#ffffff", 232: "#080808", + \ 233: "#121212", 234: "#1c1c1c", 235: "#262626", 236: "#303030", + \ 237: "#3a3a3a", 238: "#444444", 239: "#4e4e4e", 240: "#585858", + \ 241: "#626262", 242: "#6c6c6c", 243: "#767676", 244: "#808080", + \ 245: "#8a8a8a", 246: "#949494", 247: "#9e9e9e", 248: "#a8a8a8", + \ 249: "#b2b2b2", 250: "#bcbcbc", 251: "#c6c6c6", 252: "#d0d0d0", + \ 253: "#dadada", 254: "#e4e4e4", 255: "#eeeeee" + \ }) + endif + endif +endif + +" Return good color specification: in GUI no transformation is done, in +" terminal return RGB values of known colors and empty string for unknown +if s:whatterm == "gui" + function! s:HtmlColor(color) + return a:color + endfun +else + function! s:HtmlColor(color) + if has_key(s:cterm_color, a:color) + return s:cterm_color[a:color] + else + return "" + endif + endfun +endif + +" Find out the background and foreground color for use later +let s:fgc = s:HtmlColor(synIDattr(hlID("Normal")->synIDtrans(), "fg#", s:whatterm)) +let s:bgc = s:HtmlColor(synIDattr(hlID("Normal")->synIDtrans(), "bg#", s:whatterm)) +if s:fgc == "" + let s:fgc = ( &background == "dark" ? "#ffffff" : "#000000" ) +endif +if s:bgc == "" + let s:bgc = ( &background == "dark" ? "#000000" : "#ffffff" ) +endif + +if !s:settings.use_css + " Return opening HTML tag for given highlight id + function! s:HtmlOpening(id, extra_attrs) + let a = "" + let translated_ID = synIDtrans(a:id) + if synIDattr(translated_ID, "inverse") + " For inverse, we always must set both colors (and exchange them) + let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) + let a = a .. '' + let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) + let a = a .. '' + else + let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) + if x != "" + let a = a .. '' + elseif !empty(a:extra_attrs) + let a = a .. '' + endif + let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) + if x != "" | let a = a .. '' | endif + endif + if synIDattr(translated_ID, "bold") | let a = a .. "" | endif + if synIDattr(translated_ID, "italic") | let a = a .. "" | endif + if synIDattr(translated_ID, "underline") | let a = a .. "" | endif + return a + endfun + + " Return closing HTML tag for given highlight id + function! s:HtmlClosing(id, has_extra_attrs) + let a = "" + let translated_ID = synIDtrans(a:id) + if synIDattr(translated_ID, "underline") | let a = a .. "" | endif + if synIDattr(translated_ID, "italic") | let a = a .. "" | endif + if synIDattr(translated_ID, "bold") | let a = a .. "" | endif + if synIDattr(translated_ID, "inverse") + let a = a .. '' + else + let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) + if x != "" | let a = a .. '' | endif + let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) + if x != "" || a:has_extra_attrs | let a = a .. '' | endif + endif + return a + endfun +endif + +" Use a different function for formatting based on user options. This way we +" can avoid a lot of logic during the actual execution. +" +" Build the function line by line containing only what is needed for the options +" in use for maximum code sharing with minimal branch logic for greater speed. +" +" Note, 'exec' commands do not recognize line continuations, so must concatenate +" lines rather than continue them. +if s:settings.use_css + " save CSS to a list of rules to add to the output at the end of processing + + " first, get the style names we need + let s:wrapperfunc_lines = [] + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, make_unselectable, unformatted) + + let l:style_name = synIDattr(a:style_id, "name", s:whatterm) + ENDLET + if &diff + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + let l:diff_style_name = synIDattr(a:diff_style_id, "name", s:whatterm) + ENDLET + + " Add normal groups and diff groups to separate lists so we can order them to + " allow diff highlight to override normal highlight + + " if primary style IS a diff style, grab it from the diff cache instead + " (always succeeds because we pre-populate it) + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + + if a:style_id == s:DIFF_D_ID || a:style_id == s:DIFF_A_ID || a:style_id == s:DIFF_C_ID || a:style_id == s:DIFF_T_ID + let l:saved_style = get(s:diffstylelist,a:style_id) + else + ENDLET + endif + + " get primary style info from cache or build it on the fly if not found + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + let l:saved_style = get(s:stylelist,a:style_id) + if type(l:saved_style) == type(0) + unlet l:saved_style + let l:saved_style = s:CSS1(a:style_id) + if l:saved_style != "" + let l:saved_style = "." .. l:style_name .. " { " .. l:saved_style .. "}" + endif + let s:stylelist[a:style_id] = l:saved_style + endif + ENDLET + if &diff + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + endif + ENDLET + endif +" Ignore this comment, just bypassing a highlighting issue: if + + " Build the wrapper tags around the text. It turns out that caching these + " gives pretty much zero performance gain and adds a lot of logic. + + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + + if l:saved_style == "" && empty(a:extra_attrs) + ENDLET + if &diff + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + if a:diff_style_id <= 0 + ENDLET + endif + " no surroundings if neither primary nor diff style has any info + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + return a:text + ENDLET + if &diff + " no primary style, but diff style + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + else + return ''..a:text.."" + endif + ENDLET + endif + " Ignore this comment, just bypassing a highlighting issue: if + + " open tag for non-empty primary style + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + else + ENDLET + " non-empty primary style. handle either empty or non-empty diff style. + " + " separate the two classes by a space to apply them both if there is a diff + " style name, unless the primary style is empty, then just use the diff style + " name + let s:diffstyle = + \ (&diff ? '(a:diff_style_id <= 0 ? "" : " " .. l:diff_style_name)..' + \ : '') + if s:settings.prevent_copy == "" + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim eval ENDLET + return "'..a:text.."" + ENDLET + else + + " New method: use generated content in the CSS. The only thing needed here + " is a span with no content, with an attribute holding the desired text. + " + " Old method: use an element when text is unsectable. This is still + " used in conditional comments for Internet Explorer, where the new method + " doesn't work. + " + " Wrap the in a to allow fixing the stupid bug in some fonts + " which cause browsers to display a 1px gap between lines when these + " s have a background color (maybe not really a bug, this isn't + " well-defined) + " + " use strwidth, because we care only about how many character boxes are + " needed to size the input, we don't care how many characters (including + " separately counted composing chars, from strchars()) or bytes (from + " len())the string contains. strdisplaywidth() is not needed because none of + " the unselectable groups can contain tab characters (fold column, fold + " text, line number). + " + " Note, if maxlength property needs to be added in the future, it will need + " to use strchars(), because HTML specifies that the maxlength parameter + " uses the number of unique codepoints for its limit. + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim eval ENDLET + if a:make_unselectable + let return_span = "' : '>') + ENDLET + endif + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim eval ENDLET + return return_span..'' + else + return "'..a:text.."" + endif + ENDLET + endif + call add(s:wrapperfunc_lines, []) + let s:wrapperfunc_lines[-1] =<< trim ENDLET + endif + endfun + ENDLET +else + " Non-CSS method just needs the wrapper. + " + " Functions used to get opening/closing automatically return null strings if + " no styles exist. + if &diff + let s:wrapperfunc_lines =<< trim ENDLET + function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2) + if a:diff_style_id <= 0 + let l:diff_opening = s:HtmlOpening(a:diff_style_id, "") + let l:diff_closing = s:HtmlClosing(a:diff_style_id, 0) + else + let l:diff_opening = "" + let l:diff_closing = "" + endif + return s:HtmlOpening(a:style_id, a:extra_attrs)..l:diff_opening..a:text..l:diff_closing..s:HtmlClosing(a:style_id, !empty(a:extra_attrs)) + endfun + ENDLET + else + let s:wrapperfunc_lines =<< trim ENDLET + function! s:BuildStyleWrapper(style_id, diff_style_id, extra_attrs, text, unusedarg, unusedarg2) + return s:HtmlOpening(a:style_id, a:extra_attrs)..a:text..s:HtmlClosing(a:style_id, !empty(a:extra_attrs)) + endfun + ENDLET + endif +endif + +" create the function we built line by line above +exec join(flatten(s:wrapperfunc_lines), "\n") + +let s:diff_mode = &diff + +" Return HTML valid characters enclosed in a span of class style_name with +" unprintable characters expanded and double spaces replaced as necessary. +" +" TODO: eliminate unneeded logic like done for BuildStyleWrapper +function! s:HtmlFormat(text, style_id, diff_style_id, extra_attrs, make_unselectable) + " Replace unprintable characters + let unformatted = strtrans(a:text) + + let formatted = unformatted + + " Replace the reserved html characters + let formatted = substitute(formatted, '&', '\&', 'g') + let formatted = substitute(formatted, '<', '\<', 'g') + let formatted = substitute(formatted, '>', '\>', 'g') + let formatted = substitute(formatted, '"', '\"', 'g') + " ' is not valid in HTML but it is in XHTML, so just use the numeric + " reference for it instead. Needed because it could appear in quotes + " especially if unselectable regions is turned on. + let formatted = substitute(formatted, '"', '\'', 'g') + + " Replace a "form feed" character with HTML to do a page break + " TODO: need to prevent this in unselectable areas? Probably it should never + " BE in an unselectable area... + let formatted = substitute(formatted, "\x0c", '
', 'g') + + " Replace double spaces, leading spaces, and trailing spaces if needed + if ' ' != s:HtmlSpace + let formatted = substitute(formatted, ' ', s:HtmlSpace .. s:HtmlSpace, 'g') + let formatted = substitute(formatted, '^ ', s:HtmlSpace, 'g') + let formatted = substitute(formatted, ' \+$', s:HtmlSpace, 'g') + endif + + " Enclose in the correct format + return s:BuildStyleWrapper(a:style_id, a:diff_style_id, a:extra_attrs, formatted, a:make_unselectable, unformatted) +endfun + +" set up functions to call HtmlFormat in certain ways based on whether the +" element is supposed to be unselectable or not +if s:settings.prevent_copy =~# 'n' + if s:settings.number_lines + if s:settings.line_ids + function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) + if a:lnr > 0 + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'..(exists('g:html_diff_win_num') ? 'W'..g:html_diff_win_num : "")..'L'..a:lnr..s:settings.id_suffix..'" ', 1) + else + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) + endif + endfun + else + function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) + endfun + endif + elseif s:settings.line_ids + " if lines are not being numbered the only reason this function gets called + " is to put the line IDs on each line; "text" will be empty but lnr will + " always be non-zero, however we don't want to use the because that + " won't work as nice for empty text + function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'..(exists('g:html_diff_win_num') ? 'W'..g:html_diff_win_num : "")..'L'..a:lnr..s:settings.id_suffix..'" ', 0) + endfun + endif +else + if s:settings.line_ids + function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) + if a:lnr > 0 + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, 'id="'..(exists('g:html_diff_win_num') ? 'W'..g:html_diff_win_num : "")..'L'..a:lnr..s:settings.id_suffix..'" ', 0) + else + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) + endif + endfun + else + function! s:HtmlFormat_n(text, style_id, diff_style_id, lnr) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) + endfun + endif +endif +if s:settings.prevent_copy =~# 'd' + function! s:HtmlFormat_d(text, style_id, diff_style_id) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) + endfun +else + function! s:HtmlFormat_d(text, style_id, diff_style_id) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) + endfun +endif +if s:settings.prevent_copy =~# 'f' + if s:settings.use_input_for_pc ==# 'none' + " Simply space-pad to the desired width inside the generated content (note + " that the FoldColumn definition includes a whitespace:pre rule) + function! s:FoldColumn_build(char, len, numfill, char2, class, click) + return "" + endfun + function! s:FoldColumn_fill() + return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 1) + endfun + else + " Note the elements for fill spaces will have a single space for + " content, to allow active cursor CSS selection to work. + " + " Wrap the whole thing in a span for the 1px padding workaround for gaps. + " + " Build the function line by line containing only what is needed for the + " options in use for maximum code sharing with minimal branch logic for + " greater speed. + " + " Note, 'exec' commands do not recognize line continuations, so must + " concatenate lines rather than continue them. + let s:build_fun_lines = [] + call add(s:build_fun_lines, []) + let s:build_fun_lines[-1] =<< trim ENDLET + function! s:FoldColumn_build(char, len, numfill, char2, class, click) + let l:input_open = "" : "'>") + let l:return_span = "" + let l:return_span ..= l:input_open..l:common_attrs..repeat(a:char, a:len)..(a:char2) + let l:return_span ..= l:input_close + ENDLET + if s:settings.use_input_for_pc ==# 'fallback' + call add(s:build_fun_lines, []) + let s:build_fun_lines[-1] =<< trim ENDLET + let l:return_span ..= "". + \ repeat(a:char, a:len)..a:char2..repeat(' ', a:numfill). + \ "" + endfun + function! s:FoldColumn_fill() + return s:HtmlFormat(repeat(' ', s:foldcolumn), s:FOLD_C_ID, 0, "", 0) + endfun +endif +if s:settings.prevent_copy =~# 't' + " put an extra empty span at the end for dynamic folds, so the linebreak can + " be surrounded. Otherwise do it as normal. + " + " TODO: isn't there a better way to do this, than placing it here and using a + " substitute later? + if s:settings.dynamic_folds + function! s:HtmlFormat_t(text, style_id, diff_style_id) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) . + \ s:HtmlFormat("", a:style_id, 0, "", 0) + endfun + else + function! s:HtmlFormat_t(text, style_id, diff_style_id) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 1) + endfun + endif +else + function! s:HtmlFormat_t(text, style_id, diff_style_id) + return s:HtmlFormat(a:text, a:style_id, a:diff_style_id, "", 0) + endfun +endif + +" Return CSS style describing given highlight id (can be empty) +function! s:CSS1(id) + let a = "" + let translated_ID = synIDtrans(a:id) + if synIDattr(translated_ID, "inverse") + " For inverse, we always must set both colors (and exchange them) + let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) + let a = a .. "color: " .. ( x != "" ? x : s:bgc ) .. "; " + let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) + let a = a .. "background-color: " .. ( x != "" ? x : s:fgc ) .. "; " + else + let x = s:HtmlColor(synIDattr(translated_ID, "fg#", s:whatterm)) + if x != "" | let a = a .. "color: " .. x .. "; " | endif + let x = s:HtmlColor(synIDattr(translated_ID, "bg#", s:whatterm)) + if x != "" + let a = a .. "background-color: " .. x .. "; " + " stupid hack because almost every browser seems to have at least one font + " which shows 1px gaps between lines which have background + let a = a .. "padding-bottom: 1px; " + elseif (translated_ID == s:FOLDED_ID || translated_ID == s:LINENR_ID || translated_ID == s:FOLD_C_ID) && !empty(s:settings.prevent_copy) + " input elements default to a different color than the rest of the page + let a = a .. "background-color: " .. s:bgc .. "; " + endif + endif + if synIDattr(translated_ID, "bold") | let a = a .. "font-weight: bold; " | endif + if synIDattr(translated_ID, "italic") | let a = a .. "font-style: italic; " | endif + if synIDattr(translated_ID, "underline") | let a = a .. "text-decoration: underline; " | endif + return a +endfun + +if s:settings.dynamic_folds + " compares two folds as stored in our list of folds + " A fold is "less" than another if it starts at an earlier line number, + " or ends at a later line number, ties broken by fold level + function! s:FoldCompare(f1, f2) + if a:f1.firstline != a:f2.firstline + " put it before if it starts earlier + return a:f1.firstline - a:f2.firstline + elseif a:f1.lastline != a:f2.lastline + " put it before if it ends later + return a:f2.lastline - a:f1.lastline + else + " if folds begin and end on the same lines, put lowest fold level first + return a:f1.level - a:f2.level + endif + endfunction + +endif + + +" Set some options to make it work faster. +" Don't report changes for :substitute, there will be many of them. +" Don't change other windows; turn off scroll bind temporarily +let s:old_title = &title +let s:old_icon = &icon +let s:old_et = &l:et +let s:old_bind = &l:scrollbind +let s:old_report = &report +let s:old_search = @/ +let s:old_more = &more +set notitle noicon +setlocal et +set nomore +set report=1000000 +setlocal noscrollbind + +if exists(':ownsyntax') && exists('w:current_syntax') + let s:current_syntax = w:current_syntax +elseif exists('b:current_syntax') + let s:current_syntax = b:current_syntax +else + let s:current_syntax = 'none' +endif + +if s:current_syntax == '' + let s:current_syntax = 'none' +endif + +" If the user is sourcing this script directly then the plugin version isn't +" known because the main plugin script didn't load. In the usual case where the +" user still has the full Vim runtime installed, or has this full plugin +" installed in a package or something, then we can extract the version from the +" main plugin file at it's usual spot relative to this file. Otherwise the user +" is assembling their runtime piecemeal and we have no idea what versions of +" other files may be present so don't even try to make a guess or assume the +" presence of other specific files with specific meaning. +" +" We don't want to actually source the main plugin file here because the user +" may have a good reason not to (e.g. they define their own TOhtml command or +" something). +" +" If this seems way too complicated and convoluted, it is. Probably I should +" have put the version information in the autoload file from the start. But the +" version has been in the global variable for so long that changing it could +" break a lot of user scripts. +if exists("g:loaded_2html_plugin") + let s:pluginversion = g:loaded_2html_plugin +else + if !exists("g:unloaded_tohtml_plugin") + let s:main_plugin_path = expand(":p:h:h").."/plugin/tohtml.vim" + if filereadable(s:main_plugin_path) + let s:lines = readfile(s:main_plugin_path, "", 20) + call filter(s:lines, 'v:val =~ "loaded_2html_plugin = "') + if empty(s:lines) + let g:unloaded_tohtml_plugin = "unknown" + else + let g:unloaded_tohtml_plugin = substitute(s:lines[0], '.*loaded_2html_plugin = \([''"]\)\(\%(\1\@!.\)\+\)\1', '\2', '') + endif + unlet s:lines + else + let g:unloaded_tohtml_plugin = "unknown" + endif + unlet s:main_plugin_path + endif + let s:pluginversion = g:unloaded_tohtml_plugin +endif + +" Split window to create a buffer with the HTML file. +let s:orgbufnr = winbufnr(0) +let s:origwin_stl = &l:stl +if expand("%") == "" + if exists('g:html_diff_win_num') + exec 'new Untitled_win'..g:html_diff_win_num..'.'.(s:settings.use_xhtml ? 'xhtml' : 'html') + else + exec 'new Untitled.'..(s:settings.use_xhtml ? 'xhtml' : 'html') + endif +else + exec 'new %.'..(s:settings.use_xhtml ? 'xhtml' : 'html') +endif + +" Resize the new window to very small in order to make it draw faster +let s:old_winheight = winheight(0) +let s:old_winfixheight = &l:winfixheight +if s:old_winheight > 2 + resize 1 " leave enough room to view one line at a time + norm! G + norm! zt +endif +setlocal winfixheight + +let s:newwin_stl = &l:stl + +" on the new window, set the least time-consuming fold method +let s:old_fen = &foldenable +setlocal foldmethod=manual +setlocal nofoldenable + +let s:newwin = winnr() +let s:orgwin = bufwinnr(s:orgbufnr) + +setlocal modifiable +%d +let s:old_paste = &paste +set paste +let s:old_magic = &magic +set magic + +" set the fileencoding to match the charset we'll be using +let &l:fileencoding=s:settings.vim_encoding + +" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte +" order mark is highly recommend on the web when using multibyte encodings. But, +" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim +" determine when it is actually inserted. +if s:settings.vim_encoding == 'utf-8' + setlocal nobomb +else + setlocal bomb +endif + +let s:lines = [] + +if s:settings.use_xhtml + if s:settings.encoding != "" + call add(s:lines, "") + else + call add(s:lines, "") + endif + let s:tag_close = ' />' +else + let s:tag_close = '>' +endif + +let s:HtmlSpace = ' ' +let s:LeadingSpace = ' ' +let s:HtmlEndline = '' +if s:settings.no_pre + let s:HtmlEndline = '", + \ ""]) + " include encoding as close to the top as possible, but only if not already + " contained in XML information (to avoid haggling over content type) + if s:settings.encoding != "" && !s:settings.use_xhtml + if s:html5 + call add(s:lines, '"..expand("%:p:~")..""), + \ ("", + \ s:settings.use_xhtml ? "" : "", + \] + else + " if we aren't doing hover_unfold, use CSS 1 only + call extend(s:lines, [ + \ ".FoldColumn { text-decoration: none; white-space: pre; }", + \ ".open-fold .fulltext { display: inline; }", + \ ".open-fold span.Folded { display: none; }", + \ ".open-fold .toggle-open { display: none; }", + \ ".open-fold .toggle-closed { display: inline; }", + \ "", + \ ".closed-fold .fulltext { display: none; }", + \ ".closed-fold span.Folded { display: inline; }", + \ ".closed-fold .toggle-open { display: inline; }", + \ ".closed-fold .toggle-closed { display: none; }", + \]) + endif + endif + " else we aren't doing any dynamic folding, no need for any special rules + + call extend(s:lines, [ + \ s:settings.use_xhtml ? "" : '-->', + \ "", + \]) + call extend(s:lines, s:ieonly) + unlet s:ieonly + endif + + let s:uses_script = s:settings.dynamic_folds || s:settings.line_ids + + " insert script tag if needed + if s:uses_script + call extend(s:lines, [ + \ "", + \ "", + \ s:settings.use_xhtml ? '//' : '-->', + \ "" + \ ]) + endif + + call extend(s:lines, ["", + \ ""]) +endif + +if s:settings.no_pre + " if we're not using CSS we use a font tag which can't have a div inside + if s:settings.use_css + call extend(s:lines, ["
"]) + endif +else + call extend(s:lines, ["
"])
+endif
+
+exe s:orgwin .. "wincmd w"
+
+" caches of style data
+" initialize to include line numbers if using them
+if s:settings.number_lines
+  let s:stylelist = { s:LINENR_ID : ".LineNr { " .. s:CSS1( s:LINENR_ID ) .. "}" }
+else
+  let s:stylelist = {}
+endif
+let s:diffstylelist = {
+      \   s:DIFF_A_ID : ".DiffAdd { " .. s:CSS1( s:DIFF_A_ID ) .. "}",
+      \   s:DIFF_C_ID : ".DiffChange { " .. s:CSS1( s:DIFF_C_ID ) .. "}",
+      \   s:DIFF_D_ID : ".DiffDelete { " .. s:CSS1( s:DIFF_D_ID ) .. "}",
+      \   s:DIFF_T_ID : ".DiffText { " .. s:CSS1( s:DIFF_T_ID ) .. "}"
+      \ }
+
+" set up progress bar in the status line
+if !s:settings.no_progress
+  " ProgressBar Indicator
+  let s:progressbar={}
+
+  " Progressbar specific functions
+
+  func! s:SetProgbarColor()
+    if hlID("TOhtmlProgress") != 0
+      hi! link TOhtmlProgress_auto TOhtmlProgress
+    elseif hlID("TOhtmlProgress_auto")==0 ||
+       \ !exists("s:last_colors_name") || !exists("g:colors_name") ||
+       \ g:colors_name != s:last_colors_name
+      let s:last_colors_name = exists("g:colors_name") ? g:colors_name : "none"
+
+      let l:diffatr = synIDattr(hlID("DiffDelete")->synIDtrans(), "reverse", s:whatterm) ? "fg#" : "bg#"
+      let l:stlatr = synIDattr(hlID("StatusLine")->synIDtrans(), "reverse", s:whatterm) ? "fg#" : "bg#"
+
+      let l:progbar_color = synIDattr(hlID("DiffDelete")->synIDtrans(), l:diffatr, s:whatterm)
+      let l:stl_color = synIDattr(hlID("StatusLine")->synIDtrans(), l:stlatr, s:whatterm)
+
+      if "" == l:progbar_color
+	let l:progbar_color = synIDattr(hlID("DiffDelete")->synIDtrans(), "reverse", s:whatterm) ? s:fgc : s:bgc
+      endif
+      if "" == l:stl_color
+	let l:stl_color = synIDattr(hlID("StatusLine")->synIDtrans(), "reverse", s:whatterm) ? s:fgc : s:bgc
+      endif
+
+      if l:progbar_color == l:stl_color
+	if s:whatterm == 'cterm'
+	  if l:progbar_color >= (&t_Co/2)
+	    let l:progbar_color-=1
+	  else
+	    let l:progbar_color+=1
+	  endif
+	else
+	  let l:rgb = map(matchlist(l:progbar_color, '#\zs\x\x\ze\(\x\x\)\(\x\x\)')[:2], 'str2nr(v:val, 16)')
+	  let l:avg = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3
+	  if l:avg >= 128
+	    let l:avg_new = l:avg
+	    while l:avg - l:avg_new < 0x15
+	      let l:rgb = map(l:rgb, 'v:val * 3 / 4')
+	      let l:avg_new = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3
+	    endwhile
+	  else
+	    let l:avg_new = l:avg
+	    while l:avg_new - l:avg < 0x15
+	      let l:rgb = map(l:rgb, 'min([max([v:val, 4]) * 5 / 4, 255])')
+	      let l:avg_new = (l:rgb[0] + l:rgb[1] + l:rgb[2])/3
+	    endwhile
+	  endif
+	  let l:progbar_color = printf("#%02x%02x%02x", l:rgb[0], l:rgb[1], l:rgb[2])
+	endif
+	echomsg "diff detected progbar color set to" l:progbar_color
+      endif
+      exe "hi TOhtmlProgress_auto" s:whatterm.."bg="..l:progbar_color
+    endif
+  endfun
+
+  func! s:ProgressBar(title, max_value, winnr)
+    let pgb=copy(s:progressbar)
+    let pgb.title = a:title..' '
+    let pgb.max_value = a:max_value
+    let pgb.winnr = a:winnr
+    let pgb.cur_value = 0
+
+    let pgb.items = { 'title'   : { 'color' : 'Statusline' },
+	  \'bar'     : { 'color' : 'Statusline' , 'fillcolor' : 'TOhtmlProgress_auto' , 'bg' : 'Statusline' } ,
+	  \'counter' : { 'color' : 'Statusline' } }
+    let pgb.last_value = 0
+    let pgb.needs_redraw = 0
+    " Note that you must use len(split) instead of len() if you want to use 
+    " unicode in title.
+    "
+    " Subtract 3 for spacing around the title.
+    " Subtract 4 for the percentage display.
+    " Subtract 2 for spacing before this.
+    " Subtract 2 more for the '|' on either side of the progress bar
+    let pgb.subtractedlen=len(split(pgb.title, '\zs'))+3+4+2+2
+    let pgb.max_len = 0
+    set laststatus=2
+    return pgb
+  endfun
+
+  " Function: progressbar.calculate_ticks() {{{1
+  func! s:progressbar.calculate_ticks(pb_len)
+    if a:pb_len<=0
+      let pb_len = 100
+    else
+      let pb_len = a:pb_len
+    endif
+    let self.progress_ticks = map(range(pb_len+1), "v:val * self.max_value / pb_len")
+  endfun
+
+  "Function: progressbar.paint()
+  func! s:progressbar.paint()
+    " Recalculate widths.
+    let max_len = winwidth(self.winnr)
+    let pb_len = 0
+    " always true on first call because of initial value of self.max_len
+    if max_len != self.max_len
+      let self.max_len = max_len
+
+      " Progressbar length
+      let pb_len = max_len - self.subtractedlen
+
+      call self.calculate_ticks(pb_len)
+
+      let self.needs_redraw = 1
+      let cur_value = 0
+      let self.pb_len = pb_len
+    else
+      " start searching at the last found index to make the search for the
+      " appropriate tick value normally take 0 or 1 comparisons
+      let cur_value = self.last_value
+      let pb_len = self.pb_len
+    endif
+
+    let cur_val_max = pb_len > 0 ? pb_len : 100
+
+    " find the current progress bar position based on precalculated thresholds
+    while cur_value < cur_val_max && self.cur_value > self.progress_ticks[cur_value]
+      let cur_value += 1
+    endwhile
+
+    " update progress bar
+    if self.last_value != cur_value || self.needs_redraw || self.cur_value == self.max_value
+      let self.needs_redraw = 1
+      let self.last_value = cur_value
+
+      let t_color  = self.items.title.color
+      let b_fcolor = self.items.bar.fillcolor
+      let b_color  = self.items.bar.color
+      let c_color  = self.items.counter.color
+
+      let stl =  "%#".t_color."#%-( ".self.title." %)".
+	    \"%#".b_color."#".
+	    \(pb_len>0 ?
+	    \	('|%#'.b_fcolor."#%-(".repeat(" ",cur_value)."%)".
+	    \	 '%#'.b_color."#".repeat(" ",pb_len-cur_value)."|"):
+	    \	('')).
+	    \"%=%#".c_color."#%( ".printf("%3.d ",100*self.cur_value/self.max_value)."%% %)"
+      call setwinvar(self.winnr, '&stl', stl)
+    endif
+  endfun
+
+  func! s:progressbar.incr( ... )
+    let self.cur_value += (a:0 ? a:1 : 1)
+    " if we were making a general-purpose progress bar, we'd need to limit to a
+    " lower limit as well, but since we always increment with a positive value
+    " in this script, we only need limit the upper value
+    let self.cur_value = (self.cur_value > self.max_value ? self.max_value : self.cur_value)
+    call self.paint()
+  endfun
+  " }}}
+  if s:settings.dynamic_folds
+    " to process folds we make two passes through each line
+    let s:pgb = s:ProgressBar("Processing folds:", line('$')*2, s:orgwin)
+  endif
+
+  call s:SetProgbarColor()
+endif
+
+let s:build_fun_lines = []
+call add(s:build_fun_lines, [])
+let s:build_fun_lines[-1] =<< trim ENDLET
+    func! s:Add_diff_fill(lnum)
+      let l:filler = diff_filler(a:lnum)
+      if l:filler > 0
+	let l:to_insert = l:filler
+	while l:to_insert > 0
+	  let l:new = repeat(s:difffillchar, 3)
+
+	  if l:to_insert > 2 && l:to_insert < l:filler && !s:settings.whole_filler
+	    let l:new = l:new .. " " .. l:filler .. " inserted lines "
+	    let l:to_insert = 2
+	  endif
+ENDLET
+call add(s:build_fun_lines, [])
+if !s:settings.no_pre
+  let s:build_fun_lines[-1] =<< trim ENDLET
+	  " HTML line wrapping is off--go ahead and fill to the margin
+	  " TODO: what about when CSS wrapping is turned on?
+	  let l:new = l:new .. repeat(s:difffillchar, &columns - strlen(l:new) - s:margin)
+  ENDLET
+else
+  let s:build_fun_lines[-1] =<< trim ENDLET
+	  let l:new = l:new .. repeat(s:difffillchar, 3)
+  ENDLET
+endif
+call add(s:build_fun_lines, [])
+let s:build_fun_lines[-1] =<< trim ENDLET
+	let l:new = s:HtmlFormat_d(l:new, s:DIFF_D_ID, 0)
+ENDLET
+if s:settings.number_lines
+  call add(s:build_fun_lines, [])
+  let s:build_fun_lines[-1] =<< trim ENDLET
+	  " Indent if line numbering is on. Indent gets style of line number
+	  " column.
+	  let l:new = s:HtmlFormat_n(repeat(' ', s:margin), s:LINENR_ID, 0, 0) .. l:new
+  ENDLET
+endif
+if s:settings.dynamic_folds && !s:settings.no_foldcolumn 
+  call add(s:build_fun_lines, [])
+  let s:build_fun_lines[-1] =<< trim ENDLET
+	  if s:foldcolumn > 0
+	    " Indent for foldcolumn if there is one. Assume it's empty, there should
+	    " not be a fold for deleted lines in diff mode.
+	    let l:new = s:FoldColumn_fill() .. l:new
+	  endif
+  ENDLET
+endif
+" Ignore this comment, just bypassing a highlighting issue: if
+call add(s:build_fun_lines, [])
+let s:build_fun_lines[-1] =<< trim ENDLET
+	call add(s:lines, l:new..s:HtmlEndline)
+	let l:to_insert = l:to_insert - 1
+      endwhile
+    endif
+  endfun
+ENDLET
+exec join(flatten(s:build_fun_lines), "\n")
+
+" First do some preprocessing for dynamic folding. Do this for the entire file
+" so we don't accidentally start within a closed fold or something.
+let s:allfolds = []
+
+if s:settings.dynamic_folds
+  let s:lnum = 1
+  let s:end = line('$')
+  " save the fold text and set it to the default so we can find fold levels
+  let s:foldtext_save = &foldtext
+  setlocal foldtext&
+
+  " we will set the foldcolumn in the html to the greater of the maximum fold
+  " level and the current foldcolumn setting
+  let s:foldcolumn = &foldcolumn
+
+  " get all info needed to describe currently closed folds
+  while s:lnum <= s:end
+    if foldclosed(s:lnum) == s:lnum
+      " default fold text has '+-' and then a number of dashes equal to fold
+      " level, so subtract 2 from index of first non-dash after the dashes
+      " in order to get the fold level of the current fold
+      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
+      " store fold info for later use
+      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
+      call add(s:allfolds, s:newfold)
+      " open the fold so we can find any contained folds
+      execute s:lnum.."foldopen"
+    else
+      if !s:settings.no_progress
+	call s:pgb.incr()
+	if s:pgb.needs_redraw
+	  redrawstatus
+	  let s:pgb.needs_redraw = 0
+	endif
+      endif
+      let s:lnum = s:lnum + 1
+    endif
+  endwhile
+
+  " close all folds to get info for originally open folds
+  silent! %foldclose!
+  let s:lnum = 1
+
+  " the originally open folds will be all folds we encounter that aren't
+  " already in the list of closed folds
+  while s:lnum <= s:end
+    if foldclosed(s:lnum) == s:lnum
+      " default fold text has '+-' and then a number of dashes equal to fold
+      " level, so subtract 2 from index of first non-dash after the dashes
+      " in order to get the fold level of the current fold
+      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
+      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
+      " only add the fold if we don't already have it
+      if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
+	let s:newfold.type = "open-fold"
+	call add(s:allfolds, s:newfold)
+      endif
+      " open the fold so we can find any contained folds
+      execute s:lnum.."foldopen"
+    else
+      if !s:settings.no_progress
+	call s:pgb.incr()
+	if s:pgb.needs_redraw
+	  redrawstatus
+	  let s:pgb.needs_redraw = 0
+	endif
+      endif
+      let s:lnum = s:lnum + 1
+    endif
+  endwhile
+
+  " sort the folds so that we only ever need to look at the first item in the
+  " list of folds
+  call sort(s:allfolds, "s:FoldCompare")
+
+  let &l:foldtext = s:foldtext_save
+  unlet s:foldtext_save
+
+  " close all folds again so we can get the fold text as we go
+  silent! %foldclose!
+
+  " Go through and remove folds we don't need to (or cannot) process in the
+  " current conversion range
+  "
+  " If a fold is removed which contains other folds, which are included, we need
+  " to adjust the level of the included folds as used by the conversion logic
+  " (avoiding special cases is good)
+  "
+  " Note any time we remove a fold, either all of the included folds are in it,
+  " or none of them, because we only remove a fold if neither its start nor its
+  " end are within the conversion range.
+  let leveladjust = 0
+  for afold in s:allfolds
+    let removed = 0
+    if exists("g:html_start_line") && exists("g:html_end_line")
+      if afold.firstline < g:html_start_line
+	if afold.lastline <= g:html_end_line && afold.lastline >= g:html_start_line
+	  " if a fold starts before the range to convert but stops within the
+	  " range, we need to include it. Make it start on the first converted
+	  " line.
+	  let afold.firstline = g:html_start_line
+	else
+	  " if the fold lies outside the range or the start and stop enclose
+	  " the entire range, don't bother parsing it
+	  call remove(s:allfolds, index(s:allfolds, afold))
+	  let removed = 1
+	  if afold.lastline > g:html_end_line
+	    let leveladjust += 1
+	  endif
+	endif
+      elseif afold.firstline > g:html_end_line
+	" If the entire fold lies outside the range we need to remove it.
+	call remove(s:allfolds, index(s:allfolds, afold))
+	let removed = 1
+      endif
+    elseif exists("g:html_start_line")
+      if afold.firstline < g:html_start_line
+	" if there is no last line, but there is a first line, the end of the
+	" fold will always lie within the region of interest, so keep it
+	let afold.firstline = g:html_start_line
+      endif
+    elseif exists("g:html_end_line")
+      " if there is no first line we default to the first line in the buffer so
+      " the fold start will always be included if the fold itself is included.
+      " If however the entire fold lies outside the range we need to remove it.
+      if afold.firstline > g:html_end_line
+	call remove(s:allfolds, index(s:allfolds, afold))
+	let removed = 1
+      endif
+    endif
+    if !removed
+      let afold.level -= leveladjust
+      if afold.level+1 > s:foldcolumn
+	let s:foldcolumn = afold.level+1
+      endif
+    endif
+  endfor
+
+  " if we've removed folds containing the conversion range from processing,
+  " getting foldtext as we go won't know to open the removed folds, so the
+  " foldtext would be wrong; open them now.
+  "
+  " Note that only when a start and an end line is specified will a fold
+  " containing the current range ever be removed.
+  while leveladjust > 0
+    exe g:html_start_line.."foldopen"
+    let leveladjust -= 1
+  endwhile
+endif
+
+" Now loop over all lines in the original text to convert to html.
+" Use html_start_line and html_end_line if they are set.
+if exists("g:html_start_line")
+  let s:lnum = html_start_line
+  if s:lnum < 1 || s:lnum > line("$")
+    let s:lnum = 1
+  endif
+else
+  let s:lnum = 1
+endif
+if exists("g:html_end_line")
+  let s:end = html_end_line
+  if s:end < s:lnum || s:end > line("$")
+    let s:end = line("$")
+  endif
+else
+  let s:end = line("$")
+endif
+
+" stack to keep track of all the folds containing the current line
+let s:foldstack = []
+
+if !s:settings.no_progress
+  let s:pgb = s:ProgressBar("Processing lines:", s:end - s:lnum + 1, s:orgwin)
+endif
+
+if s:settings.number_lines
+  let s:margin = strlen(s:end) + 1
+else
+  let s:margin = 0
+endif
+
+if has('folding') && !s:settings.ignore_folding
+  let s:foldfillchar = &fillchars[matchend(&fillchars, 'fold:')]
+  if s:foldfillchar == ''
+    let s:foldfillchar = '-'
+  endif
+endif
+let s:difffillchar = &fillchars[matchend(&fillchars, 'diff:')]
+if s:difffillchar == ''
+  let s:difffillchar = '-'
+endif
+
+let s:foldId = 0
+
+if !s:settings.expand_tabs
+  " If keeping tabs, add them to printable characters so we keep them when
+  " formatting text (strtrans() doesn't replace printable chars)
+  let s:old_isprint = &isprint
+  setlocal isprint+=9
+endif
+
+while s:lnum <= s:end
+
+  " If there are filler lines for diff mode, show these above the line.
+  call s:Add_diff_fill(s:lnum)
+
+  " Start the line with the line number.
+  if s:settings.number_lines
+    let s:numcol = repeat(' ', s:margin - 1 - strlen(s:lnum)) .. s:lnum .. ' '
+  endif
+
+  let s:new = ""
+
+  if has('folding') && !s:settings.ignore_folding && foldclosed(s:lnum) > -1 && !s:settings.dynamic_folds
+    "
+    " This is the beginning of a folded block (with no dynamic folding)
+    let s:new = foldtextresult(s:lnum)
+    if !s:settings.no_pre
+      " HTML line wrapping is off--go ahead and fill to the margin
+      let s:new = s:new .. repeat(s:foldfillchar, &columns - strlen(s:new))
+    endif
+
+    " put numcol in a separate group for sake of unselectable text
+    let s:new = (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, s:lnum): "") .. s:HtmlFormat_t(s:new, s:FOLDED_ID, 0)
+
+    " Skip to the end of the fold
+    let s:new_lnum = foldclosedend(s:lnum)
+
+    if !s:settings.no_progress
+      call s:pgb.incr(s:new_lnum - s:lnum)
+    endif
+
+    let s:lnum = s:new_lnum
+
+  else
+    "
+    " A line that is not folded, or doing dynamic folding.
+    "
+    let s:line = getline(s:lnum)
+    let s:len = strlen(s:line)
+
+    if s:settings.dynamic_folds
+      " First insert a closing for any open folds that end on this line
+      while !empty(s:foldstack) && get(s:foldstack,0).lastline == s:lnum-1
+	let s:new = s:new..""
+	call remove(s:foldstack, 0)
+      endwhile
+
+      " Now insert an opening for any new folds that start on this line
+      let s:firstfold = 1
+      while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
+	let s:foldId = s:foldId + 1
+	let s:new ..= ""
+
+
+	" Unless disabled, add a fold column for the opening line of a fold.
+	"
+	" Note that dynamic folds require using css so we just use css to take
+	" care of the leading spaces rather than using   in the case of
+	" html_no_pre to make it easier
+	if !s:settings.no_foldcolumn
+	  " add fold column that can open the new fold
+	  if s:allfolds[0].level > 1 && s:firstfold
+	    let s:new = s:new .. s:FoldColumn_build('|', s:allfolds[0].level - 1, 0, "",
+		  \ 'toggle-open FoldColumn','javascript:toggleFold("fold'..s:foldstack[0].id..s:settings.id_suffix..'");')
+	  endif
+	  " add the filler spaces separately from the '+' char so that it can be
+	  " shown/hidden separately during a hover unfold
+	  let s:new = s:new .. s:FoldColumn_build("+", 1, 0, "",
+		\ 'toggle-open FoldColumn', 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");')
+	  " If this is not the last fold we're opening on this line, we need
+	  " to keep the filler spaces hidden if the fold is opened by mouse
+	  " hover. If it is the last fold to open in the line, we shouldn't hide
+	  " them, so don't apply the toggle-filler class.
+	  let s:new = s:new .. s:FoldColumn_build(" ", 1, s:foldcolumn - s:allfolds[0].level - 1, "",
+		\ 'toggle-open FoldColumn'.. (get(s:allfolds, 1, {'firstline': 0}).firstline == s:lnum ?" toggle-filler" :""),
+		\ 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");')
+
+	  " add fold column that can close the new fold
+	  " only add extra blank space if we aren't opening another fold on the
+	  " same line
+	  if get(s:allfolds, 1, {'firstline': 0}).firstline != s:lnum
+	    let s:extra_space = s:foldcolumn - s:allfolds[0].level
+	  else
+	    let s:extra_space = 0
+	  endif
+	  if s:firstfold
+	    " the first fold in a line has '|' characters from folds opened in
+	    " previous lines, before the '-' for this fold
+	    let s:new ..= s:FoldColumn_build('|', s:allfolds[0].level - 1, s:extra_space, '-',
+		  \ 'toggle-closed FoldColumn', 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");')
+	  else
+	    " any subsequent folds in the line only add a single '-'
+	    let s:new = s:new .. s:FoldColumn_build("-", 1, s:extra_space, "",
+		  \ 'toggle-closed FoldColumn', 'javascript:toggleFold("fold'..s:foldId..s:settings.id_suffix..'");')
+	  endif
+	  let s:firstfold = 0
+	endif
+
+	" Add fold text, moving the span ending to the next line so collapsing
+	" of folds works correctly.
+	" Put numcol in a separate group for sake of unselectable text.
+	let s:new = s:new .. (s:settings.number_lines ? s:HtmlFormat_n(s:numcol, s:FOLDED_ID, 0, 0) : "") .. substitute(s:HtmlFormat_t(foldtextresult(s:lnum), s:FOLDED_ID, 0), '', s:HtmlEndline..'\n\0', '')
+	let s:new = s:new .. ""
+
+	" open the fold now that we have the fold text to allow retrieval of
+	" fold text for subsequent folds
+	execute s:lnum.."foldopen"
+	call insert(s:foldstack, remove(s:allfolds,0))
+	let s:foldstack[0].id = s:foldId
+      endwhile
+
+      " Unless disabled, add a fold column for other lines.
+      "
+      " Note that dynamic folds require using css so we just use css to take
+      " care of the leading spaces rather than using   in the case of
+      " html_no_pre to make it easier
+      if !s:settings.no_foldcolumn
+	if empty(s:foldstack)
+	  " add the empty foldcolumn for unfolded lines if there is a fold
+	  " column at all
+	  if s:foldcolumn > 0
+	    let s:new = s:new .. s:FoldColumn_fill()
+	  endif
+	else
+	  " add the fold column for folds not on the opening line
+	  if get(s:foldstack, 0).firstline < s:lnum
+	    let s:new = s:new .. s:FoldColumn_build('|', s:foldstack[0].level, s:foldcolumn - s:foldstack[0].level, "",
+		  \ 'FoldColumn', 'javascript:toggleFold("fold'..s:foldstack[0].id..s:settings.id_suffix..'");')
+	  endif
+	endif
+      endif
+    endif
+
+    " Now continue with the unfolded line text
+    if s:settings.number_lines
+      let s:new = s:new .. s:HtmlFormat_n(s:numcol, s:LINENR_ID, 0, s:lnum)
+    elseif s:settings.line_ids
+      let s:new = s:new .. s:HtmlFormat_n("", s:LINENR_ID, 0, s:lnum)
+    endif
+
+    " Get the diff attribute, if any.
+    let s:diffattr = diff_hlID(s:lnum, 1)
+
+    " initialize conceal info to act like not concealed, just in case
+    let s:concealinfo = [0, '']
+
+    " Loop over each character in the line
+    let s:col = 1
+
+    " most of the time we won't use the diff_id, initialize to zero
+    let s:diff_id = 0
+
+    while s:col <= s:len || (s:col == 1 && s:diffattr)
+      let s:startcol = s:col " The start column for processing text
+      if !s:settings.ignore_conceal && has('conceal')
+	let s:concealinfo = synconcealed(s:lnum, s:col)
+      endif
+      if !s:settings.ignore_conceal && s:concealinfo[0]
+	let s:col = s:col + 1
+	" Speed loop (it's small - that's the trick)
+	" Go along till we find a change in the match sequence number (ending
+	" the specific concealed region) or until there are no more concealed
+	" characters.
+	while s:col <= s:len && s:concealinfo == synconcealed(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
+      elseif s:diffattr
+	let s:diff_id = diff_hlID(s:lnum, s:col)
+	let s:id = synID(s:lnum, s:col, 1)
+	let s:col = s:col + 1
+	" Speed loop (it's small - that's the trick)
+	" Go along till we find a change in hlID
+	while s:col <= s:len && s:id == synID(s:lnum, s:col, 1)
+	      \   && s:diff_id == diff_hlID(s:lnum, s:col) |
+	      \     let s:col = s:col + 1 |
+	      \ endwhile
+	if s:len < &columns && !s:settings.no_pre
+	  " Add spaces at the end of the raw text line to extend the changed
+	  " line to the full width.
+	  let s:line = s:line .. repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin)
+	  let s:len = &columns
+	endif
+      else
+	let s:id = synID(s:lnum, s:col, 1)
+	let s:col = s:col + 1
+	" Speed loop (it's small - that's the trick)
+	" Go along till we find a change in synID
+	while s:col <= s:len && s:id == synID(s:lnum, s:col, 1) | let s:col = s:col + 1 | endwhile
+      endif
+
+      if s:settings.ignore_conceal || !s:concealinfo[0]
+	" Expand tabs if needed
+	let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
+	if s:settings.expand_tabs
+	  let s:offset = 0
+	  let s:idx = stridx(s:expandedtab, "\t")
+	  let s:tablist = split(&vts,',')
+	  if empty(s:tablist)
+	    let s:tablist = [ &ts ]
+	  endif
+	  let s:tabidx = 0
+	  let s:tabwidth = 0
+	  while s:idx >= 0
+	    if s:startcol + s:idx == 1
+	      let s:i = s:tablist[0]
+	    else
+	      " Get the character, which could be multiple bytes, which falls
+	      " immediately before the found tab. Extract it by matching a
+	      " character just prior to the column where the tab matches.
+	      " We'll use this to get the byte index of the character
+	      " immediately preceding the tab, so we can then look up the
+	      " virtual column that character appears in, to determine how
+	      " much of the current tabstop has been used up.
+	      if s:idx == 0
+		" if the found tab is the first character in the text being
+		" processed, we need to get the character prior to the text,
+		" given by startcol.
+		let s:prevc = matchstr(s:line, '.\%' .. (s:startcol + s:offset) .. 'c')
+	      else
+		" Otherwise, the byte index of the tab into s:expandedtab is
+		" given by s:idx.
+		let s:prevc = matchstr(s:expandedtab, '.\%' .. (s:idx + 1) .. 'c')
+	      endif
+	      let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
+
+	      " find the tabstop interval to use for the tab we just found. Keep
+	      " adding tabstops (which could be variable) until we would exceed
+	      " the virtual screen position of the start of the found tab.
+	      while s:vcol >= s:tabwidth + s:tablist[s:tabidx]
+		let s:tabwidth += s:tablist[s:tabidx]
+		if s:tabidx < len(s:tablist)-1
+		  let s:tabidx = s:tabidx+1
+		endif
+	      endwhile
+	      let s:i = s:tablist[s:tabidx] - (s:vcol - s:tabwidth)
+	    endif
+	    " update offset to keep the index within the line corresponding to
+	    " actual tab characters instead of replaced spaces; s:idx reflects
+	    " replaced spaces in s:expandedtab, s:offset cancels out all but
+	    " the tab character itself.
+	    let s:offset -= s:i - 1
+	    let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
+	    let s:idx = stridx(s:expandedtab, "\t")
+	  endwhile
+	end
+
+	" get the highlight group name to use
+	let s:id = synIDtrans(s:id)
+      else
+	" use Conceal highlighting for concealed text
+	let s:id = s:CONCEAL_ID
+	let s:expandedtab = s:concealinfo[1]
+      endif
+
+      " Output the text with the same synID, with class set to the highlight ID
+      " name, unless it has been concealed completely.
+      if strlen(s:expandedtab) > 0
+	let s:new = s:new .. s:HtmlFormat(s:expandedtab,  s:id, s:diff_id, "", 0)
+      endif
+    endwhile
+  endif
+
+  call extend(s:lines, split(s:new..s:HtmlEndline, '\n', 1))
+  if !s:settings.no_progress && s:pgb.needs_redraw
+    redrawstatus
+    let s:pgb.needs_redraw = 0
+  endif
+  let s:lnum = s:lnum + 1
+
+  if !s:settings.no_progress
+    call s:pgb.incr()
+  endif
+endwhile
+
+" Diff filler is returned based on what needs inserting *before* the given line.
+" So to get diff filler at the end of the buffer, we need to use last line + 1
+call s:Add_diff_fill(s:end+1)
+
+if s:settings.dynamic_folds
+  " finish off any open folds
+  while !empty(s:foldstack)
+    let s:lines[-1]..=""
+    call remove(s:foldstack, 0)
+  endwhile
+
+  " add fold column to the style list if not already there
+  let s:id = s:FOLD_C_ID
+  if !has_key(s:stylelist, s:id)
+    let s:stylelist[s:id] = '.FoldColumn { ' .. s:CSS1(s:id) .. '}'
+  endif
+endif
+
+if s:settings.no_pre
+  if !s:settings.use_css
+    " Close off the font tag that encapsulates the whole 
+    call extend(s:lines, [""])
+  else
+    call extend(s:lines, ["
"]) + endif +else + call extend(s:lines, [""]) +endif +if !s:settings.no_doc + call extend(s:lines, ["", ""]) +endif + +exe s:newwin .. "wincmd w" +call setline(1, s:lines) +unlet s:lines + +" Mangle modelines so Vim doesn't try to use HTML text as a modeline if editing +" this file in the future; need to do this after generating all the text in case +" the modeline text has different highlight groups which all turn out to be +" stripped from the final output. +%s!\v(%(^|\s+)%([Vv]i%(m%([<=>]?\d+)?)?|ex)):!\1\:!ge + +" The generated HTML is admittedly ugly and takes a LONG time to fold. +" Make sure the user doesn't do syntax folding when loading a generated file, +" using a modeline. +if !s:settings.no_modeline + call append(line('$'), "") +endif + +" Now, when we finally know which, we define the colors and styles +if s:settings.use_css && !s:settings.no_doc + 1;//+1 + + " Normal/global attributes + if s:settings.no_pre + call append('.', "body { color: " .. s:fgc .. "; background-color: " .. s:bgc .. "; font-family: ".. s:htmlfont .."; }") + + + else + call append('.', "pre { " .. s:whitespace .. "font-family: ".. s:htmlfont .."; color: " .. s:fgc .. "; background-color: " .. s:bgc .. "; }") + + + yank + put + execute "normal! ^cwbody\e" + " body should not have the wrap formatting, only the pre section + if s:whitespace != '' + exec 's#'..s:whitespace + endif + endif + " fix browser inconsistencies (sometimes within the same browser) of different + " default font size for different elements + call append('.', '* { font-size: 1em; }') + + + " if we use any input elements for unselectable content, make sure they look + " like normal text + if !empty(s:settings.prevent_copy) + if s:settings.use_input_for_pc !=# "none" + call append('.', 'input { border: none; margin: 0; padding: 0; font-family: '..s:htmlfont..'; }') + + + " ch units for browsers which support them, em units for a somewhat + " reasonable fallback. + for w in range(1, 20, 1) + call append('.', [ + \ "input[size='"..w.."'] { width: "..w.."em; width: "..w.."ch; }" + \ ]) + + + endfor + endif + + if s:settings.use_input_for_pc !=# 'all' + let s:unselectable_styles = [] + if s:settings.prevent_copy =~# 'f' + call add(s:unselectable_styles, 'FoldColumn') + endif + if s:settings.prevent_copy =~# 'n' + call add(s:unselectable_styles, 'LineNr') + endif + if s:settings.prevent_copy =~# 't' && !s:settings.ignore_folding + call add(s:unselectable_styles, 'Folded') + endif + if s:settings.prevent_copy =~# 'd' + call add(s:unselectable_styles, 'DiffDelete') + endif + if s:settings.use_input_for_pc !=# 'none' + call append('.', [ + \ '/* Note: IE does not support @supports conditionals, but also does not fully support', + \ ' "content:" with custom content, so we *want* the check to fail */', + \ '@supports ( content: attr(data-custom-content) ) {' + \ ]) + +3 + endif + " The line number column inside the foldtext is styled just like the fold + " text in Vim, but it should use the prevent_copy settings of line number + " rather than fold text. Apply the prevent_copy styles to foldtext + " specifically for line numbers, which always come after the fold column, + " or at the beginning of the line. + if s:settings.prevent_copy =~# 'n' && !s:settings.ignore_folding + call append('.', [ + \ ' .FoldColumn + .Folded, .Folded:first-child { user-select: none; }', + \ ' .FoldColumn + [data-Folded-content]::before, [data-Folded-content]:first-child::before { content: attr(data-Folded-content); }', + \ ' .FoldColumn + [data-Folded-content]::before, [data-Folded-content]:first-child::before { padding-bottom: 1px; display: inline-block; /* match the 1-px padding of standard items with background */ }', + \ ' .FoldColumn + span[data-Folded-content]::before, [data-Folded-content]:first-child::before { cursor: default; }', + \ ]) + +4 + endif + for s:style_name in s:unselectable_styles + call append('.', [ + \ ' .'..s:style_name..' { user-select: none; }', + \ ' [data-'..s:style_name..'-content]::before { content: attr(data-'..s:style_name..'-content); }', + \ ' [data-'..s:style_name..'-content]::before { padding-bottom: 1px; display: inline-block; /* match the 1-px padding of standard items with background */ }', + \ ' span[data-'..s:style_name..'-content]::before { cursor: default; }', + \ ]) + +4 + endfor + if s:settings.use_input_for_pc !=# 'none' + " Note, the extra '}' is to match the "@supports" above + call append('.', [ + \ ' input { display: none; }', + \ '}' + \ ]) + +2 + endif + unlet s:unselectable_styles + endif + + " Fix mouse cursor shape for the fallback method of uncopyable text + if s:settings.use_input_for_pc !=# 'none' + if s:settings.prevent_copy =~# 'f' + " Make the cursor show active fold columns as active areas, and empty fold + " columns as not interactive. + call append('.', ['input.FoldColumn { cursor: pointer; }', + \ 'input.FoldColumn[value="'..repeat(' ', s:foldcolumn)..'"] { cursor: default; }' + \ ]) + +2 + if s:settings.use_input_for_pc !=# 'all' + call append('.', [ + \ 'a[data-FoldColumn-content="'..repeat(' ', s:foldcolumn)..'"] { cursor: default; }' + \ ]) + +1 + end + endif + " make line number column show as non-interactive if not selectable + if s:settings.prevent_copy =~# 'n' + call append('.', 'input.LineNr { cursor: default; }') + + + endif + " make fold text and line number column within fold text show as + " non-interactive if not selectable + if (s:settings.prevent_copy =~# 'n' || s:settings.prevent_copy =~# 't') && !s:settings.ignore_folding + call append('.', 'input.Folded { cursor: default; }') + + + endif + " make diff filler show as non-interactive if not selectable + if s:settings.prevent_copy =~# 'd' + call append('.', 'input.DiffDelete { cursor: default; }') + + + endif + endif + endif +endif + +if !s:settings.use_css && !s:settings.no_doc + " For Netscape 4, set attributes too, though, strictly speaking, it's + " incorrect. + execute '%s:]*\):\r]\|>\|<\|"\)+\1\2+ge +endif + +" The DTD +if !s:settings.no_doc + if s:settings.use_xhtml + exe "normal! gg$a\n" + elseif s:html5 + exe "normal! gg0i\n" + else + exe "normal! gg0i\n" + endif +endif + +if s:settings.use_xhtml && !s:settings.no_doc + exe "normal! gg/ +" URL: https://8th-dev.com/ +" Filetypes: *.8th +" NOTE: You should also have the ftplugin/8th.vim file to set 'isk' + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim +syn clear + +syn sync ccomment +syn sync maxlines=200 + +syn case match +syn iskeyword 33-255 + +syn match eighthColonName "\S\+" contained +syn match eighthColonDef ":\s\+\S\+" contains=eighthColonName + +" new words +syn match eighthClasses "\<\S\+:" contained +syn match eighthClassWord "\<\S\+:.\+" contains=eighthClasses + +syn keyword eighthEndOfColonDef ; i; +syn keyword eighthDefine var var, + +" Built in words: +com! -nargs=+ Builtin syn keyword eighthBuiltin + + +Builtin gen-secret 2fa:gen-secret gen-url 2fa:gen-url validate-code 2fa:validate-code cb AWS:cb cli AWS:cli +Builtin cmd AWS:cmd cp AWS:cp rc AWS:rc call DBUS:call init DBUS:init + DOM:+ - DOM:- attr! DOM:attr! +Builtin attr@ DOM:attr@ attrs DOM:attrs children DOM:children css-parse DOM:css-parse each DOM:each +Builtin find DOM:find new DOM:new type DOM:type ! G:! !if G:!if #! G:#! ## G:## #if G:#if ' G:' ( G:( +Builtin (* G:(* (:) G:(:) (code) G:(code) (defer) G:(defer) (dump) G:(dump) (getc) G:(getc) (gets) G:(gets) +Builtin (interp) G:(interp) (log) G:(log) (needs) G:(needs) (parseln) G:(parseln) (putc) G:(putc) (puts) G:(puts) +Builtin (stat) G:(stat) (with) G:(with) ) G:) +hook G:+hook +ref G:+ref ,# G:,# -- G:-- -----BEGIN G:-----BEGIN +Builtin -Inf G:-Inf -Inf? G:-Inf? -hook G:-hook -ref G:-ref -rot G:-rot . G:. .# G:.# .hook G:.hook +Builtin .needs G:.needs .r G:.r .s G:.s .s-truncate G:.s-truncate .stats G:.stats .ver G:.ver .with G:.with +Builtin 0; G:0; 2dip G:2dip 2drop G:2drop 2dup G:2dup 2nip G:2nip 2over G:2over 2swap G:2swap 2tuck G:2tuck +Builtin 3drop G:3drop 3drop G:3drop 3dup G:3dup 3rev G:3rev 4drop G:4drop 8thdt? G:8thdt? 8thsku G:8thsku +Builtin 8thver? G:8thver? 8thvernum? G:8thvernum? : G:: ; G:; ;; G:;; ;;; G:;;; ;with G:;with >clip G:>clip +Builtin >json G:>json >kind G:>kind >n G:>n >r G:>r >s G:>s ?: G:?: ?@ G:?@ @ G:@ BITMAP: G:BITMAP: +Builtin ENUM: G:ENUM: FLAG: G:FLAG: I G:I Inf G:Inf Inf? G:Inf? J G:J K G:K NaN G:NaN NaN? G:NaN? SED-CHECK G:SED-CHECK +Builtin SED: G:SED: SED: G:SED: X G:X \ G:\ _dup G:_dup _swap G:_swap actor: G:actor: again G:again +Builtin ahead G:ahead and G:and apropos G:apropos argc G:argc args G:args array? G:array? assert G:assert +Builtin base G:base base>n G:base>n bi G:bi bits G:bits break G:break break? G:break? breakif G:breakif +Builtin build? G:build? buildver? G:buildver? bye G:bye c/does G:c/does case: G:case: catch G:catch +Builtin chdir G:chdir clip> G:clip> clone G:clone clone-shallow G:clone-shallow cold G:cold compile G:compile +Builtin compile? G:compile? compiling? G:compiling? conflict G:conflict const G:const container? G:container? +Builtin counting-allocations G:counting-allocations cr G:cr critical: G:critical: critical; G:critical; +Builtin curlang G:curlang curry G:curry curry: G:curry: decimal G:decimal default: G:default: defer: G:defer: +Builtin deferred: G:deferred: deg>rad G:deg>rad depth G:depth die G:die dip G:dip drop G:drop dstack G:dstack +Builtin dump G:dump dup G:dup dup>r G:dup>r dup? G:dup? e# G:e# enum: G:enum: error? G:error? eval G:eval +Builtin eval! G:eval! eval0 G:eval0 expect G:expect extra! G:extra! extra@ G:extra@ false G:false fnv G:fnv +Builtin fourth G:fourth free G:free func: G:func: getc G:getc getcwd G:getcwd getenv G:getenv gets G:gets +Builtin handler G:handler header G:header help G:help hex G:hex i: G:i: i; G:i; isa? G:isa? items-used G:items-used +Builtin jcall G:jcall jclass G:jclass jmethod G:jmethod json! G:json! json-8th> G:json-8th> json-nesting G:json-nesting +Builtin json-pretty G:json-pretty json-throw G:json-throw json> G:json> json@ G:json@ k32 G:k32 keep G:keep +Builtin l: G:l: last G:last lib G:lib libbin G:libbin libc G:libc literal G:literal locals: G:locals: +Builtin lock G:lock lock-to G:lock-to locked? G:locked? log G:log log-syslog G:log-syslog log-task G:log-task +Builtin log-time G:log-time log-time-local G:log-time-local long-days G:long-days long-months G:long-months +Builtin longjmp G:longjmp lookup G:lookup loop G:loop loop- G:loop- map? G:map? mark G:mark mark? G:mark? +Builtin mobile? G:mobile? n# G:n# name>os G:name>os name>sem G:name>sem ndrop G:ndrop needs G:needs +Builtin new G:new next-arg G:next-arg nip G:nip noop G:noop not G:not nothrow G:nothrow ns G:ns ns: G:ns: +Builtin ns>ls G:ns>ls ns>s G:ns>s ns? G:ns? null G:null null; G:null; null? G:null? nullvar G:nullvar +Builtin number? G:number? of: G:of: off G:off on G:on onexit G:onexit only G:only op! G:op! or G:or +Builtin os G:os os-names G:os-names os>long-name G:os>long-name os>name G:os>name over G:over p: G:p: +Builtin pack G:pack parse G:parse parse-csv G:parse-csv parse-date G:parse-date parsech G:parsech parseln G:parseln +Builtin parsews G:parsews pick G:pick poke G:poke pool-clear G:pool-clear pool-clear-all G:pool-clear-all +Builtin prior G:prior private G:private process-args G:process-args process-args-fancy G:process-args-fancy +Builtin process-args-help G:process-args-help process-args-vars G:process-args-vars prompt G:prompt +Builtin public G:public putc G:putc puts G:puts quote G:quote r! G:r! r> G:r> r@ G:r@ rad>deg G:rad>deg +Builtin rand-jit G:rand-jit rand-jsf G:rand-jsf rand-native G:rand-native rand-normal G:rand-normal +Builtin rand-pcg G:rand-pcg rand-pcg-seed G:rand-pcg-seed rand-range G:rand-range rand-select G:rand-select +Builtin randbuf-pcg G:randbuf-pcg random G:random rdrop G:rdrop recurse G:recurse recurse-stack G:recurse-stack +Builtin ref@ G:ref@ reg! G:reg! reg@ G:reg@ regbin@ G:regbin@ remaining-args G:remaining-args repeat G:repeat +Builtin required? G:required? requires G:requires reset G:reset roll G:roll rop! G:rop! rot G:rot rpick G:rpick +Builtin rreset G:rreset rroll G:rroll rstack G:rstack rswap G:rswap rusage G:rusage s>ns G:s>ns same? G:same? +Builtin scriptdir G:scriptdir scriptfile G:scriptfile sem G:sem sem-post G:sem-post sem-rm G:sem-rm +Builtin sem-wait G:sem-wait sem-wait? G:sem-wait? sem>name G:sem>name semi-throw G:semi-throw set-wipe G:set-wipe +Builtin setenv G:setenv setjmp G:setjmp settings! G:settings! settings![] G:settings![] settings@ G:settings@ +Builtin settings@? G:settings@? settings@[] G:settings@[] sh G:sh sh$ G:sh$ short-days G:short-days +Builtin short-months G:short-months sleep G:sleep sleep-msec G:sleep-msec sleep-until G:sleep-until +Builtin slog G:slog space G:space stack-check G:stack-check stack-size G:stack-size step G:step sthrow G:sthrow +Builtin string? G:string? struct: G:struct: swap G:swap tab-hook G:tab-hook tell-conflict G:tell-conflict +Builtin tempdir G:tempdir tempfilename G:tempfilename third G:third throw G:throw thrownull G:thrownull +Builtin times G:times tlog G:tlog tri G:tri true G:true tuck G:tuck type-check G:type-check typeassert G:typeassert +Builtin uid G:uid uname G:uname unlock G:unlock unpack G:unpack until G:until until! G:until! while G:while +Builtin while! G:while! with: G:with: word? G:word? words G:words words-like G:words-like words/ G:words/ +Builtin xchg G:xchg xor G:xor >auth HTTP:>auth (curry) I:(curry) notimpl I:notimpl sh I:sh trace-word I:trace-word +Builtin call JSONRPC:call auth-string OAuth:auth-string gen-nonce OAuth:gen-nonce params OAuth:params +Builtin call SOAP:call ! a:! + a:+ - a:- / a:/ 2each a:2each 2map a:2map 2map+ a:2map+ 2map= a:2map= +Builtin <> a:<> = a:= @ a:@ @? a:@? _@ a:_@ all a:all any a:any bsearch a:bsearch centroid a:centroid +Builtin clear a:clear close a:close cmp a:cmp diff a:diff dot a:dot each a:each each! a:each! each-par a:each-par +Builtin each-slice a:each-slice exists? a:exists? filter a:filter filter-par a:filter-par generate a:generate +Builtin group a:group indexof a:indexof insert a:insert intersect a:intersect join a:join len a:len +Builtin map a:map map+ a:map+ map-par a:map-par map= a:map= maxlen a:maxlen mean a:mean mean&variance a:mean&variance +Builtin merge a:merge new a:new op! a:op! open a:open pigeon a:pigeon pivot a:pivot pop a:pop push a:push +Builtin qsort a:qsort randeach a:randeach reduce a:reduce reduce+ a:reduce+ remove a:remove rev a:rev +Builtin rindexof a:rindexof shift a:shift shuffle a:shuffle slice a:slice slice+ a:slice+ slide a:slide +Builtin smear a:smear sort a:sort split a:split squash a:squash switch a:switch union a:union uniq a:uniq +Builtin unzip a:unzip x a:x x-each a:x-each xchg a:xchg y a:y zip a:zip 8thdir app:8thdir asset app:asset +Builtin atrun app:atrun atrun app:atrun atrun app:atrun basedir app:basedir basename app:basename config-file-name app:config-file-name +Builtin current app:current datadir app:datadir display-moved app:display-moved exename app:exename +Builtin localechanged app:localechanged lowmem app:lowmem main app:main name app:name oncrash app:oncrash +Builtin opts! app:opts! opts@ app:opts@ orientation app:orientation orientation! app:orientation! pid app:pid +Builtin post-main app:post-main pre-main app:pre-main privdir app:privdir raise app:raise read-config app:read-config +Builtin read-config-map app:read-config-map read-config-var app:read-config-var request-perm app:request-perm +Builtin restart app:restart resumed app:resumed signal app:signal standalone app:standalone subdir app:subdir +Builtin suspended app:suspended sysquit app:sysquit terminated app:terminated timeout app:timeout trap app:trap +Builtin dawn astro:dawn do-dawn astro:do-dawn do-dusk astro:do-dusk do-rise astro:do-rise dusk astro:dusk +Builtin latitude astro:latitude location! astro:location! longitude astro:longitude sunrise astro:sunrise +Builtin genkeys auth:genkeys secret auth:secret session-id auth:session-id session-key auth:session-key +Builtin validate auth:validate ! b:! + b:+ / b:/ 1+ b:1+ 1- b:1- <> b:<> = b:= >base16 b:>base16 >base32 b:>base32 +Builtin >base64 b:>base64 >base85 b:>base85 >hex b:>hex >mpack b:>mpack @ b:@ append b:append base16> b:base16> +Builtin base32> b:base32> base64> b:base64> base85> b:base85> bit! b:bit! bit@ b:bit@ clear b:clear +Builtin compress b:compress conv b:conv each b:each each! b:each! each-slice b:each-slice expand b:expand +Builtin fill b:fill getb b:getb hex> b:hex> len b:len mem> b:mem> move b:move mpack-compat b:mpack-compat +Builtin mpack-date b:mpack-date mpack-ignore b:mpack-ignore mpack> b:mpack> n! b:n! n+ b:n+ n@ b:n@ +Builtin new b:new op b:op op! b:op! pad b:pad rev b:rev search b:search shmem b:shmem slice b:slice +Builtin splice b:splice ungetb b:ungetb unpad b:unpad writable b:writable xor b:xor +block bc:+block +Builtin .blocks bc:.blocks add-block bc:add-block block-hash bc:block-hash block@ bc:block@ first-block bc:first-block +Builtin hash bc:hash last-block bc:last-block load bc:load new bc:new save bc:save set-sql bc:set-sql +Builtin validate bc:validate validate-block bc:validate-block add bloom:add filter bloom:filter in? bloom:in? +Builtin parse bson:parse accept bt:accept ch! bt:ch! ch@ bt:ch@ connect bt:connect disconnect bt:disconnect +Builtin init bt:init leconnect bt:leconnect lescan bt:lescan listen bt:listen on? bt:on? read bt:read +Builtin scan bt:scan service? bt:service? services? bt:services? write bt:write * c:* * c:* + c:+ + c:+ +Builtin = c:= = c:= >ri c:>ri >ri c:>ri abs c:abs abs c:abs arg c:arg arg c:arg conj c:conj conj c:conj +Builtin im c:im n> c:n> new c:new new c:new re c:re (.hebrew) cal:(.hebrew) (.islamic) cal:(.islamic) +Builtin .hebrew cal:.hebrew .islamic cal:.islamic >hebepoch cal:>hebepoch >jdn cal:>jdn Adar cal:Adar +Builtin Adar2 cal:Adar2 Adar2 cal:Adar2 Av cal:Av Elul cal:Elul Heshvan cal:Heshvan Iyar cal:Iyar Kislev cal:Kislev +Builtin Nissan cal:Nissan Shevat cal:Shevat Sivan cal:Sivan Tammuz cal:Tammuz Tevet cal:Tevet Tishrei cal:Tishrei +Builtin days-in-hebrew-year cal:days-in-hebrew-year displaying-hebrew cal:displaying-hebrew fixed>hebrew cal:fixed>hebrew +Builtin fixed>islamic cal:fixed>islamic gershayim cal:gershayim hanukkah cal:hanukkah hebrew-epoch cal:hebrew-epoch +Builtin hebrew>fixed cal:hebrew>fixed hebrewtoday cal:hebrewtoday hmonth-name cal:hmonth-name islamic.epoch cal:islamic.epoch +Builtin islamic>fixed cal:islamic>fixed islamictoday cal:islamictoday jdn> cal:jdn> last-day-of-hebrew-month cal:last-day-of-hebrew-month +Builtin number>hebrew cal:number>hebrew omer cal:omer pesach cal:pesach purim cal:purim rosh-chodesh? cal:rosh-chodesh? +Builtin rosh-hashanah cal:rosh-hashanah shavuot cal:shavuot taanit-esther cal:taanit-esther tisha-beav cal:tisha-beav +Builtin yom-haatsmaut cal:yom-haatsmaut yom-kippur cal:yom-kippur >redir con:>redir accept con:accept +Builtin accept-nl con:accept-nl accept-pwd con:accept-pwd alert con:alert ansi? con:ansi? black con:black +Builtin blue con:blue clreol con:clreol cls con:cls ctrld-empty con:ctrld-empty cyan con:cyan down con:down +Builtin file>history con:file>history free con:free getxy con:getxy gotoxy con:gotoxy green con:green +Builtin history-handler con:history-handler history>file con:history>file key con:key key? con:key? +Builtin left con:left load-history con:load-history magenta con:magenta max-history con:max-history +Builtin onBlack con:onBlack onBlue con:onBlue onCyan con:onCyan onGreen con:onGreen onMagenta con:onMagenta +Builtin onRed con:onRed onWhite con:onWhite onYellow con:onYellow print con:print red con:red redir> con:redir> +Builtin redir? con:redir? right con:right save-history con:save-history size? con:size? up con:up white con:white +Builtin yellow con:yellow >aes128gcm cr:>aes128gcm >aes256gcm cr:>aes256gcm >cp cr:>cp >cpe cr:>cpe +Builtin >decrypt cr:>decrypt >edbox cr:>edbox >encrypt cr:>encrypt >nbuf cr:>nbuf >rsabox cr:>rsabox +Builtin >uuid cr:>uuid aad? cr:aad? aes128box-sig cr:aes128box-sig aes128gcm> cr:aes128gcm> aes256box-sig cr:aes256box-sig +Builtin aes256gcm> cr:aes256gcm> aesgcm cr:aesgcm blakehash cr:blakehash chacha20box-sig cr:chacha20box-sig +Builtin chachapoly cr:chachapoly cipher! cr:cipher! cipher@ cr:cipher@ ciphers cr:ciphers cp> cr:cp> +Builtin cpe> cr:cpe> decrypt cr:decrypt decrypt+ cr:decrypt+ decrypt> cr:decrypt> ebox-sig cr:ebox-sig +Builtin ecc-curves cr:ecc-curves ecc-genkey cr:ecc-genkey ecc-secret cr:ecc-secret ecc-sign cr:ecc-sign +Builtin ecc-verify cr:ecc-verify ed25519 cr:ed25519 ed25519-secret cr:ed25519-secret ed25519-sign cr:ed25519-sign +Builtin ed25519-verify cr:ed25519-verify edbox-sig cr:edbox-sig edbox> cr:edbox> encrypt cr:encrypt +Builtin encrypt+ cr:encrypt+ encrypt> cr:encrypt> ensurekey cr:ensurekey genkey cr:genkey hash cr:hash +Builtin hash! cr:hash! hash+ cr:hash+ hash>b cr:hash>b hash>s cr:hash>s hash@ cr:hash@ hashes cr:hashes +Builtin hmac cr:hmac hotp cr:hotp iv? cr:iv? pem-read cr:pem-read pem-write cr:pem-write pwd-valid? cr:pwd-valid? +Builtin pwd/ cr:pwd/ pwd>hash cr:pwd>hash rand cr:rand randbuf cr:randbuf randkey cr:randkey restore cr:restore +Builtin root-certs cr:root-certs rsa_decrypt cr:rsa_decrypt rsa_encrypt cr:rsa_encrypt rsa_sign cr:rsa_sign +Builtin rsa_verify cr:rsa_verify rsabox-sig cr:rsabox-sig rsabox> cr:rsabox> rsagenkey cr:rsagenkey +Builtin save cr:save sbox-sig cr:sbox-sig sha1-hmac cr:sha1-hmac shard cr:shard tag? cr:tag? totp cr:totp +Builtin totp-epoch cr:totp-epoch totp-time-step cr:totp-time-step unshard cr:unshard uuid cr:uuid uuid> cr:uuid> +Builtin validate-pgp-sig cr:validate-pgp-sig validate-pwd cr:validate-pwd + d:+ +day d:+day +hour d:+hour +Builtin +min d:+min +msec d:+msec - d:- .time d:.time / d:/ = d:= >fixed d:>fixed >hmds d:>hmds >hmds: d:>hmds: +Builtin >msec d:>msec >unix d:>unix >ymd d:>ymd ?= d:?= Fri d:Fri Mon d:Mon Sat d:Sat Sun d:Sun Thu d:Thu +Builtin Tue d:Tue Wed d:Wed adjust-dst d:adjust-dst alarm d:alarm approx! d:approx! approx? d:approx? +Builtin approximates! d:approximates! between d:between cmp d:cmp d. d:d. default-now d:default-now +Builtin doy d:doy dst-ofs d:dst-ofs dst? d:dst? dstinfo d:dstinfo dstquery d:dstquery dstzones? d:dstzones? +Builtin elapsed-timer d:elapsed-timer elapsed-timer-hmds d:elapsed-timer-hmds elapsed-timer-msec d:elapsed-timer-msec +Builtin elapsed-timer-seconds d:elapsed-timer-seconds first-dow d:first-dow fixed> d:fixed> fixed>dow d:fixed>dow +Builtin format d:format join d:join last-dow d:last-dow last-month d:last-month last-week d:last-week +Builtin last-year d:last-year msec d:msec msec> d:msec> new d:new next-dow d:next-dow next-month d:next-month +Builtin next-week d:next-week next-year d:next-year parse d:parse parse-approx d:parse-approx parse-range d:parse-range +Builtin prev-dow d:prev-dow rfc5322 d:rfc5322 start-timer d:start-timer ticks d:ticks ticks/sec d:ticks/sec +Builtin timer d:timer timer-ctrl d:timer-ctrl tzadjust d:tzadjust unix> d:unix> unknown d:unknown unknown? d:unknown? +Builtin updatetz d:updatetz year@ d:year@ ymd d:ymd ymd> d:ymd> add-func db:add-func aes! db:aes! again? db:again? +Builtin begin db:begin bind db:bind bind-exec db:bind-exec bind-exec{} db:bind-exec{} close db:close +Builtin col db:col col{} db:col{} commit db:commit db db:db dbpush db:dbpush disuse db:disuse each db:each +Builtin err-handler db:err-handler exec db:exec exec-cb db:exec-cb exec-name db:exec-name exec{} db:exec{} +Builtin get db:get get-sub db:get-sub key db:key kind? db:kind? last-rowid db:last-rowid mysql? db:mysql? +Builtin odbc? db:odbc? open db:open open? db:open? prep-name db:prep-name prepare db:prepare query db:query +Builtin query-all db:query-all rekey db:rekey rollback db:rollback set db:set set-sub db:set-sub sql@ db:sql@ +Builtin sql[] db:sql[] sql[np] db:sql[np] sql{np} db:sql{np} sql{} db:sql{} use db:use zip db:zip bp dbg:bp +Builtin bt dbg:bt except-task@ dbg:except-task@ go dbg:go line-info dbg:line-info prompt dbg:prompt +Builtin stop dbg:stop trace dbg:trace trace-enter dbg:trace-enter trace-leave dbg:trace-leave / f:/ +Builtin >posix f:>posix abspath f:abspath absrel f:absrel append f:append associate f:associate atime f:atime +Builtin autodel f:autodel canwrite? f:canwrite? chmod f:chmod close f:close copy f:copy copydir f:copydir +Builtin create f:create ctime f:ctime dir? f:dir? dname f:dname eachbuf f:eachbuf eachline f:eachline +Builtin enssep f:enssep eof? f:eof? exec f:exec exists? f:exists? flush f:flush fname f:fname getb f:getb +Builtin getc f:getc getline f:getline getmod f:getmod glob f:glob glob-links f:glob-links glob-nocase f:glob-nocase +Builtin gunz f:gunz homedir f:homedir homedir! f:homedir! include f:include ioctl f:ioctl join f:join +Builtin launch f:launch link f:link link> f:link> link? f:link? lock f:lock mkdir f:mkdir mmap f:mmap +Builtin mmap-range f:mmap-range mmap-range? f:mmap-range? mtime f:mtime mv f:mv name@ f:name@ open f:open +Builtin open! f:open! open-ro f:open-ro popen f:popen popen3 f:popen3 print f:print read f:read read-buf f:read-buf +Builtin read? f:read? relpath f:relpath rglob f:rglob rm f:rm rmdir f:rmdir seek f:seek sep f:sep size f:size +Builtin slurp f:slurp sparse? f:sparse? spit f:spit stderr f:stderr stdin f:stdin stdout f:stdout tell f:tell +Builtin tempfile f:tempfile times f:times tmpspit f:tmpspit trash f:trash truncate f:truncate ungetb f:ungetb +Builtin ungetc f:ungetc unzip f:unzip unzip-entry f:unzip-entry watch f:watch write f:write writen f:writen +Builtin zip+ f:zip+ zip@ f:zip@ zipentry f:zipentry zipnew f:zipnew zipopen f:zipopen zipsave f:zipsave +Builtin atlas! font:atlas! atlas@ font:atlas@ default-size font:default-size default-size@ font:default-size@ +Builtin info font:info ls font:ls measure font:measure new font:new oversample font:oversample pixels font:pixels +Builtin pixels? font:pixels? system font:system system font:system distance geo:distance km/deg-lat geo:km/deg-lat +Builtin km/deg-lon geo:km/deg-lon nearest geo:nearest +edge gr:+edge +edge+w gr:+edge+w +node gr:+node +Builtin connect gr:connect edges gr:edges edges! gr:edges! m! gr:m! m@ gr:m@ neighbors gr:neighbors +Builtin new gr:new node-edges gr:node-edges nodes gr:nodes traverse gr:traverse weight! gr:weight! +Builtin + h:+ clear h:clear cmp! h:cmp! len h:len max! h:max! new h:new peek h:peek pop h:pop push h:push +Builtin unique h:unique parse html:parse arm? hw:arm? camera hw:camera camera-img hw:camera-img camera-limits hw:camera-limits +Builtin camera? hw:camera? cpu? hw:cpu? device? hw:device? displays? hw:displays? displaysize? hw:displaysize? +Builtin finger-match hw:finger-match finger-support hw:finger-support gpio hw:gpio gpio! hw:gpio! gpio-mmap hw:gpio-mmap +Builtin gpio@ hw:gpio@ i2c hw:i2c i2c! hw:i2c! i2c!reg hw:i2c!reg i2c@ hw:i2c@ i2c@reg hw:i2c@reg isround? hw:isround? +Builtin iswatch? hw:iswatch? mac? hw:mac? mem? hw:mem? model? hw:model? poll hw:poll sensor hw:sensor +Builtin start hw:start stop hw:stop uid? hw:uid? fetch-full imap:fetch-full fetch-uid-mail imap:fetch-uid-mail +Builtin login imap:login logout imap:logout new imap:new search imap:search select-inbox imap:select-inbox +Builtin >file img:>file >fmt img:>fmt copy img:copy crop img:crop data img:data desat img:desat draw img:draw +Builtin draw-sub img:draw-sub fill img:fill fillrect img:fillrect filter img:filter flip img:flip from-svg img:from-svg +Builtin line img:line new img:new pikchr img:pikchr pix! img:pix! pix@ img:pix@ qr-gen img:qr-gen qr-parse img:qr-parse +Builtin rect img:rect rotate img:rotate scale img:scale scroll img:scroll size img:size countries iso:countries +Builtin languages iso:languages utils/help library:utils/help find loc:find sort loc:sort ! m:! !? m:!? +Builtin + m:+ +? m:+? - m:- <> m:<> = m:= >arr m:>arr @ m:@ @? m:@? _! m:_! _@ m:_@ alias m:alias arr> m:arr> +Builtin bitmap m:bitmap clear m:clear data m:data each m:each exists? m:exists? filter m:filter ic m:ic +Builtin iter m:iter iter-all m:iter-all keys m:keys len m:len map m:map merge m:merge new m:new op! m:op! +Builtin open m:open slice m:slice vals m:vals xchg m:xchg zip m:zip ! mat:! * mat:* + mat:+ = mat:= +Builtin @ mat:@ affine mat:affine col mat:col data mat:data det mat:det dim? mat:dim? get-n mat:get-n +Builtin ident mat:ident inv mat:inv m. mat:m. minor mat:minor n* mat:n* new mat:new new-minor mat:new-minor +Builtin rotate mat:rotate row mat:row same-size? mat:same-size? scale mat:scale shear mat:shear trans mat:trans +Builtin translate mat:translate xform mat:xform 2console md:2console 2html md:2html 2nk md:2nk color meta:color +Builtin console meta:console gui meta:gui meta meta:meta ! n:! * n:* */ n:*/ + n:+ +! n:+! - n:- / n:/ +Builtin /mod n:/mod 1+ n:1+ 1- n:1- < n:< = n:= > n:> >bool n:>bool BIGE n:BIGE BIGPI n:BIGPI E n:E +Builtin PI n:PI ^ n:^ _mod n:_mod abs n:abs acos n:acos acos n:acos andor n:andor asin n:asin asin n:asin +Builtin atan n:atan atan n:atan atan2 n:atan2 band n:band between n:between bfloat n:bfloat bic n:bic +Builtin bint n:bint binv n:binv bnot n:bnot bor n:bor bxor n:bxor cast n:cast ceil n:ceil clamp n:clamp +Builtin cmp n:cmp comb n:comb cos n:cos cosd n:cosd emod n:emod exp n:exp expm1 n:expm1 expmod n:expmod +Builtin float n:float floor n:floor fmod n:fmod frac n:frac gcd n:gcd int n:int invmod n:invmod kind? n:kind? +Builtin lcm n:lcm lerp n:lerp ln n:ln ln1p n:ln1p lnerp n:lnerp max n:max median n:median min n:min +Builtin mod n:mod neg n:neg odd? n:odd? perm n:perm prime? n:prime? quantize n:quantize quantize! n:quantize! +Builtin r+ n:r+ range n:range rot32l n:rot32l rot32r n:rot32r round n:round round2 n:round2 rounding n:rounding +Builtin running-variance n:running-variance running-variance-finalize n:running-variance-finalize sgn n:sgn +Builtin shl n:shl shr n:shr sin n:sin sind n:sind sqr n:sqr sqrt n:sqrt tan n:tan tand n:tand trunc n:trunc +Builtin ~= n:~= ! net:! !? net:!? - net:- >base64url net:>base64url >url net:>url @ net:@ @? net:@? +Builtin CGI net:CGI DGRAM net:DGRAM INET4 net:INET4 INET6 net:INET6 PROTO_TCP net:PROTO_TCP PROTO_UDP net:PROTO_UDP +Builtin REMOTE_IP net:REMOTE_IP STREAM net:STREAM accept net:accept active? net:active? addrinfo>o net:addrinfo>o +Builtin again? net:again? alloc-and-read net:alloc-and-read alloc-buf net:alloc-buf base64url> net:base64url> +Builtin bind net:bind cgi-get net:cgi-get cgi-http-header net:cgi-http-header cgi-init net:cgi-init +Builtin cgi-init-stunnel net:cgi-init-stunnel cgi-out net:cgi-out close net:close closed? net:closed? +Builtin connect net:connect curnet net:curnet debug? net:debug? delete net:delete get net:get getaddrinfo net:getaddrinfo +Builtin getpeername net:getpeername head net:head ifaces? net:ifaces? ipv6? net:ipv6? listen net:listen +Builtin map>url net:map>url mime-type net:mime-type net-socket net:net-socket opts net:opts port-is-ssl? net:port-is-ssl? +Builtin post net:post proxy! net:proxy! put net:put read net:read read-all net:read-all read-buf net:read-buf +Builtin recvfrom net:recvfrom s>url net:s>url sendto net:sendto server net:server setsockopt net:setsockopt +Builtin socket net:socket tcp-connect net:tcp-connect tlserr net:tlserr tlshello net:tlshello udp-connect net:udp-connect +Builtin url> net:url> user-agent net:user-agent vpncheck net:vpncheck wait net:wait webserver net:webserver +Builtin write net:write (begin) nk:(begin) (chart-begin) nk:(chart-begin) (chart-begin-colored) nk:(chart-begin-colored) +Builtin (chart-end) nk:(chart-end) (end) nk:(end) (group-begin) nk:(group-begin) (group-end) nk:(group-end) +Builtin (property) nk:(property) >img nk:>img addfont nk:addfont anti-alias nk:anti-alias any-clicked? nk:any-clicked? +Builtin bounds nk:bounds bounds! nk:bounds! button nk:button button-color nk:button-color button-label nk:button-label +Builtin button-set-behavior nk:button-set-behavior button-symbol nk:button-symbol button-symbol-label nk:button-symbol-label +Builtin center-rect nk:center-rect chart-add-slot nk:chart-add-slot chart-add-slot-colored nk:chart-add-slot-colored +Builtin chart-push nk:chart-push chart-push-slot nk:chart-push-slot checkbox nk:checkbox circle nk:circle +Builtin clicked? nk:clicked? close-this! nk:close-this! close-this? nk:close-this? close? nk:close? +Builtin color-picker nk:color-picker combo nk:combo combo-begin-color nk:combo-begin-color combo-begin-label nk:combo-begin-label +Builtin combo-cb nk:combo-cb combo-end nk:combo-end contextual-begin nk:contextual-begin contextual-close nk:contextual-close +Builtin contextual-end nk:contextual-end contextual-item-image-text nk:contextual-item-image-text contextual-item-symbol-text nk:contextual-item-symbol-text +Builtin contextual-item-text nk:contextual-item-text cp! nk:cp! cp@ nk:cp@ curpos nk:curpos cursor-load nk:cursor-load +Builtin cursor-set nk:cursor-set cursor-show nk:cursor-show display-info nk:display-info display@ nk:display@ +Builtin do nk:do down? nk:down? draw-image nk:draw-image draw-image-at nk:draw-image-at draw-image-centered nk:draw-image-centered +Builtin draw-sub-image nk:draw-sub-image draw-text nk:draw-text draw-text-centered nk:draw-text-centered +Builtin draw-text-high nk:draw-text-high draw-text-wrap nk:draw-text-wrap drivers nk:drivers edit-focus nk:edit-focus +Builtin edit-string nk:edit-string event nk:event event-boost nk:event-boost event-msec nk:event-msec +Builtin event-wait nk:event-wait event? nk:event? fill-arc nk:fill-arc fill-circle nk:fill-circle fill-color nk:fill-color +Builtin fill-poly nk:fill-poly fill-rect nk:fill-rect fill-rect-color nk:fill-rect-color fill-triangle nk:fill-triangle +Builtin finger nk:finger flags! nk:flags! flags@ nk:flags@ flash nk:flash fullscreen nk:fullscreen +Builtin gesture nk:gesture get nk:get get-row-height nk:get-row-height getfont nk:getfont getmap nk:getmap +Builtin getmap! nk:getmap! gl? nk:gl? grid nk:grid grid-push nk:grid-push group-scroll-ofs nk:group-scroll-ofs +Builtin group-scroll-ofs! nk:group-scroll-ofs! hovered? nk:hovered? hrule nk:hrule image nk:image init nk:init +Builtin input-button nk:input-button input-key nk:input-key input-motion nk:input-motion input-scroll nk:input-scroll +Builtin input-string nk:input-string key-down? nk:key-down? key-pressed? nk:key-pressed? key-released? nk:key-released? +Builtin label nk:label label-colored nk:label-colored label-wrap nk:label-wrap label-wrap-colored nk:label-wrap-colored +Builtin layout-bounds nk:layout-bounds layout-grid-begin nk:layout-grid-begin layout-grid-end nk:layout-grid-end +Builtin layout-push-dynamic nk:layout-push-dynamic layout-push-static nk:layout-push-static layout-push-variable nk:layout-push-variable +Builtin layout-ratio-from-pixel nk:layout-ratio-from-pixel layout-reset-row-height nk:layout-reset-row-height +Builtin layout-row nk:layout-row layout-row-begin nk:layout-row-begin layout-row-dynamic nk:layout-row-dynamic +Builtin layout-row-end nk:layout-row-end layout-row-height nk:layout-row-height layout-row-push nk:layout-row-push +Builtin layout-row-static nk:layout-row-static layout-row-template-begin nk:layout-row-template-begin +Builtin layout-row-template-end nk:layout-row-template-end layout-space-begin nk:layout-space-begin +Builtin layout-space-end nk:layout-space-end layout-space-push nk:layout-space-push layout-widget-bounds nk:layout-widget-bounds +Builtin line-rel nk:line-rel line-to nk:line-to list-begin nk:list-begin list-end nk:list-end list-new nk:list-new +Builtin list-range nk:list-range m! nk:m! m@ nk:m@ make-style nk:make-style max-vertex-element nk:max-vertex-element +Builtin maximize nk:maximize measure nk:measure measure-font nk:measure-font menu-begin nk:menu-begin +Builtin menu-close nk:menu-close menu-end nk:menu-end menu-item-image nk:menu-item-image menu-item-label nk:menu-item-label +Builtin menu-item-symbol nk:menu-item-symbol menubar-begin nk:menubar-begin menubar-end nk:menubar-end +Builtin minimize nk:minimize mouse-pos nk:mouse-pos move-back nk:move-back move-rel nk:move-rel move-to nk:move-to +Builtin msg nk:msg msgdlg nk:msgdlg ontop nk:ontop option nk:option pen-color nk:pen-color pen-width nk:pen-width +Builtin plot nk:plot plot-fn nk:plot-fn pop-font nk:pop-font popup-begin nk:popup-begin popup-close nk:popup-close +Builtin popup-end nk:popup-end popup-scroll-ofs nk:popup-scroll-ofs popup-scroll-ofs! nk:popup-scroll-ofs! +Builtin progress nk:progress prop-int nk:prop-int pt-in? nk:pt-in? pt-open nk:pt-open pt>local nk:pt>local +Builtin pt>rect nk:pt>rect pt>screen nk:pt>screen pt>x nk:pt>x pts>rect nk:pts>rect push-font nk:push-font +Builtin raise nk:raise rect! nk:rect! rect-center nk:rect-center rect-intersect nk:rect-intersect rect-ofs nk:rect-ofs +Builtin rect-open nk:rect-open rect-pad nk:rect-pad rect-rel nk:rect-rel rect-shrink nk:rect-shrink +Builtin rect-to nk:rect-to rect-union nk:rect-union rect/high nk:rect/high rect/wide nk:rect/wide rect= nk:rect= +Builtin rect>local nk:rect>local rect>pos nk:rect>pos rect>pts nk:rect>pts rect>pts4 nk:rect>pts4 rect>screen nk:rect>screen +Builtin rect>size nk:rect>size rect>x nk:rect>x rect@ nk:rect@ released? nk:released? render nk:render +Builtin render-timed nk:render-timed restore nk:restore rotate nk:rotate rotate-rel nk:rotate-rel save nk:save +Builtin scale nk:scale scancode? nk:scancode? screen-saver nk:screen-saver screen-size nk:screen-size +Builtin screen-win-close nk:screen-win-close selectable nk:selectable set nk:set set-font nk:set-font +Builtin set-num-vertices nk:set-num-vertices set-radius nk:set-radius setpos nk:setpos setwin nk:setwin +Builtin show nk:show slider nk:slider slider-int nk:slider-int space nk:space spacing nk:spacing stroke-arc nk:stroke-arc +Builtin stroke-circle nk:stroke-circle stroke-curve nk:stroke-curve stroke-line nk:stroke-line stroke-polygon nk:stroke-polygon +Builtin stroke-polyline nk:stroke-polyline stroke-rect nk:stroke-rect stroke-tri nk:stroke-tri style-from-table nk:style-from-table +Builtin swipe nk:swipe swipe-dir-threshold nk:swipe-dir-threshold swipe-threshold nk:swipe-threshold +Builtin text nk:text text-align nk:text-align text-font nk:text-font text-pad nk:text-pad text? nk:text? +Builtin timer-delay nk:timer-delay timer? nk:timer? tooltip nk:tooltip translate nk:translate tree-pop nk:tree-pop +Builtin tree-state-push nk:tree-state-push use-style nk:use-style vsync nk:vsync widget nk:widget widget-bounds nk:widget-bounds +Builtin widget-disable nk:widget-disable widget-fitting nk:widget-fitting widget-high nk:widget-high +Builtin widget-hovered? nk:widget-hovered? widget-mouse-click-down? nk:widget-mouse-click-down? widget-mouse-clicked? nk:widget-mouse-clicked? +Builtin widget-pos nk:widget-pos widget-size nk:widget-size widget-size nk:widget-size widget-wide nk:widget-wide +Builtin win nk:win win-bounds nk:win-bounds win-bounds! nk:win-bounds! win-close nk:win-close win-closed? nk:win-closed? +Builtin win-collapse nk:win-collapse win-collapsed? nk:win-collapsed? win-content-bounds nk:win-content-bounds +Builtin win-focus nk:win-focus win-focused? nk:win-focused? win-hidden? nk:win-hidden? win-high nk:win-high +Builtin win-hovered? nk:win-hovered? win-pos nk:win-pos win-scroll-ofs nk:win-scroll-ofs win-scroll-ofs! nk:win-scroll-ofs! +Builtin win-show nk:win-show win-size nk:win-size win-wide nk:win-wide win? nk:win? x>pt nk:x>pt x>rect nk:x>rect +Builtin MAX ns:MAX ! o:! + o:+ +? o:+? ??? o:??? @ o:@ class o:class exec o:exec isa o:isa method o:method +Builtin mutate o:mutate new o:new super o:super chroot os:chroot devname os:devname docker? os:docker? +Builtin env os:env lang os:lang locales os:locales notify os:notify power-state os:power-state region os:region +Builtin waitpid os:waitpid bezier pdf:bezier bezierq pdf:bezierq circle pdf:circle color pdf:color +Builtin ellipse pdf:ellipse font pdf:font img pdf:img line pdf:line new pdf:new page pdf:page page-size pdf:page-size +Builtin rect pdf:rect save pdf:save size pdf:size text pdf:text text-rotate pdf:text-rotate text-size pdf:text-size +Builtin text-width pdf:text-width text-wrap pdf:text-wrap text-wrap-rotate pdf:text-wrap-rotate cast ptr:cast +Builtin len ptr:len null? ptr:null? pack ptr:pack unpack ptr:unpack unpack_orig ptr:unpack_orig publish pubsub:publish +Builtin qsize pubsub:qsize subscribe pubsub:subscribe + q:+ clear q:clear len q:len new q:new notify q:notify +Builtin overwrite q:overwrite peek q:peek pick q:pick pop q:pop push q:push remove q:remove shift q:shift +Builtin size q:size slide q:slide throwing q:throwing wait q:wait ++match r:++match +/ r:+/ +match r:+match +Builtin / r:/ @ r:@ len r:len match r:match new r:new rx r:rx str r:str * rat:* + rat:+ - rat:- / rat:/ +Builtin >n rat:>n >s rat:>s new rat:new proper rat:proper ! s:! * s:* + s:+ - s:- / s:/ /scripts s:/scripts +Builtin <+ s:<+ <> s:<> = s:= =ic s:=ic >base64 s:>base64 >ucs2 s:>ucs2 @ s:@ append s:append base64> s:base64> +Builtin clear s:clear cmp s:cmp cmpi s:cmpi compress s:compress count-match s:count-match days! s:days! +Builtin dist s:dist each s:each each! s:each! eachline s:eachline escape s:escape expand s:expand fill s:fill +Builtin fold s:fold globmatch s:globmatch hexupr s:hexupr insert s:insert intl s:intl intl! s:intl! +Builtin lang s:lang lc s:lc lc? s:lc? len s:len lsub s:lsub ltrim s:ltrim map s:map months! s:months! +Builtin n> s:n> new s:new norm s:norm reduce s:reduce repinsert s:repinsert replace s:replace replace! s:replace! +Builtin rev s:rev rsearch s:rsearch rsub s:rsub rtrim s:rtrim scan-match s:scan-match script? s:script? +Builtin search s:search size s:size slice s:slice soundex s:soundex strfmap s:strfmap strfmt s:strfmt +Builtin term s:term text-wrap s:text-wrap tr s:tr translate s:translate trim s:trim tsub s:tsub uc s:uc +Builtin uc? s:uc? ucs2> s:ucs2> utf8? s:utf8? zt s:zt close sio:close enum sio:enum open sio:open opts! sio:opts! +Builtin opts@ sio:opts@ read sio:read write sio:write @ slv:@ auto slv:auto build slv:build constraint slv:constraint +Builtin dump slv:dump edit slv:edit named-variable slv:named-variable new slv:new relation slv:relation +Builtin reset slv:reset suggest slv:suggest term slv:term update slv:update v[] slv:v[] variable slv:variable +Builtin v{} slv:v{} new smtp:new send smtp:send apply-filter snd:apply-filter devices? snd:devices? +Builtin end-record snd:end-record filter snd:filter freq snd:freq gain snd:gain gain? snd:gain? init snd:init +Builtin len snd:len loop snd:loop loop? snd:loop? mix snd:mix new snd:new pause snd:pause play snd:play +Builtin played snd:played rate snd:rate ready? snd:ready? record snd:record resume snd:resume seek snd:seek +Builtin stop snd:stop stopall snd:stopall volume snd:volume volume? snd:volume? + st:+ . st:. clear st:clear +Builtin len st:len ndrop st:ndrop new st:new op! st:op! peek st:peek pick st:pick pop st:pop push st:push +Builtin roll st:roll shift st:shift size st:size slide st:slide swap st:swap throwing st:throwing >buf struct:>buf +Builtin arr> struct:arr> buf struct:buf buf> struct:buf> byte struct:byte double struct:double field! struct:field! +Builtin field@ struct:field@ float struct:float ignore struct:ignore int struct:int long struct:long +Builtin struct; struct:struct; word struct:word ! t:! @ t:@ by-name t:by-name cor t:cor cor-drop t:cor-drop +Builtin curtask t:curtask def-queue t:def-queue def-stack t:def-stack done? t:done? dtor t:dtor err! t:err! +Builtin err? t:err? errno? t:errno? extra t:extra getq t:getq handler t:handler handler@ t:handler@ +Builtin kill t:kill list t:list main t:main max-exceptions t:max-exceptions name! t:name! name@ t:name@ +Builtin notify t:notify parent t:parent pop t:pop priority t:priority push t:push push! t:push! q-notify t:q-notify +Builtin q-wait t:q-wait qlen t:qlen result t:result set-affinity t:set-affinity setq t:setq start t:start +Builtin task t:task task-n t:task-n task-stop t:task-stop ticks t:ticks wait t:wait yield t:yield yield! t:yield! +Builtin add tree:add binary tree:binary bk tree:bk btree tree:btree cmp! tree:cmp! data tree:data del tree:del +Builtin find tree:find iter tree:iter next tree:next nodes tree:nodes parent tree:parent parse tree:parse +Builtin prev tree:prev root tree:root search tree:search trie tree:trie ! w:! (is) w:(is) @ w:@ alias: w:alias: +Builtin cb w:cb deprecate w:deprecate dlcall w:dlcall dlopen w:dlopen dlsym w:dlsym exec w:exec exec? w:exec? +Builtin ffifail w:ffifail find w:find forget w:forget is w:is name w:name undo w:undo close ws:close +Builtin decode ws:decode encode ws:encode encode-nomask ws:encode-nomask gen-accept-header ws:gen-accept-header +Builtin gen-accept-key ws:gen-accept-key opcodes ws:opcodes open ws:open >s xml:>s >txt xml:>txt md-init xml:md-init +Builtin md-parse xml:md-parse parse xml:parse parse-html xml:parse-html parse-stream xml:parse-stream +Builtin getmsg[] zmq:getmsg[] sendmsg[] zmq:sendmsg[] + + +" numbers +syn keyword eighthMath decimal hex base@ base! +syn match eighthInteger '\<-\=[0-9.]*[0-9.]\+\>' + +" recognize hex and binary numbers, the '$' and '%' notation is for eighth +syn match eighthInteger '\<\$\x*\x\+\>' " *1* --- dont't mess +syn match eighthInteger '\<\x*\d\x*\>' " *2* --- this order! +syn match eighthInteger '\<%[0-1]*[0-1]\+\>' +syn match eighthInteger "\<'.\>" + +syn include @SQL syntax/sql.vim +syn region eightSQL matchgroup=Define start=/\/ contains=@SQL keepend +syn region eightSQL matchgroup=Define start=/\/ contains=@SQL keepend +syn region eightSQL matchgroup=Define start=/\/ contains=@SQL keepend + +" Strings +syn region eighthString start=+\.\?\"+ skip=+"+ end=+$+ +syn keyword jsonNull null +syn keyword jsonBool /\(true\|false\)/ +syn region eighthString start=/\<"/ end=/"\>/ +syn match jsonObjEntry /"\"[^"]\+\"\ze\s*:/ + +syn region eighthNeeds start=+needs\[+ end=+]+ matchgroup=eighthNeeds2 transparent +syn match eighthNeeds2 /\/ + +syn match eighthBuiltin /m:\[]!/ +syn match eighthBuiltin /v:\[]/ +syn match eighthBuiltin /db:bind-exec\[]/ +syn match eighthBuiltin /db:exec\[]/ +syn match eighthBuiltin /db:col\[]/ + +" TODO +syn region eighthComment start="\zs\\" end="$" contains=eighthTodo + +" The default methods for highlighting. Can be overriden later. +hi def link eighthTodo Todo +hi def link eighthNeeds2 Include +hi def link eighthNeeds Error +hi def link eighthOperators Operator +hi def link eighthMath Number +hi def link eighthInteger Number +hi def link eighthStack Special +hi def link eighthFStack Special +hi def link eighthFname Operator +hi def link eighthSP Special +hi def link eighthColonDef Define +hi def link eighthColonName Operator +hi def link eighthEndOfColonDef Define +hi def link eighthDefine Define +hi def link eighthDebug Debug +hi def link eighthCharOps Character +hi def link eighthConversion String +hi def link eighthForth Statement +hi def link eighthVocs Statement +hi def link eighthString String +hi def link eighthComment Comment +hi def link eighthClassDef Define +hi def link eighthEndOfClassDef Define +hi def link eighthObjectDef Define +hi def link eighthEndOfObjectDef Define +hi def link eighthInclude Include +hi def link eighthBuiltin Define +hi def link eighthClasses Define +hi def link eighthClassWord Keyword +hi def link jsonObject Delimiter +hi def link jsonObjEntry Label +hi def link jsonArray Special +hi def link jsonNull Function +hi def link jsonBool Boolean + +let b:current_syntax = "8th" +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ft=vim ts=4 sw=4 nocin:si diff --git a/runtime/syntax/Makefile b/runtime/syntax/Makefile new file mode 100644 index 0000000..f3b578c --- /dev/null +++ b/runtime/syntax/Makefile @@ -0,0 +1,35 @@ +# Portable Makefile for running syntax tests. + +# Override this if needed, the default assumes Vim was build in the src dir. +#VIMPROG = vim +VIMPROG = ../../src/vim + +# "runtime" relative to "runtime/syntax/testdir" +VIMRUNTIME = ../.. + +# Uncomment this line to use valgrind for memory leaks and extra warnings. +# VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=45 --log-file=valgrind.$* + +# ENVVARS = LC_ALL=C LANG=C LANGUAGE=C + +RUN_VIMTEST = VIMRUNTIME=$(VIMRUNTIME) $(VALGRIND) $(ENVVARS) ../$(VIMPROG) -f $(GUI_FLAG) + +# Uncomment this line for debugging +# DEBUGLOG = --log testlog + +# Run the tests that didn't run yet or failed previously. +# If a test succeeds a testdir/done/{name} file will be written. +# If a test fails a testdir/failed/{name}.dump file will be written. +# Progress and error messages can be found in "testdir/messages". +test: + @# the "vimcmd" file is used by the screendump utils + @echo "../$(VIMPROG)" > testdir/vimcmd + @echo "$(RUN_VIMTEST)" >> testdir/vimcmd + VIMRUNTIME=$(VIMRUNTIME) $(VIMPROG) --clean --not-a-term $(DEBUGLOG) -u testdir/runtest.vim + @# FIXME: Temporarily show the whole file to find out what goes wrong + @#if [ -f testdir/messages ]; then tail -n 6 testdir/messages; fi + @if [ -f testdir/messages ]; then cat testdir/messages; fi + + +clean testclean: + rm -f testdir/failed/* testdir/done/* testdir/vimcmd testdir/messages diff --git a/runtime/syntax/README.txt b/runtime/syntax/README.txt new file mode 100644 index 0000000..756ae41 --- /dev/null +++ b/runtime/syntax/README.txt @@ -0,0 +1,43 @@ +This directory contains Vim scripts for syntax highlighting. + +These scripts are not for a language, but are used by Vim itself: + +syntax.vim Used for the ":syntax on" command. Uses synload.vim. + +manual.vim Used for the ":syntax manual" command. Uses synload.vim. + +synload.vim Contains autocommands to load a language file when a certain + file name (extension) is used. And sets up the Syntax menu + for the GUI. + +nosyntax.vim Used for the ":syntax off" command. Undo the loading of + synload.vim. + +The "shared" directory contains generated files and what is used by more than +one syntax. + + +A few special files: + +2html.vim Converts any highlighted file to HTML (GUI only). +colortest.vim Check for color names and actual color on screen. +hitest.vim View the current highlight settings. +whitespace.vim View Tabs and Spaces. + + +If you want to write a syntax file, read the docs at ":help usr_44.txt". + +If you make a new syntax file which would be useful for others, please send it +to the vim-dev mailing list . Include instructions for +detecting the file type for this language, by file name extension or by +checking a few lines in the file. And please write the file in a portable way, +see ":help 44.12". + +If you have remarks about an existing file, send them to the maintainer of +that file. Only when you get no response send a message to the vim-dev +mailing list: . + +If you are the maintainer of a syntax file and make improvements, send the new +version to the vim-dev mailing list: + +For further info see ":help syntax" in Vim. diff --git a/runtime/syntax/a2ps.vim b/runtime/syntax/a2ps.vim new file mode 100644 index 0000000..afe3af1 --- /dev/null +++ b/runtime/syntax/a2ps.vim @@ -0,0 +1,71 @@ +" Vim syntax file +" Language: a2ps(1) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword a2psPreProc Include + \ nextgroup=a2psKeywordColon + +syn keyword a2psMacro UserOption + \ nextgroup=a2psKeywordColon + +syn keyword a2psKeyword LibraryPath AppendLibraryPath PrependLibraryPath + \ Options Medium Printer UnknownPrinter + \ DefaultPrinter OutputFirstLine + \ PageLabelFormat Delegation FileCommand + \ nextgroup=a2psKeywordColon + +syn match a2psKeywordColon contained display ':' + +syn keyword a2psKeyword Variable nextgroup=a2psVariableColon + +syn match a2psVariableColon contained display ':' + \ nextgroup=a2psVariable skipwhite + +syn match a2psVariable contained display '[^ \t:(){}]\+' + \ contains=a2psVarPrefix + +syn match a2psVarPrefix contained display + \ '\<\%(del\|pro\|ps\|pl\|toc\|user\|\)\ze\.' + +syn match a2psLineCont display '\\$' + +syn match a2psSubst display '$\%(-\=.\=\d\+\)\=\h\d\=' +syn match a2psSubst display '#[?!]\=\w\d\=' +syn match a2psSubst display '#{[^}]\+}' + +syn region a2psString display oneline start=+'+ end=+'+ + \ contains=a2psSubst + +syn region a2psString display oneline start=+"+ end=+"+ + \ contains=a2psSubst + +syn keyword a2psTodo contained TODO FIXME XXX NOTE + +syn region a2psComment display oneline start='^\s*#' end='$' + \ contains=a2psTodo,@Spell + +hi def link a2psTodo Todo +hi def link a2psComment Comment +hi def link a2psPreProc PreProc +hi def link a2psMacro Macro +hi def link a2psKeyword Keyword +hi def link a2psKeywordColon Delimiter +hi def link a2psVariableColon Delimiter +hi def link a2psVariable Identifier +hi def link a2psVarPrefix Type +hi def link a2psLineCont Special +hi def link a2psSubst PreProc +hi def link a2psString String + +let b:current_syntax = "a2ps" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/a65.vim b/runtime/syntax/a65.vim new file mode 100644 index 0000000..6445b94 --- /dev/null +++ b/runtime/syntax/a65.vim @@ -0,0 +1,153 @@ +" Vim syntax file +" Language: xa 6502 cross assembler +" Maintainer: Clemens Kirchgatterer +" Last Change: 2016 Aug 31 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" Opcodes +syn match a65Opcode "\" +syn match a65Number "#\=$[0-9A-F]*\>" +syn match a65Number "#\=&[0-7]*\>" +syn match a65Number "#\=%[01]*\>" + +syn case match + +" Types +syn match a65Type "\(^\|\s\)\.byt\($\|\s\)" +syn match a65Type "\(^\|\s\)\.word\($\|\s\)" +syn match a65Type "\(^\|\s\)\.asc\($\|\s\)" +syn match a65Type "\(^\|\s\)\.dsb\($\|\s\)" +syn match a65Type "\(^\|\s\)\.fopt\($\|\s\)" +syn match a65Type "\(^\|\s\)\.text\($\|\s\)" +syn match a65Type "\(^\|\s\)\.data\($\|\s\)" +syn match a65Type "\(^\|\s\)\.bss\($\|\s\)" +syn match a65Type "\(^\|\s\)\.zero\($\|\s\)" +syn match a65Type "\(^\|\s\)\.align\($\|\s\)" + +" Blocks +syn match a65Section "\(^\|\s\)\.(\($\|\s\)" +syn match a65Section "\(^\|\s\)\.)\($\|\s\)" + +" Strings +syn match a65String "\".*\"" + +" Program Counter +syn region a65PC start="\*=" end="\>" keepend + +" HI/LO Byte +syn region a65HiLo start="#[<>]" end="$\|\s" contains=a65Comment keepend + +" Comments +syn keyword a65Todo TODO XXX FIXME BUG contained +syn match a65Comment ";.*"hs=s+1 contains=a65Todo +syn region a65Comment start="/\*" end="\*/" contains=a65Todo,a65Comment + +" Preprocessor +syn region a65PreProc start="^#" end="$" contains=a65Comment,a65Continue +syn match a65End excludenl /end$/ contained +syn match a65Continue "\\$" contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link a65Section Special +hi def link a65Address Special +hi def link a65Comment Comment +hi def link a65PreProc PreProc +hi def link a65Number Number +hi def link a65String String +hi def link a65Type Statement +hi def link a65Opcode Type +hi def link a65PC Error +hi def link a65Todo Todo +hi def link a65HiLo Number + + +let b:current_syntax = "a65" diff --git a/runtime/syntax/aap.vim b/runtime/syntax/aap.vim new file mode 100644 index 0000000..87cedab --- /dev/null +++ b/runtime/syntax/aap.vim @@ -0,0 +1,159 @@ +" Vim syntax file +" Language: A-A-P recipe +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn include @aapPythonScript syntax/python.vim + +syn match aapVariable /$[-+?*="'\\!]*[a-zA-Z0-9_.]*/ +syn match aapVariable /$[-+?*="'\\!]*([a-zA-Z0-9_.]*)/ +syn keyword aapTodo contained TODO Todo +syn match aapString +'[^']\{-}'+ +syn match aapString +"[^"]\{-}"+ + +syn match aapCommand '^\s*:action\>' +syn match aapCommand '^\s*:add\>' +syn match aapCommand '^\s*:addall\>' +syn match aapCommand '^\s*:asroot\>' +syn match aapCommand '^\s*:assertpkg\>' +syn match aapCommand '^\s*:attr\>' +syn match aapCommand '^\s*:attribute\>' +syn match aapCommand '^\s*:autodepend\>' +syn match aapCommand '^\s*:buildcheck\>' +syn match aapCommand '^\s*:cd\>' +syn match aapCommand '^\s*:chdir\>' +syn match aapCommand '^\s*:checkin\>' +syn match aapCommand '^\s*:checkout\>' +syn match aapCommand '^\s*:child\>' +syn match aapCommand '^\s*:chmod\>' +syn match aapCommand '^\s*:commit\>' +syn match aapCommand '^\s*:commitall\>' +syn match aapCommand '^\s*:conf\>' +syn match aapCommand '^\s*:copy\>' +syn match aapCommand '^\s*:del\>' +syn match aapCommand '^\s*:deldir\>' +syn match aapCommand '^\s*:delete\>' +syn match aapCommand '^\s*:delrule\>' +syn match aapCommand '^\s*:dll\>' +syn match aapCommand '^\s*:do\>' +syn match aapCommand '^\s*:error\>' +syn match aapCommand '^\s*:execute\>' +syn match aapCommand '^\s*:exit\>' +syn match aapCommand '^\s*:export\>' +syn match aapCommand '^\s*:fetch\>' +syn match aapCommand '^\s*:fetchall\>' +syn match aapCommand '^\s*:filetype\>' +syn match aapCommand '^\s*:finish\>' +syn match aapCommand '^\s*:global\>' +syn match aapCommand '^\s*:import\>' +syn match aapCommand '^\s*:include\>' +syn match aapCommand '^\s*:installpkg\>' +syn match aapCommand '^\s*:lib\>' +syn match aapCommand '^\s*:local\>' +syn match aapCommand '^\s*:log\>' +syn match aapCommand '^\s*:ltlib\>' +syn match aapCommand '^\s*:mkdir\>' +syn match aapCommand '^\s*:mkdownload\>' +syn match aapCommand '^\s*:move\>' +syn match aapCommand '^\s*:pass\>' +syn match aapCommand '^\s*:popdir\>' +syn match aapCommand '^\s*:produce\>' +syn match aapCommand '^\s*:program\>' +syn match aapCommand '^\s*:progsearch\>' +syn match aapCommand '^\s*:publish\>' +syn match aapCommand '^\s*:publishall\>' +syn match aapCommand '^\s*:pushdir\>' +syn match aapCommand '^\s*:quit\>' +syn match aapCommand '^\s*:recipe\>' +syn match aapCommand '^\s*:refresh\>' +syn match aapCommand '^\s*:remove\>' +syn match aapCommand '^\s*:removeall\>' +syn match aapCommand '^\s*:require\>' +syn match aapCommand '^\s*:revise\>' +syn match aapCommand '^\s*:reviseall\>' +syn match aapCommand '^\s*:route\>' +syn match aapCommand '^\s*:rule\>' +syn match aapCommand '^\s*:start\>' +syn match aapCommand '^\s*:symlink\>' +syn match aapCommand '^\s*:sys\>' +syn match aapCommand '^\s*:sysdepend\>' +syn match aapCommand '^\s*:syspath\>' +syn match aapCommand '^\s*:system\>' +syn match aapCommand '^\s*:tag\>' +syn match aapCommand '^\s*:tagall\>' +syn match aapCommand '^\s*:toolsearch\>' +syn match aapCommand '^\s*:totype\>' +syn match aapCommand '^\s*:touch\>' +syn match aapCommand '^\s*:tree\>' +syn match aapCommand '^\s*:unlock\>' +syn match aapCommand '^\s*:update\>' +syn match aapCommand '^\s*:usetool\>' +syn match aapCommand '^\s*:variant\>' +syn match aapCommand '^\s*:verscont\>' + +syn match aapCommand '^\s*:print\>' nextgroup=aapPipeEnd +syn match aapPipeCmd '\s*:print\>' nextgroup=aapPipeEnd contained +syn match aapCommand '^\s*:cat\>' nextgroup=aapPipeEnd +syn match aapPipeCmd '\s*:cat\>' nextgroup=aapPipeEnd contained +syn match aapCommand '^\s*:syseval\>' nextgroup=aapPipeEnd +syn match aapPipeCmd '\s*:syseval\>' nextgroup=aapPipeEnd contained +syn match aapPipeCmd '\s*:assign\>' contained +syn match aapCommand '^\s*:eval\>' nextgroup=aapPipeEnd +syn match aapPipeCmd '\s*:eval\>' nextgroup=aapPipeEndPy contained +syn match aapPipeCmd '\s*:tee\>' nextgroup=aapPipeEnd contained +syn match aapPipeCmd '\s*:log\>' nextgroup=aapPipeEnd contained +syn match aapPipeEnd '[^|]*|' nextgroup=aapPipeCmd contained skipnl +syn match aapPipeEndPy '[^|]*|' nextgroup=aapPipeCmd contained skipnl contains=@aapPythonScript +syn match aapPipeStart '^\s*|' nextgroup=aapPipeCmd + +" +" A Python line starts with @. Can be continued with a trailing backslash. +syn region aapPythonRegion start="\s*@" skip='\\$' end=+$+ contains=@aapPythonScript keepend +" +" A Python block starts with ":python" and continues so long as the indent is +" bigger. +syn region aapPythonRegion matchgroup=aapCommand start="\z(\s*\):python" skip='\n\z1\s\|\n\s*\n' end=+$+ contains=@aapPythonScript + +" A Python expression is enclosed in backticks. +syn region aapPythonRegion start="`" skip="``" end="`" contains=@aapPythonScript + +" TODO: There is something wrong with line continuation. +syn match aapComment '#.*' contains=aapTodo +syn match aapComment '#.*\(\\\n.*\)' contains=aapTodo + +syn match aapSpecial '$#' +syn match aapSpecial '$\$' +syn match aapSpecial '$(.)' + +" A heredoc assignment. +syn region aapHeredoc start="^\s*\k\+\s*$\=+\=?\=<<\s*\z(\S*\)"hs=e+1 end="^\s*\z1\s*$"he=s-1 + +" Syncing is needed for ":python" and "VAR << EOF". Don't use Python syncing +syn sync clear +syn sync fromstart + +" The default highlighting. +hi def link aapTodo Todo +hi def link aapString String +hi def link aapComment Comment +hi def link aapSpecial Special +hi def link aapVariable Identifier +hi def link aapPipeCmd aapCommand +hi def link aapCommand Statement +hi def link aapHeredoc Constant + +let b:current_syntax = "aap" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/abap.vim b/runtime/syntax/abap.vim new file mode 100644 index 0000000..627e515 --- /dev/null +++ b/runtime/syntax/abap.vim @@ -0,0 +1,196 @@ +" Vim ABAP syntax file +" Language: SAP - ABAP/R4 +" Maintainer: Marius Piedallu van Wyk +" Last Change: 2021 Jan 02 +" Comment: Thanks to EPI-USE Labs for all your assistance. :) + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Always ignore case +syn case ignore + +" Symbol Operators (space delimited) +syn match abapSymbolOperator "\W+\W" +syn match abapSymbolOperator "\W-\W" +syn match abapSymbolOperator "\W/\W" +syn match abapSymbolOperator "\W%\W" +syn match abapSymbolOperator "\W=\W" +syn match abapSymbolOperator "\W<\W" +syn match abapSymbolOperator "\W>\W" +syn match abapSymbolOperator "\W\*\W" +syn match abapSymbolOperator "\W[<>]=\W" +syn match abapSymbolOperator "\W<>\W" +syn match abapSymbolOperator "\W\*\*\W" +syn match abapSymbolOperator "\[\]" +syn match abapSymbolOperator "->\*\?" +syn match abapSymbolOperator "=>" +syn match abapSymbolOperator "[()~:,\.&$]" + +" Literals +syn region abapCharString matchgroup=abapCharString start="'" end="'" contains=abapCharStringEscape +syn match abapCharStringEscape contained "''" + +syn region abapString matchgroup=abapString start="`" end="`" contains=abapStringEscape +syn match abapStringEscape contained "``" + +syn match abapNumber "\-\=\<\d\+\>" +syn region abapHex matchgroup=abapHex start="X'" end="'" + +setlocal iskeyword=48-57,_,A-Z,a-z,/ + +syn match abapNamespace "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\<\(EXIT\W\+FROM\W\+STEP\W\+LOOP\|EXIT\)\>" +syn match abapComplexStatement "\<\(BEGIN\W\+OF\W\+\(BLOCK\|LINE\)\|BEGIN\W\+OF\)\>" +syn match abapComplexStatement "\<\(END\W\+OF\W\+\(BLOCK\|LINE\)\|END\W\+OF\)\>" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\<\(PUBLIC\|PRIVATE\|PROTECTED\)\(\W\+SECTION\)\?\>" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\<\(ALL\W\+OCCURRENCES\)\|\(\(FIRST\|LAST\)\W\+OCCURRENCE\)\>" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\<\(UP\W\+\)\?TO\>" + +" hyphenated-word statements +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" +syn match abapComplexStatement "\" + +" ABAP statements +syn keyword abapStatement ADD ALIAS ALIASES ASSERT ASSIGN ASSIGNING AT +syn keyword abapStatement BACK +syn keyword abapStatement CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY +syn keyword abapStatement DATA DEFINE DEFINITION DEFERRED DELETE DESCRIBE DETAIL DIVIDE DO +syn keyword abapStatement ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT +syn keyword abapStatement FETCH FIELDS FORM FORMAT FREE FROM FUNCTION +syn keyword abapStatement GENERATE +syn keyword abapStatement HIDE +syn keyword abapStatement IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION +syn keyword abapStatement LEAVE LIKE LINE LOAD LOCAL LOOP +syn keyword abapStatement MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY +syn keyword abapStatement ON OVERLAY OPTIONAL OTHERS +syn keyword abapStatement PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT +syn keyword abapStatement RAISE RANGES RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURNING ROLLBACK +syn keyword abapStatement SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS +syn keyword abapStatement TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES +syn keyword abapStatement UNASSIGN ULINE UNPACK UPDATE +syn keyword abapStatement WHEN WHILE WINDOW WRITE + +" More statements +syn keyword abapStatement LINES +syn keyword abapStatement INTO GROUP BY HAVING ORDER BY SINGLE +syn keyword abapStatement APPENDING CORRESPONDING FIELDS OF TABLE +syn keyword abapStatement LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER ROWS CONNECTING +syn keyword abapStatement OCCURS STRUCTURE OBJECT PROPERTY +syn keyword abapStatement CASTING APPEND RAISING VALUE COLOR +syn keyword abapStatement CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT +syn keyword abapStatement ID NUMBER FOR TITLE OUTPUT + +" Special ABAP specific tables: +syn match abapSpecialTables "\<\(sy\|\(hrp\|p\|pa\)\d\d\d\d\|t\d\d\d.\|innnn\)-"me=e-1 contained +syn match abapStructure "\<\w\+-[^\>]"me=e-2 contains=abapSpecialTables,abapStatement,abapComplexStatement +syn match abapField "-\w\+"ms=s+1 + +" Pointer +syn match abapSpecial "<\w\+>" + +" Abap common constants: +syn keyword abapSpecial TRUE FALSE NULL SPACE + +" Includes +syn region abapInclude start="include" end="." contains=abapComment + +" Types +syn keyword abapTypes c n i int8 p f d t x string xstring decfloat16 decfloat34 + +" Atritmitic operators +syn keyword abapOperator abs sign ceil floor trunc frac acos asin atan cos sin tan +syn keyword abapOperator cosh sinh tanh exp log log10 sqrt + +" String operators +syn keyword abapStatement strlen xstrlen charlen numofchar dbmaxlen + +syn keyword abapOperator EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN + +" An error? Not strictly... but cannot think of reason this is intended. +syn match abapError "\.\." + +" Comments +syn region abapComment start="^\*" end="$" contains=abapTodo +syn match abapComment "\".*" contains=abapTodo +syn keyword abapTodo contained TODO NOTE +syn match abapTodo "\#EC\W\+\w\+" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link abapError Error +hi def link abapComment Comment +hi def link abapInclude Include +hi def link abapStatement Statement +hi def link abapComplexStatement Statement +hi def link abapSpecial Special +hi def link abapNamespace Special +hi def link abapSpecialTables Special +hi def link abapSymbolOperator abapOperator +hi def link abapOperator Operator +hi def link abapCharString String +hi def link abapString String +hi def link abapFloat Float +hi def link abapTypes Type +hi def link abapSymbol Structure +hi def link abapStructure Structure +hi def link abapField Variable +hi def link abapNumber Number +hi def link abapHex Number + + +let b:current_syntax = "abap" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/abaqus.vim b/runtime/syntax/abaqus.vim new file mode 100644 index 0000000..e6f025d --- /dev/null +++ b/runtime/syntax/abaqus.vim @@ -0,0 +1,34 @@ +" Vim syntax file +" Language: Abaqus finite element input file (www.hks.com) +" Maintainer: Carl Osterwisch +" Last Change: 2002 Feb 24 +" Remark: Huge improvement in folding performance--see filetype plugin + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Abaqus comment lines +syn match abaqusComment "^\*\*.*$" + +" Abaqus keyword lines +syn match abaqusKeywordLine "^\*\h.*" contains=abaqusKeyword,abaqusParameter,abaqusValue display +syn match abaqusKeyword "^\*\h[^,]*" contained display +syn match abaqusParameter ",[^,=]\+"lc=1 contained display +syn match abaqusValue "=\s*[^,]*"lc=1 contained display + +" Illegal syntax +syn match abaqusBadLine "^\s\+\*.*" display + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link abaqusComment Comment +hi def link abaqusKeyword Statement +hi def link abaqusParameter Identifier +hi def link abaqusValue Constant +hi def link abaqusBadLine Error + +let b:current_syntax = "abaqus" diff --git a/runtime/syntax/abc.vim b/runtime/syntax/abc.vim new file mode 100644 index 0000000..1a7b3bf --- /dev/null +++ b/runtime/syntax/abc.vim @@ -0,0 +1,51 @@ +" Vim syntax file +" Language: abc music notation language +" Maintainer: James Allwright +" URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim +" Last Change: 27th April 2001 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" tags +syn region abcGuitarChord start=+"[A-G]+ end=+"+ contained +syn match abcNote "z[1-9]*[0-9]*" contained +syn match abcNote "z[1-9]*[0-9]*/[248]\=" contained +syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*" contained +syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*/[248]\=" contained +syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*" contained +syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*/[248]\=" contained +syn match abcBar "|" contained +syn match abcBar "[:|][:|]" contained +syn match abcBar ":|2" contained +syn match abcBar "|1" contained +syn match abcBar "\[[12]" contained +syn match abcTuple "([1-9]\+:\=[0-9]*:\=[0-9]*" contained +syn match abcBroken "<\|<<\|<<<\|>\|>>\|>>>" contained +syn match abcTie "-" +syn match abcHeadField "^[A-EGHIK-TVWXZ]:.*$" contained +syn match abcBodyField "^[KLMPQWVw]:.*$" contained +syn region abcHeader start="^X:" end="^K:.*$" contained contains=abcHeadField,abcComment keepend +syn region abcTune start="^X:" end="^ *$" contains=abcHeader,abcComment,abcBar,abcNote,abcBodyField,abcGuitarChord,abcTuple,abcBroken,abcTie +syn match abcComment "%.*$" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link abcComment Comment +hi def link abcHeadField Type +hi def link abcBodyField Special +hi def link abcBar Statement +hi def link abcTuple Statement +hi def link abcBroken Statement +hi def link abcTie Statement +hi def link abcGuitarChord Identifier +hi def link abcNote Constant + + +let b:current_syntax = "abc" + +" vim: ts=4 diff --git a/runtime/syntax/abel.vim b/runtime/syntax/abel.vim new file mode 100644 index 0000000..dbed541 --- /dev/null +++ b/runtime/syntax/abel.vim @@ -0,0 +1,161 @@ +" Vim syntax file +" Language: ABEL +" Maintainer: John Cook +" Last Change: 2011 Dec 27 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" this language is oblivious to case +syn case ignore + +" A bunch of keywords +syn keyword abelHeader module title device options +syn keyword abelSection declarations equations test_vectors end +syn keyword abelDeclaration state truth_table state_diagram property +syn keyword abelType pin node attribute constant macro library + +syn keyword abelTypeId com reg neg pos buffer dc reg_d reg_t contained +syn keyword abelTypeId reg_sr reg_jk reg_g retain xor invert contained + +syn keyword abelStatement when then else if with endwith case endcase +syn keyword abelStatement fuses expr trace + +" option to omit obsolete statements +if exists("abel_obsolete_ok") + syn keyword abelStatement enable flag in +else + syn keyword abelError enable flag in +endif + +" directives +syn match abelDirective "@alternate" +syn match abelDirective "@standard" +syn match abelDirective "@const" +syn match abelDirective "@dcset" +syn match abelDirective "@include" +syn match abelDirective "@page" +syn match abelDirective "@radix" +syn match abelDirective "@repeat" +syn match abelDirective "@irp" +syn match abelDirective "@expr" +syn match abelDirective "@if" +syn match abelDirective "@ifb" +syn match abelDirective "@ifnb" +syn match abelDirective "@ifdef" +syn match abelDirective "@ifndef" +syn match abelDirective "@ifiden" +syn match abelDirective "@ifniden" + +syn keyword abelTodo contained TODO XXX FIXME + +" wrap up type identifiers to differentiate them from normal strings +syn region abelSpecifier start='istype' end=';' contains=abelTypeIdChar,abelTypeId,abelTypeIdEnd keepend +syn match abelTypeIdChar "[,']" contained +syn match abelTypeIdEnd ";" contained + +" string constants and special characters within them +syn match abelSpecial contained "\\['\\]" +syn region abelString start=+'+ skip=+\\"+ end=+'+ contains=abelSpecial + +" valid integer number formats (decimal, binary, octal, hex) +syn match abelNumber "\<[-+]\=[0-9]\+\>" +syn match abelNumber "\^d[0-9]\+\>" +syn match abelNumber "\^b[01]\+\>" +syn match abelNumber "\^o[0-7]\+\>" +syn match abelNumber "\^h[0-9a-f]\+\>" + +" special characters +" (define these after abelOperator so ?= overrides ?) +syn match abelSpecialChar "[\[\](){},;:?]" + +" operators +syn match abelLogicalOperator "[!#&$]" +syn match abelRangeOperator "\.\." +syn match abelAlternateOperator "[/*+]" +syn match abelAlternateOperator ":[+*]:" +syn match abelArithmeticOperator "[-%]" +syn match abelArithmeticOperator "<<" +syn match abelArithmeticOperator ">>" +syn match abelRelationalOperator "[<>!=]=" +syn match abelRelationalOperator "[<>]" +syn match abelAssignmentOperator "[:?]\==" +syn match abelAssignmentOperator "?:=" +syn match abelTruthTableOperator "->" + +" signal extensions +syn match abelExtension "\.aclr\>" +syn match abelExtension "\.aset\>" +syn match abelExtension "\.clk\>" +syn match abelExtension "\.clr\>" +syn match abelExtension "\.com\>" +syn match abelExtension "\.fb\>" +syn match abelExtension "\.[co]e\>" +syn match abelExtension "\.l[eh]\>" +syn match abelExtension "\.fc\>" +syn match abelExtension "\.pin\>" +syn match abelExtension "\.set\>" +syn match abelExtension "\.[djksrtq]\>" +syn match abelExtension "\.pr\>" +syn match abelExtension "\.re\>" +syn match abelExtension "\.a[pr]\>" +syn match abelExtension "\.s[pr]\>" + +" special constants +syn match abelConstant "\.[ckudfpxz]\." +syn match abelConstant "\.sv[2-9]\." + +" one-line comments +syn region abelComment start=+"+ end=+"\|$+ contains=abelNumber,abelTodo +" option to prevent C++ style comments +if !exists("abel_cpp_comments_illegal") + syn region abelComment start=+//+ end=+$+ contains=abelNumber,abelTodo +endif + +syn sync minlines=1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default highlighting. +hi def link abelHeader abelStatement +hi def link abelSection abelStatement +hi def link abelDeclaration abelStatement +hi def link abelLogicalOperator abelOperator +hi def link abelRangeOperator abelOperator +hi def link abelAlternateOperator abelOperator +hi def link abelArithmeticOperator abelOperator +hi def link abelRelationalOperator abelOperator +hi def link abelAssignmentOperator abelOperator +hi def link abelTruthTableOperator abelOperator +hi def link abelSpecifier abelStatement +hi def link abelOperator abelStatement +hi def link abelStatement Statement +hi def link abelIdentifier Identifier +hi def link abelTypeId abelType +hi def link abelTypeIdChar abelType +hi def link abelType Type +hi def link abelNumber abelString +hi def link abelString String +hi def link abelConstant Constant +hi def link abelComment Comment +hi def link abelExtension abelSpecial +hi def link abelSpecialChar abelSpecial +hi def link abelTypeIdEnd abelSpecial +hi def link abelSpecial Special +hi def link abelDirective PreProc +hi def link abelTodo Todo +hi def link abelError Error + + +let b:current_syntax = "abel" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:ts=8 diff --git a/runtime/syntax/acedb.vim b/runtime/syntax/acedb.vim new file mode 100644 index 0000000..2c2cd70 --- /dev/null +++ b/runtime/syntax/acedb.vim @@ -0,0 +1,110 @@ +" Vim syntax file +" Language: AceDB model files +" Maintainer: Stewart Morris (Stewart.Morris@ed.ac.uk) +" Last change: Thu Apr 26 10:38:01 BST 2001 +" URL: http://www.ed.ac.uk/~swmorris/vim/acedb.vim + +" Syntax file to handle all $ACEDB/wspec/*.wrm files, primarily models.wrm +" AceDB software is available from http://www.acedb.org + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword acedbXref XREF +syn keyword acedbModifier UNIQUE REPEAT + +syn case ignore +syn keyword acedbModifier Constraints +syn keyword acedbType DateType Int Text Float + +" Magic tags from: http://genome.cornell.edu/acedocs/magic/summary.html +syn keyword acedbMagic pick_me_to_call No_cache Non_graphic Title +syn keyword acedbMagic Flipped Centre Extent View Default_view +syn keyword acedbMagic From_map Minimal_view Main_Marker Map Includes +syn keyword acedbMagic Mapping_data More_data Position Ends Left Right +syn keyword acedbMagic Multi_Position Multi_Ends With Error Relative +syn keyword acedbMagic Min Anchor Gmap Grid_map Grid Submenus Cambridge +syn keyword acedbMagic No_buttons Columns Colour Surround_colour Tag +syn keyword acedbMagic Scale_unit Cursor Cursor_on Cursor_unit +syn keyword acedbMagic Locator Magnification Projection_lines_on +syn keyword acedbMagic Marker_points Marker_intervals Contigs +syn keyword acedbMagic Physical_genes Two_point Multi_point Likelihood +syn keyword acedbMagic Point_query Point_yellow Point_width +syn keyword acedbMagic Point_pne Point_pe Point_nne Point_ne +syn keyword acedbMagic Derived_tags DT_query DT_width DT_no_duplicates +syn keyword acedbMagic RH_data RH_query RH_spacing RH_show_all +syn keyword acedbMagic Names_on Width Symbol Colours Pne Pe Nne pMap +syn keyword acedbMagic Sequence Gridded FingerPrint In_Situ Cosmid_grid +syn keyword acedbMagic Layout Lines_at Space_at No_stagger A1_labelling +syn keyword acedbMagic DNA Structure From Source Source_Exons +syn keyword acedbMagic Coding CDS Transcript Assembly_tags Allele +syn keyword acedbMagic Display Colour Frame_sensitive Strand_sensitive +syn keyword acedbMagic Score_bounds Percent Bumpable Width Symbol +syn keyword acedbMagic Blixem_N Address E_mail Paper Reference Title +syn keyword acedbMagic Point_1 Point_2 Calculation Full One_recombinant +syn keyword acedbMagic Tested Selected_trans Backcross Back_one +syn keyword acedbMagic Dom_semi Dom_let Direct Complex_mixed Calc +syn keyword acedbMagic Calc_upper_conf Item_1 Item_2 Results A_non_B +syn keyword acedbMagic Score Score_by_offset Score_by_width +syn keyword acedbMagic Right_priority Blastn Blixem Blixem_X +syn keyword acedbMagic Journal Year Volume Page Author +syn keyword acedbMagic Selected One_all Recs_all One_let +syn keyword acedbMagic Sex_full Sex_one Sex_cis Dom_one Dom_selected +syn keyword acedbMagic Calc_distance Calc_lower_conf Canon_for_cosmid +syn keyword acedbMagic Reversed_physical Points Positive Negative +syn keyword acedbMagic Point_error_scale Point_segregate_ordered +syn keyword acedbMagic Point_symbol Interval_JTM Interval_RD +syn keyword acedbMagic EMBL_feature Homol Feature +syn keyword acedbMagic DT_tag Spacer Spacer_colour Spacer_width +syn keyword acedbMagic RH_positive RH_negative RH_contradictory Query +syn keyword acedbMagic Clone Y_remark PCR_remark Hybridizes_to +syn keyword acedbMagic Row Virtual_row Mixed In_pool Subpool B_non_A +syn keyword acedbMagic Interval_SRK Point_show_marginal Subsequence +syn keyword acedbMagic Visible Properties Transposon + +syn match acedbClass "^?\w\+\|^#\w\+" +syn match acedbComment "//.*" +syn region acedbComment start="/\*" end="\*/" +syn match acedbComment "^#\W.*" +syn match acedbHelp "^\*\*\w\+$" +syn match acedbTag "[^^]?\w\+\|[^^]#\w\+" +syn match acedbBlock "//#.\+#$" +syn match acedbOption "^_[DVH]\S\+" +syn match acedbFlag "\s\+-\h\+" +syn match acedbSubclass "^Class" +syn match acedbSubtag "^Visible\|^Is_a_subclass_of\|^Filter\|^Hidden" +syn match acedbNumber "\<\d\+\>" +syn match acedbNumber "\<\d\+\.\d\+\>" +syn match acedbHyb "\\|\" +syn region acedbString start=/"/ end=/"/ skip=/\\"/ oneline + +" Rest of syntax highlighting rules start here + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link acedbMagic Special +hi def link acedbHyb Special +hi def link acedbType Type +hi def link acedbOption Type +hi def link acedbSubclass Type +hi def link acedbSubtag Include +hi def link acedbFlag Include +hi def link acedbTag Include +hi def link acedbClass Todo +hi def link acedbHelp Todo +hi def link acedbXref Identifier +hi def link acedbModifier Label +hi def link acedbComment Comment +hi def link acedbBlock ModeMsg +hi def link acedbNumber Number +hi def link acedbString String + + +let b:current_syntax = "acedb" + +" The structure of the model.wrm file is sensitive to mixed tab and space +" indentation and assumes tabs are 8 so... +se ts=8 diff --git a/runtime/syntax/ada.vim b/runtime/syntax/ada.vim new file mode 100644 index 0000000..415c952 --- /dev/null +++ b/runtime/syntax/ada.vim @@ -0,0 +1,368 @@ +"---------------------------------------------------------------------------- +" Description: Vim Ada syntax file +" Language: Ada (2005) +" $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $ +" Copyright: Copyright (C) 2006 Martin Krischik +" Maintainer: Martin Krischik +" David A. Wheeler +" Simon Bradley +" Contributors: Preben Randhol. +" $Author: krischik $ +" $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $ +" Version: 4.6 +" $Revision: 887 $ +" $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/syntax/ada.vim $ +" http://www.dwheeler.com/vim +" History: 24.05.2006 MK Unified Headers +" 26.05.2006 MK ' should not be in iskeyword. +" 16.07.2006 MK Ada-Mode as vim-ball +" 02.10.2006 MK Better folding. +" 15.10.2006 MK Bram's suggestion for runtime integration +" 05.11.2006 MK Spell check for comments and strings only +" 05.11.2006 MK Bram suggested to save on spaces +" Help Page: help ft-ada-syntax +"------------------------------------------------------------------------------ +" The formal spec of Ada 2005 (ARM) is the "Ada 2005 Reference Manual". +" For more Ada 2005 info, see http://www.gnuada.org and http://www.adapower.com. +" +" This vim syntax file works on vim 7.0 only and makes use of most of Voim 7.0 +" advanced features. +"------------------------------------------------------------------------------ + +if exists("b:current_syntax") || version < 700 + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +let b:current_syntax = "ada" + +" Section: Ada is entirely case-insensitive. {{{1 +" +syntax case ignore + +" Section: Highlighting commands {{{1 +" +" There are 72 reserved words in total in Ada2005. Some keywords are +" used in more than one way. For example: +" 1. "end" is a general keyword, but "end if" ends a Conditional. +" 2. "then" is a conditional, but "and then" is an operator. +" +for b:Item in g:ada#Keywords + " Standard Exceptions (including I/O). + " We'll highlight the standard exceptions, similar to vim's Python mode. + " It's possible to redefine the standard exceptions as something else, + " but doing so is very bad practice, so simply highlighting them makes sense. + if b:Item['kind'] == "x" + execute "syntax keyword adaException " . b:Item['word'] + endif + if b:Item['kind'] == "a" + execute 'syntax match adaAttribute "\V' . b:Item['word'] . '"' + endif + " We don't normally highlight types in package Standard + " (Integer, Character, Float, etc.). I don't think it looks good + " with the other type keywords, and many Ada programs define + " so many of their own types that it looks inconsistent. + " However, if you want this highlighting, turn on "ada_standard_types". + " For package Standard's definition, see ARM section A.1. + if b:Item['kind'] == "t" && exists ("g:ada_standard_types") + execute "syntax keyword adaBuiltinType " . b:Item['word'] + endif +endfor + +" Section: others {{{1 +" +syntax keyword adaLabel others + +" Section: Operatoren {{{1 +" +syntax keyword adaOperator abs mod not rem xor +syntax match adaOperator "\" +syntax match adaOperator "\" +syntax match adaOperator "\" +syntax match adaOperator "\" +syntax match adaOperator "[-+*/<>&]" +syntax keyword adaOperator ** +syntax match adaOperator "[/<>]=" +syntax keyword adaOperator => +syntax match adaOperator "\.\." +syntax match adaOperator "=" + +" Section: <> {{{1 +" +" Handle the box, <>, specially: +" +syntax keyword adaSpecial <> + +" Section: rainbow color {{{1 +" +if exists("g:ada_rainbow_color") + syntax match adaSpecial "[:;.,]" + call rainbow_parenthsis#LoadRound () + call rainbow_parenthsis#Activate () +else + syntax match adaSpecial "[:;().,]" +endif + +" Section: := {{{1 +" +" We won't map "adaAssignment" by default, but we need to map ":=" to +" something or the "=" inside it will be mislabelled as an operator. +" Note that in Ada, assignment (:=) is not considered an operator. +" +syntax match adaAssignment ":=" + +" Section: Numbers, including floating point, exponents, and alternate bases. {{{1 +" +syntax match adaNumber "\<\d[0-9_]*\(\.\d[0-9_]*\)\=\([Ee][+-]\=\d[0-9_]*\)\=\>" +syntax match adaNumber "\<\d\d\=#\x[0-9A-Fa-f_]*\(\.\x[0-9A-Fa-f_]*\)\=#\([Ee][+-]\=\d[0-9_]*\)\=" + +" Section: Identify leading numeric signs {{{1 +" +" In "A-5" the "-" is an operator, " but in "A:=-5" the "-" is a sign. This +" handles "A3+-5" (etc.) correctly. " This assumes that if you put a +" don't put a space after +/- when it's used " as an operator, you won't +" put a space before it either -- which is true " in code I've seen. +" +syntax match adaSign "[[:space:]<>=(,|:;&*/+-][+-]\d"lc=1,hs=s+1,he=e-1,me=e-1 + +" Section: Labels for the goto statement. {{{1 +" +syntax region adaLabel start="<<" end=">>" + +" Section: Boolean Constants {{{1 +" Boolean Constants. +syntax keyword adaBoolean true false + +" Section: Warn C/C++ {{{1 +" +" Warn people who try to use C/C++ notation erroneously: +" +syntax match adaError "//" +syntax match adaError "/\*" +syntax match adaError "==" + + +" Section: Space Errors {{{1 +" +if exists("g:ada_space_errors") + if !exists("g:ada_no_trail_space_error") + syntax match adaSpaceError excludenl "\s\+$" + endif + if !exists("g:ada_no_tab_space_error") + syntax match adaSpaceError " \+\t"me=e-1 + endif + if !exists("g:ada_all_tab_usage") + syntax match adaSpecial "\t" + endif +endif + +" Section: end {{{1 +" Unless special ("end loop", "end if", etc.), "end" marks the end of a +" begin, package, task etc. Assigning it to adaEnd. +syntax match adaEnd /\/ + +syntax keyword adaPreproc pragma + +syntax keyword adaRepeat exit for loop reverse while +syntax match adaRepeat "\" + +syntax keyword adaStatement accept delay goto raise requeue return +syntax keyword adaStatement terminate +syntax match adaStatement "\" + +" Section: Handle Ada's record keywords. {{{1 +" +" 'record' usually starts a structure, but "with null record;" does not, +" and 'end record;' ends a structure. The ordering here is critical - +" 'record;' matches a "with null record", so make it a keyword (this can +" match when the 'with' or 'null' is on a previous line). +" We see the "end" in "end record" before the word record, so we match that +" pattern as adaStructure (and it won't match the "record;" pattern). +" +syntax match adaStructure "\" contains=adaRecord +syntax match adaStructure "\" contains=adaRecord +syntax match adaKeyword "\" +syntax match adaConditional "\" +syntax match adaConditional "\" +syntax match adaConditional "\" +syntax match adaConditional "\" +syntax match adaConditional "\" +syntax keyword adaConditional if case select +syntax keyword adaConditional elsif when + +" Section: other keywords {{{1 +syntax match adaKeyword "\" contains=adaRecord +syntax keyword adaKeyword all do exception in new null out +syntax keyword adaKeyword separate until overriding + +" Section: begin keywords {{{1 +" +" These keywords begin various constructs, and you _might_ want to +" highlight them differently. +" +syntax keyword adaBegin begin body declare entry generic +syntax keyword adaBegin protected renames task + +syntax match adaBegin "\" contains=adaFunction +syntax match adaBegin "\" contains=adaProcedure +syntax match adaBegin "\" contains=adaPackage + +if exists("ada_with_gnat_project_files") + syntax keyword adaBegin project +endif + +" Section: with, use {{{1 +" +if exists("ada_withuse_ordinary") + " Don't be fancy. Display "with" and "use" as ordinary keywords in all cases. + syntax keyword adaKeyword with use +else + " Highlight "with" and "use" clauses like C's "#include" when they're used + " to reference other compilation units; otherwise they're ordinary keywords. + " If we have vim 6.0 or later, we'll use its advanced pattern-matching + " capabilities so that we won't match leading spaces. + syntax match adaKeyword "\" + syntax match adaKeyword "\" + syntax match adaBeginWith "^\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc + syntax match adaSemiWith ";\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc + syntax match adaInc "\" contained contains=NONE + syntax match adaInc "\" contained contains=NONE + syntax match adaInc "\" contained contains=NONE + " Recognize "with null record" as a keyword (even the "record"). + syntax match adaKeyword "\" + " Consider generic formal parameters of subprograms and packages as keywords. + syntax match adaKeyword ";\s*\zswith\s\+\(function\|procedure\|package\)\>" + syntax match adaKeyword "^\s*\zswith\s\+\(function\|procedure\|package\)\>" +endif + +" Section: String and character constants. {{{1 +" +syntax region adaString contains=@Spell start=+"+ skip=+""+ end=+"+ +syntax match adaCharacter "'.'" + +" Section: Todo (only highlighted in comments) {{{1 +" +syntax keyword adaTodo contained TODO FIXME XXX NOTE + +" Section: Comments. {{{1 +" +syntax region adaComment + \ oneline + \ contains=adaTodo,adaLineError,@Spell + \ start="--" + \ end="$" + +" Section: line errors {{{1 +" +" Note: Line errors have become quite slow with Vim 7.0 +" +if exists("g:ada_line_errors") + syntax match adaLineError "\(^.\{79}\)\@<=." contains=ALL containedin=ALL +endif + +" Section: syntax folding {{{1 +" +" Syntax folding is very tricky - for now I still suggest to use +" indent folding +" +if exists("g:ada_folding") && g:ada_folding[0] == 's' + if stridx (g:ada_folding, 'p') >= 0 + syntax region adaPackage + \ start="\(\\|\\)\s*\z(\k*\)" + \ end="end\s\+\z1\s*;" + \ keepend extend transparent fold contains=ALL + endif + if stridx (g:ada_folding, 'f') >= 0 + syntax region adaProcedure + \ start="\\s*\z(\k*\)" + \ end="\\s\+\z1\s*;" + \ keepend extend transparent fold contains=ALL + syntax region adaFunction + \ start="\\s*\z(\k*\)" + \ end="end\s\+\z1\s*;" + \ keepend extend transparent fold contains=ALL + endif + if stridx (g:ada_folding, 'f') >= 0 + syntax region adaRecord + \ start="\" + \ end="\" + \ keepend extend transparent fold contains=ALL + endif +endif + +" Section: The default methods for highlighting. Can be overridden later. {{{1 +" +highlight def link adaCharacter Character +highlight def link adaComment Comment +highlight def link adaConditional Conditional +highlight def link adaKeyword Keyword +highlight def link adaLabel Label +highlight def link adaNumber Number +highlight def link adaSign Number +highlight def link adaOperator Operator +highlight def link adaPreproc PreProc +highlight def link adaRepeat Repeat +highlight def link adaSpecial Special +highlight def link adaStatement Statement +highlight def link adaString String +highlight def link adaStructure Structure +highlight def link adaTodo Todo +highlight def link adaType Type +highlight def link adaTypedef Typedef +highlight def link adaStorageClass StorageClass +highlight def link adaBoolean Boolean +highlight def link adaException Exception +highlight def link adaAttribute Tag +highlight def link adaInc Include +highlight def link adaError Error +highlight def link adaSpaceError Error +highlight def link adaLineError Error +highlight def link adaBuiltinType Type +highlight def link adaAssignment Special + +" Subsection: Begin, End {{{2 +" +if exists ("ada_begin_preproc") + " This is the old default display: + highlight def link adaBegin PreProc + highlight def link adaEnd PreProc +else + " This is the new default display: + highlight def link adaBegin Keyword + highlight def link adaEnd Keyword +endif + + + +" Section: sync {{{1 +" +" We don't need to look backwards to highlight correctly; +" this speeds things up greatly. +syntax sync minlines=1 maxlines=1 + +let &cpo = s:keepcpo +unlet s:keepcpo + +finish " 1}}} + +"------------------------------------------------------------------------------ +" Copyright (C) 2006 Martin Krischik +" +" Vim is Charityware - see ":help license" or uganda.txt for licence details. +"------------------------------------------------------------------------------ +"vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab +"vim: foldmethod=marker diff --git a/runtime/syntax/aflex.vim b/runtime/syntax/aflex.vim new file mode 100644 index 0000000..aa8b5f8 --- /dev/null +++ b/runtime/syntax/aflex.vim @@ -0,0 +1,82 @@ + +" Vim syntax file +" Language: AfLex (from Lex syntax file) +" Maintainer: Mathieu Clabaut +" LastChange: 02 May 2001 +" Original: Lex, maintained by Dr. Charles E. Campbell, Jr. +" Comment: Replaced sourcing c.vim file by ada.vim and rename lex* +" in aflex* + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the Ada syntax to start with +runtime! syntax/ada.vim +unlet b:current_syntax + + +" --- AfLex stuff --- + +"I'd prefer to use aflex.* , but it doesn't handle forward definitions yet +syn cluster aflexListGroup contains=aflexAbbrvBlock,aflexAbbrv,aflexAbbrv,aflexAbbrvRegExp,aflexInclude,aflexPatBlock,aflexPat,aflexBrace,aflexPatString,aflexPatTag,aflexPatTag,aflexPatComment,aflexPatCodeLine,aflexMorePat,aflexPatSep,aflexSlashQuote,aflexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2 +syn cluster aflexListPatCodeGroup contains=aflexAbbrvBlock,aflexAbbrv,aflexAbbrv,aflexAbbrvRegExp,aflexInclude,aflexPatBlock,aflexPat,aflexBrace,aflexPatTag,aflexPatTag,aflexPatComment,aflexPatCodeLine,aflexMorePat,aflexPatSep,aflexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2 + +" Abbreviations Section +syn region aflexAbbrvBlock start="^\([a-zA-Z_]\+\t\|%{\)" end="^%%$"me=e-2 skipnl nextgroup=aflexPatBlock contains=aflexAbbrv,aflexInclude,aflexAbbrvComment +syn match aflexAbbrv "^\I\i*\s"me=e-1 skipwhite contained nextgroup=aflexAbbrvRegExp +syn match aflexAbbrv "^%[sx]" contained +syn match aflexAbbrvRegExp "\s\S.*$"lc=1 contained nextgroup=aflexAbbrv,aflexInclude +syn region aflexInclude matchgroup=aflexSep start="^%{" end="%}" contained contains=ALLBUT,@aflexListGroup +syn region aflexAbbrvComment start="^\s\+/\*" end="\*/" + +"%% : Patterns {Actions} +syn region aflexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=aflexPat,aflexPatTag,aflexPatComment +syn region aflexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=aflexMorePat,aflexPatSep contains=aflexPatString,aflexSlashQuote,aflexBrace +syn region aflexBrace start="\[" skip=+\\\\\|\\+ end="]" contained +syn region aflexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained +syn match aflexPatTag "^<\I\i*\(,\I\i*\)*>*" contained nextgroup=aflexPat,aflexPatTag,aflexMorePat,aflexPatSep +syn match aflexPatTag +^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+ contained nextgroup=aflexPat,aflexPatTag,aflexMorePat,aflexPatSep +syn region aflexPatComment start="^\s*/\*" end="\*/" skipnl contained contains=cTodo nextgroup=aflexPatComment,aflexPat,aflexPatString,aflexPatTag +syn match aflexPatCodeLine ".*$" contained contains=ALLBUT,@aflexListGroup +syn match aflexMorePat "\s*|\s*$" skipnl contained nextgroup=aflexPat,aflexPatTag,aflexPatComment +syn match aflexPatSep "\s\+" contained nextgroup=aflexMorePat,aflexPatCode,aflexPatCodeLine +syn match aflexSlashQuote +\(\\\\\)*\\"+ contained +syn region aflexPatCode matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" skipnl contained contains=ALLBUT,@aflexListPatCodeGroup + +syn keyword aflexCFunctions BEGIN input unput woutput yyleng yylook yytext +syn keyword aflexCFunctions ECHO output winput wunput yyless yymore yywrap + +" includes several ALLBUTs; these have to be treated so as to exclude aflex* groups +syn cluster cParenGroup add=aflex.* +syn cluster cDefineGroup add=aflex.* +syn cluster cPreProcGroup add=aflex.* +syn cluster cMultiGroup add=aflex.* + +" Synchronization +syn sync clear +syn sync minlines=300 +syn sync match aflexSyncPat grouphere aflexPatBlock "^%[a-zA-Z]" +syn sync match aflexSyncPat groupthere aflexPatBlock "^<$" +syn sync match aflexSyncPat groupthere aflexPatBlock "^%%$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link aflexSlashQuote aflexPat +hi def link aflexBrace aflexPat +hi def link aflexAbbrvComment aflexPatComment + +hi def link aflexAbbrv SpecialChar +hi def link aflexAbbrvRegExp Macro +hi def link aflexCFunctions Function +hi def link aflexMorePat SpecialChar +hi def link aflexPat Function +hi def link aflexPatComment Comment +hi def link aflexPatString Function +hi def link aflexPatTag Special +hi def link aflexSep Delimiter + +let b:current_syntax = "aflex" + +" vim:ts=10 diff --git a/runtime/syntax/ahdl.vim b/runtime/syntax/ahdl.vim new file mode 100644 index 0000000..3a40dcf --- /dev/null +++ b/runtime/syntax/ahdl.vim @@ -0,0 +1,81 @@ +" Vim syn file +" Language: Altera AHDL +" Maintainer: John Cook +" Last Change: 2001 Apr 25 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +"this language is oblivious to case. +syn case ignore + +" a bunch of keywords +syn keyword ahdlKeyword assert begin bidir bits buried case clique +syn keyword ahdlKeyword connected_pins constant defaults define design +syn keyword ahdlKeyword device else elsif end for function generate +syn keyword ahdlKeyword gnd help_id if in include input is machine +syn keyword ahdlKeyword node of options others output parameters +syn keyword ahdlKeyword returns states subdesign table then title to +syn keyword ahdlKeyword tri_state_node variable vcc when with + +" a bunch of types +syn keyword ahdlIdentifier carry cascade dffe dff exp global +syn keyword ahdlIdentifier jkffe jkff latch lcell mcell memory opendrn +syn keyword ahdlIdentifier soft srffe srff tffe tff tri wire x + +syn keyword ahdlMegafunction lpm_and lpm_bustri lpm_clshift lpm_constant +syn keyword ahdlMegafunction lpm_decode lpm_inv lpm_mux lpm_or lpm_xor +syn keyword ahdlMegafunction busmux mux + +syn keyword ahdlMegafunction divide lpm_abs lpm_add_sub lpm_compare +syn keyword ahdlMegafunction lpm_counter lpm_mult + +syn keyword ahdlMegafunction altdpram csfifo dcfifo scfifo csdpram lpm_ff +syn keyword ahdlMegafunction lpm_latch lpm_shiftreg lpm_ram_dq lpm_ram_io +syn keyword ahdlMegafunction lpm_rom lpm_dff lpm_tff clklock pll ntsc + +syn keyword ahdlTodo contained TODO + +" String constants +syn region ahdlString start=+"+ skip=+\\"+ end=+"+ + +" valid integer number formats (decimal, binary, octal, hex) +syn match ahdlNumber '\<\d\+\>' +syn match ahdlNumber '\=?:\^]" +syn keyword ahdlOperator not and nand or nor xor xnor +syn keyword ahdlOperator mod div log2 used ceil floor + +" one line and multi-line comments +" (define these after ahdlOperator so -- overrides -) +syn match ahdlComment "--.*" contains=ahdlNumber,ahdlTodo +syn region ahdlComment start="%" end="%" contains=ahdlNumber,ahdlTodo + +" other special characters +syn match ahdlSpecialChar "[\[\]().,;]" + +syn sync minlines=1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default highlighting. +hi def link ahdlNumber ahdlString +hi def link ahdlMegafunction ahdlIdentifier +hi def link ahdlSpecialChar SpecialChar +hi def link ahdlKeyword Statement +hi def link ahdlString String +hi def link ahdlComment Comment +hi def link ahdlIdentifier Identifier +hi def link ahdlOperator Operator +hi def link ahdlTodo Todo + + +let b:current_syntax = "ahdl" +" vim:ts=8 diff --git a/runtime/syntax/aidl.vim b/runtime/syntax/aidl.vim new file mode 100644 index 0000000..3a79433 --- /dev/null +++ b/runtime/syntax/aidl.vim @@ -0,0 +1,23 @@ +" Vim syntax file +" Language: aidl (Android Interface Definition Language) +" https://developer.android.com/guide/components/aidl +" Maintainer: Dominique Pelle +" LastChange: 2020/12/03 + +" Quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +source :p:h/java.vim + +syn keyword aidlParamDir in out inout +syn keyword aidlKeyword const oneway parcelable + +" Needed for the 'in', 'out', 'inout' keywords to be highlighted. +syn cluster javaTop add=aidlParamDir + +hi def link aidlParamDir StorageClass +hi def link aidlKeyword Keyword + +let b:current_syntax = "aidl" diff --git a/runtime/syntax/alsaconf.vim b/runtime/syntax/alsaconf.vim new file mode 100644 index 0000000..143fcc0 --- /dev/null +++ b/runtime/syntax/alsaconf.vim @@ -0,0 +1,49 @@ +" Vim syntax file +" Language: alsaconf(8) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword alsoconfTodo contained FIXME TODO XXX NOTE + +syn region alsaconfComment display oneline + \ start='#' end='$' + \ contains=alsaconfTodo,@Spell + +syn match alsaconfSpecialChar contained display '\\[ntvbrf]' +syn match alsaconfSpecialChar contained display '\\\o\+' + +syn region alsaconfString start=+"+ skip=+\\$+ end=+"\|$+ + \ contains=alsaconfSpecialChar + +syn match alsaconfSpecial contained display 'confdir:' + +syn region alsaconfPreProc start='<' end='>' contains=alsaconfSpecial + +syn match alsaconfMode display '[+?!-]' + +syn keyword alsaconfKeyword card default device errors files func strings +syn keyword alsaconfKeyword subdevice type vars + +syn match alsaconfVariables display '@\(hooks\|func\|args\)' + +hi def link alsoconfTodo Todo +hi def link alsaconfComment Comment +hi def link alsaconfSpecialChar SpecialChar +hi def link alsaconfString String +hi def link alsaconfSpecial Special +hi def link alsaconfPreProc PreProc +hi def link alsaconfMode Special +hi def link alsaconfKeyword Keyword +hi def link alsaconfVariables Identifier + +let b:current_syntax = "alsaconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/amiga.vim b/runtime/syntax/amiga.vim new file mode 100644 index 0000000..5a664c4 --- /dev/null +++ b/runtime/syntax/amiga.vim @@ -0,0 +1,88 @@ +" Vim syntax file +" Language: AmigaDos +" Maintainer: Charles E. Campbell +" Last Change: Aug 31, 2016 +" Version: 10 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_AMIGA + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" Amiga Devices +syn match amiDev "\(par\|ser\|prt\|con\|nil\):" + +" Amiga aliases and paths +syn match amiAlias "\<[a-zA-Z][a-zA-Z0-9]\+:" +syn match amiAlias "\<[a-zA-Z][a-zA-Z0-9]\+:[a-zA-Z0-9/]*/" + +" strings +syn region amiString start=+"+ end=+"+ oneline contains=@Spell + +" numbers +syn match amiNumber "\<\d\+\>" + +" Logic flow +syn region amiFlow matchgroup=Statement start="if" matchgroup=Statement end="endif" contains=ALL +syn keyword amiFlow skip endskip +syn match amiError "else\|endif" +syn keyword amiElse contained else + +syn keyword amiTest contained not warn error fail eq gt ge val exists + +" echo exception +syn region amiEcho matchgroup=Statement start="\" end="$" oneline contains=amiComment +syn region amiEcho matchgroup=Statement start="^\.[bB][rR][aA]" end="$" oneline +syn region amiEcho matchgroup=Statement start="^\.[kK][eE][tT]" end="$" oneline + +" commands +syn keyword amiKey addbuffers copy fault join pointer setdate +syn keyword amiKey addmonitor cpu filenote keyshow printer setenv +syn keyword amiKey alias date fixfonts lab printergfx setfont +syn keyword amiKey ask delete fkey list printfiles setmap +syn keyword amiKey assign dir font loadwb prompt setpatch +syn keyword amiKey autopoint diskchange format lock protect sort +syn keyword amiKey avail diskcopy get magtape quit stack +syn keyword amiKey binddrivers diskdoctor getenv makedir relabel status +syn keyword amiKey bindmonitor display graphicdump makelink remrad time +syn keyword amiKey blanker iconedit more rename type +syn keyword amiKey break ed icontrol mount resident unalias +syn keyword amiKey calculator edit iconx newcli run unset +syn keyword amiKey cd endcli ihelp newshell say unsetenv +syn keyword amiKey changetaskpri endshell info nocapslock screenmode version +syn keyword amiKey clock eval initprinter nofastmem search wait +syn keyword amiKey cmd exchange input overscan serial wbpattern +syn keyword amiKey colors execute install palette set which +syn keyword amiKey conclip failat iprefs path setclock why + +" comments +syn cluster amiCommentGroup contains=amiTodo,@Spell +syn case ignore +syn keyword amiTodo contained todo +syn case match +syn match amiComment ";.*$" contains=amiCommentGroup + +" sync +syn sync lines=50 + +" Define the default highlighting. +if !exists("skip_amiga_syntax_inits") + + hi def link amiAlias Type + hi def link amiComment Comment + hi def link amiDev Type + hi def link amiEcho String + hi def link amiElse Statement + hi def link amiError Error + hi def link amiKey Statement + hi def link amiNumber Number + hi def link amiString String + hi def link amiTest Special + +endif +let b:current_syntax = "amiga" + +" vim:ts=15 diff --git a/runtime/syntax/aml.vim b/runtime/syntax/aml.vim new file mode 100644 index 0000000..46621ed --- /dev/null +++ b/runtime/syntax/aml.vim @@ -0,0 +1,144 @@ +" Vim syntax file +" Language: AML (ARC/INFO Arc Macro Language) +" Written By: Nikki Knuit +" Maintainer: Todd Glover +" Last Change: 2001 May 10 + +" FUTURE CODING: Bold application commands after &sys, &tty +" Only highlight aml Functions at the beginning +" of [], in order to avoid -read highlighted, +" or [quote] strings highlighted + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" ARC, ARCEDIT, ARCPLOT, LIBRARIAN, GRID, SCHEMAEDIT reserved words, +" defined as keywords. + +syn keyword amlArcCmd contained 2button abb abb[reviations] abs ac acos acosh add addc[ogoatt] addcogoatt addf[eatureclass] addh[istory] addi addim[age] addindexatt addit[em] additem addressb[uild] addressc[reate] addresse[rrors] addressedit addressm[atch] addressp[arse] addresst[est] addro[utemeasure] addroutemeasure addte[xt] addto[stack] addw[orktable] addx[y] adj[ust] adm[inlicense] adr[ggrid] ads adsa[rc] ae af ag[gregate] ai ai[request] airequest al alia[s] alig[n] alt[erarchive] am[sarc] and annoa[lignment] annoadd annocapture annocl[ip] annoco[verage] annocurve annoe[dit] annoedit annof annofeature annofit annoitem annola[yer] annole[vel] annolevel annoline annooffset annop[osition] annoplace annos[ize] annoselectfeatur annoset annosum annosymbol annot annot[ext] annotext annotype ao ap apm[ode] app[end] arc arcad[s] arcar[rows] arcc[ogo] arcdf[ad] arcdi[me] arcdl[g] arcdx[f] arced[it] arcedit arcen[dtext] arcf[ont] arcigd[s] arcige[s] arcla[bel] arcli[nes] arcma[rkers] arcmo[ss] +syn keyword amlArcCmd contained arcpl[ot] arcplot arcpo[int] arcr[oute] arcs arcsc[itex] arcse[ction] arcsh[ape] arcsl[f] arcsn[ap] arcsp[ot] arcte[xt] arctig[er] arctin arcto[ols] arctools arcty[pe] area areaq[uery] arm arrow arrows[ize] arrowt[ype] as asc asciig[rid] asciih[elp] asciihelp asco[nnect] asconnect asd asda[tabase] asdi[sconnect] asdisconnect asel[ect] asex[ecute] asf asin asinh asp[ect] asr[eadlocks] ast[race] at atan atan2 atanh atusage aud[ittrail] autoi[ncrement] autol[ink] axis axish[atch] axisl[abels] axisr[uler] axist[ext] bac[klocksymbol] backcoverage backenvironment backnodeangleite backsymbolitem backtextitem base[select] basi[n] bat[ch] bc be be[lls] blackout blockmaj[ority] blockmax blockmea[n] blockmed[ian] blockmin blockmino[rity] blockr[ange] blockst[d] blocksu[m] blockv[ariety] bnai bou[ndaryclean] box br[ief] bsi bti buf[fer] bug[form] bugform build builds[ta] buildv[at] calco[mp] calcomp calcu[late] cali[brateroutes] calibrateroutes can[d] cartr[ead] cartread +syn keyword amlArcCmd contained cartw[rite] cartwrite cei[l] cel[lvalue] cen[troidlabels] cgm cgme[scape] cha[nge] checkin checkinrel checkout checkoutrel chm[od] chown chownt[ransaction] chowntran chowntransaction ci ci[rcle] cir class classp[rob] classs[ig] classsample clean clear clears[elect] clip clipg[raphextent] clipm[apextent] clo[sedatabase] cntvrt co cod[efind] cog[oinverse] cogocom cogoenv cogomenu coll[ocate] color color2b[lue] color2g[reen] color2h[ue] color2r[ed] color2s[at] color2v[al] colorchart coloredit colorh[cbs] colorhcbs colu[mns] comb[ine] comm[ands] commands con connect connectu[ser] cons[ist] conto[ur] contr[olpoints] convertd[oc] convertdoc converti[mage] convertla[yer] convertli[brary] convertr[emap] convertw[orkspace] coo[rdinate] coordinate coordinates copy copyf[eatures] copyi[nfo] copyl[ayer] copyo copyo[ut] copyout copys[tack] copyw[orkspace] copyworkspace cor corr[idor] correlation cos cosh costa[llocation] costb[acklink] costd[istance] costp[ath] cou[ntvertices] +syn keyword amlArcCmd contained countvertices cpw cr create create2[dindex] createa[ttributes] createca[talog] createco[go] createcogo createf[eature] createind[ex] createinf[otable] createlab[els] createlay[er] createli[brary] createn[etindex] creater[emap] creates[ystables] createta[blespace] createti[n] createw[orkspace] createworkspace cs culdesac curs[or] curv[ature] curve3pt cut[fill] cutoff cw cx[or] da dar[cyflow] dat[aset] dba[seinfo] dbmsc dbmsc[ursor] dbmscursor dbmse[xecute] dbmsi[nfo] dbmss[et] de delete deletea[rrows] deletet[ic] deletew[orkspace] deleteworkspace demg[rid] deml[attice] dend[rogram] densify densifya[rc] describe describea[rchive] describel[attice] describeti[n] describetr[ans] describetrans dev df[adarc] dg dif[f] digi[tizer] digt[est] dim[earc] dir dir[ectory] directory disa[blepanzoom] disconnect disconnectu[ser] disp disp[lay] display dissolve dissolvee[vents] dissolveevents dista[nce] distr[ibutebuild] div dl[garc] do doce[ll] docu[ment] document dogroup drag +syn keyword amlArcCmd contained draw drawenvironment draworder draws[ig] drawselect drawt[raverses] drawz[oneshape] drop2[dindex] dropa[rchive] dropfeaturec[lass] dropfeatures dropfr[omstack] dropgroup droph[istory] dropind[ex] dropinf[otable] dropit[em] dropla[yer] droplib[rary] droplin[e] dropline dropn[etindex] dropt[ablespace] dropw[orktable] ds dt[edgrid] dtrans du[plicate] duplicatearcs dw dxf dxfa[rc] dxfi[nfo] dynamicpan dynpan ebe ec ed edg[esnap] edgematch editboundaryerro edit[coverage] editdistance editf editfeature editp[lot] editplot edits[ig] editsymbol ef el[iminate] em[f] en[d] envrst envsav ep[s] eq equ[alto] er[ase] es et et[akarc] euca[llocation] eucdir[ection] eucdis[tance] eval eventa[rc] evente[nds] eventh[atch] eventi[nfo] eventlinee[ndtext] eventlines eventlinet[ext] eventlis[t] eventma[rkers] eventme[nu] eventmenu eventpoint eventpointt[ext] eventse[ction] eventso[urce] eventt[ransform] eventtransform exi[t] exp exp1[0] exp2 expa[nd] expo[rt] exten[d] external externala[ll] +syn keyword amlArcCmd contained fd[convert] featuregroup fg fie[lddata] file fill filt[er] fix[ownership] flip flipa[ngle] float floatg[rid] floo[r] flowa[ccumulation] flowd[irection] flowl[ength] fm[od] focalf[low] focalmaj[ority] focalmax focalmea[n] focalmed[ian] focalmin focalmino[rity] focalr[ange] focalst[d] focalsu[m] focalv[ariety] fonta[rc] fontco[py] fontcr[eate] fontd[elete] fontdump fontl[oad] fontload forc[e] form[edit] formedit forms fr[equency] ge geary general[ize] generat[e] gerbera[rc] gerberr[ead] gerberread gerberw[rite] gerberwrite get getz[factor] gi gi[rasarc] gnds grai[n] graphb[ar] graphe[xtent] graphi[cs] graphicimage graphicview graphlim[its] graphlin[e] graphp[oint] graphs[hade] gray[shade] gre[aterthan] grid grida[scii] gridcl[ip] gridclip gridco[mposite] griddesk[ew] griddesp[eckle] griddi[rection] gride[dit] gridfli[p] gridflo[at] gridim[age] gridin[sert] gridl[ine] gridma[jority] gridmi[rror] gridmo[ss] gridn[et] gridnodatasymbol gridpa[int] gridpoi[nt] gridpol[y] +syn keyword amlArcCmd contained gridq[uery] gridr[otate] gridshad[es] gridshap[e] gridshi[ft] gridw[arp] group groupb[y] gt gv gv[tolerance] ha[rdcopy] he[lp] help hid[densymbol] hig[hlow] hil[lshade] his[togram] historicalview ho[ldadjust] hpgl hpgl2 hsv2b[lue] hsv2g[reen] hsv2r[ed] ht[ml] hview ia ided[it] identif[y] identit[y] idw if igdsa[rc] igdsi[nfo] ige[sarc] il[lustrator] illustrator image imageg[rid] imagep[lot] imageplot imageview imp[ort] in index indexi[tem] info infodba[se] infodbm[s] infof[ile] init90[00] init9100 init9100b init91[00] init95[00] int intersect intersectarcs intersecte[rr] isn[ull] iso[cluster] it[ems] iview j[oinitem] join keeps keepselect keyan[gle] keyar[ea] keyb[ox] keyf[orms] keyl[ine] keym keym[arker] keymap keyp[osition] keyse[paration] keysh[ade] keyspot kill killm[ap] kr[iging] la labela[ngle] labele[rrors] labelm[arkers] labels labelsc[ale] labelsp[ot] labelt[ext] lal latticecl[ip] latticeco[ntour] latticed[em] latticem[erge] latticemarkers latticeo[perate] +syn keyword amlArcCmd contained latticep[oly] latticerep[lace] latticeres[ample] lattices[pot] latticet[in] latticetext layer layera[nno] layerca[lculate] layerco[lumns] layerde[lete] layerdo[ts] layerdr[aw] layere[xport] layerf[ilter] layerid[entify] layerim[port] layerio[mode] layerli[st] layerloc[k] layerlog[file] layerq[uery] layerse[arch] layersp[ot] layert[ext] lc ldbmst le leadera[rrows] leaders leadersy[mbol] leadert[olerance] len[gth] les[sthan] lf lg lh li lib librari[an] library limitadjust limitautolink line line2pt linea[djustment] linecl[osureangle] linecolor linecolorr[amp] linecopy linecopyl[ayer] linedelete linedeletel[ayer] lineden[sity] linedir[ection] linedis[t] lineedit lineg[rid] lineh[ollow] lineinf[o] lineint[erval] linel[ayer] linelist linem[iterangle] lineo[ffset] linepa[ttern] linepe[n] linepu[t] linesa[ve] linesc[ale] linese[t] linesi[ze] linest[ats] linesy[mbol] linete[mplate] +syn keyword amlArcCmd contained linety[pe] link[s] linkfeatures list listarchives listatt listc[overages] listcoverages listdbmstables listg[rids] listgrids listhistory listi[mages] listimages listinfotables listlayers listlibraries listo[utput] listse[lect] listst[acks] liststacks listtablespaces listti[ns] listtins listtr[averses] listtran listtransactions listw[orkspaces] listworkspaces lit ll ll[sfit] lla lm ln load loada[djacent] loadcolormap locko[nly] locks[ymbol] log log1[0] log2 logf[ile] logg[ing] loo[kup] lot[area] lp[os] lstk lt lts lw madditem majority majorityf[ilter] makere[gion] makero[ute] makese[ction] makest[ack] mal[ign] map mapa[ngle] mape[xtent] mapextent mapi[nfo] mapj[oin] mapl[imits] mappo[sition] mappr[ojection] mapsc[ale] mapsh[ift] mapu[nits] mapw[arp] mapz[oom] marker markera[ngle] markercolor markercolorr[amp] markercopy markercopyl[ayer] markerdelete markerdeletel[aye] markeredit markerf[ont] markeri[nfo] markerl[ayer] markerlist markerm[ask] markero[ffset] +syn keyword amlArcCmd contained markerpa[ttern] markerpe[n] markerpu[t] markersa[ve] markersc[ale] markerse[t] markersi[ze] markersy[mbol] mas[elect] matchc[over] matchn[ode] max mb[egin] mc[opy] md[elete] me mean measure measurer[oute] measureroute med mend menu[cover] menuedit menv[ironment] merge mergeh[istory] mergev[at] mfi[t] mfr[esh] mg[roup] miadsa[rc] miadsr[ead] miadsread min minf[o] mino[rity] mir[ror] mitems mjoin ml[classify] mma[sk] mmo[ve] mn[select] mod mor[der] moran mosa[ic] mossa[rc] mossg[rid] move movee[nd] movei[tem] mp[osition] mr mr[otate] msc[ale] mse[lect] mselect mt[olerance] mu[nselect] multcurve multinv multipleadditem multipleitems multiplejoin multipleselect multprop mw[ho] nai ne near neatline neatlineg[rid] neatlineh[atch] neatlinel[abels] neatlinet[ics] new next ni[bble] nodeangleitem nodec[olor] nodee[rrors] nodem[arkers] nodep[oint] nodes nodesi[ze] nodesn[ap] nodesp[ot] nodet[ext] nor[mal] not ns[elect] oe ogrid ogridt[ool] oldwindow oo[ps] op[endatabase] or +syn keyword amlArcCmd contained osymbol over overflow overflowa[rea] overflowp[osition] overflows[eparati] overl[ayevents] overlapsymbol overlayevents overp[ost] pagee[xtent] pages[ize] pageu[nits] pal[info] pan panview par[ticletrack] patc[h] path[distance] pe[nsize] pi[ck] pli[st] plot plotcopy plotg[erber] ploti[con] plotmany plotpanel plotsc[itex] plotsi[f] pointde[nsity] pointdist pointdista[nce] pointdo[ts] pointg[rid] pointi[nterp] pointm[arkers] pointn[ode] points pointsp[ot] pointst[ats] pointt[ext] polygonb[ordertex] polygond[ots] polygone[vents] polygonevents polygonl[ines] polygons polygonsh[ades] polygonsi[zelimit] polygonsp[ot] polygont[ext] polygr[id] polyr[egion] pop[ularity] por[ouspuff] pos pos[tscript] positions postscript pow prec[ision] prep[are] princ[omp] print product producti[nfo] project projectcom[pare] projectcop[y] projectd[efine] pul[litems] pur[gehistory] put pv q q[uit] quit rand rang[e] rank rb rc re readg[raphic] reads[elect] reb[ox] recl[ass] recoverdb rect[ify] +syn keyword amlArcCmd contained red[o] refreshview regionb[uffer] regioncla[ss] regioncle[an] regiondi[ssolve] regiondo[ts] regione[rrors] regiong[roup] regionj[oin] regionl[ines] regionpoly regionpolyc[ount] regionpolycount regionpolyl[ist] regionpolylist regionq[uery] regions regionse[lect] regionsh[ades] regionsp[ot] regiont[ext] regionxa[rea] regionxarea regionxt[ab] regionxtab register registerd[bms] regr[ession] reindex rej[ects] rela[te] rele[ase] rem remapgrid reme[asure] remo[vescalar] remove removeback removecover removeedit removesnap removetransfer rename renamew[orkspace] renameworkspace reno[de] rep[lace] reposition resa[mple] resel[ect] reset resh[ape] restore restorearce[dit] restorearch[ive] resu[me] rgb2h[ue] rgb2s[at] rgb2v[al] rotate rotatep[lot] routea[rc] routeends routeendt[ext] routeer[rors] routeev[entspot] routeh[atch] routel[ines] routes routesp[ot] routest[ats] routet[ext] rp rs rt rt[l] rtl rv rw sa sai sample samples[ig] sav[e] savecolormap sc scal[ar] scat[tergram] +syn keyword amlArcCmd contained scenefog sceneformat scenehaze sceneoversample sceneroll scenesave scenesize scenesky scitexl[ine] scitexpoi[nt] scitexpol[y] scitexr[ead] scitexread scitexw[rite] scitexwrite sco screenr[estore] screens[ave] sd sds sdtse[xport] sdtsim[port] sdtsin[fo] sdtsl[ist] se sea[rchtolerance] sectiona[rc] sectionends sectionendt[ext] sectionh[atch] sectionl[ines] sections sectionsn[ap] sectionsp[ot] sectiont[ext] sel select selectb[ox] selectc[ircle] selectg[et] selectm[ask] selectmode selectpoi[nt] selectpol[ygon] selectpu[t] selectt[ype] selectw[ithin] semivariogram sep[arator] separator ser[verstatus] setan[gle] setar[row] setce[ll] setcoa[lesce] setcon[nectinfo] setd[bmscheckin] setdrawsymbol sete[ditmode] setincrement setm[ask] setn[ull] setools setreference setsymbol setturn setw[indow] sext sf sfmt sfo sha shade shadea[ngle] shadeb[ackcolor] shadecolor shadecolorr[amp] shadecopy shadecopyl[ayer] shadedelete shadedeletel[ayer] shadeedit shadegrid shadei[nfo] shadela[yer] +syn keyword amlArcCmd contained shadeli[nepattern] shadelist shadeo[ffset] shadepa[ttern] shadepe[n] shadepu[t] shadesa[ve] shadesc[ale] shadesep[aration] shadeset shadesi[ze] shadesy[mbol] shadet[ype] shapea[rc] shapef[ile] shapeg[rid] shi[ft] show showconstants showe[ditmode] shr[ink] si sin sinfo sing[leuser] sinh sink sit[e] sl slf[arc] sli[ce] slo[pe] sm smartanno snap snapc[over] snapcover snapcoverage snapenvironment snapfeatures snapitems snapo[rder] snappi[ng] snappo[ur] so[rt] sobs sos spi[der] spiraltrans spline splinem[ethod] split spot spoto[ffset] spots[ize] sproj sqr sqrt sra sre srl ss ssc ssh ssi ssky ssz sta stackh[istogram] stackprofile stacksc[attergram] stackshade stackst[ats] stati[stics] statu[s] statuscogo std stra[ighten] streamline streamlink streamo[rder] stri[pmap] subm[it] subs[elect] sum surface surfaceabbrev surfacecontours surfacedefaults surfacedrape surfaceextent surfaceinfo surfacel[ength] surfacelimits surfacemarker surfacemenu surfaceobserver surfaceprofile +syn keyword amlArcCmd contained surfaceprojectio surfacerange surfaceresolutio surfacesave surfacescene surfaceshade surfacesighting surfacetarget surfacevalue surfaceviewfield surfaceviewshed surfacevisibility surfacexsection surfacezoom surfacezscale sv svfd svs sxs symboldump symboli[tem] symbolsa[ve] symbolsc[ale] symbolse[t] symbolset sz tab[les] tal[ly] tan tanh tc te tes[t] text textal[ignment] textan[gle] textcolor textcolorr[amp] textcop[y] textde[lete] textdi[rection] textedit textfil[e] textfit textfo[nt] textin[fo] textit[em] textj[ustificatio] textlist textm[ask] texto[ffset] textpe[n] textpr[ecision] textpu[t] textq[uality] textsa[ve] textsc[ale] textse[t] textset textsi[ze] textsl[ant] textspa[cing] textspl[ine] textst[yle] textsy[mbol] tf th thie[ssen] thin ti tics tict[ext] tigera[rc] tigert[ool] tigertool til[es] timped tin tina[rc] tinc[ontour] tinerrors tinhull tinl[attice] tinlines tinmarkers tins[pot] tinshades tintext tinv[rml] tl tm tol[erance] top[ogrid] topogridtool +syn keyword amlArcCmd contained transa[ction] transfe[r] transfercoverage transferfeature transferitems transfersymbol transfo[rm] travrst travsav tre[nd] ts tsy tt tur[ntable] turnimpedance tut[orial] una[ry] unde[lete] undo ungenerate ungeneratet[in] unio[n] unit[s] unr[egisterdbms] unse[lect] unsp[lit] update updatei[nfoschema] updatel[abels] upo[s] us[age] v va[riety] vcgl vcgl2 veri[fy] vers[ion] vertex viewrst viewsav vip visd[ecode] visdecode vise[ncode] visencode visi[bility] vo[lume] vpfe[xport] vpfi[mport] vpfl[ist] vpft[ile] w war[p] wat[ershed] weedd[raw] weedo[perator] weedt[olerance] weedtolerance whe[re] whi[le] who wi[ndows] wm[f] wo[rkspace] workspace writec[andidates] writeg[raphic] writes[elect] wt x[or] ze[ta] zeta zi zo zonala[rea] zonalc[entroid] zonalf[ill] zonalg[eometry] zonalmaj[ority] zonalmax zonalmea[n] zonalmed[ian] zonalmin zonalmino[rity] zonalp[erimeter] zonalr[ange] zonalsta[ts] zonalstd zonalsu[m] zonalt[hickness] zonalv[ariety] zoomview zv + +" FORMEDIT reserved words, defined as keywords. + +syn keyword amlFormedCmd contained button choice display help input slider text + +" TABLES reserved words, defined as keywords. + +syn keyword amlTabCmd contained add additem alter asciihelp aselect at calc calculate change commands commit copy define directory dropindex dropitem erase external get help indexitem items kill list move nselect purge quit redefine rename reselect rollback save select show sort statistics unload update usagecontained + +" INFO reserved words, defined as keywords. + +syn keyword amlInfoCmd contained accept add adir alter dialog alter alt directory aret arithmetic expressions aselect automatic return calculate cchr change options change comi cominput commands list como comoutput compile concatenate controlling defaults copy cursor data delete data entry data manipulate data retrieval data update date format datafile create datafile management decode define delimiter dfmt directory management directory display do doend documentation done end environment erase execute exiting expand export external fc files first format forms control get goto help import input form ipf internal item types items label lchar list logical expressions log merge modify options modify move next nselect output password prif print programming program protect purge query quit recase redefine relate relate release notes remark rename report options reporting report reselect reserved words restrictions run save security select set sleep sort special form spool stop items system variables take terminal types terminal time topics list type update upf + +" VTRACE reserved words, defined as keywords. + +syn keyword amlVtrCmd contained add al arcscan arrowlength arrowwidth as aw backtrack branch bt cj clearjunction commands cs dash endofline endofsession eol eos fan fg foreground gap generalizetolerance gtol help hole js junctionsensitivity linesymbol linevariation linewidth ls lv lw markersymbol mode ms raster regionofinterest reset restore retrace roi save searchradius skip sr sta status stc std str straightenangle straightencorner straightendistance straightenrange vt vtrace + +" The AML reserved words, defined as keywords. + +syn keyword amlFunction contained abs access acos after angrad asin atan before calc close copy cos cover coverage cvtdistance date delete dignum dir directory entryname exist[s] exp extract file filelist format formatdate full getchar getchoice getcover getdatabase getdeflayers getfile getgrid getimage getitem getlayercols getlibrary getstack getsymbol gettin getunique iacclose iacconnect iacdisconnect iacopen iacrequest index indexed info invangle invdistance iteminfo joinfile keyword length listfile listitem listunique locase log max menu min mod noecho null okangle okdistance open pathname prefix query quote quoteexists r radang random read rename response round scratchname search show sin sort sqrt subst substr suffix tan task token translate trim truncate type unquote upcase username value variable verify write + +syn keyword amlDir contained abbreviations above all aml amlpath append arc args atool brief by call canvas cc center cl codepage commands conv_watch_to_aml coordinates cr create current cursor cwta dalines data date_format delete delvar describe dfmt digitizer display do doend dv echo else enable encode encrypt end error expansion fail file flushpoints force form format frame fullscreen function getlastpoint getpoint goto iacreturn if ignore info inform key keypad label lc left lf lg list listchar listfiles listglobal listheader listlocal listprogram listvar ll lp lr lv map matrix menu menupath menutype mess message[s] modal mouse nopaging off on others page pause pinaction popup position pt pulldown push pushpoint r repeat return right routine run runwatch rw screen seconds select self setchar severity show sidebar single size staggered station stop stripe sys system tablet tb terminal test then thread to top translate tty ty type uc ul until ur usage w warning watch when while window workspace + +syn keyword amlDir2 contained delvar dv s set setvar sv + +syn keyword amlOutput contained inform warning error pause stop tty ty type + + +" AML Directives: +syn match amlDirSym "&" +syn match amlDirective "&[a-zA-Z]*" contains=amlDir,amlDir2,amlDirSym + +" AML Functions +syn region amlFunc start="\[ *[a-zA-Z]*" end="\]" contains=amlFunction,amlVar +syn match amlFunc2 "\[.*\[.*\].*\]" contains=amlFunction,amlVar + +" Numbers: +"syn match amlNumber "-\=\<[0-9]*\.\=[0-9_]\>" + +" Quoted Strings: +syn region amlQuote start=+"+ skip=+\\"+ end=+"+ contains=amlVar +syn region amlQuote start=+'+ skip=+\\'+ end=+'+ + +" ARC Application Commands only selected at the beginning of the line, +" or after a one line &if &then statement +syn match amlAppCmd "^ *[a-zA-Z]*" contains=amlArcCmd,amlInfoCmd,amlTabCmd,amlVtrCmd,amlFormedCmd +syn region amlAppCmd start="&then" end="$" contains=amlArcCmd,amlFormedCmd,amlInfoCmd,amlTabCmd,amlVtrCmd,amlFunction,amlDirective,amlVar2,amlSkip,amlVar,amlComment + +" Variables +syn region amlVar start="%" end="%" +syn region amlVar start="%" end="%" contained +syn match amlVar2 "&s [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym +syn match amlVar2 "&sv [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym +syn match amlVar2 "&set [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym +syn match amlVar2 "&setvar [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym +syn match amlVar2 "&dv [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym +syn match amlVar2 "&delvar [a-zA-Z_.0-9]*" contains=amlDir2,amlDirSym + +" Formedit 2 word commands +syn match amlFormed "^ *check box" +syn match amlFormed "^ *data list" +syn match amlFormed "^ *symbol list" + +" Tables 2 word commands +syn match amlTab "^ *q stop" +syn match amlTab "^ *quit stop" + +" Comments: +syn match amlComment "/\*.*" + +" Regions for skipping over (not highlighting) program output strings: +syn region amlSkip matchgroup=amlOutput start="&call" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&routine" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&inform" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&return &inform" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&return &warning" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&return &error" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&pause" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&stop" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&tty" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&ty" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&typ" end="$" contains=amlVar +syn region amlSkip matchgroup=amlOutput start="&type" end="$" contains=amlVar + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link amlComment Comment +hi def link amlNumber Number +hi def link amlQuote String +hi def link amlVar Identifier +hi def link amlVar2 Identifier +hi def link amlFunction PreProc +hi def link amlDir Statement +hi def link amlDir2 Statement +hi def link amlDirSym Statement +hi def link amlOutput Statement +hi def link amlArcCmd ModeMsg +hi def link amlFormedCmd amlArcCmd +hi def link amlTabCmd amlArcCmd +hi def link amlInfoCmd amlArcCmd +hi def link amlVtrCmd amlArcCmd +hi def link amlFormed amlArcCmd +hi def link amlTab amlArcCmd + + +let b:current_syntax = "aml" diff --git a/runtime/syntax/ampl.vim b/runtime/syntax/ampl.vim new file mode 100644 index 0000000..ad78f7d --- /dev/null +++ b/runtime/syntax/ampl.vim @@ -0,0 +1,140 @@ +" Language: ampl (A Mathematical Programming Language) +" Maintainer: Krief David or +" Last Change: 2003 May 11 + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + + +"-- +syn match amplEntityKeyword "\(subject to\)\|\(subj to\)\|\(s\.t\.\)" +syn keyword amplEntityKeyword minimize maximize objective + +syn keyword amplEntityKeyword coeff coef cover obj default +syn keyword amplEntityKeyword from to to_come net_in net_out +syn keyword amplEntityKeyword dimen dimension + + + +"-- +syn keyword amplType integer binary set param var +syn keyword amplType node ordered circular reversed symbolic +syn keyword amplType arc + + + +"-- +syn keyword amplStatement check close \display drop include +syn keyword amplStatement print printf quit reset restore +syn keyword amplStatement solve update write shell model +syn keyword amplStatement data option let solution fix +syn keyword amplStatement unfix end function pipe format + + + +"-- +syn keyword amplConditional if then else and or +syn keyword amplConditional exists forall in not within + + + +"-- +syn keyword amplRepeat while repeat for + + + +"-- +syn keyword amplOperators union diff difference symdiff sum +syn keyword amplOperators inter intersect intersection cross setof +syn keyword amplOperators by less mod div product +"syn keyword amplOperators min max +"conflict between functions max, min and operators max, min + +syn match amplBasicOperators "||\|<=\|==\|\^\|<\|=\|!\|-\|\.\.\|:=" +syn match amplBasicOperators "&&\|>=\|!=\|\*\|>\|:\|/\|+\|\*\*" + + + + +"-- +syn match amplComment "\#.*" +syn region amplComment start=+\/\*+ end=+\*\/+ + +syn region amplStrings start=+\'+ skip=+\\'+ end=+\'+ +syn region amplStrings start=+\"+ skip=+\\"+ end=+\"+ + +syn match amplNumerics "[+-]\=\<\d\+\(\.\d\+\)\=\([dDeE][-+]\=\d\+\)\=\>" +syn match amplNumerics "[+-]\=Infinity" + + +"-- +syn keyword amplSetFunction card next nextw prev prevw +syn keyword amplSetFunction first last member ord ord0 + +syn keyword amplBuiltInFunction abs acos acosh alias asin +syn keyword amplBuiltInFunction asinh atan atan2 atanh ceil +syn keyword amplBuiltInFunction cos exp floor log log10 +syn keyword amplBuiltInFunction max min precision round sin +syn keyword amplBuiltInFunction sinh sqrt tan tanh trunc + +syn keyword amplRandomGenerator Beta Cauchy Exponential Gamma Irand224 +syn keyword amplRandomGenerator Normal Poisson Uniform Uniform01 + + + +"-- to highlight the 'dot-suffixes' +syn match amplDotSuffix "\h\w*\.\(lb\|ub\)"hs=e-2 +syn match amplDotSuffix "\h\w*\.\(lb0\|lb1\|lb2\|lrc\|ub0\)"hs=e-3 +syn match amplDotSuffix "\h\w*\.\(ub1\|ub2\|urc\|val\|lbs\|ubs\)"hs=e-3 +syn match amplDotSuffix "\h\w*\.\(init\|body\|dinit\|dual\)"hs=e-4 +syn match amplDotSuffix "\h\w*\.\(init0\|ldual\|slack\|udual\)"hs=e-5 +syn match amplDotSuffix "\h\w*\.\(lslack\|uslack\|dinit0\)"hs=e-6 + + + +"-- +syn match amplPiecewise "<<\|>>" + + + +"-- Todo. +syn keyword amplTodo contained TODO FIXME XXX + + + + + + + + + + + +" The default methods for highlighting. Can be overridden later. +hi def link amplEntityKeyword Keyword +hi def link amplType Type +hi def link amplStatement Statement +hi def link amplOperators Operator +hi def link amplBasicOperators Operator +hi def link amplConditional Conditional +hi def link amplRepeat Repeat +hi def link amplStrings String +hi def link amplNumerics Number +hi def link amplSetFunction Function +hi def link amplBuiltInFunction Function +hi def link amplRandomGenerator Function +hi def link amplComment Comment +hi def link amplDotSuffix Special +hi def link amplPiecewise Special + + +let b:current_syntax = "ampl" + +" vim: ts=8 + + diff --git a/runtime/syntax/ant.vim b/runtime/syntax/ant.vim new file mode 100644 index 0000000..6696f96 --- /dev/null +++ b/runtime/syntax/ant.vim @@ -0,0 +1,97 @@ +" Vim syntax file +" Language: ANT build file (xml) +" Maintainer: Johannes Zellner +" Last Change: Tue Apr 27 13:05:59 CEST 2004 +" Filenames: build.xml +" $Id: ant.vim,v 1.1 2004/06/13 18:13:18 vimboss Exp $ + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:ant_cpo_save = &cpo +set cpo&vim + +runtime! syntax/xml.vim + +syn case ignore + +if !exists('*AntSyntaxScript') + fun AntSyntaxScript(tagname, synfilename) + unlet b:current_syntax + let s:include = expand(":p:h").'/'.a:synfilename + if filereadable(s:include) + exe 'syn include @ant'.a:tagname.' '.s:include + else + exe 'syn include @ant'.a:tagname." $VIMRUNTIME/syntax/".a:synfilename + endif + + exe 'syn region ant'.a:tagname + \." start=#]\\{-}language\\s*=\\s*['\"]".a:tagname."['\"]\\(>\\|[^>]*[^/>]>\\)#" + \.' end=##' + \.' fold' + \.' contains=@ant'.a:tagname.',xmlCdataStart,xmlCdataEnd,xmlTag,xmlEndTag' + \.' keepend' + exe 'syn cluster xmlRegionHook add=ant'.a:tagname + endfun +endif + +" TODO: add more script languages here ? +call AntSyntaxScript('javascript', 'javascript.vim') +call AntSyntaxScript('jpython', 'python.vim') + + +syn cluster xmlTagHook add=antElement + +syn keyword antElement display WsdlToDotnet addfiles and ant antcall antstructure apply archives arg argument +syn keyword antElement display assertions attrib attribute available basename bcc blgenclient bootclasspath +syn keyword antElement display borland bottom buildnumber buildpath buildpathelement bunzip2 bzip2 cab +syn keyword antElement display catalogpath cc cccheckin cccheckout cclock ccmcheckin ccmcheckintask ccmcheckout +syn keyword antElement display ccmcreatetask ccmkattr ccmkbl ccmkdir ccmkelem ccmklabel ccmklbtype +syn keyword antElement display ccmreconfigure ccrmtype ccuncheckout ccunlock ccupdate checksum chgrp chmod +syn keyword antElement display chown classconstants classes classfileset classpath commandline comment +syn keyword antElement display compilerarg compilerclasspath concat concatfilter condition copy copydir +syn keyword antElement display copyfile coveragepath csc custom cvs cvschangelog cvspass cvstagdiff cvsversion +syn keyword antElement display daemons date defaultexcludes define delete deletecharacters deltree depend +syn keyword antElement display depends dependset depth description different dirname dirset disable dname +syn keyword antElement display doclet doctitle dtd ear echo echoproperties ejbjar element enable entity entry +syn keyword antElement display env equals escapeunicode exclude excludepackage excludesfile exec execon +syn keyword antElement display existing expandproperties extdirs extension extensionSet extensionset factory +syn keyword antElement display fail filelist filename filepath fileset filesmatch filetokenizer filter +syn keyword antElement display filterchain filterreader filters filterset filtersfile fixcrlf footer format +syn keyword antElement display from ftp generic genkey get gjdoc grant group gunzip gzip header headfilter http +syn keyword antElement display ignoreblank ilasm ildasm import importtypelib include includesfile input iplanet +syn keyword antElement display iplanet-ejbc isfalse isreference isset istrue jar jarlib-available +syn keyword antElement display jarlib-manifest jarlib-resolve java javac javacc javadoc javadoc2 jboss jdepend +syn keyword antElement display jjdoc jjtree jlink jonas jpcoverage jpcovmerge jpcovreport jsharpc jspc +syn keyword antElement display junitreport jvmarg lib libfileset linetokenizer link loadfile loadproperties +syn keyword antElement display location macrodef mail majority manifest map mapper marker mergefiles message +syn keyword antElement display metainf method mimemail mkdir mmetrics modified move mparse none not options or +syn keyword antElement display os outputproperty package packageset parallel param patch path pathconvert +syn keyword antElement display pathelement patternset permissions prefixlines present presetdef project +syn keyword antElement display property propertyfile propertyref propertyset pvcs pvcsproject record reference +syn keyword antElement display regexp rename renameext replace replacefilter replaceregex replaceregexp +syn keyword antElement display replacestring replacetoken replacetokens replacevalue replyto report resource +syn keyword antElement display revoke rmic root rootfileset rpm scp section selector sequential serverdeploy +syn keyword antElement display setproxy signjar size sleep socket soscheckin soscheckout sosget soslabel source +syn keyword antElement display sourcepath sql src srcfile srcfilelist srcfiles srcfileset sshexec stcheckin +syn keyword antElement display stcheckout stlabel stlist stringtokenizer stripjavacomments striplinebreaks +syn keyword antElement display striplinecomments style subant substitution support symlink sync sysproperty +syn keyword antElement display syspropertyset tabstospaces tag taglet tailfilter tar tarfileset target +syn keyword antElement display targetfile targetfilelist targetfileset taskdef tempfile test testlet text title +syn keyword antElement display to token tokenfilter touch transaction translate triggers trim tstamp type +syn keyword antElement display typedef unjar untar unwar unzip uptodate url user vbc vssadd vsscheckin +syn keyword antElement display vsscheckout vsscp vsscreate vssget vsshistory vsslabel waitfor war wasclasspath +syn keyword antElement display webapp webinf weblogic weblogictoplink websphere whichresource wlclasspath +syn keyword antElement display wljspc wsdltodotnet xmlcatalog xmlproperty xmlvalidate xslt zip zipfileset +syn keyword antElement display zipgroupfileset + +hi def link antElement Statement + +let b:current_syntax = "ant" + +let &cpo = s:ant_cpo_save +unlet s:ant_cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/antlr.vim b/runtime/syntax/antlr.vim new file mode 100644 index 0000000..9b0b061 --- /dev/null +++ b/runtime/syntax/antlr.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Antlr: ANTLR, Another Tool For Language Recognition +" Maintainer: Mathieu Clabaut +" LastChange: 02 May 2001 +" Original: Comes from JavaCC.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" This syntac file is a first attempt. It is far from perfect... + +" Uses java.vim, and adds a few special things for JavaCC Parser files. +" Those files usually have the extension *.jj + +" source the java.vim file +runtime! syntax/java.vim +unlet b:current_syntax + +"remove catching errors caused by wrong parenthesis (does not work in antlr +"files) (first define them in case they have not been defined in java) +syn match javaParen "--" +syn match javaParenError "--" +syn match javaInParen "--" +syn match javaError2 "--" +syn clear javaParen +syn clear javaParenError +syn clear javaInParen +syn clear javaError2 + +" remove function definitions (they look different) (first define in +" in case it was not defined in java.vim) +"syn match javaFuncDef "--" +"syn clear javaFuncDef +"syn match javaFuncDef "[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*)[ \t]*:" contains=javaType +" syn region javaFuncDef start=+t[a-zA-Z][a-zA-Z0-9_. \[\]]*([^-+*/()]*,[ ]*+ end=+)[ \t]*:+ + +syn keyword antlrPackages options language buildAST +syn match antlrPackages "PARSER_END([^)]*)" +syn match antlrPackages "PARSER_BEGIN([^)]*)" +syn match antlrSpecToken "" +" the dot is necessary as otherwise it will be matched as a keyword. +syn match antlrSpecToken ".LOOKAHEAD("ms=s+1,me=e-1 +syn match antlrSep "[|:]\|\.\." +syn keyword antlrActionToken TOKEN SKIP MORE SPECIAL_TOKEN +syn keyword antlrError DEBUG IGNORE_IN_BNF + +hi def link antlrSep Statement +hi def link antlrPackages Statement + +let b:current_syntax = "antlr" + +" vim: ts=8 diff --git a/runtime/syntax/apache.vim b/runtime/syntax/apache.vim new file mode 100644 index 0000000..e73045e --- /dev/null +++ b/runtime/syntax/apache.vim @@ -0,0 +1,204 @@ +" Vim syntax file +" Language: Apache configuration (httpd.conf, srm.conf, access.conf, .htaccess) +" Maintainer: David Necas (Yeti) +" License: This file can be redistribued and/or modified under the same terms +" as Vim itself. +" Last Change: 2022 Apr 25 +" Notes: Last synced with apache-2.2.3, version 1.x is no longer supported +" TODO: see particular FIXME's scattered through the file +" make it really linewise? +" + add `display' where appropriate + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" Base constructs +syn match apacheComment "^\s*#.*$" contains=apacheFixme +syn match apacheUserID "#-\?\d\+\>" +syn case match +syn keyword apacheFixme FIXME TODO XXX NOT +syn case ignore +syn match apacheAnything "\s[^>]*" contained +syn match apacheError "\w\+" contained +syn region apacheString start=+"+ end=+"+ skip=+\\\\\|\\\"+ oneline + +" Following is to prevent escaped quotes from being parsed as strings. +syn match apacheSkipQuote +\\"+ + +" Core and mpm +syn keyword apacheDeclaration AccessFileName AddDefaultCharset AllowOverride AuthName AuthType ContentDigest DefaultType DocumentRoot ErrorDocument ErrorLog HostNameLookups IdentityCheck Include KeepAlive KeepAliveTimeout LimitRequestBody LimitRequestFields LimitRequestFieldsize LimitRequestLine LogLevel MaxKeepAliveRequests NameVirtualHost Options Require RLimitCPU RLimitMEM RLimitNPROC Satisfy ScriptInterpreterSource ServerAdmin ServerAlias ServerName ServerPath ServerRoot ServerSignature ServerTokens TimeOut UseCanonicalName +syn keyword apacheDeclaration AcceptPathInfo CGIMapExtension EnableMMAP FileETag ForceType LimitXMLRequestBody SetHandler SetInputFilter SetOutputFilter +syn keyword apacheDeclaration AcceptFilter AllowEncodedSlashes EnableSendfile LimitInternalRecursion TraceEnable +syn keyword apacheOption INode MTime Size +syn keyword apacheOption Any All On Off Double EMail DNS Min Minimal OS Prod ProductOnly Full +syn keyword apacheOption emerg alert crit error warn notice info debug +syn keyword apacheOption registry script inetd standalone +syn match apacheOptionOption "[+-]\?\<\(ExecCGI\|FollowSymLinks\|Includes\|IncludesNoExec\|Indexes\|MultiViews\|SymLinksIfOwnerMatch\)\>" +syn keyword apacheOption user group +syn match apacheOption "\" +syn case match +syn keyword apacheMethodOption GET POST PUT DELETE CONNECT OPTIONS TRACE PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK contained +" Added as suggested by Mikko Koivunalho +syn keyword apacheMethodOption BASELINE-CONTROL CHECKIN CHECKOUT LABEL MERGE MKACTIVITY MKWORKSPACE REPORT UNCHECKOUT UPDATE VERSION-CONTROL contained +syn case ignore +syn match apacheSection "<\/\=\(Directory\|DirectoryMatch\|Files\|FilesMatch\|IfModule\|IfDefine\|Location\|LocationMatch\|VirtualHost\)[^>]*>" contains=apacheAnything +syn match apacheSection "<\/\=\(RequireAll\|RequireAny\|RequireNone\)>" contains=apacheAnything +syn match apacheLimitSection "<\/\=\(Limit\|LimitExcept\)[^>]*>" contains=apacheLimitSectionKeyword,apacheMethodOption,apacheError +syn keyword apacheLimitSectionKeyword Limit LimitExcept contained +syn match apacheAuthType "AuthType\s.*$" contains=apacheAuthTypeValue +syn keyword apacheAuthTypeValue Basic Digest +syn match apacheAllowOverride "AllowOverride\s.*$" contains=apacheAllowOverrideValue,apacheComment +syn keyword apacheAllowOverrideValue AuthConfig FileInfo Indexes Limit Options contained +syn keyword apacheDeclaration CoreDumpDirectory EnableExceptionHook GracefulShutdownTimeout Group Listen ListenBacklog LockFile MaxClients MaxMemFree MaxRequestsPerChild MaxSpareThreads MaxSpareThreadsPerChild MinSpareThreads NumServers PidFile ScoreBoardFile SendBufferSize ServerLimit StartServers StartThreads ThreadLimit ThreadsPerChild User +syn keyword apacheDeclaration MaxThreads ThreadStackSize +syn keyword apacheDeclaration Win32DisableAcceptEx +syn keyword apacheDeclaration AssignUserId ChildPerUserId +syn keyword apacheDeclaration AcceptMutex MaxSpareServers MinSpareServers +syn keyword apacheOption flock fcntl sysvsem pthread + +" Modules +syn keyword apacheDeclaration Action Script +syn keyword apacheDeclaration Alias AliasMatch Redirect RedirectMatch RedirectTemp RedirectPermanent ScriptAlias ScriptAliasMatch +syn keyword apacheOption permanent temp seeother gone +syn keyword apacheDeclaration AuthAuthoritative AuthGroupFile AuthUserFile +syn keyword apacheDeclaration AuthBasicAuthoritative AuthBasicProvider +syn keyword apacheDeclaration AuthDigestAlgorithm AuthDigestDomain AuthDigestNcCheck AuthDigestNonceFormat AuthDigestNonceLifetime AuthDigestProvider AuthDigestQop AuthDigestShmemSize +syn keyword apacheOption none auth auth-int MD5 MD5-sess +syn match apacheSection "<\/\=\(]*>" contains=apacheAnything +syn keyword apacheDeclaration Anonymous Anonymous_Authoritative Anonymous_LogEmail Anonymous_MustGiveEmail Anonymous_NoUserID Anonymous_VerifyEmail +syn keyword apacheDeclaration AuthDBDUserPWQuery AuthDBDUserRealmQuery +syn keyword apacheDeclaration AuthDBMGroupFile AuthDBMAuthoritative +syn keyword apacheDeclaration AuthDBM TypeAuthDBMUserFile +syn keyword apacheOption default SDBM GDBM NDBM DB +syn keyword apacheDeclaration AuthDefaultAuthoritative +syn keyword apacheDeclaration AuthUserFile +syn keyword apacheDeclaration AuthLDAPBindON AuthLDAPEnabled AuthLDAPFrontPageHack AuthLDAPStartTLS +syn keyword apacheDeclaration AuthLDAPBindDN AuthLDAPBindPassword AuthLDAPCharsetConfig AuthLDAPCompareDNOnServer AuthLDAPDereferenceAliases AuthLDAPGroupAttribute AuthLDAPGroupAttributeIsDN AuthLDAPRemoteUserIsDN AuthLDAPUrl AuthzLDAPAuthoritative +syn keyword apacheOption always never searching finding +syn keyword apacheOption ldap-user ldap-group ldap-dn ldap-attribute ldap-filter +syn keyword apacheDeclaration AuthDBMGroupFile AuthzDBMAuthoritative AuthzDBMType +syn keyword apacheDeclaration AuthzDefaultAuthoritative +syn keyword apacheDeclaration AuthGroupFile AuthzGroupFileAuthoritative +syn match apacheAllowDeny "Allow\s\+from.*$" contains=apacheAllowDenyValue,apacheComment +syn match apacheAllowDeny "Deny\s\+from.*$" contains=apacheAllowDenyValue,apacheComment +syn keyword apacheAllowDenyValue All None contained +syn match apacheOrder "^\s*Order\s.*$" contains=apacheOrderValue,apacheComment +syn keyword apacheOrderValue Deny Allow contained +syn keyword apacheDeclaration AuthzOwnerAuthoritative +syn keyword apacheDeclaration AuthzUserAuthoritative +syn keyword apacheDeclaration AddAlt AddAltByEncoding AddAltByType AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon HeaderName IndexIgnore IndexOptions IndexOrderDefault ReadmeName +syn keyword apacheDeclaration IndexStyleSheet +syn keyword apacheOption DescriptionWidth FancyIndexing FoldersFirst IconHeight IconsAreLinks IconWidth NameWidth ScanHTMLTitles SuppressColumnSorting SuppressDescription SuppressHTMLPreamble SuppressLastModified SuppressSize TrackModified +syn keyword apacheOption Ascending Descending Name Date Size Description +syn keyword apacheOption HTMLTable SuppressIcon SuppressRules VersionSort XHTML +syn keyword apacheOption IgnoreClient IgnoreCase ShowForbidden SuppresRules +syn keyword apacheDeclaration CacheForceCompletion CacheMaxStreamingBuffer +syn keyword apacheDeclaration CacheDefaultExpire CacheDisable CacheEnable CacheIgnoreCacheControl CacheIgnoreHeaders CacheIgnoreNoLastMod CacheLastModifiedFactor CacheMaxExpire CacheStoreNoStore CacheStorePrivate +syn keyword apacheDeclaration MetaFiles MetaDir MetaSuffix +syn keyword apacheDeclaration ScriptLog ScriptLogLength ScriptLogBuffer +syn keyword apacheDeclaration ScriptStock +syn keyword apacheDeclaration CharsetDefault CharsetOptions CharsetSourceEnc +syn keyword apacheOption DebugLevel ImplicitAdd NoImplicitAdd +syn keyword apacheDeclaration Dav DavDepthInfinity DavMinTimeout +syn keyword apacheDeclaration DavLockDB +syn keyword apacheDeclaration DavGenericLockDB +syn keyword apacheDeclaration DBDExptime DBDKeep DBDMax DBDMin DBDParams DBDPersist DBDPrepareSQL DBDriver +syn keyword apacheDeclaration DeflateCompressionLevel DeflateBufferSize DeflateFilterNote DeflateMemLevel DeflateWindowSize +syn keyword apacheDeclaration DirectoryIndex DirectorySlash +syn keyword apacheDeclaration CacheExpiryCheck CacheGcClean CacheGcDaily CacheGcInterval CacheGcMemUsage CacheGcUnused CacheSize CacheTimeMargin +syn keyword apacheDeclaration CacheDirLength CacheDirLevels CacheMaxFileSize CacheMinFileSize CacheRoot +syn keyword apacheDeclaration DumpIOInput DumpIOOutput +syn keyword apacheDeclaration ProtocolEcho +syn keyword apacheDeclaration PassEnv SetEnv UnsetEnv +syn keyword apacheDeclaration Example +syn keyword apacheDeclaration ExpiresActive ExpiresByType ExpiresDefault +syn keyword apacheDeclaration ExtFilterDefine ExtFilterOptions +syn keyword apacheOption PreservesContentLength DebugLevel LogStderr NoLogStderr +syn match apacheOption "\<\(cmd\|mode\|intype\|outtype\|ftype\|disableenv\|enableenv\)\ze=" +syn keyword apacheDeclaration CacheFile MMapFile +syn keyword apacheDeclaration FilterChain FilterDeclare FilterProtocol FilterProvider FilterTrace +syn keyword apacheDeclaration Header +syn keyword apacheDeclaration RequestHeader +syn keyword apacheOption set unset append add +syn keyword apacheDeclaration IdentityCheck IdentityCheckTimeout +syn keyword apacheDeclaration ImapMenu ImapDefault ImapBase +syn keyword apacheOption none formatted semiformatted unformatted +syn keyword apacheOption nocontent referer error map +syn keyword apacheDeclaration SSIEndTag SSIErrorMsg SSIStartTag SSITimeFormat SSIUndefinedEcho XBitHack +syn keyword apacheOption on off full +syn keyword apacheDeclaration AddModuleInfo +syn keyword apacheDeclaration ISAPIReadAheadBuffer ISAPILogNotSupported ISAPIAppendLogToErrors ISAPIAppendLogToQuery +syn keyword apacheDeclaration ISAPICacheFile ISAIPFakeAsync +syn keyword apacheDeclaration LDAPCertDBPath +syn keyword apacheDeclaration LDAPCacheEntries LDAPCacheTTL LDAPConnectionTimeout LDAPOpCacheEntries LDAPOpCacheTTL LDAPSharedCacheFile LDAPSharedCacheSize LDAPTrustedClientCert LDAPTrustedGlobalCert LDAPTrustedMode LDAPVerifyServerCert +syn keyword apacheOption CA_DER CA_BASE64 CA_CERT7_DB CA_SECMOD CERT_DER CERT_BASE64 CERT_KEY3_DB CERT_NICKNAME CERT_PFX KEY_DER KEY_BASE64 KEY_PFX +syn keyword apacheDeclaration BufferedLogs CookieLog CustomLog LogFormat TransferLog +syn keyword apacheDeclaration ForensicLog +syn keyword apacheDeclaration MCacheMaxObjectCount MCacheMaxObjectSize MCacheMaxStreamingBuffer MCacheMinObjectSize MCacheRemovalAlgorithm MCacheSize +syn keyword apacheDeclaration AddCharset AddEncoding AddHandler AddLanguage AddType DefaultLanguage RemoveEncoding RemoveHandler RemoveType TypesConfig +syn keyword apacheDeclaration AddInputFilter AddOutputFilter ModMimeUsePathInfo MultiviewsMatch RemoveInputFilter RemoveOutputFilter RemoveCharset +syn keyword apacheOption NegotiatedOnly Filters Handlers +syn keyword apacheDeclaration MimeMagicFile +syn keyword apacheDeclaration MMapFile +syn keyword apacheDeclaration CacheNegotiatedDocs LanguagePriority ForceLanguagePriority +syn keyword apacheDeclaration NWSSLTrustedCerts NWSSLUpgradeable SecureListen +syn keyword apacheDeclaration PerlModule PerlRequire PerlTaintCheck PerlWarn +syn keyword apacheDeclaration PerlSetVar PerlSetEnv PerlPassEnv PerlSetupEnv +syn keyword apacheDeclaration PerlInitHandler PerlPostReadRequestHandler PerlHeaderParserHandler +syn keyword apacheDeclaration PerlTransHandler PerlAccessHandler PerlAuthenHandler PerlAuthzHandler +syn keyword apacheDeclaration PerlTypeHandler PerlFixupHandler PerlHandler PerlLogHandler +syn keyword apacheDeclaration PerlCleanupHandler PerlChildInitHandler PerlChildExitHandler +syn keyword apacheDeclaration PerlRestartHandler PerlDispatchHandler +syn keyword apacheDeclaration PerlFreshRestart PerlSendHeader +syn keyword apacheDeclaration php_value php_flag php_admin_value php_admin_flag +syn match apacheSection "<\/\=\(Proxy\|ProxyMatch\)[^>]*>" contains=apacheAnything +syn keyword apacheDeclaration AllowCONNECT NoProxy ProxyBadHeader ProxyBlock ProxyDomain ProxyErrorOverride ProxyIOBufferSize ProxyMaxForwards ProxyPass ProxyPassMatch ProxyPassReverse ProxyPassReverseCookieDomain ProxyPassReverseCookiePath ProxyPreserveHost ProxyReceiveBufferSize ProxyRemote ProxyRemoteMatch ProxyRequests ProxyTimeout ProxyVia +syn keyword apacheDeclaration RewriteBase RewriteCond RewriteEngine RewriteLock RewriteLog RewriteLogLevel RewriteMap RewriteOptions RewriteRule +syn keyword apacheOption inherit +syn keyword apacheDeclaration BrowserMatch BrowserMatchNoCase SetEnvIf SetEnvIfNoCase +syn keyword apacheDeclaration LoadFile LoadModule +syn keyword apacheDeclaration CheckSpelling CheckCaseOnly +syn keyword apacheDeclaration SSLCACertificateFile SSLCACertificatePath SSLCADNRequestFile SSLCADNRequestPath SSLCARevocationFile SSLCARevocationPath SSLCertificateChainFile SSLCertificateFile SSLCertificateKeyFile SSLCipherSuite SSLCompression SSLCryptoDevice SSLEngine SSLFIPS SSLHonorCipherOrder SSLInsecureRenegotiation SSLMutex SSLOptions SSLPassPhraseDialog SSLProtocol SSLProxyCACertificateFile SSLProxyCACertificatePath SSLProxyCARevocationFile SSLProxyCARevocationPath SSLProxyCheckPeerCN SSLProxyCheckPeerExpire SSLProxyCipherSuite SSLProxyEngine SSLProxyMachineCertificateChainFile SSLProxyMachineCertificateFile SSLProxyMachineCertificatePath SSLProxyProtocol SSLProxyVerify SSLProxyVerifyDepth SSLRandomSeed SSLRenegBufferSize SSLRequire SSLRequireSSL SSLSessionCache SSLSessionCacheTimeout SSLSessionTicketKeyFile SSLSessionTickets SSLStrictSNIVHostCheck SSLUserName SSLVerifyClient SSLVerifyDepth +syn match apacheOption "[+-]\?\<\(StdEnvVars\|CompatEnvVars\|ExportCertData\|FakeBasicAuth\|StrictRequire\|OptRenegotiate\)\>" +syn keyword apacheOption builtin sem +syn match apacheOption "\(file\|exec\|egd\|dbm\|shm\):" +syn match apacheOption "[+-]\?\<\(SSLv2\|SSLv3\|TLSv1\|kRSA\|kHDr\|kDHd\|kEDH\|aNULL\|aRSA\|aDSS\|aRH\|eNULL\|DES\|3DES\|RC2\|RC4\|IDEA\|MD5\|SHA1\|SHA\|EXP\|EXPORT40\|EXPORT56\|LOW\|MEDIUM\|HIGH\|RSA\|DH\|EDH\|ADH\|DSS\|NULL\)\>" +syn keyword apacheOption optional optional_no_ca +syn keyword apacheDeclaration ExtendedStatus +syn keyword apacheDeclaration SuexecUserGroup +syn keyword apacheDeclaration UserDir +syn keyword apacheDeclaration CookieDomain CookieExpires CookieName CookieStyle CookieTracking +syn keyword apacheOption Netscape Cookie Cookie2 RFC2109 RFC2965 +syn match apacheSection "<\/\=\(]*>" contains=apacheAnything +syn keyword apacheDeclaration VirtualDocumentRoot VirtualDocumentRootIP VirtualScriptAlias VirtualScriptAliasIP + +" Define the default highlighting + +hi def link apacheAllowOverride apacheDeclaration +hi def link apacheAllowOverrideValue apacheOption +hi def link apacheAuthType apacheDeclaration +hi def link apacheAuthTypeValue apacheOption +hi def link apacheOptionOption apacheOption +hi def link apacheDeclaration Function +hi def link apacheAnything apacheOption +hi def link apacheOption Number +hi def link apacheComment Comment +hi def link apacheFixme Todo +hi def link apacheLimitSectionKeyword apacheLimitSection +hi def link apacheLimitSection apacheSection +hi def link apacheSection Label +hi def link apacheMethodOption Type +hi def link apacheAllowDeny Include +hi def link apacheAllowDenyValue Identifier +hi def link apacheOrder Special +hi def link apacheOrderValue String +hi def link apacheString String +hi def link apacheError Error +hi def link apacheUserID Number + + +let b:current_syntax = "apache" diff --git a/runtime/syntax/apachestyle.vim b/runtime/syntax/apachestyle.vim new file mode 100644 index 0000000..bd5c89d --- /dev/null +++ b/runtime/syntax/apachestyle.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: Apache-Style configuration files (proftpd.conf/apache.conf/..) +" Maintainer: Ben RUBSON +" Former Maintainer: Christian Hammers +" ChangeLog: +" 2017-12-17,ch +" correctly detect comments +" 2001-05-04,ch +" adopted Vim 6.0 syntax style +" 1999-10-28,ch +" initial release + +" The following formats are recognised: +" Apache-style .conf +" # Comment +" Option value +" Option value1 value2 +" Option = value1 value2 #not apache but also allowed +"
+" Option value +" +" +"
+ +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn match apOption /^\s*[^ \t#<=]*/ +syn match apComment /^\s*#.*$/ +"syn match apLastValue /[^ \t<=#]*$/ contains=apComment ugly + +" tags +syn region apTag start=// contains=apTagOption,apTagError +" the following should originally be " [^<>]+" but this didn't work :( +syn match apTagOption contained / [-\/_\.:*a-zA-Z0-9]\+/ms=s+1 +syn match apTagError contained /[^>] +" Last Change: 2021 Jul 12 + +" quit when a syntax file was already loaded +if !exists("main_syntax") + if exists("b:current_syntax") + finish + endif + let main_syntax = 'aptconf' +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Errors: +" Catch all that is not overridden by next rules/items: +syn match aptconfError display '[^[:blank:]]' +syn match aptconfError display '^[^[:blank:]][^:{]*' + +" Options: +" Define a general regular expression for the options that are not defined +" later as keywords. Following apt.conf(5), we know that options are case +" insensitive, and can contain alphanumeric characters and '/-:._+'; we +" assume that there can not be consecutive colons (::) which is used as +" syntax operator; we also assume that an option name can not start or end +" by a colon. +syn case ignore +syn match aptconfRegexpOpt '[-[:alnum:]/.+_]\+\(:[-[:alnum:]/.+_]\+\)*' contained display + +" Keywords: +setlocal iskeyword+=/,-,.,_,+ +"setlocal iskeyword+=: is problematic, because of the '::' separator + +" Incomplete keywords will be treated differently than completely bad strings: +syn keyword aptconfGroupIncomplete + \ a[cquire] a[dequate] a[ptitude] a[ptlistbugs] d[ebtags] d[ebug] + \ d[ir] d[pkg] d[select] o[rderlist] p[ackagemanager] p[kgcachegen] + \ q[uiet] r[pm] s[ynaptic] u[nattended-upgrade] w[hatmaps] + +" Only the following keywords can be used at toplevel (to begin an option): +syn keyword aptconfGroup + \ acquire adequate apt aptitude aptlistbugs debtags debug + \ dir dpkg dselect orderlist packagemanager pkgcachegen + \ quiet rpm synaptic unattended-upgrade whatmaps + +" Possible options for each group: +" Acquire: {{{ +syn keyword aptconfAcquire contained + \ cdrom Check-Valid-Until CompressionTypes ForceHash ForceIPv4 + \ ForceIPv6 ftp gpgv GzipIndexes http https Languages Max-ValidTime + \ Min-ValidTime PDiffs Queue-Mode Retries Source-Symlinks + +syn keyword aptconfAcquireCDROM contained + \ AutoDetect CdromOnly Mount UMount + +syn keyword aptconfAcquireCompressionTypes contained + \ bz2 lzma gz Order + +syn keyword aptconfAcquireFTP contained + \ ForceExtended Passive Proxy ProxyLogin Timeout + +syn keyword aptconfAcquireHTTP contained + \ AllowRedirect Dl-Limit Max-Age No-Cache No-Store Pipeline-Depth + \ Proxy ProxyAutoDetect Proxy-Auto-Detect Timeout User-Agent + +syn keyword aptconfAcquireHTTPS contained + \ AllowRedirect CaInfo CaPath CrlFile Dl-Limit IssuerCert Max-Age + \ No-Cache No-Store Proxy SslCert SslForceVersion SslKey Timeout + \ Verify-Host Verify-Peer + +syn keyword aptconfAcquireMaxValidTime contained + \ Debian Debian-Security + +syn keyword aptconfAcquirePDiffs contained + \ FileLimit SizeLimit + +syn cluster aptconfAcquire_ contains=aptconfAcquire, + \ aptconfAcquireCDROM,aptconfAcquireCompressionTypes,aptconfAcquireFTP, + \ aptconfAcquireHTTP,aptconfAcquireHTTPS,aptconfAcquireMaxValidTime, + \ aptconfAcquirePDiffs +" }}} +" Adequate: {{{ +syn keyword aptconfAdequate contained + \ Enabled + +syn cluster aptconfAdequate_ contains=aptconfAdequate +" }}} +" Apt: {{{ +syn keyword aptconfApt contained + \ Architecture Architectures Archive Authentication AutoRemove + \ Build-Essential Build-Profiles Cache Cache-Grow Cache-Limit + \ Cache-Start CDROM Changelogs Clean-Installed Compressor + \ Default-Release Force-LoopBreak Get Ignore-Hold Immediate-Configure + \ Install-Recommends Install-Suggests Keep-Fds List-Cleanup + \ Move-Autobit-Sections NeverAutoRemove Never-MarkAuto-Sections + \ Periodic Status-Fd Update VersionedKernelPackages + +syn keyword aptconfAptAuthentication contained + \ TrustCDROM + +syn keyword aptconfAptAutoRemove contained + \ RecommendsImportant SuggestsImportant + +syn keyword aptconfAptCache contained + \ AllNames AllVersions Generate GivenOnly Important Installed NamesOnly + \ RecurseDepends ShowFull + +syn keyword aptconfAptCDROM contained + \ Fast NoAct NoMount Rename + +syn keyword aptconfAptChangelogs contained + \ Server + +syn keyword aptconfAptCompressor contained + \ bzip2 gzip lzma xz + +syn keyword aptconfAptCompressorAll contained + \ Binary CompressArg Cost Extension Name UncompressArg + +syn keyword aptconfAptGet contained + \ AllowUnauthenticated Arch-Only Assume-No Assume-Yes AutomaticRemove + \ Build-Dep-Automatic Compile Diff-Only Download Download-Only Dsc-Only + \ Fix-Broken Fix-Missing Force-Yes HideAutoRemove Host-Architecture + \ List-Cleanup Only-Source Print-URIs Purge ReInstall Remove + \ Show-Upgraded Show-User-Simulation-Note Show-Versions Simulate + \ Tar-Only Trivial-Only Upgrade + +syn keyword aptconfAptPeriodic contained + \ AutocleanInterval BackupArchiveInterval BackupLevel + \ Download-Upgradeable-Packages Download-Upgradeable-Packages-Debdelta + \ Enable MaxAge MaxSize MinAge Unattended-Upgrade Update-Package-Lists + \ Verbose + +syn keyword aptconfAptUpdate contained + \ List-Refresh Pre-Invoke Post-Invoke Post-Invoke-Success + +syn cluster aptconfApt_ contains=aptconfApt, + \ aptconfAptAuthentication,aptconfAptAutoRemove,aptconfAptCache, + \ aptconfAptCDROM,aptconfAptChangelogs,aptconfAptCompressor, + \ aptconfAptCompressorAll,aptconfAptGet,aptconfAptPeriodic, + \ aptconfAptUpdate +" }}} +" Aptitude: {{{ +syn keyword aptconfAptitude contained + \ Allow-Null-Upgrade Always-Use-Safe-Resolver Autoclean-After-Update + \ Auto-Install Auto-Fix-Broken Cmdline Debtags-Binary + \ Debtags-Update-Options Delete-Unused Delete-Unused-Pattern + \ Display-Planned-Action Forget-New-On-Install Forget-New-On-Update + \ Get-Root-Command Ignore-Old-Tmp Ignore-Recommends-Important + \ Keep-Recommends Keep-Suggests Keep-Unused-Pattern LockFile Log + \ Logging Parse-Description-Bullets Pkg-Display-Limit ProblemResolver + \ Purge-Unused Recommends-Important Safe-Resolver Screenshot Sections + \ Simulate Spin-Interval Suggests-Important Suppress-Read-Only-Warning + \ Theme Track-Dselect-State UI Warn-Not-Root + +syn keyword aptconfAptitudeCmdline contained + \ Always-Prompt Assume-Yes Disable-Columns Download-Only Fix-Broken + \ Ignore-Trust-Violations Package-Display-Format Package-Display-Width + \ Progress Request-Strictness Resolver-Debug Resolver-Dump + \ Resolver-Show-Steps Safe-Upgrade Show-Deps Show-Size-Changes + \ Show-Versions Show-Why Simulate Verbose Version-Display-Format + \ Versions-Group-By Versions-Show-Package-Names Visual-Preview + \ Why-Display-Mode + +syn keyword aptconfAptitudeCmdlineProgress contained + \ Percent-On-Right Retain-Completed + +syn keyword aptconfAptitudeCmdlineSafeUpgrade contained + \ No-New-Installs + +syn keyword aptconfAptitudeLogging contained + \ File Levels + +syn keyword aptconfAptitudeProblemResolver contained + \ Allow-Break-Holds BreakHoldScore Break-Hold-Level BrokenScore + \ DefaultResolutionScore Discard-Null-Solution + \ EssentialRemoveScore ExtraScore FullReplacementScore FutureHorizon + \ Hints ImportantScore Infinity InstallScore Keep-All-Level KeepScore + \ NonDefaultScore Non-Default-Level OptionalScore PreserveAutoScore + \ PreserveManualScore RemoveScore Remove-Essential-Level Remove-Level + \ RequiredScore ResolutionScore Safe-Level SolutionCost StandardScore + \ StepLimit StepScore Trace-Directory Trace-File + \ UndoFullReplacementScore UnfixedSoftScore UpgradeScore + +syn keyword aptconfAptitudeSafeResolver contained + \ No-New-Installs No-New-Upgrades Show-Resolver-Actions + +syn keyword aptconfAptitudeScreenshot contained + \ Cache-Max IncrementalLoadLimit + +syn keyword aptconfAptitudeSections contained + \ Descriptions Top-Sections + +syn keyword aptconfAptitudeUI contained + \ Advance-On-Action Auto-Show-Reasons Default-Grouping + \ Default-Package-View Default-Preview-Grouping Default-Sorting + \ Description-Visible-By-Default Exit-On-Last-Close Fill-Text + \ Flat-View-As-First-View HelpBar Incremental-Search InfoAreaTabs + \ KeyBindings MenuBar-Autohide Minibuf-Download-Bar Minibuf-Prompts + \ New-package-Commands Package-Display-Format Package-Header-Format + \ Package-Status-Format Pause-After-Download Preview-Limit + \ Prompt-On-Exit Styles ViewTabs + +syn keyword aptconfAptitudeUIKeyBindings contained + \ ApplySolution Begin BugReport Cancel Changelog ChangePkgTreeGrouping + \ ChangePkgTreeLimit ChangePkgTreeSorting ClearAuto CollapseAll + \ CollapseTree Commit Confirm Cycle CycleNext CycleOrder CyclePrev + \ DelBOL DelBack DelEOL DelForward Dependencies DescriptionCycle + \ DescriptionDown DescriptionUp DoInstallRun Down DpkgReconfigure + \ DumpResolver EditHier End ExamineSolution ExpandAll ExpandTree + \ FirstSolution ForbidUpgrade ForgetNewPackages Help HistoryNext + \ HistoryPrev Hold Install InstallSingle Keep LastSolution Left + \ LevelDown LevelUp MarkUpgradable MineFlagSquare MineLoadGame + \ MineSaveGame MineSweepSquare MineUncoverSquare MineUncoverSweepSquare + \ NextPage NextSolution No Parent PrevPage PrevSolution Purge + \ PushButton Quit QuitProgram RejectBreakHolds Refresh Remove + \ ReInstall RepeatSearchBack ReSearch ReverseDependencies Right + \ SaveHier Search SearchBack SearchBroken SetAuto ShowHideDescription + \ SolutionActionApprove SolutionActionReject ToggleExpanded + \ ToggleMenuActive Undo Up UpdatePackageList Versions Yes + +syn keyword aptconfAptitudeUIStyles contained + \ Bullet ChangeLogNewerVersion Default DepBroken DisabledMenuEntry + \ DownloadHit DownloadProgress EditLine Error Header HighlightedMenuBar + \ HighlightedMenuEntry MediaChange MenuBar MenuBorder MenuEntry + \ MineBomb MineBorder MineFlag MineNumber1 MineNumber2 MineNumber3 + \ MineNumber4 MineNumber5 MineNumber6 MineNumber7 MineNumber8 + \ MultiplexTab MultiplexTabHighlighted PkgBroken PkgBrokenHighlighted + \ PkgIsInstalled PkgIsInstalledHighlighted PkgNotInstalled + \ PkgNotInstalledHighlighted PkgToDowngrade PkgToDowngradeHighlighted + \ PkgToHold PkgToHoldHighlighted PkgToInstall PkgToInstallHighlighted + \ PkgToRemove PkgToRemoveHighlighted PkgToUpgrade + \ PkgToUpgradeHighlighted Progress SolutionActionApproved + \ SolutionActionRejected Status TreeBackground TrustWarning + +syn keyword aptconfAptitudeUIStylesElements contained + \ bg clear fg flip set + +syn cluster aptconfAptitude_ contains=aptconfAptitude, + \ aptconfAptitudeCmdline,aptconfAptitudeCmdlineProgress, + \ aptconfAptitudeCmdlineSafeUpgrade,aptconfAptitudeLogging, + \ aptconfAptitudeProblemResolver,aptconfAptitudeSafeResolver, + \ aptconfAptitudeScreenshot,aptconfAptitudeSections,aptconfAptitudeUI, + \ aptconfAptitudeUIKeyBindings,aptconfAptitudeUIStyles, + \ aptconfAptitudeUIStylesElements +" }}} +" AptListbugs: {{{ +syn keyword aptconfAptListbugs contained + \ IgnoreRegexp Severities + +syn cluster aptconfAptListbugs_ contains=aptconfAptListbugs +" }}} +" DebTags: {{{ +syn keyword aptconfDebTags contained + \ Vocabulary + +syn cluster aptconfDebTags_ contains=aptconfDebTags +" }}} +" Debug: {{{ +syn keyword aptconfDebug contained + \ Acquire aptcdrom BuildDeps Hashes IdentCdrom Nolocking + \ pkgAcquire pkgAutoRemove pkgCacheGen pkgDepCache pkgDPkgPM + \ pkgDPkgProgressReporting pkgInitialize pkgOrderList + \ pkgPackageManager pkgPolicy pkgProblemResolver RunScripts + \ sourceList + +syn keyword aptconfDebugAcquire contained + \ cdrom Ftp gpgv Http Https netrc + +syn keyword aptconfDebugPkgAcquire contained + \ Auth Diffs RRed Worker + +syn keyword aptconfDebugPkgDepCache contained + \ AutoInstall Marker + +syn keyword aptconfDebugPkgProblemResolver contained + \ ShowScores + +syn cluster aptconfDebug_ contains=aptconfDebug, + \ aptconfDebugAcquire,aptconfDebugPkgAcquire,aptconfDebugPkgDepCache, + \ aptconfDebugPkgProblemResolver +" }}} +" Dir: {{{ +syn keyword aptconfDir contained + \ Aptitude Bin Cache Etc Ignore-Files-Silently Log Media Parts RootDir + \ State + +syn keyword aptconfDirAptitude contained + \ state + +syn keyword aptconfDirBin contained + \ apt-get apt-cache dpkg dpkg-buildpackage dpkg-source gpg gzip Methods + \ solvers + +syn keyword aptconfDirCache contained + \ Archives Backup pkgcache srcpkgcache + +syn keyword aptconfDirEtc contained + \ Main Netrc Parts Preferences PreferencesParts SourceList SourceParts + \ VendorList VendorParts Trusted TrustedParts + +syn keyword aptconfDirLog contained + \ History Terminal + +syn keyword aptconfDirMedia contained + \ MountPath + +syn keyword aptconfDirState contained + \ cdroms extended_states Lists mirrors preferences status + +syn cluster aptconfDir_ contains=aptconfDir, + \ aptconfDirAptitude,aptconfDirBin,aptconfDirCache,aptconfDirEtc, + \ aptconfDirLog,aptconfDirMedia,aptconfDirState +" }}} +" DPkg: {{{ +syn keyword aptconfDPkg contained + \ Build-Options Chroot-Directory ConfigurePending FlushSTDIN + \ MaxArgBytes MaxArgs MaxBytes NoTriggers options + \ Pre-Install-Pkgs Pre-Invoke Post-Invoke + \ Run-Directory StopOnError Tools TriggersPending + +syn keyword aptconfDPkgTools contained + \ adequate InfoFD Options Version + +syn cluster aptconfDPkg_ contains=aptconfDPkg, + \ aptconfDPkgTools +" }}} +" DSelect: {{{ +syn keyword aptconfDSelect contained + \ CheckDir Clean Options PromptAfterUpdate UpdateOptions + +syn cluster aptconfDSelect_ contains=aptconfDSelect +" }}} +" OrderList: {{{ +syn keyword aptconfOrderList contained + \ Score + +syn keyword aptconfOrderListScore contained + \ Delete Essential Immediate PreDepends + +syn cluster aptconfOrderList_ contains=aptconfOrderList, + \ aptconfOrderListScore +" }}} +" PackageManager: {{{ +syn keyword aptconfPackageManager contained + \ Configure + +syn cluster aptconfPackageManager_ contains=aptconfPackageManager +" }}} +" PkgCacheGen: {{{ +syn keyword aptconfPkgCacheGen contained + \ Essential + +syn cluster aptconfPkgCacheGen_ contains=aptconfPkgCacheGen +" }}} +" Quiet: {{{ +syn keyword aptconfQuiet contained + \ NoUpdate + +syn cluster aptconfQuiet_ contains=aptconfQuiet +" }}} +" Rpm: {{{ +syn keyword aptconfRpm contained + \ Post-Invoke Pre-Invoke + +syn cluster aptconfRpm_ contains=aptconfRpm +" }}} +" Synaptic: {{{ +syn keyword aptconfSynaptic contained + \ AskQuitOnProceed AskRelated AutoCleanCache CleanCache DefaultDistro + \ delAction delHistory Download-Only ftpProxy ftpProxyPort httpProxy + \ httpProxyPort Install-Recommends LastSearchType Maximized noProxy + \ OneClickOnStatusActions ShowAllPkgInfoInMain showWelcomeDialog + \ ToolbarState undoStackSize update upgradeType useProxy UseStatusColors + \ UseTerminal useUserFont useUserTerminalFont ViewMode + \ availVerColumnPos availVerColumnVisible componentColumnPos + \ componentColumnVisible descrColumnPos descrColumnVisible + \ downloadSizeColumnPos downloadSizeColumnVisible hpanedPos + \ instVerColumnPos instVerColumnVisible instSizeColumnPos + \ instSizeColumnVisible nameColumnPos nameColumnVisible + \ sectionColumnPos sectionColumnVisible statusColumnPos + \ statusColumnVisible supportedColumnPos supportedColumnVisible + \ vpanedPos windowWidth windowHeight windowX windowY closeZvt + \ color-available color-available-locked color-broken color-downgrade + \ color-install color-installed-locked color-installed-outdated + \ color-installed-updated color-new color-purge color-reinstall + \ color-remove color-upgrade + +syn keyword aptconfSynapticUpdate contained + \ last type + +syn cluster aptconfSynaptic_ contains=aptconfSynaptic, + \ aptconfSynapticUpdate +" }}} +" Unattended Upgrade: {{{ +syn keyword aptconfUnattendedUpgrade contained + \ Allow-APT-Mark-Fallback Allow-downgrade AutoFixInterruptedDpkg + \ Automatic-Reboot Automatic-Reboot-Time Automatic-Reboot-WithUsers + \ Debug InstallOnShutdown Mail MailOnlyOnError MailReport MinimalSteps + \ OnlyOnACPower Origins-Pattern Package-Blacklist + \ Remove-New-Unused-Dependencies Remove-Unused-Dependencies + \ Remove-Unused-Kernel-Packages Skip-Updates-On-Metered-Connections + \ SyslogEnable SyslogFacility Verbose + +syn cluster aptconfUnattendedUpgrade_ contains=aptconfUnattendedUpgrade +" }}} +" Whatmaps: {{{ +syn keyword aptconfWhatmaps contained + \ Enable-Restart Security-Update-Origins + +syn cluster aptconfWhatmaps_ contains=aptconfWhatmaps +" }}} + +syn case match + +" Now put all the keywords (and 'valid' options) in a single cluster: +syn cluster aptconfOptions contains=aptconfRegexpOpt, + \ @aptconfAcquire_,@aptconfAdequate_,@aptconfApt_,@aptconfAptitude_, + \ @aptconfAptListbugs_,@aptconfDebTags_,@aptconfDebug_,@aptconfDir_, + \ @aptconfDPkg_,@aptconfDSelect_,@aptconfOrderList_, + \ @aptconfPackageManager_,@aptconfPkgCacheGen_,@aptconfQuiet_, + \ @aptconfRpm_,@aptconfSynaptic_,@aptconfUnattendedUpgrade_, + \ @aptconfWhatmaps_ + +" Syntax: +syn match aptconfSemiColon ';' +syn match aptconfDoubleColon '::' +syn match aptconfCurlyBraces '[{}]' +syn region aptconfValue start='"' end='"' oneline display +syn region aptconfInclude matchgroup=aptconfOperator start='{' end='}' contains=ALLBUT,aptconfGroup,aptconfGroupIncomplete,@aptconfCommentSpecial +syn region aptconfInclude matchgroup=aptconfOperator start='::' end='{'me=s-1 contains=@aptconfOptions,aptconfError display +syn region aptconfInclude matchgroup=aptconfOperator start='::' end='::\|\s'me=s-1 oneline contains=@aptconfOptions,aptconfError display + +" Basic Syntax Errors: XXX avoid to generate false positives !!! +" +" * Undocumented inline comment. Since it is currently largely used, and does +" not seem to cause trouble ('apt-config dump' never complains when # is used +" the same way than //) it has been moved to aptconfComment group. But it +" still needs to be defined here (i.e. before #clear and #include directives) +syn match aptconfComment '#.*' contains=@aptconfCommentSpecial +" +" * When a semicolon is missing after a double-quoted string: +" There are some cases (for example in the Dir group of options, but not only) +" where this syntax is valid. So we don't treat it as a strict error. +syn match aptconfAsError display '"[^"]*"[^;]'me=e-1 +syn match aptconfAsError display '"[^"]*"$' +" +" * When double quotes are missing around a value (before a semicolon): +" This omission has no effect if the value is a single string (without blank +" characters). But apt.conf(5) says that quotes are required, and this item +" avoids to match unquoted keywords. +syn match aptconfAsError display '\s[^"[:blank:]]*[^}"];'me=e-1 +" +" * When only one double quote is missing around a value (before a semicolon): +" No comment for that: it must be highly visible. +syn match aptconfError display '\(\s\|;\)"[^"[:blank:]]\+;'me=e-1 +syn match aptconfError display '\(\s\|;\)[^"[:blank:]]\+";'me=e-1 +" +" * When space is missing between option and (quoted) value: +" TODO (partially implemented) +syn match aptconfError display '::[^[:blank:]]*"' + +" Special Actions: +syn match aptconfAction '^#\(clear\|include\)\>' +syn region aptconfAction matchgroup=aptconfAction start='^#clear\>' end=';'me=s-1 oneline contains=aptconfGroup,aptconfDoubleColon,@aptconfOptions +syn region aptconfAction matchgroup=aptconfAction start='^#include\>' end=';'me=s-1 oneline contains=aptconfRegexpOpt + +" Comments: +syn keyword aptconfTodo TODO FIXME NOTE XXX contained +syn cluster aptconfCommentSpecial contains=@Spell,aptconfTodo +syn match aptconfComment '//.*' contains=@aptconfCommentSpecial +syn region aptconfComment start='/\*' end='\*/' contains=@aptconfCommentSpecial + +" Highlight Definitions: +hi def link aptconfTodo Todo +hi def link aptconfError Error +hi def link aptconfComment Comment +hi def link aptconfOperator Operator + +hi def link aptconfAction PreProc +hi def link aptconfOption Type +hi def link aptconfValue String +hi def link aptconfRegexpOpt Normal +hi def link aptconfAsError Special + +hi def link aptconfSemiColon aptconfOperator +hi def link aptconfDoubleColon aptconfOperator +hi def link aptconfCurlyBraces aptconfOperator + +hi def link aptconfGroupIncomplete Special +hi def link aptconfGroup aptconfOption + +hi def link aptconfAcquire aptconfOption +hi def link aptconfAcquireCDROM aptconfOption +hi def link aptconfAcquireCompressionTypes aptconfOption +hi def link aptconfAcquireFTP aptconfOption +hi def link aptconfAcquireHTTP aptconfOption +hi def link aptconfAcquireHTTPS aptconfOption +hi def link aptconfAcquireMaxValidTime aptconfOption +hi def link aptconfAcquirePDiffs aptconfOption + +hi def link aptconfAdequate aptconfOption + +hi def link aptconfApt aptconfOption +hi def link aptconfAptAuthentication aptconfOption +hi def link aptconfAptAutoRemove aptconfOption +hi def link aptconfAptCache aptconfOption +hi def link aptconfAptCDROM aptconfOption +hi def link aptconfAptChangelogs aptconfOption +hi def link aptconfAptCompressor aptconfOption +hi def link aptconfAptCompressorAll aptconfOption +hi def link aptconfAptGet aptconfOption +hi def link aptconfAptPeriodic aptconfOption +hi def link aptconfAptUpdate aptconfOption + +hi def link aptconfAptitude aptconfOption +hi def link aptconfAptitudeCmdline aptconfOption +hi def link aptconfAptitudeCmdlineProgress aptconfOption +hi def link aptconfAptitudeCmdlineSafeUpgrade aptconfOption +hi def link aptconfAptitudeLogging aptconfOption +hi def link aptconfAptitudeProblemResolver aptconfOption +hi def link aptconfAptitudeSafeResolver aptconfOption +hi def link aptconfAptitudeScreenshot aptconfOption +hi def link aptconfAptitudeSections aptconfOption +hi def link aptconfAptitudeUI aptconfOption +hi def link aptconfAptitudeUIKeyBindings aptconfOption +hi def link aptconfAptitudeUIStyles aptconfOption +hi def link aptconfAptitudeUIStylesElements aptconfOption + +hi def link aptconfAptListbugs aptconfOption + +hi def link aptconfDebTags aptconfOption + +hi def link aptconfDebug aptconfOption +hi def link aptconfDebugAcquire aptconfOption +hi def link aptconfDebugPkgAcquire aptconfOption +hi def link aptconfDebugPkgDepCache aptconfOption +hi def link aptconfDebugPkgProblemResolver aptconfOption + +hi def link aptconfDir aptconfOption +hi def link aptconfDirAptitude aptconfOption +hi def link aptconfDirBin aptconfOption +hi def link aptconfDirCache aptconfOption +hi def link aptconfDirEtc aptconfOption +hi def link aptconfDirLog aptconfOption +hi def link aptconfDirMedia aptconfOption +hi def link aptconfDirState aptconfOption + +hi def link aptconfDPkg aptconfOption +hi def link aptconfDPkgTools aptconfOption + +hi def link aptconfDSelect aptconfOption + +hi def link aptconfOrderList aptconfOption +hi def link aptconfOrderListScore aptconfOption + +hi def link aptconfPackageManager aptconfOption + +hi def link aptconfPkgCacheGen aptconfOption + +hi def link aptconfQuiet aptconfOption + +hi def link aptconfRpm aptconfOption + +hi def link aptconfSynaptic aptconfOption +hi def link aptconfSynapticUpdate aptconfOption + +hi def link aptconfUnattendedUpgrade aptconfOption + +hi def link aptconfWhatmaps aptconfOption + +let b:current_syntax = "aptconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/arch.vim b/runtime/syntax/arch.vim new file mode 100644 index 0000000..f9d095e --- /dev/null +++ b/runtime/syntax/arch.vim @@ -0,0 +1,41 @@ +" Vim syntax file +" Language: GNU Arch inventory file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-17 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=- + +syn keyword archTodo TODO FIXME XXX NOTE + +syn region archComment display start='^\%(#\|\s\)' end='$' + \ contains=archTodo,@Spell + +syn match archBegin display '^' nextgroup=archKeyword,archComment + +syn keyword archKeyword contained implicit tagline explicit names +syn keyword archKeyword contained untagged-source + \ nextgroup=archTMethod skipwhite +syn keyword archKeyword contained exclude junk backup precious unrecognized + \ source nextgroup=archRegex skipwhite + +syn keyword archTMethod contained source precious backup junk unrecognized + +syn match archRegex contained '\s*\zs.*' + +hi def link archTodo Todo +hi def link archComment Comment +hi def link archKeyword Keyword +hi def link archTMethod Type +hi def link archRegex String + +let b:current_syntax = "arch" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/arduino.vim b/runtime/syntax/arduino.vim new file mode 100644 index 0000000..2f06eb6 --- /dev/null +++ b/runtime/syntax/arduino.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: Arduino +" Maintainer: Johannes Hoff +" Last Change: 21 October 2021 +" License: VIM license (:help license, replace vim by arduino.vim) + +" Syntax highlighting like in the Arduino IDE +" Automatically generated by the script available at +" https://github.com/johshoff/arduino-vim-syntax +" Using keywords from /build/shared/lib/keywords.txt +" From version: 1.8.16 + +" Thanks to Rik, Erik Nomitch, Adam Obeng, Graeme Cross and Niall Parker +" for helpful feedback! + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Read the C syntax to start with +if version < 600 + so :p:h/cpp.vim +else + runtime! syntax/cpp.vim +endif + +syn keyword arduinoConstant BIN CHANGE DEC DEFAULT EXTERNAL FALLING HALF_PI HEX +syn keyword arduinoConstant HIGH INPUT INPUT_PULLUP INTERNAL INTERNAL1V1 +syn keyword arduinoConstant INTERNAL2V56 LED_BUILTIN LED_BUILTIN_RX +syn keyword arduinoConstant LED_BUILTIN_TX LOW LSBFIRST MSBFIRST OCT OUTPUT PI +syn keyword arduinoConstant RISING TWO_PI + +syn keyword arduinoFunc analogRead analogReadResolution analogReference +syn keyword arduinoFunc analogWrite analogWriteResolution attachInterrupt +syn keyword arduinoFunc bit bitClear bitRead bitSet bitWrite delay +syn keyword arduinoFunc delayMicroseconds detachInterrupt +syn keyword arduinoFunc digitalPinToInterrupt digitalRead digitalWrite +syn keyword arduinoFunc highByte interrupts lowByte micros millis +syn keyword arduinoFunc noInterrupts noTone pinMode pulseIn pulseInLong +syn keyword arduinoFunc shiftIn shiftOut tone yield + +syn keyword arduinoMethod available availableForWrite begin charAt compareTo +syn keyword arduinoMethod concat end endsWith equals equalsIgnoreCase export +syn keyword arduinoMethod final find findUntil flush getBytes indexOf +syn keyword arduinoMethod lastIndexOf length loop override parseFloat +syn keyword arduinoMethod parseInt peek print println read readBytes +syn keyword arduinoMethod readBytesUntil readString readStringUntil replace +syn keyword arduinoMethod setCharAt setTimeout setup startsWith Stream +syn keyword arduinoMethod substring toCharArray toInt toLowerCase toUpperCase +syn keyword arduinoMethod trim + +syn keyword arduinoModule Keyboard Mouse Serial Serial1 Serial2 Serial3 +syn keyword arduinoModule SerialUSB + +syn keyword arduinoStdFunc abs accept acos acosf asin asinf atan atan2 atan2f +syn keyword arduinoStdFunc atanf cbrt cbrtf ceil ceilf click constrain +syn keyword arduinoStdFunc copysign copysignf cos cosf cosh coshf degrees exp +syn keyword arduinoStdFunc expf fabs fabsf fdim fdimf floor floorf fma fmaf +syn keyword arduinoStdFunc fmax fmaxf fmin fminf fmod fmodf hypot hypotf +syn keyword arduinoStdFunc isfinite isinf isnan isPressed ldexp ldexpf log +syn keyword arduinoStdFunc log10 log10f logf lrint lrintf lround lroundf map +syn keyword arduinoStdFunc max min move pow powf press radians random +syn keyword arduinoStdFunc randomSeed release releaseAll round roundf signbit +syn keyword arduinoStdFunc sin sinf sinh sinhf sq sqrt sqrtf tan tanf tanh +syn keyword arduinoStdFunc tanhf trunc truncf + +syn keyword arduinoType _Bool _Complex _Imaginary array atomic_bool +syn keyword arduinoType atomic_char atomic_int atomic_llong atomic_long +syn keyword arduinoType atomic_schar atomic_short atomic_uchar atomic_uint +syn keyword arduinoType atomic_ullong atomic_ulong atomic_ushort boolean +syn keyword arduinoType byte char16_t char32_t complex NULL null PROGMEM +syn keyword arduinoType String word + +hi def link arduinoType Type +hi def link arduinoConstant Constant +hi def link arduinoStdFunc Function +hi def link arduinoFunc Function +hi def link arduinoMethod Function +hi def link arduinoModule Identifier diff --git a/runtime/syntax/art.vim b/runtime/syntax/art.vim new file mode 100644 index 0000000..8551198 --- /dev/null +++ b/runtime/syntax/art.vim @@ -0,0 +1,50 @@ +" Vim syntax file +" Language: ART-IM and ART*Enterprise +" Maintainer: Dorai Sitaram +" URL: http://www.ccs.neu.edu/~dorai/vimplugins/vimplugins.html +" Last Change: 2011 Dec 28 by Thilo Six + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +syn keyword artspform => and assert bind +syn keyword artspform declare def-art-fun deffacts defglobal defrule defschema do +syn keyword artspform else for if in$ not or +syn keyword artspform progn retract salience schema test then while + +syn match artvariable "?[^ \t";()|&~]\+" + +syn match artglobalvar "?\*[^ \t";()|&~]\+\*" + +syn match artinstance "![^ \t";()|&~]\+" + +syn match delimiter "[()|&~]" + +syn region string start=/"/ skip=/\\[\\"]/ end=/"/ + +syn match number "\<[-+]\=\([0-9]\+\(\.[0-9]*\)\=\|\.[0-9]\+\)\>" + +syn match comment ";.*$" + +syn match comment "#+:\=ignore" nextgroup=artignore skipwhite skipnl + +syn region artignore start="(" end=")" contained contains=artignore,comment + +syn region artignore start=/"/ skip=/\\[\\"]/ end=/"/ contained + +hi def link artinstance type +hi def link artglobalvar preproc +hi def link artignore comment +hi def link artspform statement +hi def link artvariable function + +let b:current_syntax = "art" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/asciidoc.vim b/runtime/syntax/asciidoc.vim new file mode 100644 index 0000000..29451f9 --- /dev/null +++ b/runtime/syntax/asciidoc.vim @@ -0,0 +1,185 @@ +" Vim syntax file +" Language: AsciiDoc +" Maintainer: @aerostitch on GitHub (tag me in your issue in the +" github/vim/vim repository and I'll answer when available) +" Original author: Stuart Rackham (inspired by Felix +" Obenhuber's original asciidoc.vim script). +" URL: http://asciidoc.org/ +" Licence: GPL (http://www.gnu.org) +" Remarks: Vim 6 or greater +" Last Update: 2020 May 03 (see Issue 240) +" Limitations: +" +" - Nested quoted text formatting is highlighted according to the outer +" format. +" - If a closing Example Block delimiter may be mistaken for a title +" underline. A workaround is to insert a blank line before the closing +" delimiter. +" - Lines within a paragraph starting with equals characters are +" highlighted as single-line titles. +" - Lines within a paragraph beginning with a period are highlighted as +" block titles. + + +if exists("b:current_syntax") + finish +endif + +" Use the default syntax syncing. + +" Run :help syn-priority to review syntax matching priority. +syn keyword asciidocToDo TODO FIXME CHECK TEST XXX ZZZ DEPRECATED +syn match asciidocBackslash /\\/ +syn region asciidocIdMarker start=/^\$Id:\s/ end=/\s\$$/ +syn match asciidocCallout /\\\@/ +syn match asciidocOpenBlockDelimiter /^--$/ +syn match asciidocLineBreak /[ \t]+$/ containedin=asciidocList +syn match asciidocRuler /^'\{3,}$/ +syn match asciidocPagebreak /^<\{3,}$/ +syn match asciidocEntityRef /\\\@\?[0-9A-Za-z_]\@!/ +syn match asciidocAttributeRef /\\\@.]\{,3}\)\?\([a-z]\)\?\)\?|/ containedin=asciidocTableBlock contained +syn region asciidocTableBlock matchgroup=asciidocTableDelimiter start=/^|=\{3,}$/ end=/^|=\{3,}$/ keepend contains=ALL +syn match asciidocTablePrefix /\(\S\@.]\{,3}\)\?\([a-z]\)\?\)\?!/ containedin=asciidocTableBlock contained +syn region asciidocTableBlock2 matchgroup=asciidocTableDelimiter2 start=/^!=\{3,}$/ end=/^!=\{3,}$/ keepend contains=ALL + +syn match asciidocListContinuation /^+$/ +syn region asciidocLiteralBlock start=/^\.\{4,}$/ end=/^\.\{4,}$/ contains=asciidocCallout,asciidocToDo keepend +syn region asciidocListingBlock start=/^-\{4,}$/ end=/^-\{4,}$/ contains=asciidocCallout,asciidocToDo keepend +syn region asciidocCommentBlock start="^/\{4,}$" end="^/\{4,}$" contains=asciidocToDo +syn region asciidocPassthroughBlock start="^+\{4,}$" end="^+\{4,}$" + +" Allowing leading \w characters in the filter delimiter is to accomodate +" the pre version 8.2.7 syntax and may be removed in future releases. +syn region asciidocFilterBlock start=/^\w*\~\{4,}$/ end=/^\w*\~\{4,}$/ + +syn region asciidocMacroAttributes matchgroup=asciidocRefMacro start=/\\\@>\)\|^$/ contains=asciidocQuoted.* keepend +syn region asciidocMacroAttributes matchgroup=asciidocAnchorMacro start=/\\\@ +" Kevin Dahlhausen +" Contributors: Ori Avtalion, Lakshay Garg +" Last Change: 2020 Oct 31 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +" storage types +syn match asmType "\.long" +syn match asmType "\.ascii" +syn match asmType "\.asciz" +syn match asmType "\.byte" +syn match asmType "\.double" +syn match asmType "\.float" +syn match asmType "\.hword" +syn match asmType "\.int" +syn match asmType "\.octa" +syn match asmType "\.quad" +syn match asmType "\.short" +syn match asmType "\.single" +syn match asmType "\.space" +syn match asmType "\.string" +syn match asmType "\.word" + +syn match asmIdentifier "[a-z_][a-z0-9_]*" +syn match asmLabel "[a-z_][a-z0-9_]*:"he=e-1 + +" Various #'s as defined by GAS ref manual sec 3.6.2.1 +" Technically, the first asmDecimal def is actually octal, +" since the value of 0-7 octal is the same as 0-7 decimal, +" I (Kevin) prefer to map it as decimal: +syn match asmDecimal "\<0\+[1-7]\=\>" display +syn match asmDecimal "\<[1-9]\d*\>" display +syn match asmOctal "\<0[0-7][0-7]\+\>" display +syn match asmHexadecimal "\<0[xX][0-9a-fA-F]\+\>" display +syn match asmBinary "\<0[bB][0-1]\+\>" display + +syn match asmFloat "\<\d\+\.\d*\%(e[+-]\=\d\+\)\=\>" display +syn match asmFloat "\.\d\+\%(e[+-]\=\d\+\)\=\>" display +syn match asmFloat "\<\d\%(e[+-]\=\d\+\)\>" display +syn match asmFloat "[+-]\=Inf\>\|\" display + +syn match asmFloat "\%(0[edfghprs]\)[+-]\=\d*\%(\.\d\+\)\%(e[+-]\=\d\+\)\=" display +syn match asmFloat "\%(0[edfghprs]\)[+-]\=\d\+\%(\.\d\+\)\=\%(e[+-]\=\d\+\)\=" display +" Avoid fighting the hexadecimal match for unicorn-like '0x' prefixed floats +syn match asmFloat "\%(0x\)[+-]\=\d*\%(\.\d\+\)\%(e[+-]\=\d\+\)\=" display + +" Allow all characters to be escaped (and in strings) as these vary across +" architectures [See sec 3.6.1.1 Strings] +syn match asmCharacterEscape "\\." contained +syn match asmCharacter "'\\\=." contains=asmCharacterEscape + +syn match asmStringEscape "\\\_." contained +syn match asmStringEscape "\\\%(\o\{3}\|00[89]\)" contained display +syn match asmStringEscape "\\x\x\+" contained display + +syn region asmString start="\"" end="\"" skip="\\\\\|\\\"" contains=asmStringEscape + +syn keyword asmTodo contained TODO FIXME XXX NOTE + +" GAS supports one type of multi line comments: +syn region asmComment start="/\*" end="\*/" contains=asmTodo,@Spell + +" GAS (undocumentedly?) supports C++ style comments. Unlike in C/C++ however, +" a backslash ending a C++ style comment does not extend the comment to the +" next line (hence the syntax region does not define 'skip="\\$"') +syn region asmComment start="//" end="$" keepend contains=asmTodo,@Spell + +" Line comment characters depend on the target architecture and command line +" options and some comments may double as logical line number directives or +" preprocessor commands. This situation is described at +" http://sourceware.org/binutils/docs-2.22/as/Comments.html +" Some line comment characters have other meanings for other targets. For +" example, .type directives may use the `@' character which is also an ARM +" comment marker. +" As a compromise to accommodate what I arbitrarily assume to be the most +" frequently used features of the most popular architectures (and also the +" non-GNU assembly languages that use this syntax file because their asm files +" are also named *.asm), the following are used as line comment characters: +syn match asmComment "[#;!|].*" contains=asmTodo,@Spell + +" Side effects of this include: +" - When `;' is used to separate statements on the same line (many targets +" support this), all statements except the first get highlighted as +" comments. As a remedy, remove `;' from the above. +" - ARM comments are not highlighted correctly. For ARM, uncomment the +" following two lines and comment the one above. +"syn match asmComment "@.*" contains=asmTodo +"syn match asmComment "^#.*" contains=asmTodo + +" Advanced users of specific architectures will probably want to change the +" comment highlighting or use a specific, more comprehensive syntax file. + +syn match asmInclude "\.include" +syn match asmCond "\.if" +syn match asmCond "\.else" +syn match asmCond "\.endif" +syn match asmMacro "\.macro" +syn match asmMacro "\.endm" + +" Assembler directives start with a '.' and may contain upper case (e.g., +" .ABORT), numbers (e.g., .p2align), dash (e.g., .app-file) and underscore in +" CFI directives (e.g., .cfi_startproc). This will also match labels starting +" with '.', including the GCC auto-generated '.L' labels. +syn match asmDirective "\.[A-Za-z][0-9A-Za-z-_]*" + +syn case match + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link asmSection Special +hi def link asmLabel Label +hi def link asmComment Comment +hi def link asmTodo Todo +hi def link asmDirective Statement + +hi def link asmInclude Include +hi def link asmCond PreCondit +hi def link asmMacro Macro + +if exists('g:asm_legacy_syntax_groups') + hi def link hexNumber Number + hi def link decNumber Number + hi def link octNumber Number + hi def link binNumber Number + hi def link asmHexadecimal hexNumber + hi def link asmDecimal decNumber + hi def link asmOctal octNumber + hi def link asmBinary binNumber +else + hi def link asmHexadecimal Number + hi def link asmDecimal Number + hi def link asmOctal Number + hi def link asmBinary Number +endif +hi def link asmFloat Float + +hi def link asmString String +hi def link asmStringEscape Special +hi def link asmCharacter Character +hi def link asmCharacterEscape Special + +hi def link asmIdentifier Identifier +hi def link asmType Type + +let b:current_syntax = "asm" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet diff --git a/runtime/syntax/asm68k.vim b/runtime/syntax/asm68k.vim new file mode 100644 index 0000000..104887d --- /dev/null +++ b/runtime/syntax/asm68k.vim @@ -0,0 +1,378 @@ +" Vim syntax file +" Language: Motorola 68000 Assembler +" Maintainer: Steve Wall +" Last change: 2001 May 01 +" +" This is incomplete. In particular, support for 68020 and +" up and 68851/68881 co-processors is partial or non-existent. +" Feel free to contribute... +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" Partial list of register symbols +syn keyword asm68kReg a0 a1 a2 a3 a4 a5 a6 a7 d0 d1 d2 d3 d4 d5 d6 d7 +syn keyword asm68kReg pc sr ccr sp usp ssp + +" MC68010 +syn keyword asm68kReg vbr sfc sfcr dfc dfcr + +" MC68020 +syn keyword asm68kReg msp isp zpc cacr caar +syn keyword asm68kReg za0 za1 za2 za3 za4 za5 za6 za7 +syn keyword asm68kReg zd0 zd1 zd2 zd3 zd4 zd5 zd6 zd7 + +" MC68030 +syn keyword asm68kReg crp srp tc ac0 ac1 acusr tt0 tt1 mmusr + +" MC68040 +syn keyword asm68kReg dtt0 dtt1 itt0 itt1 urp + +" MC68851 registers +syn keyword asm68kReg cal val scc crp srp drp tc ac psr pcsr +syn keyword asm68kReg bac0 bac1 bac2 bac3 bac4 bac5 bac6 bac7 +syn keyword asm68kReg bad0 bad1 bad2 bad3 bad4 bad5 bad6 bad7 + +" MC68881/82 registers +syn keyword asm68kReg fp0 fp1 fp2 fp3 fp4 fp5 fp6 fp7 +syn keyword asm68kReg control status iaddr fpcr fpsr fpiar + +" M68000 opcodes - order is important! +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match asm68kOpcode "\" +syn match hexNumber "\<[0-9][0-9a-fA-F]*H\>" +syn match octNumber "@[0-7]\+\>" +syn match octNumber "\<[0-7]\+[QO]\>" +syn match binNumber "%[01]\+\>" +syn match binNumber "\<[01]\+B\>" +syn match decNumber "\<[0-9]\+D\=\>" +syn match floatE "_*E_*" contained +syn match floatExponent "_*E_*[-+]\=[0-9]\+" contained contains=floatE +syn match floatNumber "[-+]\=[0-9]\+_*E_*[-+]\=[0-9]\+" contains=floatExponent +syn match floatNumber "[-+]\=[0-9]\+\.[0-9]\+\(E[-+]\=[0-9]\+\)\=" contains=floatExponent +syn match floatNumber ":\([0-9a-f]\+_*\)\+" + +" Character string constants +syn match asm68kStringError "'[ -~]*'" +syn match asm68kStringError "'[ -~]*$" +syn region asm68kString start="'" skip="''" end="'" oneline contains=asm68kCharError +syn match asm68kCharError "[^ -~]" contained + +" Immediate data +syn match asm68kImmediate "#\$[0-9a-fA-F]\+" contains=hexNumber +syn match asm68kImmediate "#[0-9][0-9a-fA-F]*H" contains=hexNumber +syn match asm68kImmediate "#@[0-7]\+" contains=octNumber +syn match asm68kImmediate "#[0-7]\+[QO]" contains=octNumber +syn match asm68kImmediate "#%[01]\+" contains=binNumber +syn match asm68kImmediate "#[01]\+B" contains=binNumber +syn match asm68kImmediate "#[0-9]\+D\=" contains=decNumber +syn match asm68kSymbol "[a-z_?.][a-z0-9_?.$]*" contained +syn match asm68kImmediate "#[a-z_?.][a-z0-9_?.]*" contains=asm68kSymbol + +" Special items for comments +syn keyword asm68kTodo contained TODO + +" Operators +syn match asm68kOperator "[-+*/]" " Must occur before Comments +syn match asm68kOperator "\.SIZEOF\." +syn match asm68kOperator "\.STARTOF\." +syn match asm68kOperator "<<" " shift left +syn match asm68kOperator ">>" " shift right +syn match asm68kOperator "&" " bit-wise logical and +syn match asm68kOperator "!" " bit-wise logical or +syn match asm68kOperator "!!" " exclusive or +syn match asm68kOperator "<>" " inequality +syn match asm68kOperator "=" " must be before other ops containing '=' +syn match asm68kOperator ">=" +syn match asm68kOperator "<=" +syn match asm68kOperator "==" " operand existence - used in macro definitions + +" Condition code style operators +syn match asm68kOperator "<[CV][CS]>" +syn match asm68kOperator "" +syn match asm68kOperator "" +syn match asm68kOperator "<[HM]I>" +syn match asm68kOperator "" +syn match asm68kOperator "" +syn match asm68kOperator "" + +" Comments +syn match asm68kComment ";.*" contains=asm68kTodo +syn match asm68kComment "\s!.*"ms=s+1 contains=asm68kTodo +syn match asm68kComment "^\s*[*!].*" contains=asm68kTodo + +" Include +syn match asm68kInclude "\" +syn match asm68kCond "\" +syn match asm68kCond "\" +syn match asm68kCond "\" +syn match asm68kRepeat "\" +syn match asm68kRepeat "\" +syn match asm68kRepeat "\" +syn match asm68kRepeat "\" +syn match asm68kRepeat "\" + +" Macro definition +syn match asm68kMacro "\" +syn match asm68kMacro "\" +syn match asm68kMacro "\" +syn match asm68kMacroParam "\\[0-9]" + +" Conditional assembly +syn match asm68kPreCond "\" +syn match asm68kPreCond "\" +syn match asm68kPreCond "\" + +" Loop control +syn match asm68kPreCond "\" + +" Directives +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\<\(NO\)\=LIST\>" +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\<\(NO\)\=PAGE\>" +syn match asm68kDirective "\" +syn match asm68kDirective "\" +syn match asm68kDirective "\ +" Previous Maintainer: Kevin Dahlhausen +" Last Change: 2020 Oct 31 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/asm.vim + +syn case ignore + +syn match asmDirective "\.h8300[hs]n\=" + +"h8300[h] registers +syn match asmRegister "e\=r\o[lh]\=" + +"h8300[h] opcodes - order is important! +syn match asmOpcode "add\.[lbw]" +syn match asmOpcode "add[sx :]" +syn match asmOpcode "and\.[lbw]" +syn match asmOpcode "bl[deots]" +syn match asmOpcode "cmp\.[lbw]" +syn match asmOpcode "dec\.[lbw]" +syn match asmOpcode "divx[us].[bw]" +syn match asmOpcode "ext[su]\.[lw]" +syn match asmOpcode "inc\.[lw]" +syn match asmOpcode "mov\.[lbw]" +syn match asmOpcode "mulx[su]\.[bw]" +syn match asmOpcode "neg\.[lbw]" +syn match asmOpcode "not\.[lbw]" +syn match asmOpcode "or\.[lbw]" +syn match asmOpcode "pop\.[wl]" +syn match asmOpcode "push\.[wl]" +syn match asmOpcode "rotx\=[lr]\.[lbw]" +syn match asmOpcode "sha[lr]\.[lbw]" +syn match asmOpcode "shl[lr]\.[lbw]" +syn match asmOpcode "sub\.[lbw]" +syn match asmOpcode "xor\.[lbw]" + +syn keyword asmOpcode andc band bcc bclr bcs beq bf bge bgt +syn keyword asmOpcode bhi bhs biand bild bior bist bixor bmi +syn keyword asmOpcode bne bnot bnp bor bpl bpt bra brn bset +syn keyword asmOpcode bsr btst bst bt bvc bvs bxor cmp daa +syn keyword asmOpcode das eepmov eepmovw inc jmp jsr ldc movfpe +syn keyword asmOpcode movtpe mov nop orc rte rts sleep stc +syn keyword asmOpcode sub trapa xorc + +syn case match + +hi def link asmOpcode Statement +hi def link asmRegister Identifier + +let b:current_syntax = "asmh8300" + +" vim: nowrap sw=2 sts=2 ts=8 noet diff --git a/runtime/syntax/asn.vim b/runtime/syntax/asn.vim new file mode 100644 index 0000000..e90c7e0 --- /dev/null +++ b/runtime/syntax/asn.vim @@ -0,0 +1,73 @@ +" Vim syntax file +" Language: ASN.1 +" Maintainer: Claudio Fleiner +" URL: http://www.fleiner.com/vim/syntax/asn.vim +" Last Change: 2012 Oct 05 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" keyword definitions +syn keyword asnExternal DEFINITIONS BEGIN END IMPORTS EXPORTS FROM +syn match asnExternal "\" +syn match asnExternal "\" +syn keyword asnFieldOption DEFAULT OPTIONAL +syn keyword asnTagModifier IMPLICIT EXPLICIT +syn keyword asnTypeInfo ABSENT PRESENT SIZE UNIVERSAL APPLICATION PRIVATE +syn keyword asnBoolValue TRUE FALSE +syn keyword asnNumber MIN MAX +syn match asnNumber "\" +syn match asnNumber "\" +syn keyword asnType INTEGER REAL STRING BIT BOOLEAN OCTET NULL EMBEDDED PDV +syn keyword asnType BMPString IA5String TeletexString GeneralString GraphicString ISO646String NumericString PrintableString T61String UniversalString VideotexString VisibleString +syn keyword asnType ANY DEFINED +syn match asnType "\.\.\." +syn match asnType "OBJECT\s\+IDENTIFIER" +syn match asnType "TYPE-IDENTIFIER" +syn keyword asnType UTF8String +syn keyword asnStructure CHOICE SEQUENCE SET OF ENUMERATED CONSTRAINED BY WITH COMPONENTS CLASS + +" Strings and constants +syn match asnSpecial contained "\\\d\d\d\|\\." +syn region asnString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=asnSpecial +syn match asnCharacter "'[^\\]'" +syn match asnSpecialCharacter "'\\.'" +syn match asnNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" +syn match asnLineComment "--.*" +syn match asnLineComment "--.*--" + +syn match asnDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 contains=asnType +syn match asnBraces "[{}]" + +syn sync ccomment asnComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link asnDefinition Function +hi def link asnBraces Function +hi def link asnStructure Statement +hi def link asnBoolValue Boolean +hi def link asnSpecial Special +hi def link asnString String +hi def link asnCharacter Character +hi def link asnSpecialCharacter asnSpecial +hi def link asnNumber asnValue +hi def link asnComment Comment +hi def link asnLineComment asnComment +hi def link asnType Type +hi def link asnTypeInfo PreProc +hi def link asnValue Number +hi def link asnExternal Include +hi def link asnTagModifier Function +hi def link asnFieldOption Type + +let &cpo = s:cpo_save +unlet s:cpo_save +let b:current_syntax = "asn" + +" vim: ts=8 diff --git a/runtime/syntax/aspperl.vim b/runtime/syntax/aspperl.vim new file mode 100644 index 0000000..5a9abed --- /dev/null +++ b/runtime/syntax/aspperl.vim @@ -0,0 +1,25 @@ +" Vim syntax file +" Language: Active State's PerlScript (ASP) +" Maintainer: Aaron Hope +" URL: http://nim.dhs.org/~edh/aspperl.vim +" Last Change: 2001 May 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'perlscript' +endif + +runtime! syntax/html.vim +unlet b:current_syntax +syn include @AspPerlScript syntax/perl.vim + +syn cluster htmlPreproc add=AspPerlScriptInsideHtmlTags + +syn region AspPerlScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ skip=+".*%>.*"+ end=+%>+ contains=@AspPerlScript +syn region AspPerlScriptInsideHtmlTags keepend matchgroup=Delimiter start=+]*>+ end=++ contains=@AspPerlScript + +let b:current_syntax = "aspperl" diff --git a/runtime/syntax/aspvbs.vim b/runtime/syntax/aspvbs.vim new file mode 100644 index 0000000..44909b6 --- /dev/null +++ b/runtime/syntax/aspvbs.vim @@ -0,0 +1,182 @@ +" Vim syntax file +" Language: Microsoft VBScript Web Content (ASP) +" Maintainer: Devin Weaver (non-functional) +" URL: http://tritarget.com/pub/vim/syntax/aspvbs.vim (broken) +" Last Change: 2006 Jun 19 +" by Dan Casey +" Version: $Revision: 1.3 $ +" Thanks to Jay-Jay for a syntax sync hack, hungarian +" notation, and extra highlighting. +" Thanks to patrick dehne for the folding code. +" Thanks to Dean Hall for testing the use of classes in +" VBScripts which I've been too scared to do. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'aspvbs' +endif + +runtime! syntax/html.vim +unlet b:current_syntax + +syn cluster htmlPreProc add=AspVBScriptInsideHtmlTags + + +" Colored variable names, if written in hungarian notation +hi def AspVBSVariableSimple term=standout ctermfg=3 guifg=#99ee99 +hi def AspVBSVariableComplex term=standout ctermfg=3 guifg=#ee9900 +syn match AspVBSVariableSimple contained "\<\(bln\|byt\|dtm\=\|dbl\|int\|str\)\u\w*" +syn match AspVBSVariableComplex contained "\<\(arr\|ary\|obj\)\u\w*" + + +" Functions and methods that are in VB but will cause errors in an ASP page +" This is helpful if your porting VB code to ASP +" I removed (Count, Item) because these are common variable names in AspVBScript +syn keyword AspVBSError contained Val Str CVar CVDate DoEvents GoSub Return GoTo +syn keyword AspVBSError contained Stop LinkExecute Add Type LinkPoke +syn keyword AspVBSError contained LinkRequest LinkSend Declare Optional Sleep +syn keyword AspVBSError contained ParamArray Static Erl TypeOf Like LSet RSet Mid StrConv +" It may seem that most of these can fit into a keyword clause but keyword takes +" priority over all so I can't get the multi-word matches +syn match AspVBSError contained "\" +syn match AspVBSError contained "^\s*Open\s\+" +syn match AspVBSError contained "Debug\.[a-zA-Z0-9_]*" +syn match AspVBSError contained "^\s*[a-zA-Z0-9_]\+:" +syn match AspVBSError contained "[a-zA-Z0-9_]\+![a-zA-Z0-9_]\+" +syn match AspVBSError contained "^\s*#.*$" +syn match AspVBSError contained "\\|\" +syn match AspVBSError contained "\\|\\|\\|\\|\" +syn match AspVBSError contained "\" +" This one I want 'cause I always seem to mis-spell it. +syn match AspVBSError contained "Respon\?ce\.\S*" +syn match AspVBSError contained "Respose\.\S*" +" When I looked up the VBScript syntax it mentioned that Property Get/Set/Let +" statements are illegal, however, I have received reports that they do work. +" So I commented it out for now. +" syn match AspVBSError contained "\" + +" AspVBScript Reserved Words. +syn match AspVBSStatement contained "\\|\" +syn match AspVBSStatement contained "\" +syn match AspVBSStatement contained "\" +syn match AspVBSStatement contained "\" +syn match AspVBSStatement contained "\" +syn match AspVBSStatement contained "\\|\" +syn match AspVBSStatement contained "\" +syn keyword AspVBSStatement contained Call Class Const Default Dim Do Loop Erase And +syn keyword AspVBSStatement contained Function If Then Else ElseIf Or +syn keyword AspVBSStatement contained Private Public Randomize ReDim +syn keyword AspVBSStatement contained Select Case Sub While With Wend Not + +" AspVBScript Functions +syn keyword AspVBSFunction contained Abs Array Asc Atn CBool CByte CCur CDate CDbl +syn keyword AspVBSFunction contained Chr CInt CLng Cos CreateObject CSng CStr Date +syn keyword AspVBSFunction contained DateAdd DateDiff DatePart DateSerial DateValue +syn keyword AspVBSFunction contained Date Day Exp Filter Fix FormatCurrency +syn keyword AspVBSFunction contained FormatDateTime FormatNumber FormatPercent +syn keyword AspVBSFunction contained GetObject Hex Hour InputBox InStr InStrRev Int +syn keyword AspVBSFunction contained IsArray IsDate IsEmpty IsNull IsNumeric +syn keyword AspVBSFunction contained IsObject Join LBound LCase Left Len LoadPicture +syn keyword AspVBSFunction contained Log LTrim Mid Minute Month MonthName MsgBox Now +syn keyword AspVBSFunction contained Oct Replace RGB Right Rnd Round RTrim +syn keyword AspVBSFunction contained ScriptEngine ScriptEngineBuildVersion +syn keyword AspVBSFunction contained ScriptEngineMajorVersion +syn keyword AspVBSFunction contained ScriptEngineMinorVersion Second Sgn Sin Space +syn keyword AspVBSFunction contained Split Sqr StrComp StrReverse String Tan Time Timer +syn keyword AspVBSFunction contained TimeSerial TimeValue Trim TypeName UBound UCase +syn keyword AspVBSFunction contained VarType Weekday WeekdayName Year + +" AspVBScript Methods +syn keyword AspVBSMethods contained Add AddFolders BuildPath Clear Close Copy +syn keyword AspVBSMethods contained CopyFile CopyFolder CreateFolder CreateTextFile +syn keyword AspVBSMethods contained Delete DeleteFile DeleteFolder DriveExists +syn keyword AspVBSMethods contained Exists FileExists FolderExists +syn keyword AspVBSMethods contained GetAbsolutePathName GetBaseName GetDrive +syn keyword AspVBSMethods contained GetDriveName GetExtensionName GetFile +syn keyword AspVBSMethods contained GetFileName GetFolder GetParentFolderName +syn keyword AspVBSMethods contained GetSpecialFolder GetTempName Items Keys Move +syn keyword AspVBSMethods contained MoveFile MoveFolder OpenAsTextStream +syn keyword AspVBSMethods contained OpenTextFile Raise Read ReadAll ReadLine Remove +syn keyword AspVBSMethods contained RemoveAll Skip SkipLine Write WriteBlankLines +syn keyword AspVBSMethods contained WriteLine +syn match AspVBSMethods contained "Response\.\w*" +" Colorize boolean constants: +syn keyword AspVBSMethods contained true false + +" AspVBScript Number Constants +" Integer number, or floating point number without a dot. +syn match AspVBSNumber contained "\<\d\+\>" +" Floating point number, with dot +syn match AspVBSNumber contained "\<\d\+\.\d*\>" +" Floating point number, starting with a dot +syn match AspVBSNumber contained "\.\d\+\>" + +" String and Character Constants +" removed (skip=+\\\\\|\\"+) because VB doesn't have backslash escaping in +" strings (or does it?) +syn region AspVBSString contained start=+"+ end=+"+ keepend + +" AspVBScript Comments +syn region AspVBSComment contained start="^REM\s\|\sREM\s" end="$" contains=AspVBSTodo keepend +syn region AspVBSComment contained start="^'\|\s'" end="$" contains=AspVBSTodo keepend +" misc. Commenting Stuff +syn keyword AspVBSTodo contained TODO FIXME + +" Cosmetic syntax errors commanly found in VB but not in AspVBScript +" AspVBScript doesn't use line numbers +syn region AspVBSError contained start="^\d" end="\s" keepend +" AspVBScript also doesn't have type defining variables +syn match AspVBSError contained "[a-zA-Z0-9_][\$&!#]"ms=s+1 +" Since 'a%' is a VB variable with a type and in AspVBScript you can have 'a%>' +" I have to make a special case so 'a%>' won't show as an error. +syn match AspVBSError contained "[a-zA-Z0-9_]%\($\|[^>]\)"ms=s+1 + +" Top Cluster +syn cluster AspVBScriptTop contains=AspVBSStatement,AspVBSFunction,AspVBSMethods,AspVBSNumber,AspVBSString,AspVBSComment,AspVBSError,AspVBSVariableSimple,AspVBSVariableComplex + +" Folding +syn region AspVBSFold start="^\s*\(class\)\s\+.*$" end="^\s*end\s\+\(class\)\>.*$" fold contained transparent keepend +syn region AspVBSFold start="^\s*\(private\|public\)\=\(\s\+default\)\=\s\+\(sub\|function\)\s\+.*$" end="^\s*end\s\+\(function\|sub\)\>.*$" fold contained transparent keepend + +" Define AspVBScript delimiters +" <%= func("string_with_%>_in_it") %> This is illegal in ASP syntax. +syn region AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+<%=\=+ end=+%>+ contains=@AspVBScriptTop, AspVBSFold +syn region AspVBScriptInsideHtmlTags keepend matchgroup=Delimiter start=+]*\s\+runatserver[^>]*>+ end=++ contains=@AspVBScriptTop + + +" Synchronization +" syn sync match AspVBSSyncGroup grouphere AspVBScriptInsideHtmlTags "<%" +" This is a kludge so the HTML will sync properly +syn sync match htmlHighlight grouphere htmlTag "%>" + + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +"hi def link AspVBScript Special +hi def link AspVBSLineNumber Comment +hi def link AspVBSNumber Number +hi def link AspVBSError Error +hi def link AspVBSStatement Statement +hi def link AspVBSString String +hi def link AspVBSComment Comment +hi def link AspVBSTodo Todo +hi def link AspVBSFunction Identifier +hi def link AspVBSMethods PreProc +hi def link AspVBSEvents Special +hi def link AspVBSTypeSpecifier Type + + +let b:current_syntax = "aspvbs" + +if main_syntax == 'aspvbs' + unlet main_syntax +endif + +" vim: ts=8:sw=2:sts=0:noet diff --git a/runtime/syntax/asterisk.vim b/runtime/syntax/asterisk.vim new file mode 100644 index 0000000..4b3d246 --- /dev/null +++ b/runtime/syntax/asterisk.vim @@ -0,0 +1,88 @@ +" Vim syntax file +" Language: Asterisk config file +" Maintainer: Jean Aunis +" Previous Maintainer: brc007 +" Updated for 1.2 by Tilghman Lesher (Corydon76) +" Last Change: 2015 Feb 27 +" version 0.4 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn sync clear +syn sync fromstart + +syn keyword asteriskTodo TODO contained +syn match asteriskComment ";.*" contains=asteriskTodo +syn match asteriskContext "\[.\{-}\]" +syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority +syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority +syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|l\?e\?switch\|\(no\)\?load\)\s*=>\?" +syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained +syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained +syn match asteriskApp ",\zs[a-zA-Z]\+\ze$" +syn match asteriskApp ",\zs[a-zA-Z]\+\ze(" +" Digits plus oldlabel (newlabel) +syn match asteriskPriority "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel +" oldlabel plus digits (newlabel) +syn match asteriskPriority "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel +" s or n plus digits (newlabel) +syn match asteriskPriority "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel +syn match asteriskLabel "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained +syn match asteriskError "^\s*#\s*[[:alnum:]]*" +syn match asteriskInclude "^\s*#\s*\(include\|exec\)\s.*" +syn match asteriskVar "\${_\{0,2}[[:alpha:]][[:alnum:]_]*\(:-\?[[:digit:]]\+\(:[[:digit:]]\+\)\?\)\?}" +syn match asteriskVar "_\{0,2}[[:alpha:]][[:alnum:]_]*\ze=" +syn match asteriskVarLen "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}" contains=asteriskVar,asteriskVarLen,asteriskExp +syn match asteriskVarLen "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp +syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp +syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs +syn match asteriskCodecs "\(vp9\|vp8\|h264\|h263p\|h263\|h261\|jpeg\|opus\|g722\|g723\|gsm\|ulaw\|alaw\|g719\|g726\|g726aal2\|siren7\|siren14\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|wav\|all\s*$\)" +syn match asteriskError "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$" +syn match asteriskType "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType +syn match asteriskTypeType "\<\(peer\|user\|friend\)\>" contained +syn match asteriskAuth "^\zsauth\s*=\ze\s*\<\(md5\|rsa\|plaintext\)\>$" contains=asteriskAuthType +syn match asteriskAuthType "\<\(md5\|rsa\|plaintext\)\>" +syn match asteriskAuth "^\zs\(secret\|inkeys\|outkey\)\s*=\ze.*$" +syn match asteriskAuth "^\(permit\|deny\)\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\s*$" contains=asteriskIPRange +syn match asteriskIPRange "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained +syn match asteriskIP "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained +syn match asteriskHostname "[[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}" contained +syn match asteriskPort "\d\{1,5}" contained +syn match asteriskSetting "^bindaddr\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}$" contains=asteriskIP +syn match asteriskSetting "^port\s*=\s*\d\{1,5}\s*$" contains=asteriskPort +syn match asteriskSetting "^host\s*=\s*\(dynamic\|\(\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)\|\([[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}\)\)" contains=asteriskIP,asteriskHostname + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link asteriskComment Comment +hi def link asteriskExten String +hi def link asteriskContext Preproc +hi def link asteriskPattern Type +hi def link asteriskApp Statement +hi def link asteriskInclude Preproc +hi def link asteriskIncludeBad Error +hi def link asteriskPriority Preproc +hi def link asteriskLabel Type +hi def link asteriskVar String +hi def link asteriskVarLen Function +hi def link asteriskExp Type +hi def link asteriskCodecsPermit Preproc +hi def link asteriskCodecs String +hi def link asteriskType Statement +hi def link asteriskTypeType Type +hi def link asteriskAuth String +hi def link asteriskAuthType Type +hi def link asteriskIPRange Identifier +hi def link asteriskIP Identifier +hi def link asteriskPort Identifier +hi def link asteriskHostname Identifier +hi def link asteriskSetting Statement +hi def link asteriskError Error + +let b:current_syntax = "asterisk" +" vim: ts=8 sw=2 + diff --git a/runtime/syntax/asteriskvm.vim b/runtime/syntax/asteriskvm.vim new file mode 100644 index 0000000..fa55af5 --- /dev/null +++ b/runtime/syntax/asteriskvm.vim @@ -0,0 +1,51 @@ +" Vim syntax file +" Language: Asterisk voicemail config file +" Maintainer: Tilghman Lesher (Corydon76) +" Last Change: 2006 Mar 21 +" version 0.2 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn sync clear +syn sync fromstart + + +syn keyword asteriskvmTodo TODO contained +syn match asteriskvmComment ";.*" contains=asteriskvmTodo +syn match asteriskvmContext "\[.\{-}\]" + +" ZoneMessages +syn match asteriskvmZone "^[[:alnum:]]\+\s*=>\?\s*[[:alnum:]/_]\+|.*$" contains=zoneName,zoneDef +syn match zoneName "=\zs[[:alnum:]/_]\+\ze" contained +syn match zoneDef "|\zs.*\ze$" contained + +syn match asteriskvmSetting "\<\(format\|serveremail\|minmessage\|maxmessage\|maxgreet\|skipms\|maxsilence\|silencethreshold\|maxlogins\)=" +syn match asteriskvmSetting "\<\(externnotify\|externpass\|directoryintro\|charset\|adsi\(fdn\|sec\|ver\)\|\(pager\)\?fromstring\|email\(subject\|body\|cmd\)\|tz\|cidinternalcontexts\|saydurationm\|dialout\|callback\)=" +syn match asteriskvmSettingBool "\<\(attach\|pbxskip\|usedirectory\|saycid\|sayduration\|sendvoicemail\|review\|operator\|envelope\|delete\|nextaftercmd\|forcename\|forcegreeting\)=\(yes\|no\|1\|0\|true\|false\|t\|f\)" + +" Individual mailbox definitions +syn match asteriskvmMailbox "^[[:digit:]]\+\s*=>\?\s*[[:digit:]]\+\(,[^,]*\(,[^,]*\(,[^,]*\(,[^,]*\)\?\)\?\)\?\)\?" contains=mailboxEmail,asteriskvmSetting,asteriskvmSettingBool,comma +syn match mailboxEmail ",\zs[^@=,]*@[[:alnum:]\-\.]\+\.[[:alpha:]]\{2,10}\ze" contains=comma +syn match comma "[,|]" contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link asteriskvmComment Comment +hi def link asteriskvmContext Identifier +hi def link asteriskvmZone Type +hi def link zoneName String +hi def link zoneDef String +hi def link asteriskvmSetting Type +hi def link asteriskvmSettingBool Type + +hi def link asteriskvmMailbox Statement +hi def link mailboxEmail String + +let b:current_syntax = "asteriskvm" + +" vim: ts=8 sw=2 + diff --git a/runtime/syntax/atlas.vim b/runtime/syntax/atlas.vim new file mode 100644 index 0000000..1cdceab --- /dev/null +++ b/runtime/syntax/atlas.vim @@ -0,0 +1,85 @@ +" Vim syntax file +" Language: ATLAS +" Maintainer: Inaki Saez +" Last Change: 2001 May 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn keyword atlasStatement begin terminate +syn keyword atlasStatement fill calculate compare +syn keyword atlasStatement setup connect close open disconnect reset +syn keyword atlasStatement initiate read fetch +syn keyword atlasStatement apply measure verify remove +syn keyword atlasStatement perform leave finish output delay +syn keyword atlasStatement prepare execute +syn keyword atlasStatement do +syn match atlasStatement "\" +syn match atlasStatement "\" + +syn keyword atlasInclude include +syn keyword atlasDefine define require declare identify + +"syn keyword atlasReserved true false go nogo hi lo via +syn keyword atlasReserved true false + +syn keyword atlasStorageClass external global + +syn keyword atlasConditional if then else end +syn keyword atlasRepeat while for thru + +" Flags BEF and statement number +syn match atlasSpecial "^[BE ][ 0-9]\{,6}\>" + +" Number formats +syn match atlasHexNumber "\" +"Floating point number part only +syn match atlasDecimalNumber "\.\d\+\([eE][-+]\=\d\)\=\>" + +syn region atlasFormatString start=+((+ end=+\())\)\|\()[ ]*\$\)+me=e-1 +syn region atlasString start=+\ +" Last Change: 2018 Jan 23 +" Version: 2.9 +" Remark: Included by pike.vim, cmod.vim and optionally c.vim +" Remark: In order to make c.vim use it, set: c_autodoc + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case match + +" A bunch of useful autodoc keywords +syn keyword autodocStatement contained appears belongs global +syn keyword autodocStatement contained decl directive inherit +syn keyword autodocStatement contained deprecated obsolete bugs +syn keyword autodocStatement contained copyright example fixme note param returns +syn keyword autodocStatement contained seealso thanks throws constant +syn keyword autodocStatement contained member index elem +syn keyword autodocStatement contained value type item + +syn keyword autodocRegion contained enum mapping code multiset array +syn keyword autodocRegion contained int string section mixed ol ul dl +syn keyword autodocRegion contained class module namespace +syn keyword autodocRegion contained endenum endmapping endcode endmultiset +syn keyword autodocRegion contained endarray endint endstring endsection +syn keyword autodocRegion contained endmixed endol endul enddl +syn keyword autodocRegion contained endclass endmodule endnamespace + +syn keyword autodocIgnore contained ignore endignore + +syn keyword autodocStatAcc contained b i u tt url pre sub sup +syn keyword autodocStatAcc contained ref rfc xml dl expr image + +syn keyword autodocTodo contained TODO FIXME XXX + +syn match autodocLineStart display "\(//\|/\?\*\)\@2<=!" +syn match autodocWords "[^!@{}[\]]\+" display contains=@Spell + +syn match autodocLink "@\[[^[\]]\+]"hs=s+2,he=e-1 display contains=autodocLead +syn match autodocAtStmt "@[a-z]\+\%(\s\|$\)\@="hs=s+1 display contains=autodocStatement,autodocIgnore,autodocLead,autodocRegion + +" Due to limitations of the matching algorithm, we cannot highlight +" nested autodocNStmtAcc structures correctly +syn region autodocNStmtAcc start="@[a-z]\+{" end="@}" contains=autodocStatAcc,autodocLead keepend + +syn match autodocUrl contained display ".\+" +syn region autodocAtUrlAcc start="{"ms=s+1 end="@}"he=e-1,me=e-2 contained display contains=autodocUrl,autodocLead keepend +syn region autodocNUrlAcc start="@url{" end="@}" contains=autodocStatAcc,autodocAtUrlAcc,autodocLead transparent + +syn match autodocSpecial "@@" display +syn match autodocLead "@" display contained + +"when wanted, highlight trailing white space +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match autodocSpaceError display excludenl "\s\+$" + endif + if !exists("c_no_tab_space_error") + syn match autodocSpaceError display " \+\t"me=e-1 + endif +endif + +if exists("c_minlines") + let b:c_minlines = c_minlines +else + if !exists("c_no_if0") + let b:c_minlines = 50 " #if 0 constructs can be long + else + let b:c_minlines = 15 " mostly for () constructs + endif +endif +exec "syn sync ccomment autodocComment minlines=" . b:c_minlines + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link autodocStatement Statement +hi def link autodocStatAcc Statement +hi def link autodocRegion Structure +hi def link autodocAtStmt Error +hi def link autodocNStmtAcc Identifier +hi def link autodocLink Type +hi def link autodocTodo Todo +hi def link autodocSpaceError Error +hi def link autodocLineStart SpecialComment +hi def link autodocSpecial SpecialChar +hi def link autodocUrl Underlined +hi def link autodocLead Statement +hi def link autodocIgnore Delimiter + +let b:current_syntax = "autodoc" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/autohotkey.vim b/runtime/syntax/autohotkey.vim new file mode 100644 index 0000000..a888394 --- /dev/null +++ b/runtime/syntax/autohotkey.vim @@ -0,0 +1,325 @@ +" Vim syntax file +" Language: AutoHotkey script file +" Maintainer: Michael Wong +" https://github.com/mmikeww/autohotkey.vim +" Latest Revision: 2022-07-25 +" Previous Maintainers: SungHyun Nam +" Nikolai Weibull + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +syn keyword autohotkeyTodo + \ contained + \ TODO FIXME XXX NOTE + +" only these chars are valid as escape sequences: ,%`;nrbtvaf +" https://autohotkey.com/docs/commands/_EscapeChar.htm +syn match autohotkeyEscape + \ display + \ '`[,%`;nrbtvaf]' + +syn region autohotkeyString + \ display + \ oneline + \ matchgroup=autohotkeyStringDelimiter + \ start=+"+ + \ end=+"+ + \ contains=autohotkeyEscape,autohotkeyMatchClass + +syn match autohotkeyVariable + \ display + \ oneline + \ contains=autohotkeyBuiltinVariable + \ keepend + \ '%\S\{-}%' + +syn keyword autohotkeyBuiltinVariable + \ A_Space A_Tab + \ A_WorkingDir A_ScriptDir A_ScriptName A_ScriptFullPath A_ScriptHwnd A_LineNumber + \ A_LineFile A_ThisFunc A_ThisLabel A_AhkVersion A_AhkPath A_IsUnicode A_IsCompiled A_ExitReason + \ A_YYYY A_MM A_DD A_MMMM A_MMM A_DDDD A_DDD A_WDay A_YDay A_YWeek A_Hour A_Min + \ A_Mon A_Year A_MDay A_NumBatchLines + \ A_Sec A_MSec A_Now A_NowUTC A_TickCount + \ A_IsSuspended A_IsPaused A_IsCritical A_BatchLines A_TitleMatchMode A_TitleMatchModeSpeed + \ A_DetectHiddenWindows A_DetectHiddenText A_AutoTrim A_StringCaseSense + \ A_FileEncoding A_FormatInteger A_FormatFloat A_WinDelay A_ControlDelay + \ A_SendMode A_SendLevel A_StoreCapsLockMode A_KeyDelay A_KeyDuration + \ A_KeyDelayPlay A_KeyDurationPlay A_MouseDelayPlay + \ A_MouseDelay A_DefaultMouseSpeed A_RegView A_IconHidden A_IconTip A_IconFile + \ A_CoordModeToolTip A_CoordModePixel A_CoordModeMouse A_CoordModeCaret A_CoordModeMenu + \ A_IconNumber + \ A_TimeIdle A_TimeIdlePhysical A_DefaultGui A_DefaultListView A_DefaultTreeView + \ A_Gui A_GuiControl A_GuiWidth A_GuiHeight A_GuiX A_GuiY A_GuiEvent + \ A_GuiControlEvent A_EventInfo + \ A_ThisMenuItem A_ThisMenu A_ThisMenuItemPos A_ThisHotkey A_PriorHotkey + \ A_PriorKey A_TimeSinceThisHotkey A_TimeSincePriorHotkey A_EndChar + \ ComSpec A_Temp A_OSType A_OSVersion A_Language A_ComputerName A_UserName + \ A_Is64BitOS A_PtrSize + \ A_WinDir A_ProgramFiles ProgramFiles A_AppData A_AppDataCommon A_Desktop + \ A_DesktopCommon A_StartMenu A_StartMenuCommon A_Programs + \ A_ProgramsCommon A_Startup A_StartupCommon A_MyDocuments A_IsAdmin + \ A_ScreenWidth A_ScreenHeight A_ScreenDPI A_IPAddress1 A_IPAddress2 A_IPAddress3 + \ A_IPAddress4 + \ A_Cursor A_CaretX A_CaretY Clipboard ClipboardAll ErrorLevel A_LastError + \ A_Index A_LoopFileName A_LoopRegName A_LoopReadLine A_LoopField + \ A_LoopFileExt A_LoopFileFullPath A_LoopFileLongPath A_LoopFileShortPath + \ A_LoopFileShortName A_LoopFileDir A_LoopFileTimeModified A_LoopFileTimeCreated + \ A_LoopFileTimeAccessed A_LoopFileAttrib A_LoopFileSize A_LoopFileSizeKB A_LoopFileSizeMB + \ A_LoopRegType A_LoopRegKey A_LoopRegSubKey A_LoopRegTimeModified + \ A_TimeIdleKeyboard A_TimeIdleMouse A_ListLines A_ComSpec A_LoopFilePath A_Args + +syn match autohotkeyBuiltinVariable + \ contained + \ display + \ '%\d\+%' + +syn keyword autohotkeyCommand + \ ClipWait EnvGet EnvSet EnvUpdate + \ Drive DriveGet DriveSpaceFree FileAppend FileCopy FileCopyDir + \ FileCreateDir FileCreateShortcut FileDelete FileGetAttrib FileEncoding + \ FileGetShortcut FileGetSize FileGetTime FileGetVersion FileInstall + \ FileMove FileMoveDir FileReadLine FileRead FileRecycle FileRecycleEmpty + \ FileRemoveDir FileSelectFolder FileSelectFile FileSetAttrib FileSetTime + \ IniDelete IniRead IniWrite SetWorkingDir + \ SplitPath + \ Gui GuiControl GuiControlGet IfMsgBox InputBox MsgBox Progress + \ SplashImage SplashTextOn SplashTextOff ToolTip TrayTip + \ Hotkey ListHotkeys BlockInput ControlSend ControlSendRaw GetKeyState + \ KeyHistory KeyWait Input Send SendRaw SendInput SendPlay SendEvent + \ SendMode SetKeyDelay SetNumScrollCapsLockState SetStoreCapslockMode + \ EnvAdd EnvDiv EnvMult EnvSub Random SetFormat Transform + \ AutoTrim BlockInput CoordMode Critical Edit ImageSearch + \ ListLines ListVars Menu OutputDebug PixelGetColor PixelSearch + \ SetBatchLines SetEnv SetTimer SysGet Thread Transform URLDownloadToFile + \ Click ControlClick MouseClick MouseClickDrag MouseGetPos MouseMove + \ SetDefaultMouseSpeed SetMouseDelay + \ Process Run RunWait RunAs Shutdown Sleep + \ RegDelete RegRead RegWrite + \ SoundBeep SoundGet SoundGetWaveVolume SoundPlay SoundSet + \ SoundSetWaveVolume + \ FormatTime IfInString IfNotInString Sort StringCaseSense StringGetPos + \ StringLeft StringRight StringLower StringUpper StringMid StringReplace + \ StringSplit StringTrimLeft StringTrimRight StringLen + \ StrSplit StrReplace Throw + \ Control ControlClick ControlFocus ControlGet ControlGetFocus + \ ControlGetPos ControlGetText ControlMove ControlSend ControlSendRaw + \ ControlSetText Menu PostMessage SendMessage SetControlDelay + \ WinMenuSelectItem GroupActivate GroupAdd GroupClose GroupDeactivate + \ DetectHiddenText DetectHiddenWindows SetTitleMatchMode SetWinDelay + \ StatusBarGetText StatusBarWait WinActivate WinActivateBottom WinClose + \ WinGet WinGetActiveStats WinGetActiveTitle WinGetClass WinGetPos + \ WinGetText WinGetTitle WinHide WinKill WinMaximize WinMinimize + \ WinMinimizeAll WinMinimizeAllUndo WinMove WinRestore WinSet + \ WinSetTitle WinShow WinWait WinWaitActive WinWaitNotActive WinWaitClose + \ SetCapsLockState SetNumLockState SetScrollLockState + \ Hotstring LoadPicture MenuGetHandle MenuGetName OnError OnClipboardChange + +syn keyword autohotkeyFunction + \ InStr RegExMatch RegExReplace StrLen SubStr Asc Chr Func + \ DllCall VarSetCapacity WinActive WinExist IsLabel OnMessage + \ Abs Ceil Exp Floor Log Ln Mod Round Sqrt Sin Cos Tan ASin ACos ATan + \ FileExist GetKeyState NumGet NumPut StrGet StrPut RegisterCallback + \ IsFunc Trim LTrim RTrim IsObject Object Array FileOpen + \ ComObjActive ComObjArray ComObjConnect ComObjCreate ComObjGet + \ ComObjError ComObjFlags ComObjQuery ComObjType ComObjValue ComObject + \ Format Exception Ord InputHook + +syn keyword autohotkeyStatement + \ Break Continue Exit ExitApp Gosub Goto OnExit Pause Return + \ Suspend Reload new class extends + +syn keyword autohotkeyRepeat + \ Loop + +syn keyword autohotkeyConditional + \ IfExist IfNotExist If IfEqual IfLess IfGreater Else + \ IfWinExist IfWinNotExist IfWinActive IfWinNotActive + \ IfNotEqual IfLessOrEqual IfGreaterOrEqual + \ while until for in try catch finally not + \ switch case default + +syn match autohotkeyPreProcStart + \ nextgroup= + \ autohotkeyInclude, + \ autohotkeyPreProc + \ skipwhite + \ display + \ '^\s*\zs#' + +syn keyword autohotkeyInclude + \ contained + \ Include + \ IncludeAgain + +syn keyword autohotkeyPreProc + \ contained + \ HotkeyInterval HotKeyModifierTimeout + \ Hotstring + \ IfWinActive IfWinNotActive IfWinExist IfWinNotExist + \ If IfTimeout + \ MaxHotkeysPerInterval MaxThreads MaxThreadsBuffer MaxThreadsPerHotkey + \ UseHook InstallKeybdHook InstallMouseHook + \ KeyHistory + \ NoTrayIcon SingleInstance + \ WinActivateForce + \ AllowSameLineComments + \ ClipboardTimeout + \ CommentFlag + \ ErrorStdOut + \ EscapeChar + \ MaxMem + \ NoEnv + \ Persistent + \ LTrim + \ InputLevel + \ MenuMaskKey + \ Warn + +syn keyword autohotkeyMatchClass + \ ahk_group ahk_class ahk_id ahk_pid ahk_exe + +syn match autohotkeyNumbers + \ display + \ transparent + \ contains= + \ autohotkeyInteger, + \ autohotkeyFloat + \ '\<\d\|\.\d' + +syn match autohotkeyInteger + \ contained + \ display + \ '\d\+\>' + +syn match autohotkeyInteger + \ contained + \ display + \ '0x\x\+\>' + +syn match autohotkeyFloat + \ contained + \ display + \ '\d\+\.\d*\|\.\d\+\>' + +syn keyword autohotkeyType + \ local + \ global + \ static + \ byref + +syn keyword autohotkeyBoolean + \ true + \ false + +syn match autohotkeyHotkey + \ contains=autohotkeyKey, + \ autohotkeyHotkeyDelimiter + \ display + \ '^\s*\S*\%( Up\)\?::' + +syn match autohotkeyKey + \ contained + \ display + \ '^.\{-}' + +syn match autohotkeyDelimiter + \ contained + \ display + \ '::' + +" allowable hotstring options: +" https://autohotkey.com/docs/Hotstrings.htm +syn match autohotkeyHotstringDefinition + \ contains=autohotkeyHotstring, + \ autohotkeyHotstringDelimiter + \ display + \ '^\s*:\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:.\{-}::' + +syn match autohotkeyHotstring + \ contained + \ display + \ '.\{-}' + +syn match autohotkeyHotstringDelimiter + \ contained + \ display + \ '::' + +syn match autohotkeyHotstringDelimiter + \ contains=autohotkeyHotstringOptions + \ contained + \ display + \ ':\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*:' + +syn match autohotkeyHotstringOptions + \ contained + \ display + \ '\%([*?]\|[BORZ]0\?\|C[01]\?\|K\d\+\|P\d\+\|S[IPE]\)*' + +syn cluster autohotkeyCommentGroup + \ contains= + \ autohotkeyTodo, + \ @Spell + +syn match autohotkeyComment + \ display + \ contains=@autohotkeyCommentGroup + \ '\%(^;\|\s\+;\).*$' + +syn region autohotkeyComment + \ contains=@autohotkeyCommentGroup + \ matchgroup=autohotkeyCommentStart + \ start='^\s*/\*' + \ end='^\s*\*/' + +" TODO: Shouldn't we look for g:, b:, variables before defaulting to +" something? +if exists("g:autohotkey_syntax_sync_minlines") + let b:autohotkey_syntax_sync_minlines = g:autohotkey_syntax_sync_minlines +else + let b:autohotkey_syntax_sync_minlines = 50 +endif +exec "syn sync ccomment autohotkeyComment minlines=" . b:autohotkey_syntax_sync_minlines + +hi def link autohotkeyTodo Todo +hi def link autohotkeyComment Comment +hi def link autohotkeyCommentStart autohotkeyComment +hi def link autohotkeyEscape Special +hi def link autohotkeyHotkey Type +hi def link autohotkeyKey Type +hi def link autohotkeyDelimiter Delimiter +hi def link autohotkeyHotstringDefinition Type +hi def link autohotkeyHotstring Type +hi def link autohotkeyHotstringDelimiter autohotkeyDelimiter +hi def link autohotkeyHotstringOptions Special +hi def link autohotkeyString String +hi def link autohotkeyStringDelimiter autohotkeyString +hi def link autohotkeyVariable Identifier +hi def link autohotkeyVariableDelimiter autohotkeyVariable +hi def link autohotkeyBuiltinVariable Macro +hi def link autohotkeyCommand Keyword +hi def link autohotkeyFunction Function +hi def link autohotkeyStatement autohotkeyCommand +hi def link autohotkeyRepeat Repeat +hi def link autohotkeyConditional Conditional +hi def link autohotkeyPreProcStart PreProc +hi def link autohotkeyInclude Include +hi def link autohotkeyPreProc PreProc +hi def link autohotkeyMatchClass Typedef +hi def link autohotkeyNumber Number +hi def link autohotkeyInteger autohotkeyNumber +hi def link autohotkeyFloat autohotkeyNumber +hi def link autohotkeyType Type +hi def link autohotkeyBoolean Boolean + +let b:current_syntax = "autohotkey" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/autoit.vim b/runtime/syntax/autoit.vim new file mode 100644 index 0000000..6b6048a --- /dev/null +++ b/runtime/syntax/autoit.vim @@ -0,0 +1,1125 @@ +" Vim syntax file +" +" Language: AutoIt v3 (http://www.autoitscript.com/autoit3/) +" Maintainer: Jared Breland +" Authored By: Riccardo Casini +" Script URL: http://www.vim.org/scripts/script.php?script_id=1239 +" ChangeLog: Please visit the script URL for detailed change information +" Included change from #970. + +" Quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +let b:current_syntax = "autoit" + +" AutoIt is not case dependent +syn case ignore + +" Definitions for AutoIt reserved keywords +syn keyword autoitKeyword Default False True +syn keyword autoitKeyword Const Dim Global Local ReDim +syn keyword autoitKeyword If Else ElseIf Then EndIf +syn keyword autoitKeyword Select Switch Case EndSelect EndSwitch +syn keyword autoitKeyword Enum For In To Step Next +syn keyword autoitKeyword With While EndWith Wend Do Until +syn keyword autoitKeyword ContinueCase ContinueLoop ExitLoop Exit + +" inside script inclusion and global options +syn match autoitIncluded display contained "<[^>]*>" +syn match autoitInclude display "^\s*#\s*include\>\s*["<]" + \ contains=autoitIncluded,autoitString +syn match autoitInclude "^\s*#include-once\>" +syn match autoitInclude "^\s*#NoTrayIcon\>" +syn match autoitInclude "^\s*#RequireAdmin\>" + +" user-defined functions +syn keyword autoitKeyword Func ByRef EndFunc Return OnAutoItStart OnAutoItExit + +" built-in functions +" environment management +syn keyword autoitFunction ClipGet ClipPut EnvGet EnvSet EnvUpdate MemGetStats +" file, directory, and disk management +syn keyword autoitFunction ConsoleRead ConsoleWrite ConsoleWriteError +syn keyword autoitFunction DirCopy DirCreate DirGetSize DirMove DirRemove +syn keyword autoitFunction DriveGetDrive DriveGetFileSystem DriveGetLabel + \ DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet + \ DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus +syn keyword autoitFunction FileChangeDir FileClose FileCopy FileCreateNTFSLink + \ FileCreateShortcut FileDelete FileExists FileFindFirstFile + \ FileFindNextFile FileGetAttrib FileGetLongName FileGetShortcut + \ FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall + \ FileMove FileOpen FileOpenDialog FileRead FileReadLine FileRecycle + \ FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib + \ FileSetTime FileWrite FileWriteLine +syn keyword autoitFunction IniDelete IniRead IniReadSection IniReadSectionNames + \ IniRenameSection IniWrite IniWriteSection +syn keyword autoitFunction StderrRead StdinWrite StdoutRead +" graphic and sound +syn keyword autoitFunction Beep PixelChecksum PixelGetColor PixelSearch + \ SoundPlay SoundSetWaveVolume +" gui reference +syn keyword autoitFunction GUICreate GUIDelete GUICtrlGetHandle GUICtrlGetState + \ GUICtrlRead GUICtrlRecvMsg GUICtrlSendMsg GUICtrlSendToDummy + \ GUIGetCursorInfo GUIGetMsg GUIRegisterMsg GUIStartGroup GUISwitch +syn keyword autoitFunction GUICtrlCreateAvi GUICtrlCreateButton + \ GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu + \ GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit + \ GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon + \ GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList + \ GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu + \ GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj + \ GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio + \ GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem + \ GUICtrlCreateTreeView GUICtrlCreateTreeViewItem + \ GUICtrlCreateUpDown GUICtrlDelete +syn keyword autoitFunction GUICtrlRegisterListViewSort GUICtrlSetBkColor + \ GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetFont + \ GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent + \ GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle + \ GUICtrlSetTip +syn keyword autoitFunction GUISetBkColor GUISetCoord GUISetCursor GUISetFont + \ GUISetHelp GUISetIcon GUISetOnEvent GUISetState +" keyboard control +syn keyword autoitFunction HotKeySet Send +" math +syn keyword autoitFunction Abs ACos ASin ATan BitAND BitNOT BitOR BitRotate + \ BitShift BitXOR Cos Ceiling Exp Floor Log Mod Random Round Sin Sqrt + \ SRandom Tan +" message boxes and dialogs +syn keyword autoitFunction InputBox MsgBox ProgressOff ProgressOn ProgressSet + \ SplashImageOn SplashOff SplashTextOn ToolTip +" miscellaneous +syn keyword autoitFunction AdlibDisable AdlibEnable AutoItSetOption + \ AutoItWinGetTitle AutoItWinSetTitle BlockInput Break Call CDTray + \ Execute Opt SetError SetExtended +" mouse control +syn keyword autoitFunction MouseClick MouseClickDrag MouseDown MouseGetCursor + \ MouseGetPos MouseMove MouseUp MouseWheel +" network +syn keyword autoitFunction FtpSetProxy HttpSetProxy InetGet InetGetSize Ping + \ TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIp TCPRecv + \ TCPSend TCPShutDown TCPStartup UDPBind UDPCloseSocket UDPOpen UDPRecv + \ UDPSend UDPShutdown UDPStartup +" obj/com reference +syn keyword autoitFunction ObjCreate ObjEvent ObjGet ObjName +" process management +syn keyword autoitFunction DllCall DllClose DllOpen DllStructCreate + \ DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData + \ ProcessClose ProcessExists ProcessSetPriority ProcessList ProcessWait + \ ProcessWaitClose Run RunAsSet RunWait ShellExecute ShellExecuteWait + \ Shutdown + " removed from 3.2.0 docs - PluginClose PluginOpen +" registry management +syn keyword autoitFunction RegDelete RegEnumKey RegEnumVal RegRead RegWrite +" string management +syn keyword autoitFunction StringAddCR StringFormat StringInStr StringIsAlNum + \ StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt + \ StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft + \ StringLen StringLower StringMid StringRegExp StringRegExpReplace + \ StringReplace StringRight StringSplit StringStripCR StringStripWS + \ StringTrimLeft StringTrimRight StringUpper +" timer and delay +syn keyword autoitFunction Sleep TimerInit TimerDiff +" tray +syn keyword autoitFunction TrayCreateItem TrayCreateMenu TrayItemDelete + \ TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent + \ TrayItemSetState TrayItemSetText TrayGetMsg TraySetClick TraySetIcon + \ TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip +" variables and conversions +syn keyword autoitFunction Asc Assign Binary Chr Dec Eval Hex HWnd Int IsAdmin + \ IsArray IsBinaryString IsBool IsDeclared IsDllStruct IsFloat IsHWnd + \ IsInt IsKeyword IsNumber IsObj IsString Number String UBound +" window management +syn keyword autoitFunction WinActivate WinActive WinClose WinExists WinFlash + \ WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos + \ WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList + \ WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove + \ WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive + \ WinWaitClose WinWaitNotActive +syn keyword autoitFunction ControlClick ControlCommand ControlDisable + \ ControlEnable ControlFocus ControlGetFocus ControlGetHandle + \ ControlGetPos ControlGetText ControlHide ControlListView ControlMove + \ ControlSend ControlSetText ControlShow StatusBarGetText + +" user defined functions +" array +syn keyword autoitFunction _ArrayAdd _ArrayBinarySearch _ArrayCreate + \ _ArrayDelete _ArrayDisplay _ArrayInsert _ArrayMax _ArrayMaxIndex + \ _ArrayMin _ArrayMinIndex _ArrayPop _ArrayPush _ArrayReverse + \ _ArraySearch _ArraySort _ArraySwap _ArrayToClip _ArrayToString + \ _ArrayTrim +" color +syn keyword autoitFunction _ColorgetBlue _ColorGetGreen _ColorGetRed +" date +syn keyword autoitFunction _DateAdd _DateDayOfWeek _DateDaysInMonth _DateDiff + \ _DateIsLeapYear _DateIsValid _DateTimeFormat _DateTimeSplit + \ _DateToDayOfWeek _ToDayOfWeekISO _DateToDayValue _DayValueToDate _Now + \ _NowCalc _NowCalcDate _NowDate _NowTime _SetDate _SetTime _TicksToTime + \ _TimeToTicks _WeekNumberISO +" file +syn keyword autoitFunction _FileCountLines _FileCreate _FileListToArray + \ _FilePrint _FileReadToArray _FileWriteFromArray _FileWriteLog + \ _FileWriteToLine _PathFull _PathMake _PathSplit _ReplaceStringInFile + \ _TempFile +" guicombo +syn keyword autoitFunction _GUICtrlComboAddDir _GUICtrlComboAddString + \ _GUICtrlComboAutoComplete _GUICtrlComboDeleteString + \ _GUICtrlComboFindString _GUICtrlComboGetCount _GUICtrlComboGetCurSel + \ _GUICtrlComboGetDroppedControlRect _GUICtrlComboGetDroppedState + \ _GUICtrlComboGetDroppedWidth _GUICtrlComboGetEditSel + \ _GUICtrlComboGetExtendedUI _GUICtrlComboGetHorizontalExtent + \ _GUICtrlComboGetItemHeight _GUICtrlComboGetLBText + \ _GUICtrlComboGetLBTextLen _GUICtrlComboGetList _GUICtrlComboGetLocale + \ _GUICtrlComboGetMinVisible _GUICtrlComboGetTopIndex + \ _GUICtrlComboInitStorage _GUICtrlComboInsertString + \ _GUICtrlComboLimitText _GUICtrlComboResetContent + \ _GUICtrlComboSelectString _GUICtrlComboSetCurSel + \ _GUICtrlComboSetDroppedWidth _GUICtrlComboSetEditSel + \ _GUICtrlComboSetExtendedUI _GUICtrlComboSetHorizontalExtent + \ _GUICtrlComboSetItemHeight _GUICtrlComboSetMinVisible + \ _GUICtrlComboSetTopIndex _GUICtrlComboShowDropDown +" guiedit +syn keyword autoitFunction _GUICtrlEditCanUndo _GUICtrlEditEmptyUndoBuffer + \ _GuiCtrlEditFind _GUICtrlEditGetFirstVisibleLine _GUICtrlEditGetLine + \ _GUICtrlEditGetLineCount _GUICtrlEditGetModify _GUICtrlEditGetRect + \ _GUICtrlEditGetSel _GUICtrlEditLineFromChar _GUICtrlEditLineIndex + \ _GUICtrlEditLineLength _GUICtrlEditLineScroll _GUICtrlEditReplaceSel + \ _GUICtrlEditScroll _GUICtrlEditSetModify _GUICtrlEditSetRect + \ _GUICtrlEditSetSel _GUICtrlEditUndo +" guiipaddress +syn keyword autoitFunction _GUICtrlIpAddressClear _GUICtrlIpAddressCreate + \ _GUICtrlIpAddressDelete _GUICtrlIpAddressGet _GUICtrlIpAddressIsBlank + \ _GUICtrlIpAddressSet _GUICtrlIpAddressSetFocus + \ _GUICtrlIpAddressSetFont + \ _GUICtrlIpAddressSetRange _GUICtrlIpAddressShowHide +" guilist +syn keyword autoitFunction _GUICtrlListAddDir _GUICtrlListAddItem + \ _GUICtrlListClear + \ _GUICtrlListCount _GUICtrlListDeleteItem _GUICtrlListFindString + \ _GUICtrlListGetAnchorIndex _GUICtrlListGetCaretIndex + \ _GUICtrlListGetHorizontalExtent _GUICtrlListGetInfo + \ _GUICtrlListGetItemRect _GUICtrlListGetLocale _GUICtrlListGetSelCount + \ _GUICtrlListGetSelItems _GUICtrlListGetSelItemsText + \ _GUICtrlListGetSelState _GUICtrlListGetText _GUICtrlListGetTextLen + \ _GUICtrlListGetTopIndex _GUICtrlListInsertItem + \ _GUICtrlListReplaceString _GUICtrlListSelectedIndex + \ _GUICtrlListSelectIndex _GUICtrlListSelectString + \ _GUICtrlListSelItemRange _GUICtrlListSelItemRangeEx + \ _GUICtrlListSetAnchorIndex _GUICtrlListSetCaretIndex + \ _GUICtrlListSetHorizontalExtent _GUICtrlListSetLocale + \ _GUICtrlListSetSel _GUICtrlListSetTopIndex _GUICtrlListSort + \ _GUICtrlListSwapString +" guilistview +syn keyword autoitFunction _GUICtrlListViewCopyItems + \ _GUICtrlListViewDeleteAllItems _GUICtrlListViewDeleteColumn + \ _GUICtrlListViewDeleteItem _GUICtrlListViewDeleteItemsSelected + \ _GUICtrlListViewEnsureVisible _GUICtrlListViewFindItem + \ _GUICtrlListViewGetBackColor _GUICtrlListViewGetCallBackMask + \ _GUICtrlListViewGetCheckedState _GUICtrlListViewGetColumnOrder + \ _GUICtrlListViewGetColumnWidth _GUICtrlListViewGetCounterPage + \ _GUICtrlListViewGetCurSel _GUICtrlListViewGetExtendedListViewStyle + \ _GUICtrlListViewGetHeader _GUICtrlListViewGetHotCursor + \ _GUICtrlListViewGetHotItem _GUICtrlListViewGetHoverTime + \ _GUICtrlListViewGetItemCount _GUICtrlListViewGetItemText + \ _GUICtrlListViewGetItemTextArray _GUICtrlListViewGetNextItem + \ _GUICtrlListViewGetSelectedCount _GUICtrlListViewGetSelectedIndices + \ _GUICtrlListViewGetSubItemsCount _GUICtrlListViewGetTopIndex + \ _GUICtrlListViewGetUnicodeFormat _GUICtrlListViewHideColumn + \ _GUICtrlListViewInsertColumn _GUICtrlListViewInsertItem + \ _GUICtrlListViewJustifyColumn _GUICtrlListViewScroll + \ _GUICtrlListViewSetCheckState _GUICtrlListViewSetColumnHeaderText + \ _GUICtrlListViewSetColumnOrder _GUICtrlListViewSetColumnWidth + \ _GUICtrlListViewSetHotItem _GUICtrlListViewSetHoverTime + \ _GUICtrlListViewSetItemCount _GUICtrlListViewSetItemSelState + \ _GUICtrlListViewSetItemText _GUICtrlListViewSort +" guimonthcal +syn keyword autoitFunction _GUICtrlMonthCalGet1stDOW _GUICtrlMonthCalGetColor + \ _GUICtrlMonthCalGetDelta _GUICtrlMonthCalGetMaxSelCount + \ _GUICtrlMonthCalGetMaxTodayWidth _GUICtrlMonthCalGetMinReqRect + \ _GUICtrlMonthCalSet1stDOW _GUICtrlMonthCalSetColor + \ _GUICtrlMonthCalSetDelta _GUICtrlMonthCalSetMaxSelCount +" guislider +syn keyword autoitFunction _GUICtrlSliderClearTics _GUICtrlSliderGetLineSize + \ _GUICtrlSliderGetNumTics _GUICtrlSliderGetPageSize + \ _GUICtrlSliderGetPos _GUICtrlSliderGetRangeMax + \ _GUICtrlSliderGetRangeMin _GUICtrlSliderSetLineSize + \ _GUICtrlSliderSetPageSize _GUICtrlSliderSetPos + \ _GUICtrlSliderSetTicFreq +" guistatusbar +syn keyword autoitFunction _GuiCtrlStatusBarCreate + \ _GUICtrlStatusBarCreateProgress _GUICtrlStatusBarDelete + \ _GuiCtrlStatusBarGetBorders _GuiCtrlStatusBarGetIcon + \ _GuiCtrlStatusBarGetParts _GuiCtrlStatusBarGetRect + \ _GuiCtrlStatusBarGetText _GuiCtrlStatusBarGetTextLength + \ _GuiCtrlStatusBarGetTip _GuiCtrlStatusBarGetUnicode + \ _GUICtrlStatusBarIsSimple _GuiCtrlStatusBarResize + \ _GuiCtrlStatusBarSetBKColor _GuiCtrlStatusBarSetIcon + \ _GuiCtrlStatusBarSetMinHeight _GUICtrlStatusBarSetParts + \ _GuiCtrlStatusBarSetSimple _GuiCtrlStatusBarSetText + \ _GuiCtrlStatusBarSetTip _GuiCtrlStatusBarSetUnicode + \ _GUICtrlStatusBarShowHide +" guitab +syn keyword autoitFunction _GUICtrlTabDeleteAllItems _GUICtrlTabDeleteItem + \ _GUICtrlTabDeselectAll _GUICtrlTabGetCurFocus _GUICtrlTabGetCurSel + \ _GUICtrlTabGetExtendedStyle _GUICtrlTabGetItemCount + \ _GUICtrlTabGetItemRect _GUICtrlTabGetRowCount + \ _GUICtrlTabGetUnicodeFormat _GUICtrlTabHighlightItem + \ _GUICtrlTabSetCurFocus _GUICtrlTabSetCurSel + \ _GUICtrlTabSetMinTabWidth _GUICtrlTabSetUnicodeFormat +" guitreeview +syn keyword autoitFunction _GUICtrlTreeViewDeleteAllItems + \ _GUICtrlTreeViewDeleteItem _GUICtrlTreeViewExpand + \ _GUICtrlTreeViewGetBkColor _GUICtrlTreeViewGetCount + \ _GUICtrlTreeViewGetIndent _GUICtrlTreeViewGetLineColor + \ _GUICtrlTreeViewGetParentHandle _GUICtrlTreeViewGetParentID + \ _GUICtrlTreeViewGetState _GUICtrlTreeViewGetText + \ _GUICtrlTreeViewGetTextColor _GUICtrlTreeViewItemGetTree + \ _GUICtrlTreeViewInsertItem _GUICtrlTreeViewSetBkColor + \ _GUICtrlTreeViewSetIcon _GUICtrlTreeViewSetIndent + \ _GUICtrlTreeViewSetLineColor GUICtrlTreeViewSetState + \ _GUICtrlTreeViewSetText _GUICtrlTreeViewSetTextColor + \ _GUICtrlTreeViewSort +" ie +syn keyword autoitFunction _IE_Example _IE_Introduction _IE_VersionInfo + \ _IEAction _IEAttach _IEBodyReadHTML _IEBodyReadText _IEBodyWriteHTML + \ _IECreate _IECreateEmbedded _IEDocGetObj _IEDocInsertHTML + \ _IEDocInsertText _IEDocReadHTML _IEDocWriteHTML + \ _IEErrorHandlerDeRegister _IEErrorHandlerRegister _IEErrorNotify + \ _IEFormElementCheckboxSelect _IEFormElementGetCollection + \ _IEFormElementGetObjByName _IEFormElementGetValue + \ _IEFormElementOptionSelect _IEFormElementRadioSelect + \ _IEFormElementSetValue _IEFormGetCollection _IEFormGetObjByName + \ _IEFormImageClick _IEFormReset _IEFormSubmit _IEFrameGetCollection + \ _IEFrameGetObjByName _IEGetObjByName _IEHeadInsertEventScript + \ _IEImgClick _IEImgGetCollection _IEIsFrameSet _IELinkClickByIndex + \ _IELinkClickByText _IELinkGetCollection _IELoadWait _IELoadWaitTimeout + \ _IENavigate _IEPropertyGet _IEPropertySet _IEQuit + \ _IETableGetCollection _IETableWriteToArray _IETagNameAllGetCollection + \ _IETagNameGetCollection +" inet +syn keyword autoitFunction _GetIP _INetExplorerCapable _INetGetSource _INetMail + \ _INetSmtpMail _TCPIpToName +" math +syn keyword autoitFunction _Degree _MathCheckDiv _Max _Min _Radian +" miscellaneous +syn keyword autoitFunction _ChooseColor _ChooseFont _ClipPutFile _Iif + \ _IsPressed _MouseTrap _SendMessage _Singleton +" process +syn keyword autoitFunction _ProcessGetName _ProcessGetPriority _RunDOS +" sound +syn keyword autoitFunction _SoundClose _SoundLength _SoundOpen _SoundPause + \ _SoundPlay _SoundPos _SoundResume _SoundSeek _SoundStatus _SoundStop +" sqlite +syn keyword autoitFunction _SQLite_Changes _SQLite_Close + \ _SQLite_Display2DResult _SQLite_Encode _SQLite_ErrCode _SQLite_ErrMsg + \ _SQLite_Escape _SQLite_Exec _SQLite_FetchData _SQLite_FetchNames + \ _SQLite_GetTable _SQLite_GetTable2D _SQLite_LastInsertRowID + \ _SQLite_LibVersion _SQLite_Open _SQLite_Query _SQLite_QueryFinalize + \ _SQLite_QueryReset _SQLite_QuerySingleRow _SQLite_SaveMode + \ _SQLite_SetTimeout _SQLite_Shutdown _SQLite_SQLiteExe _SQLite_Startup + \ _SQLite_TotalChanges +" string +syn keyword autoitFunction _HexToString _StringAddComma _StringBetween + \ _StringEncrypt _StringInsert _StringProper _StringRepeat + \ _StringReverse _StringToHex +" visa +syn keyword autoitFunction _viClose _viExecCommand _viFindGpib _viGpibBusReset + \ _viGTL _viOpen _viSetAttribute _viSetTimeout + +" read-only macros +syn match autoitBuiltin "@AppData\(Common\)\=Dir" +syn match autoitBuiltin "@AutoItExe" +syn match autoitBuiltin "@AutoItPID" +syn match autoitBuiltin "@AutoItVersion" +syn match autoitBuiltin "@COM_EventObj" +syn match autoitBuiltin "@CommonFilesDir" +syn match autoitBuiltin "@Compiled" +syn match autoitBuiltin "@ComputerName" +syn match autoitBuiltin "@ComSpec" +syn match autoitBuiltin "@CR\(LF\)\=" +syn match autoitBuiltin "@Desktop\(Common\)\=Dir" +syn match autoitBuiltin "@DesktopDepth" +syn match autoitBuiltin "@DesktopHeight" +syn match autoitBuiltin "@DesktopRefresh" +syn match autoitBuiltin "@DesktopWidth" +syn match autoitBuiltin "@DocumentsCommonDir" +syn match autoitBuiltin "@Error" +syn match autoitBuiltin "@ExitCode" +syn match autoitBuiltin "@ExitMethod" +syn match autoitBuiltin "@Extended" +syn match autoitBuiltin "@Favorites\(Common\)\=Dir" +syn match autoitBuiltin "@GUI_CtrlId" +syn match autoitBuiltin "@GUI_CtrlHandle" +syn match autoitBuiltin "@GUI_DragId" +syn match autoitBuiltin "@GUI_DragFile" +syn match autoitBuiltin "@GUI_DropId" +syn match autoitBuiltin "@GUI_WinHandle" +syn match autoitBuiltin "@HomeDrive" +syn match autoitBuiltin "@HomePath" +syn match autoitBuiltin "@HomeShare" +syn match autoitBuiltin "@HOUR" +syn match autoitBuiltin "@HotKeyPressed" +syn match autoitBuiltin "@InetGetActive" +syn match autoitBuiltin "@InetGetBytesRead" +syn match autoitBuiltin "@IPAddress[1234]" +syn match autoitBuiltin "@KBLayout" +syn match autoitBuiltin "@LF" +syn match autoitBuiltin "@Logon\(DNS\)\=Domain" +syn match autoitBuiltin "@LogonServer" +syn match autoitBuiltin "@MDAY" +syn match autoitBuiltin "@MIN" +syn match autoitBuiltin "@MON" +syn match autoitBuiltin "@MyDocumentsDir" +syn match autoitBuiltin "@NumParams" +syn match autoitBuiltin "@OSBuild" +syn match autoitBuiltin "@OSLang" +syn match autoitBuiltin "@OSServicePack" +syn match autoitBuiltin "@OSTYPE" +syn match autoitBuiltin "@OSVersion" +syn match autoitBuiltin "@ProcessorArch" +syn match autoitBuiltin "@ProgramFilesDir" +syn match autoitBuiltin "@Programs\(Common\)\=Dir" +syn match autoitBuiltin "@ScriptDir" +syn match autoitBuiltin "@ScriptFullPath" +syn match autoitBuiltin "@ScriptLineNumber" +syn match autoitBuiltin "@ScriptName" +syn match autoitBuiltin "@SEC" +syn match autoitBuiltin "@StartMenu\(Common\)\=Dir" +syn match autoitBuiltin "@Startup\(Common\)\=Dir" +syn match autoitBuiltin "@SW_DISABLE" +syn match autoitBuiltin "@SW_ENABLE" +syn match autoitBuiltin "@SW_HIDE" +syn match autoitBuiltin "@SW_LOCK" +syn match autoitBuiltin "@SW_MAXIMIZE" +syn match autoitBuiltin "@SW_MINIMIZE" +syn match autoitBuiltin "@SW_RESTORE" +syn match autoitBuiltin "@SW_SHOW" +syn match autoitBuiltin "@SW_SHOWDEFAULT" +syn match autoitBuiltin "@SW_SHOWMAXIMIZED" +syn match autoitBuiltin "@SW_SHOWMINIMIZED" +syn match autoitBuiltin "@SW_SHOWMINNOACTIVE" +syn match autoitBuiltin "@SW_SHOWNA" +syn match autoitBuiltin "@SW_SHOWNOACTIVATE" +syn match autoitBuiltin "@SW_SHOWNORMAL" +syn match autoitBuiltin "@SW_UNLOCK" +syn match autoitBuiltin "@SystemDir" +syn match autoitBuiltin "@TAB" +syn match autoitBuiltin "@TempDir" +syn match autoitBuiltin "@TRAY_ID" +syn match autoitBuiltin "@TrayIconFlashing" +syn match autoitBuiltin "@TrayIconVisible" +syn match autoitBuiltin "@UserProfileDir" +syn match autoitBuiltin "@UserName" +syn match autoitBuiltin "@WDAY" +syn match autoitBuiltin "@WindowsDir" +syn match autoitBuiltin "@WorkingDir" +syn match autoitBuiltin "@YDAY" +syn match autoitBuiltin "@YEAR" + +"comments and commenting-out +syn match autoitComment ";.*" +"in this way also #ce alone will be highlighted +syn match autoitCommDelimiter "^\s*#comments-start\>" +syn match autoitCommDelimiter "^\s*#cs\>" +syn match autoitCommDelimiter "^\s*#comments-end\>" +syn match autoitCommDelimiter "^\s*#ce\>" +syn region autoitComment + \ matchgroup=autoitCommDelimiter + \ start="^\s*#comments-start\>" start="^\s*#cs\>" + \ end="^\s*#comments-end\>" end="^\s*#ce\>" + +"one character operators +syn match autoitOperator "[-+*/&^=<>][^-+*/&^=<>]"me=e-1 +"two characters operators +syn match autoitOperator "==[^=]"me=e-1 +syn match autoitOperator "<>" +syn match autoitOperator "<=" +syn match autoitOperator ">=" +syn match autoitOperator "+=" +syn match autoitOperator "-=" +syn match autoitOperator "*=" +syn match autoitOperator "/=" +syn match autoitOperator "&=" +syn keyword autoitOperator NOT AND OR + +syn match autoitParen "(\|)" +syn match autoitBracket "\[\|\]" +syn match autoitComma "," + +"numbers must come after operator '-' +"decimal numbers without a dot +syn match autoitNumber "-\=\<\d\+\>" +"hexadecimal numbers without a dot +syn match autoitNumber "-\=\<0x\x\+\>" +"floating point number with dot (inside or at end) + +syn match autoitNumber "-\=\<\d\+\.\d*\>" +"floating point number, starting with a dot +syn match autoitNumber "-\=\<\.\d\+\>" +"scientific notation numbers without dots +syn match autoitNumber "-\=\<\d\+e[-+]\=\d\+\>" +"scientific notation numbers with dots +syn match autoitNumber "-\=\<\(\(\d\+\.\d*\)\|\(\.\d\+\)\)\(e[-+]\=\d\+\)\=\>" + +"string constants +"we want the escaped quotes marked in red +syn match autoitDoubledSingles +''+ contained +syn match autoitDoubledDoubles +""+ contained +"we want the continuation character marked in red +"(also at the top level, not just contained) +syn match autoitCont "_$" + +" send key list - must be defined before autoitStrings +syn match autoitSend "{!}" contained +syn match autoitSend "{#}" contained +syn match autoitSend "{+}" contained +syn match autoitSend "{^}" contained +syn match autoitSend "{{}" contained +syn match autoitSend "{}}" contained +syn match autoitSend "{SPACE}" contained +syn match autoitSend "{ENTER}" contained +syn match autoitSend "{ALT}" contained +syn match autoitSend "{BACKSPACE}" contained +syn match autoitSend "{BS}" contained +syn match autoitSend "{DELETE}" contained +syn match autoitSend "{DEL}" contained +syn match autoitSend "{UP}" contained +syn match autoitSend "{DOWN}" contained +syn match autoitSend "{LEFT}" contained +syn match autoitSend "{RIGHT}" contained +syn match autoitSend "{HOME}" contained +syn match autoitSend "{END}" contained +syn match autoitSend "{ESCAPE}" contained +syn match autoitSend "{ESC}" contained +syn match autoitSend "{INSERT}" contained +syn match autoitSend "{INS}" contained +syn match autoitSend "{PGUP}" contained +syn match autoitSend "{PGDN}" contained +syn match autoitSend "{F1}" contained +syn match autoitSend "{F2}" contained +syn match autoitSend "{F3}" contained +syn match autoitSend "{F4}" contained +syn match autoitSend "{F5}" contained +syn match autoitSend "{F6}" contained +syn match autoitSend "{F7}" contained +syn match autoitSend "{F8}" contained +syn match autoitSend "{F9}" contained +syn match autoitSend "{F10}" contained +syn match autoitSend "{F11}" contained +syn match autoitSend "{F12}" contained +syn match autoitSend "{TAB}" contained +syn match autoitSend "{PRINTSCREEN}" contained +syn match autoitSend "{LWIN}" contained +syn match autoitSend "{RWIN}" contained +syn match autoitSend "{NUMLOCK}" contained +syn match autoitSend "{CTRLBREAK}" contained +syn match autoitSend "{PAUSE}" contained +syn match autoitSend "{CAPSLOCK}" contained +syn match autoitSend "{NUMPAD0}" contained +syn match autoitSend "{NUMPAD1}" contained +syn match autoitSend "{NUMPAD2}" contained +syn match autoitSend "{NUMPAD3}" contained +syn match autoitSend "{NUMPAD4}" contained +syn match autoitSend "{NUMPAD5}" contained +syn match autoitSend "{NUMPAD6}" contained +syn match autoitSend "{NUMPAD7}" contained +syn match autoitSend "{NUMPAD8}" contained +syn match autoitSend "{NUMPAD9}" contained +syn match autoitSend "{NUMPADMULT}" contained +syn match autoitSend "{NUMPADADD}" contained +syn match autoitSend "{NUMPADSUB}" contained +syn match autoitSend "{NUMPADDIV}" contained +syn match autoitSend "{NUMPADDOT}" contained +syn match autoitSend "{NUMPADENTER}" contained +syn match autoitSend "{APPSKEY}" contained +syn match autoitSend "{LALT}" contained +syn match autoitSend "{RALT}" contained +syn match autoitSend "{LCTRL}" contained +syn match autoitSend "{RCTRL}" contained +syn match autoitSend "{LSHIFT}" contained +syn match autoitSend "{RSHIFT}" contained +syn match autoitSend "{SLEEP}" contained +syn match autoitSend "{ALTDOWN}" contained +syn match autoitSend "{SHIFTDOWN}" contained +syn match autoitSend "{CTRLDOWN}" contained +syn match autoitSend "{LWINDOWN}" contained +syn match autoitSend "{RWINDOWN}" contained +syn match autoitSend "{ASC \d\d\d\d}" contained +syn match autoitSend "{BROWSER_BACK}" contained +syn match autoitSend "{BROWSER_FORWARD}" contained +syn match autoitSend "{BROWSER_REFRESH}" contained +syn match autoitSend "{BROWSER_STOP}" contained +syn match autoitSend "{BROWSER_SEARCH}" contained +syn match autoitSend "{BROWSER_FAVORITES}" contained +syn match autoitSend "{BROWSER_HOME}" contained +syn match autoitSend "{VOLUME_MUTE}" contained +syn match autoitSend "{VOLUME_DOWN}" contained +syn match autoitSend "{VOLUME_UP}" contained +syn match autoitSend "{MEDIA_NEXT}" contained +syn match autoitSend "{MEDIA_PREV}" contained +syn match autoitSend "{MEDIA_STOP}" contained +syn match autoitSend "{MEDIA_PLAY_PAUSE}" contained +syn match autoitSend "{LAUNCH_MAIL}" contained +syn match autoitSend "{LAUNCH_MEDIA}" contained +syn match autoitSend "{LAUNCH_APP1}" contained +syn match autoitSend "{LAUNCH_APP2}" contained + +"this was tricky! +"we use an oneline region, instead of a match, in order to use skip= +"matchgroup= so start and end quotes are not considered as au3Doubled +"contained +syn region autoitString oneline contains=autoitSend matchgroup=autoitQuote start=+"+ + \ end=+"+ end=+_\n\{1}.*"+ + \ contains=autoitCont,autoitDoubledDoubles skip=+""+ +syn region autoitString oneline matchgroup=autoitQuote start=+'+ + \ end=+'+ end=+_\n\{1}.*'+ + \ contains=autoitCont,autoitDoubledSingles skip=+''+ + +syn match autoitVarSelector "\$" contained display +syn match autoitVariable "$\w\+" contains=autoitVarSelector + +" options - must be defined after autoitStrings +syn match autoitOption "\([\"\']\)CaretCoordMode\1" +syn match autoitOption "\([\"\']\)ColorMode\1" +syn match autoitOption "\([\"\']\)ExpandEnvStrings\1" +syn match autoitOption "\([\"\']\)ExpandVarStrings\1" +syn match autoitOption "\([\"\']\)FtpBinaryMode\1" +syn match autoitOption "\([\"\']\)GUICloseOnEsc\1" +syn match autoitOption "\([\"\']\)GUICoordMode\1" +syn match autoitOption "\([\"\']\)GUIDataSeparatorChar\1" +syn match autoitOption "\([\"\']\)GUIOnEventMode\1" +syn match autoitOption "\([\"\']\)GUIResizeMode\1" +syn match autoitOption "\([\"\']\)GUIEventCompatibilityMode\1" +syn match autoitOption "\([\"\']\)MouseClickDelay\1" +syn match autoitOption "\([\"\']\)MouseClickDownDelay\1" +syn match autoitOption "\([\"\']\)MouseClickDragDelay\1" +syn match autoitOption "\([\"\']\)MouseCoordMode\1" +syn match autoitOption "\([\"\']\)MustDeclareVars\1" +syn match autoitOption "\([\"\']\)OnExitFunc\1" +syn match autoitOption "\([\"\']\)PixelCoordMode\1" +syn match autoitOption "\([\"\']\)RunErrorsFatal\1" +syn match autoitOption "\([\"\']\)SendAttachMode\1" +syn match autoitOption "\([\"\']\)SendCapslockMode\1" +syn match autoitOption "\([\"\']\)SendKeyDelay\1" +syn match autoitOption "\([\"\']\)SendKeyDownDelay\1" +syn match autoitOption "\([\"\']\)TCPTimeout\1" +syn match autoitOption "\([\"\']\)TrayAutoPause\1" +syn match autoitOption "\([\"\']\)TrayIconDebug\1" +syn match autoitOption "\([\"\']\)TrayIconHide\1" +syn match autoitOption "\([\"\']\)TrayMenuMode\1" +syn match autoitOption "\([\"\']\)TrayOnEventMode\1" +syn match autoitOption "\([\"\']\)WinDetectHiddenText\1" +syn match autoitOption "\([\"\']\)WinSearchChildren\1" +syn match autoitOption "\([\"\']\)WinTextMatchMode\1" +syn match autoitOption "\([\"\']\)WinTitleMatchMode\1" +syn match autoitOption "\([\"\']\)WinWaitDelay\1" + +" styles - must be defined after autoitVariable +" common +syn match autoitStyle "\$WS_BORDER" +syn match autoitStyle "\$WS_POPUP" +syn match autoitStyle "\$WS_CAPTION" +syn match autoitStyle "\$WS_CLIPCHILDREN" +syn match autoitStyle "\$WS_CLIPSIBLINGS" +syn match autoitStyle "\$WS_DISABLED" +syn match autoitStyle "\$WS_DLGFRAME" +syn match autoitStyle "\$WS_HSCROLL" +syn match autoitStyle "\$WS_MAXIMIZE" +syn match autoitStyle "\$WS_MAXIMIZEBOX" +syn match autoitStyle "\$WS_MINIMIZE" +syn match autoitStyle "\$WS_MINIMIZEBOX" +syn match autoitStyle "\$WS_OVERLAPPED" +syn match autoitStyle "\$WS_OVERLAPPEDWINDOW" +syn match autoitStyle "\$WS_POPUPWINDOW" +syn match autoitStyle "\$WS_SIZEBOX" +syn match autoitStyle "\$WS_SYSMENU" +syn match autoitStyle "\$WS_THICKFRAME" +syn match autoitStyle "\$WS_VSCROLL" +syn match autoitStyle "\$WS_VISIBLE" +syn match autoitStyle "\$WS_CHILD" +syn match autoitStyle "\$WS_GROUP" +syn match autoitStyle "\$WS_TABSTOP" +syn match autoitStyle "\$DS_MODALFRAME" +syn match autoitStyle "\$DS_SETFOREGROUND" +syn match autoitStyle "\$DS_CONTEXTHELP" +" common extended +syn match autoitStyle "\$WS_EX_ACCEPTFILES" +syn match autoitStyle "\$WS_EX_APPWINDOW" +syn match autoitStyle "\$WS_EX_CLIENTEDGE" +syn match autoitStyle "\$WS_EX_CONTEXTHELP" +syn match autoitStyle "\$WS_EX_DLGMODALFRAME" +syn match autoitStyle "\$WS_EX_MDICHILD" +syn match autoitStyle "\$WS_EX_OVERLAPPEDWINDOW" +syn match autoitStyle "\$WS_EX_STATICEDGE" +syn match autoitStyle "\$WS_EX_TOPMOST" +syn match autoitStyle "\$WS_EX_TRANSPARENT" +syn match autoitStyle "\$WS_EX_TOOLWINDOW" +syn match autoitStyle "\$WS_EX_WINDOWEDGE" +syn match autoitStyle "\$WS_EX_LAYERED" +syn match autoitStyle "\$GUI_WS_EX_PARENTDRAG" +" checkbox +syn match autoitStyle "\$BS_3STATE" +syn match autoitStyle "\$BS_AUTO3STATE" +syn match autoitStyle "\$BS_AUTOCHECKBOX" +syn match autoitStyle "\$BS_CHECKBOX" +syn match autoitStyle "\$BS_LEFT" +syn match autoitStyle "\$BS_PUSHLIKE" +syn match autoitStyle "\$BS_RIGHT" +syn match autoitStyle "\$BS_RIGHTBUTTON" +syn match autoitStyle "\$BS_GROUPBOX" +syn match autoitStyle "\$BS_AUTORADIOBUTTON" +" push button +syn match autoitStyle "\$BS_BOTTOM" +syn match autoitStyle "\$BS_CENTER" +syn match autoitStyle "\$BS_DEFPUSHBUTTON" +syn match autoitStyle "\$BS_MULTILINE" +syn match autoitStyle "\$BS_TOP" +syn match autoitStyle "\$BS_VCENTER" +syn match autoitStyle "\$BS_ICON" +syn match autoitStyle "\$BS_BITMAP" +syn match autoitStyle "\$BS_FLAT" +" combo +syn match autoitStyle "\$CBS_AUTOHSCROLL" +syn match autoitStyle "\$CBS_DISABLENOSCROLL" +syn match autoitStyle "\$CBS_DROPDOWN" +syn match autoitStyle "\$CBS_DROPDOWNLIST" +syn match autoitStyle "\$CBS_LOWERCASE" +syn match autoitStyle "\$CBS_NOINTEGRALHEIGHT" +syn match autoitStyle "\$CBS_OEMCONVERT" +syn match autoitStyle "\$CBS_SIMPLE" +syn match autoitStyle "\$CBS_SORT" +syn match autoitStyle "\$CBS_UPPERCASE" +" list +syn match autoitStyle "\$LBS_DISABLENOSCROLL" +syn match autoitStyle "\$LBS_NOINTEGRALHEIGHT" +syn match autoitStyle "\$LBS_NOSEL" +syn match autoitStyle "\$LBS_NOTIFY" +syn match autoitStyle "\$LBS_SORT" +syn match autoitStyle "\$LBS_STANDARD" +syn match autoitStyle "\$LBS_USETABSTOPS" +" edit/input +syn match autoitStyle "\$ES_AUTOHSCROLL" +syn match autoitStyle "\$ES_AUTOVSCROLL" +syn match autoitStyle "\$ES_CENTER" +syn match autoitStyle "\$ES_LOWERCASE" +syn match autoitStyle "\$ES_NOHIDESEL" +syn match autoitStyle "\$ES_NUMBER" +syn match autoitStyle "\$ES_OEMCONVERT" +syn match autoitStyle "\$ES_MULTILINE" +syn match autoitStyle "\$ES_PASSWORD" +syn match autoitStyle "\$ES_READONLY" +syn match autoitStyle "\$ES_RIGHT" +syn match autoitStyle "\$ES_UPPERCASE" +syn match autoitStyle "\$ES_WANTRETURN" +" progress bar +syn match autoitStyle "\$PBS_SMOOTH" +syn match autoitStyle "\$PBS_VERTICAL" +" up-down +syn match autoitStyle "\$UDS_ALIGNLEFT" +syn match autoitStyle "\$UDS_ALIGNRIGHT" +syn match autoitStyle "\$UDS_ARROWKEYS" +syn match autoitStyle "\$UDS_HORZ" +syn match autoitStyle "\$UDS_NOTHOUSANDS" +syn match autoitStyle "\$UDS_WRAP" +" label/static +syn match autoitStyle "\$SS_BLACKFRAME" +syn match autoitStyle "\$SS_BLACKRECT" +syn match autoitStyle "\$SS_CENTER" +syn match autoitStyle "\$SS_CENTERIMAGE" +syn match autoitStyle "\$SS_ETCHEDFRAME" +syn match autoitStyle "\$SS_ETCHEDHORZ" +syn match autoitStyle "\$SS_ETCHEDVERT" +syn match autoitStyle "\$SS_GRAYFRAME" +syn match autoitStyle "\$SS_GRAYRECT" +syn match autoitStyle "\$SS_LEFT" +syn match autoitStyle "\$SS_LEFTNOWORDWRAP" +syn match autoitStyle "\$SS_NOPREFIX" +syn match autoitStyle "\$SS_NOTIFY" +syn match autoitStyle "\$SS_RIGHT" +syn match autoitStyle "\$SS_RIGHTJUST" +syn match autoitStyle "\$SS_SIMPLE" +syn match autoitStyle "\$SS_SUNKEN" +syn match autoitStyle "\$SS_WHITEFRAME" +syn match autoitStyle "\$SS_WHITERECT" +" tab +syn match autoitStyle "\$TCS_SCROLLOPPOSITE" +syn match autoitStyle "\$TCS_BOTTOM" +syn match autoitStyle "\$TCS_RIGHT" +syn match autoitStyle "\$TCS_MULTISELECT" +syn match autoitStyle "\$TCS_FLATBUTTONS" +syn match autoitStyle "\$TCS_FORCEICONLEFT" +syn match autoitStyle "\$TCS_FORCELABELLEFT" +syn match autoitStyle "\$TCS_HOTTRACK" +syn match autoitStyle "\$TCS_VERTICAL" +syn match autoitStyle "\$TCS_TABS" +syn match autoitStyle "\$TCS_BUTTONS" +syn match autoitStyle "\$TCS_SINGLELINE" +syn match autoitStyle "\$TCS_MULTILINE" +syn match autoitStyle "\$TCS_RIGHTJUSTIFY" +syn match autoitStyle "\$TCS_FIXEDWIDTH" +syn match autoitStyle "\$TCS_RAGGEDRIGHT" +syn match autoitStyle "\$TCS_FOCUSONBUTTONDOWN" +syn match autoitStyle "\$TCS_OWNERDRAWFIXED" +syn match autoitStyle "\$TCS_TOOLTIPS" +syn match autoitStyle "\$TCS_FOCUSNEVER" +" avi clip +syn match autoitStyle "\$ACS_AUTOPLAY" +syn match autoitStyle "\$ACS_CENTER" +syn match autoitStyle "\$ACS_TRANSPARENT" +syn match autoitStyle "\$ACS_NONTRANSPARENT" +" date +syn match autoitStyle "\$DTS_UPDOWN" +syn match autoitStyle "\$DTS_SHOWNONE" +syn match autoitStyle "\$DTS_LONGDATEFORMAT" +syn match autoitStyle "\$DTS_TIMEFORMAT" +syn match autoitStyle "\$DTS_RIGHTALIGN" +syn match autoitStyle "\$DTS_SHORTDATEFORMAT" +" monthcal +syn match autoitStyle "\$MCS_NOTODAY" +syn match autoitStyle "\$MCS_NOTODAYCIRCLE" +syn match autoitStyle "\$MCS_WEEKNUMBERS" +" treeview +syn match autoitStyle "\$TVS_HASBUTTONS" +syn match autoitStyle "\$TVS_HASLINES" +syn match autoitStyle "\$TVS_LINESATROOT" +syn match autoitStyle "\$TVS_DISABLEDRAGDROP" +syn match autoitStyle "\$TVS_SHOWSELALWAYS" +syn match autoitStyle "\$TVS_RTLREADING" +syn match autoitStyle "\$TVS_NOTOOLTIPS" +syn match autoitStyle "\$TVS_CHECKBOXES" +syn match autoitStyle "\$TVS_TRACKSELECT" +syn match autoitStyle "\$TVS_SINGLEEXPAND" +syn match autoitStyle "\$TVS_FULLROWSELECT" +syn match autoitStyle "\$TVS_NOSCROLL" +syn match autoitStyle "\$TVS_NONEVENHEIGHT" +" slider +syn match autoitStyle "\$TBS_AUTOTICKS" +syn match autoitStyle "\$TBS_BOTH" +syn match autoitStyle "\$TBS_BOTTOM" +syn match autoitStyle "\$TBS_HORZ" +syn match autoitStyle "\$TBS_VERT" +syn match autoitStyle "\$TBS_NOTHUMB" +syn match autoitStyle "\$TBS_NOTICKS" +syn match autoitStyle "\$TBS_LEFT" +syn match autoitStyle "\$TBS_RIGHT" +syn match autoitStyle "\$TBS_TOP" +" listview +syn match autoitStyle "\$LVS_ICON" +syn match autoitStyle "\$LVS_REPORT" +syn match autoitStyle "\$LVS_SMALLICON" +syn match autoitStyle "\$LVS_LIST" +syn match autoitStyle "\$LVS_EDITLABELS" +syn match autoitStyle "\$LVS_NOCOLUMNHEADER" +syn match autoitStyle "\$LVS_NOSORTHEADER" +syn match autoitStyle "\$LVS_SINGLESEL" +syn match autoitStyle "\$LVS_SHOWSELALWAYS" +syn match autoitStyle "\$LVS_SORTASCENDING" +syn match autoitStyle "\$LVS_SORTDESCENDING" +" listview extended +syn match autoitStyle "\$LVS_EX_FULLROWSELECT" +syn match autoitStyle "\$LVS_EX_GRIDLINES" +syn match autoitStyle "\$LVS_EX_HEADERDRAGDROP" +syn match autoitStyle "\$LVS_EX_TRACKSELECT" +syn match autoitStyle "\$LVS_EX_CHECKBOXES" +syn match autoitStyle "\$LVS_EX_BORDERSELECT" +syn match autoitStyle "\$LVS_EX_DOUBLEBUFFER" +syn match autoitStyle "\$LVS_EX_FLATSB" +syn match autoitStyle "\$LVS_EX_MULTIWORKAREAS" +syn match autoitStyle "\$LVS_EX_SNAPTOGRID" +syn match autoitStyle "\$LVS_EX_SUBITEMIMAGES" + +" constants - must be defined after autoitVariable - excludes styles +" constants - autoit options +syn match autoitConst "\$OPT_COORDSRELATIVE" +syn match autoitConst "\$OPT_COORDSABSOLUTE" +syn match autoitConst "\$OPT_COORDSCLIENT" +syn match autoitConst "\$OPT_ERRORSILENT" +syn match autoitConst "\$OPT_ERRORFATAL" +syn match autoitConst "\$OPT_CAPSNOSTORE" +syn match autoitConst "\$OPT_CAPSSTORE" +syn match autoitConst "\$OPT_MATCHSTART" +syn match autoitConst "\$OPT_MATCHANY" +syn match autoitConst "\$OPT_MATCHEXACT" +syn match autoitConst "\$OPT_MATCHADVANCED" +" constants - file +syn match autoitConst "\$FC_NOOVERWRITE" +syn match autoitConst "\$FC_OVERWRITE" +syn match autoitConst "\$FT_MODIFIED" +syn match autoitConst "\$FT_CREATED" +syn match autoitConst "\$FT_ACCESSED" +syn match autoitConst "\$FO_READ" +syn match autoitConst "\$FO_APPEND" +syn match autoitConst "\$FO_OVERWRITE" +syn match autoitConst "\$EOF" +syn match autoitConst "\$FD_FILEMUSTEXIST" +syn match autoitConst "\$FD_PATHMUSTEXIST" +syn match autoitConst "\$FD_MULTISELECT" +syn match autoitConst "\$FD_PROMPTCREATENEW" +syn match autoitConst "\$FD_PROMPTOVERWRITE" +" constants - keyboard +syn match autoitConst "\$KB_SENDSPECIAL" +syn match autoitConst "\$KB_SENDRAW" +syn match autoitConst "\$KB_CAPSOFF" +syn match autoitConst "\$KB_CAPSON" +" constants - message box +syn match autoitConst "\$MB_OK" +syn match autoitConst "\$MB_OKCANCEL" +syn match autoitConst "\$MB_ABORTRETRYIGNORE" +syn match autoitConst "\$MB_YESNOCANCEL" +syn match autoitConst "\$MB_YESNO" +syn match autoitConst "\$MB_RETRYCANCEL" +syn match autoitConst "\$MB_ICONHAND" +syn match autoitConst "\$MB_ICONQUESTION" +syn match autoitConst "\$MB_ICONEXCLAMATION" +syn match autoitConst "\$MB_ICONASTERISK" +syn match autoitConst "\$MB_DEFBUTTON1" +syn match autoitConst "\$MB_DEFBUTTON2" +syn match autoitConst "\$MB_DEFBUTTON3" +syn match autoitConst "\$MB_APPLMODAL" +syn match autoitConst "\$MB_SYSTEMMODAL" +syn match autoitConst "\$MB_TASKMODAL" +syn match autoitConst "\$MB_TOPMOST" +syn match autoitConst "\$MB_RIGHTJUSTIFIED" +syn match autoitConst "\$IDTIMEOUT" +syn match autoitConst "\$IDOK" +syn match autoitConst "\$IDCANCEL" +syn match autoitConst "\$IDABORT" +syn match autoitConst "\$IDRETRY" +syn match autoitConst "\$IDIGNORE" +syn match autoitConst "\$IDYES" +syn match autoitConst "\$IDNO" +syn match autoitConst "\$IDTRYAGAIN" +syn match autoitConst "\$IDCONTINUE" +" constants - progress and splash +syn match autoitConst "\$DLG_NOTITLE" +syn match autoitConst "\$DLG_NOTONTOP" +syn match autoitConst "\$DLG_TEXTLEFT" +syn match autoitConst "\$DLG_TEXTRIGHT" +syn match autoitConst "\$DLG_MOVEABLE" +syn match autoitConst "\$DLG_TEXTVCENTER" +" constants - tray tip +syn match autoitConst "\$TIP_ICONNONE" +syn match autoitConst "\$TIP_ICONASTERISK" +syn match autoitConst "\$TIP_ICONEXCLAMATION" +syn match autoitConst "\$TIP_ICONHAND" +syn match autoitConst "\$TIP_NOSOUND" +" constants - mouse +syn match autoitConst "\$IDC_UNKNOWN" +syn match autoitConst "\$IDC_APPSTARTING" +syn match autoitConst "\$IDC_ARROW" +syn match autoitConst "\$IDC_CROSS" +syn match autoitConst "\$IDC_HELP" +syn match autoitConst "\$IDC_IBEAM" +syn match autoitConst "\$IDC_ICON" +syn match autoitConst "\$IDC_NO" +syn match autoitConst "\$IDC_SIZE" +syn match autoitConst "\$IDC_SIZEALL" +syn match autoitConst "\$IDC_SIZENESW" +syn match autoitConst "\$IDC_SIZENS" +syn match autoitConst "\$IDC_SIZENWSE" +syn match autoitConst "\$IDC_SIZEWE" +syn match autoitConst "\$IDC_UPARROW" +syn match autoitConst "\$IDC_WAIT" +" constants - process +syn match autoitConst "\$SD_LOGOFF" +syn match autoitConst "\$SD_SHUTDOWN" +syn match autoitConst "\$SD_REBOOT" +syn match autoitConst "\$SD_FORCE" +syn match autoitConst "\$SD_POWERDOWN" +" constants - string +syn match autoitConst "\$STR_NOCASESENSE" +syn match autoitConst "\$STR_CASESENSE" +syn match autoitConst "\$STR_STRIPLEADING" +syn match autoitConst "\$STR_STRIPTRAILING" +syn match autoitConst "\$STR_STRIPSPACES" +syn match autoitConst "\$STR_STRIPALL" +" constants - tray +syn match autoitConst "\$TRAY_ITEM_EXIT" +syn match autoitConst "\$TRAY_ITEM_PAUSE" +syn match autoitConst "\$TRAY_ITEM_FIRST" +syn match autoitConst "\$TRAY_CHECKED" +syn match autoitConst "\$TRAY_UNCHECKED" +syn match autoitConst "\$TRAY_ENABLE" +syn match autoitConst "\$TRAY_DISABLE" +syn match autoitConst "\$TRAY_FOCUS" +syn match autoitConst "\$TRAY_DEFAULT" +syn match autoitConst "\$TRAY_EVENT_SHOWICON" +syn match autoitConst "\$TRAY_EVENT_HIDEICON" +syn match autoitConst "\$TRAY_EVENT_FLASHICON" +syn match autoitConst "\$TRAY_EVENT_NOFLASHICON" +syn match autoitConst "\$TRAY_EVENT_PRIMARYDOWN" +syn match autoitConst "\$TRAY_EVENT_PRIMARYUP" +syn match autoitConst "\$TRAY_EVENT_SECONDARYDOWN" +syn match autoitConst "\$TRAY_EVENT_SECONDARYUP" +syn match autoitConst "\$TRAY_EVENT_MOUSEOVER" +syn match autoitConst "\$TRAY_EVENT_MOUSEOUT" +syn match autoitConst "\$TRAY_EVENT_PRIMARYDOUBLE" +syn match autoitConst "\$TRAY_EVENT_SECONDARYDOUBLE" +" constants - stdio +syn match autoitConst "\$STDIN_CHILD" +syn match autoitConst "\$STDOUT_CHILD" +syn match autoitConst "\$STDERR_CHILD" +" constants - color +syn match autoitConst "\$COLOR_BLACK" +syn match autoitConst "\$COLOR_SILVER" +syn match autoitConst "\$COLOR_GRAY" +syn match autoitConst "\$COLOR_WHITE" +syn match autoitConst "\$COLOR_MAROON" +syn match autoitConst "\$COLOR_RED" +syn match autoitConst "\$COLOR_PURPLE" +syn match autoitConst "\$COLOR_FUCHSIA" +syn match autoitConst "\$COLOR_GREEN" +syn match autoitConst "\$COLOR_LIME" +syn match autoitConst "\$COLOR_OLIVE" +syn match autoitConst "\$COLOR_YELLOW" +syn match autoitConst "\$COLOR_NAVY" +syn match autoitConst "\$COLOR_BLUE" +syn match autoitConst "\$COLOR_TEAL" +syn match autoitConst "\$COLOR_AQUA" +" constants - reg value type +syn match autoitConst "\$REG_NONE" +syn match autoitConst "\$REG_SZ" +syn match autoitConst "\$REG_EXPAND_SZ" +syn match autoitConst "\$REG_BINARY" +syn match autoitConst "\$REG_DWORD" +syn match autoitConst "\$REG_DWORD_BIG_ENDIAN" +syn match autoitConst "\$REG_LINK" +syn match autoitConst "\$REG_MULTI_SZ" +syn match autoitConst "\$REG_RESOURCE_LIST" +syn match autoitConst "\$REG_FULL_RESOURCE_DESCRIPTOR" +syn match autoitConst "\$REG_RESOURCE_REQUIREMENTS_LIST" +" guiconstants - events and messages +syn match autoitConst "\$GUI_EVENT_CLOSE" +syn match autoitConst "\$GUI_EVENT_MINIMIZE" +syn match autoitConst "\$GUI_EVENT_RESTORE" +syn match autoitConst "\$GUI_EVENT_MAXIMIZE" +syn match autoitConst "\$GUI_EVENT_PRIMARYDOWN" +syn match autoitConst "\$GUI_EVENT_PRIMARYUP" +syn match autoitConst "\$GUI_EVENT_SECONDARYDOWN" +syn match autoitConst "\$GUI_EVENT_SECONDARYUP" +syn match autoitConst "\$GUI_EVENT_MOUSEMOVE" +syn match autoitConst "\$GUI_EVENT_RESIZED" +syn match autoitConst "\$GUI_EVENT_DROPPED" +syn match autoitConst "\$GUI_RUNDEFMSG" +" guiconstants - state +syn match autoitConst "\$GUI_AVISTOP" +syn match autoitConst "\$GUI_AVISTART" +syn match autoitConst "\$GUI_AVICLOSE" +syn match autoitConst "\$GUI_CHECKED" +syn match autoitConst "\$GUI_INDETERMINATE" +syn match autoitConst "\$GUI_UNCHECKED" +syn match autoitConst "\$GUI_DROPACCEPTED" +syn match autoitConst "\$GUI_DROPNOTACCEPTED" +syn match autoitConst "\$GUI_ACCEPTFILES" +syn match autoitConst "\$GUI_SHOW" +syn match autoitConst "\$GUI_HIDE" +syn match autoitConst "\$GUI_ENABLE" +syn match autoitConst "\$GUI_DISABLE" +syn match autoitConst "\$GUI_FOCUS" +syn match autoitConst "\$GUI_NOFOCUS" +syn match autoitConst "\$GUI_DEFBUTTON" +syn match autoitConst "\$GUI_EXPAND" +syn match autoitConst "\$GUI_ONTOP" +" guiconstants - font +syn match autoitConst "\$GUI_FONTITALIC" +syn match autoitConst "\$GUI_FONTUNDER" +syn match autoitConst "\$GUI_FONTSTRIKE" +" guiconstants - resizing +syn match autoitConst "\$GUI_DOCKAUTO" +syn match autoitConst "\$GUI_DOCKLEFT" +syn match autoitConst "\$GUI_DOCKRIGHT" +syn match autoitConst "\$GUI_DOCKHCENTER" +syn match autoitConst "\$GUI_DOCKTOP" +syn match autoitConst "\$GUI_DOCKBOTTOM" +syn match autoitConst "\$GUI_DOCKVCENTER" +syn match autoitConst "\$GUI_DOCKWIDTH" +syn match autoitConst "\$GUI_DOCKHEIGHT" +syn match autoitConst "\$GUI_DOCKSIZE" +syn match autoitConst "\$GUI_DOCKMENUBAR" +syn match autoitConst "\$GUI_DOCKSTATEBAR" +syn match autoitConst "\$GUI_DOCKALL" +syn match autoitConst "\$GUI_DOCKBORDERS" +" guiconstants - graphic +syn match autoitConst "\$GUI_GR_CLOSE" +syn match autoitConst "\$GUI_GR_LINE" +syn match autoitConst "\$GUI_GR_BEZIER" +syn match autoitConst "\$GUI_GR_MOVE" +syn match autoitConst "\$GUI_GR_COLOR" +syn match autoitConst "\$GUI_GR_RECT" +syn match autoitConst "\$GUI_GR_ELLIPSE" +syn match autoitConst "\$GUI_GR_PIE" +syn match autoitConst "\$GUI_GR_DOT" +syn match autoitConst "\$GUI_GR_PIXEL" +syn match autoitConst "\$GUI_GR_HINT" +syn match autoitConst "\$GUI_GR_REFRESH" +syn match autoitConst "\$GUI_GR_PENSIZE" +syn match autoitConst "\$GUI_GR_NOBKCOLOR" +" guiconstants - control default styles +syn match autoitConst "\$GUI_SS_DEFAULT_AVI" +syn match autoitConst "\$GUI_SS_DEFAULT_BUTTON" +syn match autoitConst "\$GUI_SS_DEFAULT_CHECKBOX" +syn match autoitConst "\$GUI_SS_DEFAULT_COMBO" +syn match autoitConst "\$GUI_SS_DEFAULT_DATE" +syn match autoitConst "\$GUI_SS_DEFAULT_EDIT" +syn match autoitConst "\$GUI_SS_DEFAULT_GRAPHIC" +syn match autoitConst "\$GUI_SS_DEFAULT_GROUP" +syn match autoitConst "\$GUI_SS_DEFAULT_ICON" +syn match autoitConst "\$GUI_SS_DEFAULT_INPUT" +syn match autoitConst "\$GUI_SS_DEFAULT_LABEL" +syn match autoitConst "\$GUI_SS_DEFAULT_LIST" +syn match autoitConst "\$GUI_SS_DEFAULT_LISTVIEW" +syn match autoitConst "\$GUI_SS_DEFAULT_MONTHCAL" +syn match autoitConst "\$GUI_SS_DEFAULT_PIC" +syn match autoitConst "\$GUI_SS_DEFAULT_PROGRESS" +syn match autoitConst "\$GUI_SS_DEFAULT_RADIO" +syn match autoitConst "\$GUI_SS_DEFAULT_SLIDER" +syn match autoitConst "\$GUI_SS_DEFAULT_TAB" +syn match autoitConst "\$GUI_SS_DEFAULT_TREEVIEW" +syn match autoitConst "\$GUI_SS_DEFAULT_UPDOWN" +syn match autoitConst "\$GUI_SS_DEFAULT_GUI" +" guiconstants - background color special flags +syn match autoitConst "\$GUI_BKCOLOR_DEFAULT" +syn match autoitConst "\$GUI_BKCOLOR_LV_ALTERNATE" +syn match autoitConst "\$GUI_BKCOLOR_TRANSPARENT" + +" registry constants +syn match autoitConst "\([\"\']\)REG_BINARY\1" +syn match autoitConst "\([\"\']\)REG_SZ\1" +syn match autoitConst "\([\"\']\)REG_MULTI_SZ\1" +syn match autoitConst "\([\"\']\)REG_EXPAND_SZ\1" +syn match autoitConst "\([\"\']\)REG_DWORD\1" + +" Define the default highlighting. +" Unused colors: Underlined, Ignore, Error, Todo +hi def link autoitFunction Statement " yellow/yellow +hi def link autoitKeyword Statement +hi def link autoitOperator Operator +hi def link autoitVarSelector Operator +hi def link autoitComment Comment " cyan/blue +hi def link autoitParen Comment +hi def link autoitComma Comment +hi def link autoitBracket Comment +hi def link autoitNumber Constant " magenta/red +hi def link autoitString Constant +hi def link autoitQuote Constant +hi def link autoitIncluded Constant +hi def link autoitCont Special " red/orange +hi def link autoitDoubledSingles Special +hi def link autoitDoubledDoubles Special +hi def link autoitCommDelimiter PreProc " blue/magenta +hi def link autoitInclude PreProc +hi def link autoitVariable Identifier " cyan/cyan +hi def link autoitBuiltin Type " green/green +hi def link autoitOption Type +hi def link autoitStyle Type +hi def link autoitConst Type +hi def link autoitSend Type + +syn sync minlines=50 + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/automake.vim b/runtime/syntax/automake.vim new file mode 100644 index 0000000..2f1ad98 --- /dev/null +++ b/runtime/syntax/automake.vim @@ -0,0 +1,77 @@ +" Vim syntax file +" Language: automake Makefile.am +" Maintainer: Debian Vim Maintainers +" Former Maintainer: John Williams +" Last Change: 2023 Jan 16 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/automake.vim +" +" XXX This file is in need of a new maintainer, Debian VIM Maintainers maintain +" it only because patches have been submitted for it by Debian users and the +" former maintainer was MIA (Missing In Action), taking over its +" maintenance was thus the only way to include those patches. +" If you care about this file, and have time to maintain it please do so! +" +" This script adds support for automake's Makefile.am format. It highlights +" Makefile variables significant to automake as well as highlighting +" autoconf-style @variable@ substitutions . Subsitutions are marked as errors +" when they are used in an inappropriate place, such as in defining +" EXTRA_SOURCES. + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +" Read the Makefile syntax to start with +runtime! syntax/make.vim + +syn match automakePrimary "^\w\+\(_PROGRAMS\|_LIBRARIES\|_LISP\|_PYTHON\|_JAVA\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_LTLIBRARIES\)\s*\ze+\==" +syn match automakePrimary "^TESTS\s*\ze+\=="me=e-1 +syn match automakeSecondary "^\w\+\(_SOURCES\|_LIBADD\|_LDADD\|_LDFLAGS\|_DEPENDENCIES\|_AR\|_CCASFLAGS\|_CFLAGS\|_CPPFLAGS\|_CXXFLAGS\|_FCFLAGS\|_FFLAGS\|_GCJFLAGS\|_LFLAGS\|_LIBTOOLFLAGS\|OBJCFLAGS\|RFLAGS\|UPCFLAGS\|YFLAGS\)\s*\ze+\==" +syn match automakeSecondary "^\(LDADD\|ARFLAGS\|OMIT_DEPENDENCIES\|AM_MAKEFLAGS\|\(AM_\)\=\(MAKEINFOFLAGS\|RUNTESTDEFAULTFLAGS\|ETAGSFLAGS\|CTAGSFLAGS\|JAVACFLAGS\)\)\s*\ze+\==" +syn match automakeExtra "^EXTRA_\w\+\s*\ze+\==" +syn match automakeOptions "^\(ACLOCAL_AMFLAGS\|AUTOMAKE_OPTIONS\|DISTCHECK_CONFIGURE_FLAGS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*\ze+\==" +syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*\ze+\==" +syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*\ze+\==" +syn match automakeConditional "^\(if\s*!\=\w\+\|else\|endif\)\s*$" + +syn match automakeSubst "@\w\+@" +syn match automakeSubst "^\s*@\w\+@" +syn match automakeComment1 "#.*$" contains=automakeSubst,@Spell +syn match automakeComment2 "##.*$" contains=@Spell + +syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call +syn match automakeMakeError "^AM_LDADD\s*\ze+\==" " Common mistake + +syn region automakeNoSubst start="^EXTRA_\w*\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent +syn region automakeNoSubst start="^DIST_SUBDIRS\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent +syn region automakeNoSubst start="^\w*_SOURCES\s*+\==" end="$" contains=ALLBUT,automakeNoSubst transparent +syn match automakeBadSubst "@\(\w*@\=\)\=" contained + +syn region automakeMakeDString start=+"+ skip=+\\"+ end=+"+ contains=makeIdent,automakeSubstitution +syn region automakeMakeSString start=+'+ skip=+\\'+ end=+'+ contains=makeIdent,automakeSubstitution +syn region automakeMakeBString start=+`+ skip=+\\`+ end=+`+ contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link automakePrimary Statement +hi def link automakeSecondary Type +hi def link automakeExtra Special +hi def link automakeOptions Special +hi def link automakeClean Special +hi def link automakeSubdirs Statement +hi def link automakeConditional PreProc +hi def link automakeSubst PreProc +hi def link automakeComment1 makeComment +hi def link automakeComment2 makeComment +hi def link automakeMakeError makeError +hi def link automakeBadSubst makeError +hi def link automakeMakeDString makeDString +hi def link automakeMakeSString makeSString +hi def link automakeMakeBString makeBString + + +let b:current_syntax = 'automake' + +" vi: ts=8 sw=4 sts=4 diff --git a/runtime/syntax/ave.vim b/runtime/syntax/ave.vim new file mode 100644 index 0000000..e63e7d2 --- /dev/null +++ b/runtime/syntax/ave.vim @@ -0,0 +1,79 @@ +" Vim syntax file +" Copyright by Jan-Oliver Wagner +" Language: avenue +" Maintainer: Jan-Oliver Wagner +" Last change: 2001 May 10 + +" Avenue is the ArcView built-in language. ArcView is +" a desktop GIS by ESRI. Though it is a built-in language +" and a built-in editor is provided, the use of VIM increases +" development speed. +" I use some technologies to automatically load avenue scripts +" into ArcView. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Avenue is entirely case-insensitive. +syn case ignore + +" The keywords + +syn keyword aveStatement if then elseif else end break exit return +syn keyword aveStatement for each in continue while + +" String + +syn region aveString start=+"+ end=+"+ + +" Integer number +syn match aveNumber "[+-]\=\<[0-9]\+\>" + +" Operator + +syn keyword aveOperator or and max min xor mod by +" 'not' is a kind of a problem: It's an Operator as well as a method +" 'not' is only marked as an Operator if not applied as method +syn match aveOperator "[^\.]not[^a-zA-Z]" + +" Variables + +syn keyword aveFixVariables av nil self false true nl tab cr tab +syn match globalVariables "_[a-zA-Z][a-zA-Z0-9]*" +syn match aveVariables "[a-zA-Z][a-zA-Z0-9_]*" +syn match aveConst "#[A-Z][A-Z_]+" + +" Comments + +syn match aveComment "'.*" + +" Typical Typos + +" for C programmers: +syn match aveTypos "==" +syn match aveTypos "!=" + +" Define the default highlighting. +" Only when an item doesn't have highlighting+yet + +hi def link aveStatement Statement + +hi def link aveString String +hi def link aveNumber Number + +hi def link aveFixVariables Special +hi def link aveVariables Identifier +hi def link globalVariables Special +hi def link aveConst Special + +hi def link aveClassMethods Function + +hi def link aveOperator Operator +hi def link aveComment Comment + +hi def link aveTypos Error + + +let b:current_syntax = "ave" diff --git a/runtime/syntax/avra.vim b/runtime/syntax/avra.vim new file mode 100644 index 0000000..0e02bd8 --- /dev/null +++ b/runtime/syntax/avra.vim @@ -0,0 +1,71 @@ +" Vim syntax file +" Language: AVR Assembler (AVRA) +" AVRA Home: http://avra.sourceforge.net/index.html +" AVRA Version: 1.3.0 +" Last Update: 2016 Oct 7 +" Maintainer: Marius Ghita + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +syn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 +syn keyword avraRegister r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 +syn keyword avraRegister r28 r29 r30 r31 + +syn keyword avraInstr add adc adiw sub subi sbc sbci sbiw and andi or ori eor +syn keyword avraInstr com neg sbr cbr inc dec tst clr ser mul muls mulsu fmul +syn keyword avraInstr fmuls fmulsu des rjmp ijmp eijmp jmp rcall icall eicall +syn keyword avraInstr call ret reti cpse cp cpc cpi sbrc sbrs sbic sbis brbs +syn keyword avraInstr brbc breq brne brcs brcc brsh brlo brmi brpl brge brlt +syn keyword avraInstr brhs brhc brts brtc brvs brvc brie brid mov movw ldi lds +syn keyword avraInstr ld ldd sts st std lpm elpm spm in out push pop xch las +syn keyword avraInstr lac lat lsl lsr rol ror asr swap bset bclr sbi cbi bst bld +syn keyword avraInstr sec clc sen cln sez clz sei cli ses cls sev clv set clt +syn keyword avraInstr seh clh break nop sleep wdr + +syn keyword avraDirective .byte .cseg .db .def .device .dseg .dw .endmacro .equ +syn keyword avraDirective .eseg .exit .include .list .listmac .macro .nolist +syn keyword avraDirective .org .set .define .undef .ifdef .ifndef .if .else +syn keyword avraDirective .elif .elseif .warning + +syn keyword avraOperator low high byte2 byte3 byte4 lwrd hwrd page exp2 log2 + +syn match avraNumericOperator "[-*/+]" +syn match avraUnaryOperator "!" +syn match avraBinaryOperator "<<\|>>\|<\|<=\|>\|>=\|==\|!=" +syn match avraBitwiseOperator "[~&^|]\|&&\|||" + +syn match avraBinaryNumber "\<0[bB][0-1]*\>" +syn match avraHexNumber "\<0[xX][0-9a-fA-F]\+\>" +syn match avraDecNumber "\<\(0\|[1-9]\d*\)\>" + +syn region avraComment start=";" end="$" +syn region avraString start="\"" end="\"\|$" + +syn match avraLabel "^\s*[^; \t]\+:" + +hi def link avraBinaryNumber avraNumber +hi def link avraHexNumber avraNumber +hi def link avraDecNumber avraNumber + +hi def link avraNumericOperator avraOperator +hi def link avraUnaryOperator avraOperator +hi def link avraBinaryOperator avraOperator +hi def link avraBitwiseOperator avraOperator + + +hi def link avraOperator operator +hi def link avraComment comment +hi def link avraDirective preproc +hi def link avraRegister type +hi def link avraNumber constant +hi def link avraString String +hi def link avraInstr keyword +hi def link avraLabel label + +let b:current_syntax = "avra" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/awk.vim b/runtime/syntax/awk.vim new file mode 100644 index 0000000..3082c1c --- /dev/null +++ b/runtime/syntax/awk.vim @@ -0,0 +1,217 @@ +" Vim syntax file +" Language: awk, nawk, gawk, mawk +" Maintainer: Doug Kearns +" Previous Maintainer: Antonio Colombo +" Last Change: 2020 Aug 18 + +" AWK ref. is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger +" The AWK Programming Language, Addison-Wesley, 1988 + +" GAWK ref. is: Arnold D. Robbins +" Effective AWK Programming, Third Edition, O'Reilly, 2001 +" Effective AWK Programming, Fourth Edition, O'Reilly, 2015 +" (up-to-date version available with the gawk source distribution) + +" MAWK is a "new awk" meaning it implements AWK ref. +" mawk conforms to the Posix 1003.2 (draft 11.3) +" definition of the AWK language which contains a few features +" not described in the AWK book, and mawk provides a small number of extensions. + +" TODO: +" Dig into the commented out syntax expressions below. + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn iskeyword @,48-57,_,192-255,@-@ + +" A bunch of useful Awk keywords +" AWK ref. p. 188 +syn keyword awkStatement break continue delete exit +syn keyword awkStatement function getline next +syn keyword awkStatement print printf return +" GAWK ref. Chapter 7-9 +syn keyword awkStatement case default switch nextfile +syn keyword awkStatement func +" GAWK ref. Chapter 2.7, Including Other Files into Your Program +" GAWK ref. Chapter 2.8, Loading Dynamic Extensions into Your Program +" GAWK ref. Chapter 15, Namespaces +" Directives +syn keyword awkStatement @include @load @namespace +" +" GAWK ref. Chapter 9, Functions +" Numeric Functions +syn keyword awkFunction atan2 cos exp int log rand sin sqrt srand +" String Manipulation Functions +syn keyword awkFunction asort asorti gensub gsub index length match +syn keyword awkFunction patsplit split sprintf strtonum sub substr +syn keyword awkFunction tolower toupper +" Input Output Functions +syn keyword awkFunction close fflush system +" Time Functions +syn keyword awkFunction mktime strftime systime +" Bit Manipulation Functions +syn keyword awkFunction and compl lshift or rshift xor +" Getting Type Information Functions +syn keyword awkFunction isarray typeof +" String-Translation Functions +syn keyword awkFunction bindtextdomain dcgettext dcngetext + +syn keyword awkConditional if else +syn keyword awkRepeat while for do + +syn keyword awkTodo contained TODO + +syn keyword awkPatterns BEGIN END BEGINFILE ENDFILE + +" GAWK ref. Chapter 7 +" Built-in Variables That Control awk +syn keyword awkVariables BINMODE CONVFMT FIELDWIDTHS FPAT FS +syn keyword awkVariables IGNORECASE LINT OFMT OFS ORS PREC +syn keyword awkVariables ROUNDMODE RS SUBSEP TEXTDOMAIN +" Built-in Variables That Convey Information +syn keyword awkVariables ARGC ARGV ARGIND ENVIRON ERRNO FILENAME +syn keyword awkVariables FNR NF FUNCTAB NR PROCINFO RLENGTH RSTART +syn keyword awkVariables RT SYMTAB + +" Arithmetic operators: +, and - take care of ++, and -- +syn match awkOperator "+\|-\|\*\|/\|%\|=" +syn match awkOperator "+=\|-=\|\*=\|/=\|%=" +syn match awkOperator "\^\|\^=" + +" Octal format character. +syn match awkSpecialCharacter display contained "\\[0-7]\{1,3\}" +" Hex format character. +syn match awkSpecialCharacter display contained "\\x[0-9A-Fa-f]\+" + +syn match awkFieldVars "\$\d\+" + +" catch errors caused by wrong parenthesis +syn region awkParen transparent start="(" end=")" contains=ALLBUT,awkParenError,awkSpecialCharacter,awkArrayElement,awkArrayArray,awkTodo,awkRegExp,awkBrktRegExp,awkBrackets,awkCharClass,awkComment +syn match awkParenError display ")" +"syn match awkInParen display contained "[{}]" + +" 64 lines for complex &&'s, and ||'s in a big "if" +syn sync ccomment awkParen maxlines=64 + +" Search strings & Regular Expressions therein. +syn region awkSearch oneline start="^[ \t]*/"ms=e start="\(,\|!\=\~\)[ \t]*/"ms=e skip="\\\\\|\\/" end="/" contains=awkBrackets,awkRegExp,awkSpecialCharacter +syn region awkBrackets contained start="\[\^\]\="ms=s+2 start="\[[^\^]"ms=s+1 end="\]"me=e-1 contains=awkBrktRegExp,awkCharClass +syn region awkSearch oneline start="[ \t]*/"hs=e skip="\\\\\|\\/" end="/" contains=awkBrackets,awkRegExp,awkSpecialCharacter + +syn match awkCharClass contained "\[:[^:\]]*:\]" +syn match awkBrktRegExp contained "\\.\|.\-[^]]" +syn match awkRegExp contained "/\^"ms=s+1 +syn match awkRegExp contained "\$/"me=e-1 +syn match awkRegExp contained "[?.*{}|+]" + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn region awkString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell,awkSpecialCharacter,awkSpecialPrintf +syn match awkSpecialCharacter contained "\\." + +" Some of these combinations may seem weird, but they work. +syn match awkSpecialPrintf contained "%[-+ #]*\d*\.\=\d*[cdefgiosuxEGX%]" + +" Numbers, allowing signs (both -, and +) +" Integer number. +syn match awkNumber display "[+-]\=\<\d\+\>" +" Floating point number. +syn match awkFloat display "[+-]\=\<\d\+\.\d+\>" +" Floating point number, starting with a dot. +syn match awkFloat display "[+-]\=\<.\d+\>" +syn case ignore +"floating point number, with dot, optional exponent +syn match awkFloat display "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\>" +"floating point number, starting with a dot, optional exponent +syn match awkFloat display "\.\d\+\(e[-+]\=\d\+\)\=\>" +"floating point number, without dot, with exponent +syn match awkFloat display "\<\d\+e[-+]\=\d\+\>" +syn case match + +"syn match awkIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>" + +" Comparison expressions. +syn match awkExpression "==\|>=\|=>\|<=\|=<\|\!=" +syn match awkExpression "\~\|\!\~" +syn match awkExpression "?\|:" +syn keyword awkExpression in + +" Boolean Logic (OR, AND, NOT) +syn match awkBoolLogic "||\|&&\|\!" + +" This is overridden by less-than & greater-than. +" Put this above those to override them. +" Put this in a 'match "\.*;\="' to make it not override +" less/greater than (most of the time), but it won't work yet because +" keywords always have precedence over match & region. +" File I/O: (print foo, bar > "filename") & for nawk (getline < "filename") +"syn match awkFileIO contained ">" +"syn match awkFileIO contained "<" + +" Expression separators: ';' and ',' +syn match awkSemicolon ";" +syn match awkComma "," + +syn match awkComment "#.*" contains=@Spell,awkTodo + +syn match awkLineSkip "\\$" + +" Highlight array element's (recursive arrays allowed). +" Keeps nested array names' separate from normal array elements. +" Keeps numbers separate from normal array elements (variables). +syn match awkArrayArray contained "[^][, \t]\+\["me=e-1 +syn match awkArrayElement contained "[^][, \t]\+" +syn region awkArray transparent start="\[" end="\]" contains=awkArray,awkArrayElement,awkArrayArray,awkNumber,awkFloat + +" 10 should be enough. +" (for the few instances where it would be more than "oneline") +syn sync ccomment awkArray maxlines=10 + +" Define the default highlighting. +hi def link awkConditional Conditional +hi def link awkFunction Function +hi def link awkRepeat Repeat +hi def link awkStatement Statement +hi def link awkString String +hi def link awkSpecialPrintf Special +hi def link awkSpecialCharacter Special +hi def link awkSearch String +hi def link awkBrackets awkRegExp +hi def link awkBrktRegExp awkNestRegExp +hi def link awkCharClass awkNestRegExp +hi def link awkNestRegExp Keyword +hi def link awkRegExp Special +hi def link awkNumber Number +hi def link awkFloat Float +hi def link awkFileIO Special +hi def link awkOperator Special +hi def link awkExpression Special +hi def link awkBoolLogic Special +hi def link awkPatterns Special +hi def link awkVariables Special +hi def link awkFieldVars Special +hi def link awkLineSkip Special +hi def link awkSemicolon Special +hi def link awkComma Special +hi def link awkIdentifier Identifier +hi def link awkComment Comment +hi def link awkTodo Todo +" Change this if you want nested array names to be highlighted. +hi def link awkArrayArray awkArray +hi def link awkArrayElement Special +hi def link awkParenError awkError +hi def link awkInParen awkError +hi def link awkError Error + +let b:current_syntax = "awk" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/ayacc.vim b/runtime/syntax/ayacc.vim new file mode 100644 index 0000000..6fb6aec --- /dev/null +++ b/runtime/syntax/ayacc.vim @@ -0,0 +1,75 @@ +" Vim syntax file +" Language: AYacc +" Maintainer: Mathieu Clabaut +" LastChange: 2011 Dec 25 +" Original: Yacc, maintained by Dr. Charles E. Campbell, Jr. +" Comment: Replaced sourcing c.vim file by ada.vim and rename yacc* +" in ayacc* + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the Ada syntax to start with +runtime! syntax/ada.vim +unlet b:current_syntax + +let s:cpo_save = &cpo +set cpo&vim + +" Clusters +syn cluster ayaccActionGroup contains=ayaccDelim,cInParen,cTodo,cIncluded,ayaccDelim,ayaccCurlyError,ayaccUnionCurly,ayaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError +syn cluster ayaccUnionGroup contains=ayaccKey,cComment,ayaccCurly,cType,cStructure,cStorageClass,ayaccUnionCurly + +" Yacc stuff +syn match ayaccDelim "^[ \t]*[:|;]" +syn match ayaccOper "@\d\+" + +syn match ayaccKey "^[ \t]*%\(token\|type\|left\|right\|start\|ident\)\>" +syn match ayaccKey "[ \t]%\(prec\|expect\|nonassoc\)\>" +syn match ayaccKey "\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+" +syn keyword ayaccKeyActn yyerrok yyclearin + +syn match ayaccUnionStart "^%union" skipwhite skipnl nextgroup=ayaccUnion +syn region ayaccUnion contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup +syn region ayaccUnionCurly contained matchgroup=ayaccCurly start="{" matchgroup=ayaccCurly end="}" contains=@ayaccUnionGroup +syn match ayaccBrkt contained "[<>]" +syn match ayaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=ayaccBrkt +syn match ayaccDefinition "^[A-Za-z][A-Za-z0-9_]*[ \t]*:" + +" special Yacc separators +syn match ayaccSectionSep "^[ \t]*%%" +syn match ayaccSep "^[ \t]*%{" +syn match ayaccSep "^[ \t]*%}" + +" I'd really like to highlight just the outer {}. Any suggestions??? +syn match ayaccCurlyError "[{}]" +syn region ayaccAction matchgroup=ayaccCurly start="{" end="}" contains=ALLBUT,@ayaccActionGroup + + +" Internal ayacc highlighting links +hi def link ayaccBrkt ayaccStmt +hi def link ayaccKey ayaccStmt +hi def link ayaccOper ayaccStmt +hi def link ayaccUnionStart ayaccKey + +" External ayacc highlighting links +hi def link ayaccCurly Delimiter +hi def link ayaccCurlyError Error +hi def link ayaccDefinition Function +hi def link ayaccDelim Function +hi def link ayaccKeyActn Special +hi def link ayaccSectionSep Todo +hi def link ayaccSep Delimiter +hi def link ayaccStmt Statement +hi def link ayaccType Type + +" since Bram doesn't like my Delimiter :| +hi def link Delimiter Type + +let b:current_syntax = "ayacc" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=15 diff --git a/runtime/syntax/b.vim b/runtime/syntax/b.vim new file mode 100644 index 0000000..01532be --- /dev/null +++ b/runtime/syntax/b.vim @@ -0,0 +1,114 @@ +" Vim syntax file +" Language: B (A Formal Method with refinement and mathematical proof) +" Maintainer: Mathieu Clabaut +" Contributor: Csaba Hoch +" LastChange: 8 Dec 2007 + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +" A bunch of useful B keywords +syn keyword bStatement MACHINE MODEL SEES OPERATIONS INCLUDES DEFINITIONS CONSTRAINTS CONSTANTS VARIABLES CONCRETE_CONSTANTS CONCRETE_VARIABLES ABSTRACT_CONSTANTS ABSTRACT_VARIABLES HIDDEN_CONSTANTS HIDDEN_VARIABLES ASSERT ASSERTIONS EXTENDS IMPLEMENTATION REFINEMENT IMPORTS USES INITIALISATION INVARIANT PROMOTES PROPERTIES REFINES SETS VALUES VARIANT VISIBLE_CONSTANTS VISIBLE_VARIABLES THEORY XLS THEOREMS LOCAL_OPERATIONS +syn keyword bLabel CASE IN EITHER OR CHOICE DO OF +syn keyword bConditional IF ELSE SELECT ELSIF THEN WHEN +syn keyword bRepeat WHILE FOR +syn keyword bOps bool card conc closure closure1 dom first fnc front not or id inter iseq iseq1 iterate last max min mod perm pred prj1 prj2 ran rel rev seq seq1 size skip succ tail union +syn keyword bKeywords LET VAR BE IN BEGIN END POW POW1 FIN FIN1 PRE SIGMA STRING UNION IS ANY WHERE + +syn keyword bBoolean TRUE FALSE bfalse btrue +syn keyword bConstant PI MAXINT MININT User_Pass PatchProver PatchProverH0 PatchProverB0 FLAT ARI DED SUB RES +syn keyword bGuard binhyp band bnot bguard bsearch bflat bfresh bguardi bget bgethyp barith bgetresult bresult bgoal bmatch bmodr bnewv bnum btest bpattern bprintf bwritef bsubfrm bvrb blvar bcall bappend bclose + +syn keyword bLogic or not +syn match bLogic "\(!\|#\|%\|&\|+->>\|+->\|-->>\|->>\|-->\|->\|/:\|/<:\|/<<:\|/=\|/\\\|/|\\\|::\|:\|;:\|<+\|<->\|<--\|<-\|<:\|<<:\|<<|\|<=>\|<|\|==\|=>\|>+>>\|>->\|>+>\|||\||->\)" +syn match bNothing /:=/ + +syn keyword cTodo contained TODO FIXME XXX + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match bSpecial contained "\\[0-7][0-7][0-7]\=\|\\." +syn region bString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=bSpecial +syn match bCharacter "'[^\\]'" +syn match bSpecialCharacter "'\\.'" +syn match bSpecialCharacter "'\\[0-7][0-7]'" +syn match bSpecialCharacter "'\\[0-7][0-7][0-7]'" + +"catch errors caused by wrong parenthesis +syn region bParen transparent start='(' end=')' contains=ALLBUT,bParenError,bIncluded,bSpecial,bTodo,bUserLabel,bBitField +syn match bParenError ")" +syn match bInParen contained "[{}]" + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match bNumber "\<[0-9]\+\>" +"syn match bIdentifier "\<[a-z_][a-z0-9_]*\>" +syn case match + + syn region bComment start="/\*" end="\*/" contains=bTodo + syn match bComment "//.*" contains=bTodo +syntax match bCommentError "\*/" + +syn keyword bType INT INTEGER BOOL NAT NATURAL NAT1 NATURAL1 + +syn region bPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=bComment,bString,bCharacter,bNumber,bCommentError +syn region bIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match bIncluded contained "<[^>]*>" +syn match bInclude "^\s*#\s*include\>\s*["<]" contains=bIncluded + +syn region bDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,bPreCondit,bIncluded,bInclude,bDefine,bInParen +syn region bPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,bPreCondit,bIncluded,bInclude,bDefine,bInParen + +syn sync ccomment bComment minlines=10 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + + +" The default methods for highlighting. Can be overridden later +hi def link bLabel Label +hi def link bUserLabel Label +hi def link bConditional Conditional +hi def link bRepeat Repeat +hi def link bLogic Special +hi def link bCharacter Character +hi def link bSpecialCharacter bSpecial +hi def link bNumber Number +hi def link bFloat Float +hi def link bOctalError bError +hi def link bParenError bError +" hi def link bInParen bError +hi def link bCommentError bError +hi def link bBoolean Identifier +hi def link bConstant Identifier +hi def link bGuard Identifier +hi def link bOperator Operator +hi def link bKeywords Operator +hi def link bOps Identifier +hi def link bStructure Structure +hi def link bStorageClass StorageClass +hi def link bInclude Include +hi def link bPreProc PreProc +hi def link bDefine Macro +hi def link bIncluded bString +hi def link bError Error +hi def link bStatement Statement +hi def link bPreCondit PreCondit +hi def link bType Type +hi def link bCommentError bError +hi def link bCommentString bString +hi def link bComment2String bString +hi def link bCommentSkip bComment +hi def link bString String +hi def link bComment Comment +hi def link bSpecial SpecialChar +hi def link bTodo Todo +"hi link bIdentifier Identifier + +let b:current_syntax = "b" + +" vim: ts=8 diff --git a/runtime/syntax/baan.vim b/runtime/syntax/baan.vim new file mode 100644 index 0000000..9a42a43 --- /dev/null +++ b/runtime/syntax/baan.vim @@ -0,0 +1,1917 @@ +" Vim syntax file" +" Language: Baan +" Maintainer: Erik Remmelzwaal (erik.remmelzwaal 0x40 ssaglobal.com) +" Originally owned by: Erwin Smit / Her van de Vliert +" Last change: v1.17 2006/04/26 10:40:18 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +"********************************** Lexical setting ***************************" +syn case ignore +setlocal iskeyword+=. +"setlocal ignorecase "This is not a local yet ;-( +" Identifier +syn match baanIdentifier "\<\k\+\>" + +"************************************* 3GL ************************************" +syn match baan3glpre "#ident\>" +syn match baan3glpre "#include\>" +syn region baan3glpre start="#define\>" end="^[^^|]"me=s-1 contains=baanString,baanConstant,baanNumber,baanComment,baansql +syn match baan3glpre "#undef\>" +syn match baan3glpre "#pragma\>" +syn match baan3glpre "#if\>" +syn match baan3glpre "#ifdef\>" +syn match baan3glpre "#ifndef\>" +syn match baan3glpre "#elif\>" +syn match baan3glpre "#else\>" +syn match baan3glpre "#endif\>" + +" Some keywords are only defined when no foldinat based break bset call continue default +syn keyword baan3gl empty fixed ge global goto gt le lt mb +syn keyword baan3gl multibyte ne ofr prompt repeat static step stop +syn keyword baan3gl until void wherebind ref reference break continue +syn keyword baan3gl and or to not in +syn keyword baan3gl eq input end return at print +syn keyword baanType domain double long string table boolean common +syn keyword baanType bset void xmlNode +syn keyword baanStorageClass dim base based extern global fixed MB const +syn keyword baanConstant pi true false + +" Folding settings +if exists("baan_fold") && baan_fold + syn region baanFunctionFold matchgroup=baan3gl start="^\z(\s*\)\" matchgroup=NONE end="^\z1}" transparent fold keepend +else + syn keyword baan3gl function +endif +if exists("baan_fold") && baan_fold && exists("baan_fold_block") && baan_fold_block + syn region baanCondFold matchgroup=baanConditional start="^\z(\s*\)\(if\>\|else\>\)" end="^\z1endif\>" end="^\z1else\>"me=s-1 transparent fold keepend extend + syn region baanCondFold matchgroup=baanConditional start="^\z(\s*\)for\>" end="^\z1endfor\>" transparent fold keepend extend + syn region baanCondFold matchgroup=baanConditional start="^\z(\s*\)while\>" end="^\z1endwhile\>" transparent fold keepend extend + syn region baanDLLUsage matchgroup=baan3gl start="^\z(\s*\)dllusage\>" end="^\z1enddllusage\>" fold contains=baanNumber,baanConstant,baanType + syn region baanFunUsage matchgroup=baan3gl start="^\z(\s*\)functionusage\>" end="^\z1endfunctionusage\>" fold contains=baanNumber,baanConstant,baanType + syn region baanCondFold matchgroup=baanConditional start="^\z(\s*\)\(case\>\|default\>\)\>" end="^\z1endcase\>" end="^\z1\(case\>\|default\>\)"me=s-1 transparent fold keepend extend + syn keyword baanConditional then else endif while endwhile endfor case endcase + syn match baanConditional "\" +else + syn match baanConditional "\" contains=baansql + syn match baanConditional "\" + syn keyword baanConditional if then else endif while endwhile endfor case endcase default + syn region baanDLLUsage matchgroup=baan3gl start="\" end="\" contains=baanNumber,baanConstant,baanType + syn region baanFunUsage matchgroup=baan3gl start="\" end="\" contains=baanNumber,baanConstant,baanType +endif + +"************************************* SQL ************************************" +syn keyword baansql from selectbind +syn keyword baansql where wherebind whereused exsists +syn keyword baansql between inrange having +syn keyword baansql hint ordered asc desc +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +" references +syn keyword path reference +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +" hints +syn keyword baansql hint and ordered asc desc +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +syn match baansql "\" +" update +syn keyword baansql set + +if exists("baan_fold") && baan_fold && exists("baan_fold_sql") && baan_fold_sql + syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(select\>\|selectdo\>\|selectempty\>\|selecterror\>\|selecteos\>\)" end="^\z1endselect\>" end="^\z1\(selectdo\>\|selectempty\>\|selecterror\>\|selecteos\>\)"me=s-1 transparent fold keepend extend + "syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(update\>\|updateempty\>\|updateerror\>\|selecteos\>\)" end="^\z1endupdate\>" end="^\z1\(updateempty\>\|updateerror\>\|selecteos\>\)"me=s-1 transparent fold keepend extend + syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(update\>\|updateempty\>\|updateerror\>\)" end="^\z1endupdate\>" end="^\z1\(updateempty\>\|updateerror\>\)"me=s-1 transparent fold keepend extend + syn region baanSQLFold matchgroup=baansql start="^\z(\s*\)\(delete\s\+from\>\|deleteempty\>\|deleteerror\>\)" end="^\z1enddelete\>" end="^\z1\(deleteempty\>\|deleteerror\>\)"me=s-1 transparent fold keepend extend +else + syn keyword baansql select selectdo selectempty selecterror selecteos endselect + " delete + syn match baansql "\" + syn keyword baansql deleteempty deleteerror deleteeos enddelete + " update + syn keyword baansql update updateempty updateerror updateeos endupdate +endif + +setlocal foldmethod=syntax +"syn sync fromstart +syn sync minlines=100 + + +"These are bshell functions +if exists("baan_obsolete") +syn match baansql "commit\.transaction()" +syn match baansql "abort\.transaction()" +syn match baansql "db\.columns\.to\.record" +syn match baansql "db\.record\.to\.columns" +syn match baansql "db\.bind" +syn match baansql "db\.change\.order" +syn match baansql "db\.set\.to\.default" +syn match baansql "DB\.RETRY" +syn match baansql "db\.delayed\.lock" +syn match baansql "db\.retry\.point()" +syn match baansql "db\.retry\.hit()" +syn match baansql "db\.return\.dupl" +syn match baansql "db\.skip\.dupl" +syn match baansql "db\.row\.length" +endif + +" Constants +syn keyword baanConstant __function__ +syn keyword baanConstant __object__ +syn keyword baanConstant __file__ +syn keyword baanConstant __line__ + +syn keyword baanConstant ABORT.PROGRAM +syn keyword baanConstant ADD.SET +syn keyword baanConstant ALL_ENUMS_EXCEPT +syn keyword baanConstant APPL.EXCL +syn keyword baanConstant APPL.READ +syn keyword baanConstant APPL.WAIT +syn keyword baanConstant APPL.WIDE +syn keyword baanConstant APPL.WRITE +syn keyword baanConstant ASK.HELPINFO +syn keyword baanConstant AUTG_PRINT +syn keyword baanConstant AUTG_DISPLAY +syn keyword baanConstant AUTG_MODIFY +syn keyword baanConstant AUTG_INSERT +syn keyword baanConstant AUTG_DELETE +syn keyword baanConstant AUTG_ALL +syn keyword baanConstant BMS +syn keyword baanConstant CALCULATOR +syn keyword baanConstant CALENDAR +syn keyword baanConstant CHANGE.ORDER +syn keyword baanConstant CMD.OPTIONS +syn keyword baanConstant CMD.WHATS.THIS +syn keyword baanConstant CMF.MESSAGE +syn keyword baanConstant CMF.TASK +syn keyword baanConstant CMF.APPOINTMENT +syn match baanConstant "\" +"number with dot" +syn match baanNumber "\<\-\=\d\+\.\d*\>" +"number starting with a dot" +syn match baanNumber "\<\-\=\.\d\+\>" + +" String Error does not work correct with vim 6.0 +syn match baanOpenStringError +^[^^"]+ display contained excludenl +syn region baanString start=+"+ skip=+""+ end=+"+ end=+^[^^]+ contains=baanOpenStringError keepend + +" Comment" +syn match baanComment "|$" +syn match baanComment "|.$" +syn match baanComment "|[^ ]" +syn match baanComment "|[^#].*[^ ]" +syn match baanCommenth "^|#lra.*$" +syn match baanCommenth "^|#mdm.*$" +syn match baanCommenth "^|#[0-9][0-9][0-9][0-9][0-9].*$" +syn match baanCommenth "^|#N\=o\=Include.*$" +" Oldcode" +syn match baanUncommented "^|[^*#].*[^ ]" +" DLL section +" SpaceError" +syn match baanSpaces " " +syn match baanSpaceError "\s*$" +syn match baanSpaceError " " + +" Baan error" + +if exists("baan_code_stds") && baan_code_stds +syn match BaanError "^\s*i\..*=\s*\(\k\|\"\)*\s*$" "assignment of an input var" +syn match BaanError "^\s*ref.*\s[ilse]\..*$" " ref variable defined with i, l, e and s" +syn match BaanError "^\s*const.*\s[olse]\..*$" " const variable defined with o, l, e and s" +syn match BaanError "^\s*static.*\s\(i\|g\|l\|o\|io\)\..*$" " static defined without s." +syn match BaanError "^\s*\(domain\s\|long\s\|string\s\).*\so\.\k*[,)]" " ref variable without ref" +syn match BaanError "^\s*\(domain\s\|long\s\|string\s\).*\se\.\k*[,)]" " 'e.' variable without extern" +syn match BaanError "^\s*i\..*,\s*|\s*ref.*$" " +endif + +"**************************** bshell functions ******************************** +syn match baanBshell "\ +" Last Change: 2023 Aug 13 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" The actual syntax is in sh.vim and controlled by buffer-local variables. +unlet! b:is_sh +unlet! b:is_kornshell +let b:is_bash = 1 + +runtime! syntax/sh.vim + +let b:current_syntax = 'bash' + +" vim: ts=8 diff --git a/runtime/syntax/basic.vim b/runtime/syntax/basic.vim new file mode 100644 index 0000000..b6bf23a --- /dev/null +++ b/runtime/syntax/basic.vim @@ -0,0 +1,380 @@ +" Vim syntax file +" Language: BASIC (QuickBASIC 4.5) +" Maintainer: Doug Kearns +" Previous Maintainer: Allan Kelly +" Contributors: Thilo Six +" Last Change: 2022 Jun 22 + +" First version based on Micro$soft QBASIC circa 1989, as documented in +" 'Learn BASIC Now' by Halvorson&Rygmyr. Microsoft Press 1989. +" +" Second version attempts to match Microsoft QuickBASIC 4.5 while keeping FreeBASIC +" (-lang qb) and QB64 (excluding extensions) in mind. -- DJK + +" Prelude {{{1 +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn iskeyword @,48-57,.,!,#,%,&,$ +syn case ignore + +" Whitespace Errors {{{1 +if exists("basic_space_errors") + if !exists("basic_no_trail_space_error") + syn match basicSpaceError display excludenl "\s\+$" + endif + if !exists("basic_no_tab_space_error") + syn match basicSpaceError display " \+\t"me=e-1 + endif +endif + +" Comment Errors {{{1 +if !exists("basic_no_comment_errors") + syn match basicCommentError "\.*" +endif + +" Not Top Cluster {{{1 +syn cluster basicNotTop contains=@basicLineIdentifier,basicDataString,basicDataSeparator,basicTodo + +" Statements {{{1 + +syn cluster basicStatements contains=basicStatement,basicDataStatement,basicMetaRemStatement,basicPutStatement,basicRemStatement + +let s:statements =<< trim EOL " {{{2 + beep + bload + bsave + call + calls + case + chain + chdir + circle + clear + close + cls + color + com + common + const + declare + def + def\s\+seg + defdbl + defint + deflng + defsng + defstr + dim + do + draw + elseif + end + end\s\+\%(def\|function\|if\|select\|sub\|type\) + environ + erase + error + exit\s\+\%(def\|do\|for\|function\|sub\) + field + files + for + function + get + gosub + goto + if + input + ioctl + key + kill + let + line + line\s\+input + locate + lock + loop + lprint + lset + mkdir + name + next + on + on\s\+error + on\s\+uevent + open + open\s\+com + option + out + paint + palette + palette\s\+using + pcopy + pen + pmap + poke + preset + print + pset + randomize + read + redim + reset + restore + resume + return + rmdir + rset + run + select\s\+case + shared + shell + sleep + sound + static + stop + strig + sub + swap + system + troff + tron + type + uevent + unlock + using + view + view\s\+print + wait + wend + while + width + window + write +EOL +" }}} + +for s in s:statements + exe 'syn match basicStatement "\<' .. s .. '\>" contained' +endfor + +syn match basicStatement "\<\%(then\|else\)\>" nextgroup=@basicStatements skipwhite + +" DATA Statement +syn match basicDataSeparator "," contained +syn region basicDataStatement matchgroup=basicStatement start="\" matchgroup=basicStatementSeparator end=":\|$" contained contains=basicDataSeparator,basicDataString,basicNumber,basicFloat,basicString + +if !exists("basic_no_data_fold") + syn region basicMultilineData start="^\s*\.*\n\%(^\s*\\)\@=" end="^\s*\.*\n\%(^\s*\\)\@!" contains=basicDataStatement transparent fold keepend +endif + +" PUT File I/O and Graphics statements - needs special handling for graphics +" action verbs +syn match basicPutAction "\<\%(pset\|preset\|and\|or\|xor\)\>" contained +syn region basicPutStatement matchgroup=basicStatement start="\" matchgroup=basicStatementSeparator end=":\|$" contained contains=basicKeyword,basicPutAction,basicFilenumber + +" Keywords {{{1 +let s:keywords =<< trim EOL " {{{2 + absolute + access + alias + append + as + base + binary + byval + cdecl + com + def + do + for + function + gosub + goto + input + int86old + int86xold + interrupt + interruptx + is + key + len + list + local + lock + lprint + next + off + on + output + pen + play + random + read + resume + screen + seg + shared + signal + static + step + stop + strig + sub + timer + to + until + using + while + write +EOL +" }}} + +for k in s:keywords + exe 'syn match basicKeyword "\<' .. k .. '\>"' +endfor + +" Functions {{{1 +syn keyword basicFunction abs asc atn cdbl chr$ cint clng command$ cos csng +syn keyword basicFunction csrlin cvd cvdmbf cvi cvl cvs cvsmbf environ$ eof +syn keyword basicFunction erdev erdev$ erl err exp fileattr fix fre freefile +syn keyword basicFunction hex$ inkey$ inp input$ instr int ioctl$ left$ lbound +syn keyword basicFunction lcase$ len loc lof log lpos ltrim$ mkd$ mkdmbf$ mki$ +syn keyword basicFunction mkl$ mks$ mksmbf$ oct$ peek pen point pos right$ rnd +syn keyword basicFunction rtrim$ sadd setmem sgn sin space$ spc sqr stick str$ +syn keyword basicFunction strig string$ tab tan ubound ucase$ val valptr +syn keyword basicFunction valseg varptr varptr$ varseg + +" Functions and statements (same name) {{{1 +syn match basicStatement "\<\%(date\$\|mid\$\|play\|screen\|seek\|time\$\|timer\)\>" contained +syn match basicFunction "\<\%(date\$\|mid\$\|play\|screen\|seek\|time\$\|timer\)\>" + +" Types {{{1 +syn keyword basicType integer long single double string any + +" Strings {{{1 + +" Unquoted DATA strings - anything except [:,] and leading or trailing whitespace +" Needs lower priority than numbers +syn match basicDataString "[^[:space:],:]\+\%(\s\+[^[:space:],:]\+\)*" contained + +syn region basicString start=+"+ end=+"+ oneline + +" Booleans {{{1 +if exists("basic_booleans") + syn keyword basicBoolean true false +endif + +" Numbers {{{1 + +" Integers +syn match basicNumber "-\=&o\=\o\+[%&]\=\>" +syn match basicNumber "-\=&h\x\+[%&]\=\>" +syn match basicNumber "-\=\<\d\+[%&]\=\>" + +" Floats +syn match basicFloat "-\=\<\d\+\.\=\d*\%(\%([ed][+-]\=\d*\)\|[!#]\)\=\>" +syn match basicFloat "-\=\<\.\d\+\%(\%([ed][+-]\=\d*\)\|[!#]\)\=\>" + +" Statement anchors {{{1 +syn match basicLineStart "^" nextgroup=@basicStatements,@basicLineIdentifier skipwhite +syn match basicStatementSeparator ":" nextgroup=@basicStatements skipwhite + +" Line numbers and labels {{{1 + +" QuickBASIC limits these to 65,529 and 40 chars respectively +syn match basicLineNumber "\d\+" nextgroup=@basicStatements skipwhite contained +syn match basicLineLabel "\a[[:alnum:]]*\ze\s*:" nextgroup=@basicStatements skipwhite contained + +syn cluster basicLineIdentifier contains=basicLineNumber,basicLineLabel + +" Line Continuation {{{1 +syn match basicLineContinuation "\s*\zs_\ze\s*$" + +" Type suffixes {{{1 +if exists("basic_type_suffixes") + syn match basicTypeSuffix "\a[[:alnum:].]*\zs[$%&!#]" +endif + +" File numbers {{{1 +syn match basicFilenumber "#\d\+" +syn match basicFilenumber "#\a[[:alnum:].]*[%&!#]\=" + +" Operators {{{1 +if exists("basic_operators") + syn match basicArithmeticOperator "[-+*/\\^]" + syn match basicRelationalOperator "<>\|<=\|>=\|[><=]" +endif +syn match basicLogicalOperator "\<\%(not\|and\|or\|xor\|eqv\|imp\)\>" +syn match basicArithmeticOperator "\" + +" Metacommands {{{1 +" Note: No trailing word boundaries. Text may be freely mixed however there +" must be only leading whitespace prior to the first metacommand +syn match basicMetacommand "$INCLUDE\s*:\s*'[^']\+'" contained containedin=@basicMetaComments +syn match basicMetacommand "$\%(DYNAMIC\|STATIC\)" contained containedin=@basicMetaComments + +" Comments {{{1 +syn keyword basicTodo TODO FIXME XXX NOTE contained + +syn region basicRemStatement matchgroup=basicStatement start="REM\>" end="$" contains=basicTodo,@Spell contained +syn region basicComment start="'" end="$" contains=basicTodo,@Spell + +if !exists("basic_no_comment_fold") + syn region basicMultilineComment start="^\s*'.*\n\%(\s*'\)\@=" end="^\s*'.*\n\%(\s*'\)\@!" contains=@basicComments transparent fold keepend +endif + +" Metacommands +syn region basicMetaRemStatement matchgroup=basicStatement start="REM\>\s*\$\@=" end="$" contains=basicTodo contained +syn region basicMetaComment start="'\s*\$\@=" end="$" contains=basicTodo + +syn cluster basicMetaComments contains=basicMetaComment,basicMetaRemStatement +syn cluster basicComments contains=basicComment,basicMetaComment + +"syn sync ccomment basicComment + +" Default Highlighting {{{1 +hi def link basicArithmeticOperator basicOperator +hi def link basicBoolean Boolean +hi def link basicComment Comment +hi def link basicCommentError Error +hi def link basicDataString basicString +hi def link basicFilenumber basicTypeSuffix " TODO: better group +hi def link basicFloat Float +hi def link basicFunction Function +hi def link basicKeyword Keyword +hi def link basicLineIdentifier LineNr +hi def link basicLineContinuation Special +hi def link basicLineLabel basicLineIdentifier +hi def link basicLineNumber basicLineIdentifier +hi def link basicLogicalOperator basicOperator +hi def link basicMetacommand SpecialComment +hi def link basicMetaComment Comment +hi def link basicMetaRemStatement Comment +hi def link basicNumber Number +hi def link basicOperator Operator +hi def link basicPutAction Keyword +hi def link basicRelationalOperator basicOperator +hi def link basicRemStatement Comment +hi def link basicSpaceError Error +hi def link basicStatementSeparator Special +hi def link basicStatement Statement +hi def link basicString String +hi def link basicTodo Todo +hi def link basicType Type +hi def link basicTypeSuffix Special +if exists("basic_legacy_syntax_groups") + hi def link basicTypeSpecifier Type + hi def link basicTypeSuffix basicTypeSpecifier +endif + +" Postscript {{{1 +let b:current_syntax = "basic" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/bc.vim b/runtime/syntax/bc.vim new file mode 100644 index 0000000..4cd9d63 --- /dev/null +++ b/runtime/syntax/bc.vim @@ -0,0 +1,66 @@ +" Vim syntax file +" Language: bc - An arbitrary precision calculator language +" Maintainer: Vladimir Scholtz +" Last change: 2012 Jun 01 +" (Dominique Pelle added @Spell) +" Available on: www.gjh.sk/~vlado/bc.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" Keywords +syn keyword bcKeyword if else while for break continue return limits halt quit +syn keyword bcKeyword define +syn keyword bcKeyword length read sqrt print + +" Variable +syn keyword bcType auto + +" Constant +syn keyword bcConstant scale ibase obase last +syn keyword bcConstant BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX BC_STRING_MAX +syn keyword bcConstant BC_ENV_ARGS BC_LINE_LENGTH + +" Any other stuff +syn match bcIdentifier "[a-z_][a-z0-9_]*" + +" String + syn match bcString "\"[^"]*\"" contains=@Spell + +" Number +syn match bcNumber "[0-9]\+" + +" Comment +syn match bcComment "\#.*" contains=@Spell +syn region bcComment start="/\*" end="\*/" contains=@Spell + +" Parent () +syn cluster bcAll contains=bcList,bcIdentifier,bcNumber,bcKeyword,bcType,bcConstant,bcString,bcParentError +syn region bcList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@bcAll +syn region bcList matchgroup=Delimiter start="\[" skip="|.\{-}|" matchgroup=Delimiter end="\]" contains=@bcAll +syn match bcParenError "]" +syn match bcParenError ")" + + + +syn case match + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link bcKeyword Statement +hi def link bcType Type +hi def link bcConstant Constant +hi def link bcNumber Number +hi def link bcComment Comment +hi def link bcString String +hi def link bcSpecialChar SpecialChar +hi def link bcParenError Error + + +let b:current_syntax = "bc" +" vim: ts=8 diff --git a/runtime/syntax/bdf.vim b/runtime/syntax/bdf.vim new file mode 100644 index 0000000..cc1a337 --- /dev/null +++ b/runtime/syntax/bdf.vim @@ -0,0 +1,97 @@ +" Vim syntax file +" Language: BDF font definition +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn region bdfFontDefinition transparent matchgroup=bdfKeyword + \ start='^STARTFONT\>' end='^ENDFONT\>' + \ contains=bdfComment,bdfFont,bdfSize, + \ bdfBoundingBox,bdfProperties,bdfChars,bdfChar + +syn match bdfNumber contained display + \ '\<\%(\x\+\|[+-]\=\d\+\%(\.\d\+\)*\)' + +syn keyword bdfTodo contained FIXME TODO XXX NOTE + +syn region bdfComment contained start='^COMMENT\>' end='$' + \ contains=bdfTodo,@Spell + +syn region bdfFont contained matchgroup=bdfKeyword + \ start='^FONT\>' end='$' + +syn region bdfSize contained transparent matchgroup=bdfKeyword + \ start='^SIZE\>' end='$' contains=bdfNumber + +syn region bdfBoundingBox contained transparent matchgroup=bdfKeyword + \ start='^FONTBOUNDINGBOX' end='$' + \ contains=bdfNumber + +syn region bdfProperties contained transparent matchgroup=bdfKeyword + \ start='^STARTPROPERTIES' end='^ENDPROPERTIES' + \ contains=bdfNumber,bdfString,bdfProperty, + \ bdfXProperty + +syn keyword bdfProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR +syn match bdfProperty contained '^\S\+' + +syn keyword bdfXProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR + \ FONTNAME_REGISTRY FOUNDRY FAMILY_NAME + \ WEIGHT_NAME SLANT SETWIDTH_NAME PIXEL_SIZE + \ POINT_SIZE RESOLUTION_X RESOLUTION_Y SPACING + \ CHARSET_REGISTRY CHARSET_ENCODING COPYRIGHT + \ ADD_STYLE_NAME WEIGHT RESOLUTION X_HEIGHT + \ QUAD_WIDTH FONT AVERAGE_WIDTH + +syn region bdfString contained start=+"+ skip=+""+ end=+"+ + +syn region bdfChars contained display transparent + \ matchgroup=bdfKeyword start='^CHARS' end='$' + \ contains=bdfNumber + +syn region bdfChar transparent matchgroup=bdfKeyword + \ start='^STARTCHAR' end='^ENDCHAR' + \ contains=bdfEncoding,bdfWidth,bdfAttributes, + \ bdfBitmap + +syn region bdfEncoding contained transparent matchgroup=bdfKeyword + \ start='^ENCODING' end='$' contains=bdfNumber + +syn region bdfWidth contained transparent matchgroup=bdfKeyword + \ start='^SWIDTH\|DWIDTH\|BBX' end='$' + \ contains=bdfNumber + +syn region bdfAttributes contained transparent matchgroup=bdfKeyword + \ start='^ATTRIBUTES' end='$' + +syn keyword bdfBitmap contained BITMAP + +if exists("bdf_minlines") + let b:bdf_minlines = bdf_minlines +else + let b:bdf_minlines = 30 +endif +exec "syn sync ccomment bdfChar minlines=" . b:bdf_minlines + + +hi def link bdfKeyword Keyword +hi def link bdfNumber Number +hi def link bdfTodo Todo +hi def link bdfComment Comment +hi def link bdfFont String +hi def link bdfProperty Identifier +hi def link bdfXProperty Identifier +hi def link bdfString String +hi def link bdfChars Keyword +hi def link bdfBitmap Keyword + +let b:current_syntax = "bdf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/bib.vim b/runtime/syntax/bib.vim new file mode 100644 index 0000000..ac8dcda --- /dev/null +++ b/runtime/syntax/bib.vim @@ -0,0 +1,121 @@ +" Vim syntax file +" Language: BibTeX (bibliographic database format for (La)TeX) +" Maintainer: Bernd Feige +" Filenames: *.bib +" Last Change: 2017 Sep 29 + +" Thanks to those who pointed out problems with this file or supplied fixes! + +" Initialization +" ============== +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Ignore case +syn case ignore + +" Keywords +" ======== +syn keyword bibType contained article book booklet conference inbook +syn keyword bibType contained incollection inproceedings manual +syn keyword bibType contained mastersthesis misc phdthesis +syn keyword bibType contained proceedings techreport unpublished +syn keyword bibType contained string preamble + +syn keyword bibEntryKw contained address annote author booktitle chapter +syn keyword bibEntryKw contained crossref edition editor howpublished +syn keyword bibEntryKw contained institution journal key month note +syn keyword bibEntryKw contained number organization pages publisher +syn keyword bibEntryKw contained school series title type volume year + +" biblatex keywords, cf. http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf +syn keyword bibType contained mvbook bookinbook suppbook collection mvcollection suppcollection +syn keyword bibType contained online patent periodical suppperiodical mvproceedings reference +syn keyword bibType contained mvreference inreference report set thesis xdata customa customb +syn keyword bibType contained customc customd custome customf electronic www artwork audio bibnote +syn keyword bibType contained commentary image jurisdiction legislation legal letter movie music +syn keyword bibType contained performance review software standard video + +syn keyword bibEntryKw contained abstract isbn issn keywords url +syn keyword bibEntryKw contained addendum afterwordannotation annotation annotator authortype +syn keyword bibEntryKw contained bookauthor bookpagination booksubtitle booktitleaddon +syn keyword bibEntryKw contained commentator date doi editora editorb editorc editortype +syn keyword bibEntryKw contained editoratype editorbtype editorctype eid entrysubtype +syn keyword bibEntryKw contained eprint eprintclass eprinttype eventdate eventtitle +syn keyword bibEntryKw contained eventtitleaddon file foreword holder indextitle +syn keyword bibEntryKw contained introduction isan ismn isrn issue issuesubtitle +syn keyword bibEntryKw contained issuetitle iswc journalsubtitle journaltitle label +syn keyword bibEntryKw contained language library location mainsubtitle maintitle +syn keyword bibEntryKw contained maintitleaddon nameaddon origdate origlanguage +syn keyword bibEntryKw contained origlocation origpublisher origtitle pagetotal +syn keyword bibEntryKw contained pagination part pubstate reprinttitle shortauthor +syn keyword bibEntryKw contained shorteditor shorthand shorthandintro shortjournal +syn keyword bibEntryKw contained shortseries shorttitle subtitle titleaddon translator +syn keyword bibEntryKw contained urldate venue version volumes entryset execute gender +syn keyword bibEntryKw contained langid langidopts ids indexsorttitle options presort +syn keyword bibEntryKw contained related relatedoptions relatedtype relatedstring +syn keyword bibEntryKw contained sortkey sortname sortshorthand sorttitle sortyear xdata +syn keyword bibEntryKw contained xref namea nameb namec nameatype namebtype namectype +syn keyword bibEntryKw contained lista listb listc listd liste listf usera userb userc +syn keyword bibEntryKw contained userd usere userf verba verbb verbc archiveprefix pdf +syn keyword bibEntryKw contained primaryclass + +" Non-standard: +" AMS mref http://www.ams.org/mref +syn keyword bibNSEntryKw contained mrclass mrnumber mrreviewer fjournal coden + +" Clusters +" ======== +syn cluster bibVarContents contains=bibUnescapedSpecial,bibBrace,bibParen,bibMath +" This cluster is empty but things can be added externally: +"syn cluster bibCommentContents + +" Matches +" ======= +syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1 +syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField +syn match bibVariable contained /[^{}," \t=]/ +syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry +syn region bibMath contained start=/\(\\\)\@ +" URL: http://www.mehnle.net/source/odds+ends/vim/syntax/ +" Last Change: Thu 2011-07-16 20:42:00 UTC +" +" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with +" heavy modifications. +" +" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +" Directives +syn region zoneRRecord start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown + +syn match zoneDirective /^\$ORIGIN\s\+/ nextgroup=zoneOrigin,zoneUnknown +syn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneTTL,zoneUnknown +syn match zoneDirective /^\$INCLUDE\s\+/ nextgroup=zoneText,zoneUnknown +syn match zoneDirective /^\$GENERATE\s/ + +syn match zoneUnknown contained /\S\+/ + +syn match zoneOwnerName contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite +syn match zoneOrigin contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/ +syn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/ + +syn match zoneSpecial contained /^[@*.]\s/ +syn match zoneTTL contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite +syn keyword zoneClass contained IN CHAOS CH HS HESIOD nextgroup=zoneRRType,zoneTTL skipwhite +syn keyword zoneRRType contained A AAAA APL CAA CERT CNAME DNAME DNSKEY DS HINFO LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM OPENPGPKEY PTR RP RRSIG SMIMEA SOA SPF SRV SSHFP TLSA TXT nextgroup=zoneRData skipwhite +syn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown + +syn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/ + +" Plain IPv6 address IPv6-embedded-IPv4 address +" 1111:2:3:4:5:6:7:8 1111:2:3:4:5:6:127.0.0.1 +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" ::[...:]8 ::[...:]127.0.0.1 +syn match zoneIP6Addr contained /\s\@<=::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\|\(\x\{1,4}:\)\{,5}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" 1111::[...:]8 1111::[...:]127.0.0.1 +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\|\(\x\{1,4}:\)\{,4}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" 1111:2::[...:]8 1111:2::[...:]127.0.0.1 +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\|\(\x\{1,4}:\)\{,3}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" 1111:2:3::[...:]8 1111:2:3::[...:]127.0.0.1 +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\|\(\x\{1,4}:\)\{,2}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" 1111:2:3:4::[...:]8 1111:2:3:4::[...:]127.0.0.1 +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\|\(\x\{1,4}:\)\{,1}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" 1111:2:3:4:5::[...:]8 1111:2:3:4:5::127.0.0.1 +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/ +" 1111:2:3:4:5:6::8 - +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/ +" 1111[:...]:: - +syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/ + +syn match zoneText contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/ +syn match zoneNumber contained /\<[0-9]\+\(\s\|;\|$\)\@=/ +syn match zoneSerial contained /\<[0-9]\{1,10}\(\s\|;\|$\)\@=/ + +syn match zoneErrParen /)/ +syn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneTTL,zoneNumber,zoneComment +syn match zoneComment /;.*/ + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link zoneDirective Macro + +hi def link zoneUnknown Error + +hi def link zoneOrigin Statement +hi def link zoneOwnerName Statement +hi def link zoneDomain Identifier + +hi def link zoneSpecial Special +hi def link zoneTTL Constant +hi def link zoneClass Include +hi def link zoneRRType Type + +hi def link zoneIPAddr Number +hi def link zoneIP6Addr Number +hi def link zoneText String +hi def link zoneNumber Number +hi def link zoneSerial Special + +hi def link zoneErrParen Error +hi def link zoneComment Comment + + +let b:current_syntax = "bindzone" + +" vim:sts=2 sw=2 diff --git a/runtime/syntax/bitbake.vim b/runtime/syntax/bitbake.vim new file mode 100644 index 0000000..30f3447 --- /dev/null +++ b/runtime/syntax/bitbake.vim @@ -0,0 +1,126 @@ +" Vim syntax file +" Language: BitBake bb/bbclasses/inc +" Author: Chris Larson +" Ricardo Salveti +" Copyright: Copyright (C) 2004 Chris Larson +" Copyright (C) 2008 Ricardo Salveti +" +" This file is licensed under the MIT license, see COPYING.MIT in +" this source distribution for the terms. +" +" Syntax highlighting for bb, bbclasses and inc files. +" +" It's an entirely new type, just has specific syntax in shell and python code + +if v:version < 600 + finish +endif +if exists("b:current_syntax") + finish +endif + +syn include @python syntax/python.vim +unlet! b:current_syntax + +" BitBake syntax + +" Matching case +syn case match + +" Indicates the error when nothing is matched +syn match bbUnmatched "." + +" Comments +syn cluster bbCommentGroup contains=bbTodo,@Spell +syn keyword bbTodo COMBAK FIXME TODO XXX contained +syn match bbComment "#.*$" contains=@bbCommentGroup + +" String helpers +syn match bbQuote +['"]+ contained +syn match bbDelimiter "[(){}=]" contained +syn match bbArrayBrackets "[\[\]]" contained + +" BitBake strings +syn match bbContinue "\\$" +syn region bbString matchgroup=bbQuote start=+"+ skip=+\\$+ end=+"+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell +syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ end=+'+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell + +" Vars definition +syn match bbExport "^export" nextgroup=bbIdentifier skipwhite +syn keyword bbExportFlag export contained nextgroup=bbIdentifier skipwhite +syn match bbIdentifier "[a-zA-Z0-9\-_\.\/\+]\+" display contained +syn match bbVarDeref "${[a-zA-Z0-9\-_:\.\/\+]\+}" contained +syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)" contained nextgroup=bbVarValue +syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+][${}a-zA-Z0-9\-_:\.\/\+]*\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbOverrideOperator,bbVarDeref nextgroup=bbVarEq +syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue +syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python + +" Vars metadata flags +syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.+]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag +syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(:=\|=\|.=\|=.|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq + +" Includes and requires +syn keyword bbInclude inherit include require contained +syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref +syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest + +" Add taks and similar +syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained +syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement +syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest + +" OE Important Functions +syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained + +" Generic Functions +syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions + +syn keyword bbOverrideOperator append prepend remove contained + +" BitBake shell metadata +syn include @shell syntax/sh.vim +unlet! b:current_syntax + +syn keyword bbShFakeRootFlag fakeroot contained +syn match bbShFuncDef "^\(fakeroot\s*\)\?\([\.0-9A-Za-z_:${}\-\.]\+\)\(python\)\@ +" Last change: 2011 Dec 28 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +" Blank instructions +syn match blankInstruction "{[:;,\.+\-*$#@/\\`'"!\|><{}\[\]()?xspo\^&\~=_%]}" + +" Common strings +syn match blankString "\~[^}]" + +" Numbers +syn match blankNumber "\[[0-9]\+\]" + +syn case match + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link blankInstruction Statement +hi def link blankNumber Number +hi def link blankString String + + +let b:current_syntax = "blank" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/bsdl.vim b/runtime/syntax/bsdl.vim new file mode 100644 index 0000000..75c6955 --- /dev/null +++ b/runtime/syntax/bsdl.vim @@ -0,0 +1,17 @@ +" Vim syntax file +" Language: Boundary Scan Description Language (BSDL) +" Maintainer: Daniel Kho +" Last Changed: 2020 Mar 19 by Daniel Kho + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read in VHDL syntax files +runtime! syntax/vhdl.vim +unlet b:current_syntax + +let b:current_syntax = "bsdl" + +" vim: ts=8 diff --git a/runtime/syntax/bst.vim b/runtime/syntax/bst.vim new file mode 100644 index 0000000..5ebef16 --- /dev/null +++ b/runtime/syntax/bst.vim @@ -0,0 +1,70 @@ +" Vim syntax file +" Language: BibTeX Bibliography Style +" Maintainer: Tim Pope +" Filenames: *.bst +" $Id: bst.vim,v 1.2 2007/05/05 18:24:42 vimboss Exp $ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=48-57,#,$,',.,A-Z,a-z + +syn case ignore + +syn match bstString +"[^"]*\%("\|$\)+ contains=bstField,bstType,bstError +" Highlight the last character of an unclosed string, but only when the cursor +" is not beyond it (i.e., it is still being edited). Imperfect. +syn match bstError '[^"]\%#\@!$' contained + +syn match bstNumber "#-\=\d\+\>" +syn keyword bstNumber entry.max$ global.max$ +syn match bstComment "%.*" + +syn keyword bstCommand ENTRY FUNCTION INTEGERS MACRO STRINGS +syn keyword bstCommand READ EXECUTE ITERATE REVERSE SORT +syn match bstBuiltIn "\s[-<>=+*]\|\s:=" +syn keyword bstBuiltIn add.period$ +syn keyword bstBuiltIn call.type$ change.case$ chr.to.int$ cite$ +syn keyword bstBuiltIn duplicate$ empty$ format.name$ +syn keyword bstBuiltIn if$ int.to.chr$ int.to.str$ +syn keyword bstBuiltIn missing$ +syn keyword bstBuiltIn newline$ num.names$ +syn keyword bstBuiltIn pop$ preamble$ purify$ quote$ +syn keyword bstBuiltIn skip$ stack$ substring$ swap$ +syn keyword bstBuiltIn text.length$ text.prefix$ top$ type$ +syn keyword bstBuiltIn warning$ while$ width$ write$ +syn match bstIdentifier "'\k*" +syn keyword bstType article book booklet conference +syn keyword bstType inbook incollection inproceedings +syn keyword bstType manual mastersthesis misc +syn keyword bstType phdthesis proceedings +syn keyword bstType techreport unpublished +syn keyword bstField abbr address annote author +syn keyword bstField booktitle chapter crossref comment +syn keyword bstField edition editor +syn keyword bstField howpublished institution journal key month +syn keyword bstField note number +syn keyword bstField organization +syn keyword bstField pages publisher +syn keyword bstField school series +syn keyword bstField title type +syn keyword bstField volume year + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link bstComment Comment +hi def link bstString String +hi def link bstCommand PreProc +hi def link bstBuiltIn Statement +hi def link bstField Special +hi def link bstNumber Number +hi def link bstType Type +hi def link bstIdentifier Identifier +hi def link bstError Error + +let b:current_syntax = "bst" + +" vim:set ft=vim sts=4 sw=4: diff --git a/runtime/syntax/btm.vim b/runtime/syntax/btm.vim new file mode 100644 index 0000000..4f9253f --- /dev/null +++ b/runtime/syntax/btm.vim @@ -0,0 +1,216 @@ +" Vim syntax file +" Language: 4Dos batch file +" Maintainer: John Leo Spetz +" Last Change: 2001 May 09 + +"//Issues to resolve: +"//- Boolean operators surrounded by period are recognized but the +"// periods are not highlighted. The only way to do that would +"// be separate synmatches for each possibility otherwise a more +"// general \.\i\+\. will highlight anything delimited by dots. +"//- After unary operators like "defined" can assume token type. +"// Should there be more of these? + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn keyword btmStatement call off +syn keyword btmConditional if iff endiff then else elseiff not errorlevel +syn keyword btmConditional gt lt eq ne ge le +syn match btmConditional transparent "\.\i\+\." contains=btmDotBoolOp +syn keyword btmDotBoolOp contained and or xor +syn match btmConditional "==" +syn match btmConditional "!=" +syn keyword btmConditional defined errorlevel exist isalias +syn keyword btmConditional isdir direxist isinternal islabel +syn keyword btmRepeat for in do enddo + +syn keyword btmTodo contained TODO + +" String +syn cluster btmVars contains=btmVariable,btmArgument,btmBIFMatch +syn region btmString start=+"+ end=+"+ contains=@btmVars +syn match btmNumber "\<\d\+\>" + +"syn match btmIdentifier "\<\h\w*\>" + +" If you don't like tabs +"syn match btmShowTab "\t" +"syn match btmShowTabc "\t" +"syn match btmComment "^\ *rem.*$" contains=btmTodo,btmShowTabc + +" Some people use this as a comment line +" In fact this is a Label +"syn match btmComment "^\ *:\ \+.*$" contains=btmTodo + +syn match btmComment "^\ *rem.*$" contains=btmTodo +syn match btmComment "^\ *::.*$" contains=btmTodo + +syn match btmLabelMark "^\ *:[0-9a-zA-Z_\-]\+\>" +syn match btmLabelMark "goto [0-9a-zA-Z_\-]\+\>"lc=5 +syn match btmLabelMark "gosub [0-9a-zA-Z_\-]\+\>"lc=6 + +" syn match btmCmdDivider ">[>&][>&]\=" +syn match btmCmdDivider ">[>&]*" +syn match btmCmdDivider ">>&>" +syn match btmCmdDivider "|&\=" +syn match btmCmdDivider "%+" +syn match btmCmdDivider "\^" + +syn region btmEcho start="echo" skip="echo" matchgroup=btmCmdDivider end="%+" end="$" end="|&\=" end="\^" end=">[>&]*" contains=@btmEchos oneline +syn cluster btmEchos contains=@btmVars,btmEchoCommand,btmEchoParam +syn keyword btmEchoCommand contained echo echoerr echos echoserr +syn keyword btmEchoParam contained on off + +" this is also a valid Label. I don't use it. +"syn match btmLabelMark "^\ *:\ \+[0-9a-zA-Z_\-]\+\>" + +" //Environment variable can be expanded using notation %var in 4DOS +syn match btmVariable "%[0-9a-z_\-]\+" contains=@btmSpecialVars +" //Environment variable can be expanded using notation %var% +syn match btmVariable "%[0-9a-z_\-]*%" contains=@btmSpecialVars +" //The following are special variable in 4DOS +syn match btmVariable "%[=#]" contains=@btmSpecialVars +syn match btmVariable "%??\=" contains=@btmSpecialVars +" //Environment variable can be expanded using notation %[var] in 4DOS +syn match btmVariable "%\[[0-9a-z_\-]*\]" +" //After some keywords next word should be an environment variable +syn match btmVariable "defined\s\i\+"lc=8 +syn match btmVariable "set\s\i\+"lc=4 +" //Parameters to batchfiles take the format % +syn match btmArgument "%\d\>" +" //4DOS allows format %& meaning batchfile parameters digit and up +syn match btmArgument "%\d\>&" +" //Variable used by FOR loops sometimes use %% in batchfiles +syn match btmArgument "%%\a\>" + +" //Show 4DOS built-in functions specially +syn match btmBIFMatch "%@\w\+\["he=e-1 contains=btmBuiltInFunc +syn keyword btmBuiltInFunc contained alias ascii attrib cdrom +syn keyword btmBuiltInFunc contained char clip comma convert +syn keyword btmBuiltInFunc contained date day dec descript +syn keyword btmBuiltInFunc contained device diskfree disktotal +syn keyword btmBuiltInFunc contained diskused dosmem dow dowi +syn keyword btmBuiltInFunc contained doy ems eval exec execstr +syn keyword btmBuiltInFunc contained expand ext extended +syn keyword btmBuiltInFunc contained fileage fileclose filedate +syn keyword btmBuiltInFunc contained filename fileopen fileread +syn keyword btmBuiltInFunc contained files fileseek fileseekl +syn keyword btmBuiltInFunc contained filesize filetime filewrite +syn keyword btmBuiltInFunc contained filewriteb findclose +syn keyword btmBuiltInFunc contained findfirst findnext format +syn keyword btmBuiltInFunc contained full if inc index insert +syn keyword btmBuiltInFunc contained instr int label left len +syn keyword btmBuiltInFunc contained lfn line lines lower lpt +syn keyword btmBuiltInFunc contained makeage makedate maketime +syn keyword btmBuiltInFunc contained master month name numeric +syn keyword btmBuiltInFunc contained path random readscr ready +syn keyword btmBuiltInFunc contained remote removable repeat +syn keyword btmBuiltInFunc contained replace right search +syn keyword btmBuiltInFunc contained select sfn strip substr +syn keyword btmBuiltInFunc contained time timer trim truename +syn keyword btmBuiltInFunc contained unique upper wild word +syn keyword btmBuiltInFunc contained words xms year + +syn cluster btmSpecialVars contains=btmBuiltInVar,btmSpecialVar + +" //Show specialized variables specially +" syn match btmSpecialVar contained "+" +syn match btmSpecialVar contained "=" +syn match btmSpecialVar contained "#" +syn match btmSpecialVar contained "??\=" +syn keyword btmSpecialVar contained cmdline colordir comspec +syn keyword btmSpecialVar contained copycmd dircmd temp temp4dos +syn keyword btmSpecialVar contained filecompletion path prompt + +" //Show 4DOS built-in variables specially specially +syn keyword btmBuiltInVar contained _4ver _alias _ansi +syn keyword btmBuiltInVar contained _apbatt _aplife _apmac _batch +syn keyword btmBuiltInVar contained _batchline _batchname _bg +syn keyword btmBuiltInVar contained _boot _ci _cmdproc _co +syn keyword btmBuiltInVar contained _codepage _column _columns +syn keyword btmBuiltInVar contained _country _cpu _cwd _cwds _cwp +syn keyword btmBuiltInVar contained _cwps _date _day _disk _dname +syn keyword btmBuiltInVar contained _dos _dosver _dow _dowi _doy +syn keyword btmBuiltInVar contained _dpmi _dv _env _fg _hlogfile +syn keyword btmBuiltInVar contained _hour _kbhit _kstack _lastdisk +syn keyword btmBuiltInVar contained _logfile _minute _monitor +syn keyword btmBuiltInVar contained _month _mouse _ndp _row _rows +syn keyword btmBuiltInVar contained _second _shell _swapping +syn keyword btmBuiltInVar contained _syserr _time _transient +syn keyword btmBuiltInVar contained _video _win _wintitle _year + +" //Commands in 4DOS and/or DOS +syn match btmCommand "\s?" +syn match btmCommand "^?" +syn keyword btmCommand alias append assign attrib +syn keyword btmCommand backup beep break cancel case +syn keyword btmCommand cd cdd cdpath chcp chdir +syn keyword btmCommand chkdsk cls color comp copy +syn keyword btmCommand ctty date debug default defrag +syn keyword btmCommand del delay describe dir +syn keyword btmCommand dirhistory dirs diskcomp +syn keyword btmCommand diskcopy doskey dosshell +syn keyword btmCommand drawbox drawhline drawvline +"syn keyword btmCommand echo echoerr echos echoserr +syn keyword btmCommand edit edlin emm386 endlocal +syn keyword btmCommand endswitch erase eset except +syn keyword btmCommand exe2bin exit expand fastopen +syn keyword btmCommand fc fdisk ffind find format +syn keyword btmCommand free global gosub goto +syn keyword btmCommand graftabl graphics help history +syn keyword btmCommand inkey input join keyb keybd +syn keyword btmCommand keystack label lh list loadbtm +syn keyword btmCommand loadhigh lock log md mem +syn keyword btmCommand memory mirror mkdir mode more +syn keyword btmCommand move nlsfunc on option path +syn keyword btmCommand pause popd print prompt pushd +syn keyword btmCommand quit rd reboot recover ren +syn keyword btmCommand rename replace restore return +syn keyword btmCommand rmdir scandisk screen scrput +syn keyword btmCommand select set setdos setlocal +syn keyword btmCommand setver share shift sort subst +syn keyword btmCommand swapping switch sys tee text +syn keyword btmCommand time timer touch tree truename +syn keyword btmCommand type unalias undelete unformat +syn keyword btmCommand unlock unset ver verify vol +syn keyword btmCommand vscrput y + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link btmLabel Special +hi def link btmLabelMark Special +hi def link btmCmdDivider Special +hi def link btmConditional btmStatement +hi def link btmDotBoolOp btmStatement +hi def link btmRepeat btmStatement +hi def link btmEchoCommand btmStatement +hi def link btmEchoParam btmStatement +hi def link btmStatement Statement +hi def link btmTodo Todo +hi def link btmString String +hi def link btmNumber Number +hi def link btmComment Comment +hi def link btmArgument Identifier +hi def link btmVariable Identifier +hi def link btmEcho String +hi def link btmBIFMatch btmStatement +hi def link btmBuiltInFunc btmStatement +hi def link btmBuiltInVar btmStatement +hi def link btmSpecialVar btmStatement +hi def link btmCommand btmStatement + +"optional highlighting +"hi def link btmShowTab Error +"hi def link btmShowTabc Error +"hi def link btmIdentifier Identifier + + +let b:current_syntax = "btm" + +" vim: ts=8 diff --git a/runtime/syntax/bzl.vim b/runtime/syntax/bzl.vim new file mode 100644 index 0000000..b0ee945 --- /dev/null +++ b/runtime/syntax/bzl.vim @@ -0,0 +1,16 @@ +" Vim syntax file +" Language: Bazel (http://bazel.io) +" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl) +" Last Change: 2015 Aug 11 + +if exists('b:current_syntax') + finish +endif + + +runtime! syntax/python.vim + +let b:current_syntax = 'bzl' + +syn region bzlRule start='^\w\+($' end='^)\n*' transparent fold +syn region bzlList start='\[' end='\]' transparent fold diff --git a/runtime/syntax/bzr.vim b/runtime/syntax/bzr.vim new file mode 100644 index 0000000..43178b8 --- /dev/null +++ b/runtime/syntax/bzr.vim @@ -0,0 +1,50 @@ +" Vim syntax file +" Language: Bazaar (bzr) commit file +" Maintainer: Dmitry Vasiliev +" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/bzr.vim +" Last Change: 2012-02-11 +" Filenames: bzr_log.* +" Version: 1.2.2 +" +" Thanks: +" +" Gioele Barabucci +" for idea of diff highlighting + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +if exists("bzr_highlight_diff") + syn include @Diff syntax/diff.vim +endif + +syn match bzrRemoved "^removed:$" contained +syn match bzrAdded "^added:$" contained +syn match bzrRenamed "^renamed:$" contained +syn match bzrModified "^modified:$" contained +syn match bzrUnchanged "^unchanged:$" contained +syn match bzrUnknown "^unknown:$" contained +syn cluster Statuses contains=bzrRemoved,bzrAdded,bzrRenamed,bzrModified,bzrUnchanged,bzrUnknown +if exists("bzr_highlight_diff") + syn cluster Statuses add=@Diff +endif +syn region bzrRegion start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=@NoSpell,@Statuses + +" Synchronization. +syn sync clear +syn sync match bzrSync grouphere bzrRegion "^-\{14} This line and the following will be ignored -\{14}$"me=s-1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet. + +hi def link bzrRemoved Constant +hi def link bzrAdded Identifier +hi def link bzrModified Special +hi def link bzrRenamed Special +hi def link bzrUnchanged Special +hi def link bzrUnknown Special + + +let b:current_syntax = "bzr" diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim new file mode 100644 index 0000000..5ed8fdc --- /dev/null +++ b/runtime/syntax/c.vim @@ -0,0 +1,523 @@ +" Vim syntax file +" Language: C +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +let s:ft = matchstr(&ft, '^\%([^.]\)\+') + +" check if this was included from cpp.vim +let s:in_cpp_family = exists("b:filetype_in_cpp_family") + +" Optional embedded Autodoc parsing +" To enable it add: let g:c_autodoc = 1 +" to your .vimrc +if exists("c_autodoc") + syn include @cAutodoc :p:h/autodoc.vim + unlet b:current_syntax +endif + +" A bunch of useful C keywords +syn keyword cStatement goto break return continue asm +syn keyword cLabel case default +syn keyword cConditional if else switch +syn keyword cRepeat while for do + +syn keyword cTodo contained TODO FIXME XXX + +" It's easy to accidentally add a space after a backslash that was intended +" for line continuation. Some compilers allow it, which makes it +" unpredictable and should be avoided. +syn match cBadContinuation contained "\\\s\+$" + +" cCommentGroup allows adding matches for special things in comments +syn cluster cCommentGroup contains=cTodo,cBadContinuation + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match cSpecial display contained "\\\%(x\x\+\|\o\{1,3}\|.\|$\)" +if !exists("c_no_utf") + syn match cSpecial display contained "\\\%(u\x\{4}\|U\x\{8}\)" +endif + +if !exists("c_no_cformat") + " Highlight % items in strings. + if !exists("c_no_c99") " ISO C99 + syn match cFormat display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlLjzt]\|ll\|hh\)\=\%([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained + else + syn match cFormat display "%\%(\d\+\$\)\=[-+' #0*]*\%(\d*\|\*\|\*\d\+\$\)\%(\.\%(\d*\|\*\|\*\d\+\$\)\)\=\%([hlL]\|ll\)\=\%([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained + endif + syn match cFormat display "%%" contained +endif + +" cCppString: same as cString, but ends at end of line +if s:in_cpp_family && !exists("cpp_no_cpp11") && !exists("c_no_cformat") + " ISO C++11 + syn region cString start=+\%(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend + syn region cCppString start=+\%(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell +elseif s:ft ==# "c" && !exists("c_no_c11") && !exists("c_no_cformat") + " ISO C99 + syn region cString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend + syn region cCppString start=+\%(L\|U\|u8\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell +else + " older C or C++ + syn match cFormat display "%%" contained + syn region cString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend + syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat,@Spell +endif + +syn region cCppSkip contained start="^\s*\%(%:\|#\)\s*\%(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip + +syn cluster cStringGroup contains=cCppString,cCppSkip + +syn match cCharacter "L\='[^\\]'" +syn match cCharacter "L'[^']*'" contains=cSpecial +if exists("c_gnu") + syn match cSpecialError "L\='\\[^'\"?\\abefnrtv]'" + syn match cSpecialCharacter "L\='\\['\"?\\abefnrtv]'" +else + syn match cSpecialError "L\='\\[^'\"?\\abfnrtv]'" + syn match cSpecialCharacter "L\='\\['\"?\\abfnrtv]'" +endif +syn match cSpecialCharacter display "L\='\\\o\{1,3}'" +syn match cSpecialCharacter display "'\\x\x\{1,2}'" +syn match cSpecialCharacter display "L'\\x\x\+'" + +if (s:ft ==# "c" && !exists("c_no_c11")) || (s:in_cpp_family && !exists("cpp_no_cpp11")) + " ISO C11 or ISO C++ 11 + if exists("c_no_cformat") + syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,@Spell extend + else + syn region cString start=+\%(U\|u8\=\)"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat,@Spell extend + endif + syn match cCharacter "[Uu]'[^\\]'" + syn match cCharacter "[Uu]'[^']*'" contains=cSpecial + if exists("c_gnu") + syn match cSpecialError "[Uu]'\\[^'\"?\\abefnrtv]'" + syn match cSpecialCharacter "[Uu]'\\['\"?\\abefnrtv]'" + else + syn match cSpecialError "[Uu]'\\[^'\"?\\abfnrtv]'" + syn match cSpecialCharacter "[Uu]'\\['\"?\\abfnrtv]'" + endif + syn match cSpecialCharacter display "[Uu]'\\\o\{1,3}'" + syn match cSpecialCharacter display "[Uu]'\\x\x\+'" +endif + +"when wanted, highlight trailing white space +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match cSpaceError display excludenl "\s\+$" + endif + if !exists("c_no_tab_space_error") + syn match cSpaceError display " \+\t"me=e-1 + endif +endif + +" This should be before cErrInParen to avoid problems with #define ({ xxx }) +if exists("c_curly_error") + syn match cCurlyError "}" + syn region cBlock start="{" end="}" contains=ALLBUT,cBadBlock,cCurlyError,@cParenGroup,cErrInParen,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell fold +else + syn region cBlock start="{" end="}" transparent fold +endif + +" Catch errors caused by wrong parenthesis and brackets. +" Also accept <% for {, %> for }, <: for [ and :> for ] (C99) +" But avoid matching <::. +syn cluster cParenGroup contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserLabel,cBitField,cOctalZero,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom +if exists("c_no_curly_error") + if s:in_cpp_family && !exists("cpp_no_cpp11") + syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell + " cCppParen: same as cParen but ends at end-of-line; used in cDefine + syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell + syn match cParenError display ")" + syn match cErrInParen display contained "^^<%\|^%>" + else + syn region cParen transparent start='(' end=')' contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell + " cCppParen: same as cParen but ends at end-of-line; used in cDefine + syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell + syn match cParenError display ")" + syn match cErrInParen display contained "^[{}]\|^<%\|^%>" + endif +elseif exists("c_no_bracket_error") + if s:in_cpp_family && !exists("cpp_no_cpp11") + syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,@cStringGroup,@Spell + " cCppParen: same as cParen but ends at end-of-line; used in cDefine + syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell + syn match cParenError display ")" + syn match cErrInParen display contained "<%\|%>" + else + syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell + " cCppParen: same as cParen but ends at end-of-line; used in cDefine + syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell + syn match cParenError display ")" + syn match cErrInParen display contained "[{}]\|<%\|%>" + endif +else + if s:in_cpp_family && !exists("cpp_no_cpp11") + syn region cParen transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell + " cCppParen: same as cParen but ends at end-of-line; used in cDefine + syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell + syn match cParenError display "[\])]" + syn match cErrInParen display contained "<%\|%>" + syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell + else + syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,@cStringGroup,@Spell + " cCppParen: same as cParen but ends at end-of-line; used in cDefine + syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString,@Spell + syn match cParenError display "[\])]" + syn match cErrInParen display contained "[\]{}]\|<%\|%>" + syn region cBracket transparent start='\[\|<::\@!' end=']\|:>' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cErrInParen,cCppParen,cCppBracket,@cStringGroup,@Spell + endif + " cCppBracket: same as cParen but ends at end-of-line; used in cDefine + syn region cCppBracket transparent start='\[\|<::\@!' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString,@Spell + syn match cErrInBracket display contained "[);{}]\|<%\|%>" +endif + +if s:ft ==# 'c' || exists("cpp_no_cpp11") + syn region cBadBlock keepend start="{" end="}" contained containedin=cParen,cBracket,cBadBlock transparent fold +endif + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match cNumbers display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal +" Same, but without octal error (for comments) +syn match cNumbersCom display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal +syn match cNumber display contained "\d\+\%(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match cNumber display contained "0x\x\+\%(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match cOctal display contained "0\o\+\%(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero +syn match cOctalZero display contained "\<0" +"floating point number, with dot, optional exponent +syn match cFloat display contained "\d\+\.\d*\%(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match cFloat display contained "\.\d\+\%(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match cFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" +if !exists("c_no_c99") + "hexadecimal floating point number, optional leading digits, with dot, with exponent + syn match cFloat display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>" + "hexadecimal floating point number, with leading digits, optional dot, with exponent + syn match cFloat display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>" +endif + +" flag an octal number with wrong digits +syn match cOctalError display contained "0\o*[89]\d*" +syn case match + +if exists("c_comment_strings") + " A comment can contain cString, cCharacter and cNumber. + " But a "*/" inside a cString in a cComment DOES end the comment! So we + " need to use a special type of cString: cCommentString, which also ends on + " "*/", and sees a "*" at the start of the line as comment again. + " Unfortunately this doesn't very well work for // type of comments :-( + syn match cCommentSkip contained "^\s*\*\%($\|\s\+\)" + syn region cCommentString contained start=+L\=\\\@" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError +syn match cPreConditMatch display "^\s*\zs\%(%:\|#\)\s*\%(else\|endif\)\>" +if !exists("c_no_if0") + syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip + syn region cCppOutWrapper start="^\s*\zs\%(%:\|#\)\s*if\s\+0\+\s*\%($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold + syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\%(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse + if !exists("c_no_if0_fold") + syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold + else + syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0\+\s*\%($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell + endif + syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit + syn region cCppInWrapper start="^\s*\zs\%(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\%($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold + syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\%(%:\|#\)\s*endif\>" contains=TOP,cPreCondit + if !exists("c_no_if0_fold") + syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold + else + syn region cCppInElse contained start="^\s*\%(%:\|#\)\s*\%(else\>\|elif\s\+\%(0*[1-9]\d*\s*\%($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 + endif + syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\%(%:\|#\)\s*\%(else\|elif\)\%([^/]\|/[^/*]\)*" end="^\s*\%(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell + syn region cCppOutSkip contained start="^\s*\%(%:\|#\)\s*\%(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip + syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\%(%:\|#\)\s*\%(if\s\+\%(\d\+\s*\%($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\%(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc +endif +syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match cIncluded display contained "<[^>]*>" +syn match cInclude display "^\s*\zs\%(%:\|#\)\s*include\>\s*["<]" contains=cIncluded +"syn match cLineSkip "\\$" +syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock +syn region cDefine start="^\s*\zs\%(%:\|#\)\s*\%(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell +syn region cPreProc start="^\s*\zs\%(%:\|#\)\s*\%(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell + +" Optional embedded Autodoc parsing +if exists("c_autodoc") + syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL + syn cluster cCommentGroup add=cAutodocReal + syn cluster cPreProcGroup add=cAutodocReal +endif + +" be able to fold #pragma regions +syn region cPragma start="^\s*#pragma\s\+region\>" end="^\s*#pragma\s\+endregion\>" transparent keepend extend fold + +" Highlight User Labels +syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString +if s:ft ==# 'c' || exists("cpp_no_cpp11") + syn region cMulti transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup,@Spell,@cStringGroup +endif +" Avoid matching foo::bar() in C++ by requiring that the next char is not ':' +syn cluster cLabelGroup contains=cUserLabel +syn match cUserCont display "^\s*\zs\I\i*\s*:$" contains=@cLabelGroup +syn match cUserCont display ";\s*\zs\I\i*\s*:$" contains=@cLabelGroup +if s:in_cpp_family + syn match cUserCont display "^\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup + syn match cUserCont display ";\s*\zs\%(class\|struct\|enum\)\@!\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup +else + syn match cUserCont display "^\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup + syn match cUserCont display ";\s*\zs\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup +endif + +syn match cUserLabel display "\I\i*" contained + +" Avoid recognizing most bitfields as labels +syn match cBitField display "^\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType +syn match cBitField display ";\s*\zs\I\i*\s*:\s*[1-9]"me=e-1 contains=cType + +if exists("c_minlines") + let b:c_minlines = c_minlines +else + if !exists("c_no_if0") + let b:c_minlines = 50 " #if 0 constructs can be long + else + let b:c_minlines = 15 " mostly for () constructs + endif +endif +if exists("c_curly_error") + syn sync fromstart +else + exec "syn sync ccomment cComment minlines=" . b:c_minlines +endif + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link cFormat cSpecial +hi def link cCppString cString +hi def link cCommentL cComment +hi def link cCommentStart cComment +hi def link cLabel Label +hi def link cUserLabel Label +hi def link cConditional Conditional +hi def link cRepeat Repeat +hi def link cCharacter Character +hi def link cSpecialCharacter cSpecial +hi def link cNumber Number +hi def link cOctal Number +hi def link cOctalZero PreProc " link this to Error if you want +hi def link cFloat Float +hi def link cOctalError cError +hi def link cParenError cError +hi def link cErrInParen cError +hi def link cErrInBracket cError +hi def link cCommentError cError +hi def link cCommentStartError cError +hi def link cSpaceError cError +hi def link cWrongComTail cError +hi def link cSpecialError cError +hi def link cCurlyError cError +hi def link cOperator Operator +hi def link cStructure Structure +hi def link cTypedef Structure +hi def link cStorageClass StorageClass +hi def link cInclude Include +hi def link cPreProc PreProc +hi def link cDefine Macro +hi def link cIncluded cString +hi def link cError Error +hi def link cStatement Statement +hi def link cCppInWrapper cCppOutWrapper +hi def link cCppOutWrapper cPreCondit +hi def link cPreConditMatch cPreCondit +hi def link cPreCondit PreCondit +hi def link cType Type +hi def link cConstant Constant +hi def link cCommentString cString +hi def link cComment2String cString +hi def link cCommentSkip cComment +hi def link cString String +hi def link cComment Comment +hi def link cSpecial SpecialChar +hi def link cTodo Todo +hi def link cBadContinuation Error +hi def link cCppOutSkip cCppOutIf2 +hi def link cCppInElse2 cCppOutIf2 +hi def link cCppOutIf2 cCppOut +hi def link cCppOut Comment + +let b:current_syntax = "c" + +unlet s:ft + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/cabal.vim b/runtime/syntax/cabal.vim new file mode 100644 index 0000000..74cda51 --- /dev/null +++ b/runtime/syntax/cabal.vim @@ -0,0 +1,278 @@ +" Vim syntax file +" Language: Haskell Cabal Build file +" Author: Vincent Berthoux +" Maintainer: Marcin Szamotulski +" Previous Maintainer: Vincent Berthoux +" File Types: .cabal +" Last Change: 22 Oct 2022 +" v1.6: Added support for foreign-libraries +" Added highlighting for various fields +" v1.5: Incorporated changes from +" https://github.com/sdiehl/haskell-vim-proto/blob/master/vim/syntax/cabal.vim +" Use `syn keyword` instead of `syn match`. +" Added cabalStatementRegion to limit matches of keywords, which fixes +" the highlighting of description's value. +" Added cabalVersionRegion to limit the scope of cabalVersionOperator +" and cabalVersion matches. +" Added cabalLanguage keyword. +" Added calbalTitle, cabalAuthor and cabalMaintainer syntax groups. +" Added ! and ^>= operators (calbal 2.0) +" Added build-type keywords +" v1.4: Add benchmark support, thanks to Simon Meier +" v1.3: Updated to the last version of cabal +" Added more highlighting for cabal function, true/false +" and version number. Also added missing comment highlighting. +" Cabal known compiler are highlighted too. +" +" V1.2: Added cpp-options which was missing. Feature implemented +" by GHC, found with a GHC warning, but undocumented. +" Whatever... +" +" v1.1: Fixed operator problems and added ftdetect file +" (thanks to Sebastian Schwarz) +" +" v1.0: Cabal syntax in vimball format +" (thanks to Magnus Therning) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" this file uses line continuation +let s:cpo_save = &cpo +set cpo&vim + +" set iskeyword for this syntax script +syn iskeyword @,48-57,192-255,- + +" Case sensitive matches +syn case match + +syn keyword cabalConditional if else +syn keyword cabalFunction os arche impl flag +syn match cabalComment /--.*$/ + +" Case insensitive matches +syn case ignore + +syn keyword cabalCategory contained + \ executable + \ library + \ benchmark + \ test-suite + \ source-repository + \ flag + \ foreign-library + \ custom-setup + \ common +syn match cabalCategoryTitle contained /[^{]*\ze{\?/ +syn match cabalCategoryRegion + \ contains=cabalCategory,cabalCategoryTitle + \ nextgroup=cabalCategory skipwhite + \ /^\c\s*\(contained\|executable\|library\|benchmark\|test-suite\|source-repository\|flag\|foreign-library\|custom-setup\|common\)\+\s*\%(.*$\|$\)/ +syn keyword cabalTruth true false + +" cabalStatementRegion which limits the scope of cabalStatement keywords, this +" way they are not highlighted in description. +syn region cabalStatementRegion start=+^\s*\(--\)\@=\|<=\|<\|>/ +" match version: `[%]\@/ +" cabalVersionRegion which limits the scope of cabalVersion pattern. +syn match cabalVersionRegionA + \ contains=cabalVersionOperator,cabalVersion + \ keepend + \ /\%(==\|\^\?>=\|<=\|<\|>\)\s*\d\+\%(\.\d\+\)*\%(\.\*\)\?\>/ +" version inside `version: ...` +syn match cabalVersionRegionB + \ contains=cabalStatementRegion,cabalVersionOperator,cabalVersion + \ /^\s*\%(cabal-\)\?version\s*:.*$/ + +syn keyword cabalLanguage Haskell98 Haskell2010 + +" title region +syn match cabalName contained /:\@<=.*/ +syn match cabalNameRegion + \ contains=cabalStatementRegion,cabalName + \ nextgroup=cabalStatementRegion + \ oneline + \ /^\c\s*name\s*:.*$/ + +" author region +syn match cabalAuthor contained /:\@<=.*/ +syn match cabalAuthorRegion + \ contains=cabalStatementRegion,cabalStatement,cabalAuthor + \ nextgroup=cabalStatementRegion + \ oneline + \ /^\c\s*author\s*:.*$/ + +" maintainer region +syn match cabalMaintainer contained /:\@<=.*/ +syn match cabalMaintainerRegion + \ contains=cabalStatementRegion,cabalStatement,cabalMaintainer + \ nextgroup=cabalStatementRegion + \ oneline + \ /^\c\s*maintainer\s*:.*$/ + +" license region +syn match cabalLicense contained /:\@<=.*/ +syn match cabalLicenseRegion + \ contains=cabalStatementRegion,cabalStatement,cabalLicense + \ nextgroup=cabalStatementRegion + \ oneline + \ /^\c\s*license\s*:.*$/ + +" license-file region +syn match cabalLicenseFile contained /:\@<=.*/ +syn match cabalLicenseFileRegion + \ contains=cabalStatementRegion,cabalStatement,cabalLicenseFile + \ nextgroup=cabalStatementRegion + \ oneline + \ /^\c\s*license-file\s*:.*$/ + +" tested-with region with compilers and versions +syn keyword cabalCompiler contained ghc nhc yhc hugs hbc helium jhc lhc +syn match cabalTestedWithRegion + \ contains=cabalStatementRegion,cabalStatement,cabalCompiler,cabalVersionRegionA + \ nextgroup=cabalStatementRegion + \ oneline + \ /^\c\s*tested-with\s*:.*$/ + +" build type keywords +syn keyword cabalBuildType contained + \ simple custom configure +syn match cabalBuildTypeRegion + \ contains=cabalStatementRegion,cabalStatement,cabalBuildType + \ nextgroup=cabalStatementRegion + \ /^\c\s*build-type\s*:.*$/ + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link cabalName Title +hi def link cabalAuthor Normal +hi def link cabalMaintainer Normal +hi def link cabalCategoryTitle Title +hi def link cabalLicense Normal +hi def link cabalLicenseFile Normal +hi def link cabalBuildType Keyword +hi def link cabalVersion Number +hi def link cabalTruth Boolean +hi def link cabalComment Comment +hi def link cabalStatement Statement +hi def link cabalLanguage Type +hi def link cabalCategory Type +hi def link cabalFunction Function +hi def link cabalConditional Conditional +hi def link cabalOperator Operator +hi def link cabalVersionOperator Operator +hi def link cabalCompiler Constant + +let b:current_syntax = "cabal" + +let &cpo = s:cpo_save +unlet! s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/cabalconfig.vim b/runtime/syntax/cabalconfig.vim new file mode 100644 index 0000000..0165725 --- /dev/null +++ b/runtime/syntax/cabalconfig.vim @@ -0,0 +1,30 @@ +" Vim syntax file +" Language: Cabal Config +" Maintainer: profunctor@pm.me +" Last Change: Marcin Szamotulski +" Original Author: Marcin Szamotulski + +if exists("b:current_syntax") + finish +endif + +syn match CabalConfigSection /^\S[[:alpha:]]\+\%(-[[:alpha:]]\+\)*[^:]*$/ +syn region CabalConfigRegion matchgroup=CabalConfigKey start=/^\s*[[:alpha:]]\+\%(-[[:alpha:]]\+\)*:/ matchgroup=NONE end=/$/ contains=CabalConfigSeparator,CabalConfigKeyword,CabalConfigPath keepend +syn match CabalConfigComment /^\s*--.*$/ +syn match CabalConfigValue /.*$/ contained +syn match CabalConfigKey /[[:alpha:]]\+\%(-[[:alpha:]]\+\)*\ze:/ +syn keyword CabalConfigSeparator : contained +syn match CabalConfigVariable /\$[[:alpha:]]\+/ +syn keyword CabalConfigKeyword True False ghc +syn match CabalConfigPath /\%([[:alpha:]]\+:\)\?\%(\/[[:print:]]\+\)\+/ + +hi def link CabalConfigComment Comment +hi def link CabalConfigSection Title +hi def link CabalConfigKey Statement +hi def link CabalConfigSeparator NonText +hi def link CabalConfigValue Normal +hi def link CabalConfigVariable Identifier +hi def link CabalConfigKeyword Keyword +hi def link CabalConfigPath Directory + +let b:current_syntax = "cabal.config" diff --git a/runtime/syntax/cabalproject.vim b/runtime/syntax/cabalproject.vim new file mode 100644 index 0000000..12143b9 --- /dev/null +++ b/runtime/syntax/cabalproject.vim @@ -0,0 +1,28 @@ +" Vim syntax file +" Language: Cabal Project +" Maintainer: profunctor@pm.me +" Last Change: Marcin Szamotulski +" Original Author: Marcin Szamotulski + +if exists("b:current_syntax") + finish +endif + +syn match CabalProjectComment /^\s*--.*/ contains=@Spell +syn match CabalProjectField /^\w\%(\w\|-\)\+/ contains=@NoSpell + +syn keyword CabalProjectBoolean true false True False +syn keyword CabalProjectCompiler ghc ghcjs jhc lhc uhc haskell-suite +syn match CabalProjectNat /\<\d\+\>/ +syn keyword CabalProjectJobs $ncpus +syn keyword CabalProjectProfilingLevel default none exported-functions toplevel-functions all-functions + +hi def link CabalProjectComment Comment +hi def link CabalProjectField Statement +hi def link CabalProjectBoolean Boolean +hi def link CabalProjectCompiler Identifier +hi def link CabalProjectNat Number +hi def link CabalProjectJobs Number +hi def link CabalProjectProfilingLevel Statement + +let b:current_syntax = "cabal.project" diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim new file mode 100644 index 0000000..4250109 --- /dev/null +++ b/runtime/syntax/calendar.vim @@ -0,0 +1,110 @@ +" Vim syntax file +" Language: calendar(1) input file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword calendarTodo contained TODO FIXME XXX NOTE + +syn region calendarComment start='/\*' end='\*/' + \ contains=calendarTodo,@Spell + +syn region calendarCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl + \ end=+"+ end='$' contains=calendarSpecial +syn match calendarSpecial display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)' +syn match calendarSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)" + +syn region calendarPreCondit start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' + \ skip='\\$' end='$' + \ contains=calendarComment,calendarCppString +syn match calendarPreCondit display '^\s*#\s*\%(else\|endif\)\>' +syn region calendarCppOut start='^\s*#\s*if\s\+0\+' end='.\@=\|$' + \ contains=calendarCppOut2 +syn region calendarCppOut2 contained start='0' + \ end='^\s*#\s*\%(endif\|else\|elif\)\>' + \ contains=calendarSpaceError,calendarCppSkip +syn region calendarCppSkip contained + \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' + \ skip='\\$' end='^\s*#\s*endif\>' + \ contains=calendarSpaceError,calendarCppSkip +syn region calendarIncluded display contained start=+"+ skip=+\\\\\|\\"+ + \ end=+"+ +syn match calendarIncluded display contained '<[^>]*>' +syn match calendarInclude display '^\s*#\s*include\>\s*["<]' + \ contains=calendarIncluded +syn cluster calendarPreProcGroup contains=calendarPreCondit,calendarIncluded, + \ calendarInclude,calendarDefine, + \ calendarCppOut,calendarCppOut2, + \ calendarCppSkip,calendarString, + \ calendarSpecial,calendarTodo +syn region calendarDefine start='^\s*#\s*\%(define\|undef\)\>' + \ skip='\\$' end='$' + \ contains=ALLBUT,@calendarPreProcGroup +syn region calendarPreProc start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' + \ skip='\\$' end='$' keepend + \ contains=ALLBUT,@calendarPreProcGroup + +syn keyword calendarKeyword CHARSET BODUN LANG +syn case ignore +syn keyword calendarKeyword Easter Pashka +syn case match + +syn case ignore +syn match calendarNumber display '\<\d\+\>' +syn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May + \ Jun[e] Jul[y] Aug[ust] Sep[tember] + \ Oct[ober] Nov[ember] Dec[ember] +syn match calendarMonth display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.' +syn keyword calendarWeekday Mon[day] Tue[sday] Wed[nesday] Thu[rsday] +syn keyword calendarWeekday Fri[day] Sat[urday] Sun[day] +syn match calendarWeekday display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' + \ nextgroup=calendarWeekdayMod +syn match calendarWeekdayMod display '[+-]\d\+\>' +syn case match + +syn match calendarTime display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\=' +syn match calendarTime display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]' + +syn match calendarVariable '\*' + +if exists("c_minlines") + let b:c_minlines = c_minlines +else + if !exists("c_no_if0") + let b:c_minlines = 50 " #if 0 constructs can be long + else + let b:c_minlines = 15 " mostly for () constructs + endif +endif +exec "syn sync ccomment calendarComment minlines=" . b:c_minlines + +hi def link calendarTodo Todo +hi def link calendarComment Comment +hi def link calendarCppString String +hi def link calendarSpecial SpecialChar +hi def link calendarPreCondit PreCondit +hi def link calendarCppOut Comment +hi def link calendarCppOut2 calendarCppOut +hi def link calendarCppSkip calendarCppOut +hi def link calendarIncluded String +hi def link calendarInclude Include +hi def link calendarDefine Macro +hi def link calendarPreProc PreProc +hi def link calendarKeyword Keyword +hi def link calendarNumber Number +hi def link calendarMonth String +hi def link calendarWeekday String +hi def link calendarWeekdayMod Special +hi def link calendarTime Number +hi def link calendarVariable Identifier + +let b:current_syntax = "calendar" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/catalog.vim b/runtime/syntax/catalog.vim new file mode 100644 index 0000000..0a1d511 --- /dev/null +++ b/runtime/syntax/catalog.vim @@ -0,0 +1,30 @@ +" Vim syntax file +" Language: sgml catalog file +" Maintainer: Johannes Zellner +" Last Change: Fr, 04 Nov 2005 12:46:45 CET +" Filenames: /etc/sgml.catalog +" $Id: catalog.vim,v 1.2 2005/11/23 21:11:10 vimboss Exp $ + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" strings +syn region catalogString start=+"+ skip=+\\\\\|\\"+ end=+"+ keepend +syn region catalogString start=+'+ skip=+\\\\\|\\'+ end=+'+ keepend + +syn region catalogComment start=+--+ end=+--+ contains=catalogTodo +syn keyword catalogTodo TODO FIXME XXX NOTE contained +syn keyword catalogKeyword DOCTYPE OVERRIDE PUBLIC DTDDECL ENTITY CATALOG + + +" The default highlighting. +hi def link catalogString String +hi def link catalogComment Comment +hi def link catalogTodo Todo +hi def link catalogKeyword Statement + +let b:current_syntax = "catalog" diff --git a/runtime/syntax/cdl.vim b/runtime/syntax/cdl.vim new file mode 100644 index 0000000..2a458d4 --- /dev/null +++ b/runtime/syntax/cdl.vim @@ -0,0 +1,78 @@ +" Vim syntax file +" Language: Comshare Dimension Definition Language +" Maintainer: Raul Segura Acevedo +" Last change: 2016 Sep 20 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +sy case ignore +sy sync fromstart +sy keyword cdlStatement dimension hierarchy group grouphierarchy schedule class +sy keyword cdlType add update file category main altername removeall required notrequired +sy keyword cdlConditional if then elseif else endif and or not cons rpt xlt +sy keyword cdlFunction ChildOf IChildOf LeafChildOf DescendantOf IDescendantOf LeafDescendantOf MemberIs CountOf + +sy keyword cdlIdentifier contained id name desc description xlttype precision symbol curr_ name group_name rate_name +sy keyword cdlIdentifier contained xcheck endbal accounttype natsign consolidate formula pctown usage periodicity +sy match cdlIdentifier contained 'child\s*name' +sy match cdlIdentifier contained 'parent\s*name' +sy match cdlIdentifier contained 'grp\s*description' +sy match cdlIdentifier contained 'grpchild\s*name' +sy match cdlIdentifier contained 'grpparent\s*name' +sy match cdlIdentifier contained 'preceding\s*member' +sy match cdlIdentifier contained 'unit\s*name' +sy match cdlIdentifier contained 'unit\s*id' +sy match cdlIdentifier contained 'schedule\s*name' +sy match cdlIdentifier contained 'schedule\s*id' + +sy match cdlString /\[[^]]*]/ contains=cdlRestricted,cdlNotSupported +sy match cdlRestricted contained /[&*,_]/ +" not supported +sy match cdlNotSupported contained /[:"!']/ + +sy keyword cdlTodo contained TODO FIXME XXX +sy cluster cdlCommentGroup contains=cdlTodo +sy match cdlComment '//.*' contains=@cdlCommentGroup +sy region cdlComment start="/\*" end="\*/" contains=@cdlCommentGroup fold +sy match cdlCommentE "\*/" + +sy region cdlParen transparent start='(' end=')' contains=ALLBUT,cdlParenE,cdlRestricted,cdlNotSupported +"sy region cdlParen transparent start='(' end=')' contains=cdlIdentifier,cdlComment,cdlParenWordE +sy match cdlParenE ")" +"sy match cdlParenWordE contained "\k\+" + +sy keyword cdlFxType allocation downfoot expr xltgain +"sy keyword cdlFxType contained allocation downfoot expr xltgain +"sy region cdlFx transparent start='\k\+(' end=')' contains=cdlConditional,cdlFunction,cdlString,cdlComment,cdlFxType + +set foldmethod=expr +set foldexpr=(getline(v:lnum+1)=~'{'\|\|getline(v:lnum)=~'//\\s\\*\\{5}.*table')?'>1':1 +%foldo! +set foldmethod=manual +let b:match_words='\:\:\:\:\' + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link cdlStatement Statement +hi def link cdlType Type +hi def link cdlFxType Type +hi def link cdlIdentifier Identifier +hi def link cdlString String +hi def link cdlRestricted WarningMsg +hi def link cdlNotSupported ErrorMsg +hi def link cdlTodo Todo +hi def link cdlComment Comment +hi def link cdlCommentE ErrorMsg +hi def link cdlParenE ErrorMsg +hi def link cdlParenWordE ErrorMsg +hi def link cdlFunction Function +hi def link cdlConditional Conditional + + +let b:current_syntax = "cdl" + +" vim: ts=8 diff --git a/runtime/syntax/cdrdaoconf.vim b/runtime/syntax/cdrdaoconf.vim new file mode 100644 index 0000000..0fa6510 --- /dev/null +++ b/runtime/syntax/cdrdaoconf.vim @@ -0,0 +1,139 @@ +" Vim syntax file +" Language: cdrdao(1) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-09-02 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword cdrdaoconfTodo + \ TODO FIXME XXX NOTE + +syn match cdrdaoconfBegin + \ display + \ nextgroup=@cdrdaoconfKeyword,cdrdaoconfComment + \ '^' + +syn cluster cdrdaoconfKeyword + \ contains=cdrdaoconfIntegerKeyword, + \ cdrdaoconfDriverKeyword, + \ cdrdaoconfDeviceKeyword, + \ cdrdaoconfPathKeyword + +syn keyword cdrdaoconfIntegerKeyword + \ contained + \ nextgroup=cdrdaoconfIntegerDelimiter + \ write_speed + \ write_buffers + \ user_capacity + \ full_burn + \ read_speed + \ cddb_timeout + +syn keyword cdrdaoconfIntegerKeyword + \ contained + \ nextgroup=cdrdaoconfParanoiaModeDelimiter + \ read_paranoia_mode + +syn keyword cdrdaoconfDriverKeyword + \ contained + \ nextgroup=cdrdaoconfDriverDelimiter + \ write_driver + \ read_driver + +syn keyword cdrdaoconfDeviceKeyword + \ contained + \ nextgroup=cdrdaoconfDeviceDelimiter + \ write_device + \ read_device + +syn keyword cdrdaoconfPathKeyword + \ contained + \ nextgroup=cdrdaoconfPathDelimiter + \ cddb_directory + \ tmp_file_dir + +syn match cdrdaoconfIntegerDelimiter + \ contained + \ nextgroup=cdrdaoconfInteger + \ skipwhite + \ ':' + +syn match cdrdaoconfParanoiaModeDelimiter + \ contained + \ nextgroup=cdrdaoconfParanoiaMode + \ skipwhite + \ ':' + +syn match cdrdaoconfDriverDelimiter + \ contained + \ nextgroup=cdrdaoconfDriver + \ skipwhite + \ ':' + +syn match cdrdaoconfDeviceDelimiter + \ contained + \ nextgroup=cdrdaoconfDevice + \ skipwhite + \ ':' + +syn match cdrdaoconfPathDelimiter + \ contained + \ nextgroup=cdrdaoconfPath + \ skipwhite + \ ':' + +syn match cdrdaoconfInteger + \ contained + \ '\<\d\+\>' + +syn match cdrdaoParanoiaMode + \ contained + \ '[0123]' + +syn match cdrdaoconfDriver + \ contained + \ '\<\(cdd2600\|generic-mmc\%(-raw\)\=\|plextor\%(-scan\)\|ricoh-mp6200\|sony-cdu9\%(20\|48\)\|taiyo-yuden\|teac-cdr55\|toshiba\|yamaha-cdr10x\)\>' + +syn region cdrdaoconfDevice + \ contained + \ matchgroup=cdrdaoconfDevice + \ start=+"+ + \ end=+"+ + +syn region cdrdaoconfPath + \ contained + \ matchgroup=cdrdaoconfPath + \ start=+"+ + \ end=+"+ + +syn match cdrdaoconfComment + \ contains=cdrdaoconfTodo,@Spell + \ '^.*#.*$' + +hi def link cdrdaoconfTodo Todo +hi def link cdrdaoconfComment Comment +hi def link cdrdaoconfKeyword Keyword +hi def link cdrdaoconfIntegerKeyword cdrdaoconfKeyword +hi def link cdrdaoconfDriverKeyword cdrdaoconfKeyword +hi def link cdrdaoconfDeviceKeyword cdrdaoconfKeyword +hi def link cdrdaoconfPathKeyword cdrdaoconfKeyword +hi def link cdrdaoconfDelimiter Delimiter +hi def link cdrdaoconfIntegerDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfDriverDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfDeviceDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfPathDelimiter cdrdaoconfDelimiter +hi def link cdrdaoconfInteger Number +hi def link cdrdaoconfParanoiaMode Number +hi def link cdrdaoconfDriver Identifier +hi def link cdrdaoconfDevice cdrdaoconfPath +hi def link cdrdaoconfPath String + +let b:current_syntax = "cdrdaoconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cdrtoc.vim b/runtime/syntax/cdrtoc.vim new file mode 100644 index 0000000..866784d --- /dev/null +++ b/runtime/syntax/cdrtoc.vim @@ -0,0 +1,537 @@ +" Vim syntax file +" Language: cdrdao(1) TOC file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-05-10 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword cdrtocTodo + \ contained + \ TODO + \ FIXME + \ XXX + \ NOTE + +syn cluster cdrtocCommentContents + \ contains= + \ cdrtocTodo, + \ @Spell + +syn cluster cdrtocHeaderFollowsInitial + \ contains= + \ cdrtocHeaderCommentInitial, + \ cdrtocHeaderCatalog, + \ cdrtocHeaderTOCType, + \ cdrtocHeaderCDText, + \ cdrtocTrack + +syn match cdrtocHeaderBegin + \ nextgroup=@cdrtocHeaderFollowsInitial + \ skipwhite skipempty + \ '\%^' + +let s:mmssff_pattern = '\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\>' +let s:byte_pattern = '\<\%([01]\=\d\{1,2}\|2\%([0-4]\d\|5[0-5]\)\)\>' +let s:length_pattern = '\%(\%([0-5]\d\|\d\):\%([0-5]\d\|\d\):\%([0-6]\d\|7[0-5]\|\d\)\|\d\+\)\>' + +function s:def_comment(name, nextgroup) + execute 'syn match' a:name + \ 'nextgroup=' . a:nextgroup . ',' . a:name + \ 'skipwhite skipempty' + \ 'contains=@cdrtocCommentContents' + \ 'contained' + \ "'//.*$'" + execute 'hi def link' a:name 'cdrtocComment' +endfunction + +function s:def_keywords(name, nextgroup, keywords) + let comment_group = a:name . 'FollowComment' + execute 'syn keyword' a:name + \ 'nextgroup=' . a:nextgroup . ',' . comment_group + \ 'skipwhite skipempty' + \ 'contained' + \ join(a:keywords) + + call s:def_comment(comment_group, a:nextgroup) +endfunction + +function s:def_keyword(name, nextgroup, keyword) + call s:def_keywords(a:name, a:nextgroup, [a:keyword]) +endfunction + +" NOTE: Pattern needs to escape any “@”s. +function s:def_match(name, nextgroup, pattern) + let comment_group = a:name . 'FollowComment' + execute 'syn match' a:name + \ 'nextgroup=' . a:nextgroup . ',' . comment_group + \ 'skipwhite skipempty' + \ 'contained' + \ '@' . a:pattern . '@' + + call s:def_comment(comment_group, a:nextgroup) +endfunction + +function s:def_region(name, nextgroup, start, skip, end, matchgroup, contains) + let comment_group = a:name . 'FollowComment' + execute 'syn region' a:name + \ 'nextgroup=' . a:nextgroup . ',' . comment_group + \ 'skipwhite skipempty' + \ 'contained' + \ 'matchgroup=' . a:matchgroup + \ 'contains=' . a:contains + \ 'start=@' . a:start . '@' + \ (a:skip != "" ? ('skip=@' . a:skip . '@') : "") + \ 'end=@' . a:end . '@' + + call s:def_comment(comment_group, a:nextgroup) +endfunction + +call s:def_comment('cdrtocHeaderCommentInitial', '@cdrtocHeaderFollowsInitial') + +call s:def_keyword('cdrtocHeaderCatalog', 'cdrtocHeaderCatalogNumber', 'CATALOG') + +call s:def_match('cdrtocHeaderCatalogNumber', '@cdrtocHeaderFollowsInitial', '"\d\{13\}"') + +call s:def_keywords('cdrtocHeaderTOCType', '@cdrtocHeaderFollowsInitial', ['CD_DA', 'CD_ROM', 'CD_ROM_XA']) + +call s:def_keyword('cdrtocHeaderCDText', 'cdrtocHeaderCDTextStart', 'CD_TEXT') + +" TODO: Actually, language maps aren’t required by TocParser.g, but let’s keep +" things simple (and in agreement with what the manual page says). +call s:def_match('cdrtocHeaderCDTextStart', 'cdrtocHeaderCDTextLanguageMap', '{') + +call s:def_keyword('cdrtocHeaderCDTextLanguageMap', 'cdrtocHeaderLanguageMapStart', 'LANGUAGE_MAP') + +call s:def_match('cdrtocHeaderLanguageMapStart', 'cdrtocHeaderLanguageMapLanguageNumber', '{') + +call s:def_match('cdrtocHeaderLanguageMapLanguageNumber', 'cdrtocHeaderLanguageMapColon', '\<[0-7]\>') + +call s:def_match('cdrtocHeaderLanguageMapColon', 'cdrtocHeaderLanguageMapCountryCode,cdrtocHeaderLanguageMapCountryCodeName', ':') + +syn cluster cdrtocHeaderLanguageMapCountryCodeFollow + \ contains= + \ cdrtocHeaderLanguageMapLanguageNumber, + \ cdrtocHeaderLanguageMapEnd + +call s:def_match('cdrtocHeaderLanguageMapCountryCode', + \ '@cdrtocHeaderLanguageMapCountryCodeFollow', + \ s:byte_pattern) + +call s:def_keyword('cdrtocHeaderLanguageMapCountryCodeName', + \ '@cdrtocHeaderLanguageMapCountryCodeFollow', + \ 'EN') + +call s:def_match('cdrtocHeaderLanguageMapEnd', + \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd', + \ '}') + +call s:def_keyword('cdrtocHeaderLanguage', 'cdrtocHeaderLanguageNumber', 'LANGUAGE') + +call s:def_match('cdrtocHeaderLanguageNumber', 'cdrtocHeaderLanguageStart', '\<[0-7]\>') + +call s:def_match('cdrtocHeaderLanguageStart', + \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd', + \ '{') + +syn cluster cdrtocHeaderCDTextData + \ contains= + \ cdrtocHeaderCDTextDataString, + \ cdrtocHeaderCDTextDataBinaryStart + +call s:def_keywords('cdrtocHeaderCDTextItem', + \ '@cdrtocHeaderCDTextData', + \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', + \ 'ARRANGER', 'MESSAGE', 'DISC_ID', 'GENRE', 'TOC_INFO1', + \ 'TOC_INFO2', 'UPC_EAN', 'ISRC', 'SIZE_INFO']) + +call s:def_region('cdrtocHeaderCDTextDataString', + \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd', + \ '"', + \ '\\\\\|\\"', + \ '"', + \ 'cdrtocHeaderCDTextDataStringDelimiters', + \ 'cdrtocHeaderCDTextDataStringSpecialChar') + +syn match cdrtocHeaderCDTextDataStringSpecialChar + \ contained + \ display + \ '\\\%(\o\o\o\|["\\]\)' + +call s:def_match('cdrtocHeaderCDTextDataBinaryStart', + \ 'cdrtocHeaderCDTextDataBinaryInteger', + \ '{') + +call s:def_match('cdrtocHeaderCDTextDataBinaryInteger', + \ 'cdrtocHeaderCDTextDataBinarySeparator,cdrtocHeaderCDTextDataBinaryEnd', + \ s:byte_pattern) + +call s:def_match('cdrtocHeaderCDTextDataBinarySeparator', + \ 'cdrtocHeaderCDTextDataBinaryInteger', + \ ',') + +call s:def_match('cdrtocHeaderCDTextDataBinaryEnd', + \ 'cdrtocHeaderCDTextItem,cdrtocHeaderLanguageEnd', + \ '}') + +call s:def_match('cdrtocHeaderLanguageEnd', + \ 'cdrtocHeaderLanguage,cdrtocHeaderCDTextEnd', + \ '}') + +call s:def_match('cdrtocHeaderCDTextEnd', + \ 'cdrtocTrack', + \ '}') + +syn cluster cdrtocTrackFollow + \ contains= + \ @cdrtocTrackFlags, + \ cdrtocTrackCDText, + \ cdrtocTrackPregap, + \ @cdrtocTrackContents + +call s:def_keyword('cdrtocTrack', 'cdrtocTrackMode', 'TRACK') + +call s:def_keywords('cdrtocTrackMode', + \ 'cdrtocTrackSubChannelMode,@cdrtocTrackFollow', + \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1', + \ 'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW']) + +call s:def_keywords('cdrtocTrackSubChannelMode', + \ '@cdrtocTrackFollow', + \ ['RW', 'RW_RAW']) + +syn cluster cdrtocTrackFlags + \ contains= + \ cdrtocTrackFlagNo, + \ cdrtocTrackFlagCopy, + \ cdrtocTrackFlagPreEmphasis, + \ cdrtocTrackFlag + +call s:def_keyword('cdrtocTrackFlagNo', + \ 'cdrtocTrackFlagCopy,cdrtocTrackFlagPreEmphasis', + \ 'NO') + +call s:def_keyword('cdrtocTrackFlagCopy', '@cdrtocTrackFollow', 'COPY') + +call s:def_keyword('cdrtocTrackFlagPreEmphasis', '@cdrtocTrackFollow', 'PRE_EMPHASIS') + +call s:def_keywords('cdrtocTrackFlag', + \ '@cdrtocTrackFollow', + \ ['TWO_CHANNEL_AUDIO', 'FOUR_CHANNEL_AUDIO']) + +call s:def_keyword('cdrtocTrackFlag', 'cdrtocTrackISRC', 'ISRC') + +call s:def_match('cdrtocTrackISRC', + \ '@cdrtocTrackFollow', + \ '"[[:upper:][:digit:]]\{5}\d\{7}"') + +call s:def_keyword('cdrtocTrackCDText', 'cdrtocTrackCDTextStart', 'CD_TEXT') + +call s:def_match('cdrtocTrackCDTextStart', 'cdrtocTrackCDTextLanguage', '{') + +call s:def_keyword('cdrtocTrackCDTextLanguage', 'cdrtocTrackCDTextLanguageNumber', 'LANGUAGE') + +call s:def_match('cdrtocTrackCDTextLanguageNumber', 'cdrtocTrackCDTextLanguageStart', '\<[0-7]\>') + +call s:def_match('cdrtocTrackCDTextLanguageStart', + \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd', + \ '{') + +syn cluster cdrtocTrackCDTextData + \ contains= + \ cdrtocTrackCDTextDataString, + \ cdrtocTrackCDTextDataBinaryStart + +call s:def_keywords('cdrtocTrackCDTextItem', + \ '@cdrtocTrackCDTextData', + \ ['TITLE', 'PERFORMER', 'SONGWRITER', 'COMPOSER', 'ARRANGER', + \ 'MESSAGE', 'ISRC']) + +call s:def_region('cdrtocTrackCDTextDataString', + \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd', + \ '"', + \ '\\\\\|\\"', + \ '"', + \ 'cdrtocTrackCDTextDataStringDelimiters', + \ 'cdrtocTrackCDTextDataStringSpecialChar') + +syn match cdrtocTrackCDTextDataStringSpecialChar + \ contained + \ display + \ '\\\%(\o\o\o\|["\\]\)' + +call s:def_match('cdrtocTrackCDTextDataBinaryStart', + \ 'cdrtocTrackCDTextDataBinaryInteger', + \ '{') + +call s:def_match('cdrtocTrackCDTextDataBinaryInteger', + \ 'cdrtocTrackCDTextDataBinarySeparator,cdrtocTrackCDTextDataBinaryEnd', + \ s:byte_pattern) + +call s:def_match('cdrtocTrackCDTextDataBinarySeparator', + \ 'cdrtocTrackCDTextDataBinaryInteger', + \ ',') + +call s:def_match('cdrtocTrackCDTextDataBinaryEnd', + \ 'cdrtocTrackCDTextItem,cdrtocTrackCDTextLanguageEnd', + \ '}') + +call s:def_match('cdrtocTrackCDTextLanguageEnd', + \ 'cdrtocTrackCDTextLanguage,cdrtocTrackCDTextEnd', + \ '}') + +call s:def_match('cdrtocTrackCDTextEnd', + \ 'cdrtocTrackPregap,@cdrtocTrackContents', + \ '}') + +call s:def_keyword('cdrtocTrackPregap', 'cdrtocTrackPregapMMSSFF', 'PREGAP') + +call s:def_match('cdrtocTrackPregapMMSSFF', + \ '@cdrtocTrackContents', + \ s:mmssff_pattern) + +syn cluster cdrtocTrackContents + \ contains= + \ cdrtocTrackSubTrack, + \ cdrtocTrackMarker + +syn cluster cdrtocTrackContentsFollow + \ contains= + \ @cdrtocTrackContents, + \ cdrtocTrackIndex, + \ cdrtocTrack + +call s:def_keywords('cdrtocTrackSubTrack', + \ 'cdrtocTrackSubTrackFileFilename', + \ ['FILE', 'AUDIOFILE']) + +call s:def_region('cdrtocTrackSubTrackFileFilename', + \ 'cdrtocTrackSubTrackFileStart', + \ '"', + \ '\\\\\|\\"', + \ '"', + \ 'cdrtocTrackSubTrackFileFilenameDelimiters', + \ 'cdrtocTrackSubTrackFileFilenameSpecialChar') + +syn match cdrtocTrackSubTrackFileFilenameSpecialChar + \ contained + \ display + \ '\\\%(\o\o\o\|["\\]\)' + +call s:def_match('cdrtocTrackSubTrackFileStart', + \ 'cdrtocTrackSubTrackFileLength,@cdrtocTrackContentsFollow', + \ s:length_pattern) + +call s:def_match('cdrtocTrackSubTrackFileLength', + \ '@cdrtocTrackContentsFollow', + \ s:length_pattern) + +call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentDatafileFilename', 'DATAFILE') + +call s:def_region('cdrtocTrackSubTrackDatafileFilename', + \ 'cdrtocTrackSubTrackDatafileLength', + \ '"', + \ '\\\\\|\\"', + \ '"', + \ 'cdrtocTrackSubTrackDatafileFilenameDelimiters', + \ 'cdrtocTrackSubTrackDatafileFilenameSpecialChar') + +syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar + \ contained + \ display + \ '\\\%(\o\o\o\|["\\]\)' + +call s:def_match('cdrtocTrackDatafileLength', + \ '@cdrtocTrackContentsFollow', + \ s:length_pattern) + +call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackContentFifoFilename', 'DATAFILE') + +call s:def_region('cdrtocTrackSubTrackFifoFilename', + \ 'cdrtocTrackSubTrackFifoLength', + \ '"', + \ '\\\\\|\\"', + \ '"', + \ 'cdrtocTrackSubTrackFifoFilenameDelimiters', + \ 'cdrtocTrackSubTrackFifoFilenameSpecialChar') + +syn match cdrtocTrackSubTrackdatafileFilenameSpecialChar + \ contained + \ display + \ '\\\%(\o\o\o\|["\\]\)' + +call s:def_match('cdrtocTrackFifoLength', + \ '@cdrtocTrackContentsFollow', + \ s:length_pattern) + +call s:def_keyword('cdrtocTrackSubTrack', 'cdrtocTrackSilenceLength', 'SILENCE') + +call s:def_match('cdrtocTrackSilenceLength', + \ '@cdrtocTrackContentsFollow', + \ s:length_pattern) + +call s:def_keyword('cdrtocTrackSubTrack', + \ 'cdrtocTrackSubTrackZeroDataMode,' . + \ 'cdrtocTrackSubTrackZeroDataSubChannelMode,' . + \ 'cdrtocTrackSubTrackZeroDataLength', + \ 'ZERO') + +call s:def_keywords('cdrtocTrackSubTrackZeroDataMode', + \ 'cdrtocTrackSubTrackZeroSubChannelMode,cdrtocTrackSubTrackZeroDataLength', + \ ['AUDIO', 'MODE1', 'MODE1_RAW', 'MODE2', 'MODE2_FORM1', + \ 'MODE2_FORM2', 'MODE2_FORM_MIX', 'MODE2_RAW']) + +call s:def_keywords('cdrtocTrackSubTrackZeroDataSubChannelMode', + \ 'cdrtocTrackSubTrackZeroDataLength', + \ ['RW', 'RW_RAW']) + +call s:def_match('cdrtocTrackSubTrackZeroDataLength', + \ '@cdrtocTrackContentsFollow', + \ s:length_pattern) + +call s:def_keyword('cdrtocTrackMarker', + \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerStartMMSSFF', + \ 'START') + +call s:def_match('cdrtocTrackMarkerStartMMSSFF', + \ '@cdrtocTrackContentsFollow', + \ s:mmssff_pattern) + +call s:def_keyword('cdrtocTrackMarker', + \ '@cdrtocTrackContentsFollow,cdrtocTrackMarkerEndMMSSFF', + \ 'END') + +call s:def_match('cdrtocTrackMarkerEndMMSSFF', + \ '@cdrtocTrackContentsFollow', + \ s:mmssff_pattern) + +call s:def_keyword('cdrtocTrackIndex', 'cdrtocTrackIndexMMSSFF', 'INDEX') + +call s:def_match('cdrtocTrackIndexMMSSFF', + \ 'cdrtocTrackIndex,cdrtocTrack', + \ s:mmssff_pattern) + +delfunction s:def_region +delfunction s:def_match +delfunction s:def_keyword +delfunction s:def_keywords +delfunction s:def_comment + +syn sync fromstart + +hi def link cdrtocKeyword Keyword +hi def link cdrtocHeaderKeyword cdrtocKeyword +hi def link cdrtocHeaderCDText cdrtocHeaderKeyword +hi def link cdrtocDelimiter Delimiter +hi def link cdrtocCDTextDataBinaryEnd cdrtocDelimiter +hi def link cdrtocHeaderCDTextDataBinaryEnd cdrtocHeaderCDTextDataBinaryEnd +hi def link cdrtocNumber Number +hi def link cdrtocCDTextDataBinaryInteger cdrtocNumber +hi def link cdrtocHeaderCDTextDataBinaryInteger cdrtocCDTextDataBinaryInteger +hi def link cdrtocCDTextDataBinarySeparator cdrtocDelimiter +hi def link cdrtocHeaderCDTextDataBinarySeparator cdrtocCDTextDataBinarySeparator +hi def link cdrtocCDTextDataBinaryStart cdrtocDelimiter +hi def link cdrtocHeaderCDTextDataBinaryStart cdrtocCDTextDataBinaryStart +hi def link cdrtocString String +hi def link cdrtocCDTextDataString cdrtocString +hi def link cdrtocHeaderCDTextDataString cdrtocCDTextDataString +hi def link cdrtocCDTextDataStringDelimiters cdrtocDelimiter +hi def link cdrtocHeaderCDTextDataStringDelimiters cdrtocCDTextDataStringDelimiters +hi def link cdrtocCDTextDataStringSpecialChar SpecialChar +hi def link cdrtocHeaderCDTextDataStringSpecialChar cdrtocCDTextDataStringSpecialChar +hi def link cdrtocCDTextEnd cdrtocDelimiter +hi def link cdrtocHeaderCDTextEnd cdrtocCDTextEnd +hi def link cdrtocType Type +hi def link cdrtocCDTextItem cdrtocType +hi def link cdrtocHeaderCDTextItem cdrtocCDTextItem +hi def link cdrtocHeaderCDTextLanguageMap cdrtocHeaderKeyword +hi def link cdrtocCDTextStart cdrtocDelimiter +hi def link cdrtocHeaderCDTextStart cdrtocCDTextStart +hi def link cdrtocHeaderCatalog cdrtocHeaderKeyword +hi def link cdrtocHeaderCatalogNumber cdrtocString +hi def link cdrtocComment Comment +hi def link cdrtocHeaderCommentInitial cdrtocComment +hi def link cdrtocHeaderLanguage cdrtocKeyword +hi def link cdrtocLanguageEnd cdrtocDelimiter +hi def link cdrtocHeaderLanguageEnd cdrtocLanguageEnd +hi def link cdrtocHeaderLanguageMapColon cdrtocDelimiter +hi def link cdrtocIdentifier Identifier +hi def link cdrtocHeaderLanguageMapCountryCode cdrtocNumber +hi def link cdrtocHeaderLanguageMapCountryCodeName cdrtocIdentifier +hi def link cdrtocHeaderLanguageMapEnd cdrtocDelimiter +hi def link cdrtocHeaderLanguageMapLanguageNumber cdrtocNumber +hi def link cdrtocHeaderLanguageMapStart cdrtocDelimiter +hi def link cdrtocLanguageNumber cdrtocNumber +hi def link cdrtocHeaderLanguageNumber cdrtocLanguageNumber +hi def link cdrtocLanguageStart cdrtocDelimiter +hi def link cdrtocHeaderLanguageStart cdrtocLanguageStart +hi def link cdrtocHeaderTOCType cdrtocType +hi def link cdrtocTodo Todo +hi def link cdrtocTrackKeyword cdrtocKeyword +hi def link cdrtocTrack cdrtocTrackKeyword +hi def link cdrtocTrackCDText cdrtocTrackKeyword +hi def link cdrtocTrackCDTextDataBinaryEnd cdrtocHeaderCDTextDataBinaryEnd +hi def link cdrtocTrackCDTextDataBinaryInteger cdrtocHeaderCDTextDataBinaryInteger +hi def link cdrtocTrackCDTextDataBinarySeparator cdrtocHeaderCDTextDataBinarySeparator +hi def link cdrtocTrackCDTextDataBinaryStart cdrtocHeaderCDTextDataBinaryStart +hi def link cdrtocTrackCDTextDataString cdrtocHeaderCDTextDataString +hi def link cdrtocTrackCDTextDataStringDelimiters cdrtocCDTextDataStringDelimiters +hi def link cdrtocTrackCDTextDataStringSpecialChar cdrtocCDTextDataStringSpecialChar +hi def link cdrtocTrackCDTextEnd cdrtocCDTextEnd +hi def link cdrtocTrackCDTextItem cdrtocCDTextItem +hi def link cdrtocTrackCDTextStart cdrtocCDTextStart +hi def link cdrtocLength cdrtocNumber +hi def link cdrtocTrackDatafileLength cdrtocLength +hi def link cdrtocTrackFifoLength cdrtocLength +hi def link cdrtocPreProc PreProc +hi def link cdrtocTrackFlag cdrtocPreProc +hi def link cdrtocTrackFlagCopy cdrtocTrackFlag +hi def link cdrtocSpecial Special +hi def link cdrtocTrackFlagNo cdrtocSpecial +hi def link cdrtocTrackFlagPreEmphasis cdrtocTrackFlag +hi def link cdrtocTrackISRC cdrtocTrackFlag +hi def link cdrtocTrackIndex cdrtocTrackKeyword +hi def link cdrtocMMSSFF cdrtocLength +hi def link cdrtocTrackIndexMMSSFF cdrtocMMSSFF +hi def link cdrtocTrackCDTextLanguage cdrtocTrackKeyword +hi def link cdrtocTrackCDTextLanguageEnd cdrtocLanguageEnd +hi def link cdrtocTrackCDTextLanguageNumber cdrtocLanguageNumber +hi def link cdrtocTrackCDTextLanguageStart cdrtocLanguageStart +hi def link cdrtocTrackContents StorageClass +hi def link cdrtocTrackMarker cdrtocTrackContents +hi def link cdrtocTrackMarkerEndMMSSFF cdrtocMMSSFF +hi def link cdrtocTrackMarkerStartMMSSFF cdrtocMMSSFF +hi def link cdrtocTrackMode Type +hi def link cdrtocTrackPregap cdrtocTrackContents +hi def link cdrtocTrackPregapMMSSFF cdrtocMMSSFF +hi def link cdrtocTrackSilenceLength cdrtocLength +hi def link cdrtocTrackSubChannelMode cdrtocPreProc +hi def link cdrtocTrackSubTrack cdrtocTrackContents +hi def link cdrtocFilename cdrtocString +hi def link cdrtocTrackSubTrackDatafileFilename cdrtocFilename +hi def link cdrtocTrackSubTrackDatafileFilenameDelimiters cdrtocTrackSubTrackDatafileFilename +hi def link cdrtocSpecialChar SpecialChar +hi def link cdrtocTrackSubTrackDatafileFilenameSpecialChar cdrtocSpecialChar +hi def link cdrtocTrackSubTrackDatafileLength cdrtocLength +hi def link cdrtocTrackSubTrackFifoFilename cdrtocFilename +hi def link cdrtocTrackSubTrackFifoFilenameDelimiters cdrtocTrackSubTrackFifoFilename +hi def link cdrtocTrackSubTrackFifoFilenameSpecialChar cdrtocSpecialChar +hi def link cdrtocTrackSubTrackFifoLength cdrtocLength +hi def link cdrtocTrackSubTrackFileFilename cdrtocFilename +hi def link cdrtocTrackSubTrackFileFilenameDelimiters cdrtocTrackSubTrackFileFilename +hi def link cdrtocTrackSubTrackFileFilenameSpecialChar cdrtocSpecialChar +hi def link cdrtocTrackSubTrackFileLength cdrtocLength +hi def link cdrtocTrackSubTrackFileStart cdrtocLength +hi def link cdrtocTrackSubTrackZeroDataLength cdrtocLength +hi def link cdrtocTrackSubTrackZeroDataMode Type +hi def link cdrtocTrackSubTrackZeroDataSubChannelMode cdrtocPreProc +hi def link cdrtocTrackSubTrackdatafileFilenameSpecialChar cdrtocSpecialChar + +let b:current_syntax = "cdrtoc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cf.vim b/runtime/syntax/cf.vim new file mode 100644 index 0000000..04f9f59 --- /dev/null +++ b/runtime/syntax/cf.vim @@ -0,0 +1,1018 @@ +" Vim syntax file +" +" Language: CFML (ColdFusion) +" Author: Ernst M. van der Linden +" License: The MIT License (MIT) +" +" Maintainer: Ernst M. van der Linden +" URL: https://github.com/ernstvanderlinden/vim-coldfusion +" Last Change: 2017 Nov 28 +" +" Filenames: *.cfc *.cfm + +" Quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +" Using line continuation here. +let s:cpo_save=&cpo +set cpo-=C + +sy sync fromstart +" 20171126: disabled as we have fast computers now. +"sy sync maxlines=2000 +sy case ignore + +" INCLUDES {{{ +sy include @sqlSyntax $VIMRUNTIME/syntax/sql.vim +" 20161010: Disabled include html highlighting as it contains huge keywords +" regex, so it will have impact on performance. Use own simple SGML tag +" coloring instead. +"runtime! syntax/html.vim +" / INCLUDES }}} + +" NUMBER {{{ +sy match cfmlNumber + \ "\v<\d+>" +" / NUMBER }}} + +" EQUAL SIGN {{{ +sy match cfmlEqualSign + \ "\v\=" +" / EQUAL SIGN }}} + +" BOOLEAN {{{ +sy match cfmlBoolean + \ "\v<(true|false)>" +" / BOOLEAN }}} + +" HASH SURROUNDED {{{ +sy region cfmlHashSurround + \ keepend + \ oneline + \ start="#" + \ end="#" + \ skip="##" + \ contains= + \@cfmlOperator, + \@cfmlPunctuation, + \cfmlBoolean, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlNumber +" / HASH SURROUNDED }}} + +" OPERATOR {{{ + +" OPERATOR - ARITHMETIC {{{ +" +7 -7 +" ++i --i +" i++ i-- +" + - * / % +" += -= *= /= %= +" ^ mod +sy match cfmlArithmeticOperator + \ "\v + \(\+|-)\ze\d + \|(\+\+|--)\ze\w + \|\w\zs(\+\+|--) + \|(\s( + \(\+|-|\*|\/|\%){1}\={,1} + \|\^ + \|mod + \)\s) + \" +" / OPERATOR - ARITHMETIC }}} + +" OPERATOR - BOOLEAN {{{ +" not and or xor eqv imp +" ! && || +sy match cfmlBooleanOperator + \ "\v\s + \(not|and|or|xor|eqv|imp + \|\!|\&\&|\|\| + \)(\s|\)) + \|\s\!\ze\w + \" +" / OPERATOR - BOOLEAN }}} + +" OPERATOR - DECISION {{{ +"is|equal|eq +"is not|not equal|neq +"contains|does not contain +"greater than|gt +"less than|lt +"greater than or equal to|gte|ge +"less than or equal to|lte|le +"==|!=|>|<|>=|<= +sy match cfmlDecisionOperator + \ "\v\s + \(is|equal|eq + \|is not|not equal|neq + \|contains|does not contain + \|greater than|gt + \|less than|lt + \|greater than or equal to|gte|ge + \|less than or equal to|lte|le + \|(!|\<|\>|\=){1}\= + \|\< + \|\> + \)\s" +" / OPERATOR - DECISION }}} + +" OPERATOR - STRING {{{ +" & +" &= +sy match cfmlStringOperator + \ "\v\s\&\={,1}\s" +" / OPERATOR - STRING }}} + +" OPERATOR - TERNARY {{{ +" ? : +sy match cfmlTernaryOperator + \ "\v\s + \\?|\: + \\s" +" / OPERATOR - TERNARY }}} + +sy cluster cfmlOperator + \ contains= + \cfmlArithmeticOperator, + \cfmlBooleanOperator, + \cfmlDecisionOperator, + \cfmlStringOperator, + \cfmlTernaryOperator +" / OPERATOR }}} + +" PARENTHESIS {{{ +sy cluster cfmlParenthesisRegionContains + \ contains= + \@cfmlAttribute, + \@cfmlComment, + \@cfmlFlowStatement, + \@cfmlOperator, + \@cfmlPunctuation, + \cfmlBoolean, + \cfmlBrace, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlNumber, + \cfmlStorageKeyword, + \cfmlStorageType + +sy region cfmlParenthesisRegion1 + \ extend + \ matchgroup=cfmlParenthesis1 + \ transparent + \ start=/(/ + \ end=/)/ + \ contains= + \cfmlParenthesisRegion2, + \@cfmlParenthesisRegionContains +sy region cfmlParenthesisRegion2 + \ matchgroup=cfmlParenthesis2 + \ transparent + \ start=/(/ + \ end=/)/ + \ contains= + \cfmlParenthesisRegion3, + \@cfmlParenthesisRegionContains +sy region cfmlParenthesisRegion3 + \ matchgroup=cfmlParenthesis3 + \ transparent + \ start=/(/ + \ end=/)/ + \ contains= + \cfmlParenthesisRegion1, + \@cfmlParenthesisRegionContains +sy cluster cfmlParenthesisRegion + \ contains= + \cfmlParenthesisRegion1, + \cfmlParenthesisRegion2, + \cfmlParenthesisRegion3 +" / PARENTHESIS }}} + +" BRACE {{{ +sy match cfmlBrace + \ "{\|}" + +sy region cfmlBraceRegion + \ extend + \ fold + \ keepend + \ transparent + \ start="{" + \ end="}" +" / BRACE }}} + +" PUNCTUATION {{{ + +" PUNCTUATION - BRACKET {{{ +sy match cfmlBracket + \ "\(\[\|\]\)" + \ contained +" / PUNCTUATION - BRACKET }}} + +" PUNCTUATION - CHAR {{{ +sy match cfmlComma "," +sy match cfmlDot "\." +sy match cfmlSemiColon ";" + +" / PUNCTUATION - CHAR }}} + +" PUNCTUATION - QUOTE {{{ +sy region cfmlSingleQuotedValue + \ matchgroup=cfmlSingleQuote + \ start=/'/ + \ skip=/''/ + \ end=/'/ + \ contains= + \cfmlHashSurround + +sy region cfmlDoubleQuotedValue + \ matchgroup=cfmlDoubleQuote + \ start=/"/ + \ skip=/""/ + \ end=/"/ + \ contains= + \cfmlHashSurround + +sy cluster cfmlQuotedValue + \ contains= + \cfmlDoubleQuotedValue, + \cfmlSingleQuotedValue + +sy cluster cfmlQuote + \ contains= + \cfmlDoubleQuote, + \cfmlSingleQuote +" / PUNCTUATION - QUOTE }}} + +sy cluster cfmlPunctuation + \ contains= + \@cfmlQuote, + \@cfmlQuotedValue, + \cfmlBracket, + \cfmlComma, + \cfmlDot, + \cfmlSemiColon + +" / PUNCTUATION }}} + +" TAG START AND END {{{ +" tag start +" +" s^^ e +sy region cfmlTagStart + \ keepend + \ transparent + \ start="\c +" s^^^ e +sy match cfmlTagEnd + \ transparent + \ "\c]*>" + \ contains= + \cfmlTagBracket, + \cfmlTagName + +" tag bracket +" +" ^^ ^ +sy match cfmlTagBracket + \ contained + \ "\(<\|>\|\/\)" + +" tag name +" +" s^^^e +sy match cfmlTagName + \ contained + \ "\v<\/*\zs\ccf\w*" +" / TAG START AND END }}} + +" ATTRIBUTE NAME AND VALUE {{{ +sy match cfmlAttrName + \ contained + \ "\v(var\s)@ +" ^^^^^^^^^^^^^e +sy region cfmlComponentTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^^^e +sy region cfmlFunctionTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^e +sy region cfmlIfTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^e +sy region cfmlLoopTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^e +sy region cfmlOutputTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^e + "\@cfmlSqlStatement, +sy region cfmlQueryTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^^^^e +sy region cfmlSavecontentTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" s^^^^^^^^^ +" +" ^^^^^^^^^^e +"\cfmlCustomScope, +sy region cfmlScriptTagRegion + \ fold + \ keepend + \ transparent + \ start="\c" + \ end="\c" + \ contains= + \@cfmlComment, + \@cfmlFlowStatement, + \cfmlHashSurround, + \@cfmlOperator, + \@cfmlParenthesisRegion, + \@cfmlPunctuation, + \cfmlBoolean, + \cfmlBrace, + \cfmlCoreKeyword, + \cfmlCoreScope, + \cfmlCustomKeyword, + \cfmlCustomScope, + \cfmlEqualSign, + \cfmlFunctionDefinition, + \cfmlFunctionName, + \cfmlNumber, + \cfmlOddFunction, + \cfmlStorageKeyword, + \cfmlTagEnd, + \cfmlTagStart +" / CFSCRIPT REGION AND FOLD }}} + +" CFSWITCH REGION AND FOLD {{{ +" +" ^^^^^^^^^^e +sy region cfmlSwitchTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" ^^^^^^^^^^^^^^^e +sy region cfmlTransactionTagRegion + \ fold + \ keepend + \ transparent + \ start="\c +" s^^^ ^ +" +" ^^^^^ e +sy region cfmlCustomTagRegion + \ fold + \ keepend + \ transparent + \ start="\c]*>" + \ end="\c]*>" +" / CUSTOM TAG REGION AND FOLD }}} + +" / TAG REGION AND FOLDING }}} + +" COMMENT {{{ + +" COMMENT BLOCK {{{ +" /*...*/ +" s^ ^e +sy region cfmlCommentBlock + \ keepend + \ start="/\*" + \ end="\*/" + \ contains= + \cfmlMetaData +" / COMMENT BLOCK }}} + +" COMMENT LINE {{{ +" //... +" s^ +sy match cfmlCommentLine + \ "\/\/.*" +" / COMMENT LINE }}} + +sy cluster cfmlComment + \ contains= + \cfmlCommentBlock, + \cfmlCommentLine +" / COMMENT }}} + +" TAG COMMENT {{{ +" +" s^^^^ ^^^e +sy region cfmlTagComment + \ keepend + \ start="" + \ contains= + \cfmlTagComment +" / TAG COMMENT }}} + +" FLOW STATEMENT {{{ +" BRANCH FLOW KEYWORD {{{ +sy keyword cfmlBranchFlowKeyword + \ break + \ continue + \ return + +" / BRANCH KEYWORD }}} + +" DECISION FLOW KEYWORD {{{ +sy keyword cfmlDecisionFlowKeyword + \ case + \ defaultcase + \ else + \ if + \ switch + +" / DECISION FLOW KEYWORD }}} + +" LOOP FLOW KEYWORD {{{ +sy keyword cfmlLoopFlowKeyword + \ do + \ for + \ in + \ while + +" / LOOP FLOW KEYWORD }}} + +" TRY FLOW KEYWORD {{{ +sy keyword cfmlTryFlowKeyword + \ catch + \ finally + \ rethrow + \ throw + \ try + +" / TRY FLOW KEYWORD }}} + +sy cluster cfmlFlowStatement + \ contains= + \cfmlBranchFlowKeyword, + \cfmlDecisionFlowKeyword, + \cfmlLoopFlowKeyword, + \cfmlTryFlowKeyword + +" / FLOW STATEMENT }}} + +" STORAGE KEYWORD {{{ +sy keyword cfmlStorageKeyword + \ var +" / STORAGE KEYWORD }}} + +" STORAGE TYPE {{{ +sy match cfmlStorageType + \ contained + \ "\v< + \(any + \|array + \|binary + \|boolean + \|date + \|numeric + \|query + \|string + \|struct + \|uuid + \|void + \|xml + \){1}\ze(\s*\=)@!" +" / STORAGE TYPE }}} + +" CORE KEYWORD {{{ +sy match cfmlCoreKeyword + \ "\v< + \(new + \|required + \)\ze\s" +" / CORE KEYWORD }}} + +" CORE SCOPE {{{ +sy match cfmlCoreScope + \ "\v< + \(application + \|arguments + \|attributes + \|caller + \|cfcatch + \|cffile + \|cfhttp + \|cgi + \|client + \|cookie + \|form + \|local + \|request + \|server + \|session + \|super + \|this + \|thisTag + \|thread + \|variables + \|url + \){1}\ze(,|\.|\[|\)|\s)" +" / CORE SCOPE }}} + +" SQL STATEMENT {{{ +sy cluster cfmlSqlStatement + \ contains= + \@cfmlParenthesisRegion, + \@cfmlQuote, + \@cfmlQuotedValue, + \@sqlSyntax, + \cfmlBoolean, + \cfmlDot, + \cfmlEqualSign, + \cfmlFunctionName, + \cfmlHashSurround, + \cfmlNumber +" / SQL STATEMENT }}} + +" TAG IN SCRIPT {{{ +sy match cfmlTagNameInScript + \ "\vcf_*\w+\s*\ze\(" +" / TAG IN SCRIPT }}} + +" METADATA {{{ +sy region cfmlMetaData + \ contained + \ keepend + \ start="@\w\+" + \ end="$" + \ contains= + \cfmlMetaDataName + +sy match cfmlMetaDataName + \ contained + \ "@\w\+" +" / METADATA }}} + +" COMPONENT DEFINITION {{{ +sy region cfmlComponentDefinition + \ start="component" + \ end="{"me=e-1 + \ contains= + \@cfmlAttribute, + \cfmlComponentKeyword + +sy match cfmlComponentKeyword + \ contained + \ "\v" +" / COMPONENT DEFINITION }}} + +" INTERFACE DEFINITION {{{ +sy match cfmlInterfaceDefinition + \ "interface\s.*{"me=e-1 + \ contains= + \cfmlInterfaceKeyword + +sy match cfmlInterfaceKeyword + \ contained + \ "\v" +" / INTERFACE DEFINITION }}} + +" PROPERTY {{{ +sy region cfmlProperty + \ transparent + \ start="\v" + \ end=";"me=e-1 + \ contains= + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlAttrName, + \cfmlAttrValue, + \cfmlPropertyKeyword + +sy match cfmlPropertyKeyword + \ contained + \ "\v" +" / PROPERTY }}} + +" FUNCTION DEFINITION {{{ +sy match cfmlFunctionDefinition + \ "\v + \(<(public|private|package)\s){,1} + \(< + \(any + \|array + \|binary + \|boolean + \|date + \|numeric + \|query + \|string + \|struct + \|uuid + \|void + \|xml + \)\s){,1} + \" +" / FUNCTION KEYWORD }}} + +" FUNCTION MODIFIER {{{ +sy match cfmlFunctionModifier + \ contained + \ "\v< + \(public + \|private + \|package + \)>" +" / FUNCTION MODIFIER }}} + +" FUNCTION RETURN TYPE {{{ +sy match cfmlFunctionReturnType + \ contained + \ "\v + \(any + \|array + \|binary + \|boolean + \|date + \|numeric + \|query + \|string + \|struct + \|uuid + \|void + \|xml + \)" +" / FUNCTION RETURN TYPE }}} + +" FUNCTION NAME {{{ +" specific regex for core functions decreases performance +" so use the same highlighting for both function types +sy match cfmlFunctionName + \ "\v<(cf|if|elseif|throw)@!\w+\s*\ze\(" +" / FUNCTION NAME }}} + +" / FUNCTION DEFINITION }}} + +" ODD FUNCTION {{{ +sy region cfmlOddFunction + \ transparent + \ start="\v< + \(abort + \|exit + \|import + \|include + \|lock + \|pageencoding + \|param + \|savecontent + \|thread + \|transaction + \){1}" + \ end="\v(\{|;)"me=e-1 + \ contains= + \@cfmlQuotedValue, + \cfmlAttrEqualSign, + \cfmlAttrName, + \cfmlAttrValue, + \cfmlCoreKeyword, + \cfmlOddFunctionKeyword, + \cfmlCoreScope + +" ODD FUNCTION KEYWORD {{{ +sy match cfmlOddFunctionKeyword + \ contained + \ "\v< + \(abort + \|exit + \|import + \|include + \|lock + \|pageencoding + \|param + \|savecontent + \|thread + \|transaction + \)\ze(\s|$|;)" +" / ODD FUNCTION KEYWORD }}} + +" / ODD FUNCTION }}} + +" CUSTOM {{{ + +" CUSTOM KEYWORD {{{ +sy match cfmlCustomKeyword + \ contained + \ "\v< + \(customKeyword1 + \|customKeyword2 + \|customKeyword3 + \)>" +" / CUSTOM KEYWORD }}} + +" CUSTOM SCOPE {{{ +sy match cfmlCustomScope + \ contained + \ "\v< + \(prc + \|rc + \|event + \|(\w+Service) + \){1}\ze(\.|\[)" +" / CUSTOM SCOPE }}} + +" / CUSTOM }}} + +" SGML TAG START AND END {{{ +" SGML tag start +" <...> +" s^^^e +sy region cfmlSGMLTagStart + \ keepend + \ transparent + \ start="\v(\ +" s^^^^e +sy match cfmlSGMLTagEnd + \ transparent + \ "\v(\<\/cf)@!\zs\<\/\w+\>" + \ contains= + \cfmlTagBracket, + \cfmlSGMLTagName + +" SGML tag name +" <...> +" s^^^e +sy match cfmlSGMLTagName + \ contained + \ "\v(\<\/*)\zs\w+" + +" / SGML TAG START AND END }}} + +" HIGHLIGHTING {{{ + +hi link cfmlNumber Number +hi link cfmlBoolean Boolean +hi link cfmlEqualSign Keyword +" HASH SURROUND +hi link cfmlHash PreProc +hi link cfmlHashSurround PreProc +" OPERATOR +hi link cfmlArithmeticOperator Function +hi link cfmlBooleanOperator Function +hi link cfmlDecisionOperator Function +hi link cfmlStringOperator Function +hi link cfmlTernaryOperator Function +" PARENTHESIS +hi link cfmlParenthesis1 Statement +hi link cfmlParenthesis2 String +hi link cfmlParenthesis3 Delimiter +" BRACE +hi link cfmlBrace PreProc +" PUNCTUATION - BRACKET +hi link cfmlBracket Statement +" PUNCTUATION - CHAR +hi link cfmlComma Comment +hi link cfmlDot Comment +hi link cfmlSemiColon Comment +" PUNCTUATION - QUOTE +hi link cfmlDoubleQuote String +hi link cfmlDoubleQuotedValue String +hi link cfmlSingleQuote String +hi link cfmlSingleQuotedValue String +" TAG START AND END +hi link cfmlTagName Function +hi link cfmlTagBracket Comment +" ATTRIBUTE NAME AND VALUE +hi link cfmlAttrName Type +hi link cfmlAttrValue Special +" COMMENT +hi link cfmlCommentBlock Comment +hi link cfmlCommentLine Comment +hi link cfmlTagComment Comment +" FLOW STATEMENT +hi link cfmlDecisionFlowKeyword Conditional +hi link cfmlLoopFlowKeyword Repeat +hi link cfmlTryFlowKeyword Exception +hi link cfmlBranchFlowKeyword Keyword +" STORAGE KEYWORD +hi link cfmlStorageKeyword Keyword +" STORAGE TYPE +hi link cfmlStorageType Keyword +" CORE KEYWORD +hi link cfmlCoreKeyword PreProc +" CORE SCOPE +hi link cfmlCoreScope Keyword +" TAG IN SCRIPT +hi link cfmlTagNameInScript Function +" METADATA +" meta data value = cfmlMetaData +hi link cfmlMetaData String +hi link cfmlMetaDataName Type +" COMPONENT DEFINITION +hi link cfmlComponentKeyword Keyword +" INTERFACE DEFINITION +hi link cfmlInterfaceKeyword Keyword +" PROPERTY +hi link cfmlPropertyKeyword Keyword +" FUNCTION DEFINITION +hi link cfmlFunctionKeyword Keyword +hi link cfmlFunctionModifier Keyword +hi link cfmlFunctionReturnType Keyword +hi link cfmlFunctionName Function +" ODD FUNCTION +hi link cfmlOddFunctionKeyword Function +" CUSTOM +hi link cfmlCustomKeyword Keyword +hi link cfmlCustomScope Structure +" SGML TAG +hi link cfmlSGMLTagName Ignore + +" / HIGHLIGHTING }}} + +let b:current_syntax = "cfml" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cfg.vim b/runtime/syntax/cfg.vim new file mode 100644 index 0000000..f347b13 --- /dev/null +++ b/runtime/syntax/cfg.vim @@ -0,0 +1,48 @@ +" Vim syntax file +" Language: Good old CFG files +" Maintainer: Igor N. Prischepoff (igor@tyumbit.ru, pri_igor@mail.ru) +" Last change: 2012 Aug 11 + +" quit when a syntax file was already loaded +if exists ("b:current_syntax") + finish +endif + +" case off +syn case ignore +syn keyword CfgOnOff ON OFF YES NO TRUE FALSE contained +syn match UncPath "\\\\\p*" contained +"Dos Drive:\Path +syn match CfgDirectory "[a-zA-Z]:\\\p*" contained +"Parameters +syn match CfgParams ".\{0}="me=e-1 contains=CfgComment +"... and their values (don't want to highlight '=' sign) +syn match CfgValues "=.*"hs=s+1 contains=CfgDirectory,UncPath,CfgComment,CfgString,CfgOnOff + +" Sections +syn match CfgSection "\[.*\]" +syn match CfgSection "{.*}" + +" String +syn match CfgString "\".*\"" contained +syn match CfgString "'.*'" contained + +" Comments (Everything before '#' or '//' or ';') +syn match CfgComment "#.*" +syn match CfgComment ";.*" +syn match CfgComment "\/\/.*" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link CfgOnOff Label +hi def link CfgComment Comment +hi def link CfgSection Type +hi def link CfgString String +hi def link CfgParams Keyword +hi def link CfgValues Constant +hi def link CfgDirectory Directory +hi def link UncPath Directory + + +let b:current_syntax = "cfg" +" vim:ts=8 diff --git a/runtime/syntax/ch.vim b/runtime/syntax/ch.vim new file mode 100644 index 0000000..61f475b --- /dev/null +++ b/runtime/syntax/ch.vim @@ -0,0 +1,38 @@ +" Vim syntax file +" Language: Ch +" Maintainer: SoftIntegration, Inc. +" URL: http://www.softintegration.com/download/vim/syntax/ch.vim +" Last change: 2004 Sep 01 +" Created based on cpp.vim +" +" Ch is a C/C++ interpreter with many high level extensions +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax + +" Ch extentions + +syn keyword chStatement new delete this foreach +syn keyword chAccess public private +syn keyword chStorageClass __declspec(global) __declspec(local) +syn keyword chStructure class +syn keyword chType string_t array + +" Default highlighting + +hi def link chAccess chStatement +hi def link chExceptions Exception +hi def link chStatement Statement +hi def link chType Type +hi def link chStructure Structure + +let b:current_syntax = "ch" + +" vim: ts=8 diff --git a/runtime/syntax/chaiscript.vim b/runtime/syntax/chaiscript.vim new file mode 100644 index 0000000..9925ba5 --- /dev/null +++ b/runtime/syntax/chaiscript.vim @@ -0,0 +1,94 @@ +" Vim syntax file +" Language: ChaiScript +" Maintainer: Jason Turner + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +end + +syn case match + +" syncing method +syn sync fromstart + +" Strings +syn region chaiscriptString start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=chaiscriptSpecial,chaiscriptEval,@Spell + +" Escape characters +syn match chaiscriptSpecial contained "\\[\\abfnrtv\'\"]\|\\\d\{,3}" + +" String evals +syn region chaiscriptEval contained start="${" end="}" + +" integer number +syn match chaiscriptNumber "\<\d\+\>" + +" floating point number, with dot, optional exponent +syn match chaiscriptFloat "\<\d\+\.\d*\%(e[-+]\=\d\+\)\=\>" + +" floating point number, starting with a dot, optional exponent +syn match chaiscriptFloat "\.\d\+\%(e[-+]\=\d\+\)\=\>" + +" floating point number, without dot, with exponent +syn match chaiscriptFloat "\<\d\+e[-+]\=\d\+\>" + +" Hex strings +syn match chaiscriptNumber "\<0x\x\+\>" + +" Binary strings +syn match chaiscriptNumber "\<0b[01]\+\>" + +" Various language features +syn keyword chaiscriptCond if else +syn keyword chaiscriptRepeat while for do +syn keyword chaiscriptStatement break continue return +syn keyword chaiscriptExceptions try catch throw + +"Keyword +syn keyword chaiscriptKeyword def true false attr + +"Built in types +syn keyword chaiscriptType fun var + +"Built in funcs, keep it simple +syn keyword chaiscriptFunc eval throw + +"Let's treat all backtick operator function lookups as built in too +syn region chaiscriptFunc matchgroup=chaiscriptFunc start="`" end="`" + +" Account for the "[1..10]" syntax, treating it as an operator +" Intentionally leaving out all of the normal, well known operators +syn match chaiscriptOperator "\.\." + +" Guard separator as an operator +syn match chaiscriptOperator ":" + +" Comments +syn match chaiscriptComment "//.*$" contains=@Spell +syn region chaiscriptComment matchgroup=chaiscriptComment start="/\*" end="\*/" contains=@Spell + + + +hi def link chaiscriptExceptions Exception +hi def link chaiscriptKeyword Keyword +hi def link chaiscriptStatement Statement +hi def link chaiscriptRepeat Repeat +hi def link chaiscriptString String +hi def link chaiscriptNumber Number +hi def link chaiscriptFloat Float +hi def link chaiscriptOperator Operator +hi def link chaiscriptConstant Constant +hi def link chaiscriptCond Conditional +hi def link chaiscriptFunction Function +hi def link chaiscriptComment Comment +hi def link chaiscriptTodo Todo +hi def link chaiscriptError Error +hi def link chaiscriptSpecial SpecialChar +hi def link chaiscriptFunc Identifier +hi def link chaiscriptType Type +hi def link chaiscriptEval Special + +let b:current_syntax = "chaiscript" + +" vim: nowrap sw=2 sts=2 ts=8 noet diff --git a/runtime/syntax/change.vim b/runtime/syntax/change.vim new file mode 100644 index 0000000..a92767e --- /dev/null +++ b/runtime/syntax/change.vim @@ -0,0 +1,29 @@ +" Vim syntax file +" Language: WEB Changes +" Maintainer: Andreas Scherer +" Last Change: April 25, 2001 + +" Details of the change mechanism of the WEB and CWEB languages can be found +" in the articles by Donald E. Knuth and Silvio Levy cited in "web.vim" and +" "cweb.vim" respectively. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" We distinguish two groups of material, (a) stuff between @x..@y, and +" (b) stuff between @y..@z. WEB/CWEB ignore everything else in a change file. +syn region changeFromMaterial start="^@x.*$"ms=e+1 end="^@y.*$"me=s-1 +syn region changeToMaterial start="^@y.*$"ms=e+1 end="^@z.*$"me=s-1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link changeFromMaterial String +hi def link changeToMaterial Statement + + +let b:current_syntax = "change" + +" vim: ts=8 diff --git a/runtime/syntax/changelog.vim b/runtime/syntax/changelog.vim new file mode 100644 index 0000000..cf9021e --- /dev/null +++ b/runtime/syntax/changelog.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: generic ChangeLog file +" Written By: Gediminas Paulauskas +" Maintainer: Corinna Vinschen +" Last Change: June 1, 2003 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +if exists('b:changelog_spacing_errors') + let s:spacing_errors = b:changelog_spacing_errors +elseif exists('g:changelog_spacing_errors') + let s:spacing_errors = g:changelog_spacing_errors +else + let s:spacing_errors = 1 +endif + +if s:spacing_errors + syn match changelogError "^ \+" +endif + +syn match changelogText "^\s.*$" contains=changelogMail,changelogNumber,changelogMonth,changelogDay,changelogError +syn match changelogHeader "^\S.*$" contains=changelogNumber,changelogMonth,changelogDay,changelogMail +syn region changelogFiles start="^\s\+[+*]\s" end=":" end="^$" contains=changelogBullet,changelogColon,changelogFuncs,changelogError keepend +syn region changelogFiles start="^\s\+[([]" end=":" end="^$" contains=changelogBullet,changelogColon,changelogFuncs,changelogError keepend +syn match changelogFuncs contained "(.\{-})" extend +syn match changelogFuncs contained "\[.\{-}]" extend +syn match changelogColon contained ":" + +syn match changelogBullet contained "^\s\+[+*]\s" contains=changelogError +syn match changelogMail contained "<[A-Za-z0-9\._:+-]\+@[A-Za-z0-9\._-]\+>" +syn keyword changelogMonth contained jan feb mar apr may jun jul aug sep oct nov dec +syn keyword changelogDay contained mon tue wed thu fri sat sun +syn match changelogNumber contained "[.-]*[0-9]\+" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link changelogText Normal +hi def link changelogBullet Type +hi def link changelogColon Type +hi def link changelogFiles Comment +hi def link changelogFuncs Comment +hi def link changelogHeader Statement +hi def link changelogMail Special +hi def link changelogNumber Number +hi def link changelogMonth Number +hi def link changelogDay Number +hi def link changelogError Folded + + +let b:current_syntax = "changelog" + +" vim: ts=8 diff --git a/runtime/syntax/chaskell.vim b/runtime/syntax/chaskell.vim new file mode 100644 index 0000000..4b1e8c5 --- /dev/null +++ b/runtime/syntax/chaskell.vim @@ -0,0 +1,14 @@ +" Vim syntax file +" Language: Haskell supporting c2hs binding hooks +" Maintainer: Armin Sander +" Last Change: 2001 November 1 +" +" 2001 November 1: Changed commands for sourcing haskell.vim + +" Enable binding hooks +let b:hs_chs=1 + +" Include standard Haskell highlighting +runtime! syntax/haskell.vim + +" vim: ts=8 diff --git a/runtime/syntax/chatito.vim b/runtime/syntax/chatito.vim new file mode 100644 index 0000000..d89307c --- /dev/null +++ b/runtime/syntax/chatito.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: Chatito +" Maintainer: ObserverOfTime +" Filenames: *.chatito +" Last Change: 2022 Sep 19 + +if exists('b:current_syntax') + finish +endif + +" Comment +syn keyword chatitoTodo contained TODO FIXME XXX +syn match chatitoComment /^#.*/ contains=chatitoTodo,@Spell +syn match chatitoComment +^//.*+ contains=chatitoTodo,@Spell + +" Import +syn match chatitoImport /^import \+.*$/ transparent contains=chatitoImportKeyword,chatitoImportFile +syn keyword chatitoImportKeyword import contained nextgroup=chatitoImportFile +syn match chatitoImportFile /.*$/ contained skipwhite + +" Intent +syn match chatitoIntent /^%\[[^\]?]\+\]\((.\+)\)\=$/ contains=chatitoArgs + +" Slot +syn match chatitoSlot /^@\[[^\]?#]\+\(#[^\]?#]\+\)\=\]\((.\+)\)\=$/ contains=chatitoArgs,chatitoVariation +syn match chatitoSlot /@\[[^\]?#]\+\(#[^\]?#]\+\)\=?\=\]/ contained contains=chatitoOpt,chatitoVariation + +" Alias +syn match chatitoAlias /^\~\[[^\]?]\+\]\=$/ +syn match chatitoAlias /\~\[[^\]?]\+?\=\]/ contained contains=chatitoOpt + +" Probability +syn match chatitoProbability /\*\[\d\+\(\.\d\+\)\=%\=\]/ contained + +" Optional +syn match chatitoOpt '?' contained + +" Arguments +syn match chatitoArgs /(.\+)/ contained + +" Variation +syn match chatitoVariation /#[^\]?#]\+/ contained + +" Value +syn match chatitoValue /^ \{4\}\zs.\+$/ contains=chatitoProbability,chatitoSlot,chatitoAlias,@Spell + +" Errors +syn match chatitoError /^\t/ + +hi def link chatitoAlias String +hi def link chatitoArgs Special +hi def link chatitoComment Comment +hi def link chatitoError Error +hi def link chatitoImportKeyword Include +hi def link chatitoIntent Statement +hi def link chatitoOpt SpecialChar +hi def link chatitoProbability Number +hi def link chatitoSlot Identifier +hi def link chatitoTodo Todo +hi def link chatitoVariation Special + +let b:current_syntax = 'chatito' diff --git a/runtime/syntax/cheetah.vim b/runtime/syntax/cheetah.vim new file mode 100644 index 0000000..9567ecb --- /dev/null +++ b/runtime/syntax/cheetah.vim @@ -0,0 +1,47 @@ +" Vim syntax file +" Language: Cheetah template engine +" Maintainer: Max Ischenko +" Last Change: 2003-05-11 +" +" Missing features: +" match invalid syntax, like bad variable ref. or unmatched closing tag +" PSP-style tags: <% .. %> (obsoleted feature) +" doc-strings and header comments (rarely used feature) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case match + +syn keyword cheetahKeyword contained if else unless elif for in not +syn keyword cheetahKeyword contained while repeat break continue pass end +syn keyword cheetahKeyword contained set del attr def global include raw echo +syn keyword cheetahKeyword contained import from extends implements +syn keyword cheetahKeyword contained assert raise try catch finally +syn keyword cheetahKeyword contained errorCatcher breakpoint silent cache filter +syn match cheetahKeyword contained "\" + +" Matches cached placeholders +syn match cheetahPlaceHolder "$\(\*[0-9.]\+[wdhms]\?\*\|\*\)\?\h\w*\(\.\h\w*\)*" display +syn match cheetahPlaceHolder "$\(\*[0-9.]\+[wdhms]\?\*\|\*\)\?{\h\w*\(\.\h\w*\)*}" display +syn match cheetahDirective "^\s*#[^#].*$" contains=cheetahPlaceHolder,cheetahKeyword,cheetahComment display + +syn match cheetahContinuation "\\$" +syn match cheetahComment "##.*$" display +syn region cheetahMultiLineComment start="#\*" end="\*#" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link cheetahPlaceHolder Identifier +hi def link cheetahDirective PreCondit +hi def link cheetahKeyword Define +hi def link cheetahContinuation Special +hi def link cheetahComment Comment +hi def link cheetahMultiLineComment Comment + + +let b:current_syntax = "cheetah" + diff --git a/runtime/syntax/chicken.vim b/runtime/syntax/chicken.vim new file mode 100644 index 0000000..f53d872 --- /dev/null +++ b/runtime/syntax/chicken.vim @@ -0,0 +1,94 @@ +" Vim syntax file +" Language: Scheme (CHICKEN) +" Last Change: 2021 Oct 01 +" Author: Evan Hanson +" Maintainer: Evan Hanson +" Repository: https://git.foldling.org/vim-scheme.git +" URL: https://foldling.org/vim/syntax/chicken.vim +" Notes: This is supplemental syntax, to be loaded after the core Scheme +" syntax file (syntax/scheme.vim). Enable it by setting b:is_chicken=1 +" and filetype=scheme. + +" Only to be used on top of the Scheme syntax. +if !exists('b:did_scheme_syntax') + finish +endif + +" Lighten parentheses. +hi! def link schemeParentheses Comment + +" foo#bar +syn match schemeExtraSyntax /[^ #'`\t\n()\[\]"|;]\+#[^ '`\t\n()\[\]"|;]\+/ + +" ##foo#bar +syn match schemeExtraSyntax /##[^ '`\t\n()\[\]"|;]\+/ + +" Heredocs. +syn region schemeString start=/#<[<#]\s*\z(.*\)/ end=/^\z1$/ + +" Keywords. +syn match schemeKeyword /#[!:][a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+/ +syn match schemeKeyword /[a-zA-Z0-9!$%&*+-./:<=>?@^_~#]\+:\>/ + +" C/C++ syntax. +let s:c = globpath(&rtp, 'syntax/cpp.vim', 0, 1) +if len(s:c) + exe 'syn include @c ' s:c[0] + syn region c matchgroup=schemeComment start=/#>/ end=/<#/ contains=@c +endif + +" SRFI 26 +syn match schemeSyntax /\(([ \t\n]*\)\@<=\(cut\|cute\)\>/ + +syn keyword schemeSyntax and-let* +syn keyword schemeSyntax define-record +syn keyword schemeSyntax set!-values +syn keyword schemeSyntax fluid-let +syn keyword schemeSyntax let-optionals +syn keyword schemeSyntax let-optionals* +syn keyword schemeSyntax letrec-values +syn keyword schemeSyntax nth-value +syn keyword schemeSyntax receive + +syn keyword schemeLibrarySyntax declare +syn keyword schemeLibrarySyntax define-interface +syn keyword schemeLibrarySyntax functor +syn keyword schemeLibrarySyntax include-relative +syn keyword schemeLibrarySyntax module +syn keyword schemeLibrarySyntax reexport +syn keyword schemeLibrarySyntax require-library + +syn keyword schemeTypeSyntax --> +syn keyword schemeTypeSyntax -> +syn keyword schemeTypeSyntax : +syn keyword schemeTypeSyntax assume +syn keyword schemeTypeSyntax compiler-typecase +syn keyword schemeTypeSyntax define-specialization +syn keyword schemeTypeSyntax define-type +syn keyword schemeTypeSyntax the + +syn keyword schemeExtraSyntax match +syn keyword schemeExtraSyntax match-lambda +syn keyword schemeExtraSyntax match-lambda* +syn keyword schemeExtraSyntax match-let +syn keyword schemeExtraSyntax match-let* +syn keyword schemeExtraSyntax match-letrec + +syn keyword schemeSpecialSyntax define-compiler-syntax +syn keyword schemeSpecialSyntax define-constant +syn keyword schemeSpecialSyntax define-external +syn keyword schemeSpecialSyntax define-inline +syn keyword schemeSpecialSyntax foreign-code +syn keyword schemeSpecialSyntax foreign-declare +syn keyword schemeSpecialSyntax foreign-lambda +syn keyword schemeSpecialSyntax foreign-lambda* +syn keyword schemeSpecialSyntax foreign-primitive +syn keyword schemeSpecialSyntax foreign-safe-lambda +syn keyword schemeSpecialSyntax foreign-safe-lambda* +syn keyword schemeSpecialSyntax foreign-value + +syn keyword schemeSyntaxSyntax begin-for-syntax +syn keyword schemeSyntaxSyntax define-for-syntax +syn keyword schemeSyntaxSyntax er-macro-transformer +syn keyword schemeSyntaxSyntax ir-macro-transformer +syn keyword schemeSyntaxSyntax require-library-for-syntax diff --git a/runtime/syntax/chill.vim b/runtime/syntax/chill.vim new file mode 100644 index 0000000..b95df68 --- /dev/null +++ b/runtime/syntax/chill.vim @@ -0,0 +1,178 @@ +" Vim syntax file +" Language: CHILL +" Maintainer: YoungSang Yoon +" Last change: 2004 Jan 21 +" + +" first created by image@lgic.co.kr & modified by paris@lgic.co.kr + +" CHILL (CCITT High Level Programming Language) is used for +" developing software of ATM switch at LGIC (LG Information +" & Communications LTd.) + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" A bunch of useful CHILL keywords +syn keyword chillStatement goto GOTO return RETURN returns RETURNS +syn keyword chillLabel CASE case ESAC esac +syn keyword chillConditional if IF else ELSE elsif ELSIF switch SWITCH THEN then FI fi +syn keyword chillLogical NOT not +syn keyword chillRepeat while WHILE for FOR do DO od OD TO to +syn keyword chillProcess START start STACKSIZE stacksize PRIORITY priority THIS this STOP stop +syn keyword chillBlock PROC proc PROCESS process +syn keyword chillSignal RECEIVE receive SEND send NONPERSISTENT nonpersistent PERSISTENT persistent SET set EVER ever + +syn keyword chillTodo contained TODO FIXME XXX + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match chillSpecial contained "\\x\x\+\|\\\o\{1,3\}\|\\.\|\\$" +syn region chillString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=chillSpecial +syn match chillCharacter "'[^\\]'" +syn match chillSpecialCharacter "'\\.'" +syn match chillSpecialCharacter "'\\\o\{1,3\}'" + +"when wanted, highlight trailing white space +if exists("chill_space_errors") + syn match chillSpaceError "\s*$" + syn match chillSpaceError " \+\t"me=e-1 +endif + +"catch errors caused by wrong parenthesis +syn cluster chillParenGroup contains=chillParenError,chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField +syn region chillParen transparent start='(' end=')' contains=ALLBUT,@chillParenGroup +syn match chillParenError ")" +syn match chillInParen contained "[{}]" + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match chillNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" +"floating point number, with dot, optional exponent +syn match chillFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, starting with a dot, optional exponent +syn match chillFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match chillFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" +"hex number +syn match chillNumber "\<0x\x\+\(u\=l\=\|lu\)\>" +"syn match chillIdentifier "\<[a-z_][a-z0-9_]*\>" +syn case match +" flag an octal number with wrong digits +syn match chillOctalError "\<0\o*[89]" + +if exists("chill_comment_strings") + " A comment can contain chillString, chillCharacter and chillNumber. + " But a "*/" inside a chillString in a chillComment DOES end the comment! So we + " need to use a special type of chillString: chillCommentString, which also ends on + " "*/", and sees a "*" at the start of the line as comment again. + " Unfortunately this doesn't very well work for // type of comments :-( + syntax match chillCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region chillCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=chillSpecial,chillCommentSkip + syntax region chillComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=chillSpecial + syntax region chillComment start="/\*" end="\*/" contains=chillTodo,chillCommentString,chillCharacter,chillNumber,chillFloat,chillSpaceError + syntax match chillComment "//.*" contains=chillTodo,chillComment2String,chillCharacter,chillNumber,chillSpaceError +else + syn region chillComment start="/\*" end="\*/" contains=chillTodo,chillSpaceError + syn match chillComment "//.*" contains=chillTodo,chillSpaceError +endif +syntax match chillCommentError "\*/" + +syn keyword chillOperator SIZE size +syn keyword chillType dcl DCL int INT char CHAR bool BOOL REF ref LOC loc INSTANCE instance +syn keyword chillStructure struct STRUCT enum ENUM newmode NEWMODE synmode SYNMODE +"syn keyword chillStorageClass +syn keyword chillBlock PROC proc END end +syn keyword chillScope GRANT grant SEIZE seize +syn keyword chillEDML select SELECT delete DELETE update UPDATE in IN seq SEQ WHERE where INSERT insert include INCLUDE exclude EXCLUDE +syn keyword chillBoolConst true TRUE false FALSE + +syn region chillPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=chillComment,chillString,chillCharacter,chillNumber,chillCommentError,chillSpaceError +syn region chillIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match chillIncluded contained "<[^>]*>" +syn match chillInclude "^\s*#\s*include\>\s*["<]" contains=chillIncluded +"syn match chillLineSkip "\\$" +syn cluster chillPreProcGroup contains=chillPreCondit,chillIncluded,chillInclude,chillDefine,chillInParen,chillUserLabel +syn region chillDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup +syn region chillPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,@chillPreProcGroup + +" Highlight User Labels +syn cluster chillMultiGroup contains=chillIncluded,chillSpecial,chillTodo,chillUserCont,chillUserLabel,chillBitField +syn region chillMulti transparent start='?' end=':' contains=ALLBUT,@chillMultiGroup +" Avoid matching foo::bar() in C++ by requiring that the next char is not ':' +syn match chillUserCont "^\s*\I\i*\s*:$" contains=chillUserLabel +syn match chillUserCont ";\s*\I\i*\s*:$" contains=chillUserLabel +syn match chillUserCont "^\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel +syn match chillUserCont ";\s*\I\i*\s*:[^:]"me=e-1 contains=chillUserLabel + +syn match chillUserLabel "\I\i*" contained + +" Avoid recognizing most bitfields as labels +syn match chillBitField "^\s*\I\i*\s*:\s*[1-9]"me=e-1 +syn match chillBitField ";\s*\I\i*\s*:\s*[1-9]"me=e-1 + +syn match chillBracket contained "[<>]" +if !exists("chill_minlines") + let chill_minlines = 15 +endif +exec "syn sync ccomment chillComment minlines=" . chill_minlines + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link chillLabel Label +hi def link chillUserLabel Label +hi def link chillConditional Conditional +" hi def link chillConditional term=bold ctermfg=red guifg=red gui=bold + +hi def link chillRepeat Repeat +hi def link chillProcess Repeat +hi def link chillSignal Repeat +hi def link chillCharacter Character +hi def link chillSpecialCharacter chillSpecial +hi def link chillNumber Number +hi def link chillFloat Float +hi def link chillOctalError chillError +hi def link chillParenError chillError +hi def link chillInParen chillError +hi def link chillCommentError chillError +hi def link chillSpaceError chillError +hi def link chillOperator Operator +hi def link chillStructure Structure +hi def link chillBlock Operator +hi def link chillScope Operator +"hi def link chillEDML term=underline ctermfg=DarkRed guifg=Red +hi def link chillEDML PreProc +"hi def link chillBoolConst term=bold ctermfg=brown guifg=brown +hi def link chillBoolConst Constant +"hi def link chillLogical term=bold ctermfg=brown guifg=brown +hi def link chillLogical Constant +hi def link chillStorageClass StorageClass +hi def link chillInclude Include +hi def link chillPreProc PreProc +hi def link chillDefine Macro +hi def link chillIncluded chillString +hi def link chillError Error +hi def link chillStatement Statement +hi def link chillPreCondit PreCondit +hi def link chillType Type +hi def link chillCommentError chillError +hi def link chillCommentString chillString +hi def link chillComment2String chillString +hi def link chillCommentSkip chillComment +hi def link chillString String +hi def link chillComment Comment +" hi def link chillComment term=None ctermfg=lightblue guifg=lightblue +hi def link chillSpecial SpecialChar +hi def link chillTodo Todo +hi def link chillBlock Statement +"hi def link chillIdentifier Identifier +hi def link chillBracket Delimiter + + +let b:current_syntax = "chill" + +" vim: ts=8 diff --git a/runtime/syntax/chordpro.vim b/runtime/syntax/chordpro.vim new file mode 100644 index 0000000..41a0a1e --- /dev/null +++ b/runtime/syntax/chordpro.vim @@ -0,0 +1,173 @@ +" Vim syntax file +" Language: ChordPro 6 (https://www.chordpro.org) +" Maintainer: Niels Bo Andersen +" Last Change: 2022-04-15 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +" Include embedded abc syntax +syn include @Abc syntax/abc.vim + +" Lilypond and Pango syntaxes could be embedded as well, but they are not +" available in the distribution. + +" Directives without arguments +syn keyword chordproDirective contained nextgroup=chordproConditional + \ new_song ns + \ start_of_chorus soc + \ chorus + \ start_of_verse sov + \ start_of_bridge sob + \ start_of_tab sot + \ start_of_grid sog + \ start_of_abc + \ start_of_ly + \ end_of_chorus eoc + \ end_of_verse eov + \ end_of_bridge eob + \ end_of_tab eot + \ end_of_grid eog + \ end_of_abc + \ end_of_ly + \ new_page np + \ new_physical_page npp + \ column_break cb + \ grid g + \ no_grid ng + \ transpose + \ chordfont cf chordsize cs chordcolour + \ footerfont footersize footercolour + \ gridfont gridsize gridcolour + \ tabfont tabsize tabcolour + \ tocfont tocsize toccolour + \ textfont tf textsize ts textcolour + \ titlefont titlesize titlecolour + +" Directives with arguments. Some directives are in both groups, as they can +" be used both with and without arguments +syn keyword chordproDirWithArg contained nextgroup=chordproConditional + \ title t + \ subtitle st + \ sorttitle + \ artist + \ composer + \ lyricist + \ arranger + \ copyright + \ album + \ year + \ key + \ time + \ tempo + \ duration + \ capo + \ comment c + \ highlight + \ comment_italic ci + \ comment_box cb + \ image + \ start_of_chorus soc + \ chorus + \ start_of_verse sov + \ start_of_bridge sob + \ start_of_tab sot + \ start_of_grid sog + \ start_of_abc + \ start_of_ly + \ define + \ chord + \ transpose + \ chordfont cf chordsize cs chordcolour + \ footerfont footersize footercolour + \ gridfont gridsize gridcolour + \ tabfont tabsize tabcolour + \ tocfont tocsize toccolour + \ textfont tf textsize ts textcolour + \ titlefont titlesize titlecolour + \ pagetype + \ titles + \ columns col + +syn keyword chordproMetaKeyword contained meta +syn keyword chordproMetadata contained title sorttitle subtitle artist composer lyricist arranger copyright album year key time tempo duration capo +syn keyword chordproStandardMetadata contained songindex page pages pagerange today tuning instrument user +syn match chordproStandardMetadata /instrument\.type/ contained +syn match chordproStandardMetadata /instrument\.description/ contained +syn match chordproStandardMetadata /user\.name/ contained +syn match chordproStandardMetadata /user\.fullname/ contained + +syn keyword chordproDefineKeyword contained frets fingers +syn match chordproDefineKeyword /base-fret/ contained + +syn match chordproArgumentsNumber /\d\+/ contained + +syn match chordproCustom /x_\w\+/ contained + +syn match chordproDirMatch /{\w\+\(-\w\+\)\?}/ contains=chordproDirective contained transparent +syn match chordproDirArgMatch /{\w\+\(-\w\+\)\?[: ]/ contains=chordproDirWithArg contained transparent +syn match chordproMetaMatch /{meta\(-\w\+\)\?[: ]\+\w\+/ contains=chordproMetaKeyword,chordproMetadata contained transparent +syn match chordproCustomMatch /{x_\w\+\(-\w\+\)\?[: ]/ contains=chordproCustom contained transparent + +syn match chordproConditional /-\w\+/ contained + +syn match chordproMetaDataOperator /[=|]/ contained +syn match chordproMetaDataValue /%{\w*/ contains=chordproMetaData,chordproStandardMetadata contained transparent +" Handles nested metadata tags, but the end of the containing chordproTag is +" not highlighted correctly, if there are more than two levels of nesting +syn region chordproMetaDataTag start=/%{\w*/ skip=/%{[^}]*}/ end=/}/ contains=chordproMetaDataValue,chordproMetaDataOperator,chordproMetadataTag contained + +syn region chordproArguments start=/{\w\+\(-\w\+\)\?[: ]/hs=e+1 skip=/%{[^}]*}/ end=/}/he=s-1 contains=chordproDirArgMatch,chordproArgumentsNumber,chordproMetaDataTag contained +syn region chordproArguments start=/{\(define\|chord\)\(-\w\+\)\?[: ]/hs=e+1 end=/}/he=s-1 contains=chordproDirArgMatch,chordproDefineKeyword,chordproArgumentsNumber contained +syn region chordproArguments start=/{meta\(-\w\+\)\?[: ]/hs=e+1 skip=/%{[^}]*}/ end=/}/he=s-1 contains=chordproMetaMatch,chordproMetaDataTag contained +syn region chordproArguments start=/{x_\w\+\(-\w\+\)\?[: ]/hs=e+1 end=/}/he=s-1 contains=chordproCustomMatch contained + +syn region chordproTag start=/{/ skip=/%{[^}]*}/ end=/}/ contains=chordproDirMatch,chordproArguments oneline + +syn region chordproChord matchgroup=chordproBracket start=/\[/ end=/]/ oneline + +syn region chordproAnnotation matchgroup=chordproBracket start=/\[\*/ end=/]/ oneline + +syn region chordproTab start=/{start_of_tab\(-\w\+\)\?\([: ].\+\)\?}\|{sot\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_tab}\|{eot}/me=s-1 contains=chordproTag,chordproComment keepend + +syn region chordproChorus start=/{start_of_chorus\(-\w\+\)\?\([: ].\+\)\?}\|{soc\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_chorus}\|{eoc}/me=s-1 contains=chordproTag,chordproChord,chordproAnnotation,chordproComment keepend + +syn region chordproBridge start=/{start_of_bridge\(-\w\+\)\?\([: ].\+\)\?}\|{sob\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_bridge}\|{eob}/me=s-1 contains=chordproTag,chordproChord,chordproAnnotation,chordproComment keepend + +syn region chordproAbc start=/{start_of_abc\(-\w\+\)\?\([: ].\+\)\?}/hs=e+1 end=/{end_of_abc}/me=s-1 contains=chordproTag,@Abc keepend + +syn match chordproComment /^#.*/ + +" Define the default highlighting. +hi def link chordproDirective Statement +hi def link chordproDirWithArg Statement +hi def link chordproConditional Statement +hi def link chordproCustom Statement +hi def link chordproMetaKeyword Statement +hi def link chordproMetaDataOperator Operator +hi def link chordproMetaDataTag Function +hi def link chordproArguments Special +hi def link chordproArgumentsNumber Number +hi def link chordproChord Type +hi def link chordproAnnotation Identifier +hi def link chordproTag Constant +hi def link chordproTab PreProc +hi def link chordproComment Comment +hi def link chordproBracket Constant +hi def link chordproDefineKeyword Identifier +hi def link chordproMetadata Identifier +hi def link chordproStandardMetadata Identifier +hi def chordproChorus term=bold cterm=bold gui=bold +hi def chordproBridge term=italic cterm=italic gui=italic + +let b:current_syntax = "chordpro" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cl.vim b/runtime/syntax/cl.vim new file mode 100644 index 0000000..b765682 --- /dev/null +++ b/runtime/syntax/cl.vim @@ -0,0 +1,98 @@ +" Vim syntax file +" Language: CL +" (pronounced alphabetically: "Cee-El". +" CL stands for Clever Language, +" but the language is CL, not "Clever". +" CL was created by Multibase, http://www.mbase.com.au) +" Filename extensions: *.ent +" *.eni +" Maintainer: Philip Uren Remove SPAX spam block +" Version: 6 +" Last Change: Mar 06 2013 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,- + +syn case ignore + +syn sync lines=300 + +"If/else/elsif/endif and while/wend mismatch errors +syn match clifError "\" +syn match clifError "\" +syn match clifError "\" +syn match clifError "\" + +syn match clSpaceError "\s\+$" + +" If and while regions +syn region clLoop transparent matchgroup=clWhile start="\" matchgroup=clWhile end="\" contains=ALLBUT,clBreak,clProcedure +syn region clIf transparent matchgroup=clConditional start="\" matchgroup=clConditional end="\" contains=ALLBUT,clBreak,clProcedure + +" Make those TODO notes and debugging stand out! +syn keyword clTodo contained TODO BUG DEBUG FIX +syn match clNeedsWork contained "NEED[S]*\s\s*WORK" +syn keyword clDebug contained debug + +syn match clComment "#.*$" contains=clTodo,clNeedsWork,@Spell +syn region clProcedure oneline start="^\s*[{}]" end="$" +syn match clInclude "^\s*include\s.*" + +" We don't put "debug" in the clSetOptions; +" we contain it in clSet so we can make it stand out. +syn keyword clSetOptions transparent aauto abort align convert E fill fnum goback hangup justify null_exit output rauto rawprint rawdisplay repeat skip tab trim +syn match clSet "^\s*set\s.*" contains=clSetOptions,clDebug + +syn match clPreProc "^\s*#P.*" + +syn keyword clConditional else elsif +syn keyword clWhile continue endloop +" 'break' needs to be a region so we can sync on it above. +syn region clBreak oneline start="^\s*break" end="$" + +syn match clOperator "[!;|)(:.><+*=-]" + +syn match clNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" + +syn region clString matchgroup=clQuote start=+"+ end=+"+ skip=+\\"+ contains=@Spell +syn region clString matchgroup=clQuote start=+'+ end=+'+ skip=+\\'+ contains=@Spell + +syn keyword clReserved ERROR EXIT INTERRUPT LOCKED LREPLY MODE MCOL MLINE MREPLY NULL REPLY V1 V2 V3 V4 V5 V6 V7 V8 V9 ZERO BYPASS GOING_BACK AAUTO ABORT ABORT ALIGN BIGE CONVERT FNUM GOBACK HANGUP JUSTIFY NEXIT OUTPUT RAUTO RAWDISPLAY RAWPRINT REPEAT SKIP TAB TRIM LCOUNT PCOUNT PLINES SLINES SCOLS MATCH LMATCH + +syn keyword clFunction asc asize chr name random slen srandom day getarg getcgi getenv lcase scat sconv sdel skey smult srep substr sword trim ucase match + +syn keyword clStatement clear clear_eol clear_eos close copy create unique with where empty define define ldefine delay_form delete escape exit_block exit_do exit_process field fork format get getfile getnext getprev goto head join maintain message no_join on_eop on_key on_exit on_delete openin openout openapp pause popenin popenout popenio print put range read redisplay refresh restart_block screen select sleep text unlock write and not or do + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link clifError Error +hi def link clSpaceError Error +hi def link clWhile Repeat +hi def link clConditional Conditional +hi def link clDebug Debug +hi def link clNeedsWork Todo +hi def link clTodo Todo +hi def link clComment Comment +hi def link clProcedure Procedure +hi def link clBreak Procedure +hi def link clInclude Include +hi def link clSetOption Statement +hi def link clSet Identifier +hi def link clPreProc PreProc +hi def link clOperator Operator +hi def link clNumber Number +hi def link clString String +hi def link clQuote Delimiter +hi def link clReserved Identifier +hi def link clFunction Function +hi def link clStatement Statement + + +let b:current_syntax = "cl" + +" vim: ts=8 sw=8 diff --git a/runtime/syntax/clean.vim b/runtime/syntax/clean.vim new file mode 100644 index 0000000..70bf654 --- /dev/null +++ b/runtime/syntax/clean.vim @@ -0,0 +1,90 @@ +" Vim syntax file +" Language: Clean +" Author: Pieter van Engelen +" Co-Author: Arthur van Leeuwen +" Last Change: 2013 Oct 15 by Jurriën Stutterheim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Some Clean-keywords +syn keyword cleanConditional if case +syn keyword cleanLabel let! with where in of +syn keyword cleanSpecial Start +syn keyword cleanKeyword infixl infixr infix +syn keyword cleanBasicType Int Real Char Bool String +syn keyword cleanSpecialType World ProcId Void Files File +syn keyword cleanModuleSystem module implementation definition system +syn keyword cleanTypeClass class instance export + +" Import highlighting +syn region cleanIncludeRegion start="^\s*\(from\|import\|\s\+\(as\|qualified\)\)" end="\n" contains=cleanIncludeKeyword keepend +syn keyword cleanIncludeKeyword contained from import as qualified + +" To do some Denotation Highlighting +syn keyword cleanBoolDenot True False +syn region cleanStringDenot start=+"+ skip=+\(\(\\\\\)\+\|\\"\)+ end=+"+ display +syn match cleanCharDenot "'\(\\\\\|\\'\|[^'\\]\)\+'" display +syn match cleanIntegerDenot "[\~+-]\?\<\(\d\+\|0[0-7]\+\|0x[0-9A-Fa-f]\+\)\>" display +syn match cleanRealDenot "[\~+-]\?\d\+\.\d\+\(E[\~+-]\?\d\+\)\?" display + +" To highlight the use of lists, tuples and arrays +syn region cleanList start="\[" end="\]" contains=ALL +syn region cleanRecord start="{" end="}" contains=ALL +syn region cleanArray start="{:" end=":}" contains=ALL +syn match cleanTuple "([^=]*,[^=]*)" contains=ALL + +" To do some Comment Highlighting +syn region cleanComment start="/\*" end="\*/" contains=cleanComment,cleanTodo fold +syn region cleanComment start="//.*" end="$" display contains=cleanTodo +syn keyword cleanTodo TODO FIXME XXX contained + +" Now for some useful type definition recognition +syn match cleanFuncTypeDef "\([a-zA-Z].*\|(\=[-~@#$%^?!+*<>\/|&=:]\+)\=\)\s*\(infix[lr]\=\)\=\s*\d\=\s*::.*->.*" contains=cleanSpecial,cleanBasicType,cleanSpecialType,cleanKeyword + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + + " Comments + hi def link cleanComment Comment + " Constants and denotations + hi def link cleanStringDenot String + hi def link cleanCharDenot Character + hi def link cleanIntegerDenot Number + hi def link cleanBoolDenot Boolean + hi def link cleanRealDenot Float + " Identifiers + " Statements + hi def link cleanTypeClass Keyword + hi def link cleanConditional Conditional + hi def link cleanLabel Label + hi def link cleanKeyword Keyword + " Generic Preprocessing + hi def link cleanIncludeKeyword Include + hi def link cleanModuleSystem PreProc + " Type + hi def link cleanBasicType Type + hi def link cleanSpecialType Type + hi def link cleanFuncTypeDef Typedef + " Special + hi def link cleanSpecial Special + hi def link cleanList Special + hi def link cleanArray Special + hi def link cleanRecord Special + hi def link cleanTuple Special + " Error + " Todo + hi def link cleanTodo Todo + + +let b:current_syntax = "clean" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=4 diff --git a/runtime/syntax/clipper.vim b/runtime/syntax/clipper.vim new file mode 100644 index 0000000..203f9f0 --- /dev/null +++ b/runtime/syntax/clipper.vim @@ -0,0 +1,135 @@ +" Vim syntax file: +" Language: Clipper 5.2 & FlagShip +" Maintainer: C R Zamana +" Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio +" Last Change: 2011 Dec 29 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Exceptions for my "Very Own" (TM) user variables naming style. +" If you don't like this, comment it +syn match clipperUserVariable "\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>" +syn match clipperUserVariable "\<[a-z]\>" + +" Clipper is case insensitive ( see "exception" above ) +syn case ignore + +" Clipper keywords ( in no particular order ) +syn keyword clipperStatement ACCEPT APPEND BLANK FROM AVERAGE CALL CANCEL +syn keyword clipperStatement CLEAR ALL GETS MEMORY TYPEAHEAD CLOSE +syn keyword clipperStatement COMMIT CONTINUE SHARED NEW PICT +syn keyword clipperStatement COPY FILE STRUCTURE STRU EXTE TO COUNT +syn keyword clipperStatement CREATE FROM NIL +syn keyword clipperStatement DELETE FILE DIR DISPLAY EJECT ERASE FIND GO +syn keyword clipperStatement INDEX INPUT VALID WHEN +syn keyword clipperStatement JOIN KEYBOARD LABEL FORM LIST LOCATE MENU TO +syn keyword clipperStatement NOTE PACK QUIT READ +syn keyword clipperStatement RECALL REINDEX RELEASE RENAME REPLACE REPORT +syn keyword clipperStatement RETURN FORM RESTORE +syn keyword clipperStatement RUN SAVE SEEK SELECT +syn keyword clipperStatement SKIP SORT STORE SUM TEXT TOTAL TYPE UNLOCK +syn keyword clipperStatement UPDATE USE WAIT ZAP +syn keyword clipperStatement BEGIN SEQUENCE +syn keyword clipperStatement SET ALTERNATE BELL CENTURY COLOR CONFIRM CONSOLE +syn keyword clipperStatement CURSOR DATE DECIMALS DEFAULT DELETED DELIMITERS +syn keyword clipperStatement DEVICE EPOCH ESCAPE EXACT EXCLUSIVE FILTER FIXED +syn keyword clipperStatement FORMAT FUNCTION INTENSITY KEY MARGIN MESSAGE +syn keyword clipperStatement ORDER PATH PRINTER PROCEDURE RELATION SCOREBOARD +syn keyword clipperStatement SOFTSEEK TYPEAHEAD UNIQUE WRAP +syn keyword clipperStatement BOX CLEAR GET PROMPT SAY ? ?? +syn keyword clipperStatement DELETE TAG GO RTLINKCMD TMP DBLOCKINFO +syn keyword clipperStatement DBEVALINFO DBFIELDINFO DBFILTERINFO DBFUNCTABLE +syn keyword clipperStatement DBOPENINFO DBORDERCONDINFO DBORDERCREATEINF +syn keyword clipperStatement DBORDERINFO DBRELINFO DBSCOPEINFO DBSORTINFO +syn keyword clipperStatement DBSORTITEM DBTRANSINFO DBTRANSITEM WORKAREA + +" Conditionals +syn keyword clipperConditional CASE OTHERWISE ENDCASE +syn keyword clipperConditional IF ELSE ENDIF IIF IFDEF IFNDEF + +" Loops +syn keyword clipperRepeat DO WHILE ENDDO +syn keyword clipperRepeat FOR TO NEXT STEP + +" Visibility +syn keyword clipperStorageClass ANNOUNCE STATIC +syn keyword clipperStorageClass DECLARE EXTERNAL LOCAL MEMVAR PARAMETERS +syn keyword clipperStorageClass PRIVATE PROCEDURE PUBLIC REQUEST STATIC +syn keyword clipperStorageClass FIELD FUNCTION +syn keyword clipperStorageClass EXIT PROCEDURE INIT PROCEDURE + +" Operators +syn match clipperOperator "$\|%\|&\|+\|-\|->\|!" +syn match clipperOperator "\.AND\.\|\.NOT\.\|\.OR\." +syn match clipperOperator ":=\|<\|<=\|<>\|!=\|#\|=\|==\|>\|>=\|@" +syn match clipperOperator "*" + +" Numbers +syn match clipperNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" + +" Includes +syn region clipperIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match clipperIncluded contained "<[^>]*>" +syn match clipperInclude "^\s*#\s*include\>\s*["<]" contains=clipperIncluded + +" String and Character constants +syn region clipperString start=+"+ end=+"+ +syn region clipperString start=+'+ end=+'+ + +" Delimiters +syn match ClipperDelimiters "[()]\|[\[\]]\|[{}]\|[||]" + +" Special +syn match clipperLineContinuation ";" + +" This is from Bram Moolenaar: +if exists("c_comment_strings") + " A comment can contain cString, cCharacter and cNumber. + " But a "*/" inside a cString in a clipperComment DOES end the comment! + " So we need to use a special type of cString: clipperCommentString, which + " also ends on "*/", and sees a "*" at the start of the line as comment + " again. Unfortunately this doesn't very well work for // type of comments :-( + syntax match clipperCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region clipperCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=clipperCommentSkip + syntax region clipperComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" + syntax region clipperComment start="/\*" end="\*/" contains=clipperCommentString,clipperCharacter,clipperNumber,clipperString + syntax match clipperComment "//.*" contains=clipperComment2String,clipperCharacter,clipperNumber +else + syn region clipperComment start="/\*" end="\*/" + syn match clipperComment "//.*" +endif +syntax match clipperCommentError "\*/" + +" Lines beggining with an "*" are comments too +syntax match clipperComment "^\*.*" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link clipperConditional Conditional +hi def link clipperRepeat Repeat +hi def link clipperNumber Number +hi def link clipperInclude Include +hi def link clipperComment Comment +hi def link clipperOperator Operator +hi def link clipperStorageClass StorageClass +hi def link clipperStatement Statement +hi def link clipperString String +hi def link clipperFunction Function +hi def link clipperLineContinuation Special +hi def link clipperDelimiters Delimiter +hi def link clipperUserVariable Identifier + + +let b:current_syntax = "clipper" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/clojure.vim b/runtime/syntax/clojure.vim new file mode 100644 index 0000000..0d63728 --- /dev/null +++ b/runtime/syntax/clojure.vim @@ -0,0 +1,218 @@ +" Vim indent file +" Language: Clojure +" Maintainer: Alex Vear +" Former Maintainers: Sung Pae +" Meikel Brandmeyer +" Toralf Wittner +" Contributors: Joel Holdbrooks (Regexp support, bug fixes) +" URL: https://github.com/clojure-vim/clojure.vim +" License: Vim (see :h license) +" Last Change: 2022-03-24 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_sav = &cpo +set cpo&vim + +if has("folding") && exists("g:clojure_fold") && g:clojure_fold > 0 + setlocal foldmethod=syntax +endif + +" -*- KEYWORDS -*- +" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj +" Clojure version 1.11.0 +let s:clojure_syntax_keywords = { + \ 'clojureBoolean': ["false","true"], + \ 'clojureCond': ["case","case*","clojure.core/case","clojure.core/cond","clojure.core/cond->","clojure.core/cond->>","clojure.core/condp","clojure.core/if-let","clojure.core/if-not","clojure.core/if-some","clojure.core/when","clojure.core/when-first","clojure.core/when-let","clojure.core/when-not","clojure.core/when-some","cond","cond->","cond->>","condp","if","if-let","if-not","if-some","when","when-first","when-let","when-not","when-some"], + \ 'clojureConstant': ["nil"], + \ 'clojureDefine': ["clojure.core/definline","clojure.core/definterface","clojure.core/defmacro","clojure.core/defmethod","clojure.core/defmulti","clojure.core/defn","clojure.core/defn-","clojure.core/defonce","clojure.core/defprotocol","clojure.core/defrecord","clojure.core/defstruct","clojure.core/deftype","def","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","deftype*"], + \ 'clojureException': ["catch","finally","throw","try"], + \ 'clojureFunc': ["*","*'","+","+'","-","-'","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","/","<","<=","=","==",">",">=","NaN?","PrintWriter-on","StackTraceElement->vec","Throwable->map","abs","accessor","aclone","add-classpath","add-tap","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","ancestors","any?","apply","array-map","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","cast","cat","char","char-array","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","clojure.core/*","clojure.core/*'","clojure.core/+","clojure.core/+'","clojure.core/-","clojure.core/-'","clojure.core/->ArrayChunk","clojure.core/->Eduction","clojure.core/->Vec","clojure.core/->VecNode","clojure.core/->VecSeq","clojure.core/-cache-protocol-fn","clojure.core/-reset-methods","clojure.core//","clojure.core/<","clojure.core/<=","clojure.core/=","clojure.core/==","clojure.core/>","clojure.core/>=","clojure.core/NaN?","clojure.core/PrintWriter-on","clojure.core/StackTraceElement->vec","clojure.core/Throwable->map","clojure.core/abs","clojure.core/accessor","clojure.core/aclone","clojure.core/add-classpath","clojure.core/add-tap","clojure.core/add-watch","clojure.core/agent","clojure.core/agent-error","clojure.core/agent-errors","clojure.core/aget","clojure.core/alength","clojure.core/alias","clojure.core/all-ns","clojure.core/alter","clojure.core/alter-meta!","clojure.core/alter-var-root","clojure.core/ancestors","clojure.core/any?","clojure.core/apply","clojure.core/array-map","clojure.core/aset","clojure.core/aset-boolean","clojure.core/aset-byte","clojure.core/aset-char","clojure.core/aset-double","clojure.core/aset-float","clojure.core/aset-int","clojure.core/aset-long","clojure.core/aset-short","clojure.core/assoc","clojure.core/assoc!","clojure.core/assoc-in","clojure.core/associative?","clojure.core/atom","clojure.core/await","clojure.core/await-for","clojure.core/await1","clojure.core/bases","clojure.core/bean","clojure.core/bigdec","clojure.core/bigint","clojure.core/biginteger","clojure.core/bit-and","clojure.core/bit-and-not","clojure.core/bit-clear","clojure.core/bit-flip","clojure.core/bit-not","clojure.core/bit-or","clojure.core/bit-set","clojure.core/bit-shift-left","clojure.core/bit-shift-right","clojure.core/bit-test","clojure.core/bit-xor","clojure.core/boolean","clojure.core/boolean-array","clojure.core/boolean?","clojure.core/booleans","clojure.core/bound-fn*","clojure.core/bound?","clojure.core/bounded-count","clojure.core/butlast","clojure.core/byte","clojure.core/byte-array","clojure.core/bytes","clojure.core/bytes?","clojure.core/cast","clojure.core/cat","clojure.core/char","clojure.core/char-array","clojure.core/char?","clojure.core/chars","clojure.core/chunk","clojure.core/chunk-append","clojure.core/chunk-buffer","clojure.core/chunk-cons","clojure.core/chunk-first","clojure.core/chunk-next","clojure.core/chunk-rest","clojure.core/chunked-seq?","clojure.core/class","clojure.core/class?","clojure.core/clear-agent-errors","clojure.core/clojure-version","clojure.core/coll?","clojure.core/commute","clojure.core/comp","clojure.core/comparator","clojure.core/compare","clojure.core/compare-and-set!","clojure.core/compile","clojure.core/complement","clojure.core/completing","clojure.core/concat","clojure.core/conj","clojure.core/conj!","clojure.core/cons","clojure.core/constantly","clojure.core/construct-proxy","clojure.core/contains?","clojure.core/count","clojure.core/counted?","clojure.core/create-ns","clojure.core/create-struct","clojure.core/cycle","clojure.core/dec","clojure.core/dec'","clojure.core/decimal?","clojure.core/dedupe","clojure.core/delay?","clojure.core/deliver","clojure.core/denominator","clojure.core/deref","clojure.core/derive","clojure.core/descendants","clojure.core/destructure","clojure.core/disj","clojure.core/disj!","clojure.core/dissoc","clojure.core/dissoc!","clojure.core/distinct","clojure.core/distinct?","clojure.core/doall","clojure.core/dorun","clojure.core/double","clojure.core/double-array","clojure.core/double?","clojure.core/doubles","clojure.core/drop","clojure.core/drop-last","clojure.core/drop-while","clojure.core/eduction","clojure.core/empty","clojure.core/empty?","clojure.core/ensure","clojure.core/ensure-reduced","clojure.core/enumeration-seq","clojure.core/error-handler","clojure.core/error-mode","clojure.core/eval","clojure.core/even?","clojure.core/every-pred","clojure.core/every?","clojure.core/ex-cause","clojure.core/ex-data","clojure.core/ex-info","clojure.core/ex-message","clojure.core/extend","clojure.core/extenders","clojure.core/extends?","clojure.core/false?","clojure.core/ffirst","clojure.core/file-seq","clojure.core/filter","clojure.core/filterv","clojure.core/find","clojure.core/find-keyword","clojure.core/find-ns","clojure.core/find-protocol-impl","clojure.core/find-protocol-method","clojure.core/find-var","clojure.core/first","clojure.core/flatten","clojure.core/float","clojure.core/float-array","clojure.core/float?","clojure.core/floats","clojure.core/flush","clojure.core/fn?","clojure.core/fnext","clojure.core/fnil","clojure.core/force","clojure.core/format","clojure.core/frequencies","clojure.core/future-call","clojure.core/future-cancel","clojure.core/future-cancelled?","clojure.core/future-done?","clojure.core/future?","clojure.core/gensym","clojure.core/get","clojure.core/get-in","clojure.core/get-method","clojure.core/get-proxy-class","clojure.core/get-thread-bindings","clojure.core/get-validator","clojure.core/group-by","clojure.core/halt-when","clojure.core/hash","clojure.core/hash-combine","clojure.core/hash-map","clojure.core/hash-ordered-coll","clojure.core/hash-set","clojure.core/hash-unordered-coll","clojure.core/ident?","clojure.core/identical?","clojure.core/identity","clojure.core/ifn?","clojure.core/in-ns","clojure.core/inc","clojure.core/inc'","clojure.core/indexed?","clojure.core/infinite?","clojure.core/init-proxy","clojure.core/inst-ms","clojure.core/inst-ms*","clojure.core/inst?","clojure.core/instance?","clojure.core/int","clojure.core/int-array","clojure.core/int?","clojure.core/integer?","clojure.core/interleave","clojure.core/intern","clojure.core/interpose","clojure.core/into","clojure.core/into-array","clojure.core/ints","clojure.core/isa?","clojure.core/iterate","clojure.core/iteration","clojure.core/iterator-seq","clojure.core/juxt","clojure.core/keep","clojure.core/keep-indexed","clojure.core/key","clojure.core/keys","clojure.core/keyword","clojure.core/keyword?","clojure.core/last","clojure.core/line-seq","clojure.core/list","clojure.core/list*","clojure.core/list?","clojure.core/load","clojure.core/load-file","clojure.core/load-reader","clojure.core/load-string","clojure.core/loaded-libs","clojure.core/long","clojure.core/long-array","clojure.core/longs","clojure.core/macroexpand","clojure.core/macroexpand-1","clojure.core/make-array","clojure.core/make-hierarchy","clojure.core/map","clojure.core/map-entry?","clojure.core/map-indexed","clojure.core/map?","clojure.core/mapcat","clojure.core/mapv","clojure.core/max","clojure.core/max-key","clojure.core/memoize","clojure.core/merge","clojure.core/merge-with","clojure.core/meta","clojure.core/method-sig","clojure.core/methods","clojure.core/min","clojure.core/min-key","clojure.core/mix-collection-hash","clojure.core/mod","clojure.core/munge","clojure.core/name","clojure.core/namespace","clojure.core/namespace-munge","clojure.core/nat-int?","clojure.core/neg-int?","clojure.core/neg?","clojure.core/newline","clojure.core/next","clojure.core/nfirst","clojure.core/nil?","clojure.core/nnext","clojure.core/not","clojure.core/not-any?","clojure.core/not-empty","clojure.core/not-every?","clojure.core/not=","clojure.core/ns-aliases","clojure.core/ns-imports","clojure.core/ns-interns","clojure.core/ns-map","clojure.core/ns-name","clojure.core/ns-publics","clojure.core/ns-refers","clojure.core/ns-resolve","clojure.core/ns-unalias","clojure.core/ns-unmap","clojure.core/nth","clojure.core/nthnext","clojure.core/nthrest","clojure.core/num","clojure.core/number?","clojure.core/numerator","clojure.core/object-array","clojure.core/odd?","clojure.core/parents","clojure.core/parse-boolean","clojure.core/parse-double","clojure.core/parse-long","clojure.core/parse-uuid","clojure.core/partial","clojure.core/partition","clojure.core/partition-all","clojure.core/partition-by","clojure.core/pcalls","clojure.core/peek","clojure.core/persistent!","clojure.core/pmap","clojure.core/pop","clojure.core/pop!","clojure.core/pop-thread-bindings","clojure.core/pos-int?","clojure.core/pos?","clojure.core/pr","clojure.core/pr-str","clojure.core/prefer-method","clojure.core/prefers","clojure.core/print","clojure.core/print-ctor","clojure.core/print-dup","clojure.core/print-method","clojure.core/print-simple","clojure.core/print-str","clojure.core/printf","clojure.core/println","clojure.core/println-str","clojure.core/prn","clojure.core/prn-str","clojure.core/promise","clojure.core/proxy-call-with-super","clojure.core/proxy-mappings","clojure.core/proxy-name","clojure.core/push-thread-bindings","clojure.core/qualified-ident?","clojure.core/qualified-keyword?","clojure.core/qualified-symbol?","clojure.core/quot","clojure.core/rand","clojure.core/rand-int","clojure.core/rand-nth","clojure.core/random-sample","clojure.core/random-uuid","clojure.core/range","clojure.core/ratio?","clojure.core/rational?","clojure.core/rationalize","clojure.core/re-find","clojure.core/re-groups","clojure.core/re-matcher","clojure.core/re-matches","clojure.core/re-pattern","clojure.core/re-seq","clojure.core/read","clojure.core/read+string","clojure.core/read-line","clojure.core/read-string","clojure.core/reader-conditional","clojure.core/reader-conditional?","clojure.core/realized?","clojure.core/record?","clojure.core/reduce","clojure.core/reduce-kv","clojure.core/reduced","clojure.core/reduced?","clojure.core/reductions","clojure.core/ref","clojure.core/ref-history-count","clojure.core/ref-max-history","clojure.core/ref-min-history","clojure.core/ref-set","clojure.core/refer","clojure.core/release-pending-sends","clojure.core/rem","clojure.core/remove","clojure.core/remove-all-methods","clojure.core/remove-method","clojure.core/remove-ns","clojure.core/remove-tap","clojure.core/remove-watch","clojure.core/repeat","clojure.core/repeatedly","clojure.core/replace","clojure.core/replicate","clojure.core/require","clojure.core/requiring-resolve","clojure.core/reset!","clojure.core/reset-meta!","clojure.core/reset-vals!","clojure.core/resolve","clojure.core/rest","clojure.core/restart-agent","clojure.core/resultset-seq","clojure.core/reverse","clojure.core/reversible?","clojure.core/rseq","clojure.core/rsubseq","clojure.core/run!","clojure.core/satisfies?","clojure.core/second","clojure.core/select-keys","clojure.core/send","clojure.core/send-off","clojure.core/send-via","clojure.core/seq","clojure.core/seq-to-map-for-destructuring","clojure.core/seq?","clojure.core/seqable?","clojure.core/seque","clojure.core/sequence","clojure.core/sequential?","clojure.core/set","clojure.core/set-agent-send-executor!","clojure.core/set-agent-send-off-executor!","clojure.core/set-error-handler!","clojure.core/set-error-mode!","clojure.core/set-validator!","clojure.core/set?","clojure.core/short","clojure.core/short-array","clojure.core/shorts","clojure.core/shuffle","clojure.core/shutdown-agents","clojure.core/simple-ident?","clojure.core/simple-keyword?","clojure.core/simple-symbol?","clojure.core/slurp","clojure.core/some","clojure.core/some-fn","clojure.core/some?","clojure.core/sort","clojure.core/sort-by","clojure.core/sorted-map","clojure.core/sorted-map-by","clojure.core/sorted-set","clojure.core/sorted-set-by","clojure.core/sorted?","clojure.core/special-symbol?","clojure.core/spit","clojure.core/split-at","clojure.core/split-with","clojure.core/str","clojure.core/string?","clojure.core/struct","clojure.core/struct-map","clojure.core/subs","clojure.core/subseq","clojure.core/subvec","clojure.core/supers","clojure.core/swap!","clojure.core/swap-vals!","clojure.core/symbol","clojure.core/symbol?","clojure.core/tagged-literal","clojure.core/tagged-literal?","clojure.core/take","clojure.core/take-last","clojure.core/take-nth","clojure.core/take-while","clojure.core/tap>","clojure.core/test","clojure.core/the-ns","clojure.core/thread-bound?","clojure.core/to-array","clojure.core/to-array-2d","clojure.core/trampoline","clojure.core/transduce","clojure.core/transient","clojure.core/tree-seq","clojure.core/true?","clojure.core/type","clojure.core/unchecked-add","clojure.core/unchecked-add-int","clojure.core/unchecked-byte","clojure.core/unchecked-char","clojure.core/unchecked-dec","clojure.core/unchecked-dec-int","clojure.core/unchecked-divide-int","clojure.core/unchecked-double","clojure.core/unchecked-float","clojure.core/unchecked-inc","clojure.core/unchecked-inc-int","clojure.core/unchecked-int","clojure.core/unchecked-long","clojure.core/unchecked-multiply","clojure.core/unchecked-multiply-int","clojure.core/unchecked-negate","clojure.core/unchecked-negate-int","clojure.core/unchecked-remainder-int","clojure.core/unchecked-short","clojure.core/unchecked-subtract","clojure.core/unchecked-subtract-int","clojure.core/underive","clojure.core/unreduced","clojure.core/unsigned-bit-shift-right","clojure.core/update","clojure.core/update-in","clojure.core/update-keys","clojure.core/update-proxy","clojure.core/update-vals","clojure.core/uri?","clojure.core/use","clojure.core/uuid?","clojure.core/val","clojure.core/vals","clojure.core/var-get","clojure.core/var-set","clojure.core/var?","clojure.core/vary-meta","clojure.core/vec","clojure.core/vector","clojure.core/vector-of","clojure.core/vector?","clojure.core/volatile!","clojure.core/volatile?","clojure.core/vreset!","clojure.core/with-bindings*","clojure.core/with-meta","clojure.core/with-redefs-fn","clojure.core/xml-seq","clojure.core/zero?","clojure.core/zipmap","coll?","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","dedupe","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-cause","ex-data","ex-info","ex-message","extend","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn?","fnext","fnil","force","format","frequencies","future-call","future-cancel","future-cancelled?","future-done?","future?","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","ifn?","in-ns","inc","inc'","indexed?","infinite?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","isa?","iterate","iteration","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","long","long-array","longs","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","parents","parse-boolean","parse-double","parse-long","parse-uuid","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy-call-with-super","proxy-mappings","proxy-name","push-thread-bindings","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","random-uuid","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read+string","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-tap","remove-watch","repeat","repeatedly","replace","replicate","require","requiring-resolve","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq-to-map-for-destructuring","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","tap>","test","the-ns","thread-bound?","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unreduced","unsigned-bit-shift-right","update","update-in","update-keys","update-proxy","update-vals","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","with-bindings*","with-meta","with-redefs-fn","xml-seq","zero?","zipmap"], + \ 'clojureMacro': ["->","->>","..","amap","and","areduce","as->","assert","binding","bound-fn","clojure.core/->","clojure.core/->>","clojure.core/..","clojure.core/amap","clojure.core/and","clojure.core/areduce","clojure.core/as->","clojure.core/assert","clojure.core/binding","clojure.core/bound-fn","clojure.core/comment","clojure.core/declare","clojure.core/delay","clojure.core/dosync","clojure.core/doto","clojure.core/extend-protocol","clojure.core/extend-type","clojure.core/for","clojure.core/future","clojure.core/gen-class","clojure.core/gen-interface","clojure.core/import","clojure.core/io!","clojure.core/lazy-cat","clojure.core/lazy-seq","clojure.core/locking","clojure.core/memfn","clojure.core/ns","clojure.core/or","clojure.core/proxy","clojure.core/proxy-super","clojure.core/pvalues","clojure.core/refer-clojure","clojure.core/reify","clojure.core/some->","clojure.core/some->>","clojure.core/sync","clojure.core/time","clojure.core/vswap!","clojure.core/with-bindings","clojure.core/with-in-str","clojure.core/with-loading-context","clojure.core/with-local-vars","clojure.core/with-open","clojure.core/with-out-str","clojure.core/with-precision","clojure.core/with-redefs","comment","declare","delay","dosync","doto","extend-protocol","extend-type","for","future","gen-class","gen-interface","import","io!","lazy-cat","lazy-seq","locking","memfn","ns","or","proxy","proxy-super","pvalues","refer-clojure","reify","some->","some->>","sync","time","vswap!","with-bindings","with-in-str","with-loading-context","with-local-vars","with-open","with-out-str","with-precision","with-redefs"], + \ 'clojureRepeat': ["clojure.core/doseq","clojure.core/dotimes","clojure.core/loop","clojure.core/while","doseq","dotimes","loop","loop*","recur","while"], + \ 'clojureSpecial': ["&",".","clojure.core/fn","clojure.core/import*","clojure.core/let","clojure.core/letfn","do","fn","fn*","let","let*","letfn","letfn*","monitor-enter","monitor-exit","new","quote","reify*","set!","var"], + \ 'clojureVariable': ["*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","EMPTY-NODE","Inst","char-escape-string","char-name-string","clojure.core/*1","clojure.core/*2","clojure.core/*3","clojure.core/*agent*","clojure.core/*allow-unresolved-vars*","clojure.core/*assert*","clojure.core/*clojure-version*","clojure.core/*command-line-args*","clojure.core/*compile-files*","clojure.core/*compile-path*","clojure.core/*compiler-options*","clojure.core/*data-readers*","clojure.core/*default-data-reader-fn*","clojure.core/*e","clojure.core/*err*","clojure.core/*file*","clojure.core/*flush-on-newline*","clojure.core/*fn-loader*","clojure.core/*in*","clojure.core/*math-context*","clojure.core/*ns*","clojure.core/*out*","clojure.core/*print-dup*","clojure.core/*print-length*","clojure.core/*print-level*","clojure.core/*print-meta*","clojure.core/*print-namespace-maps*","clojure.core/*print-readably*","clojure.core/*read-eval*","clojure.core/*reader-resolver*","clojure.core/*source-path*","clojure.core/*suppress-read*","clojure.core/*unchecked-math*","clojure.core/*use-context-classloader*","clojure.core/*verbose-defrecords*","clojure.core/*warn-on-reflection*","clojure.core/EMPTY-NODE","clojure.core/Inst","clojure.core/char-escape-string","clojure.core/char-name-string","clojure.core/default-data-readers","clojure.core/primitives-classnames","clojure.core/print-dup","clojure.core/print-method","clojure.core/unquote","clojure.core/unquote-splicing","default-data-readers","primitives-classnames","print-dup","print-method","unquote","unquote-splicing"] + \ } + +function! s:syntax_keyword(dict) + for key in keys(a:dict) + execute 'syntax keyword' key join(a:dict[key], ' ') + endfor +endfunction + +if exists('b:clojure_syntax_without_core_keywords') && b:clojure_syntax_without_core_keywords + " Only match language specials and primitives + for s:key in ['clojureBoolean', 'clojureConstant', 'clojureException', 'clojureSpecial'] + execute 'syntax keyword' s:key join(s:clojure_syntax_keywords[s:key], ' ') + endfor +else + call s:syntax_keyword(s:clojure_syntax_keywords) +endif + +if exists('g:clojure_syntax_keywords') + call s:syntax_keyword(g:clojure_syntax_keywords) +endif + +if exists('b:clojure_syntax_keywords') + call s:syntax_keyword(b:clojure_syntax_keywords) +endif + +unlet! s:key +delfunction s:syntax_keyword + +" Keywords are symbols: +" static Pattern symbolPat = Pattern.compile("[:]?([\\D&&[^/]].*/)?([\\D&&[^/]][^/]*)"); +" But they: +" * Must not end in a : or / +" * Must not have two adjacent colons except at the beginning +" * Must not contain any reader metacharacters except for ' and # +syntax match clojureKeyword "\v<:{1,2}([^ \n\r\t()\[\]{}";@^`~\\/]+/)*[^ \n\r\t()\[\]{}";@^`~\\/]+:@1" + +syntax match clojureStringEscape "\v\\%([\\btnfr"]|u\x{4}|[0-3]\o{2}|\o{1,2})" contained + +syntax region clojureString matchgroup=clojureStringDelimiter start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=clojureStringEscape,@Spell + +syntax match clojureCharacter "\v\\%(o%([0-3]\o{2}|\o{1,2})|u\x{4}|newline|tab|space|return|backspace|formfeed|.)" + +syntax match clojureSymbol "\v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@1" + +syntax match clojureQuote "\v['`]" +syntax match clojureUnquote "\v\~\@?" +syntax match clojureMeta "\^" +syntax match clojureDeref "@" +syntax match clojureDispatch "\v#[\^'=<_]?" + +" Clojure permits no more than 20 anonymous params. +syntax match clojureAnonArg "%\(20\|1\d\|[1-9]\|&\)\?" + +syntax match clojureRegexpEscape "\v\\%([\\tnrfae.()\[\]{}^$*?+]|c\u|0[0-3]?\o{1,2}|x%(\x{2}|\{\x{1,6}\})|u\x{4})" contained display +syntax region clojureRegexpQuoted start=/\\Q/ms=e+1 skip=/\\\\\|\\"/ end=/\\E/me=s-1 end=/"/me=s-1 contained +syntax region clojureRegexpQuote start=/\\Q/ skip=/\\\\\|\\"/ end=/\\E/ end=/"/me=s-1 contains=clojureRegexpQuoted keepend contained + +" -*- CHARACTER PROPERTY CLASSES -*- +" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj +" Java version 17.0.2 +syntax match clojureRegexpPosixCharClass "\v\\[pP]\{%(Cntrl|A%(l%(pha|num)|SCII)|Space|Graph|Upper|P%(rint|unct)|Blank|XDigit|Digit|Lower)\}" contained display +syntax match clojureRegexpJavaCharClass "\v\\[pP]\{java%(Whitespace|JavaIdentifier%(Part|Start)|SpaceChar|Mirrored|TitleCase|I%(SOControl|de%(ographic|ntifierIgnorable))|D%(efined|igit)|U%(pperCase|nicodeIdentifier%(Part|Start))|L%(etter%(OrDigit)?|owerCase)|Alphabetic)\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\cIs%(l%(owercase|etter)|hex%(digit|_digit)|w%(hite%(_space|space)|ord)|noncharacter%(_code_point|codepoint)|p%(rint|unctuation)|ideographic|graph|a%(l%(num|phabetic)|ssigned)|uppercase|join%(control|_control)|titlecase|blank|digit|control)\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP][NSCMZPL]" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{%(Is|gc\=|general_category\=)?%(N[dlo]?|P[dcifeos]?|C[ncfos]?|M[nce]?|Z[lsp]?|S[mcko]?|L[muCDlto]?)\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(Is|sc\=|script\=)%(k%(its|h%(oj%(ki)?|m%(r|er)|itan_small_script|udawadi|ar%(oshthi)?)|a%(li|n%(a|nada)|takana%(_or_hiragana)?|yah_li|ithi)|nda|thi)|r%(ohg|un%(ic|r)|ejang|jng)|l%(epc%(ha)?|i%(mbu?|n%([ab]|ear_[ab])|su)|y%([dc]i%(an)?)|a%(t%(n|in)|na|oo?))|t%(elu%(gu)?|ha%(i|a%(na)?)|i%(finagh|rh%(uta)?|b%(t|etan))|fng|glg|a%(i_%(le|tham|viet)|g%(alog|b%(anwa)?)|vt|kri?|ng%(ut)?|l[ue]|m%(il|l)))|vaii?|y%(i%(ii)?|ezi%(di)?)|e%(thi%(opic)?|l%(ym%(aic)?|ba%(san)?)|gyp%(tian_hieroglyphs)?)|u%(gar%(itic)?|nknown)|h%(ung|ira%(gana)?|rkt|mn[gp]|a%(n%(i%(fi_rohingya)?|unoo|o|g%(ul)?)?|tr%(an)?)|luw|ebr%(ew)?)|g%(r%(e%(k|ek)|an%(tha)?)|lag%(olitic)?|eor%(gian)?|o%(n[mg]|th%(ic)?)|u%(j%(arati|r)|r%(u|mukhi)|njala_gondi))|m%(lym|a%(n%(d%(aic)?|i%(chaean)?)|saram_gondi|h%(ajani|j)|ka%(sar)?|rc%(hen)?|layalam)|o%(di|ng%(olian)?)|e%(r%(c|o%(itic_%(hieroglyphs|cursive))?)|etei_mayek|nd%(e_kikakui)?|d%(f|efaidrin))|roo?|y%(anmar|mr)|tei|iao|ult%(ani)?)|d%(upl%(oyan)?|srt|i%(ak|ves_akuru)|ogra?|e%(seret|va%(nagari)?))|z%(an%(abazar_square|b)|inh|yyy|zzz)|n%(yiakeng_puachue_hmong|bat|koo?|ew%(_tai_lue|a)|ushu|shu|a%(bataean|rb|nd%(inagari)?))|s%(h%(rd|a%(vian|rada|w))|o%(yo%(mbo)?|g%(d%(ian)?|o)|ra%(_sompeng)?)|i%(n%(d|h%(ala)?)|dd%(ham)?|gnwriting)|a%(ur%(ashtra)?|m%(r|aritan)|rb)|y%(r%(c|iac)|lo%(ti_nagri)?)|und%(anese)?|gnw)|w%(cho|a%(ncho|ra%(ng_citi)?))|c%(y%(priot|r%(l|illic))|h%(er%(okee)?|a%(m|kma)|rs|orasmian)|a%(km|ucasian_albanian|n%(adian_aboriginal|s)|ri%(an)?)|prt|uneiform|o%(pt%(ic)?|mmon))|i%(n%(scriptional_pa%(rthian|hlavi)|herited)|mperial_aramaic|tal)|p%(h%(l[ip]|oenician|ag%(s_pa)?|nx)|a%(lm%(yrene)?|u%(_cin_hau|c)|hawh_hmong)|rti|salter_pahlavi|lrd|erm)|x%(peo|sux)|b%(eng%(ali)?|ra%(i%(lle)?|h%(mi)?)|opo%(mofo)?|u%(gi%(nese)?|h%(d|id))|h%(ks|aiksuki)|a%(ss%(a_vah)?|t%(ak|k)|li%(nese)?|mum?))|java%(nese)?|o%(g%(am|ham)|s%(age|ge|ma%(nya)?)|l%(d_%(hungarian|north_arabian|so%(gdian|uth_arabian)|per%(mic|sian)|italic|turkic)|ck|_chiki)|r%(iya|kh|ya))|a%(r%(ab%(ic)?|m%([ni]|enian))|dl%(m|am)|natolian_hieroglyphs|hom|v%(st|estan)|ghb))\}" contained display +syntax match clojureRegexpUnicodeCharClass "\v\\[pP]\{\c%(In|blk\=|block\=)%(zanabazar%([ _]square|square)|javanese|h%(a%(lfwidth%( and fullwidth forms|andfullwidthforms|_and_fullwidth_forms)|tran|n%(unoo|gul%(compatibilityjamo|syllables|jamo%(extended\-[ab])?|_%(syllables|jamo%(_extended_[ab])?|compatibility_jamo)| %(syllables|compatibility jamo|jamo%( extended\-[ab])?))|ifi%([_ ]rohingya|rohingya)))|i%(ragana|gh%( %(private use surrogates|surrogates)|_%(private_use_surrogates|surrogates)|surrogates|privateusesurrogates))|ebrew)|i%(pa%([ _]extensions|extensions)|n%(scriptional%(%([ _]pa%(rthian|hlavi))|pa%(rthian|hlavi))|dic%(siyaqnumbers|_siyaq_numbers| siyaq numbers))|deographic%(symbolsandpunctuation|_%(description_characters|symbols_and_punctuation)| %(description characters|symbols and punctuation)|descriptioncharacters)|mperial%(aramaic|[_ ]aramaic))|c%(o%(ntrol%(pictures|[ _]pictures)|ptic%(epactnumbers|_epact_numbers| epact numbers)?|m%(mon%(_indic_number_forms|indicnumberforms| indic number forms)|bining%(halfmarks|_%(diacritical_marks%(_%(supplement|for_symbols|extended))?|marks_for_symbols|half_marks)| %(half marks|diacritical marks%( %(supplement|for symbols|extended))?|marks for symbols)|diacriticalmarks%(supplement|forsymbols|extended)?|marksforsymbols))|unting%( rod numerals|_rod_numerals|rodnumerals))|a%(rian|ucasian%([ _]albanian|albanian))|jk%(unifiedideographs%(extension[dgacfbe])?|s%(ymbolsandpunctuation|trokes)|_%(s%(trokes|ymbols_and_punctuation)|radicals_supplement|unified_ideographs%(_extension_[dgacfbe])?|compatibility%(_%(forms|ideographs%(_supplement)?))?)|compatibility%(forms|ideographs%(supplement)?)?|radicalssupplement| %(compatibility%( %(ideographs%( supplement)?|forms))?|unified ideographs%( extension [dgacfbe])?|radicals supplement|s%(ymbols and punctuation|trokes)))|y%(rillic%(supplement%(ary)?| %(supplement%(ary)?|extended\-[acb])|extended\-[acb]|_%(extended_[acb]|supplement%(ary)?))?|priot%(syllabary|[ _]syllabary))|u%(rrency%([_ ]symbols|symbols)|neiform%(_numbers_and_punctuation|numbersandpunctuation| numbers and punctuation)?)|h%(e%(ss%([_ ]symbols|symbols)|rokee%(supplement|[ _]supplement)?)|a%(m|kma)|orasmian))|g%(othic|u%(njala%(gondi|[_ ]gondi)|jarati|rmukhi)|lagolitic%(supplement|[ _]supplement)?|e%(o%(rgian%(supplement|%([_ ]%(supplement|extended))|extended)?|metric%( shapes%( extended)?|shapes%(extended)?|_shapes%(_extended)?))|neral%([_ ]punctuation|punctuation))|r%(eek%( %(and coptic|extended)|andcoptic|_%(and_coptic|extended)|extended)?|antha))|s%(h%(orthand%( format controls|_format_controls|formatcontrols)|a%(vian|rada))|u%(ndanese%(supplement|[ _]supplement)?|p%(erscripts%(_and_subscripts|andsubscripts| and subscripts)|plementa%(ry%(_private_use_area_[ab]|privateusearea\-[ab]| private use area\-[ab])|l%( %(mathematical operators|symbols and pictographs|punctuation|arrows\-[acb])|symbolsandpictographs|mathematicaloperators|punctuation|arrows\-[acb]|_%(arrows_[acb]|symbols_and_pictographs|mathematical_operators|punctuation))))|tton%(signwriting|[_ ]signwriting))|i%(nhala%( archaic numbers|archaicnumbers|_archaic_numbers)?|ddham)|y%(loti%([_ ]nagri|nagri)|mbols%( %(for legacy computing|and pictographs extended\-a)|forlegacycomputing|andpictographsextended\-a|_%(and_pictographs_extended_a|for_legacy_computing))|riac%(supplement|[ _]supplement)?)|p%(acing%(_modifier_letters| modifier letters|modifierletters)|ecials)|a%(maritan|urashtra)|o%(yombo|gdian|ra%(sompeng|[ _]sompeng))|mall%(kanaextension| %(kana extension|form variants)|_%(kana_extension|form_variants)|formvariants))|y%(i%(syllables|%([_ ]%(syllables|radicals))|radicals|jing%(hexagramsymbols| hexagram symbols|_hexagram_symbols))|ezidi)|p%(h%(o%(enician|netic%( extensions%( supplement)?|extensions%(supplement)?|_extensions%(_supplement)?))|a%(istos%([ _]disc|disc)|gs[_\-]pa))|laying%(cards|[_ ]cards)|rivate%(usearea| use area|_use_area)|a%(hawh%(hmong|[_ ]hmong)|u%(_cin_hau|cinhau| cin hau)|lmyrene)|salter%(pahlavi|[ _]pahlavi))|e%(l%(basan|ymaic)|arly%(_dynastic_cuneiform|dynasticcuneiform| dynastic cuneiform)|moticons|gyptian%(hieroglyph%(formatcontrols|s)| hieroglyph%( format controls|s)|_hieroglyph%(_format_controls|s))|nclosed%( %(cjk letters and months|ideographic supplement|alphanumeric%( supplement|s))|cjklettersandmonths|_%(ideographic_supplement|alphanumeric%(_supplement|s)|cjk_letters_and_months)|alphanumerics%(upplement)?|ideographicsupplement)|thiopic%(supplement|_%(supplement|extended%(_a)?)| %(supplement|extended%(\-a)?)|extended%(\-a)?)?)|r%(u%(nic|mi%(numeralsymbols| numeral symbols|_numeral_symbols))|ejang)|d%(o%(gra|mino%([ _]tiles|tiles))|e%(seret|vanagari%([ _]extended|extended)?)|uployan|i%(ngbats|ves%([_ ]akuru|akuru)))|m%(e%(defaidrin|nde%([ _]kikakui|kikakui)|etei%(mayek%(extensions)?|_mayek%(_extensions)?| mayek%( extensions)?)|roitic%(hieroglyphs|%([_ ]%(hieroglyphs|cursive))|cursive))|o%(ngolian%(supplement|[ _]supplement)?|di%(fier%(_tone_letters| tone letters|toneletters))?)|ro|u%(ltani|sical%([_ ]symbols|symbols))|i%(ao|scellaneous%(technical|symbols%(and%(pictographs|arrows))?|mathematicalsymbols\-[ab]| %(technical|mathematical symbols\-[ab]|symbols%( and %(pictographs|arrows))?)|_%(technical|symbols%(_and_%(pictographs|arrows))?|mathematical_symbols_[ab])))|yanmar%( extended\-[ab]|extended\-[ab]|_extended_[ab])?|a%(h%(ajani|jong%([ _]tiles|tiles))|rchen|n%(daic|ichaean)|yan%([_ ]numerals|numerals)|saram%(gondi|[_ ]gondi)|layalam|thematical%(alphanumericsymbols| %(alphanumeric symbols|operators)|_%(alphanumeric_symbols|operators)|operators)|kasar))|o%(s%(age|manya)|ttoman%(siyaqnumbers|_siyaq_numbers| siyaq numbers)|r%(namental%([ _]dingbats|dingbats)|iya)|ptical%( character recognition|_character_recognition|characterrecognition)|gham|l%([ _]chiki|d%(hungarian| %(hungarian|so%(uth arabian|gdian)|per%(mic|sian)|north arabian|italic|turkic)|per%(mic|sian)|so%(utharabian|gdian)|italic|turkic|_%(hungarian|north_arabian|so%(gdian|uth_arabian)|per%(mic|sian)|italic|turkic)|northarabian)|chiki))|n%(ew%(_tai_lue|a|tailue| tai lue)|ko|yiakeng%( puachue hmong|puachuehmong|_puachue_hmong)|a%(bataean|ndinagari)|u%(shu|mber%(forms|[ _]forms)))|b%(u%(ginese|hid)|a%(s%(sa%([ _]vah|vah)|ic%([ _]latin|latin))|linese|mum%(supplement|[ _]supplement)?|tak)|ra%(hmi|ille%(patterns|[_ ]patterns))|o%(x%([ _]drawing|drawing)|pomofo%([ _]extended|extended)?)|lock%([ _]elements|elements)|haiksuki|yzantine%( musical symbols|musicalsymbols|_musical_symbols)|engali)|l%(i%(mbu|near%(a| %(a|b %(ideograms|syllabary))|b%(ideograms|syllabary)|_%(a|b_%(ideograms|syllabary)))|su%(supplement|[ _]supplement)?)|a%(tin%(extended%(\-[dacbe]|additional)|_%(extended_%([dcbe]|a%(dditional)?)|1_supplement)|\-1%(supplement| supplement)| extended%(\-[dacbe]| additional))|o)|e%(tterlike%([_ ]symbols|symbols)|pcha)|ow%([_ ]surrogates|surrogates)|y[cd]ian)|k%(h%(aroshthi|ojki|mer%([_ ]symbols|symbols)?|udawadi|itan%( small script|smallscript|_small_script))|a%(takana%(_phonetic_extensions|phoneticextensions| phonetic extensions)?|n%(gxi%([_ ]radicals|radicals)|a%(extended\-a|supplement| %(extended\-a|supplement)|_%(supplement|extended_a))|bun|nada)|ithi|yah%([ _]li|li)))|wa%(ncho|rang%(citi|[ _]citi))|t%(elugu|ransport%( and map symbols|_and_map_symbols|andmapsymbols)|i%(rhuta|betan|finagh)|a%(mil%(supplement|[ _]supplement)?|kri|ngut%(supplement|%([ _]%(supplement|components))|components)?|i%(xuanjingsymbols|_%(le|xuan_jing_symbols|tham|viet)|le| %(xuan jing symbols|le|tham|viet)|tham|viet)|g%(alog|s|banwa))|ha%(i|ana))|a%(l%(chemical%([_ ]symbols|symbols)|phabetic%( presentation forms|_presentation_forms|presentationforms))|n%(cient%(_%(greek_%(musical_notation|numbers)|symbols)|greek%(numbers|musicalnotation)| %(greek %(numbers|musical notation)|symbols)|symbols)|atolian%([ _]hieroglyphs|hieroglyphs))|dlam|r%(menian|abic%(extended\-a|mathematicalalphabeticsymbols|supplement|_%(presentation_forms_[ab]|supplement|extended_a|mathematical_alphabetic_symbols)| %(extended\-a|mathematical alphabetic symbols|supplement|presentation forms\-[ab])|presentationforms\-[ab])?|rows)|egean%(numbers|[ _]numbers)|vestan|hom)|u%(garitic|nified%(canadianaboriginalsyllabics%(extended)?|_canadian_aboriginal_syllabics%(_extended)?| canadian aboriginal syllabics%( extended)?))|v%(a%(i|riation%( selectors%( supplement)?|selectors%(supplement)?|_selectors%(_supplement)?))|e%(rtical%(forms|[ _]forms)|dic%([ _]extensions|extensions))))\}" contained display + +syntax match clojureRegexpPredefinedCharClass "\v%(\\[dDsSwW]|\.)" contained display +syntax cluster clojureRegexpCharPropertyClasses contains=clojureRegexpPosixCharClass,clojureRegexpJavaCharClass,clojureRegexpUnicodeCharClass +syntax cluster clojureRegexpCharClasses contains=clojureRegexpPredefinedCharClass,clojureRegexpCharClass,@clojureRegexpCharPropertyClasses +syntax region clojureRegexpCharClass start="\[" skip=/\\\\\|\\]/ end="]" contained contains=clojureRegexpPredefinedCharClass,@clojureRegexpCharPropertyClasses +syntax match clojureRegexpBoundary "\\[bBAGZz]" contained display +syntax match clojureRegexpBoundary "[$^]" contained display +syntax match clojureRegexpQuantifier "[?*+][?+]\=" contained display +syntax match clojureRegexpQuantifier "\v\{\d+%(,|,\d+)?}\??" contained display +syntax match clojureRegexpOr "|" contained display +syntax match clojureRegexpBackRef "\v\\%([1-9]\d*|k\<[[:alpha:]]+\>)" contained display + +" Mode modifiers, mode-modified spans, lookaround, regular and atomic +" grouping, and named-capturing. +syntax match clojureRegexpMod "\v\(@<=\?:" contained display +syntax match clojureRegexpMod "\v\(@<=\?[xdsmiuU]*-?[xdsmiuU]+:?" contained display +syntax match clojureRegexpMod "\v\(@<=\?%(\)" contained display +syntax match clojureRegexpMod "\v\(@<=\?\<[[:alpha:]]+\>" contained display + +syntax region clojureRegexpGroup start="(" skip=/\\\\\|\\)/ end=")" matchgroup=clojureRegexpGroup contained contains=clojureRegexpMod,clojureRegexpQuantifier,clojureRegexpBoundary,clojureRegexpEscape,@clojureRegexpCharClasses +syntax region clojureRegexp matchgroup=clojureRegexpDelimiter start=/\#"/ skip=/\\\\\|\\"/ end=/"/ contains=@clojureRegexpCharClasses,clojureRegexpEscape,clojureRegexpQuote,clojureRegexpBoundary,clojureRegexpQuantifier,clojureRegexpOr,clojureRegexpBackRef,clojureRegexpGroup keepend + +syntax keyword clojureCommentTodo contained FIXME XXX TODO BUG NOTE HACK FIXME: XXX: TODO: BUG: NOTE: HACK: + +syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell +syntax match clojureComment "#!.*$" +syntax match clojureComment "," + +" Comment out discarded forms. +if exists('g:clojure_discard_macro') && g:clojure_discard_macro + syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*/ end=/[, \t\n()\[\]{}";]/me=e-1 + syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*"/ skip=/\\[\\"]/ end=/"/ + syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*(/ end=/)/ contains=clojureDiscardForm + syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*\[/ end=/\]/ contains=clojureDiscardForm + syntax region clojureDiscard matchgroup=clojureDiscard start=/#_[ ,\t\n`'~]*{/ end=/}/ contains=clojureDiscardForm + + syntax region clojureDiscardForm start="(" end=")" contained contains=clojureDiscardForm + syntax region clojureDiscardForm start="{" end="}" contained contains=clojureDiscardForm + syntax region clojureDiscardForm start="\[" end="\]" contained contains=clojureDiscardForm +endif + +" -*- TOP CLUSTER -*- +" Generated from https://github.com/clojure-vim/clojure.vim/blob/fd280e33e84c88e97860930557dba3ff80b1a82d/clj/src/vim_clojure_static/generate.clj +syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDiscard,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVariable,clojureVector + +syntax region clojureSexp matchgroup=clojureParen start="(" end=")" contains=@clojureTop fold +syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold +syntax region clojureMap matchgroup=clojureParen start="{" end="}" contains=@clojureTop fold + +" Highlight superfluous closing parens, brackets and braces. +syntax match clojureError "]\|}\|)" + +syntax sync fromstart + +highlight default link clojureConstant Constant +highlight default link clojureBoolean Boolean +highlight default link clojureCharacter Character +highlight default link clojureKeyword Keyword +highlight default link clojureNumber Number +highlight default link clojureString String +highlight default link clojureStringDelimiter String +highlight default link clojureStringEscape Character + +highlight default link clojureRegexp Constant +highlight default link clojureRegexpDelimiter Constant +highlight default link clojureRegexpEscape Character +highlight default link clojureRegexpCharClass SpecialChar +highlight default link clojureRegexpPosixCharClass clojureRegexpCharClass +highlight default link clojureRegexpJavaCharClass clojureRegexpCharClass +highlight default link clojureRegexpUnicodeCharClass clojureRegexpCharClass +highlight default link clojureRegexpPredefinedCharClass clojureRegexpCharClass +highlight default link clojureRegexpBoundary SpecialChar +highlight default link clojureRegexpQuantifier SpecialChar +highlight default link clojureRegexpMod SpecialChar +highlight default link clojureRegexpOr SpecialChar +highlight default link clojureRegexpBackRef SpecialChar +highlight default link clojureRegexpGroup clojureRegexp +highlight default link clojureRegexpQuoted clojureString +highlight default link clojureRegexpQuote clojureRegexpBoundary + +highlight default link clojureVariable Identifier +highlight default link clojureCond Conditional +highlight default link clojureDefine Define +highlight default link clojureException Exception +highlight default link clojureFunc Function +highlight default link clojureMacro Macro +highlight default link clojureRepeat Repeat + +highlight default link clojureSpecial Special +highlight default link clojureQuote SpecialChar +highlight default link clojureUnquote SpecialChar +highlight default link clojureMeta SpecialChar +highlight default link clojureDeref SpecialChar +highlight default link clojureAnonArg SpecialChar +highlight default link clojureDispatch SpecialChar + +highlight default link clojureComment Comment +highlight default link clojureCommentTodo Todo +highlight default link clojureDiscard clojureComment +highlight default link clojureDiscardForm clojureDiscard + +highlight default link clojureError Error + +highlight default link clojureParen Delimiter + +let b:current_syntax = "clojure" + +let &cpo = s:cpo_sav +unlet! s:cpo_sav + +" vim:sts=8:sw=8:ts=8:noet diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim new file mode 100644 index 0000000..c95503b --- /dev/null +++ b/runtime/syntax/cmake.vim @@ -0,0 +1,4980 @@ +" Vim syntax file +" Program: CMake - Cross-Platform Makefile Generator +" Version: cmake version 3.27.20230713-gdc88dd5 +" Language: CMake +" Author: Andy Cedilnik , +" Nicholas Hutchinson , +" Patrick Boettcher +" Maintainer: Dimitri Merejkowsky +" Former Maintainer: Karthik Krishnan +" Last Change: 2023 Jul 13 +" +" License: The CMake license applies to this file. See +" https://cmake.org/licensing +" This implies that distribution with Vim is allowed + +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn region cmakeBracketArgument start="\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell + +syn region cmakeComment start="#\(\[=*\[\)\@!" end="$" contains=cmakeTodo,@Spell +syn region cmakeBracketComment start="#\[\z(=*\)\[" end="\]\z1\]" contains=cmakeTodo,@Spell + +syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained +syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped + +syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo + +syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped,@Spell + +syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue + +syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo + +syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo,@Spell + +syn case match + +syn keyword cmakeProperty contained + \ ABSTRACT + \ ADDITIONAL_CLEAN_FILES + \ ADDITIONAL_MAKE_CLEAN_FILES + \ ADVANCED + \ AIX_EXPORT_ALL_SYMBOLS + \ ALIASED_TARGET + \ ALIAS_GLOBAL + \ ALLOW_DUPLICATE_CUSTOM_TARGETS + \ ANDROID_ANT_ADDITIONAL_OPTIONS + \ ANDROID_API + \ ANDROID_API_MIN + \ ANDROID_ARCH + \ ANDROID_ASSETS_DIRECTORIES + \ ANDROID_GUI + \ ANDROID_JAR_DEPENDENCIES + \ ANDROID_JAR_DIRECTORIES + \ ANDROID_JAVA_SOURCE_DIR + \ ANDROID_NATIVE_LIB_DEPENDENCIES + \ ANDROID_NATIVE_LIB_DIRECTORIES + \ ANDROID_PROCESS_MAX + \ ANDROID_PROGUARD + \ ANDROID_PROGUARD_CONFIG_PATH + \ ANDROID_SECURE_PROPS_PATH + \ ANDROID_SKIP_ANT_STEP + \ ANDROID_STL_TYPE + \ ARCHIVE_OUTPUT_DIRECTORY + \ ARCHIVE_OUTPUT_NAME + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL + \ AUTOGEN_BUILD_DIR + \ AUTOGEN_COMMAND_LINE_LENGTH_MAX + \ AUTOGEN_ORIGIN_DEPENDS + \ AUTOGEN_PARALLEL + \ AUTOGEN_SOURCE_GROUP + \ AUTOGEN_USE_SYSTEM_INCLUDE + \ AUTOGEN_TARGETS_FOLDER + \ AUTOGEN_TARGET_DEPENDS + \ AUTOGEN_USE_SYSTEM_INCLUDE + \ AUTOMOC + \ AUTOMOC_COMPILER_PREDEFINES + \ AUTOMOC_DEPEND_FILTERS + \ AUTOMOC_EXECUTABLE + \ AUTOMOC_MACRO_NAMES + \ AUTOMOC_MOC_OPTIONS + \ AUTOMOC_PATH_PREFIX + \ AUTOMOC_SOURCE_GROUP + \ AUTOMOC_TARGETS_FOLDER + \ AUTORCC + \ AUTORCC_EXECUTABLE + \ AUTORCC_OPTIONS + \ AUTORCC_SOURCE_GROUP + \ AUTOUIC + \ AUTOUIC_EXECUTABLE + \ AUTOUIC_OPTIONS + \ AUTOUIC_SEARCH_PATHS + \ AUTOUIC_SOURCE_GROUP + \ BINARY_DIR + \ BUILDSYSTEM_TARGETS + \ BUILD_RPATH + \ BUILD_RPATH_USE_ORIGIN + \ BUILD_WITH_INSTALL_NAME_DIR + \ BUILD_WITH_INSTALL_RPATH + \ BUNDLE + \ BUNDLE_EXTENSION + \ CACHE_VARIABLES + \ CLEAN_NO_CUSTOM + \ CMAKE_CONFIGURE_DEPENDS + \ CMAKE_CUDA_KNOWN_FEATURES + \ CMAKE_CXX_KNOWN_FEATURES + \ CMAKE_C_KNOWN_FEATURES + \ CMAKE_ROLE + \ COMMON_LANGUAGE_RUNTIME + \ COMPATIBLE_INTERFACE_BOOL + \ COMPATIBLE_INTERFACE_NUMBER_MAX + \ COMPATIBLE_INTERFACE_NUMBER_MIN + \ COMPATIBLE_INTERFACE_STRING + \ COMPILE_DEFINITIONS + \ COMPILE_FEATURES + \ COMPILE_FLAGS + \ COMPILE_OPTIONS + \ COMPILE_PDB_NAME + \ COMPILE_PDB_OUTPUT_DIRECTORY + \ COMPILE_WARNING_AS_ERROR + \ COST + \ CPACK_DESKTOP_SHORTCUTS + \ CPACK_NEVER_OVERWRITE + \ CPACK_PERMANENT + \ CPACK_STARTUP_SHORTCUTS + \ CPACK_START_MENU_SHORTCUTS + \ CPACK_WIX_ACL + \ CROSSCOMPILING_EMULATOR + \ CUDA_ARCHITECTURES + \ CUDA_CUBIN_COMPILATION + \ CUDA_EXTENSIONS + \ CUDA_FATBIN_COMPILATION + \ CUDA_OPTIX_COMPILATION + \ CUDA_PTX_COMPILATION + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_RUNTIME_LIBRARY + \ CUDA_SEPARABLE_COMPILATION + \ CUDA_STANDARD + \ CUDA_STANDARD_REQUIRED + \ CXX_EXTENSIONS + \ CXX_MODULE_DIRS + \ CXX_MODULE_SET + \ CXX_MODULE_SETS + \ CXX_SCAN_FOR_MODULES + \ CXX_STANDARD + \ CXX_STANDARD_REQUIRED + \ C_EXTENSIONS + \ C_STANDARD + \ C_STANDARD_REQUIRED + \ DEBUG_CONFIGURATIONS + \ DEBUG_POSTFIX + \ DEFINE_SYMBOL + \ DEFINITIONS + \ DEPENDS + \ DEPLOYMENT_ADDITIONAL_FILES + \ DEPLOYMENT_REMOTE_DIRECTORY + \ DEPRECATION + \ DISABLED + \ DISABLED_FEATURES + \ DISABLE_PRECOMPILE_HEADERS + \ DLL_NAME_WITH_SOVERSION + \ DOTNET_SDK + \ DOTNET_TARGET_FRAMEWORK + \ DOTNET_TARGET_FRAMEWORK_VERSION + \ ECLIPSE_EXTRA_CPROJECT_CONTENTS + \ ECLIPSE_EXTRA_NATURES + \ ENABLED_FEATURES + \ ENABLED_LANGUAGES + \ ENABLE_EXPORTS + \ ENVIRONMENT + \ ENVIRONMENT_MODIFICATION + \ EXCLUDE_FROM_ALL + \ EXCLUDE_FROM_DEFAULT_BUILD + \ EXPORT_COMPILE_COMMANDS + \ EXPORT_NAME + \ EXPORT_NO_SYSTEM + \ EXPORT_PROPERTIES + \ EXTERNAL_OBJECT + \ EchoString + \ FAIL_REGULAR_EXPRESSION + \ FIND_LIBRARY_USE_LIB32_PATHS + \ FIND_LIBRARY_USE_LIB64_PATHS + \ FIND_LIBRARY_USE_LIBX32_PATHS + \ FIND_LIBRARY_USE_OPENBSD_VERSIONING + \ FIXTURES_CLEANUP + \ FIXTURES_REQUIRED + \ FIXTURES_SETUP + \ FOLDER + \ FRAMEWORK + \ FRAMEWORK_VERSION + \ Fortran_BUILDING_INSTRINSIC_MODULES + \ Fortran_FORMAT + \ Fortran_MODULE_DIRECTORY + \ Fortran_PREPROCESS + \ GENERATED + \ GENERATOR_FILE_NAME + \ GENERATOR_IS_MULTI_CONFIG + \ GHS_INTEGRITY_APP + \ GHS_NO_SOURCE_GROUP_FILE + \ GLOBAL_DEPENDS_DEBUG_MODE + \ GLOBAL_DEPENDS_NO_CYCLES + \ GNUtoMS + \ HAS_CXX + \ HEADER_DIRS + \ HEADER_FILE_ONLY + \ HEADER_SET + \ HEADER_SETS + \ HELPSTRING + \ HIP_ARCHITECTURES + \ HIP_EXTENSIONS + \ HIP_STANDARD + \ HIP_STANDARD_REQUIRED + \ IMPLICIT_DEPENDS_INCLUDE_TRANSFORM + \ IMPORTED + \ IMPORTED_COMMON_LANGUAGE_RUNTIME + \ IMPORTED_CONFIGURATIONS + \ IMPORTED_GLOBAL + \ IMPORTED_IMPLIB + \ IMPORTED_LIBNAME + \ IMPORTED_LINK_DEPENDENT_LIBRARIES + \ IMPORTED_LINK_INTERFACE_LANGUAGES + \ IMPORTED_LINK_INTERFACE_LIBRARIES + \ IMPORTED_LINK_INTERFACE_MULTIPLICITY + \ IMPORTED_LOCATION + \ IMPORTED_NO_SONAME + \ IMPORTED_NO_SYSTEM + \ IMPORTED_OBJECTS + \ IMPORTED_SONAME + \ IMPORTED_TARGETS + \ IMPORT_PREFIX + \ IMPORT_SUFFIX + \ INCLUDE_DIRECTORIES + \ INCLUDE_REGULAR_EXPRESSION + \ INSTALL_NAME_DIR + \ INSTALL_REMOVE_ENVIRONMENT_RPATH + \ INSTALL_RPATH + \ INSTALL_RPATH_USE_LINK_PATH + \ INTERFACE_AUTOMOC_MACRO_NAMES + \ INTERFACE_AUTOUIC_OPTIONS + \ INTERFACE_AUTOMOC_MACRO_NAMES + \ INTERFACE_COMPILE_DEFINITIONS + \ INTERFACE_COMPILE_FEATURES + \ INTERFACE_COMPILE_OPTIONS + \ INTERFACE_CXX_MODULE_SETS + \ INTERFACE_HEADER_SETS + \ INTERFACE_HEADER_SETS_TO_VERIFY + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_LINK_DEPENDS + \ INTERFACE_LINK_DIRECTORIES + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_LINK_LIBRARIES_DIRECT + \ INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE + \ INTERFACE_LINK_OPTIONS + \ INTERFACE_POSITION_INDEPENDENT_CODE + \ INTERFACE_PRECOMPILE_HEADERS + \ INTERFACE_SOURCES + \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + \ INTERPROCEDURAL_OPTIMIZATION + \ IN_TRY_COMPILE + \ IOS_INSTALL_COMBINED + \ ISPC_HEADER_DIRECTORY + \ ISPC_HEADER_SUFFIX + \ ISPC_INSTRUCTION_SETS + \ JOB_POOLS + \ JOB_POOL_COMPILE + \ JOB_POOL_LINK + \ JOB_POOL_PRECOMPILE_HEADER + \ KEEP_EXTENSION + \ LABELS + \ LANGUAGE + \ LIBRARY_OUTPUT_DIRECTORY + \ LIBRARY_OUTPUT_NAME + \ LINKER_LANGUAGE + \ LINK_DEPENDS + \ LINK_DEPENDS_NO_SHARED + \ LINK_DIRECTORIES + \ LINK_FLAGS + \ LINK_INTERFACE_LIBRARIES + \ LINK_INTERFACE_MULTIPLICITY + \ LINK_LIBRARIES + \ LINK_LIBRARIES_ONLY_TARGETS + \ LINK_LIBRARY_OVERRIDE + \ LINK_OPTIONS + \ LINK_SEARCH_END_STATIC + \ LINK_SEARCH_START_STATIC + \ LINK_WHAT_YOU_USE + \ LISTFILE_STACK + \ LOCATION + \ MACHO_COMPATIBILITY_VERSION + \ MACHO_CURRENT_VERSION + \ MACOSX_BUNDLE + \ MACOSX_BUNDLE_INFO_PLIST + \ MACOSX_FRAMEWORK_INFO_PLIST + \ MACOSX_PACKAGE_LOCATION + \ MACOSX_RPATH + \ MACROS + \ MANUALLY_ADDED_DEPENDENCIES + \ MEASUREMENT + \ MODIFIED + \ MSVC_DEBUG_INFORMATION_FORMAT + \ MSVC_RUNTIME_LIBRARY + \ NAME + \ NO_SONAME + \ NO_SYSTEM_FROM_IMPORTED + \ OBJCXX_EXTENSIONS + \ OBJCXX_STANDARD + \ OBJCXX_STANDARD_REQUIRED + \ OBJC_EXTENSIONS + \ OBJC_STANDARD + \ OBJC_STANDARD_REQUIRED + \ OBJECT_DEPENDS + \ OBJECT_OUTPUTS + \ OPTIMIZE_DEPENDENCIES + \ OSX_ARCHITECTURES + \ OUTPUT_NAME + \ PACKAGES_FOUND + \ PACKAGES_NOT_FOUND + \ PARENT_DIRECTORY + \ PASS_REGULAR_EXPRESSION + \ PCH_INSTANTIATE_TEMPLATES + \ PCH_WARN_INVALID + \ PDB_NAME + \ PDB_OUTPUT_DIRECTORY + \ POSITION_INDEPENDENT_CODE + \ POST_INSTALL_SCRIPT + \ PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS_REUSE_FROM + \ PREDEFINED_TARGETS_FOLDER + \ PREFIX + \ PRE_INSTALL_SCRIPT + \ PRIVATE_HEADER + \ PROCESSORS + \ PROCESSOR_AFFINITY + \ PROJECT_LABEL + \ PUBLIC_HEADER + \ REPORT_UNDEFINED_PROPERTIES + \ REQUIRED_FILES + \ RESOURCE + \ RESOURCE_GROUPS + \ RESOURCE_LOCK + \ RULE_LAUNCH_COMPILE + \ RULE_LAUNCH_CUSTOM + \ RULE_LAUNCH_LINK + \ RULE_MESSAGES + \ RUNTIME_OUTPUT_DIRECTORY + \ RUNTIME_OUTPUT_NAME + \ RUN_SERIAL + \ SKIP_AUTOGEN + \ SKIP_AUTOMOC + \ SKIP_AUTORCC + \ SKIP_AUTOUIC + \ SKIP_BUILD_RPATH + \ SKIP_LINTING + \ SKIP_PRECOMPILE_HEADERS + \ SKIP_REGULAR_EXPRESSION + \ SKIP_RETURN_CODE + \ SKIP_UNITY_BUILD_INCLUSION + \ SOURCES + \ SOURCE_DIR + \ SOVERSION + \ STATIC_LIBRARY_FLAGS + \ STATIC_LIBRARY_OPTIONS + \ STRINGS + \ SUBDIRECTORIES + \ SUFFIX + \ SYMBOLIC + \ SYSTEM + \ Swift_DEPENDENCIES_FILE + \ Swift_DIAGNOSTICS_FILE + \ Swift_LANGUAGE_VERSION + \ Swift_MODULE_DIRECTORY + \ Swift_MODULE_NAME + \ Swift_COMPILATION_MODE + \ TARGET_ARCHIVES_MAY_BE_SHARED_LIBS + \ TARGET_MESSAGES + \ TARGET_SUPPORTS_SHARED_LIBS + \ TESTS + \ TEST_INCLUDE_FILE + \ TEST_INCLUDE_FILES + \ TIMEOUT + \ TIMEOUT_AFTER_MATCH + \ TIMEOUT_SIGNAL_GRACE_PERIOD + \ TIMEOUT_SIGNAL_NAME + \ TYPE + \ UNITY_BUILD + \ UNITY_BUILD_BATCH_SIZE + \ UNITY_BUILD_CODE_AFTER_INCLUDE + \ UNITY_BUILD_CODE_BEFORE_INCLUDE + \ UNITY_BUILD_MODE + \ UNITY_BUILD_UNIQUE_ID + \ UNITY_GROUP + \ USE_FOLDERS + \ VALUE + \ VARIABLES + \ VERIFY_INTERFACE_HEADER_SETS + \ VERSION + \ VISIBILITY_INLINES_HIDDEN + \ VS_CONFIGURATION_TYPE + \ VS_COPY_TO_OUT_DIR + \ VS_DEBUGGER_COMMAND + \ VS_DEBUGGER_COMMAND_ARGUMENTS + \ VS_DEBUGGER_ENVIRONMENT + \ VS_DEBUGGER_WORKING_DIRECTORY + \ VS_DEPLOYMENT_CONTENT + \ VS_DEPLOYMENT_LOCATION + \ VS_DESKTOP_EXTENSIONS_VERSION + \ VS_DOTNET_DOCUMENTATION_FILE + \ VS_DOTNET_REFERENCES + \ VS_DOTNET_REFERENCES_COPY_LOCAL + \ VS_DOTNET_STARTUP_OBJECT + \ VS_DOTNET_TARGET_FRAMEWORK_VERSION + \ VS_DPI_AWARE + \ VS_GLOBAL_KEYWORD + \ VS_GLOBAL_PROJECT_TYPES + \ VS_GLOBAL_ROOTNAMESPACE + \ VS_INCLUDE_IN_VSIX + \ VS_IOT_EXTENSIONS_VERSION + \ VS_IOT_STARTUP_TASK + \ VS_JUST_MY_CODE_DEBUGGING + \ VS_KEYWORD + \ VS_MOBILE_EXTENSIONS_VERSION + \ VS_NO_COMPILE_BATCHING + \ VS_NO_SOLUTION_DEPLOY + \ VS_PACKAGE_REFERENCES + \ VS_PLATFORM_TOOLSET + \ VS_PROJECT_IMPORT + \ VS_RESOURCE_GENERATOR + \ VS_SCC_AUXPATH + \ VS_SCC_LOCALPATH + \ VS_SCC_PROJECTNAME + \ VS_SCC_PROVIDER + \ VS_SDK_REFERENCES + \ VS_SETTINGS + \ VS_SHADER_DISABLE_OPTIMIZATIONS + \ VS_SHADER_ENABLE_DEBUG + \ VS_SHADER_ENTRYPOINT + \ VS_SHADER_FLAGS + \ VS_SHADER_MODEL + \ VS_SHADER_OBJECT_FILE_NAME + \ VS_SHADER_OUTPUT_HEADER_FILE + \ VS_SHADER_TYPE + \ VS_SHADER_VARIABLE_NAME + \ VS_SOLUTION_DEPLOY + \ VS_STARTUP_PROJECT + \ VS_TOOL_OVERRIDE + \ VS_USER_PROPS + \ VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + \ VS_WINRT_COMPONENT + \ VS_WINRT_EXTENSIONS + \ VS_WINRT_REFERENCES + \ VS_XAML_TYPE + \ WATCOM_RUNTIME_LIBRARY + \ WILL_FAIL + \ WIN32_EXECUTABLE + \ WINDOWS_EXPORT_ALL_SYMBOLS + \ WORKING_DIRECTORY + \ WRAP_EXCLUDE + \ XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY + \ XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY + \ XCODE_EMIT_EFFECTIVE_PLATFORM_NAME + \ XCODE_EXPLICIT_FILE_TYPE + \ XCODE_FILE_ATTRIBUTES + \ XCODE_GENERATE_SCHEME + \ XCODE_LAST_KNOWN_FILE_TYPE + \ XCODE_LINK_BUILD_PHASE_MODE + \ XCODE_PRODUCT_TYPE + \ XCODE_SCHEME_ADDRESS_SANITIZER + \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN + \ XCODE_SCHEME_ARGUMENTS + \ XCODE_SCHEME_DEBUG_AS_ROOT + \ XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING + \ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER + \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS + \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + \ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ XCODE_SCHEME_ENVIRONMENT + \ XCODE_SCHEME_EXECUTABLE + \ XCODE_SCHEME_GUARD_MALLOC + \ XCODE_SCHEME_LAUNCH_CONFIGURATION + \ XCODE_SCHEME_LAUNCH_MODE + \ XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP + \ XCODE_SCHEME_MALLOC_GUARD_EDGES + \ XCODE_SCHEME_MALLOC_SCRIBBLE + \ XCODE_SCHEME_MALLOC_STACK + \ XCODE_SCHEME_THREAD_SANITIZER + \ XCODE_SCHEME_THREAD_SANITIZER_STOP + \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER + \ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP + \ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ XCODE_SCHEME_LAUNCH_CONFIGURATION + \ XCODE_SCHEME_WORKING_DIRECTORY + \ XCODE_SCHEME_ZOMBIE_OBJECTS + \ XCODE_XCCONFIG + \ XCTEST + +syn keyword cmakeVariable contained + \ ANDROID + \ APPLE + \ BORLAND + \ BSD + \ BUILD_SHARED_LIBS + \ CACHE + \ CMAKE_ABSOLUTE_DESTINATION_FILES + \ CMAKE_ADD_CUSTOM_COMMAND_DEPENDS_EXPLICIT_ONLY + \ CMAKE_ADSP_ROOT + \ CMAKE_AIX_EXPORT_ALL_SYMBOLS + \ CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS + \ CMAKE_ANDROID_API + \ CMAKE_ANDROID_API_MIN + \ CMAKE_ANDROID_ARCH + \ CMAKE_ANDROID_ARCH_ABI + \ CMAKE_ANDROID_ARM_MODE + \ CMAKE_ANDROID_ARM_NEON + \ CMAKE_ANDROID_ASSETS_DIRECTORIES + \ CMAKE_ANDROID_EXCEPTIONS + \ CMAKE_ANDROID_GUI + \ CMAKE_ANDROID_JAR_DEPENDENCIES + \ CMAKE_ANDROID_JAR_DIRECTORIES + \ CMAKE_ANDROID_JAVA_SOURCE_DIR + \ CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES + \ CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES + \ CMAKE_ANDROID_NDK + \ CMAKE_ANDROID_NDK_DEPRECATED_HEADERS + \ CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG + \ CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION + \ CMAKE_ANDROID_NDK_VERSION + \ CMAKE_ANDROID_PROCESS_MAX + \ CMAKE_ANDROID_PROGUARD + \ CMAKE_ANDROID_PROGUARD_CONFIG_PATH + \ CMAKE_ANDROID_RTTI + \ CMAKE_ANDROID_SECURE_PROPS_PATH + \ CMAKE_ANDROID_SKIP_ANT_STEP + \ CMAKE_ANDROID_STANDALONE_TOOLCHAIN + \ CMAKE_ANDROID_STL_TYPE + \ CMAKE_APPBUNDLE_PATH + \ CMAKE_APPLE_SILICON_PROCESSOR + \ CMAKE_AR + \ CMAKE_ARCHIVE_OUTPUT_DIRECTORY + \ CMAKE_ARGC + \ CMAKE_ARGV0 + \ CMAKE_ASM + \ CMAKE_ASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_ARCHIVE_APPEND + \ CMAKE_ASM_ARCHIVE_CREATE + \ CMAKE_ASM_ARCHIVE_FINISH + \ CMAKE_ASM_BYTE_ORDER + \ CMAKE_ASM_CLANG_TIDY + \ CMAKE_ASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_COMPILER + \ CMAKE_ASM_COMPILER_ABI + \ CMAKE_ASM_COMPILER_AR + \ CMAKE_ASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_COMPILER_ID + \ CMAKE_ASM_COMPILER_LAUNCHER + \ CMAKE_ASM_COMPILER_LOADED + \ CMAKE_ASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_COMPILER_RANLIB + \ CMAKE_ASM_COMPILER_TARGET + \ CMAKE_ASM_COMPILER_VERSION + \ CMAKE_ASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_COMPILE_OBJECT + \ CMAKE_ASM_CPPCHECK + \ CMAKE_ASM_CPPLINT + \ CMAKE_ASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_EXTENSIONS + \ CMAKE_ASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_FLAGS + \ CMAKE_ASM_FLAGS_DEBUG + \ CMAKE_ASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_FLAGS_INIT + \ CMAKE_ASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_FLAGS_RELEASE + \ CMAKE_ASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_INIT + \ CMAKE_ASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_LINKER_LAUNCHER + \ CMAKE_ASM_LINKER_PREFERENCE + \ CMAKE_ASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_LINK_EXECUTABLE + \ CMAKE_ASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_MASM + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_MASM_ARCHIVE_APPEND + \ CMAKE_ASM_MASM_ARCHIVE_CREATE + \ CMAKE_ASM_MASM_ARCHIVE_FINISH + \ CMAKE_ASM_MASM_BYTE_ORDER + \ CMAKE_ASM_MASM_CLANG_TIDY + \ CMAKE_ASM_MASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_MASM_COMPILER + \ CMAKE_ASM_MASM_COMPILER_ABI + \ CMAKE_ASM_MASM_COMPILER_AR + \ CMAKE_ASM_MASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_MASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_MASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_MASM_COMPILER_ID + \ CMAKE_ASM_MASM_COMPILER_LAUNCHER + \ CMAKE_ASM_MASM_COMPILER_LOADED + \ CMAKE_ASM_MASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_MASM_COMPILER_RANLIB + \ CMAKE_ASM_MASM_COMPILER_TARGET + \ CMAKE_ASM_MASM_COMPILER_VERSION + \ CMAKE_ASM_MASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_MASM_COMPILE_OBJECT + \ CMAKE_ASM_MASM_CPPCHECK + \ CMAKE_ASM_MASM_CPPLINT + \ CMAKE_ASM_MASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_MASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_MASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_MASM_EXTENSIONS + \ CMAKE_ASM_MASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_MASM_FLAGS + \ CMAKE_ASM_MASM_FLAGS_DEBUG + \ CMAKE_ASM_MASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_MASM_FLAGS_INIT + \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_MASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_MASM_FLAGS_RELEASE + \ CMAKE_ASM_MASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_MASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_MASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_MASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_MASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_MASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_MASM_INIT + \ CMAKE_ASM_MASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_MASM_LINKER_LAUNCHER + \ CMAKE_ASM_MASM_LINKER_PREFERENCE + \ CMAKE_ASM_MASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_MASM_LINK_EXECUTABLE + \ CMAKE_ASM_MASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_MASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_MASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_MASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_MASM_OUTPUT_EXTENSION + \ CMAKE_ASM_MASM_PLATFORM_ID + \ CMAKE_ASM_MASM_SIMULATE_ID + \ CMAKE_ASM_MASM_SIMULATE_VERSION + \ CMAKE_ASM_MASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_MASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_MASM_STANDARD + \ CMAKE_ASM_MASM_STANDARD_DEFAULT + \ CMAKE_ASM_MASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_MASM_STANDARD_LIBRARIES + \ CMAKE_ASM_MASM_STANDARD_REQUIRED + \ CMAKE_ASM_MASM_SUPPORTED + \ CMAKE_ASM_MASM_VISIBILITY_PRESET + \ CMAKE_ASM_NASM + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_ASM_NASM_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_ASM_NASM_ARCHIVE_APPEND + \ CMAKE_ASM_NASM_ARCHIVE_CREATE + \ CMAKE_ASM_NASM_ARCHIVE_FINISH + \ CMAKE_ASM_NASM_BYTE_ORDER + \ CMAKE_ASM_NASM_CLANG_TIDY + \ CMAKE_ASM_NASM_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_ASM_NASM_COMPILER + \ CMAKE_ASM_NASM_COMPILER_ABI + \ CMAKE_ASM_NASM_COMPILER_AR + \ CMAKE_ASM_NASM_COMPILER_ARCHITECTURE_ID + \ CMAKE_ASM_NASM_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_ASM_NASM_COMPILER_FRONTEND_VARIANT + \ CMAKE_ASM_NASM_COMPILER_ID + \ CMAKE_ASM_NASM_COMPILER_LAUNCHER + \ CMAKE_ASM_NASM_COMPILER_LOADED + \ CMAKE_ASM_NASM_COMPILER_PREDEFINES_COMMAND + \ CMAKE_ASM_NASM_COMPILER_RANLIB + \ CMAKE_ASM_NASM_COMPILER_TARGET + \ CMAKE_ASM_NASM_COMPILER_VERSION + \ CMAKE_ASM_NASM_COMPILER_VERSION_INTERNAL + \ CMAKE_ASM_NASM_COMPILE_OBJECT + \ CMAKE_ASM_NASM_CPPCHECK + \ CMAKE_ASM_NASM_CPPLINT + \ CMAKE_ASM_NASM_CREATE_SHARED_LIBRARY + \ CMAKE_ASM_NASM_CREATE_SHARED_MODULE + \ CMAKE_ASM_NASM_CREATE_STATIC_LIBRARY + \ CMAKE_ASM_NASM_EXTENSIONS + \ CMAKE_ASM_NASM_EXTENSIONS_DEFAULT + \ CMAKE_ASM_NASM_FLAGS + \ CMAKE_ASM_NASM_FLAGS_DEBUG + \ CMAKE_ASM_NASM_FLAGS_DEBUG_INIT + \ CMAKE_ASM_NASM_FLAGS_INIT + \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL + \ CMAKE_ASM_NASM_FLAGS_MINSIZEREL_INIT + \ CMAKE_ASM_NASM_FLAGS_RELEASE + \ CMAKE_ASM_NASM_FLAGS_RELEASE_INIT + \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO + \ CMAKE_ASM_NASM_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_ASM_NASM_IGNORE_EXTENSIONS + \ CMAKE_ASM_NASM_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_ASM_NASM_IMPLICIT_LINK_LIBRARIES + \ CMAKE_ASM_NASM_INCLUDE_WHAT_YOU_USE + \ CMAKE_ASM_NASM_INIT + \ CMAKE_ASM_NASM_LIBRARY_ARCHITECTURE + \ CMAKE_ASM_NASM_LINKER_LAUNCHER + \ CMAKE_ASM_NASM_LINKER_PREFERENCE + \ CMAKE_ASM_NASM_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG + \ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_ASM_NASM_LINK_EXECUTABLE + \ CMAKE_ASM_NASM_LINK_LIBRARY_FILE_FLAG + \ CMAKE_ASM_NASM_LINK_LIBRARY_FLAG + \ CMAKE_ASM_NASM_LINK_LIBRARY_SUFFIX + \ CMAKE_ASM_NASM_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_ASM_NASM_OUTPUT_EXTENSION + \ CMAKE_ASM_NASM_PLATFORM_ID + \ CMAKE_ASM_NASM_SIMULATE_ID + \ CMAKE_ASM_NASM_SIMULATE_VERSION + \ CMAKE_ASM_NASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_NASM_STANDARD + \ CMAKE_ASM_NASM_STANDARD_DEFAULT + \ CMAKE_ASM_NASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_NASM_STANDARD_LIBRARIES + \ CMAKE_ASM_NASM_STANDARD_REQUIRED + \ CMAKE_ASM_NASM_SUPPORTED + \ CMAKE_ASM_NASM_VISIBILITY_PRESET + \ CMAKE_ASM_OUTPUT_EXTENSION + \ CMAKE_ASM_PLATFORM_ID + \ CMAKE_ASM_SIMULATE_ID + \ CMAKE_ASM_SIMULATE_VERSION + \ CMAKE_ASM_SIZEOF_DATA_PTR + \ CMAKE_ASM_SOURCE_FILE_EXTENSIONS + \ CMAKE_ASM_STANDARD + \ CMAKE_ASM_STANDARD_DEFAULT + \ CMAKE_ASM_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_ASM_STANDARD_LIBRARIES + \ CMAKE_ASM_STANDARD_REQUIRED + \ CMAKE_ASM_SUPPORTED + \ CMAKE_ASM_VISIBILITY_PRESET + \ CMAKE_AUTOGEN_COMMAND_LINE_LENGTH_MAX + \ CMAKE_AUTOGEN_ORIGIN_DEPENDS + \ CMAKE_AUTOGEN_PARALLEL + \ CMAKE_AUTOGEN_USE_SYSTEM_INCLUDE + \ CMAKE_AUTOGEN_VERBOSE + \ CMAKE_AUTOMOC + \ CMAKE_AUTOMOC_COMPILER_PREDEFINES + \ CMAKE_AUTOMOC_DEPEND_FILTERS + \ CMAKE_AUTOMOC_EXECUTABLE + \ CMAKE_AUTOMOC_MACRO_NAMES + \ CMAKE_AUTOMOC_MOC_OPTIONS + \ CMAKE_AUTOMOC_PATH_PREFIX + \ CMAKE_AUTOMOC_RELAXED_MODE + \ CMAKE_AUTOMOC_EXECUTABLE + \ CMAKE_AUTORCC + \ CMAKE_AUTORCC_EXECUTABLE + \ CMAKE_AUTORCC_OPTIONS + \ CMAKE_AUTORCC_EXECUTABLE + \ CMAKE_AUTOUIC + \ CMAKE_AUTOUIC_EXECUTABLE + \ CMAKE_AUTOUIC_OPTIONS + \ CMAKE_AUTOUIC_SEARCH_PATHS + \ CMAKE_AUTOUIC_EXECUTABLE + \ CMAKE_BACKWARDS_COMPATIBILITY + \ CMAKE_BINARY_DIR + \ CMAKE_BUILD_RPATH + \ CMAKE_BUILD_RPATH_USE_ORIGIN + \ CMAKE_BUILD_TOOL + \ CMAKE_BUILD_TYPE + \ CMAKE_BUILD_WITH_INSTALL_NAME_DIR + \ CMAKE_BUILD_WITH_INSTALL_RPATH + \ CMAKE_C + \ CMAKE_CACHEFILE_DIR + \ CMAKE_CACHE_MAJOR_VERSION + \ CMAKE_CACHE_MINOR_VERSION + \ CMAKE_CACHE_PATCH_VERSION + \ CMAKE_CFG_INTDIR + \ CMAKE_CLANG_VFS_OVERLAY + \ CMAKE_CL_64 + \ CMAKE_CODEBLOCKS_COMPILER_ID + \ CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES + \ CMAKE_CODELITE_USE_TARGETS + \ CMAKE_COLOR_DIAGNOSTICS + \ CMAKE_COLOR_MAKEFILE + \ CMAKE_COMMAND + \ CMAKE_COMPILER_2005 + \ CMAKE_COMPILER_IS_GNUCC + \ CMAKE_COMPILER_IS_GNUCXX + \ CMAKE_COMPILER_IS_GNUG77 + \ CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY + \ CMAKE_COMPILE_WARNING_AS_ERROR + \ CMAKE_CONFIGURATION_TYPES + \ CMAKE_CPACK_COMMAND + \ CMAKE_CROSSCOMPILING + \ CMAKE_CROSSCOMPILING_EMULATOR + \ CMAKE_CROSS_CONFIGS + \ CMAKE_CSharp + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CSharp_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CSharp_ARCHIVE_APPEND + \ CMAKE_CSharp_ARCHIVE_CREATE + \ CMAKE_CSharp_ARCHIVE_FINISH + \ CMAKE_CSharp_BYTE_ORDER + \ CMAKE_CSharp_CLANG_TIDY + \ CMAKE_CSharp_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CSharp_COMPILER + \ CMAKE_CSharp_COMPILER_ABI + \ CMAKE_CSharp_COMPILER_AR + \ CMAKE_CSharp_COMPILER_ARCHITECTURE_ID + \ CMAKE_CSharp_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CSharp_COMPILER_FRONTEND_VARIANT + \ CMAKE_CSharp_COMPILER_ID + \ CMAKE_CSharp_COMPILER_LAUNCHER + \ CMAKE_CSharp_COMPILER_LOADED + \ CMAKE_CSharp_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CSharp_COMPILER_RANLIB + \ CMAKE_CSharp_COMPILER_TARGET + \ CMAKE_CSharp_COMPILER_VERSION + \ CMAKE_CSharp_COMPILER_VERSION_INTERNAL + \ CMAKE_CSharp_COMPILE_OBJECT + \ CMAKE_CSharp_CPPCHECK + \ CMAKE_CSharp_CPPLINT + \ CMAKE_CSharp_CREATE_SHARED_LIBRARY + \ CMAKE_CSharp_CREATE_SHARED_MODULE + \ CMAKE_CSharp_CREATE_STATIC_LIBRARY + \ CMAKE_CSharp_EXTENSIONS + \ CMAKE_CSharp_EXTENSIONS_DEFAULT + \ CMAKE_CSharp_FLAGS + \ CMAKE_CSharp_FLAGS_DEBUG + \ CMAKE_CSharp_FLAGS_DEBUG_INIT + \ CMAKE_CSharp_FLAGS_INIT + \ CMAKE_CSharp_FLAGS_MINSIZEREL + \ CMAKE_CSharp_FLAGS_MINSIZEREL_INIT + \ CMAKE_CSharp_FLAGS_RELEASE + \ CMAKE_CSharp_FLAGS_RELEASE_INIT + \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO + \ CMAKE_CSharp_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CSharp_IGNORE_EXTENSIONS + \ CMAKE_CSharp_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CSharp_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CSharp_INCLUDE_WHAT_YOU_USE + \ CMAKE_CSharp_INIT + \ CMAKE_CSharp_LIBRARY_ARCHITECTURE + \ CMAKE_CSharp_LINKER_LAUNCHER + \ CMAKE_CSharp_LINKER_PREFERENCE + \ CMAKE_CSharp_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CSharp_LINKER_WRAPPER_FLAG + \ CMAKE_CSharp_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CSharp_LINK_EXECUTABLE + \ CMAKE_CSharp_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CSharp_LINK_LIBRARY_FLAG + \ CMAKE_CSharp_LINK_LIBRARY_SUFFIX + \ CMAKE_CSharp_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CSharp_OUTPUT_EXTENSION + \ CMAKE_CSharp_PLATFORM_ID + \ CMAKE_CSharp_SIMULATE_ID + \ CMAKE_CSharp_SIMULATE_VERSION + \ CMAKE_CSharp_SIZEOF_DATA_PTR + \ CMAKE_CSharp_SOURCE_FILE_EXTENSIONS + \ CMAKE_CSharp_STANDARD + \ CMAKE_CSharp_STANDARD_DEFAULT + \ CMAKE_CSharp_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CSharp_STANDARD_LIBRARIES + \ CMAKE_CSharp_STANDARD_REQUIRED + \ CMAKE_CSharp_SUPPORTED + \ CMAKE_CSharp_VISIBILITY_PRESET + \ CMAKE_CTEST_ARGUMENTS + \ CMAKE_CTEST_COMMAND + \ CMAKE_CUDA + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CUDA_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CUDA_ARCHITECTURES + \ CMAKE_CUDA_ARCHIVE_APPEND + \ CMAKE_CUDA_ARCHIVE_CREATE + \ CMAKE_CUDA_ARCHIVE_FINISH + \ CMAKE_CUDA_BYTE_ORDER + \ CMAKE_CUDA_CLANG_TIDY + \ CMAKE_CUDA_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CUDA_COMPILER + \ CMAKE_CUDA_COMPILER_ABI + \ CMAKE_CUDA_COMPILER_AR + \ CMAKE_CUDA_COMPILER_ARCHITECTURE_ID + \ CMAKE_CUDA_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CUDA_COMPILER_FRONTEND_VARIANT + \ CMAKE_CUDA_COMPILER_ID + \ CMAKE_CUDA_COMPILER_LAUNCHER + \ CMAKE_CUDA_COMPILER_LOADED + \ CMAKE_CUDA_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CUDA_COMPILER_RANLIB + \ CMAKE_CUDA_COMPILER_TARGET + \ CMAKE_CUDA_COMPILER_VERSION + \ CMAKE_CUDA_COMPILER_VERSION_INTERNAL + \ CMAKE_CUDA_COMPILE_FEATURES + \ CMAKE_CUDA_COMPILE_OBJECT + \ CMAKE_CUDA_CPPCHECK + \ CMAKE_CUDA_CPPLINT + \ CMAKE_CUDA_CREATE_SHARED_LIBRARY + \ CMAKE_CUDA_CREATE_SHARED_MODULE + \ CMAKE_CUDA_CREATE_STATIC_LIBRARY + \ CMAKE_CUDA_EXTENSIONS + \ CMAKE_CUDA_EXTENSIONS_DEFAULT + \ CMAKE_CUDA_FLAGS + \ CMAKE_CUDA_FLAGS_DEBUG + \ CMAKE_CUDA_FLAGS_DEBUG_INIT + \ CMAKE_CUDA_FLAGS_INIT + \ CMAKE_CUDA_FLAGS_MINSIZEREL + \ CMAKE_CUDA_FLAGS_MINSIZEREL_INIT + \ CMAKE_CUDA_FLAGS_RELEASE + \ CMAKE_CUDA_FLAGS_RELEASE_INIT + \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO + \ CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CUDA_HOST_COMPILER + \ CMAKE_CUDA_IGNORE_EXTENSIONS + \ CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CUDA_INCLUDE_WHAT_YOU_USE + \ CMAKE_CUDA_INIT + \ CMAKE_CUDA_LIBRARY_ARCHITECTURE + \ CMAKE_CUDA_LINKER_LAUNCHER + \ CMAKE_CUDA_LINKER_PREFERENCE + \ CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CUDA_LINKER_WRAPPER_FLAG + \ CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CUDA_LINK_EXECUTABLE + \ CMAKE_CUDA_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CUDA_LINK_LIBRARY_FLAG + \ CMAKE_CUDA_LINK_LIBRARY_SUFFIX + \ CMAKE_CUDA_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CUDA_OUTPUT_EXTENSION + \ CMAKE_CUDA_PLATFORM_ID + \ CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS + \ CMAKE_CUDA_RUNTIME_LIBRARY + \ CMAKE_CUDA_SEPARABLE_COMPILATION + \ CMAKE_CUDA_SIMULATE_ID + \ CMAKE_CUDA_SIMULATE_VERSION + \ CMAKE_CUDA_SIZEOF_DATA_PTR + \ CMAKE_CUDA_SOURCE_FILE_EXTENSIONS + \ CMAKE_CUDA_STANDARD + \ CMAKE_CUDA_STANDARD_DEFAULT + \ CMAKE_CUDA_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_STANDARD_LIBRARIES + \ CMAKE_CUDA_STANDARD_REQUIRED + \ CMAKE_CUDA_SUPPORTED + \ CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES + \ CMAKE_CUDA_VISIBILITY_PRESET + \ CMAKE_CURRENT_BINARY_DIR + \ CMAKE_CURRENT_FUNCTION + \ CMAKE_CURRENT_FUNCTION_LIST_DIR + \ CMAKE_CURRENT_FUNCTION_LIST_FILE + \ CMAKE_CURRENT_FUNCTION_LIST_LINE + \ CMAKE_CURRENT_LIST_DIR + \ CMAKE_CURRENT_LIST_FILE + \ CMAKE_CURRENT_LIST_LINE + \ CMAKE_CURRENT_SOURCE_DIR + \ CMAKE_CXX + \ CMAKE_CXX_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_CXX_ARCHIVE_APPEND + \ CMAKE_CXX_ARCHIVE_CREATE + \ CMAKE_CXX_ARCHIVE_FINISH + \ CMAKE_CXX_BYTE_ORDER + \ CMAKE_CXX_CLANG_TIDY + \ CMAKE_CXX_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_CXX_COMPILER + \ CMAKE_CXX_COMPILER_ABI + \ CMAKE_CXX_COMPILER_AR + \ CMAKE_CXX_COMPILER_ARCHITECTURE_ID + \ CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_CXX_COMPILER_FRONTEND_VARIANT + \ CMAKE_CXX_COMPILER_ID + \ CMAKE_CXX_COMPILER_LAUNCHER + \ CMAKE_CXX_COMPILER_LOADED + \ CMAKE_CXX_COMPILER_PREDEFINES_COMMAND + \ CMAKE_CXX_COMPILER_RANLIB + \ CMAKE_CXX_COMPILER_TARGET + \ CMAKE_CXX_COMPILER_VERSION + \ CMAKE_CXX_COMPILER_VERSION_INTERNAL + \ CMAKE_CXX_COMPILE_FEATURES + \ CMAKE_CXX_COMPILE_OBJECT + \ CMAKE_CXX_CPPCHECK + \ CMAKE_CXX_CPPLINT + \ CMAKE_CXX_CREATE_SHARED_LIBRARY + \ CMAKE_CXX_CREATE_SHARED_MODULE + \ CMAKE_CXX_CREATE_STATIC_LIBRARY + \ CMAKE_CXX_EXTENSIONS + \ CMAKE_CXX_EXTENSIONS_DEFAULT + \ CMAKE_CXX_FLAGS + \ CMAKE_CXX_FLAGS_DEBUG + \ CMAKE_CXX_FLAGS_DEBUG_INIT + \ CMAKE_CXX_FLAGS_INIT + \ CMAKE_CXX_FLAGS_MINSIZEREL + \ CMAKE_CXX_FLAGS_MINSIZEREL_INIT + \ CMAKE_CXX_FLAGS_RELEASE + \ CMAKE_CXX_FLAGS_RELEASE_INIT + \ CMAKE_CXX_FLAGS_RELWITHDEBINFO + \ CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_CXX_IGNORE_EXTENSIONS + \ CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_CXX_IMPLICIT_LINK_LIBRARIES + \ CMAKE_CXX_INCLUDE_WHAT_YOU_USE + \ CMAKE_CXX_INIT + \ CMAKE_CXX_LIBRARY_ARCHITECTURE + \ CMAKE_CXX_LINKER_LAUNCHER + \ CMAKE_CXX_LINKER_PREFERENCE + \ CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_CXX_LINKER_WRAPPER_FLAG + \ CMAKE_CXX_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_CXX_LINK_EXECUTABLE + \ CMAKE_CXX_LINK_LIBRARY_FILE_FLAG + \ CMAKE_CXX_LINK_LIBRARY_FLAG + \ CMAKE_CXX_LINK_LIBRARY_SUFFIX + \ CMAKE_CXX_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_CXX_OUTPUT_EXTENSION + \ CMAKE_CXX_PLATFORM_ID + \ CMAKE_CXX_SCAN_FOR_MODULES + \ CMAKE_CXX_SIMULATE_ID + \ CMAKE_CXX_SIMULATE_VERSION + \ CMAKE_CXX_SIZEOF_DATA_PTR + \ CMAKE_CXX_SOURCE_FILE_EXTENSIONS + \ CMAKE_CXX_STANDARD + \ CMAKE_CXX_STANDARD_DEFAULT + \ CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_CXX_STANDARD_LIBRARIES + \ CMAKE_CXX_STANDARD_REQUIRED + \ CMAKE_CXX_SUPPORTED + \ CMAKE_CXX_VISIBILITY_PRESET + \ CMAKE_C_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_C_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_C_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_C_ARCHIVE_APPEND + \ CMAKE_C_ARCHIVE_CREATE + \ CMAKE_C_ARCHIVE_FINISH + \ CMAKE_C_BYTE_ORDER + \ CMAKE_C_CLANG_TIDY + \ CMAKE_C_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_C_COMPILER + \ CMAKE_C_COMPILER_ABI + \ CMAKE_C_COMPILER_AR + \ CMAKE_C_COMPILER_ARCHITECTURE_ID + \ CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_C_COMPILER_FRONTEND_VARIANT + \ CMAKE_C_COMPILER_ID + \ CMAKE_C_COMPILER_LAUNCHER + \ CMAKE_C_COMPILER_LOADED + \ CMAKE_C_COMPILER_PREDEFINES_COMMAND + \ CMAKE_C_COMPILER_RANLIB + \ CMAKE_C_COMPILER_TARGET + \ CMAKE_C_COMPILER_VERSION + \ CMAKE_C_COMPILER_VERSION_INTERNAL + \ CMAKE_C_COMPILE_FEATURES + \ CMAKE_C_COMPILE_OBJECT + \ CMAKE_C_CPPCHECK + \ CMAKE_C_CPPLINT + \ CMAKE_C_CREATE_SHARED_LIBRARY + \ CMAKE_C_CREATE_SHARED_MODULE + \ CMAKE_C_CREATE_STATIC_LIBRARY + \ CMAKE_C_EXTENSIONS + \ CMAKE_C_EXTENSIONS_DEFAULT + \ CMAKE_C_FLAGS + \ CMAKE_C_FLAGS_DEBUG + \ CMAKE_C_FLAGS_DEBUG_INIT + \ CMAKE_C_FLAGS_INIT + \ CMAKE_C_FLAGS_MINSIZEREL + \ CMAKE_C_FLAGS_MINSIZEREL_INIT + \ CMAKE_C_FLAGS_RELEASE + \ CMAKE_C_FLAGS_RELEASE_INIT + \ CMAKE_C_FLAGS_RELWITHDEBINFO + \ CMAKE_C_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_C_IGNORE_EXTENSIONS + \ CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_C_IMPLICIT_LINK_LIBRARIES + \ CMAKE_C_INCLUDE_WHAT_YOU_USE + \ CMAKE_C_INIT + \ CMAKE_C_LIBRARY_ARCHITECTURE + \ CMAKE_C_LINKER_LAUNCHER + \ CMAKE_C_LINKER_PREFERENCE + \ CMAKE_C_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_C_LINKER_WRAPPER_FLAG + \ CMAKE_C_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_C_LINK_EXECUTABLE + \ CMAKE_C_LINK_LIBRARY_FILE_FLAG + \ CMAKE_C_LINK_LIBRARY_FLAG + \ CMAKE_C_LINK_LIBRARY_SUFFIX + \ CMAKE_C_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_C_OUTPUT_EXTENSION + \ CMAKE_C_PLATFORM_ID + \ CMAKE_C_SIMULATE_ID + \ CMAKE_C_SIMULATE_VERSION + \ CMAKE_C_SIZEOF_DATA_PTR + \ CMAKE_C_SOURCE_FILE_EXTENSIONS + \ CMAKE_C_STANDARD + \ CMAKE_C_STANDARD_DEFAULT + \ CMAKE_C_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_C_STANDARD_LIBRARIES + \ CMAKE_C_STANDARD_REQUIRED + \ CMAKE_C_SUPPORTED + \ CMAKE_C_VISIBILITY_PRESET + \ CMAKE_DEBUG_POSTFIX + \ CMAKE_DEBUG_TARGET_PROPERTIES + \ CMAKE_DEFAULT_BUILD_TYPE + \ CMAKE_DEFAULT_CONFIGS + \ CMAKE_DEPENDS_IN_PROJECT_ONLY + \ CMAKE_DEPENDS_USE_COMPILER + \ CMAKE_DIRECTORY_LABELS + \ CMAKE_DISABLE_PRECOMPILE_HEADERS + \ CMAKE_DLL_NAME_WITH_SOVERSION + \ CMAKE_DL_LIBS + \ CMAKE_DOTNET_SDK + \ CMAKE_DOTNET_TARGET_FRAMEWORK + \ CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION + \ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES + \ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT + \ CMAKE_ECLIPSE_MAKE_ARGUMENTS + \ CMAKE_ECLIPSE_RESOURCE_ENCODING + \ CMAKE_ECLIPSE_VERSION + \ CMAKE_EDIT_COMMAND + \ CMAKE_ENABLE_EXPORTS + \ CMAKE_ERROR_DEPRECATED + \ CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + \ CMAKE_EXECUTABLE_ENABLE_EXPORTS + \ CMAKE_EXECUTABLE_SUFFIX + \ CMAKE_EXECUTABLE_SUFFIX_ASM + \ CMAKE_EXECUTABLE_SUFFIX_ASM_MASM + \ CMAKE_EXECUTABLE_SUFFIX_ASM_NASM + \ CMAKE_EXECUTABLE_SUFFIX_C + \ CMAKE_EXECUTABLE_SUFFIX_CSharp + \ CMAKE_EXECUTABLE_SUFFIX_CUDA + \ CMAKE_EXECUTABLE_SUFFIX_CXX + \ CMAKE_EXECUTABLE_SUFFIX_Fortran + \ CMAKE_EXECUTABLE_SUFFIX_HIP + \ CMAKE_EXECUTABLE_SUFFIX_Java + \ CMAKE_EXECUTABLE_SUFFIX_RC + \ CMAKE_EXECUTABLE_SUFFIX_Swift + \ CMAKE_EXECUTE_PROCESS_COMMAND_ECHO + \ CMAKE_EXE_LINKER_FLAGS + \ CMAKE_EXE_LINKER_FLAGS_INIT + \ CMAKE_EXPORT_COMPILE_COMMANDS + \ CMAKE_EXPORT_NO_PACKAGE_REGISTRY + \ CMAKE_EXPORT_PACKAGE_REGISTRY + \ CMAKE_EXTRA_GENERATOR + \ CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES + \ CMAKE_FIND_APPBUNDLE + \ CMAKE_FIND_DEBUG_MODE + \ CMAKE_FIND_FRAMEWORK + \ CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX + \ CMAKE_FIND_LIBRARY_PREFIXES + \ CMAKE_FIND_LIBRARY_SUFFIXES + \ CMAKE_FIND_NO_INSTALL_PREFIX + \ CMAKE_FIND_PACKAGE_NAME + \ CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY + \ CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY + \ CMAKE_FIND_PACKAGE_PREFER_CONFIG + \ CMAKE_FIND_PACKAGE_REDIRECTS_DIR + \ CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS + \ CMAKE_FIND_PACKAGE_SORT_DIRECTION + \ CMAKE_FIND_PACKAGE_SORT_ORDER + \ CMAKE_FIND_PACKAGE_TARGETS_GLOBAL + \ CMAKE_FIND_PACKAGE_WARN_NO_MODULE + \ CMAKE_FIND_ROOT_PATH + \ CMAKE_FIND_ROOT_PATH_MODE_INCLUDE + \ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY + \ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE + \ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM + \ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH + \ CMAKE_FIND_USE_INSTALL_PREFIX + \ CMAKE_FIND_USE_CMAKE_PATH + \ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH + \ CMAKE_FIND_USE_INSTALL_PREFIX + \ CMAKE_FIND_USE_PACKAGE_REGISTRY + \ CMAKE_FIND_USE_PACKAGE_ROOT_PATH + \ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH + \ CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY + \ CMAKE_FOLDER + \ CMAKE_FRAMEWORK + \ CMAKE_FRAMEWORK_PATH + \ CMAKE_Fortran + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Fortran_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Fortran_ARCHIVE_APPEND + \ CMAKE_Fortran_ARCHIVE_CREATE + \ CMAKE_Fortran_ARCHIVE_FINISH + \ CMAKE_Fortran_BYTE_ORDER + \ CMAKE_Fortran_CLANG_TIDY + \ CMAKE_Fortran_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Fortran_COMPILER + \ CMAKE_Fortran_COMPILER_ABI + \ CMAKE_Fortran_COMPILER_AR + \ CMAKE_Fortran_COMPILER_ARCHITECTURE_ID + \ CMAKE_Fortran_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Fortran_COMPILER_FRONTEND_VARIANT + \ CMAKE_Fortran_COMPILER_ID + \ CMAKE_Fortran_COMPILER_LAUNCHER + \ CMAKE_Fortran_COMPILER_LOADED + \ CMAKE_Fortran_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Fortran_COMPILER_RANLIB + \ CMAKE_Fortran_COMPILER_TARGET + \ CMAKE_Fortran_COMPILER_VERSION + \ CMAKE_Fortran_COMPILER_VERSION_INTERNAL + \ CMAKE_Fortran_COMPILE_OBJECT + \ CMAKE_Fortran_CPPCHECK + \ CMAKE_Fortran_CPPLINT + \ CMAKE_Fortran_CREATE_SHARED_LIBRARY + \ CMAKE_Fortran_CREATE_SHARED_MODULE + \ CMAKE_Fortran_CREATE_STATIC_LIBRARY + \ CMAKE_Fortran_EXTENSIONS + \ CMAKE_Fortran_EXTENSIONS_DEFAULT + \ CMAKE_Fortran_FLAGS + \ CMAKE_Fortran_FLAGS_DEBUG + \ CMAKE_Fortran_FLAGS_DEBUG_INIT + \ CMAKE_Fortran_FLAGS_INIT + \ CMAKE_Fortran_FLAGS_MINSIZEREL + \ CMAKE_Fortran_FLAGS_MINSIZEREL_INIT + \ CMAKE_Fortran_FLAGS_RELEASE + \ CMAKE_Fortran_FLAGS_RELEASE_INIT + \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO + \ CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Fortran_FORMAT + \ CMAKE_Fortran_IGNORE_EXTENSIONS + \ CMAKE_Fortran_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Fortran_INCLUDE_WHAT_YOU_USE + \ CMAKE_Fortran_INIT + \ CMAKE_Fortran_LIBRARY_ARCHITECTURE + \ CMAKE_Fortran_LINKER_LAUNCHER + \ CMAKE_Fortran_LINKER_PREFERENCE + \ CMAKE_Fortran_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Fortran_LINKER_WRAPPER_FLAG + \ CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Fortran_LINK_EXECUTABLE + \ CMAKE_Fortran_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Fortran_LINK_LIBRARY_FLAG + \ CMAKE_Fortran_LINK_LIBRARY_SUFFIX + \ CMAKE_Fortran_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Fortran_MODDIR_DEFAULT + \ CMAKE_Fortran_MODDIR_FLAG + \ CMAKE_Fortran_MODOUT_FLAG + \ CMAKE_Fortran_MODULE_DIRECTORY + \ CMAKE_Fortran_OUTPUT_EXTENSION + \ CMAKE_Fortran_PLATFORM_ID + \ CMAKE_Fortran_PREPROCESS + \ CMAKE_Fortran_SIMULATE_ID + \ CMAKE_Fortran_SIMULATE_VERSION + \ CMAKE_Fortran_SIZEOF_DATA_PTR + \ CMAKE_Fortran_SOURCE_FILE_EXTENSIONS + \ CMAKE_Fortran_STANDARD + \ CMAKE_Fortran_STANDARD_DEFAULT + \ CMAKE_Fortran_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Fortran_STANDARD_LIBRARIES + \ CMAKE_Fortran_STANDARD_REQUIRED + \ CMAKE_Fortran_SUPPORTED + \ CMAKE_Fortran_VISIBILITY_PRESET + \ CMAKE_GENERATOR + \ CMAKE_GENERATOR_INSTANCE + \ CMAKE_GENERATOR_PLATFORM + \ CMAKE_GENERATOR_TOOLSET + \ CMAKE_GHS_NO_SOURCE_GROUP_FILE + \ CMAKE_GLOBAL_AUTOGEN_TARGET + \ CMAKE_GLOBAL_AUTOGEN_TARGET_NAME + \ CMAKE_GLOBAL_AUTORCC_TARGET + \ CMAKE_GLOBAL_AUTORCC_TARGET_NAME + \ CMAKE_GNUtoMS + \ CMAKE_HIP + \ CMAKE_HIP_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_HIP_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_HIP_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_HIP_ARCHITECTURES + \ CMAKE_HIP_ARCHIVE_APPEND + \ CMAKE_HIP_ARCHIVE_CREATE + \ CMAKE_HIP_ARCHIVE_FINISH + \ CMAKE_HIP_BYTE_ORDER + \ CMAKE_HIP_CLANG_TIDY + \ CMAKE_HIP_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_HIP_COMPILER + \ CMAKE_HIP_COMPILER_ABI + \ CMAKE_HIP_COMPILER_AR + \ CMAKE_HIP_COMPILER_ARCHITECTURE_ID + \ CMAKE_HIP_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_HIP_COMPILER_FRONTEND_VARIANT + \ CMAKE_HIP_COMPILER_ID + \ CMAKE_HIP_COMPILER_LAUNCHER + \ CMAKE_HIP_COMPILER_LOADED + \ CMAKE_HIP_COMPILER_PREDEFINES_COMMAND + \ CMAKE_HIP_COMPILER_RANLIB + \ CMAKE_HIP_COMPILER_TARGET + \ CMAKE_HIP_COMPILER_VERSION + \ CMAKE_HIP_COMPILER_VERSION_INTERNAL + \ CMAKE_HIP_COMPILE_FEATURES + \ CMAKE_HIP_COMPILE_OBJECT + \ CMAKE_HIP_CPPCHECK + \ CMAKE_HIP_CPPLINT + \ CMAKE_HIP_CREATE_SHARED_LIBRARY + \ CMAKE_HIP_CREATE_SHARED_MODULE + \ CMAKE_HIP_CREATE_STATIC_LIBRARY + \ CMAKE_HIP_EXTENSIONS + \ CMAKE_HIP_EXTENSIONS_DEFAULT + \ CMAKE_HIP_FLAGS + \ CMAKE_HIP_FLAGS_DEBUG + \ CMAKE_HIP_FLAGS_DEBUG_INIT + \ CMAKE_HIP_FLAGS_INIT + \ CMAKE_HIP_FLAGS_MINSIZEREL + \ CMAKE_HIP_FLAGS_MINSIZEREL_INIT + \ CMAKE_HIP_FLAGS_RELEASE + \ CMAKE_HIP_FLAGS_RELEASE_INIT + \ CMAKE_HIP_FLAGS_RELWITHDEBINFO + \ CMAKE_HIP_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_HIP_IGNORE_EXTENSIONS + \ CMAKE_HIP_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_HIP_IMPLICIT_LINK_LIBRARIES + \ CMAKE_HIP_INCLUDE_WHAT_YOU_USE + \ CMAKE_HIP_INIT + \ CMAKE_HIP_LIBRARY_ARCHITECTURE + \ CMAKE_HIP_LINKER_LAUNCHER + \ CMAKE_HIP_LINKER_PREFERENCE + \ CMAKE_HIP_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_HIP_LINKER_WRAPPER_FLAG + \ CMAKE_HIP_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_HIP_LINK_EXECUTABLE + \ CMAKE_HIP_LINK_LIBRARY_FILE_FLAG + \ CMAKE_HIP_LINK_LIBRARY_FLAG + \ CMAKE_HIP_LINK_LIBRARY_SUFFIX + \ CMAKE_HIP_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_HIP_OUTPUT_EXTENSION + \ CMAKE_HIP_PLATFORM_ID + \ CMAKE_HIP_SIMULATE_ID + \ CMAKE_HIP_SIMULATE_VERSION + \ CMAKE_HIP_SIZEOF_DATA_PTR + \ CMAKE_HIP_SOURCE_FILE_EXTENSIONS + \ CMAKE_HIP_STANDARD + \ CMAKE_HIP_STANDARD_DEFAULT + \ CMAKE_HIP_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_HIP_STANDARD_LIBRARIES + \ CMAKE_HIP_STANDARD_REQUIRED + \ CMAKE_HIP_SUPPORTED + \ CMAKE_HIP_VISIBILITY_PRESET + \ CMAKE_HOME_DIRECTORY + \ CMAKE_HOST_APPLE + \ CMAKE_HOST_BSD + \ CMAKE_HOST_LINUX + \ CMAKE_HOST_SOLARIS + \ CMAKE_HOST_SYSTEM + \ CMAKE_HOST_SYSTEM_NAME + \ CMAKE_HOST_SYSTEM_PROCESSOR + \ CMAKE_HOST_SYSTEM_VERSION + \ CMAKE_HOST_UNIX + \ CMAKE_HOST_WIN32 + \ CMAKE_IGNORE_PATH + \ CMAKE_IGNORE_PREFIX_PATH + \ CMAKE_IMPORT_LIBRARY_PREFIX + \ CMAKE_IMPORT_LIBRARY_SUFFIX + \ CMAKE_INCLUDE_CURRENT_DIR + \ CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE + \ CMAKE_INCLUDE_DIRECTORIES_BEFORE + \ CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE + \ CMAKE_INCLUDE_PATH + \ CMAKE_INSTALL_DEFAULT_COMPONENT_NAME + \ CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + \ CMAKE_INSTALL_MESSAGE + \ CMAKE_INSTALL_NAME_DIR + \ CMAKE_INSTALL_PREFIX + \ CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT + \ CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH + \ CMAKE_INSTALL_RPATH + \ CMAKE_INSTALL_RPATH_USE_LINK_PATH + \ CMAKE_INTERNAL_PLATFORM_ABI + \ CMAKE_INTERPROCEDURAL_OPTIMIZATION + \ CMAKE_IOS_INSTALL_COMBINED + \ CMAKE_ISPC_HEADER_DIRECTORY + \ CMAKE_ISPC_HEADER_SUFFIX + \ CMAKE_ISPC_INSTRUCTION_SETS + \ CMAKE_JOB_POOLS + \ CMAKE_JOB_POOL_COMPILE + \ CMAKE_JOB_POOL_LINK + \ CMAKE_JOB_POOL_PRECOMPILE_HEADER + \ CMAKE_Java + \ CMAKE_Java_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Java_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Java_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Java_ARCHIVE_APPEND + \ CMAKE_Java_ARCHIVE_CREATE + \ CMAKE_Java_ARCHIVE_FINISH + \ CMAKE_Java_BYTE_ORDER + \ CMAKE_Java_CLANG_TIDY + \ CMAKE_Java_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Java_COMPILER + \ CMAKE_Java_COMPILER_ABI + \ CMAKE_Java_COMPILER_AR + \ CMAKE_Java_COMPILER_ARCHITECTURE_ID + \ CMAKE_Java_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Java_COMPILER_FRONTEND_VARIANT + \ CMAKE_Java_COMPILER_ID + \ CMAKE_Java_COMPILER_LAUNCHER + \ CMAKE_Java_COMPILER_LOADED + \ CMAKE_Java_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Java_COMPILER_RANLIB + \ CMAKE_Java_COMPILER_TARGET + \ CMAKE_Java_COMPILER_VERSION + \ CMAKE_Java_COMPILER_VERSION_INTERNAL + \ CMAKE_Java_COMPILE_OBJECT + \ CMAKE_Java_CPPCHECK + \ CMAKE_Java_CPPLINT + \ CMAKE_Java_CREATE_SHARED_LIBRARY + \ CMAKE_Java_CREATE_SHARED_MODULE + \ CMAKE_Java_CREATE_STATIC_LIBRARY + \ CMAKE_Java_EXTENSIONS + \ CMAKE_Java_EXTENSIONS_DEFAULT + \ CMAKE_Java_FLAGS + \ CMAKE_Java_FLAGS_DEBUG + \ CMAKE_Java_FLAGS_DEBUG_INIT + \ CMAKE_Java_FLAGS_INIT + \ CMAKE_Java_FLAGS_MINSIZEREL + \ CMAKE_Java_FLAGS_MINSIZEREL_INIT + \ CMAKE_Java_FLAGS_RELEASE + \ CMAKE_Java_FLAGS_RELEASE_INIT + \ CMAKE_Java_FLAGS_RELWITHDEBINFO + \ CMAKE_Java_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Java_IGNORE_EXTENSIONS + \ CMAKE_Java_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Java_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Java_INCLUDE_WHAT_YOU_USE + \ CMAKE_Java_INIT + \ CMAKE_Java_LIBRARY_ARCHITECTURE + \ CMAKE_Java_LINKER_LAUNCHER + \ CMAKE_Java_LINKER_PREFERENCE + \ CMAKE_Java_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Java_LINKER_WRAPPER_FLAG + \ CMAKE_Java_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Java_LINK_EXECUTABLE + \ CMAKE_Java_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Java_LINK_LIBRARY_FLAG + \ CMAKE_Java_LINK_LIBRARY_SUFFIX + \ CMAKE_Java_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Java_OUTPUT_EXTENSION + \ CMAKE_Java_PLATFORM_ID + \ CMAKE_Java_SIMULATE_ID + \ CMAKE_Java_SIMULATE_VERSION + \ CMAKE_Java_SIZEOF_DATA_PTR + \ CMAKE_Java_SOURCE_FILE_EXTENSIONS + \ CMAKE_Java_STANDARD + \ CMAKE_Java_STANDARD_DEFAULT + \ CMAKE_Java_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Java_STANDARD_LIBRARIES + \ CMAKE_Java_STANDARD_REQUIRED + \ CMAKE_Java_SUPPORTED + \ CMAKE_Java_VISIBILITY_PRESET + \ CMAKE_KATE_FILES_MODE + \ CMAKE_KATE_MAKE_ARGUMENTS + \ CMAKE_LIBRARY_ARCHITECTURE + \ CMAKE_LIBRARY_ARCHITECTURE_REGEX + \ CMAKE_LIBRARY_OUTPUT_DIRECTORY + \ CMAKE_LIBRARY_PATH + \ CMAKE_LIBRARY_PATH_FLAG + \ CMAKE_LINK_DEF_FILE_FLAG + \ CMAKE_LINK_DEPENDS_NO_SHARED + \ CMAKE_LINK_DEPENDS_USE_LINKER + \ CMAKE_LINK_DIRECTORIES_BEFORE + \ CMAKE_LINK_INTERFACE_LIBRARIES + \ CMAKE_LINK_LIBRARIES_ONLY_TARGETS + \ CMAKE_LINK_LIBRARY_FILE_FLAG + \ CMAKE_LINK_LIBRARY_FLAG + \ CMAKE_LINK_LIBRARY_SUFFIX + \ CMAKE_LINK_SEARCH_END_STATIC + \ CMAKE_LINK_SEARCH_START_STATIC + \ CMAKE_LINK_WHAT_YOU_USE + \ CMAKE_LINK_WHAT_YOU_USE_CHECK + \ CMAKE_MACOSX_BUNDLE + \ CMAKE_MACOSX_RPATH + \ CMAKE_MAJOR_VERSION + \ CMAKE_MAKE_PROGRAM + \ CMAKE_MATCH_COUNT + \ CMAKE_MAXIMUM_RECURSION_DEPTH + \ CMAKE_MESSAGE_CONTEXT + \ CMAKE_MESSAGE_CONTEXT_SHOW + \ CMAKE_MESSAGE_INDENT + \ CMAKE_MESSAGE_LOG_LEVEL + \ CMAKE_MFC_FLAG + \ CMAKE_MINIMUM_REQUIRED_VERSION + \ CMAKE_MINOR_VERSION + \ CMAKE_MODULE_LINKER_FLAGS + \ CMAKE_MODULE_LINKER_FLAGS_INIT + \ CMAKE_MODULE_PATH + \ CMAKE_MSVCIDE_RUN_PATH + \ CMAKE_MSVC_DEBUG_INFORMATION_FORMAT + \ CMAKE_MSVC_RUNTIME_LIBRARY + \ CMAKE_NETRC + \ CMAKE_NETRC_FILE + \ CMAKE_NINJA_OUTPUT_PATH_PREFIX + \ CMAKE_NOT_USING_CONFIG_FLAGS + \ CMAKE_NO_BUILTIN_CHRPATH + \ CMAKE_NO_SYSTEM_FROM_IMPORTED + \ CMAKE_OBJCXX_CLANG_TIDY + \ CMAKE_OBJCXX_EXTENSIONS + \ CMAKE_OBJCXX_LINKER_LAUNCHER + \ CMAKE_OBJCXX_STANDARD + \ CMAKE_OBJCXX_STANDARD_REQUIRED + \ CMAKE_OBJC_CLANG_TIDY + \ CMAKE_OBJC_EXTENSIONS + \ CMAKE_OBJC_LINKER_LAUNCHER + \ CMAKE_OBJC_STANDARD + \ CMAKE_OBJC_STANDARD_REQUIRED + \ CMAKE_OBJECT_PATH_MAX + \ CMAKE_OPTIMIZE_DEPENDENCIES + \ CMAKE_OSX_ARCHITECTURES + \ CMAKE_OSX_DEPLOYMENT_TARGET + \ CMAKE_OSX_SYSROOT + \ CMAKE_PARENT_LIST_FILE + \ CMAKE_PATCH_VERSION + \ CMAKE_PCH_INSTANTIATE_TEMPLATES + \ CMAKE_PCH_WARN_INVALID + \ CMAKE_PDB_OUTPUT_DIRECTORY + \ CMAKE_PLATFORM_NO_VERSIONED_SONAME + \ CMAKE_POSITION_INDEPENDENT_CODE + \ CMAKE_PREFIX_PATH + \ CMAKE_PROGRAM_PATH + \ CMAKE_PROJECT_DESCRIPTION + \ CMAKE_PROJECT_HOMEPAGE_URL + \ CMAKE_PROJECT_INCLUDE + \ CMAKE_PROJECT_INCLUDE_BEFORE + \ CMAKE_PROJECT_NAME + \ CMAKE_PROJECT_TOP_LEVEL_INCLUDES + \ CMAKE_PROJECT_VERSION + \ CMAKE_PROJECT_VERSION_MAJOR + \ CMAKE_PROJECT_VERSION_MINOR + \ CMAKE_PROJECT_VERSION_PATCH + \ CMAKE_PROJECT_VERSION_TWEAK + \ CMAKE_RANLIB + \ CMAKE_RC + \ CMAKE_RC_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_RC_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_RC_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_RC_ARCHIVE_APPEND + \ CMAKE_RC_ARCHIVE_CREATE + \ CMAKE_RC_ARCHIVE_FINISH + \ CMAKE_RC_BYTE_ORDER + \ CMAKE_RC_CLANG_TIDY + \ CMAKE_RC_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_RC_COMPILER + \ CMAKE_RC_COMPILER_ABI + \ CMAKE_RC_COMPILER_AR + \ CMAKE_RC_COMPILER_ARCHITECTURE_ID + \ CMAKE_RC_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_RC_COMPILER_FRONTEND_VARIANT + \ CMAKE_RC_COMPILER_ID + \ CMAKE_RC_COMPILER_LAUNCHER + \ CMAKE_RC_COMPILER_LOADED + \ CMAKE_RC_COMPILER_PREDEFINES_COMMAND + \ CMAKE_RC_COMPILER_RANLIB + \ CMAKE_RC_COMPILER_TARGET + \ CMAKE_RC_COMPILER_VERSION + \ CMAKE_RC_COMPILER_VERSION_INTERNAL + \ CMAKE_RC_COMPILE_OBJECT + \ CMAKE_RC_CPPCHECK + \ CMAKE_RC_CPPLINT + \ CMAKE_RC_CREATE_SHARED_LIBRARY + \ CMAKE_RC_CREATE_SHARED_MODULE + \ CMAKE_RC_CREATE_STATIC_LIBRARY + \ CMAKE_RC_EXTENSIONS + \ CMAKE_RC_EXTENSIONS_DEFAULT + \ CMAKE_RC_FLAGS + \ CMAKE_RC_FLAGS_DEBUG + \ CMAKE_RC_FLAGS_DEBUG_INIT + \ CMAKE_RC_FLAGS_INIT + \ CMAKE_RC_FLAGS_MINSIZEREL + \ CMAKE_RC_FLAGS_MINSIZEREL_INIT + \ CMAKE_RC_FLAGS_RELEASE + \ CMAKE_RC_FLAGS_RELEASE_INIT + \ CMAKE_RC_FLAGS_RELWITHDEBINFO + \ CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_RC_IGNORE_EXTENSIONS + \ CMAKE_RC_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_RC_IMPLICIT_LINK_LIBRARIES + \ CMAKE_RC_INCLUDE_WHAT_YOU_USE + \ CMAKE_RC_INIT + \ CMAKE_RC_LIBRARY_ARCHITECTURE + \ CMAKE_RC_LINKER_LAUNCHER + \ CMAKE_RC_LINKER_PREFERENCE + \ CMAKE_RC_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_RC_LINKER_WRAPPER_FLAG + \ CMAKE_RC_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_RC_LINK_EXECUTABLE + \ CMAKE_RC_LINK_LIBRARY_FILE_FLAG + \ CMAKE_RC_LINK_LIBRARY_FLAG + \ CMAKE_RC_LINK_LIBRARY_SUFFIX + \ CMAKE_RC_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_RC_OUTPUT_EXTENSION + \ CMAKE_RC_PLATFORM_ID + \ CMAKE_RC_SIMULATE_ID + \ CMAKE_RC_SIMULATE_VERSION + \ CMAKE_RC_SIZEOF_DATA_PTR + \ CMAKE_RC_SOURCE_FILE_EXTENSIONS + \ CMAKE_RC_STANDARD + \ CMAKE_RC_STANDARD_DEFAULT + \ CMAKE_RC_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_RC_STANDARD_LIBRARIES + \ CMAKE_RC_STANDARD_REQUIRED + \ CMAKE_RC_SUPPORTED + \ CMAKE_RC_VISIBILITY_PRESET + \ CMAKE_ROOT + \ CMAKE_RULE_MESSAGES + \ CMAKE_RUNTIME_OUTPUT_DIRECTORY + \ CMAKE_SCRIPT_MODE_FILE + \ CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS + \ CMAKE_SHARED_LIBRARY_PREFIX + \ CMAKE_SHARED_LIBRARY_SUFFIX + \ CMAKE_SHARED_LINKER_FLAGS + \ CMAKE_SHARED_LINKER_FLAGS_INIT + \ CMAKE_SHARED_MODULE_PREFIX + \ CMAKE_SHARED_MODULE_SUFFIX + \ CMAKE_SIZEOF_VOID_P + \ CMAKE_SKIP_BUILD_RPATH + \ CMAKE_SKIP_INSTALL_ALL_DEPENDENCY + \ CMAKE_SKIP_INSTALL_RPATH + \ CMAKE_SKIP_INSTALL_RULES + \ CMAKE_SKIP_RPATH + \ CMAKE_SKIP_TEST_ALL_DEPENDENCY + \ CMAKE_SOURCE_DIR + \ CMAKE_STAGING_PREFIX + \ CMAKE_STATIC_LIBRARY_PREFIX + \ CMAKE_STATIC_LIBRARY_SUFFIX + \ CMAKE_STATIC_LINKER_FLAGS + \ CMAKE_STATIC_LINKER_FLAGS_INIT + \ CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS + \ CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE + \ CMAKE_SUPPRESS_REGENERATION + \ CMAKE_SYSROOT + \ CMAKE_SYSROOT_COMPILE + \ CMAKE_SYSROOT_LINK + \ CMAKE_SYSTEM + \ CMAKE_SYSTEM_APPBUNDLE_PATH + \ CMAKE_SYSTEM_FRAMEWORK_PATH + \ CMAKE_SYSTEM_IGNORE_PATH + \ CMAKE_SYSTEM_IGNORE_PREFIX_PATH + \ CMAKE_SYSTEM_INCLUDE_PATH + \ CMAKE_SYSTEM_LIBRARY_PATH + \ CMAKE_SYSTEM_NAME + \ CMAKE_SYSTEM_PREFIX_PATH + \ CMAKE_SYSTEM_PROCESSOR + \ CMAKE_SYSTEM_PROGRAM_PATH + \ CMAKE_SYSTEM_VERSION + \ CMAKE_Swift + \ CMAKE_Swift_ANDROID_TOOLCHAIN_MACHINE + \ CMAKE_Swift_ANDROID_TOOLCHAIN_PREFIX + \ CMAKE_Swift_ANDROID_TOOLCHAIN_SUFFIX + \ CMAKE_Swift_ARCHIVE_APPEND + \ CMAKE_Swift_ARCHIVE_CREATE + \ CMAKE_Swift_ARCHIVE_FINISH + \ CMAKE_Swift_BYTE_ORDER + \ CMAKE_Swift_CLANG_TIDY + \ CMAKE_Swift_CLANG_TIDY_EXPORT_FIXES_DIR + \ CMAKE_Swift_COMPILER + \ CMAKE_Swift_COMPILER_ABI + \ CMAKE_Swift_COMPILER_AR + \ CMAKE_Swift_COMPILER_ARCHITECTURE_ID + \ CMAKE_Swift_COMPILER_EXTERNAL_TOOLCHAIN + \ CMAKE_Swift_COMPILER_FRONTEND_VARIANT + \ CMAKE_Swift_COMPILER_ID + \ CMAKE_Swift_COMPILER_LAUNCHER + \ CMAKE_Swift_COMPILER_LOADED + \ CMAKE_Swift_COMPILER_PREDEFINES_COMMAND + \ CMAKE_Swift_COMPILER_RANLIB + \ CMAKE_Swift_COMPILER_TARGET + \ CMAKE_Swift_COMPILER_VERSION + \ CMAKE_Swift_COMPILER_VERSION_INTERNAL + \ CMAKE_Swift_COMPILE_OBJECT + \ CMAKE_Swift_CPPCHECK + \ CMAKE_Swift_CPPLINT + \ CMAKE_Swift_CREATE_SHARED_LIBRARY + \ CMAKE_Swift_CREATE_SHARED_MODULE + \ CMAKE_Swift_CREATE_STATIC_LIBRARY + \ CMAKE_Swift_EXTENSIONS + \ CMAKE_Swift_EXTENSIONS_DEFAULT + \ CMAKE_Swift_FLAGS + \ CMAKE_Swift_FLAGS_DEBUG + \ CMAKE_Swift_FLAGS_DEBUG_INIT + \ CMAKE_Swift_FLAGS_INIT + \ CMAKE_Swift_FLAGS_MINSIZEREL + \ CMAKE_Swift_FLAGS_MINSIZEREL_INIT + \ CMAKE_Swift_FLAGS_RELEASE + \ CMAKE_Swift_FLAGS_RELEASE_INIT + \ CMAKE_Swift_FLAGS_RELWITHDEBINFO + \ CMAKE_Swift_FLAGS_RELWITHDEBINFO_INIT + \ CMAKE_Swift_IGNORE_EXTENSIONS + \ CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES + \ CMAKE_Swift_IMPLICIT_LINK_LIBRARIES + \ CMAKE_Swift_INCLUDE_WHAT_YOU_USE + \ CMAKE_Swift_INIT + \ CMAKE_Swift_LANGUAGE_VERSION + \ CMAKE_Swift_LIBRARY_ARCHITECTURE + \ CMAKE_Swift_LINKER_LAUNCHER + \ CMAKE_Swift_LINKER_PREFERENCE + \ CMAKE_Swift_LINKER_PREFERENCE_PROPAGATES + \ CMAKE_Swift_LINKER_WRAPPER_FLAG + \ CMAKE_Swift_LINKER_WRAPPER_FLAG_SEP + \ CMAKE_Swift_LINK_EXECUTABLE + \ CMAKE_Swift_LINK_LIBRARY_FILE_FLAG + \ CMAKE_Swift_LINK_LIBRARY_FLAG + \ CMAKE_Swift_LINK_LIBRARY_SUFFIX + \ CMAKE_Swift_LINK_WHAT_YOU_USE_FLAG + \ CMAKE_Swift_MODULE_DIRECTORY + \ CMAKE_Swift_NUM_THREADS + \ CMAKE_Swift_OUTPUT_EXTENSION + \ CMAKE_Swift_PLATFORM_ID + \ CMAKE_Swift_SIMULATE_ID + \ CMAKE_Swift_SIMULATE_VERSION + \ CMAKE_Swift_SIZEOF_DATA_PTR + \ CMAKE_Swift_SOURCE_FILE_EXTENSIONS + \ CMAKE_Swift_STANDARD + \ CMAKE_Swift_STANDARD_DEFAULT + \ CMAKE_Swift_STANDARD_INCLUDE_DIRECTORIES + \ CMAKE_Swift_STANDARD_LIBRARIES + \ CMAKE_Swift_STANDARD_REQUIRED + \ CMAKE_Swift_SUPPORTED + \ CMAKE_Swift_VISIBILITY_PRESET + \ CMAKE_TASKING_TOOLSET + \ CMAKE_TLS_CAINFO + \ CMAKE_TLS_VERIFY + \ CMAKE_TOOLCHAIN_FILE + \ CMAKE_TRY_COMPILE_CONFIGURATION + \ CMAKE_TRY_COMPILE_NO_PLATFORM_VARIABLES + \ CMAKE_TRY_COMPILE_PLATFORM_VARIABLES + \ CMAKE_TRY_COMPILE_TARGET_TYPE + \ CMAKE_TWEAK_VERSION + \ CMAKE_UNITY_BUILD + \ CMAKE_UNITY_BUILD_BATCH_SIZE + \ CMAKE_UNITY_BUILD_UNIQUE_ID + \ CMAKE_USER_MAKE_RULES_OVERRIDE + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_MASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_NASM + \ CMAKE_USER_MAKE_RULES_OVERRIDE_C + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CSharp + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA + \ CMAKE_USER_MAKE_RULES_OVERRIDE_CXX + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Fortran + \ CMAKE_USER_MAKE_RULES_OVERRIDE_HIP + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Java + \ CMAKE_USER_MAKE_RULES_OVERRIDE_RC + \ CMAKE_USER_MAKE_RULES_OVERRIDE_Swift + \ CMAKE_USE_RELATIVE_PATHS + \ CMAKE_VERBOSE_MAKEFILE + \ CMAKE_VERIFY_INTERFACE_HEADER_SETS + \ CMAKE_VERSION + \ CMAKE_VISIBILITY_INLINES_HIDDEN + \ CMAKE_VS_DEBUGGER_COMMAND + \ CMAKE_VS_DEBUGGER_COMMAND_ARGUMENTS + \ CMAKE_VS_DEBUGGER_ENVIRONMENT + \ CMAKE_VS_DEBUGGER_WORKING_DIRECTORY + \ CMAKE_VS_DEVENV_COMMAND + \ CMAKE_VS_GLOBALS + \ CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD + \ CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD + \ CMAKE_VS_INTEL_Fortran_PROJECT_VERSION + \ CMAKE_VS_JUST_MY_CODE_DEBUGGING + \ CMAKE_VS_MSBUILD_COMMAND + \ CMAKE_VS_NO_COMPILE_BATCHING + \ CMAKE_VS_NUGET_PACKAGE_RESTORE + \ CMAKE_VS_NsightTegra_VERSION + \ CMAKE_VS_PLATFORM_NAME + \ CMAKE_VS_PLATFORM_NAME_DEFAULT + \ CMAKE_VS_PLATFORM_TOOLSET + \ CMAKE_VS_PLATFORM_TOOLSET_CUDA + \ CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR + \ CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE + \ CMAKE_VS_PLATFORM_TOOLSET_VERSION + \ CMAKE_VS_SDK_EXCLUDE_DIRECTORIES + \ CMAKE_VS_SDK_EXECUTABLE_DIRECTORIES + \ CMAKE_VS_SDK_INCLUDE_DIRECTORIES + \ CMAKE_VS_SDK_LIBRARY_DIRECTORIES + \ CMAKE_VS_SDK_LIBRARY_WINRT_DIRECTORIES + \ CMAKE_VS_SDK_REFERENCE_DIRECTORIES + \ CMAKE_VS_SDK_SOURCE_DIRECTORIES + \ CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER + \ CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION + \ CMAKE_VS_TARGET_FRAMEWORK_VERSION + \ CMAKE_VS_VERSION_BUILD_NUMBER + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + \ CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION_MAXIMUM + \ CMAKE_VS_WINRT_BY_DEFAULT + \ CMAKE_WARN_DEPRECATED + \ CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + \ CMAKE_WATCOM_RUNTIME_LIBRARY + \ CMAKE_WIN32_EXECUTABLE + \ CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS + \ CMAKE_XCODE_BUILD_SYSTEM + \ CMAKE_XCODE_GENERATE_SCHEME + \ CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY + \ CMAKE_XCODE_LINK_BUILD_PHASE_MODE + \ CMAKE_XCODE_PLATFORM_TOOLSET + \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER + \ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN + \ CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER + \ CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS + \ CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ CMAKE_XCODE_SCHEME_ENVIRONMENT + \ CMAKE_XCODE_SCHEME_GUARD_MALLOC + \ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION + \ CMAKE_XCODE_SCHEME_LAUNCH_MODE + \ CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP + \ CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES + \ CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE + \ CMAKE_XCODE_SCHEME_MALLOC_STACK + \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER + \ CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP + \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER + \ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION + \ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION + \ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION + \ CMAKE_XCODE_SCHEME_WORKING_DIRECTORY + \ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS + \ CMAKE_XCODE_XCCONFIG + \ CPACK_ABSOLUTE_DESTINATION_FILES + \ CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY + \ CPACK_CUSTOM_INSTALL_VARIABLES + \ CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION + \ CPACK_INCLUDE_TOPLEVEL_DIRECTORY + \ CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS + \ CPACK_PACKAGING_INSTALL_PREFIX + \ CPACK_SET_DESTDIR + \ CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION + \ CTEST_BINARY_DIRECTORY + \ CTEST_BUILD_COMMAND + \ CTEST_BUILD_NAME + \ CTEST_BZR_COMMAND + \ CTEST_BZR_UPDATE_OPTIONS + \ CTEST_CHANGE_ID + \ CTEST_CHECKOUT_COMMAND + \ CTEST_CONFIGURATION_TYPE + \ CTEST_CONFIGURE_COMMAND + \ CTEST_COVERAGE_COMMAND + \ CTEST_COVERAGE_EXTRA_FLAGS + \ CTEST_CURL_OPTIONS + \ CTEST_CUSTOM_COVERAGE_EXCLUDE + \ CTEST_CUSTOM_ERROR_EXCEPTION + \ CTEST_CUSTOM_ERROR_MATCH + \ CTEST_CUSTOM_ERROR_POST_CONTEXT + \ CTEST_CUSTOM_ERROR_PRE_CONTEXT + \ CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE + \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS + \ CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS + \ CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE + \ CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION + \ CTEST_CUSTOM_MEMCHECK_IGNORE + \ CTEST_CUSTOM_POST_MEMCHECK + \ CTEST_CUSTOM_POST_TEST + \ CTEST_CUSTOM_PRE_MEMCHECK + \ CTEST_CUSTOM_PRE_TEST + \ CTEST_CUSTOM_TESTS_IGNORE + \ CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION + \ CTEST_CUSTOM_WARNING_EXCEPTION + \ CTEST_CUSTOM_WARNING_MATCH + \ CTEST_CVS_CHECKOUT + \ CTEST_CVS_COMMAND + \ CTEST_CVS_UPDATE_OPTIONS + \ CTEST_DROP_LOCATION + \ CTEST_DROP_METHOD + \ CTEST_DROP_SITE + \ CTEST_DROP_SITE_CDASH + \ CTEST_DROP_SITE_PASSWORD + \ CTEST_DROP_SITE_USER + \ CTEST_EXTRA_COVERAGE_GLOB + \ CTEST_GIT_COMMAND + \ CTEST_GIT_INIT_SUBMODULES + \ CTEST_GIT_UPDATE_CUSTOM + \ CTEST_GIT_UPDATE_OPTIONS + \ CTEST_HG_COMMAND + \ CTEST_HG_UPDATE_OPTIONS + \ CTEST_LABELS_FOR_SUBPROJECTS + \ CTEST_MEMORYCHECK_COMMAND + \ CTEST_MEMORYCHECK_COMMAND_OPTIONS + \ CTEST_MEMORYCHECK_SANITIZER_OPTIONS + \ CTEST_MEMORYCHECK_SUPPRESSIONS_FILE + \ CTEST_MEMORYCHECK_TYPE + \ CTEST_NIGHTLY_START_TIME + \ CTEST_P4_CLIENT + \ CTEST_P4_COMMAND + \ CTEST_P4_OPTIONS + \ CTEST_P4_UPDATE_OPTIONS + \ CTEST_RESOURCE_SPEC_FILE + \ CTEST_RUN_CURRENT_SCRIPT + \ CTEST_SCP_COMMAND + \ CTEST_SCRIPT_DIRECTORY + \ CTEST_SITE + \ CTEST_SOURCE_DIRECTORY + \ CTEST_SUBMIT_INACTIVITY_TIMEOUT + \ CTEST_SUBMIT_URL + \ CTEST_SVN_COMMAND + \ CTEST_SVN_OPTIONS + \ CTEST_SVN_UPDATE_OPTIONS + \ CTEST_TEST_LOAD + \ CTEST_TEST_TIMEOUT + \ CTEST_TRIGGER_SITE + \ CTEST_UPDATE_COMMAND + \ CTEST_UPDATE_OPTIONS + \ CTEST_UPDATE_VERSION_ONLY + \ CTEST_UPDATE_VERSION_OVERRIDE + \ CTEST_USE_LAUNCHERS + \ CYGWIN + \ DOXYGEN_ABBREVIATE_BRIEF + \ DOXYGEN_ALIASES + \ DOXYGEN_ALLEXTERNALS + \ DOXYGEN_ALLOW_UNICODE_NAMES + \ DOXYGEN_ALPHABETICAL_INDEX + \ DOXYGEN_ALWAYS_DETAILED_SEC + \ DOXYGEN_AUTOLINK_SUPPORT + \ DOXYGEN_BINARY_TOC + \ DOXYGEN_BRIEF_MEMBER_DESC + \ DOXYGEN_BUILTIN_STL_SUPPORT + \ DOXYGEN_CALLER_GRAPH + \ DOXYGEN_CALL_GRAPH + \ DOXYGEN_CASE_SENSE_NAMES + \ DOXYGEN_CHM_FILE + \ DOXYGEN_CHM_INDEX_ENCODING + \ DOXYGEN_CITE_BIB_FILES + \ DOXYGEN_CLANG_ASSISTED_PARSING + \ DOXYGEN_CLANG_DATABASE_PATH + \ DOXYGEN_CLANG_OPTIONS + \ DOXYGEN_CLASS_DIAGRAMS + \ DOXYGEN_CLASS_GRAPH + \ DOXYGEN_COLLABORATION_GRAPH + \ DOXYGEN_COLS_IN_ALPHA_INDEX + \ DOXYGEN_COMPACT_LATEX + \ DOXYGEN_COMPACT_RTF + \ DOXYGEN_CPP_CLI_SUPPORT + \ DOXYGEN_CREATE_SUBDIRS + \ DOXYGEN_DIAFILE_DIRS + \ DOXYGEN_DIA_PATH + \ DOXYGEN_DIRECTORY_GRAPH + \ DOXYGEN_DISABLE_INDEX + \ DOXYGEN_DISTRIBUTE_GROUP_DOC + \ DOXYGEN_DOCBOOK_OUTPUT + \ DOXYGEN_DOCBOOK_PROGRAMLISTING + \ DOXYGEN_DOCSET_BUNDLE_ID + \ DOXYGEN_DOCSET_FEEDNAME + \ DOXYGEN_DOCSET_PUBLISHER_ID + \ DOXYGEN_DOCSET_PUBLISHER_NAME + \ DOXYGEN_DOTFILE_DIRS + \ DOXYGEN_DOT_CLEANUP + \ DOXYGEN_DOT_FONTNAME + \ DOXYGEN_DOT_FONTPATH + \ DOXYGEN_DOT_FONTSIZE + \ DOXYGEN_DOT_GRAPH_MAX_NODES + \ DOXYGEN_DOT_IMAGE_FORMAT + \ DOXYGEN_DOT_MULTI_TARGETS + \ DOXYGEN_DOT_NUM_THREADS + \ DOXYGEN_DOT_PATH + \ DOXYGEN_DOT_TRANSPARENT + \ DOXYGEN_DOXYFILE_ENCODING + \ DOXYGEN_ECLIPSE_DOC_ID + \ DOXYGEN_ENABLED_SECTIONS + \ DOXYGEN_ENABLE_PREPROCESSING + \ DOXYGEN_ENUM_VALUES_PER_LINE + \ DOXYGEN_EXAMPLE_PATH + \ DOXYGEN_EXAMPLE_PATTERNS + \ DOXYGEN_EXAMPLE_RECURSIVE + \ DOXYGEN_EXCLUDE + \ DOXYGEN_EXCLUDE_PATTERNS + \ DOXYGEN_EXCLUDE_SYMBOLS + \ DOXYGEN_EXCLUDE_SYMLINKS + \ DOXYGEN_EXPAND_AS_DEFINED + \ DOXYGEN_EXPAND_ONLY_PREDEF + \ DOXYGEN_EXTENSION_MAPPING + \ DOXYGEN_EXTERNAL_GROUPS + \ DOXYGEN_EXTERNAL_PAGES + \ DOXYGEN_EXTERNAL_SEARCH + \ DOXYGEN_EXTERNAL_SEARCH_ID + \ DOXYGEN_EXTRACT_ALL + \ DOXYGEN_EXTRACT_ANON_NSPACES + \ DOXYGEN_EXTRACT_LOCAL_CLASSES + \ DOXYGEN_EXTRACT_LOCAL_METHODS + \ DOXYGEN_EXTRACT_PACKAGE + \ DOXYGEN_EXTRACT_PRIVATE + \ DOXYGEN_EXTRACT_PRIV_VIRTUAL + \ DOXYGEN_EXTRACT_STATIC + \ DOXYGEN_EXTRA_PACKAGES + \ DOXYGEN_EXTRA_SEARCH_MAPPINGS + \ DOXYGEN_EXT_LINKS_IN_WINDOW + \ DOXYGEN_FILE_PATTERNS + \ DOXYGEN_FILE_VERSION_FILTER + \ DOXYGEN_FILTER_PATTERNS + \ DOXYGEN_FILTER_SOURCE_FILES + \ DOXYGEN_FILTER_SOURCE_PATTERNS + \ DOXYGEN_FORCE_LOCAL_INCLUDES + \ DOXYGEN_FORMULA_FONTSIZE + \ DOXYGEN_FORMULA_TRANSPARENT + \ DOXYGEN_FULL_PATH_NAMES + \ DOXYGEN_GENERATE_AUTOGEN_DEF + \ DOXYGEN_GENERATE_BUGLIST + \ DOXYGEN_GENERATE_CHI + \ DOXYGEN_GENERATE_DEPRECATEDLIST + \ DOXYGEN_GENERATE_DOCBOOK + \ DOXYGEN_GENERATE_DOCSET + \ DOXYGEN_GENERATE_ECLIPSEHELP + \ DOXYGEN_GENERATE_HTML + \ DOXYGEN_GENERATE_HTMLHELP + \ DOXYGEN_GENERATE_LATEX + \ DOXYGEN_GENERATE_LEGEND + \ DOXYGEN_GENERATE_MAN + \ DOXYGEN_GENERATE_PERLMOD + \ DOXYGEN_GENERATE_QHP + \ DOXYGEN_GENERATE_RTF + \ DOXYGEN_GENERATE_TAGFILE + \ DOXYGEN_GENERATE_TESTLIST + \ DOXYGEN_GENERATE_TODOLIST + \ DOXYGEN_GENERATE_TREEVIEW + \ DOXYGEN_GENERATE_XML + \ DOXYGEN_GRAPHICAL_HIERARCHY + \ DOXYGEN_GROUP_GRAPHS + \ DOXYGEN_GROUP_NESTED_COMPOUNDS + \ DOXYGEN_HAVE_DOT + \ DOXYGEN_HHC_LOCATION + \ DOXYGEN_HIDE_COMPOUND_REFERENCE + \ DOXYGEN_HIDE_FRIEND_COMPOUNDS + \ DOXYGEN_HIDE_IN_BODY_DOCS + \ DOXYGEN_HIDE_SCOPE_NAMES + \ DOXYGEN_HIDE_UNDOC_CLASSES + \ DOXYGEN_HIDE_UNDOC_MEMBERS + \ DOXYGEN_HIDE_UNDOC_RELATIONS + \ DOXYGEN_HTML_COLORSTYLE_GAMMA + \ DOXYGEN_HTML_COLORSTYLE_HUE + \ DOXYGEN_HTML_COLORSTYLE_SAT + \ DOXYGEN_HTML_DYNAMIC_MENUS + \ DOXYGEN_HTML_DYNAMIC_SECTIONS + \ DOXYGEN_HTML_EXTRA_FILES + \ DOXYGEN_HTML_EXTRA_STYLESHEET + \ DOXYGEN_HTML_FILE_EXTENSION + \ DOXYGEN_HTML_FOOTER + \ DOXYGEN_HTML_HEADER + \ DOXYGEN_HTML_INDEX_NUM_ENTRIES + \ DOXYGEN_HTML_OUTPUT + \ DOXYGEN_HTML_STYLESHEET + \ DOXYGEN_HTML_TIMESTAMP + \ DOXYGEN_IDL_PROPERTY_SUPPORT + \ DOXYGEN_IGNORE_PREFIX + \ DOXYGEN_IMAGE_PATH + \ DOXYGEN_INCLUDED_BY_GRAPH + \ DOXYGEN_INCLUDE_FILE_PATTERNS + \ DOXYGEN_INCLUDE_GRAPH + \ DOXYGEN_INCLUDE_PATH + \ DOXYGEN_INHERIT_DOCS + \ DOXYGEN_INLINE_GROUPED_CLASSES + \ DOXYGEN_INLINE_INFO + \ DOXYGEN_INLINE_INHERITED_MEMB + \ DOXYGEN_INLINE_SIMPLE_STRUCTS + \ DOXYGEN_INLINE_SOURCES + \ DOXYGEN_INPUT + \ DOXYGEN_INPUT_ENCODING + \ DOXYGEN_INPUT_FILTER + \ DOXYGEN_INTERACTIVE_SVG + \ DOXYGEN_INTERNAL_DOCS + \ DOXYGEN_JAVADOC_AUTOBRIEF + \ DOXYGEN_JAVADOC_BANNER + \ DOXYGEN_LATEX_BATCHMODE + \ DOXYGEN_LATEX_BIB_STYLE + \ DOXYGEN_LATEX_CMD_NAME + \ DOXYGEN_LATEX_EMOJI_DIRECTORY + \ DOXYGEN_LATEX_EXTRA_FILES + \ DOXYGEN_LATEX_EXTRA_STYLESHEET + \ DOXYGEN_LATEX_FOOTER + \ DOXYGEN_LATEX_HEADER + \ DOXYGEN_LATEX_HIDE_INDICES + \ DOXYGEN_LATEX_MAKEINDEX_CMD + \ DOXYGEN_LATEX_OUTPUT + \ DOXYGEN_LATEX_SOURCE_CODE + \ DOXYGEN_LATEX_TIMESTAMP + \ DOXYGEN_LAYOUT_FILE + \ DOXYGEN_LOOKUP_CACHE_SIZE + \ DOXYGEN_MACRO_EXPANSION + \ DOXYGEN_MAKEINDEX_CMD_NAME + \ DOXYGEN_MAN_EXTENSION + \ DOXYGEN_MAN_LINKS + \ DOXYGEN_MAN_OUTPUT + \ DOXYGEN_MAN_SUBDIR + \ DOXYGEN_MARKDOWN_SUPPORT + \ DOXYGEN_MATHJAX_CODEFILE + \ DOXYGEN_MATHJAX_EXTENSIONS + \ DOXYGEN_MATHJAX_FORMAT + \ DOXYGEN_MATHJAX_RELPATH + \ DOXYGEN_MAX_DOT_GRAPH_DEPTH + \ DOXYGEN_MAX_INITIALIZER_LINES + \ DOXYGEN_MSCFILE_DIRS + \ DOXYGEN_MULTILINE_CPP_IS_BRIEF + \ DOXYGEN_OPTIMIZE_FOR_FORTRAN + \ DOXYGEN_OPTIMIZE_OUTPUT_FOR_C + \ DOXYGEN_OPTIMIZE_OUTPUT_JAVA + \ DOXYGEN_OPTIMIZE_OUTPUT_SLICE + \ DOXYGEN_OPTIMIZE_OUTPUT_VHDL + \ DOXYGEN_OUTPUT_DIRECTORY + \ DOXYGEN_OUTPUT_LANGUAGE + \ DOXYGEN_OUTPUT_TEXT_DIRECTION + \ DOXYGEN_PAPER_TYPE + \ DOXYGEN_PDF_HYPERLINKS + \ DOXYGEN_PERLMOD_LATEX + \ DOXYGEN_PERLMOD_MAKEVAR_PREFIX + \ DOXYGEN_PERLMOD_PRETTY + \ DOXYGEN_PLANTUML_CFG_FILE + \ DOXYGEN_PLANTUML_INCLUDE_PATH + \ DOXYGEN_PLANTUML_JAR_PATH + \ DOXYGEN_PREDEFINED + \ DOXYGEN_PROJECT_BRIEF + \ DOXYGEN_PROJECT_LOGO + \ DOXYGEN_PROJECT_NAME + \ DOXYGEN_PROJECT_NUMBER + \ DOXYGEN_QCH_FILE + \ DOXYGEN_QHG_LOCATION + \ DOXYGEN_QHP_CUST_FILTER_ATTRS + \ DOXYGEN_QHP_CUST_FILTER_NAME + \ DOXYGEN_QHP_NAMESPACE + \ DOXYGEN_QHP_SECT_FILTER_ATTRS + \ DOXYGEN_QHP_VIRTUAL_FOLDER + \ DOXYGEN_QT_AUTOBRIEF + \ DOXYGEN_QUIET + \ DOXYGEN_RECURSIVE + \ DOXYGEN_REFERENCED_BY_RELATION + \ DOXYGEN_REFERENCES_LINK_SOURCE + \ DOXYGEN_REFERENCES_RELATION + \ DOXYGEN_REPEAT_BRIEF + \ DOXYGEN_RTF_EXTENSIONS_FILE + \ DOXYGEN_RTF_HYPERLINKS + \ DOXYGEN_RTF_OUTPUT + \ DOXYGEN_RTF_SOURCE_CODE + \ DOXYGEN_RTF_STYLESHEET_FILE + \ DOXYGEN_SEARCHDATA_FILE + \ DOXYGEN_SEARCHENGINE + \ DOXYGEN_SEARCHENGINE_URL + \ DOXYGEN_SEARCH_INCLUDES + \ DOXYGEN_SEPARATE_MEMBER_PAGES + \ DOXYGEN_SERVER_BASED_SEARCH + \ DOXYGEN_SHORT_NAMES + \ DOXYGEN_SHOW_FILES + \ DOXYGEN_SHOW_GROUPED_MEMB_INC + \ DOXYGEN_SHOW_INCLUDE_FILES + \ DOXYGEN_SHOW_NAMESPACES + \ DOXYGEN_SHOW_USED_FILES + \ DOXYGEN_SIP_SUPPORT + \ DOXYGEN_SKIP_FUNCTION_MACROS + \ DOXYGEN_SORT_BRIEF_DOCS + \ DOXYGEN_SORT_BY_SCOPE_NAME + \ DOXYGEN_SORT_GROUP_NAMES + \ DOXYGEN_SORT_MEMBERS_CTORS_1ST + \ DOXYGEN_SORT_MEMBER_DOCS + \ DOXYGEN_SOURCE_BROWSER + \ DOXYGEN_SOURCE_TOOLTIPS + \ DOXYGEN_STRICT_PROTO_MATCHING + \ DOXYGEN_STRIP_CODE_COMMENTS + \ DOXYGEN_STRIP_FROM_INC_PATH + \ DOXYGEN_STRIP_FROM_PATH + \ DOXYGEN_SUBGROUPING + \ DOXYGEN_TAB_SIZE + \ DOXYGEN_TAGFILES + \ DOXYGEN_TCL_SUBST + \ DOXYGEN_TEMPLATE_RELATIONS + \ DOXYGEN_TOC_EXPAND + \ DOXYGEN_TOC_INCLUDE_HEADINGS + \ DOXYGEN_TREEVIEW_WIDTH + \ DOXYGEN_TYPEDEF_HIDES_STRUCT + \ DOXYGEN_UML_LIMIT_NUM_FIELDS + \ DOXYGEN_UML_LOOK + \ DOXYGEN_USE_HTAGS + \ DOXYGEN_USE_MATHJAX + \ DOXYGEN_USE_MDFILE_AS_MAINPAGE + \ DOXYGEN_USE_PDFLATEX + \ DOXYGEN_VERBATIM_HEADERS + \ DOXYGEN_VERBATIM_VARS + \ DOXYGEN_VERSION + \ DOXYGEN_WARNINGS + \ DOXYGEN_WARN_AS_ERROR + \ DOXYGEN_WARN_FORMAT + \ DOXYGEN_WARN_IF_DOC_ERROR + \ DOXYGEN_WARN_IF_UNDOCUMENTED + \ DOXYGEN_WARN_LOGFILE + \ DOXYGEN_WARN_NO_PARAMDOC + \ DOXYGEN_XML_NS_MEMB_FILE_SCOPE + \ DOXYGEN_XML_OUTPUT + \ DOXYGEN_XML_PROGRAMLISTING + \ ENV + \ EXECUTABLE_OUTPUT_PATH + \ GHSMULTI + \ IOS + \ LIBRARY_OUTPUT_PATH + \ LINUX + \ MINGW + \ MSVC + \ MSVC10 + \ MSVC11 + \ MSVC12 + \ MSVC14 + \ MSVC60 + \ MSVC70 + \ MSVC71 + \ MSVC80 + \ MSVC90 + \ MSVC_IDE + \ MSVC_TOOLSET_VERSION + \ MSVC_VERSION + \ MSYS + \ PROJECT_BINARY_DIR + \ PROJECT_DESCRIPTION + \ PROJECT_HOMEPAGE_URL + \ PROJECT_IS_TOP_LEVEL + \ PROJECT_NAME + \ PROJECT_SOURCE_DIR + \ PROJECT_VERSION + \ PROJECT_VERSION_MAJOR + \ PROJECT_VERSION_MINOR + \ PROJECT_VERSION_PATCH + \ PROJECT_VERSION_TWEAK + \ UNIX + \ WIN32 + \ WINCE + \ WINDOWS_PHONE + \ WINDOWS_STORE + \ XCODE + \ XCODE_VERSION + +syn keyword cmakeModule contained + \ ExternalProject + \ FetchContent + +syn keyword cmakeKWExternalProject contained + \ AWS + \ BINARY_DIR + \ BUILD_ALWAYS + \ BUILD_BYPRODUCTS + \ BUILD_COMMAND + \ BUILD_IN_SOURCE + \ CHECKOUT + \ CMAKE_ARGS + \ CMAKE_CACHE_ARGS + \ CMAKE_CACHE_DEFAULT_ARGS + \ CMAKE_EP_GIT_REMOTE_UPDATE_STRATEGY + \ CMAKE_INSTALL_MODE + \ COMMENT + \ CONFIGURE_COMMAND + \ CONFIGURE_HANDLED_BY_BUILD + \ CVS + \ CVSROOT + \ CVS_MODULE + \ CVS_REPOSITORY + \ CVS_TAG + \ DEPENDEES + \ DEPENDERS + \ DEPENDS + \ DOWNLOADED_FILE + \ DOWNLOAD_COMMAND + \ DOWNLOAD_DIR + \ DOWNLOAD_EXTRACT_TIMESTAMP + \ DOWNLOAD_NAME + \ DOWNLOAD_NO_EXTRACT + \ DOWNLOAD_NO_PROGRESS + \ EP_BASE + \ EP_INDEPENDENT_STEP_TARGETS + \ EP_PREFIX + \ EP_STEP_TARGETS + \ EP_UPDATE_DISCONNECTED + \ EXCLUDE_FROM_ALL + \ FALSE + \ FORCE + \ GHS + \ GIT_CONFIG + \ GIT_PROGRESS + \ GIT_REMOTE_NAME + \ GIT_REMOTE_UPDATE_STRATEGY + \ GIT_REPOSITORY + \ GIT_SHALLOW + \ GIT_SUBMODULES + \ GIT_SUBMODULES_RECURSE + \ GIT_TAG + \ HG_REPOSITORY + \ HG_TAG + \ HTTP_HEADER + \ HTTP_PASSWORD + \ HTTP_USERNAME + \ IGNORED + \ INACTIVITY_TIMEOUT + \ INDEPENDENT_STEP_TARGETS + \ INSTALL_BYPRODUCTS + \ INSTALL_COMMAND + \ INSTALL_DIR + \ JOB_POOLS + \ LIST_SEPARATOR + \ LOG_BUILD + \ LOG_CONFIGURE + \ LOG_DIR + \ LOG_DOWNLOAD + \ LOG_INSTALL + \ LOG_MERGED_STDOUTERR + \ LOG_OUTPUT_ON_FAILURE + \ LOG_PATCH + \ LOG_TEST + \ LOG_UPDATE + \ MAKE_EXE + \ MULTI + \ NAMES + \ NETRC + \ NETRC_FILE + \ NOTE + \ NO_DEPENDS + \ OPTIONAL + \ PATCH_COMMAND + \ PREFIX + \ PROPERTY + \ REBASE + \ REBASE_CHECKOUT + \ REQUIRED + \ SOURCE_DIR + \ SOURCE_SUBDIR + \ STAMP_DIR + \ STEP_TARGETS + \ STRING + \ SVN_PASSWORD + \ SVN_REPOSITORY + \ SVN_REVISION + \ SVN_TRUST_CERT + \ SVN_USERNAME + \ TEST_AFTER_INSTALL + \ TEST_BEFORE_INSTALL + \ TEST_COMMAND + \ TEST_EXCLUDE_FROM_MAIN + \ TIMEOUT + \ TLS_CAINFO + \ TLS_VERIFY + \ TMP_DIR + \ TRUE + \ UPDATE_COMMAND + \ UPDATE_DISCONNECTED + \ URL + \ URL_HASH + \ URL_MD5 + \ USES_TERMINAL_BUILD + \ USES_TERMINAL_CONFIGURE + \ USES_TERMINAL_DOWNLOAD + \ USES_TERMINAL_INSTALL + \ USES_TERMINAL_PATCH + \ USES_TERMINAL_TEST + \ USES_TERMINAL_UPDATE + \ WORKING_DIRECTORY + +syn keyword cmakeKWFetchContent contained + \ ALWAYS + \ BINARY_DIR + \ BUILD_COMMAND + \ BYPASS_PROVIDER + \ CMAKE_PROJECT_ + \ CONFIGURE_COMMAND + \ COPY + \ CORRECT + \ DCMAKE_TOOLCHAIN_FILE + \ DESTINATION + \ DOWNLOAD_NO_EXTRACT + \ EXISTS + \ FETCHCONTENT_BASE_DIR + \ FETCHCONTENT_FULLY_DISCONNECTED + \ FETCHCONTENT_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_QUIET + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FETCHCONTENT_UPDATES_DISCONNECTED + \ FETCHCONTENT_UPDATES_DISCONNECTED_ + \ FIND_PACKAGE_ARGS + \ GIT_REPOSITORY + \ GIT_TAG + \ GLOBAL + \ GTEST_BOTH_LIBRARIES + \ GTEST_LIBRARIES + \ GTEST_MAIN_LIBRARIES + \ INSTALL_COMMAND + \ INTERNAL + \ NAME + \ NAMES + \ NEVER + \ NOTE + \ OFF + \ OPTIONAL + \ OPT_IN + \ OVERRIDE_FIND_PACKAGE + \ PACKAGE_VERSION_COMPATIBLE + \ PACKAGE_VERSION_EXACT + \ QUIET + \ SOURCE_SUBDIR + \ STREQUAL + \ SUBBUILD_DIR + \ SVN_REPOSITORY + \ SVN_REVISION + \ SYSTEM + \ TARGET + \ TEST_COMMAND + \ TRUE + \ URL + \ URL_HASH + \ VERIFY_INTERFACE_HEADER_SETS + \ WRITE + \ WRONG + \ _BINARY_DIR + \ _INCLUDE + \ _POPULATED + \ _SOURCE_DIR + +syn keyword cmakeKWadd_compile_definitions contained + \ COMPILE_DEFINITIONS + \ VAR + +syn keyword cmakeKWadd_compile_options contained + \ CMAKE_ + \ COMPILE_LANGUAGE + \ COMPILE_OPTIONS + \ CONFIG + \ SHELL + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + +syn keyword cmakeKWadd_custom_command contained + \ APPEND + \ ARGS + \ BNF + \ BYPRODUCTS + \ CC + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ COMMENT + \ CONFIG + \ CROSSCOMPILING_EMULATOR + \ DEPENDS + \ DEPENDS_EXPLICIT_ONLY + \ DEPFILE + \ GENERATED + \ IMPLICIT_DEPENDS + \ INCLUDE_DIRECTORIES + \ JOB_POOL + \ JOB_POOLS + \ JOIN + \ MAIN_DEPENDENCY + \ MODULE + \ NOT + \ OUTPUT + \ PATH + \ POST_BUILD + \ PRE_BUILD + \ PRE_LINK + \ SYMBOLIC + \ TARGET_FILE + \ TARGET_LINKER_FILE + \ TARGET_PDB_FILE + \ TARGET_PROPERTY + \ TARGET_SONAME_FILE + \ USES_TERMINAL + \ VERBATIM + \ WORKING_DIRECTORY + +syn keyword cmakeKWadd_custom_target contained + \ ALL + \ BYPRODUCTS + \ CC + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ COMMENT + \ CROSSCOMPILING_EMULATOR + \ DEPENDS + \ GENERATED + \ INCLUDE_DIRECTORIES + \ JOB_POOL + \ JOB_POOLS + \ JOIN + \ PATH + \ SOURCES + \ TARGET_FILE + \ TARGET_LINKER_FILE + \ TARGET_PDB_FILE + \ TARGET_PROPERTY + \ TARGET_SONAME_FILE + \ USES_TERMINAL + \ VERBATIM + \ WORKING_DIRECTORY + +syn keyword cmakeKWadd_definitions contained + \ COMPILE_DEFINITIONS + +syn keyword cmakeKWadd_dependencies contained + \ DEPENDS + \ OBJECT_DEPENDS + +syn keyword cmakeKWadd_executable contained + \ ALIAS + \ ALIAS_GLOBAL + \ CONFIG + \ EXCLUDE_FROM_ALL + \ GLOBAL + \ HEADER_FILE_ONLY + \ IMPORTED + \ IMPORTED_ + \ IMPORTED_LOCATION + \ IMPORTED_LOCATION_ + \ MACOSX_BUNDLE + \ OUTPUT_NAME + \ RUNTIME_OUTPUT_DIRECTORY + \ TARGET + +syn keyword cmakeKWadd_library contained + \ ALIAS + \ ALIAS_GLOBAL + \ ARCHIVE_OUTPUT_DIRECTORY + \ CLI + \ CONFIG + \ DLL + \ EXCLUDE_FROM_ALL + \ FRAMEWORK + \ GLOBAL + \ HEADER_FILE_ONLY + \ HEADER_SETS + \ IMPORTED + \ IMPORTED_ + \ IMPORTED_IMPLIB + \ IMPORTED_IMPLIB_ + \ IMPORTED_LOCATION + \ IMPORTED_LOCATION_ + \ IMPORTED_NO_SONAME + \ IMPORTED_OBJECTS + \ IMPORTED_OBJECTS_ + \ IMPORTED_SONAME + \ INTERFACE + \ INTERFACE_ + \ INTERFACE_SOURCES + \ LC_ID_DYLIB + \ LIBRARY_OUTPUT_DIRECTORY + \ MODULE + \ OBJECT + \ ON + \ OUTPUT_NAME + \ POSITION_INDEPENDENT_CODE + \ POST_BUILD + \ PRE_BUILD + \ PRE_LINK + \ PRIVATE_HEADER + \ PUBLIC_HEADER + \ RUNTIME_OUTPUT_DIRECTORY + \ SHARED + \ SONAME + \ SOURCES + \ STATIC + \ TARGETS + \ TARGET_OBJECTS + \ TARGET_RUNTIME_DLLS + \ UNKNOWN + +syn keyword cmakeKWadd_link_options contained + \ CMAKE_ + \ CONFIG + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ DEVICE_LINK + \ GCC + \ HOST_LINK + \ LANG + \ LINKER + \ LINK_OPTIONS + \ SHELL + \ STATIC_LIBRARY_OPTIONS + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + \ _LINKER_WRAPPER_FLAG + \ _LINKER_WRAPPER_FLAG_SEP + +syn keyword cmakeKWadd_subdirectory contained + \ EXCLUDE_FROM_ALL + \ SYSTEM + +syn keyword cmakeKWadd_test contained + \ BUILD_TESTING + \ COMMAND + \ COMMAND_EXPAND_LISTS + \ CONFIGURATIONS + \ FAIL_REGULAR_EXPRESSION + \ NAME + \ OFF + \ PASS_REGULAR_EXPRESSION + \ SKIP_REGULAR_EXPRESSION + \ TARGET_FILE + \ WILL_FAIL + \ WILL_FALL + \ WORKING_DIRECTORY + +syn keyword cmakeKWblock contained + \ PARENT_SCOPE + \ POLICIES + \ PROPAGATE + \ PUSH + \ SCOPE_FOR + \ TRUE + \ VARIABLES + +syn keyword cmakeKWbuild_command contained + \ CONFIGURATION + \ PARALLEL_LEVEL + \ TARGET + +syn keyword cmakeKWcmake_file_api contained + \ API + \ API_VERSION + \ BUILD_DIR + \ CMAKEFILES + \ CODEMODEL + \ COMMAND + \ CONFIG + \ QUERY + \ TOOLCHAINS + +syn keyword cmakeKWcmake_host_system_information contained + \ APPEND + \ AVAILABLE_PHYSICAL_MEMORY + \ AVAILABLE_VIRTUAL_MEMORY + \ BOTH + \ CMAKE_GET_OS_RELEASE_FALLBACK_CONTENT + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_ + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_ID + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_NAME + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_PRETTY_NAME + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_VERSION + \ CMAKE_GET_OS_RELEASE_FALLBACK_RESULT_VERSION_ID + \ CMAKE_GET_OS_RELEASE_FALLBACK_SCRIPTS + \ DISTRIB_INFO + \ DISTRIB_PRETTY_NAME + \ DISTRO + \ DISTRO_BUG_REPORT_URL + \ DISTRO_HOME_URL + \ DISTRO_ID + \ DISTRO_ID_LIKE + \ DISTRO_NAME + \ DISTRO_PRETTY_NAME + \ DISTRO_PRIVACY_POLICY_URL + \ DISTRO_SUPPORT_URL + \ DISTRO_UBUNTU_CODENAME + \ DISTRO_VERSION + \ DISTRO_VERSION_CODENAME + \ DISTRO_VERSION_ID + \ ERROR_VARIABLE + \ EXISTS + \ FQDN + \ HAS_FPU + \ HAS_MMX + \ HAS_MMX_PLUS + \ HAS_SERIAL_NUMBER + \ HAS_SSE + \ HAS_SSE_FP + \ HAS_SSE_MMX + \ HKCC + \ HKCR + \ HKCU + \ HKEY_CLASSES_ROOT + \ HKEY_CURRENT_CONFIG + \ HKEY_CURRENT_USER + \ HKEY_LOCAL_MACHINE + \ HKEY_USERS + \ HKLM + \ HKU + \ HOSTNAME + \ ID + \ LIMIT_COUNT + \ LISTS + \ LTS + \ MATCHES + \ NNN + \ NOT + \ NUMBER_OF_LOGICAL_CORES + \ NUMBER_OF_PHYSICAL_CORES + \ OS_NAME + \ OS_PLATFORM + \ OS_RELEASE + \ OS_VERSION + \ PRETTY_NAME + \ PROCESSOR_DESCRIPTION + \ PROCESSOR_NAME + \ PROCESSOR_SERIAL_NUMBER + \ QUERY + \ REG_DWORD + \ REG_EXPAND_SZ + \ REG_MULTI_SZ + \ REG_QWORD + \ REG_SZ + \ RESULT + \ SEPARATOR + \ SOFTWARE + \ STATUS + \ STRINGS + \ SUBKEYS + \ TARGET + \ TOTAL_PHYSICAL_MEMORY + \ TOTAL_VIRTUAL_MEMORY + \ VALUE_NAMES + \ VAR + \ VIEW + \ WINDOWS_REGISTRY + +syn keyword cmakeKWcmake_language contained + \ AND + \ ANY + \ APPEND + \ ARGN + \ BINARY_DIR + \ BYPASS_PROVIDER + \ CALL + \ CANCEL_CALL + \ CODE + \ COMMAND + \ COMMAND_ERROR_IS_FATAL + \ DCMAKE_PROJECT_TOP_LEVEL_INCLUDES + \ DEFER + \ DIRECTORY + \ EVAL + \ FALSE + \ FETCHCONTENT_MAKEAVAILABE_SERIAL + \ FETCHCONTENT_MAKEAVAILABLE_SERIAL + \ FETCHCONTENT_SOURCE_DIR_ + \ FETCHCONTENT_TRY_FIND_PACKAGE_MODE + \ FIND_PACKAGE + \ FIND_PACKAGE_ARGS + \ GET_CALL_IDS + \ GET_MESSAGE_LOG_LEVEL + \ GIT_REPOSITORY + \ GIT_SUBMODULES + \ GIT_TAG + \ ID_VAR + \ MATCHES + \ MYCOMP_PROVIDER_INSTALL_DIR + \ NEVER + \ NOT + \ OVERRIDE_FIND_PACKAGE + \ PATH + \ POP_BACK + \ QUIET + \ SET_DEPENDENCY_PROVIDER + \ SOURCE_DIR + \ STATUS + \ STREQUAL + \ SUPPORTED_METHODS + \ TRUE + \ VERSION + \ WRITE + \ _FOUND + \ _PATH + +syn keyword cmakeKWcmake_minimum_required contained + \ FATAL_ERROR + \ VERSION + +syn keyword cmakeKWcmake_parse_arguments contained + \ ARGN + \ CONFIGURATIONS + \ DESTINATION + \ FALSE + \ FAST + \ FILES + \ MY_INSTALL + \ MY_INSTALL_CONFIGURATIONS + \ MY_INSTALL_DESTINATION + \ MY_INSTALL_FAST + \ MY_INSTALL_KEYWORDS_MISSING_VALUES + \ MY_INSTALL_OPTIONAL + \ MY_INSTALL_RENAME + \ MY_INSTALL_TARGETS + \ MY_INSTALL_UNPARSED_ARGUMENTS + \ OPTIONAL + \ PARSE_ARGV + \ RENAME + \ TARGETS + \ TRUE + \ UNDEFINED + \ _KEYWORDS_MISSING_VALUES + \ _UNPARSED_ARGUMENTS + +syn keyword cmakeKWcmake_path contained + \ ABSOLUTE_PATH + \ AND + \ APPEND + \ APPEND_STRING + \ BASE_DIRECTORY + \ COMPARE + \ CONVERT + \ EQUAL + \ EXTENSION + \ EXTENSION_DEF + \ FALSE + \ FILENAME + \ FILENAME_DEF + \ GET + \ GET_EXTENSION + \ GET_FILENAME + \ GET_PARENT_PATH + \ GET_RELATIVE_PART + \ GET_ROOT_DIRECTORY + \ GET_ROOT_NAME + \ GET_ROOT_PATH + \ GET_STEM + \ HASH + \ HAS_EXTENSION + \ HAS_FILENAME + \ HAS_PARENT_PATH + \ HAS_RELATIVE_PART + \ HAS_ROOT_DIRECTORY + \ HAS_ROOT_NAME + \ HAS_ROOT_PATH + \ HAS_STEM + \ IS_ABSOLUTE + \ IS_PREFIX + \ IS_RELATIVE + \ LAST_ONLY + \ MATCHES + \ NATIVE_PATH + \ NORMALIZE + \ NORMAL_PATH + \ NOT_EQUAL + \ OP + \ OUTPUT_VARIABLE + \ PARENT_PATH + \ REAL_PATH + \ RELATIVE_PART + \ RELATIVE_PATH + \ REMOVE_EXTENSION + \ REMOVE_FILENAME + \ REPLACE_EXTENSION + \ REPLACE_FILENAME + \ ROOT_DIRECTORY + \ ROOT_NAME + \ ROOT_PATH + \ SET + \ STEM + \ STREQUAL + \ TO_CMAKE_PATH_LIST + \ TO_NATIVE_PATH_LIST + \ TRUE + \ XOR + +syn keyword cmakeKWcmake_policy contained + \ CMAKE_POLICY_DEFAULT_CMP + \ CMP + \ GET + \ NNNN + \ NO_POLICY_SCOPE + \ OLD + \ POLICIES + \ POP + \ PUSH + \ SCOPE_FOR + \ SET + \ VERSION + +syn keyword cmakeKWconfigure_file contained + \ COPYONLY + \ CRLF + \ DOS + \ ESCAPE_QUOTES + \ FILE_PERMISSIONS + \ FOO_ENABLE + \ FOO_STRING + \ GENERATE + \ INTERFACE + \ LF + \ NEWLINE_STYLE + \ NO_SOURCE_PERMISSIONS + \ PRIVATE + \ PUBLIC + \ SYSTEM + \ USE_SOURCE_PERMISSIONS + \ VAR + +syn keyword cmakeKWcreate_test_sourcelist contained + \ CMAKE_TESTDRIVER_AFTER_TESTMAIN + \ CMAKE_TESTDRIVER_BEFORE_TESTMAIN + \ EXTRA_INCLUDE + \ FUNCTION + +syn keyword cmakeKWctest_build contained + \ ALL_BUILD + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ CMAKE_BUILD_PARALLEL_LEVEL + \ CONFIGURATION + \ CTEST_BUILD_CONFIGURATION + \ CTEST_BUILD_FLAGS + \ CTEST_BUILD_TARGET + \ FLAGS + \ NUMBER_ERRORS + \ NUMBER_WARNINGS + \ PARALLEL_LEVEL + \ QUIET + \ RETURN_VALUE + \ TARGET + +syn keyword cmakeKWctest_configure contained + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ OPTIONS + \ QUIET + \ RETURN_VALUE + \ SOURCE + +syn keyword cmakeKWctest_coverage contained + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ LABELS + \ QUIET + \ RETURN_VALUE + +syn keyword cmakeKWctest_memcheck contained + \ APPEND + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ DEFECT_COUNT + \ EXCLUDE + \ EXCLUDE_FIXTURE + \ EXCLUDE_FIXTURE_CLEANUP + \ EXCLUDE_FIXTURE_SETUP + \ EXCLUDE_LABEL + \ INCLUDE + \ INCLUDE_LABEL + \ OFF + \ ON + \ OUTPUT_JUNIT + \ PARALLEL_LEVEL + \ QUIET + \ REPEAT + \ RESOURCE_SPEC_FILE + \ RETURN_VALUE + \ SCHEDULE_RANDOM + \ START + \ STOP_ON_FAILURE + \ STOP_TIME + \ STRIDE + \ TEST_LOAD + +syn keyword cmakeKWctest_run_script contained + \ NEW_PROCESS + \ RETURN_VALUE + +syn keyword cmakeKWctest_start contained + \ APPEND + \ GROUP + \ QUIET + \ TAG + \ TRACK + +syn keyword cmakeKWctest_submit contained + \ API + \ BUILD_ID + \ CAPTURE_CMAKE_ERROR + \ CDASH_UPLOAD + \ CDASH_UPLOAD_TYPE + \ CTEST_EXTRA_SUBMIT_FILES + \ CTEST_NOTES_FILES + \ FILES + \ HTTPHEADER + \ PARTS + \ QUIET + \ RETRY_COUNT + \ RETRY_DELAY + \ RETURN_VALUE + \ SUBMIT_URL + +syn keyword cmakeKWctest_test contained + \ AFTER_TIMEOUT + \ APPEND + \ ATTACHED_FILES + \ ATTACHED_FILES_ON_FAIL + \ BUILD + \ CAPTURE_CMAKE_ERROR + \ CPU + \ EXCLUDE + \ EXCLUDE_FIXTURE + \ EXCLUDE_FIXTURE_CLEANUP + \ EXCLUDE_FIXTURE_SETUP + \ EXCLUDE_LABEL + \ INCLUDE + \ INCLUDE_LABEL + \ LABELS + \ OFF + \ ON + \ OUTPUT_JUNIT + \ PARALLEL_LEVEL + \ QUIET + \ REPEAT + \ RESOURCE_SPEC_FILE + \ RETURN_VALUE + \ SCHEDULE_RANDOM + \ START + \ STOP_ON_FAILURE + \ STOP_TIME + \ STRIDE + \ TEST_LOAD + \ UNTIL_FAIL + \ UNTIL_PASS + \ URL + \ XML + +syn keyword cmakeKWctest_update contained + \ CAPTURE_CMAKE_ERROR + \ QUIET + \ RETURN_VALUE + \ SOURCE + +syn keyword cmakeKWctest_upload contained + \ CAPTURE_CMAKE_ERROR + \ FILES + \ QUIET + +syn keyword cmakeKWdefine_property contained + \ APPEND + \ APPEND_STRING + \ BRIEF_DOCS + \ CACHED_VARIABLE + \ CMAKE_ + \ DIRECTORY + \ FULL_DOCS + \ GLOBAL + \ INHERITED + \ INITIALIZE_FROM_VARIABLE + \ PROPERTY + \ SOURCE + \ TARGET + \ TEST + \ VARIABLE + \ _CMAKE_ + +syn keyword cmakeKWdoxygen_add_docs contained + \ ALL + \ COMMENT + \ USE_STAMP_FILE + \ WORKING_DIRECTORY + +syn keyword cmakeKWenable_language contained + \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT + \ CUDA + \ HIP + \ ISPC + \ OBJC + \ OBJCXX + \ OPTIONAL + +syn keyword cmakeKWenable_testing contained + \ BUILD_TESTING + +syn keyword cmakeKWexec_program contained + \ ARGS + \ OUTPUT_VARIABLE + \ RETURN_VALUE + +syn keyword cmakeKWexecute_process contained + \ ANSI + \ ANY + \ AUTO + \ COMMAND + \ COMMAND_ECHO + \ COMMAND_ERROR_IS_FATAL + \ ECHO_ERROR_VARIABLE + \ ECHO_OUTPUT_VARIABLE + \ ENCODING + \ ERROR_FILE + \ ERROR_QUIET + \ ERROR_STRIP_TRAILING_WHITESPACE + \ ERROR_VARIABLE + \ INPUT_FILE + \ LAST + \ NONE + \ OEM + \ OUTPUT_FILE + \ OUTPUT_QUIET + \ OUTPUT_STRIP_TRAILING_WHITESPACE + \ OUTPUT_VARIABLE + \ POSIX + \ RESULTS_VARIABLE + \ RESULT_VARIABLE + \ RFC + \ STDERR + \ STDOUT + \ TIMEOUT + \ UTF + \ WORKING_DIRECTORY + +syn keyword cmakeKWexport contained + \ ANDROID_MK + \ APPEND + \ CONFIG + \ CXX_MODULES_DIRECTORY + \ EXPORT + \ EXPORT_LINK_INTERFACE_LIBRARIES + \ FILE + \ IMPORTED_ + \ NAMESPACE + \ NDK + \ OLD + \ PACKAGE + \ TARGETS + +syn keyword cmakeKWexport_library_dependencies contained + \ APPEND + \ EXPORT + \ INCLUDE + \ LINK_INTERFACE_LIBRARIES + \ SET + +syn keyword cmakeKWfile contained + \ APPEND + \ ARCHIVE_CREATE + \ ARCHIVE_EXTRACT + \ ASCII + \ BASE_DIRECTORY + \ BUNDLE_EXECUTABLE + \ CHMOD + \ CHMOD_RECURSE + \ CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND + \ CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM + \ CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL + \ CMAKE_INSTALL_MODE + \ CMAKE_OBJDUMP + \ CODE + \ COMPILE_FEATURES + \ COMPRESSION + \ COMPRESSION_LEVEL + \ CONDITION + \ CONFIGURE + \ CONFIGURE_DEPENDS + \ CONFLICTING_DEPENDENCIES_PREFIX + \ CONTENT + \ CONVERT + \ COPYONLY + \ COPY_FILE + \ COPY_ON_ERROR + \ CREATE_LINK + \ CRLF + \ DESTINATION + \ DIRECTORIES + \ DIRECTORY_PERMISSIONS + \ DLL + \ DOS + \ DOWNLOAD + \ ENCODING + \ ESCAPE_QUOTES + \ EXECUTABLES + \ EXPAND_TILDE + \ EXPECTED_HASH + \ FILES_MATCHING + \ FILE_PERMISSIONS + \ FOLLOW_SYMLINKS + \ FOLLOW_SYMLINK_CHAIN + \ FORMAT + \ FUNCTION + \ GENERATE + \ GET_RUNTIME_DEPENDENCIES + \ GLOB + \ GLOB_RECURSE + \ GROUP_EXECUTE + \ GROUP_READ + \ GROUP_WRITE + \ GUARD + \ HASH + \ HEX + \ HOME + \ HTTPHEADER + \ IGNORED + \ INACTIVITY_TIMEOUT + \ INPUT + \ INPUT_MAY_BE_RECENT + \ INSTALL + \ IS_ABSOLUTE + \ LENGTH_MAXIMUM + \ LENGTH_MINIMUM + \ LF + \ LIBRARIES + \ LIMIT + \ LIMIT_COUNT + \ LIMIT_INPUT + \ LIMIT_OUTPUT + \ LIST_DIRECTORIES + \ LIST_ONLY + \ LOCK + \ LOG + \ MAKE_DIRECTORY + \ MODULES + \ MTIME + \ MYLIBRARY + \ NETRC + \ NETRC_FILE + \ NEWLINE_CONSUME + \ NEWLINE_STYLE + \ NOT + \ NO_HEX_CONVERSION + \ NO_REPLACE + \ NO_SOURCE_PERMISSIONS + \ OFFSET + \ ONLY + \ ONLY_IF_DIFFERENT + \ OPTIONAL + \ OUTPUT + \ OWNER_EXECUTE + \ OWNER_READ + \ OWNER_WRITE + \ PATHS + \ PATTERN + \ PATTERNS + \ PERMISSIONS + \ POST_EXCLUDE_FILES + \ POST_EXCLUDE_REGEXES + \ POST_INCLUDE_FILES + \ POST_INCLUDE_REGEXES + \ PRE_EXCLUDE_REGEXES + \ PRE_INCLUDE_REGEXES + \ PROCESS + \ RANGE_END + \ RANGE_START + \ READ + \ READ_SYMLINK + \ REAL_PATH + \ REGEX + \ RELATIVE + \ RELATIVE_PATH + \ RELEASE + \ REMOVE + \ REMOVE_RECURSE + \ RENAME + \ REQUIRED + \ RESOLVED_DEPENDENCIES_VAR + \ RESULT + \ RESULT_VARIABLE + \ RPATH + \ RUNPATH + \ RUNTIME_DEPENDENCY_SET + \ SCRIPT + \ SETGID + \ SETUID + \ SHARED + \ SHOW_PROGRESS + \ SIZE + \ SSL + \ STATIC + \ STATUS + \ STRINGS + \ SYMBOLIC + \ TARGET + \ TARGET_PROPERTY + \ TIMESTAMP + \ TLS_CAINFO + \ TLS_VERIFY + \ TOUCH + \ TOUCH_NOCREATE + \ TO_CMAKE_PATH + \ TO_CMAKE_PATH_LIST + \ TO_NATIVE_PATH + \ TO_NATIVE_PATH_LIST + \ UNRESOLVED_DEPENDENCIES_VAR + \ UPLOAD + \ URL + \ USERPROFILE + \ USERPWD + \ USE_SOURCE_PERMISSIONS + \ UTC + \ UTF + \ VERBOSE + \ WORLD_EXECUTE + \ WORLD_READ + \ WORLD_WRITE + \ WRITE + \ XZ + \ _FILENAMES + +syn keyword cmakeKWfind_file contained + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ INCLUDE + \ MATCHES + \ NAMES + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR + +syn keyword cmakeKWfind_library contained + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ LIB + \ MATCHES + \ NAMES + \ NAMES_PER_DIR + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR + +syn keyword cmakeKWfind_package contained + \ ABI + \ BOTH + \ BUNDLE + \ BYPASS_PROVIDER + \ CATEGORY + \ CMAKE_DISABLE_FIND_PACKAGE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ CMAKE_REQUIRE_FIND_PACKAGE_ + \ COMPONENTS + \ CONFIG + \ CONFIGS + \ DEC + \ DVAR + \ EXACT + \ EXCLUDE + \ FALSE + \ FIND_PACKAGE_VERSION_FORMAT + \ FRAMEWORK + \ GLOBAL + \ HINTS + \ HOST + \ INCLUDE + \ MODULE + \ NAMES + \ NATURAL + \ NO_CMAKE_BUILDS_PATH + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PACKAGE_REGISTRY + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PACKAGE_REGISTRY + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_MODULE + \ NO_PACKAGE_ROOT_PATH + \ NO_POLICY_SCOPE + \ NO_SYSTEM_ENVIRONMENT_PATH + \ OLD + \ ONLY_CMAKE_FIND_ROOT_PATH + \ OPTIONAL_COMPONENTS + \ PACKAGENAME + \ PACKAGE_FIND_NAME + \ PACKAGE_FIND_VERSION + \ PACKAGE_FIND_VERSION_COMPLETE + \ PACKAGE_FIND_VERSION_COUNT + \ PACKAGE_FIND_VERSION_MAJOR + \ PACKAGE_FIND_VERSION_MAX + \ PACKAGE_FIND_VERSION_MAX_COUNT + \ PACKAGE_FIND_VERSION_MAX_MAJOR + \ PACKAGE_FIND_VERSION_MAX_MINOR + \ PACKAGE_FIND_VERSION_MAX_PATCH + \ PACKAGE_FIND_VERSION_MAX_TWEAK + \ PACKAGE_FIND_VERSION_MINOR + \ PACKAGE_FIND_VERSION_MIN_COUNT + \ PACKAGE_FIND_VERSION_MIN_MAJOR + \ PACKAGE_FIND_VERSION_MIN_MINOR + \ PACKAGE_FIND_VERSION_MIN_PATCH + \ PACKAGE_FIND_VERSION_MIN_TWEAK + \ PACKAGE_FIND_VERSION_PATCH + \ PACKAGE_FIND_VERSION_RANGE + \ PACKAGE_FIND_VERSION_RANGE_MAX + \ PACKAGE_FIND_VERSION_RANGE_MIN + \ PACKAGE_FIND_VERSION_TWEAK + \ PACKAGE_VERSION_COMPATIBLE + \ PACKAGE_VERSION_EXACT + \ PACKAGE_VERSION_UNSUITABLE + \ PATHS + \ PATH_SUFFIXES + \ QUIET + \ REGISTRY_VIEW + \ REQUIRED + \ SET + \ TARGET + \ TRUE + \ VALUE + \ _CONFIG + \ _CONSIDERED_CONFIGS + \ _CONSIDERED_VERSIONS + \ _DIR + \ _FIND_COMPONENTS + \ _FIND_QUIETLY + \ _FIND_REGISTRY_VIEW + \ _FIND_REQUIRED + \ _FIND_REQUIRED_ + \ _FIND_VERSION_EXACT + \ _FOUND + +syn keyword cmakeKWfind_path contained + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ INCLUDE + \ MATCHES + \ NAMES + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR + +syn keyword cmakeKWfind_program contained + \ BOTH + \ CATEGORY + \ CMAKE_FIND_ROOT_PATH_BOTH + \ CMAKE_FIND_USE_ + \ DOC + \ DVAR + \ FALSE + \ FIND_XXX_REGISTRY_VIEW + \ HINTS + \ HOST + \ MATCHES + \ NAMES + \ NAMES_PER_DIR + \ NOT + \ NO_CACHE + \ NO_CMAKE_ENVIRONMENT_PATH + \ NO_CMAKE_FIND_ROOT_PATH + \ NO_CMAKE_INSTALL_PREFIX + \ NO_CMAKE_PATH + \ NO_CMAKE_SYSTEM_PATH + \ NO_DEFAULT_PATH + \ NO_PACKAGE_ROOT_PATH + \ NO_SYSTEM_ENVIRONMENT_PATH + \ ONLY_CMAKE_FIND_ROOT_PATH + \ PACKAGENAME + \ PARENT_SCOPE + \ PATHS + \ PATH_SUFFIXES + \ REGISTRY_VIEW + \ REQUIRED + \ TARGET + \ VALIDATOR + \ VAR + +syn keyword cmakeKWfltk_wrap_ui contained + \ FLTK + +syn keyword cmakeKWforeach contained + \ APPEND + \ IN + \ ITEMS + \ LISTS + \ RANGE + \ STATUS + \ ZIP_LISTS + +syn keyword cmakeKWfunction contained + \ ARGC + \ ARGN + \ ARGV + \ CALL + \ FOO + \ PARENT_SCOPE + +syn keyword cmakeKWget_cmake_property contained + \ COMPONENTS + \ GLOBAL + \ MACROS + \ VARIABLES + +syn keyword cmakeKWget_directory_property contained + \ DEFINITION + \ DIRECTORY + \ INHERITED + +syn keyword cmakeKWget_filename_component contained + \ ABSOLUTE + \ BASE_DIR + \ DIRECTORY + \ EXT + \ LAST_EXT + \ NAME + \ NAME_WE + \ NAME_WLE + \ PROGRAM + \ PROGRAM_ARGS + \ QUERY + \ REALPATH + \ REAL_PATH + \ WINDOWS_REGISTRY + +syn keyword cmakeKWget_property contained + \ BRIEF_DOCS + \ DEFINED + \ DIRECTORY + \ FULL_DOCS + \ GENERATED + \ GLOBAL + \ INSTALL + \ PROPERTY + \ SET + \ SOURCE + \ TARGET + \ TARGET_DIRECTORY + \ TEST + \ VARIABLE + +syn keyword cmakeKWget_source_file_property contained + \ DIRECTORY + \ GENERATED + \ INHERITED + \ LOCATION + \ TARGET_DIRECTORY + +syn keyword cmakeKWget_target_property contained + \ INHERITED + \ VAR + +syn keyword cmakeKWget_test_property contained + \ INHERITED + \ VAR + +syn keyword cmakeKWif contained + \ CMAKE_MATCH_ + \ CMP + \ COMMAND + \ COMPARE + \ DEFINED + \ EQUAL + \ EXISTS + \ FALSE + \ GREATER + \ GREATER_EQUAL + \ IGNORE + \ IN_LIST + \ IS_ABSOLUTE + \ IS_DIRECTORY + \ IS_NEWER_THAN + \ IS_SYMLINK + \ LESS + \ LESS_EQUAL + \ MATCHES + \ NNNN + \ NOT + \ OFF + \ OR + \ PATH_EQUAL + \ POLICY + \ STREQUAL + \ STRGREATER + \ STRGREATER_EQUAL + \ STRLESS + \ STRLESS_EQUAL + \ TARGET + \ TEST + \ TRUE + \ VERSION_EQUAL + \ VERSION_GREATER + \ VERSION_GREATER_EQUAL + \ VERSION_LESS + \ VERSION_LESS_EQUAL + \ YES + +syn keyword cmakeKWinclude contained + \ NO_POLICY_SCOPE + \ OPTIONAL + \ RESULT_VARIABLE + +syn keyword cmakeKWinclude_directories contained + \ AFTER + \ BEFORE + \ INCLUDE_DIRECTORIES + \ ON + \ SYSTEM + +syn keyword cmakeKWinclude_external_msproject contained + \ GUID + \ MAP_IMPORTED_CONFIG_ + \ PLATFORM + \ TYPE + \ WIX + +syn keyword cmakeKWinclude_guard contained + \ DIRECTORY + \ GLOBAL + \ TRUE + \ __CURRENT_FILE_VAR__ + +syn keyword cmakeKWinstall contained + \ AFTER + \ AIX + \ ALL_COMPONENTS + \ APT + \ ARCHIVE + \ BEFORE + \ BUILD_TYPE + \ BUNDLE + \ BUNDLE_EXECUTABLE + \ CMAKE_INSTALL_BINDIR + \ CMAKE_INSTALL_DATADIR + \ CMAKE_INSTALL_DATAROOTDIR + \ CMAKE_INSTALL_DOCDIR + \ CMAKE_INSTALL_INCLUDEDIR + \ CMAKE_INSTALL_INFODIR + \ CMAKE_INSTALL_LIBDIR + \ CMAKE_INSTALL_LOCALEDIR + \ CMAKE_INSTALL_LOCALSTATEDIR + \ CMAKE_INSTALL_MANDIR + \ CMAKE_INSTALL_MODE + \ CMAKE_INSTALL_RUNSTATEDIR + \ CMAKE_INSTALL_SBINDIR + \ CMAKE_INSTALL_SHARESTATEDIR + \ CMAKE_INSTALL_SYSCONFDIR + \ CODE + \ COMPONENT + \ CONFIGURATIONS + \ CVS + \ CXX_MODULES_BMI + \ CXX_MODULES_DIRECTORY + \ DATA + \ DATAROOT + \ DBUILD_TYPE + \ DCOMPONENT + \ DESTDIR + \ DESTINATION + \ DIRECTORY + \ DIRECTORY_PERMISSIONS + \ DLL + \ DOC + \ ENABLE_EXPORTS + \ EXCLUDE_FROM_ALL + \ EXECUTABLES + \ EXPORT + \ EXPORT_ANDROID_MK + \ EXPORT_LINK_INTERFACE_LIBRARIES + \ EXPORT_NAME + \ FILES + \ FILES_MATCHING + \ FILE_PERMISSIONS + \ FILE_SET + \ FRAMEWORK + \ GET_RUNTIME_DEPENDENCIES + \ GROUP_EXECUTE + \ GROUP_READ + \ GROUP_WRITE + \ HEADERS + \ IMPORTED_RUNTIME_ARTIFACTS + \ INCLUDES + \ INFO + \ INSTALL_PREFIX + \ INTERFACE + \ INTERFACE_INCLUDE_DIRECTORIES + \ LIBRARY + \ LOCALE + \ LOCALSTATE + \ MACOSX_BUNDLE + \ MAN + \ MESSAGE_NEVER + \ NAMELINK_COMPONENT + \ NAMELINK_ONLY + \ NAMELINK_SKIP + \ NAMESPACE + \ NDK + \ OBJECTS + \ OPTIONAL + \ OWNER_EXECUTE + \ OWNER_READ + \ OWNER_WRITE + \ PATTERN + \ PERMISSIONS + \ POST_EXCLUDE_FILES + \ POST_EXCLUDE_REGEXES + \ POST_INCLUDE_FILES + \ POST_INCLUDE_REGEXES + \ POST_INSTALL_SCRIPT + \ PRE_EXCLUDE_REGEXES + \ PRE_INCLUDE_REGEXES + \ PRE_INSTALL_SCRIPT + \ PRIVATE_HEADER + \ PROGRAMS + \ PROPERTIES + \ PUBLIC_HEADER + \ RENAME + \ RESOURCE + \ RPM + \ RUNSTATE + \ RUNTIME_DEPENDENCIES + \ RUNTIME_DEPENDENCY_SET + \ SBIN + \ SCRIPT + \ SETGID + \ SETUID + \ SHAREDSTATE + \ SOVERSION + \ STATIC + \ SYSCONF + \ TARGETS + \ TRUE + \ TYPE + \ USE_SOURCE_PERMISSIONS + \ VERSION + \ WORLD_EXECUTE + \ WORLD_READ + \ WORLD_WRITE + +syn keyword cmakeKWinstall_files contained + \ FILES + \ GLOB + +syn keyword cmakeKWinstall_programs contained + \ FILES + \ GLOB + \ PROGRAMS + \ TARGETS + +syn keyword cmakeKWinstall_targets contained + \ DLL + \ RUNTIME_DIRECTORY + +syn keyword cmakeKWlink_directories contained + \ AFTER + \ BEFORE + \ LINK_DIRECTORIES + \ ON + \ ORIGIN + \ RPATH + +syn keyword cmakeKWlist contained + \ ACTION + \ APPEND + \ ASCENDING + \ CASE + \ COMPARE + \ DESCENDING + \ EXCLUDE + \ FILE_BASENAME + \ FILTER + \ FIND + \ GENEX_STRIP + \ GET + \ INCLUDE + \ INSENSITIVE + \ INSERT + \ INTERNAL + \ JOIN + \ LENGTH + \ NATURAL + \ ORDER + \ OUTPUT_VARIABLE + \ PARENT_SCOPE + \ POP_BACK + \ POP_FRONT + \ PREPEND + \ REGEX + \ REMOVE_AT + \ REMOVE_DUPLICATES + \ REMOVE_ITEM + \ REPLACE + \ REVERSE + \ SELECTOR + \ SENSITIVE + \ SORT + \ STRING + \ STRIP + \ SUBLIST + \ TOLOWER + \ TOUPPER + \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_GENEX_STRIP + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER + +syn keyword cmakeKWload_cache contained + \ EXCLUDE + \ INCLUDE_INTERNALS + \ READ_WITH_PREFIX + +syn keyword cmakeKWload_command contained + \ CMAKE_LOADED_COMMAND_ + \ COMMAND_NAME + +syn keyword cmakeKWmacro contained + \ ARGC + \ ARGN + \ ARGV + \ CALL + \ DEFINED + \ FOO + \ GREATER + \ LISTS + \ NOT + +syn keyword cmakeKWmark_as_advanced contained + \ CLEAR + \ FORCE + +syn keyword cmakeKWmath contained + \ EXPR + \ HEXADECIMAL + \ OUTPUT_FORMAT + +syn keyword cmakeKWmessage contained + \ APPEND + \ AUTHOR_WARNING + \ CHECK_ + \ CHECK_FAIL + \ CHECK_PASS + \ CHECK_START + \ CONFIGURE_LOG + \ DEBUG + \ DEFINED + \ DEPRECATION + \ FATAL_ERROR + \ GET_MESSAGE_LOG_LEVEL + \ GUI + \ INTERNAL + \ MY_CHECK_RESULT + \ NOTICE + \ POP_BACK + \ SEND_ERROR + \ STATUS + \ TRACE + \ VERBOSE + \ WARNING + +syn keyword cmakeKWoption contained + \ OFF + +syn keyword cmakeKWproject contained + \ ASM + \ ASM_MARMASM + \ ASM_MASM + \ ASM_NASM + \ ATT + \ CMAKE_PROJECT_ + \ CUDA + \ DESCRIPTION + \ HIP + \ HOMEPAGE_URL + \ ISPC + \ LANGUAGES + \ NAME + \ NONE + \ OBJC + \ OBJCXX + \ PROJECT + \ VERSION + \ _BINARY_DIR + \ _DESCRIPTION + \ _HOMEPAGE_URL + \ _INCLUDE_BEFORE + \ _IS_TOP_LEVEL + \ _SOURCE_DIR + \ _VERSION + \ _VERSION_MAJOR + \ _VERSION_MINOR + \ _VERSION_PATCH + \ _VERSION_TWEAK + +syn keyword cmakeKWqt_wrap_cpp contained + \ AUTOMOC + +syn keyword cmakeKWqt_wrap_ui contained + \ AUTOUIC + +syn keyword cmakeKWremove contained + \ VALUE + \ VAR + +syn keyword cmakeKWreturn contained + \ DEFER + \ PARENT_SCOPE + \ PROPAGATE + \ SCOPE_FOR + \ VARIABLES + \ VERSION + +syn keyword cmakeKWseparate_arguments contained + \ MSDN + \ NATIVE_COMMAND + \ PROGRAM + \ SEPARATE_ARGS + \ UNIX_COMMAND + \ WINDOWS_COMMAND + +syn keyword cmakeKWset contained + \ BOOL + \ FILEPATH + \ FORCE + \ INTERNAL + \ OFF + \ OLD + \ ON + \ PARENT_SCOPE + \ PROPAGATE + \ STRING + \ STRINGS + \ VAR + +syn keyword cmakeKWset_directory_properties contained + \ DIRECTORY + \ PROPERTIES + +syn keyword cmakeKWset_property contained + \ APPEND + \ APPEND_STRING + \ DIRECTORY + \ GENERATED + \ GLOBAL + \ INHERITED + \ INSTALL + \ NAME + \ PROPERTY + \ SOURCE + \ TARGET + \ TARGET_DIRECTORY + \ TEST + \ WIX + +syn keyword cmakeKWset_source_files_properties contained + \ DIRECTORY + \ GENERATED + \ PROPERTIES + \ SOURCE + \ TARGET_DIRECTORY + +syn keyword cmakeKWset_target_properties contained + \ PROPERTIES + +syn keyword cmakeKWset_tests_properties contained + \ NAME + \ PROPERTIES + +syn keyword cmakeKWsite_name contained + \ HOSTNAME + +syn keyword cmakeKWsource_group contained + \ FILES + \ PREFIX + \ REGULAR_EXPRESSION + \ TREE + +syn keyword cmakeKWstring contained + \ ALPHABET + \ APPEND + \ ARRAY + \ ASCII + \ BOOLEAN + \ CMAKE_MATCH_ + \ COMPARE + \ CONCAT + \ CONFIGURE + \ EQUAL + \ ERROR_VARIABLE + \ ESCAPE_QUOTES + \ FIND + \ GENEX_STRIP + \ GET + \ GREATER + \ GREATER_EQUAL + \ GUID + \ HASH + \ HEX + \ ISO + \ JOIN + \ JSON + \ LENGTH + \ LESS + \ LESS_EQUAL + \ MAKE_C_IDENTIFIER + \ MATCH + \ MATCHALL + \ MATCHES + \ MEMBER + \ NAMESPACE + \ NOTEQUAL + \ NULL + \ NUMBER + \ OBJECT + \ OFF + \ ONLY + \ PREPEND + \ RANDOM + \ RANDOM_SEED + \ REGEX + \ REMOVE + \ REPEAT + \ REPLACE + \ REVERSE + \ RFC + \ SET + \ SHA + \ SOURCE_DATE_EPOCH + \ STRIP + \ SUBSTRING + \ SZ + \ TIMESTAMP + \ TOLOWER + \ TOUPPER + \ TYPE + \ US + \ UTC + \ UUID + +syn keyword cmakeKWsubdirs contained + \ EXCLUDE_FROM_ALL + \ PREORDER + +syn keyword cmakeKWtarget_compile_definitions contained + \ ALIAS + \ COMPILE_DEFINITIONS + \ FOO + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_DEFINITIONS + \ PRIVATE + \ PUBLIC + +syn keyword cmakeKWtarget_compile_features contained + \ ALIAS + \ COMPILE_FEATURES + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_FEATURES + \ PRIVATE + \ PUBLIC + +syn keyword cmakeKWtarget_compile_options contained + \ ALIAS + \ BEFORE + \ CMAKE_ + \ COMPILE_LANGUAGE + \ COMPILE_OPTIONS + \ CONFIG + \ IMPORTED + \ INTERFACE + \ INTERFACE_COMPILE_OPTIONS + \ PRIVATE + \ PUBLIC + \ SHELL + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + +syn keyword cmakeKWtarget_include_directories contained + \ AFTER + \ ALIAS + \ BEFORE + \ BUILD_INTERFACE + \ IMPORTED + \ INCLUDE_DIRECTORIES + \ INSTALL_INTERFACE + \ INTERFACE + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES + \ PRIVATE + \ PUBLIC + \ SYSTEM + +syn keyword cmakeKWtarget_link_directories contained + \ ALIAS + \ BEFORE + \ IMPORTED + \ INTERFACE + \ INTERFACE_LINK_DIRECTORIES + \ LINK_DIRECTORIES + \ ORIGIN + \ PRIVATE + \ PUBLIC + \ RPATH + +syn keyword cmakeKWtarget_link_libraries contained + \ ALIAS + \ DA + \ DAG + \ DEBUG_CONFIGURATIONS + \ DOBJ + \ IMPORTED + \ IMPORTED_NO_SONAME + \ INTERFACE + \ INTERFACE_LINK_LIBRARIES + \ LINK_FLAGS + \ LINK_INTERFACE_LIBRARIES + \ LINK_INTERFACE_LIBRARIES_DEBUG + \ LINK_INTERFACE_MULTIPLICITY + \ LINK_OPTIONS + \ LINK_PRIVATE + \ LINK_PUBLIC + \ OBJECT + \ OLD + \ PRIVATE + \ PUBLIC + \ SHARED + \ STATIC + \ TARGET_OBJECTS + +syn keyword cmakeKWtarget_link_options contained + \ ALIAS + \ BEFORE + \ CMAKE_ + \ CONFIG + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ DEVICE_LINK + \ GCC + \ HOST_LINK + \ IMPORTED + \ INTERFACE + \ INTERFACE_LINK_OPTIONS + \ LANG + \ LINKER + \ LINK_OPTIONS + \ PRIVATE + \ PUBLIC + \ SHELL + \ STATIC_LIBRARY_OPTIONS + \ UNIX_COMMAND + \ _FLAGS + \ _FLAGS_ + \ _LINKER_WRAPPER_FLAG + \ _LINKER_WRAPPER_FLAG_SEP + +syn keyword cmakeKWtarget_precompile_headers contained + \ ALIAS + \ ANGLE + \ BUILD_INTERFACE + \ COMPILE_LANGUAGE + \ DISABLE_PRECOMPILE_HEADERS + \ EXPORT + \ FI + \ GCC + \ IMPORTED + \ INTERFACE + \ INTERFACE_PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS + \ PRECOMPILE_HEADERS_REUSE_FROM + \ PRIVATE + \ PUBLIC + \ REUSE_FROM + \ SKIP_PRECOMPILE_HEADERS + +syn keyword cmakeKWtarget_sources contained + \ ALIAS + \ BASE_DIRS + \ BUILD_INTERFACE + \ CONFIG + \ CORRECT + \ CXX_MODULES + \ CXX_MODULE_DIRS + \ CXX_MODULE_DIRS_ + \ CXX_MODULE_SETS + \ CXX_MODULE_SET_ + \ EXPORT + \ FILES + \ FILE_SET + \ FRAMEWORK + \ HEADERS + \ HEADER_DIRS + \ HEADER_DIRS_ + \ HEADER_FILE_ONLY + \ HEADER_SETS + \ HEADER_SET_ + \ IMPORTED + \ INCLUDE_DIRECTORIES + \ INTERFACE + \ INTERFACE_CXX_MODULE_SETS + \ INTERFACE_HEADER_SETS + \ INTERFACE_INCLUDE_DIRECTORIES + \ INTERFACE_SOURCES + \ NAME + \ PRIVATE + \ PUBLIC + \ SOURCES + \ SOURCE_DIR + \ TARGETS + \ TRUE + \ TYPE + \ WRONG + +syn keyword cmakeKWtry_compile contained + \ ALL_BUILD + \ BINARY_DIR + \ CMAKE_FLAGS + \ COMPILE_DEFINITIONS + \ COPY_FILE + \ COPY_FILE_ERROR + \ CUDA_EXTENSIONS + \ CUDA_STANDARD + \ CUDA_STANDARD_REQUIRED + \ CXX_EXTENSIONS + \ CXX_STANDARD + \ CXX_STANDARD_REQUIRED + \ C_EXTENSIONS + \ C_STANDARD + \ C_STANDARD_REQUIRED + \ DEFINED + \ DLINK_LIBRARIES + \ DVAR + \ EXECUTABLE + \ FALSE + \ GHS + \ HIP_EXTENSIONS + \ HIP_STANDARD + \ HIP_STANDARD_REQUIRED + \ INCLUDE_DIRECTORIES + \ LANG + \ LINK_DIRECTORIES + \ LINK_LIBRARIES + \ LINK_OPTIONS + \ LOG_DESCRIPTION + \ MULTI + \ NOT + \ NO_CACHE + \ NO_LOG + \ OBJCXX_EXTENSIONS + \ OBJCXX_STANDARD + \ OBJCXX_STANDARD_REQUIRED + \ OBJC_EXTENSIONS + \ OBJC_STANDARD + \ OBJC_STANDARD_REQUIRED + \ OUTPUT_VARIABLE + \ PRIVATE + \ PROJECT + \ RESULTVAR + \ SOURCES + \ SOURCE_DIR + \ SOURCE_FROM_CONTENT + \ SOURCE_FROM_FILE + \ SOURCE_FROM_VAR + \ STATIC_LIBRARY + \ STATIC_LIBRARY_OPTIONS + \ TARGET + \ TRUE + \ TYPE + \ VALUE + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED + +syn keyword cmakeKWtry_run contained + \ ARGS + \ CMAKE_FLAGS + \ COMPILE_DEFINITIONS + \ COMPILE_OUTPUT_VARIABLE + \ COPY_FILE + \ COPY_FILE_ERROR + \ FAILED_TO_RUN + \ FALSE + \ LANG + \ LINK_LIBRARIES + \ LINK_OPTIONS + \ LOG_DESCRIPTION + \ NO_CACHE + \ NO_LOG + \ RUN_OUTPUT_STDERR_VARIABLE + \ RUN_OUTPUT_STDOUT_VARIABLE + \ RUN_OUTPUT_VARIABLE + \ SOURCES + \ SOURCE_FROM_CONTENT + \ SOURCE_FROM_FILE + \ SOURCE_FROM_VAR + \ TRUE + \ WORKING_DIRECTORY + \ _EXTENSIONS + \ _STANDARD + \ _STANDARD_REQUIRED + \ __TRYRUN_OUTPUT + +syn keyword cmakeKWunset contained + \ PARENT_SCOPE + \ VAR + +syn keyword cmakeKWuse_mangled_mesa contained + \ GL + \ OUTPUT_DIRECTORY + \ PATH_TO_MESA + +syn keyword cmakeKWvariable_requires contained + \ RESULT_VARIABLE + \ TEST_VARIABLE + +syn keyword cmakeKWvariable_watch contained + \ APPEND + \ COMMAND + \ DEFINED + \ MODIFIED_ACCESS + \ READ_ACCESS + \ REMOVED_ACCESS + \ UNKNOWN_MODIFIED_ACCESS + \ UNKNOWN_READ_ACCESS + +syn keyword cmakeKWwrite_file contained + \ APPEND + \ CONFIGURE_FILE + \ NOTE + \ WRITE + + +syn keyword cmakeGeneratorExpressions contained + \ ABSOLUTE_PATH + \ ACTION + \ AIX + \ ANGLE + \ APPEND + \ ARCHIVE_OUTPUT_NAME + \ ARCHIVE_OUTPUT_NAME_ + \ ASCENDING + \ BAR + \ BOOL + \ BUILD_INTERFACE + \ BUILD_LOCAL_INTERFACE + \ CMAKE_LINK_GROUP_USING_ + \ CMAKE_LINK_LIBRARY_USING_ + \ CMAKE_PATH + \ CODE + \ COMMAND_CONFIG + \ COMMAND_EXPAND_LISTS + \ COMPARE + \ COMPILE_DEFINITIONS + \ COMPILE_FEATURES + \ COMPILE_LANGUAGE + \ COMPILE_LANG_AND_ID + \ COMPILE_ONLY + \ COMPILING_CUDA + \ COMPILING_CXX + \ COMPILING_CXX_WITH_CLANG + \ COMPILING_CXX_WITH_INTEL + \ COMPILING_C_WITH_CLANG + \ CONFIG + \ CONFIGURATION + \ CONTENT + \ CUDA_COMPILER_ID + \ CUDA_COMPILER_VERSION + \ CUDA_RESOLVE_DEVICE_SYMBOLS + \ CUDA_SEPARABLE_COMPILATION + \ CUSTOM_KEYS + \ CXX_COMPILER_ID + \ CXX_COMPILER_VERSION + \ CXX_CONFIG + \ CXX_STANDARD + \ C_COMPILER_ID + \ C_COMPILER_VERSION + \ C_STANDARD + \ DEBUG_MODE + \ DEBUG_POSTFIX + \ DENABLE_SOME_FEATURE + \ DESCENDING + \ DEVICE_LINK + \ DLL + \ ENABLE_EXPORTS + \ EXCLUDE + \ EXPORT + \ EXTENSION_DEF + \ FALSE + \ FILENAME_DEF + \ FILE_BASENAME + \ FILTER + \ FIND + \ FOO_EXTRA_THINGS + \ GENERATE + \ GENEX_EVAL + \ GET_EXTENSION + \ GET_FILENAME + \ GET_PARENT_PATH + \ GET_RELATIVE_PART + \ GET_ROOT_DIRECTORY + \ GET_ROOT_NAME + \ GET_ROOT_PATH + \ GET_STEM + \ HAS_ + \ HAS_EXTENSION + \ HAS_FILENAME + \ HAS_PARENT_PATH + \ HAS_RELATIVE_PART + \ HAS_ROOT_DIRECTORY + \ HAS_ROOT_NAME + \ HAS_ROOT_PATH + \ HAS_STEM + \ HAVE_SOME_FEATURE + \ HIP_COMPILER_ID + \ HIP_COMPILER_VERSION + \ HIP_STANDARD + \ HOST_LINK + \ IF + \ IGNORE + \ IMPORTED_LOCATION + \ IMPORT_PREFIX + \ IMPORT_SUFFIX + \ INCLUDE_DIRECTORIES + \ INSENSITIVE + \ INSERT + \ INSTALL_INTERFACE + \ INSTALL_NAME_DIR + \ INSTALL_PREFIX + \ INSTALL_RPATH + \ INTERFACE_LINK_LIBRARIES + \ INTERFACE_LINK_LIBRARIES_DIRECT + \ IN_LIST + \ ISPC_COMPILER_ID + \ ISPC_COMPILER_VERSION + \ IS_ABSOLUTE + \ IS_PREFIX + \ IS_RELATIVE + \ JOIN + \ LANG + \ LANG_COMPILER_ID + \ LAST_ONLY + \ LENGTH + \ LIBRARY_OUTPUT_NAME + \ LIBRARY_OUTPUT_NAME_ + \ LINK_GROUP + \ LINK_GROUP_PREDEFINED_FEATURES + \ LINK_LANGUAGE + \ LINK_LANG_AND_ID + \ LINK_LIBRARIES + \ LINK_LIBRARY + \ LINK_LIBRARY_OVERRIDE + \ LINK_LIBRARY_OVERRIDE_ + \ LINK_LIBRARY_PREDEFINED_FEATURES + \ LINK_ONLY + \ LOWER_CASE + \ MAKE_C_IDENTIFIER + \ MAP_IMPORTED_CONFIG_ + \ MODULE + \ NATURAL + \ NO + \ NORMALIZE + \ NORMAL_PATH + \ NOT + \ OBJCXX_COMPILER_ID + \ OBJCXX_COMPILER_VERSION + \ OBJC_COMPILER_ID + \ OBJC_COMPILER_VERSION + \ OBJECT + \ OFF + \ OLD_COMPILER + \ ORDER + \ OUTPUT + \ OUTPUT_CONFIG + \ OUTPUT_NAME + \ OUTPUT_NAME_ + \ PATH + \ PATH_EQUAL + \ PDB_NAME + \ PDB_NAME_ + \ PDB_OUTPUT_DIRECTORY + \ PDB_OUTPUT_DIRECTORY_ + \ PLATFORM_ID + \ POP_BACK + \ POP_FRONT + \ POSIX + \ POST_BUILD + \ PREPEND + \ PRIVATE + \ PUBLIC + \ REGEX + \ RELATIVE_PATH + \ REMOVE_AT + \ REMOVE_DUPLICATES + \ REMOVE_EXTENSION + \ REMOVE_FILENAME + \ REMOVE_ITEM + \ REPLACE + \ REPLACE_EXTENSION + \ REPLACE_FILENAME + \ REQUIRED + \ RESCAN + \ REVERSE + \ RPATH + \ RUNTIME_DEPENDENCY_SET + \ RUNTIME_OUTPUT_NAME + \ RUNTIME_OUTPUT_NAME_ + \ SCRIPT + \ SDK + \ SELECTOR + \ SEMICOLON + \ SENSITIVE + \ SHARED + \ SHELL_PATH + \ SORT + \ STATIC + \ STREQUAL + \ STRING + \ STRIP + \ SUBLIST + \ TARGET_BUNDLE_CONTENT_DIR + \ TARGET_BUNDLE_DIR + \ TARGET_BUNDLE_DIR_NAME + \ TARGET_EXISTS + \ TARGET_FILE + \ TARGET_FILE_BASE_NAME + \ TARGET_FILE_DIR + \ TARGET_FILE_NAME + \ TARGET_FILE_PREFIX + \ TARGET_FILE_SUFFIX + \ TARGET_GENEX_EVAL + \ TARGET_IMPORT_FILE + \ TARGET_IMPORT_FILE_BASE_NAME + \ TARGET_IMPORT_FILE_DIR + \ TARGET_IMPORT_FILE_NAME + \ TARGET_IMPORT_FILE_PREFIX + \ TARGET_IMPORT_FILE_SUFFIX + \ TARGET_LINKER_FILE + \ TARGET_LINKER_FILE_BASE_NAME + \ TARGET_LINKER_FILE_DIR + \ TARGET_LINKER_FILE_NAME + \ TARGET_LINKER_FILE_PREFIX + \ TARGET_LINKER_FILE_SUFFIX + \ TARGET_LINKER_IMPORT_FILE + \ TARGET_LINKER_IMPORT_FILE_BASE_NAME + \ TARGET_LINKER_IMPORT_FILE_DIR + \ TARGET_LINKER_IMPORT_FILE_NAME + \ TARGET_LINKER_IMPORT_FILE_PREFIX + \ TARGET_LINKER_IMPORT_FILE_SUFFIX + \ TARGET_LINKER_LIBRARY_FILE + \ TARGET_LINKER_LIBRARY_FILE_BASE_NAME + \ TARGET_LINKER_LIBRARY_FILE_DIR + \ TARGET_LINKER_LIBRARY_FILE_NAME + \ TARGET_LINKER_LIBRARY_FILE_PREFIX + \ TARGET_LINKER_LIBRARY_FILE_SUFFIX + \ TARGET_NAME_IF_EXISTS + \ TARGET_OBJECTS + \ TARGET_PDB_FILE + \ TARGET_PDB_FILE_BASE_NAME + \ TARGET_PDB_FILE_DIR + \ TARGET_PDB_FILE_NAME + \ TARGET_POLICY + \ TARGET_PROPERTY + \ TARGET_RUNTIME_DLLS + \ TARGET_RUNTIME_DLL_DIRS + \ TARGET_SONAME_FILE + \ TARGET_SONAME_FILE_DIR + \ TARGET_SONAME_FILE_NAME + \ TARGET_SONAME_IMPORT_FILE + \ TARGET_SONAME_IMPORT_FILE_DIR + \ TARGET_SONAME_IMPORT_FILE_NAME + \ TOLOWER + \ TOUPPER + \ TRANSFORM + \ TRANSFORM_APPEND + \ TRANSFORM_REPLACE + \ TRANSFORM_STRIP + \ TRANSFORM_TOLOWER + \ UNKNOWN + \ UPPER_CASE + \ VERBATIM + \ VERSION_EQUAL + \ VERSION_GREATER_EQUAL + \ VERSION_LESS + \ VERSION_LESS_EQUAL + \ WHOLE_ARCHIVE + \ WRONG + \ _LINK_GROUP_USING_ + \ _LINK_LIBRARY_USING_ + \ _POSTFIX + \ _SUPPORTED + +syn case ignore + +syn keyword cmakeCommand + \ add_compile_definitions + \ add_compile_options + \ add_custom_command + \ add_custom_target + \ add_definitions + \ add_dependencies + \ add_executable + \ add_library + \ add_link_options + \ add_subdirectory + \ add_test + \ aux_source_directory + \ block + \ break + \ build_command + \ cmake_file_api + \ cmake_host_system_information + \ cmake_language + \ cmake_minimum_required + \ cmake_parse_arguments + \ cmake_path + \ cmake_policy + \ configure_file + \ continue + \ create_test_sourcelist + \ ctest_build + \ ctest_configure + \ ctest_coverage + \ ctest_empty_binary_directory + \ ctest_memcheck + \ ctest_read_custom_files + \ ctest_run_script + \ ctest_sleep + \ ctest_start + \ ctest_submit + \ ctest_test + \ ctest_update + \ ctest_upload + \ define_property + \ enable_language + \ enable_testing + \ endblock + \ endfunction + \ endmacro + \ execute_process + \ export + \ file + \ find_file + \ find_library + \ find_package + \ find_path + \ find_program + \ fltk_wrap_ui + \ function + \ get_cmake_property + \ get_directory_property + \ get_filename_component + \ get_property + \ get_source_file_property + \ get_target_property + \ get_test_property + \ include + \ include_directories + \ include_external_msproject + \ include_guard + \ include_regular_expression + \ install + \ link_directories + \ list + \ load_cache + \ load_command + \ macro + \ mark_as_advanced + \ math + \ message + \ option + \ project + \ qt_wrap_cpp + \ qt_wrap_ui + \ remove_definitions + \ return + \ separate_arguments + \ set + \ set_directory_properties + \ set_property + \ set_source_files_properties + \ set_target_properties + \ set_tests_properties + \ site_name + \ source_group + \ string + \ target_compile_definitions + \ target_compile_features + \ target_compile_options + \ target_include_directories + \ target_link_directories + \ target_link_libraries + \ target_link_options + \ target_precompile_headers + \ target_sources + \ try_compile + \ try_run + \ unset + \ variable_watch + \ nextgroup=cmakeArguments + +syn keyword cmakeCommandConditional + \ else + \ elseif + \ endif + \ if + \ nextgroup=cmakeArguments + +syn keyword cmakeCommandRepeat + \ endforeach + \ endwhile + \ foreach + \ while + \ nextgroup=cmakeArguments + +syn keyword cmakeCommandDeprecated + \ build_name + \ exec_program + \ export_library_dependencies + \ install_files + \ install_programs + \ install_targets + \ link_libraries + \ make_directory + \ output_required_files + \ remove + \ subdir_depends + \ subdirs + \ use_mangled_mesa + \ utility_source + \ variable_requires + \ write_file + \ nextgroup=cmakeArguments + +syn case match + +syn keyword cmakeTodo + \ TODO FIXME XXX + \ contained + +hi def link cmakeBracketArgument String +hi def link cmakeBracketComment Comment +hi def link cmakeCommand Function +hi def link cmakeCommandConditional Conditional +hi def link cmakeCommandDeprecated WarningMsg +hi def link cmakeCommandRepeat Repeat +hi def link cmakeComment Comment +hi def link cmakeEnvironment Special +hi def link cmakeEscaped Special +hi def link cmakeGeneratorExpression WarningMsg +hi def link cmakeGeneratorExpressions Constant +hi def link cmakeModule Include +hi def link cmakeProperty Constant +hi def link cmakeRegistry Underlined +hi def link cmakeString String +hi def link cmakeTodo TODO +hi def link cmakeVariableValue Type +hi def link cmakeVariable Identifier + +hi def link cmakeKWExternalProject ModeMsg +hi def link cmakeKWFetchContent ModeMsg +hi def link cmakeKWadd_compile_definitions ModeMsg +hi def link cmakeKWadd_compile_options ModeMsg +hi def link cmakeKWadd_custom_command ModeMsg +hi def link cmakeKWadd_custom_target ModeMsg +hi def link cmakeKWadd_definitions ModeMsg +hi def link cmakeKWadd_dependencies ModeMsg +hi def link cmakeKWadd_executable ModeMsg +hi def link cmakeKWadd_library ModeMsg +hi def link cmakeKWadd_link_options ModeMsg +hi def link cmakeKWadd_subdirectory ModeMsg +hi def link cmakeKWadd_test ModeMsg +hi def link cmakeKWblock ModeMsg +hi def link cmakeKWbuild_command ModeMsg +hi def link cmakeKWcmake_file_api ModeMsg +hi def link cmakeKWcmake_host_system_information ModeMsg +hi def link cmakeKWcmake_language ModeMsg +hi def link cmakeKWcmake_minimum_required ModeMsg +hi def link cmakeKWcmake_parse_arguments ModeMsg +hi def link cmakeKWcmake_path ModeMsg +hi def link cmakeKWcmake_policy ModeMsg +hi def link cmakeKWconfigure_file ModeMsg +hi def link cmakeKWcreate_test_sourcelist ModeMsg +hi def link cmakeKWctest_build ModeMsg +hi def link cmakeKWctest_configure ModeMsg +hi def link cmakeKWctest_coverage ModeMsg +hi def link cmakeKWctest_memcheck ModeMsg +hi def link cmakeKWctest_run_script ModeMsg +hi def link cmakeKWctest_start ModeMsg +hi def link cmakeKWctest_submit ModeMsg +hi def link cmakeKWctest_test ModeMsg +hi def link cmakeKWctest_update ModeMsg +hi def link cmakeKWctest_upload ModeMsg +hi def link cmakeKWdefine_property ModeMsg +hi def link cmakeKWdoxygen_add_docs ModeMsg +hi def link cmakeKWenable_language ModeMsg +hi def link cmakeKWenable_testing ModeMsg +hi def link cmakeKWexec_program ModeMsg +hi def link cmakeKWexecute_process ModeMsg +hi def link cmakeKWexport ModeMsg +hi def link cmakeKWexport_library_dependencies ModeMsg +hi def link cmakeKWfile ModeMsg +hi def link cmakeKWfind_file ModeMsg +hi def link cmakeKWfind_library ModeMsg +hi def link cmakeKWfind_package ModeMsg +hi def link cmakeKWfind_path ModeMsg +hi def link cmakeKWfind_program ModeMsg +hi def link cmakeKWfltk_wrap_ui ModeMsg +hi def link cmakeKWforeach ModeMsg +hi def link cmakeKWfunction ModeMsg +hi def link cmakeKWget_cmake_property ModeMsg +hi def link cmakeKWget_directory_property ModeMsg +hi def link cmakeKWget_filename_component ModeMsg +hi def link cmakeKWget_property ModeMsg +hi def link cmakeKWget_source_file_property ModeMsg +hi def link cmakeKWget_target_property ModeMsg +hi def link cmakeKWget_test_property ModeMsg +hi def link cmakeKWif ModeMsg +hi def link cmakeKWinclude ModeMsg +hi def link cmakeKWinclude_directories ModeMsg +hi def link cmakeKWinclude_external_msproject ModeMsg +hi def link cmakeKWinclude_guard ModeMsg +hi def link cmakeKWinstall ModeMsg +hi def link cmakeKWinstall_files ModeMsg +hi def link cmakeKWinstall_programs ModeMsg +hi def link cmakeKWinstall_targets ModeMsg +hi def link cmakeKWlink_directories ModeMsg +hi def link cmakeKWlist ModeMsg +hi def link cmakeKWload_cache ModeMsg +hi def link cmakeKWload_command ModeMsg +hi def link cmakeKWmacro ModeMsg +hi def link cmakeKWmark_as_advanced ModeMsg +hi def link cmakeKWmath ModeMsg +hi def link cmakeKWmessage ModeMsg +hi def link cmakeKWoption ModeMsg +hi def link cmakeKWproject ModeMsg +hi def link cmakeKWqt_wrap_cpp ModeMsg +hi def link cmakeKWqt_wrap_ui ModeMsg +hi def link cmakeKWremove ModeMsg +hi def link cmakeKWreturn ModeMsg +hi def link cmakeKWseparate_arguments ModeMsg +hi def link cmakeKWset ModeMsg +hi def link cmakeKWset_directory_properties ModeMsg +hi def link cmakeKWset_property ModeMsg +hi def link cmakeKWset_source_files_properties ModeMsg +hi def link cmakeKWset_target_properties ModeMsg +hi def link cmakeKWset_tests_properties ModeMsg +hi def link cmakeKWsite_name ModeMsg +hi def link cmakeKWsource_group ModeMsg +hi def link cmakeKWstring ModeMsg +hi def link cmakeKWsubdirs ModeMsg +hi def link cmakeKWtarget_compile_definitions ModeMsg +hi def link cmakeKWtarget_compile_features ModeMsg +hi def link cmakeKWtarget_compile_options ModeMsg +hi def link cmakeKWtarget_include_directories ModeMsg +hi def link cmakeKWtarget_link_directories ModeMsg +hi def link cmakeKWtarget_link_libraries ModeMsg +hi def link cmakeKWtarget_link_options ModeMsg +hi def link cmakeKWtarget_precompile_headers ModeMsg +hi def link cmakeKWtarget_sources ModeMsg +hi def link cmakeKWtry_compile ModeMsg +hi def link cmakeKWtry_run ModeMsg +hi def link cmakeKWunset ModeMsg +hi def link cmakeKWuse_mangled_mesa ModeMsg +hi def link cmakeKWvariable_requires ModeMsg +hi def link cmakeKWvariable_watch ModeMsg +hi def link cmakeKWwrite_file ModeMsg + +" Manually added - difficult to parse out of documentation +syn case ignore + +syn keyword cmakeCommandManuallyAdded + \ configure_package_config_file write_basic_package_version_file + \ nextgroup=cmakeArguments + +syn case match + +syn keyword cmakeKWconfigure_package_config_file contained + \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX + +syn keyword cmakeKWconfigure_package_config_file_constants contained + \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion + +syn keyword cmakeKWwrite_basic_package_version_file contained + \ VERSION COMPATIBILITY + +hi def link cmakeCommandManuallyAdded Function + +hi def link cmakeKWconfigure_package_config_file ModeMsg +hi def link cmakeKWwrite_basic_package_version_file ModeMsg +hi def link cmakeKWconfigure_package_config_file_constants Constant + +let b:current_syntax = "cmake" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: set nowrap: diff --git a/runtime/syntax/cmod.vim b/runtime/syntax/cmod.vim new file mode 100644 index 0000000..ea37682 --- /dev/null +++ b/runtime/syntax/cmod.vim @@ -0,0 +1,144 @@ +" Vim syntax file +" Language: Cmod +" Current Maintainer: Stephen R. van den Berg +" Last Change: 2018 Jan 23 +" Version: 2.9 +" Remark: Is used to edit Cmod files for Pike development. +" Remark: Includes a highlighter for any embedded Autodoc format. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax + +if !exists("c_autodoc") + " For embedded Autodoc documentation + syn include @cmodAutodoc :p:h/autodoc.vim + unlet b:current_syntax +endif + +" Supports rotating amongst several same-level preprocessor conditionals +packadd! matchit +let b:match_words = "({:}\\@1<=),^\s*#\s*\%(if\%(n\?def\)\|else\|el\%(se\)\?if\|endif\)\>" + +" Cmod extensions +syn keyword cmodStatement __INIT INIT EXIT GC_RECURSE GC_CHECK +syn keyword cmodStatement EXTRA OPTIMIZE RETURN +syn keyword cmodStatement ADD_EFUN ADD_EFUN2 ADD_FUNCTION +syn keyword cmodStatement MK_STRING MK_STRING_SVALUE CONSTANT_STRLEN + +syn keyword cmodStatement SET_SVAL pop_n_elems pop_stack +syn keyword cmodStatement SIMPLE_ARG_TYPE_ERROR Pike_sp Pike_fp MKPCHARP +syn keyword cmodStatement SET_SVAL_TYPE REF_MAKE_CONST_STRING INC_PCHARP +syn keyword cmodStatement PTR_FROM_INT INHERIT_FROM_PTR +syn keyword cmodStatement DECLARE_CYCLIC BEGIN_CYCLIC END_CYCLIC +syn keyword cmodStatement UPDATE_LOCATION UNSAFE_IS_ZERO SAFE_IS_ZERO +syn keyword cmodStatement MKPCHARP_STR APPLY_MASTER current_storage +syn keyword cmodStatement PIKE_MAP_VARIABLE size_shift +syn keyword cmodStatement THREADS_ALLOW THREADS_DISALLOW + +syn keyword cmodStatement add_integer_constant ref_push_object +syn keyword cmodStatement push_string apply_svalue free_svalue +syn keyword cmodStatement get_inherit_storage get_storage +syn keyword cmodStatement make_shared_binary_string push_int64 +syn keyword cmodStatement begin_shared_string end_shared_string +syn keyword cmodStatement add_ref fast_clone_object clone_object +syn keyword cmodStatement push_undefined push_int ref_push_string +syn keyword cmodStatement free_string push_ulongest free_object +syn keyword cmodStatement convert_stack_top_to_bignum push_array +syn keyword cmodStatement push_object reduce_stack_top_bignum +syn keyword cmodStatement push_static_text apply_current +syn keyword cmodStatement assign_svalue free_program destruct_object +syn keyword cmodStatement start_new_program low_inherit stack_swap +syn keyword cmodStatement generic_error_program end_program +syn keyword cmodStatement free_array apply_external copy_mapping +syn keyword cmodStatement push_constant_text ref_push_mapping +syn keyword cmodStatement mapping_insert mapping_string_insert_string +syn keyword cmodStatement f_aggregate_mapping f_aggregate apply +syn keyword cmodStatement push_mapping push_svalue low_mapping_lookup +syn keyword cmodStatement assign_svalues_no_free f_add +syn keyword cmodStatement push_empty_string stack_dup assign_lvalue +syn keyword cmodStatement low_mapping_string_lookup allocate_mapping +syn keyword cmodStatement copy_shared_string make_shared_binary_string0 +syn keyword cmodStatement f_call_function f_index f_utf8_to_string +syn keyword cmodStatement finish_string_builder init_string_builder +syn keyword cmodStatement reset_string_builder free_string_builder +syn keyword cmodStatement string_builder_putchar get_all_args +syn keyword cmodStatement add_shared_strings check_all_args +syn keyword cmodStatement do_inherit add_string_constant +syn keyword cmodStatement add_program_constant set_init_callback +syn keyword cmodStatement simple_mapping_string_lookup +syn keyword cmodStatement f_sprintf push_text string_has_null +syn keyword cmodStatement end_and_resize_shared_string + +syn keyword cmodStatement args sp + +syn keyword cmodStatement free + +syn keyword cmodConstant ID_PROTECTED ID_FINAL PIKE_DEBUG +syn keyword cmodConstant NUMBER_NUMBER +syn keyword cmodConstant PIKE_T_INT PIKE_T_STRING PIKE_T_ARRAY +syn keyword cmodConstant PIKE_T_MULTISET PIKE_T_OBJECT PIKE_T_MAPPING +syn keyword cmodConstant NUMBER_UNDEFINED PIKE_T_PROGRAM PIKE_T_FUNCTION +syn keyword cmodConstant T_OBJECT T_STRING T_ARRAY T_MAPPING + +syn keyword cmodException SET_ONERROR UNSET_ONERROR ONERROR +syn keyword cmodException CALL_AND_UNSET_ONERROR + +syn keyword cmodDebug Pike_fatal Pike_error check_stack + +syn keyword cmodAccess public protected private INHERIT +syn keyword cmodAccess CTYPE CVAR PIKEVAR PIKEFUN + +syn keyword cmodModifier efun export flags optflags optfunc +syn keyword cmodModifier type rawtype errname name c_name prototype +syn keyword cmodModifier program_flags gc_trivial PMOD_EXPORT +syn keyword cmodModifier ATTRIBUTE noclone noinline +syn keyword cmodModifier tOr tFuncV tInt tMix tVoid tStr tMap tPrg +syn keyword cmodModifier tSetvar tArr tMult tMultiset +syn keyword cmodModifier tArray tMapping tString tSetvar tVar + +syn keyword cmodType bool mapping string multiset array mixed +syn keyword cmodType object function program auto svalue +syn keyword cmodType bignum longest zero pike_string +syn keyword cmodType this this_program THIS INT_TYPE INT64 INT32 +syn keyword cmodType p_wchar2 PCHARP p_wchar1 p_wchar0 MP_INT + +syn keyword cmodOperator _destruct create __hash _sizeof _indices _values +syn keyword cmodOperator _is_type _sprintf _equal _m_delete _get_iterator +syn keyword cmodOperator _search _types _serialize _deserialize +syn keyword cmodOperator _size_object _random _sqrt TYPEOF SUBTYPEOF +syn keyword cmodOperator LIKELY UNLIKELY + +syn keyword cmodStructure DECLARATIONS PIKECLASS DECLARE_STORAGE + +if !exists("c_autodoc") + syn match cmodAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cmodAutodoc containedin=cComment,cCommentL + syn cluster cCommentGroup add=cmodAutodocReal + syn cluster cPreProcGroup add=cmodAutodocReal +endif + +" Default highlighting +hi def link cmodAccess Statement +hi def link cmodOperator Operator +hi def link cmodStatement Statement +hi def link cmodConstant Constant +hi def link cmodModifier Type +hi def link cmodType Type +hi def link cmodStorageClass StorageClass +hi def link cmodStructure Structure +hi def link cmodException Exception +hi def link cmodDebug Debug + +let b:current_syntax = "cmod" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/cmusrc.vim b/runtime/syntax/cmusrc.vim new file mode 100644 index 0000000..b821aff --- /dev/null +++ b/runtime/syntax/cmusrc.vim @@ -0,0 +1,309 @@ +" Vim syntax file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-17 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=- + +syn keyword cmusrcTodo contained TODO FIXME XXX NOTE + +syn match cmusrcComment contained display '^\s*#.*$' + +syn match cmusrcBegin display '^' + \ nextgroup=cmusrcKeyword,cmusrcComment + \ skipwhite + +syn keyword cmusrcKeyword contained add + \ nextgroup=cmusrcAddSwitches,cmusrcURI + \ skipwhite + +syn match cmusrcAddSwitches contained display '-[lpqQ]' + \ nextgroup=cmusrcURI + \ skipwhite + +syn match cmusrcURI contained display '.\+' + +syn keyword cmusrcKeyword contained bind + \ nextgroup=cmusrcBindSwitches, + \ cmusrcBindContext + \ skipwhite + +syn match cmusrcBindSwitches contained display '-[f]' + \ nextgroup=cmusrcBindContext + \ skipwhite + +syn keyword cmusrcBindContext contained common library playlist queue + \ browser filters + \ nextgroup=cmusrcBindKey + \ skipwhite + +syn match cmusrcBindKey contained display '\S\+' + \ nextgroup=cmusrcKeyword + \ skipwhite + +syn keyword cmusrcKeyword contained browser-up colorscheme echo factivate + \ filter invert player-next player-pause + \ player-play player-prev player-stop quit + \ refresh run search-next search-prev shuffle + \ unmark win-activate win-add-l win-add-p + \ win-add-Q win-add-q win-bottom win-down + \ win-mv-after win-mv-before win-next + \ win-page-down win-page-up win-remove + \ win-sel-cur win-toggle win-top win-up + \ win-update + +syn keyword cmusrcKeyword contained cd + \ nextgroup=cmusrcDirectory + \ skipwhite + +syn match cmusrcDirectory contained display '.\+' + +syn keyword cmusrcKeyword contained clear + \ nextgroup=cmusrcClearSwitches + +syn match cmusrcClearSwitches contained display '-[lpq]' + +syn keyword cmusrcKeyword contained fset + \ nextgroup=cmusrcFSetName + \ skipwhite + +syn match cmusrcFSetName contained display '[^=]\+' + \ nextgroup=cmusrcFSetEq + +syn match cmusrcFSetEq contained display '=' + \ nextgroup=cmusrcFilterExpr + +syn match cmusrcFilterExpr contained display '.\+' + +syn keyword cmusrcKeyword contained load + \ nextgroup=cmusrcLoadSwitches,cmusrcURI + \ skipwhite + +syn match cmusrcLoadSwitches contained display '-[lp]' + \ nextgroup=cmusrcURI + \ skipwhite + +syn keyword cmusrcKeyword contained mark + \ nextgroup=cmusrcFilterExpr + +syn keyword cmusrcKeyword contained save + \ nextgroup=cmusrcSaveSwitches,cmusrcFile + \ skipwhite + +syn match cmusrcSaveSwitches contained display '-[lp]' + \ nextgroup=cmusrcFile + \ skipwhite + +syn match cmusrcFile contained display '.\+' + +syn keyword cmusrcKeyword contained seek + \ nextgroup=cmusrcSeekOffset + \ skipwhite + +syn match cmusrcSeekOffset contained display + \ '[+-]\=\%(\d\+[mh]\=\|\%(\%(0\=\d\|[1-5]\d\):\)\=\%(0\=\d\|[1-5]\d\):\%(0\=\d\|[1-5]\d\)\)' + +syn keyword cmusrcKeyword contained set + \ nextgroup=cmusrcOption + \ skipwhite + +syn keyword cmusrcOption contained auto_reshuffle confirm_run + \ continue play_library play_sorted repeat + \ show_hidden show_remaining_time shuffle + \ nextgroup=cmusrcSetTest,cmusrcOptEqBoolean + +syn match cmusrcSetTest contained display '?' + +syn match cmusrcOptEqBoolean contained display '=' + \ nextgroup=cmusrcOptBoolean + +syn keyword cmusrcOptBoolean contained true false + +syn keyword cmusrcOption contained aaa_mode + \ nextgroup=cmusrcOptEqAAA + +syn match cmusrcOptEqAAA contained display '=' + \ nextgroup=cmusrcOptAAA + +syn keyword cmusrcOptAAA contained all artist album + +syn keyword cmusrcOption contained buffer_seconds + \ nextgroup=cmusrcOptEqNumber + +syn match cmusrcOptEqNumber contained display '=' + \ nextgroup=cmusrcOptNumber + +syn match cmusrcOptNumber contained display '\d\+' + +syn keyword cmusrcOption contained altformat_current altformat_playlist + \ altformat_title altformat_trackwin + \ format_current format_playlist format_title + \ format_trackwin + \ nextgroup=cmusrcOptEqFormat + +syn match cmusrcOptEqFormat contained display '=' + \ nextgroup=cmusrcOptFormat + +syn match cmusrcOptFormat contained display '.\+' + \ contains=cmusrcFormatSpecial + +syn match cmusrcFormatSpecial contained display '%[0-]*\d*[alDntgydfF=%]' + +syn keyword cmusrcOption contained color_cmdline_bg color_cmdline_fg + \ color_error color_info color_separator + \ color_statusline_bg color_statusline_fg + \ color_titleline_bg color_titleline_fg + \ color_win_bg color_win_cur + \ color_win_cur_sel_bg color_win_cur_sel_fg + \ color_win_dir color_win_fg + \ color_win_inactive_cur_sel_bg + \ color_win_inactive_cur_sel_fg + \ color_win_inactive_sel_bg + \ color_win_inactive_sel_fg + \ color_win_sel_bg color_win_sel_fg + \ color_win_title_bg color_win_title_fg + \ nextgroup=cmusrcOptEqColor + +syn match cmusrcOptEqColor contained display '=' + \ nextgroup=@cmusrcOptColor + +syn cluster cmusrcOptColor contains=cmusrcOptColorName,cmusrcOptColorValue + +syn keyword cmusrcOptColorName contained default black red green yellow blue + \ magenta cyan gray darkgray lightred lightred + \ lightgreen lightyellow lightblue lightmagenta + \ lightcyan white + +syn match cmusrcOptColorValue contained display + \ '-1\|0*\%(\d\|[1-9]\d\|1\d\d\|2\%([0-4]\d\|5[0-5]\)\)' + +syn keyword cmusrcOption contained id3_default_charset output_plugin + \ status_display_program + \ nextgroup=cmusrcOptEqString + +syn match cmusrcOption contained + \ '\%(dsp\|mixer\)\.\%(alsa\|oss\|sun\)\.\%(channel\|device\)' + \ nextgroup=cmusrcOptEqString + +syn match cmusrcOption contained + \ 'dsp\.ao\.\%(buffer_size\|driver\|wav_counter\|wav_dir\)' + \ nextgroup=cmusrcOptEqString + +syn match cmusrcOptEqString contained display '=' + \ nextgroup=cmusrcOptString + +syn match cmusrcOptString contained display '.\+' + +syn keyword cmusrcOption contained lib_sort pl_sort + \ nextgroup=cmusrcOptEqSortKeys + +syn match cmusrcOptEqSortKeys contained display '=' + \ nextgroup=cmusrcOptSortKeys + +syn keyword cmusrcOptSortKeys contained artist album title tracknumber + \ discnumber date genre filename + \ nextgroup=cmusrcOptSortKeys + \ skipwhite + +syn keyword cmusrcKeyword contained showbind + \ nextgroup=cmusrcSBindContext + \ skipwhite + +syn keyword cmusrcSBindContext contained common library playlist queue + \ browser filters + \ nextgroup=cmusrcSBindKey + \ skipwhite + +syn match cmusrcSBindKey contained display '\S\+' + +syn keyword cmusrcKeyword contained toggle + \ nextgroup=cmusrcTogglableOpt + \ skipwhite + +syn keyword cmusrcTogglableOpt contained auto_reshuffle aaa_mode + \ confirm_run continue play_library play_sorted + \ repeat show_hidden show_remaining_time shuffle + +syn keyword cmusrcKeyword contained unbind + \ nextgroup=cmusrcUnbindSwitches, + \ cmusrcSBindContext + \ skipwhite + +syn match cmusrcUnbindSwitches contained display '-[f]' + \ nextgroup=cmusrcSBindContext + \ skipwhite + +syn keyword cmusrcKeyword contained view + \ nextgroup=cmusrcView + \ skipwhite + +syn keyword cmusrcView contained library playlist queue browser filters +syn match cmusrcView contained display '[1-6]' + +syn keyword cmusrcKeyword contained vol + \ nextgroup=cmusrcVolume1 + \ skipwhite + +syn match cmusrcVolume1 contained display '[+-]\=\d\+%' + \ nextgroup=cmusrcVolume2 + \ skipwhite + +syn match cmusrcVolume2 contained display '[+-]\=\d\+%' + +hi def link cmusrcTodo Todo +hi def link cmusrcComment Comment +hi def link cmusrcKeyword Keyword +hi def link cmusrcSwitches Special +hi def link cmusrcAddSwitches cmusrcSwitches +hi def link cmusrcURI Normal +hi def link cmusrcBindSwitches cmusrcSwitches +hi def link cmusrcContext Type +hi def link cmusrcBindContext cmusrcContext +hi def link cmusrcKey String +hi def link cmusrcBindKey cmusrcKey +hi def link cmusrcDirectory Normal +hi def link cmusrcClearSwitches cmusrcSwitches +hi def link cmusrcFSetName PreProc +hi def link cmusrcEq Normal +hi def link cmusrcFSetEq cmusrcEq +hi def link cmusrcFilterExpr Normal +hi def link cmusrcLoadSwitches cmusrcSwitches +hi def link cmusrcSaveSwitches cmusrcSwitches +hi def link cmusrcFile Normal +hi def link cmusrcSeekOffset Number +hi def link cmusrcOption PreProc +hi def link cmusrcSetTest Normal +hi def link cmusrcOptBoolean Boolean +hi def link cmusrcOptEqAAA cmusrcEq +hi def link cmusrcOptAAA Identifier +hi def link cmusrcOptEqNumber cmusrcEq +hi def link cmusrcOptNumber Number +hi def link cmusrcOptEqFormat cmusrcEq +hi def link cmusrcOptFormat String +hi def link cmusrcFormatSpecial SpecialChar +hi def link cmusrcOptEqColor cmusrcEq +hi def link cmusrcOptColor Normal +hi def link cmusrcOptColorName cmusrcOptColor +hi def link cmusrcOptColorValue cmusrcOptColor +hi def link cmusrcOptEqString cmusrcEq +hi def link cmusrcOptString Normal +hi def link cmusrcOptEqSortKeys cmusrcEq +hi def link cmusrcOptSortKeys Identifier +hi def link cmusrcSBindContext cmusrcContext +hi def link cmusrcSBindKey cmusrcKey +hi def link cmusrcTogglableOpt cmusrcOption +hi def link cmusrcUnbindSwitches cmusrcSwitches +hi def link cmusrcView Normal +hi def link cmusrcVolume1 Number +hi def link cmusrcVolume2 Number + +let b:current_syntax = "cmusrc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cobol.vim b/runtime/syntax/cobol.vim new file mode 100644 index 0000000..5d64944 --- /dev/null +++ b/runtime/syntax/cobol.vim @@ -0,0 +1,260 @@ +" Vim syntax file +" Language: COBOL +" Maintainer: Ankit Jain +" (formerly Tim Pope ) +" (formerly Davyd Ondrejko ) +" (formerly Sitaram Chamarty and +" James Mitchell ) +" Last Change: 2019 Mar 22 +" Ankit Jain 22.03.2019 Changes & fixes: +" 1. Include inline comments +" 2. Use comment highlight for bad lines +" 3. Change certain 'keywords' to 'matches' +" for additional highlighting +" 4. Different highlighting for COPY, GO TO & +" CALL lines +" 5. Fix for COMP keyword +" 6. Fix for PROCEDURE DIVISION highlighting +" 7. Highlight EXIT PROGRAM like STOP RUN +" 8. Highlight X & A in PIC clause +" Tag: #C22032019 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" MOST important - else most of the keywords wont work! +setlocal isk=@,48-57,-,_ + +if !exists('g:cobol_inline_comment') + let g:cobol_inline_comment=0 +endif + +syn case ignore + +syn cluster cobolStart contains=cobolAreaA,cobolAreaB,cobolComment,cobolCompiler +syn cluster cobolAreaA contains=cobolParagraph,cobolSection,cobolDivision +"syn cluster cobolAreaB contains= +syn cluster cobolAreaAB contains=cobolLine +syn cluster cobolLine contains=cobolReserved +syn match cobolMarker "^\%( \{,5\}[^ ]\)\@=.\{,6}" nextgroup=@cobolStart +syn match cobolSpace "^ \{6\}" nextgroup=@cobolStart +syn match cobolAreaA " \{1,4\}" contained nextgroup=@cobolAreaA,@cobolAreaAB +syn match cobolAreaB " \{5,\}\|- *" contained nextgroup=@cobolAreaB,@cobolAreaAB +syn match cobolComment "[/*C].*$" contained +syn match cobolCompiler "$.*$" contained +syn match cobolLine ".*$" contained contains=cobolReserved,@cobolLine + +"#C22032019: Fix for PROCEDURE DIVISION USING highlighting, removed . from the +"end of the regex +"syn match cobolDivision \"[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName +syn match cobolDivision "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION" contained contains=cobolDivisionName +syn keyword cobolDivisionName contained IDENTIFICATION ENVIRONMENT DATA PROCEDURE +syn match cobolSection "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+SECTION\."he=e-1 contained contains=cobolSectionName +syn keyword cobolSectionName contained CONFIGURATION INPUT-OUTPUT FILE WORKING-STORAGE LOCAL-STORAGE LINKAGE +syn match cobolParagraph "\a[A-Z0-9-]*[A-Z0-9]\.\|\d[A-Z0-9-]*[A-Z]\."he=e-1 contained contains=cobolParagraphName +syn keyword cobolParagraphName contained PROGRAM-ID SOURCE-COMPUTER OBJECT-COMPUTER SPECIAL-NAMES FILE-CONTROL I-O-CONTROL + + +"syn match cobolKeys "^\a\{1,6\}" contains=cobolReserved +"#C22032019: Remove BY, REPLACING, PROGRAM, TO, IN from 'keyword' group and add +"to 'match' group or other 'keyword' group +syn keyword cobolReserved contained ACCEPT ACCESS ADD ADDRESS ADVANCING AFTER ALPHABET ALPHABETIC +syn keyword cobolReserved contained ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALS +syn keyword cobolReserved contained ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR BEFORE BINARY +syn keyword cobolReserved contained BLANK BLOCK BOTTOM CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS +syn keyword cobolReserved contained CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON +syn keyword cobolReserved contained COMMUNICATIONS COMPUTATIONAL COMPUTE CONTENT CONTINUE +syn keyword cobolReserved contained CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATE DATE-COMPILED +syn keyword cobolReserved contained DATE-WRITTEN DAY DAY-OF-WEEK DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE +syn keyword cobolReserved contained DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT +syn keyword cobolReserved contained DELARATIVES DELETE DELIMITED DELIMITER DEPENDING DESCENDING DESTINATION +syn keyword cobolReserved contained DETAIL DISABLE DISPLAY DIVIDE DIVISION DOWN DUPLICATES DYNAMIC EGI ELSE EMI +syn keyword cobolReserved contained ENABLE END-ADD END-COMPUTE END-DELETE END-DIVIDE END-EVALUATE END-IF +syn keyword cobolReserved contained END-MULTIPLY END-OF-PAGE END-READ END-RECEIVE END-RETURN +syn keyword cobolReserved contained END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING +syn keyword cobolReserved contained END-WRITE EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT +syn keyword cobolReserved contained EXTEND EXTERNAL FALSE FD FILLER FINAL FIRST FOOTING FOR FROM +syn keyword cobolReserved contained GENERATE GIVING GLOBAL GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES I-O +syn keyword cobolReserved contained INDEX INDEXED INDICATE INITIAL INITIALIZE +syn keyword cobolReserved contained INITIATE INPUT INSPECT INSTALLATION INTO IS JUST +syn keyword cobolReserved contained JUSTIFIED KEY LABEL LAST LEADING LEFT LENGTH LOCK MEMORY +syn keyword cobolReserved contained MERGE MESSAGE MODE MODULES MOVE MULTIPLE MULTIPLY NATIVE NEGATIVE NEXT NO NOT +syn keyword cobolReserved contained NUMBER NUMERIC NUMERIC-EDITED OCCURS OF OFF OMITTED ON OPEN +syn keyword cobolReserved contained OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW PACKED-DECIMAL PADDING +syn keyword cobolReserved contained PAGE PAGE-COUNTER PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE +syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PURGE QUEUE QUOTES +syn keyword cobolReserved contained RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES +syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPORT REPORTING +syn keyword cobolReserved contained REPORTS RERUN RESERVE RESET RETURN RETURNING REVERSED REWIND REWRITE RF RH +syn keyword cobolReserved contained RIGHT ROUNDED RUN SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMITED +syn keyword cobolReserved contained SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT +syn keyword cobolReserved contained SORT-MERGE SOURCE STANDARD +syn keyword cobolReserved contained STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2 +syn keyword cobolReserved contained SUB-QUEUE-3 SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED TABLE TALLYING +syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TOP +syn keyword cobolReserved contained TRAILING TRUE TYPE UNIT UNSTRING UNTIL UP UPON USAGE USE USING VALUE VALUES +syn keyword cobolReserved contained VARYING WHEN WITH WORDS WRITE +syn match cobolReserved contained "\" +syn match cobolReserved contained "\<\(IF\|INVALID\|END\|EOP\)\>" +syn match cobolReserved contained "\" +" #C22032019: Add BY as match instead of keyword: BY not followed by == +syn match cobolReserved contained "\\s\+\(==\)\@!" +syn match cobolReserved contained "\" + +syn cluster cobolLine add=cobolConstant,cobolNumber,cobolPic +syn keyword cobolConstant SPACE SPACES NULL ZERO ZEROES ZEROS LOW-VALUE LOW-VALUES + +" #C22032019: Fix for many pic clauses +syn match cobolNumber "\<-\=\d*\.\=\d\+\>" contained +" syn match cobolPic \"\" contained +syn match cobolPic "\" contained +syn match cobolPic "\<$*\.\=9\+\>" contained +syn match cobolPic "\" contained +syn match cobolPic "\" contained +syn match cobolPic "\<9\+V\>" contained +" syn match cobolPic \"\<-\+[Z9]\+\>" contained +syn match cobolPic "\<-*[Z9]\+-*\>" contained +" #C22032019: Add Z,X and A to cobolPic +syn match cobolPic "\<[ZXA]\+\>" contained +syn match cobolTodo "todo" contained containedin=cobolInlineComment,cobolComment + +" For MicroFocus or other inline comments, include this line. +if g:cobol_inline_comment == 1 + syn region cobolInlineComment start="*>" end="$" contains=cobolTodo,cobolMarker + syn cluster cobolLine add=cobolInlineComment +endif + +syn match cobolBadLine "[^ D\*$/-].*" contained + +" If comment mark somehow gets into column past Column 7. +if g:cobol_inline_comment == 1 + " #C22032019: It is a bad line only if * is not followed by > when inline + " comments enabled + syn match cobolBadLine "\s\+\*\(>\)\@!.*" contained +else + syn match cobolBadLine "\s\+\*.*" contained +endif +syn cluster cobolStart add=cobolBadLine + +" #C22032019: Different highlighting for GO TO statements +" syn keyword cobolGoTo GO GOTO +syn keyword cobolGoTo GOTO +syn match cobolGoTo /\\s\+\/ +syn match cobolGoToPara /\\s\+\\s\+[A-Z0-9-]\+/ contains=cobolGoTo +" #C22032019: Highlight copybook name and location in using different group +" syn keyword cobolCopy COPY +syn match cobolCopy "\\|\" +syn match cobolCopy "\\s\+\(==\)\@=" +syn match cobolCopy "\\s\+\(==\)\@=" +syn match cobolCopyName "\\s\+[A-Z0-9]\+\(\s\+\\s\+[A-Z0-9]\+\)\?" contains=cobolCopy +syn cluster cobolLine add=cobolGoToPara,cobolCopyName + +" cobolBAD: things that are BAD NEWS! +syn keyword cobolBAD ALTER ENTER RENAMES + +syn cluster cobolLine add=cobolGoTo,cobolCopy,cobolBAD,cobolWatch,cobolEXECs + +" cobolWatch: things that are important when trying to understand a program +syn keyword cobolWatch OCCURS DEPENDING VARYING BINARY COMP REDEFINES +" #C22032019: Remove REPLACING from cobolWatch 'keyword' group and add to cobolCopy & +" cobolWatch 'match' group +" syn keyword cobolWatch REPLACING RUN +syn keyword cobolWatch RUN PROGRAM +syn match cobolWatch contained "\\s\+\(==\)\@!" +" #C22032019: Look for word starting with COMP +" syn match cobolWatch \"COMP-[123456XN]" +syn match cobolWatch "\" +syn match cobolCALLProg /\\s\+"\{0,1\}[A-Z0-9]\+"\{0,1\}/ contains=cobolCALLs +syn match cobolExtras /\ +" Last Change: 2022 Jun 14 +" Remark: Coco/R syntax partially implemented. +" License: Vim license + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword cocoKeywords ANY CHARACTERS COMMENTS COMPILER CONTEXT END FROM IF IGNORE IGNORECASE NESTED PRAGMAS PRODUCTIONS SYNC TO TOKENS WEAK +syn match cocoUnilineComment #//.*$# +syn match cocoIdentifier /[[:alpha:]][[:alnum:]]*/ +syn region cocoMultilineComment start=#/[*]# end=#[*]/# +syn region cocoString start=/"/ skip=/\\"\|\\\\/ end=/"/ +syn region cocoCharacter start=/'/ skip=/\\'\|\\\\/ end=/'/ +syn match cocoOperator /+\||\|\.\.\|-\|(\|)\|{\|}\|\[\|\]\|=\|<\|>/ +syn region cocoProductionCode start=/([.]/ end=/[.])/ +syn match cocoPragma /[$][[:alnum:]]*/ + +hi def link cocoKeywords Keyword +hi def link cocoUnilineComment Comment +hi def link cocoMultilineComment Comment +hi def link cocoIdentifier Identifier +hi def link cocoString String +hi def link cocoCharacter Character +hi def link cocoOperator Operator +hi def link cocoProductionCode Statement +hi def link cocoPragma Special + +let b:current_syntax = 'coco' diff --git a/runtime/syntax/colortest.vim b/runtime/syntax/colortest.vim new file mode 100644 index 0000000..1dd860c --- /dev/null +++ b/runtime/syntax/colortest.vim @@ -0,0 +1,82 @@ +" Vim script for testing colors +" Maintainer: The Vim Project +" Contributors: Rafael Garcia-Suarez, Charles Campbell +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" edit this file, then do ":source %", and check if the colors match + +" black black_on_white white_on_black +" black_on_black black_on_black +" darkred darkred_on_white white_on_darkred +" darkred_on_black black_on_darkred +" darkgreen darkgreen_on_white white_on_darkgreen +" darkgreen_on_black black_on_darkgreen +" brown brown_on_white white_on_brown +" brown_on_black black_on_brown +" darkblue darkblue_on_white white_on_darkblue +" darkblue_on_black black_on_darkblue +" darkmagenta darkmagenta_on_white white_on_darkmagenta +" darkmagenta_on_black black_on_darkmagenta +" darkcyan darkcyan_on_white white_on_darkcyan +" darkcyan_on_black black_on_darkcyan +" lightgray lightgray_on_white white_on_lightgray +" lightgray_on_black black_on_lightgray +" darkgray darkgray_on_white white_on_darkgray +" darkgray_on_black black_on_darkgray +" red red_on_white white_on_red +" red_on_black black_on_red +" green green_on_white white_on_green +" green_on_black black_on_green +" yellow yellow_on_white white_on_yellow +" yellow_on_black black_on_yellow +" blue blue_on_white white_on_blue +" blue_on_black black_on_blue +" magenta magenta_on_white white_on_magenta +" magenta_on_black black_on_magenta +" cyan cyan_on_white white_on_cyan +" cyan_on_black black_on_cyan +" white white_on_white white_on_white +" white_on_black black_on_white +" grey grey_on_white white_on_grey +" grey_on_black black_on_grey +" lightred lightred_on_white white_on_lightred +" lightred_on_black black_on_lightred +" lightgreen lightgreen_on_white white_on_lightgreen +" lightgreen_on_black black_on_lightgreen +" lightyellow lightyellow_on_white white_on_lightyellow +" lightyellow_on_black black_on_lightyellow +" lightblue lightblue_on_white white_on_lightblue +" lightblue_on_black black_on_lightblue +" lightmagenta lightmagenta_on_white white_on_lightmagenta +" lightmagenta_on_black black_on_lightmagenta +" lightcyan lightcyan_on_white white_on_lightcyan +" lightcyan_on_black black_on_lightcyan + +" Open this file in a window if it isn't edited yet. +" Use the current window if it's empty. +if expand('%:p') != expand(':p') + let s:fname = expand('') + if exists('*fnameescape') + let s:fname = fnameescape(s:fname) + else + let s:fname = escape(s:fname, ' \|') + endif + if &mod || line('$') != 1 || getline(1) != '' + exe "new " . s:fname + else + exe "edit " . s:fname + endif + unlet s:fname +endif + +syn clear +8 +while search("_on_", "W") < 55 + let col1 = substitute(expand(""), '\(\a\+\)_on_\a\+', '\1', "") + let col2 = substitute(expand(""), '\a\+_on_\(\a\+\)', '\1', "") + exec 'hi col_'.col1.'_'.col2.' ctermfg='.col1.' guifg='.col1.' ctermbg='.col2.' guibg='.col2 + exec 'syn keyword col_'.col1.'_'.col2.' '.col1.'_on_'.col2 +endwhile +8,54g/^" \a/exec 'hi col_'.expand("").' ctermfg='.expand("").' guifg='.expand("")| exec 'syn keyword col_'.expand("")." ".expand("") +nohlsearch diff --git a/runtime/syntax/conaryrecipe.vim b/runtime/syntax/conaryrecipe.vim new file mode 100644 index 0000000..f94fdd4 --- /dev/null +++ b/runtime/syntax/conaryrecipe.vim @@ -0,0 +1,137 @@ +" Vim syntax file +" Language: Conary Recipe +" Maintainer: rPath Inc +" Updated: 2007-12-08 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/python.vim + +syn keyword conarySFunction mainDir addAction addSource addArchive addPatch +syn keyword conarySFunction addRedirect addSvnSnapshot addMercurialSnapshot +syn keyword conarySFunction addCvsSnapshot addGitSnapshot addBzrSnapshot + +syn keyword conaryGFunction add addAll addNewGroup addReference createGroup +syn keyword conaryGFunction addNewGroup startGroup remove removeComponents +syn keyword conaryGFunction replace setByDefault setDefaultGroup +syn keyword conaryGFunction setLabelPath addCopy setSearchPath AddAllFlags +syn keyword conaryGFunction GroupRecipe GroupReference TroveCacheWrapper +syn keyword conaryGFunction TroveCache buildGroups findTrovesForGroups +syn keyword conaryGFunction followRedirect processAddAllDirectives +syn keyword conaryGFunction processOneAddAllDirective removeDifferences +syn keyword conaryGFunction addTrovesToGroup addCopiedComponents +syn keyword conaryGFunction findAllWeakTrovesToRemove checkForRedirects +syn keyword conaryGFunction addPackagesForComponents getResolveSource +syn keyword conaryGFunction resolveGroupDependencies checkGroupDependencies +syn keyword conaryGFunction calcSizeAndCheckHashes findSourcesForGroup +syn keyword conaryGFunction addPostInstallScript addPostRollbackScript +syn keyword conaryGFunction addPostUpdateScript addPreUpdateScript +syn keyword conaryGFunction addTrove moveComponents copyComponents +syn keyword conaryGFunction removeItemsAlsoInNewGroup removeItemsAlsoInGroup +syn keyword conaryGFunction addResolveSource iterReplaceSpecs +syn keyword conaryGFunction setCompatibilityClass getLabelPath +syn keyword conaryGFunction getResolveTroveSpecs getSearchFlavor +syn keyword conaryGFunction getChildGroups getGroupMap + +syn keyword conaryBFunction Run Automake Configure ManualConfigure +syn keyword conaryBFunction Make MakeParallelSubdir MakeInstall +syn keyword conaryBFunction MakePathsInstall CompilePython +syn keyword conaryBFunction Ldconfig Desktopfile Environment SetModes +syn keyword conaryBFunction Install Copy Move Symlink Link Remove Doc +syn keyword conaryBFunction Create MakeDirs disableParallelMake +syn keyword conaryBFunction ConsoleHelper Replace SGMLCatalogEntry +syn keyword conaryBFunction XInetdService XMLCatalogEntry TestSuite +syn keyword conaryBFunction PythonSetup CMake Ant JavaCompile ClassPath +syn keyword conaryBFunction JavaDoc IncludeLicense MakeFIFO + +syn keyword conaryPFunction NonBinariesInBindirs FilesInMandir +syn keyword conaryPFunction ImproperlyShared CheckSonames CheckDestDir +syn keyword conaryPFunction ComponentSpec PackageSpec +syn keyword conaryPFunction Config InitScript GconfSchema SharedLibrary +syn keyword conaryPFunction ParseManifest MakeDevices DanglingSymlinks +syn keyword conaryPFunction AddModes WarnWriteable IgnoredSetuid +syn keyword conaryPFunction Ownership ExcludeDirectories +syn keyword conaryPFunction BadFilenames BadInterpreterPaths ByDefault +syn keyword conaryPFunction ComponentProvides ComponentRequires Flavor +syn keyword conaryPFunction EnforceConfigLogBuildRequirements Group +syn keyword conaryPFunction EnforceSonameBuildRequirements InitialContents +syn keyword conaryPFunction FilesForDirectories LinkCount +syn keyword conaryPFunction MakdeDevices NonMultilibComponent ObsoletePaths +syn keyword conaryPFunction NonMultilibDirectories NonUTF8Filenames TagSpec +syn keyword conaryPFunction Provides RequireChkconfig Requires TagHandler +syn keyword conaryPFunction TagDescription Transient User UtilizeGroup +syn keyword conaryPFunction WorldWritableExecutables UtilizeUser +syn keyword conaryPFunction WarnWritable Strip CheckDesktopFiles +syn keyword conaryPFunction FixDirModes LinkType reportMissingBuildRequires +syn keyword conaryPFunction reportErrors FixupManpagePaths FixObsoletePaths +syn keyword conaryPFunction NonLSBPaths PythonEggs +syn keyword conaryPFunction EnforcePythonBuildRequirements +syn keyword conaryPFunction EnforceJavaBuildRequirements +syn keyword conaryPFunction EnforceCILBuildRequirements +syn keyword conaryPFunction EnforcePerlBuildRequirements +syn keyword conaryPFunction EnforceFlagBuildRequirements +syn keyword conaryPFunction FixupMultilibPaths ExecutableLibraries +syn keyword conaryPFunction NormalizeLibrarySymlinks NormalizeCompression +syn keyword conaryPFunction NormalizeManPages NormalizeInfoPages +syn keyword conaryPFunction NormalizeInitscriptLocation +syn keyword conaryPFunction NormalizeInitscriptContents +syn keyword conaryPFunction NormalizeAppDefaults NormalizeInterpreterPaths +syn keyword conaryPFunction NormalizePamConfig ReadableDocs +syn keyword conaryPFunction WorldWriteableExecutables NormalizePkgConfig +syn keyword conaryPFunction EtcConfig InstallBucket SupplementalGroup +syn keyword conaryPFunction FixBuilddirSymlink RelativeSymlinks + +" Most destdirPolicy aren't called from recipes, except for these +syn keyword conaryPFunction AutoDoc RemoveNonPackageFiles TestSuiteFiles +syn keyword conaryPFunction TestSuiteLinks + +syn match conaryMacro "%(\w\+)[sd]" contained +syn match conaryBadMacro "%(\w*)[^sd]" contained " no final marker +syn keyword conaryArches contained x86 x86_64 alpha ia64 ppc ppc64 s390 +syn keyword conaryArches contained sparc sparc64 +syn keyword conarySubArches contained sse2 3dnow 3dnowext cmov i486 i586 +syn keyword conarySubArches contained i686 mmx mmxext nx sse sse2 +syn keyword conaryBad RPM_BUILD_ROOT EtcConfig InstallBucket subDir +syn keyword conaryBad RPM_OPT_FLAGS subdir +syn cluster conaryArchFlags contains=conaryArches,conarySubArches +syn match conaryArch "Arch\.[a-z0-9A-Z]\+" contains=conaryArches,conarySubArches +syn match conaryArch "Arch\.[a-z0-9A-Z]\+" contains=conaryArches,conarySubArches +syn keyword conaryKeywords name buildRequires version clearBuildReqs +syn keyword conaryUseFlag contained pcre tcpwrappers gcj gnat selinux pam +syn keyword conaryUseFlag contained bootstrap python perl +syn keyword conaryUseFlag contained readline gdbm emacs krb builddocs +syn keyword conaryUseFlag contained alternatives tcl tk X gtk gnome qt +syn keyword conaryUseFlag contained xfce gd ldap sasl pie desktop ssl kde +syn keyword conaryUseFlag contained slang netpbm nptl ipv6 buildtests +syn keyword conaryUseFlag contained ntpl xen dom0 domU +syn match conaryUse "Use\.[a-z0-9A-Z]\+" contains=conaryUseFlag + +" strings +syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,conaryMacro,conaryBadMacro +syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,conaryMacro,conaryBadMacro +syn region pythonString matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,conaryMacro,conaryBadMacro +syn region pythonString matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,conaryMacro,conaryBadMacro +syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=conaryMacro,conaryBadMacro +syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=conaryMacro,conaryBadMacro +syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=conaryMacro,conaryBadMacro +syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=conaryMacro,conaryBadMacro + +hi def link conaryMacro Special +hi def link conaryrecipeFunction Function +hi def link conaryError Error +hi def link conaryBFunction conaryrecipeFunction +hi def link conaryGFunction conaryrecipeFunction +hi def link conarySFunction Operator +hi def link conaryPFunction Typedef +hi def link conaryFlags PreCondit +hi def link conaryArches Special +hi def link conarySubArches Special +hi def link conaryBad conaryError +hi def link conaryBadMacro conaryError +hi def link conaryKeywords Special +hi def link conaryUseFlag Typedef + +let b:current_syntax = "conaryrecipe" + diff --git a/runtime/syntax/conf.vim b/runtime/syntax/conf.vim new file mode 100644 index 0000000..15a1fff --- /dev/null +++ b/runtime/syntax/conf.vim @@ -0,0 +1,27 @@ +" Vim syntax file +" Language: generic configure file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword confTodo contained TODO FIXME XXX +" Avoid matching "text#text", used in /etc/disktab and /etc/gettytab +syn match confComment "^#.*" contains=confTodo,@Spell +syn match confComment "\s#.*"ms=s+1 contains=confTodo,@Spell +syn region confString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline +syn region confString start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link confComment Comment +hi def link confTodo Todo +hi def link confString String + +let b:current_syntax = "conf" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/config.vim b/runtime/syntax/config.vim new file mode 100644 index 0000000..3636ed4 --- /dev/null +++ b/runtime/syntax/config.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: configure.in script: M4 with sh +" Former Maintainer: Christian Hammesr +" Last Change: 2018 Feb 03 +" (patch from Yngve Inntjore Levinsen to detect AC_MSG) +" (patch from Khym Chanur to add @Spell) +" (patch from James McCoy to fix paren matching) + +" Well, I actually even do not know much about m4. This explains why there +" is probably very much missing here, yet ! +" But I missed good highlighting when editing my GNU autoconf/automake +" script, so I wrote this quick and dirty patch. + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" define the config syntax +syn match configdelimiter "[()\[\];,]" +syn match configoperator "[=|&\*\+\<\>]" +syn match configcomment "\(dnl.*\)\|\(#.*\)" contains=configDnl,@Spell +syn match configfunction "\<[A-Z_][A-Z0-9_]*\>" +syn match confignumber "[-+]\=\<\d\+\(\.\d*\)\=\>" +syn keyword configDnl dnl contained +syn keyword configkeyword if then else fi test for in do done +syn keyword configspecial cat rm eval + +" This shortens the script, see syn-ext-match.. +syn region configstring start=+\z(["'`]\)+ skip=+\\\z1+ end=+\z1+ contains=@Spell + +" Anything inside AC_MSG_TYPE([...]) and AC_MSG_TYPE(...) is a string. +syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze(\[" matchgroup=configdelimiter end="\])" contains=configdelimiter,@Spell +syn region configmsg matchgroup=configfunction start="AC_MSG_[A-Z]*\ze([^[]" matchgroup=configdelimiter end=")" contains=configdelimiter,@Spell + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link configdelimiter Delimiter +hi def link configoperator Operator +hi def link configcomment Comment +hi def link configDnl Comment +hi def link configfunction Function +hi def link confignumber Number +hi def link configkeyword Keyword +hi def link configspecial Special +hi def link configstring String +hi def link configmsg String + + +let b:current_syntax = "config" + +" vim: ts=4 diff --git a/runtime/syntax/confini.vim b/runtime/syntax/confini.vim new file mode 100644 index 0000000..823d417 --- /dev/null +++ b/runtime/syntax/confini.vim @@ -0,0 +1,12 @@ +" Vim syntax file +" Language: confini + +" Quit if a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Use the cfg syntax for now, it's similar. +runtime! syntax/cfg.vim + +let b:current_syntax = 'confini' diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim new file mode 100644 index 0000000..c5bbbb4 --- /dev/null +++ b/runtime/syntax/context.vim @@ -0,0 +1,144 @@ +vim9script + +# Vim syntax file +# Language: ConTeXt typesetting engine +# Maintainer: Nicola Vitacolonna +# Former Maintainers: Nikolai Weibull +# Latest Revision: 2023 Dec 26 + +if exists("b:current_syntax") + finish +endif + +# Dictionary of (filetype, group) pairs to highlight between \startGROUP \stopGROUP. +var context_include = get(b:, 'context_include', get(g:, 'context_include', {'xml': 'XML'})) + +# Deprecation warning +if type(context_include) ==# type([]) + echomsg "[ConTeXt] b:context_include/g:context_include must be Dictionaries." + context_include = {'xml': 'XML'} +endif + +syn iskeyword @,48-57,_,!,?,a-z,A-Z,192-255 + +syn spell toplevel + +runtime! syntax/shared/context-data-context.vim +runtime! syntax/shared/context-data-interfaces.vim +runtime! syntax/shared/context-data-tex.vim + +syn match contextCommand '\\\k\+\>' display contains=@NoSpell + +# ConTeXt options, i.e., [...] blocks +syn region contextOptions matchgroup=contextDelimiter start='\[' end=']\|\ze\\stop' skip='\\\[\|\\\]' contains=TOP,@Spell + +# Highlight braces +syn match contextDelimiter '[{}]' + +# Comments +syn match contextComment '\%(\_^\|[^\\]\)\%(\\\\\)*\zs%.*$' display contains=contextTodo,contextMagicLine +syn match contextComment '^\s*%[CDM].*$' display contains=contextTodo,contextMagicLine +syn keyword contextTodo TODO FIXME XXX NOTE contained +syn match contextMagicLine '^\s*%\s*!TEX.*$' contained + +syn match contextBlockDelim '\\\%(start\|stop\)\k\+' contains=@NoSpell + +syn region contextEscaped matchgroup=contextPreProc start='\\type\%(\s*\|\n\)*\z([^A-Za-z%]\)' end='\z1' +syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s\|\n\)*{' end='}' +syn region contextEscaped matchgroup=contextPreProc start='\\type\=\%(\s*\|\n\)*<<' end='>>' +syn region contextEscaped matchgroup=contextPreProc + \ start='\\start\z(\a*\%(typing\|typen\)\)' + \ end='\\stop\z1' contains=contextComment keepend +syn region contextEscaped matchgroup=contextPreProc start='\\\h\+Type\%(\s\|\n\)*{' end='}' +syn region contextEscaped matchgroup=contextPreProc start='\\Typed\h\+\%(\s\|\n\)*{' end='}' + +syn match contextBuiltin '\\unexpanded\>' display contains=@NoSpell + +# \unprotect... \protect regions +syn region contextUnprotect matchgroup=contextBuiltin start='\\unprotect' end='\\protect' contains=TOP +syn match contextSequence '\\[a-zA-Z]*[@_!?]\+[a-zA-Z@_!?]*' contains=@NoSpell contained containedin=contextUnprotect + +# Math +syn match contextMathCmd '\\m\%(ath\%(ematics\)\=\)\=\>' +syn region contextInlineMath matchgroup=contextMathDelim start='\$' skip='\\\\\|\\\$' end='\$' +syn region contextDisplayMath matchgroup=contextMathDelim start='\$\$' skip='\\\\\|\\\$' end='\$\$' keepend +syn region contextDisplayMath matchgroup=contextBlockDelim start='\\startformula' end='\\stopformula' contains=TOP + +# MetaFun +b:mp_metafun = 1 +syn include @mpTop syntax/mp.vim +unlet b:current_syntax + +syn region contextMPGraphic matchgroup=contextBlockDelim + \ start='\\start\z(MP\%(clip\|code\|definitions\|drawing\|environment\|extensions\|inclusions\|initializations\|page\|\)\)\>.*$' + \ end='\\stop\z1' + \ contains=@mpTop,@NoSpell +syn region contextMPGraphic matchgroup=contextBlockDelim + \ start='\\start\z(\%(\%[re]usable\|use\|unique\|static\)MPgraphic\|staticMPfigure\|uniqueMPpagegraphic\)\>.*$' + \ end='\\stop\z1' + \ contains=@mpTop,@NoSpell + +# Lua +syn include @luaTop syntax/lua.vim +unlet b:current_syntax + +syn region contextLuaCode matchgroup=contextBlockDelim + \ start='\\startluacode\>' + \ end='\\stopluacode\>' keepend + \ contains=@luaTop,@NoSpell +syn match contextDirectLua "\\\%(directlua\|ctxlua\)\>\%(\s*%.*$\)\=" + \ nextgroup=contextBeginEndLua skipwhite skipempty + \ contains=contextComment +syn region contextBeginEndLua matchgroup=contextSpecial + \ start="{" end="}" skip="\\[{}]" keepend + \ contained contains=@luaTop,@NoSpell + +for synname in keys(context_include) + execute 'syn include @' .. synname .. 'Top' 'syntax/' .. synname .. '.vim' + unlet b:current_syntax + execute 'syn region context' .. context_include[synname] .. 'Code' + \ 'matchgroup=contextBlockDelim' + \ 'start=+\\start' .. context_include[synname] .. '\w*+' + \ 'end=+\\stop' .. context_include[synname] .. '\w*+' + \ 'contains=@' .. synname .. 'Top,@NoSpell' +endfor + +syn match contextSectioning '\\\%(start\|stop\)\=\%(\%(sub\)*section\|\%(sub\)*subject\|chapter\|part\|component\|product\|title\)\>' contains=@NoSpell + +syn match contextSpecial '\\par\>\|-\{2,3}\||[<>/]\=|' contains=@NoSpell +syn match contextSpecial /\\[`'"]/ +syn match contextSpecial +\\char\%(\d\{1,3}\|'\o\{1,3}\|"\x\{1,2}\)\>+ contains=@NoSpell +syn match contextSpecial '\^\^.' +syn match contextSpecial '`\%(\\.\|\^\^.\|.\)' + +syn match contextStyle '\\\%(em\|ss\|hw\|cg\|mf\)\>' contains=@NoSpell +syn match contextFont '\\\%(CAP\|Cap\|cap\|Caps\|kap\|nocap\)\>' contains=@NoSpell +syn match contextFont '\\\%(Word\|WORD\|Words\|WORDS\)\>' contains=@NoSpell +syn match contextFont '\\\%(vi\{1,3}\|ix\|xi\{0,2}\)\>' contains=@NoSpell +syn match contextFont '\\\%(tf\|b[si]\|s[cl]\|os\)\%(xx\|[xabcd]\)\=\>' contains=@NoSpell + +hi def link contextBlockDelim Keyword +hi def link contextBuiltin Keyword +hi def link contextCommand Keyword +hi def link contextComment Comment +hi def link contextDelimiter Delimiter +hi def link contextDirectLua Keyword +hi def link contextEscaped String +hi def link contextFont contextType +hi def link contextKeyword Keyword +hi def link contextInlineMath String +hi def link contextMagicLine PreProc +hi def link contextMathCmd Identifier +hi def link contextMathDelim Delimiter +hi def link contextOptions Typedef +hi def link contextPreProc PreProc +hi def link contextSectioning PreProc +hi def link contextSequence Identifier +hi def link contextSpecial Special +hi def link contextStyle contextType +hi def link contextTodo Todo +hi def link contextType Type + +b:current_syntax = 'context' + +# vim: sw=2 fdm=marker diff --git a/runtime/syntax/cpp.vim b/runtime/syntax/cpp.vim new file mode 100644 index 0000000..8daf90a --- /dev/null +++ b/runtime/syntax/cpp.vim @@ -0,0 +1,130 @@ +" Vim syntax file +" Language: C++ +" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) +" Previous Maintainer: Ken Shan +" Last Change: 2023 Dec 08 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" inform C syntax that the file was included from cpp.vim +let b:filetype_in_cpp_family = 1 + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax +unlet b:filetype_in_cpp_family + +" C++ extensions +syn keyword cppStatement new delete this friend using +syn keyword cppAccess public protected private +syn keyword cppModifier inline virtual explicit export +syn keyword cppType bool wchar_t +syn keyword cppExceptions throw try catch +syn keyword cppOperator operator typeid +syn keyword cppOperator and bitor or xor compl bitand and_eq or_eq xor_eq not not_eq +syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*<"me=e-1 +syn match cppCast "\<\(const\|static\|dynamic\|reinterpret\)_cast\s*$" +syn keyword cppStorageClass mutable +syn keyword cppStructure class typename template namespace +syn keyword cppBoolean true false +syn keyword cppConstant __cplusplus + +" C++ 11 extensions +if !exists("cpp_no_cpp11") + syn keyword cppModifier override final + syn keyword cppType nullptr_t auto + syn keyword cppExceptions noexcept + syn keyword cppStorageClass constexpr decltype thread_local + syn keyword cppConstant nullptr + syn keyword cppConstant ATOMIC_FLAG_INIT ATOMIC_VAR_INIT + syn keyword cppConstant ATOMIC_BOOL_LOCK_FREE ATOMIC_CHAR_LOCK_FREE + syn keyword cppConstant ATOMIC_CHAR16_T_LOCK_FREE ATOMIC_CHAR32_T_LOCK_FREE + syn keyword cppConstant ATOMIC_WCHAR_T_LOCK_FREE ATOMIC_SHORT_LOCK_FREE + syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE + syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE + syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"\(sv\|s\|_[_a-zA-Z][_a-zA-Z0-9]*\)\=+ contains=@Spell + syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*<"me=e-1 + syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*$" +endif + +" C++ 14 extensions +if !exists("cpp_no_cpp14") + syn match cppNumbers display transparent "\<\d\|\.\d" contains=cppNumber,cppFloat + syn match cppNumber display contained "\<0\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppNumber display contained "\<0\o\+\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppNumber display contained "\<0b[01]\('\=[01]\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppNumber display contained "\<0x\x\('\=\x\+\)*\([Uu]\=\([Ll]\|LL\|ll\)\|\([Ll]\|LL\|ll\)\=[Uu]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppFloat display contained "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppFloat display contained "\<\.\d\+\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn match cppFloat display contained "\<\d\+e[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + syn region cppString start=+\(L\|u\|u8\|U\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"\(sv\|s\|_\i*\)\=+ end='$' contains=cSpecial,cFormat,@Spell +endif + +" C++ 17 extensions +if !exists("cpp_no_cpp17") + syn match cppCast "\" + syn match cppFloat display contained "\<0x\x\+\.\=p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>" + + " TODO: push this up to c.vim if/when supported in C23 + syn match cppCharacter "u8'[^\\]'" + syn match cppCharacter "u8'[^']*'" contains=cSpecial + if exists("c_gnu") + syn match cppSpecialError "u8'\\[^'\"?\\abefnrtv]'" + syn match cppSpecialCharacter "u8'\\['\"?\\abefnrtv]'" + else + syn match cppSpecialError "u8'\\[^'\"?\\abfnrtv]'" + syn match cppSpecialCharacter "u8'\\['\"?\\abfnrtv]'" + endif + syn match cppSpecialCharacter display "u8'\\\o\{1,3}'" + syn match cppSpecialCharacter display "u8'\\x\x\+'" + +endif + +" C++ 20 extensions +if !exists("cpp_no_cpp20") + syn match cppNumber display contained "\<0\(y\|d\)\>" + syn match cppNumber display contained "\<[1-9]\('\=\d\+\)*\(y\|d\)\>" + syn match cppNumber display contained "\<0\o\+\(y\|d\)\>" + syn match cppNumber display contained "\<0b[01]\('\=[01]\+\)*\(y\|d\)\>" + syn match cppNumber display contained "\<0x\x\('\=\x\+\)*\(y\|d\)\>" + syn keyword cppStatement co_await co_return co_yield requires + syn keyword cppStorageClass consteval constinit + syn keyword cppStructure concept + syn keyword cppType char8_t + syn keyword cppModule import module export +endif + +" The minimum and maximum operators in GNU C++ +syn match cppMinMax "[<>]?" + +" Default highlighting +hi def link cppAccess cppStatement +hi def link cppCast cppStatement +hi def link cppExceptions Exception +hi def link cppOperator Operator +hi def link cppStatement Statement +hi def link cppModifier Type +hi def link cppType Type +hi def link cppStorageClass StorageClass +hi def link cppStructure Structure +hi def link cppBoolean Boolean +hi def link cppCharacter cCharacter +hi def link cppSpecialCharacter cSpecialCharacter +hi def link cppSpecialError cSpecialError +hi def link cppConstant Constant +hi def link cppRawStringDelimiter Delimiter +hi def link cppRawString String +hi def link cppString String +hi def link cppNumber Number +hi def link cppFloat Number +hi def link cppModule Include + +let b:current_syntax = "cpp" + +" vim: ts=8 diff --git a/runtime/syntax/crm.vim b/runtime/syntax/crm.vim new file mode 100644 index 0000000..5285de3 --- /dev/null +++ b/runtime/syntax/crm.vim @@ -0,0 +1,41 @@ +" Vim syntax file +" Language: CRM114 +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword crmTodo contained TODO FIXME XXX NOTE + +syn region crmComment display oneline start='#' end='\\#' + \ contains=crmTodo,@Spell + +syn match crmVariable display ':[*#@]:[^:]\{-1,}:' + +syn match crmSpecial display '\\\%(x\x\x\|o\o\o\o\|[]nrtabvf0>)};/\\]\)' + +syn keyword crmStatement insert noop accept alius alter classify eval exit +syn keyword crmStatement fail fault goto hash intersect isolate input learn +syn keyword crmStatement liaf match output syscall trap union window + +syn region crmRegex start='/' skip='\\/' end='/' contains=crmVariable + +syn match crmLabel display '^\s*:[[:graph:]]\+:' + +hi def link crmTodo Todo +hi def link crmComment Comment +hi def link crmVariable Identifier +hi def link crmSpecial SpecialChar +hi def link crmStatement Statement +hi def link crmRegex String +hi def link crmLabel Label + +let b:current_syntax = "crm" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/crontab.vim b/runtime/syntax/crontab.vim new file mode 100644 index 0000000..12daa9b --- /dev/null +++ b/runtime/syntax/crontab.vim @@ -0,0 +1,67 @@ +" Vim syntax file +" Language: crontab +" Maintainer: David Necas (Yeti) +" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net +" License: This file can be redistribued and/or modified under the same terms +" as Vim itself. +" Filenames: /tmp/crontab.* used by "crontab -e" +" Last Change: 2022-09-22 +" +" crontab line format: +" Minutes Hours Days Months Days_of_Week Commands # comments + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax match crontabNick "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\|every_minute\|every_second\)\>" nextgroup=crontabCmd skipwhite + +syntax match crontabVar "^\s*\k\w*\s*="me=e-1 + +syntax case ignore + +syntax match crontabMin "^\s*[-~0-9/,.*]\+" nextgroup=crontabHr skipwhite +syntax match crontabHr "\s[-~0-9/,.*]\+" nextgroup=crontabDay skipwhite contained +syntax match crontabDay "\s[-~0-9/,.*]\+" nextgroup=crontabMnth skipwhite contained + +syntax match crontabMnth "\s[-~a-z0-9/,.*]\+" nextgroup=crontabDow skipwhite contained +syntax keyword crontabMnth12 contained jan feb mar apr may jun jul aug sep oct nov dec + +syntax match crontabDow "\s[-~a-z0-9/,.*]\+" nextgroup=crontabCmd skipwhite contained +syntax keyword crontabDow7 contained sun mon tue wed thu fri sat + +syntax region crontabCmd start="\S" end="$" skipwhite contained keepend contains=crontabPercent +syntax match crontabCmnt "^\s*#.*" contains=@Spell +syntax match crontabPercent "[^\\]%.*"lc=1 contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link crontabMin Number +hi def link crontabHr PreProc +hi def link crontabDay Type + +hi def link crontabMnth Number +hi def link crontabMnth12 Number +hi def link crontabMnthS Number +hi def link crontabMnthN Number + +hi def link crontabDow PreProc +hi def link crontabDow7 PreProc +hi def link crontabDowS PreProc +hi def link crontabDowN PreProc + +hi def link crontabNick Special +hi def link crontabVar Identifier +hi def link crontabPercent Special + +" comment out next line for to suppress unix commands coloring. +hi def link crontabCmd Statement + +hi def link crontabCmnt Comment + + +let b:current_syntax = "crontab" + +" vim: ts=8 diff --git a/runtime/syntax/cs.vim b/runtime/syntax/cs.vim new file mode 100644 index 0000000..104470a --- /dev/null +++ b/runtime/syntax/cs.vim @@ -0,0 +1,331 @@ +" Vim syntax file +" Language: C# +" Maintainer: Nick Jensen +" Former Maintainers: Anduin Withers +" Johannes Zellner +" Last Change: 2022-11-16 +" Filenames: *.cs +" License: Vim (see :h license) +" Repository: https://github.com/nickspoons/vim-cs +" +" References: +" - ECMA-334 5th Edition: C# Language Specification +" https://www.ecma-international.org/publications-and-standards/standards/ecma-334/ +" - C# Language Design: Draft 6th Edition and later proposals +" https://github.com/dotnet/csharplang + +if exists('b:current_syntax') + finish +endif + +let s:save_cpo = &cpoptions +set cpoptions&vim + +syn keyword csType bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic +syn keyword csType nint nuint " contextual + +syn keyword csStorage enum interface namespace struct +syn match csStorage "\" +syn match csStorage "\" +syn keyword csRepeat break continue do for foreach goto return while +syn keyword csConditional else if switch +syn keyword csLabel case default + +syn match csNamespaceAlias "@\=\h\w*\ze\_s*::" display +syn match csGlobalNamespaceAlias "global\ze\_s*::" display +syn cluster csNamespaceAlias contains=csGlobalNamespaceAlias,csNamespaceAlias,csNamespaceAliasQualifier + +" user labels +syn match csLabel display +^\s*\I\i*\s*:\%([^:]\)\@=+ + +" Function pointers +syn match csType "\" +syn keyword csAccessModifier internal private protected public +syn keyword csModifier operator nextgroup=csCheckedModifier skipwhite skipempty +syn keyword csCheckedModifier checked contained + +" TODO: in new out +syn keyword csModifier abstract const event override readonly sealed static virtual volatile +syn match csModifier "\<\%(extern\|fixed\|unsafe\)\>" +syn match csModifier "\" + +syn keyword csException try catch finally throw when +syn keyword csLinq ascending by descending equals from group in into join let on orderby select +syn match csLinq "\" + +" Type parameter constraint clause +syn match csStorage "\\ze\_s\+@\=\h\w*\_s*:" + +" Async +syn keyword csAsyncModifier async +syn keyword csAsyncOperator await + +syn match csStorage "\" +syn match csStorage "\%(\" + +syn match csStatement "\<\%(checked\|unchecked\|unsafe\)\ze\_s*{" +syn match csStatement "\" + +syn match csAccessor "\<\%(get\|set\|init\|add\|remove\)\ze\_s*\%([;{]\|=>\)" + +syn keyword csAccess base +syn match csAccess "\" + +" Extension method parameter modifier +syn match csModifier "\\{1,2}" display +syn match csOpSymbols "<\{1,2}" display +syn match csOpSymbols "[!><+\-*/]=" display +syn match csOpSymbols "[!*/^]" display +syn match csOpSymbols "=>" display +syn match csEndColon ";" display +syn match csLogicSymbols "&&" display +syn match csLogicSymbols "||" display +syn match csLogicSymbols "?" display +syn match csLogicSymbols ":" display +syn match csNamespaceAliasQualifier "::" display + +" Generics +syn region csGeneric matchgroup=csGenericBraces start="<" end=">" oneline contains=csType,csGeneric,@csNamespaceAlias,csUserType,csUserIdentifier,csUserInterface,csUserMethod + +" Comments +" +" PROVIDES: @csCommentHook +syn keyword csTodo contained TODO FIXME XXX NOTE HACK TBD +syn region csBlockComment start="/\*" end="\*/" contains=@csCommentHook,csTodo,@Spell +syn match csLineComment "//.*$" contains=@csCommentHook,csTodo,@Spell +syn cluster csComment contains=csLineComment,csBlockComment + +syn region csSummary start="^\s*/// ' + syn region csPreProcInclude start="^\s*\zs#\s*\%(load\|r\)\>" end="$" contains=csLineComment keepend + syn match csShebang "\%^#!.*" display +endif + +syn cluster csPreProcessor contains=csPreProc.* + +syn region csClassType start="\"hs=s+6 end=">" end="[:{]"me=e-1 contains=csClass +" csUserType may be defined by user scripts/plugins - it should be contained in csNewType +syn region csNewType start="\"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew,@csNamespaceAlias,csUserType +syn region csIsType start=" is "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs +syn region csIsType start=" as "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs +syn keyword csNew new contained +syn keyword csClass class contained +syn keyword csIsAs is as + +syn keyword csBoolean false true +syn keyword csNull null + +" Strings and constants +syn match csSpecialError "\\." contained +syn match csSpecialCharError "[^']" contained +" Character literals +syn match csSpecialChar +\\["\\'0abfnrtv]+ contained display +syn match csUnicodeNumber +\\x\x\{1,4}+ contained contains=csUnicodeSpecifier display +syn match csUnicodeNumber +\\u\x\{4}+ contained contains=csUnicodeSpecifier display +syn match csUnicodeNumber +\\U00\x\{6}+ contained contains=csUnicodeSpecifier display +syn match csUnicodeSpecifier +\\[uUx]+ contained display + +syn region csString matchgroup=csQuote start=+"+ end=+"\%(u8\)\=+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell +syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError,csUnicodeNumber display +syn match csCharacter "'\\''" contains=csSpecialChar display +syn match csCharacter "'[^\\]'" display + +" Numbers +syn case ignore +syn match csInteger "\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display +syn match csInteger "\<\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display +syn match csInteger "\<0x[[:xdigit:]_]*\x\%([lu]\|lu\|ul\)\=\>" display +syn match csReal "\<\d\+\%(_\+\d\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display +syn match csReal "\.\d\+\%(_\+\d\+\)*\%(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=\>" display +syn match csReal "\<\d\+\%(_\+\d\+\)*e[-+]\=\d\+\%(_\+\d\+\)*[fdm]\=\>" display +syn match csReal "\<\d\+\%(_\+\d\+\)*[fdm]\>" display +syn case match +syn cluster csNumber contains=csInteger,csReal + +syn region csInterpolatedString matchgroup=csQuote start=+\$"+ end=+"\%(u8\)\=+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,@Spell + +syn region csInterpolation matchgroup=csInterpolationDelimiter start=+{+ end=+}+ keepend contained contains=@csAll,csBraced,csBracketed,csInterpolationAlign,csInterpolationFormat +syn match csEscapedInterpolation "{{" transparent contains=NONE display +syn match csEscapedInterpolation "}}" transparent contains=NONE display +syn region csInterpolationAlign matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=@csNumber,csBoolean,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display +syn match csInterpolationFormat +:[^}]\+}+ contained contains=csInterpolationFormatDel display +syn match csInterpolationAlignDel +,+ contained display +syn match csInterpolationFormatDel +:+ contained display + +syn region csVerbatimString matchgroup=csQuote start=+@"+ end=+"\%(u8\)\=+ skip=+""+ extend contains=csVerbatimQuote,@Spell +syn match csVerbatimQuote +""+ contained + +syn region csInterVerbString matchgroup=csQuote start=+$@"+ start=+@$"+ end=+"\%(u8\)\=+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell + +syn cluster csString contains=csString,csInterpolatedString,csVerbatimString,csInterVerbString + +syn cluster csLiteral contains=csBoolean,@csNumber,csCharacter,@csString,csNull + +syn region csBracketed matchgroup=csParens start=+(+ end=+)+ extend contained transparent contains=@csAll,csBraced,csBracketed +syn region csBraced matchgroup=csParens start=+{+ end=+}+ extend contained transparent contains=@csAll,csBraced,csBracketed + +syn cluster csAll contains=@csLiteral,csClassType,@csComment,csEndColon,csIsType,csLabel,csLogicSymbols,csNewType,csOpSymbols,csParens,@csPreProcessor,csSummary,@csNamespaceAlias,csType,csUnicodeNumber,csUserType,csUserIdentifier,csUserInterface,csUserMethod + +" Keyword identifiers +syn match csIdentifier "@\h\w*" + +" The default highlighting. +hi def link csUnspecifiedStatement Statement +hi def link csUnsupportedStatement Statement +hi def link csUnspecifiedKeyword Keyword + +hi def link csGlobalNamespaceAlias Include + +hi def link csType Type +hi def link csClassType Type +hi def link csIsType Type + +hi def link csStorage Structure +hi def link csClass Structure +hi def link csNew Statement +hi def link csIsAs Keyword +hi def link csAccessor Keyword +hi def link csAccess Keyword + +hi def link csLinq Statement + +hi def link csStatement Statement +hi def link csRepeat Repeat +hi def link csConditional Conditional +hi def link csLabel Label +hi def link csException Exception + +hi def link csModifier StorageClass +hi def link csAccessModifier csModifier +hi def link csAsyncModifier csModifier +hi def link csCheckedModifier csModifier +hi def link csManagedModifier csModifier +hi def link csUsingModifier csModifier + +hi def link csTodo Todo +hi def link csComment Comment +hi def link csLineComment csComment +hi def link csBlockComment csComment + +hi def link csKeywordOperator Keyword +hi def link csAsyncOperator csKeywordOperator +hi def link csTypeOf csKeywordOperator +hi def link csTypeOfOperand Typedef +hi def link csTypeOfError Error +hi def link csOpSymbols Operator +hi def link csLogicSymbols Operator + +hi def link csSpecialError Error +hi def link csSpecialCharError Error +hi def link csString String +hi def link csQuote String +hi def link csInterpolatedString String +hi def link csVerbatimString String +hi def link csInterVerbString String +hi def link csVerbatimQuote SpecialChar + +hi def link csPreProc PreProc +hi def link csPreProcDeclaration Define +hi def link csPreProcConditional PreCondit +hi def link csPreProcLine csPreProc +hi def link csPreProcDiagnostic csPreProc +hi def link csPreProcRegion csPreProc +hi def link csPreProcPragma csPreProc +hi def link csPreProcNullable csPreProc +hi def link csPreProcInclude csPreProc +hi def link csShebang csPreProc + +hi def link csConstant Constant +hi def link csNull Constant +hi def link csBoolean Boolean +hi def link csCharacter Character +hi def link csSpecialChar SpecialChar +hi def link csInteger Number +hi def link csReal Float +hi def link csUnicodeNumber SpecialChar +hi def link csUnicodeSpecifier SpecialChar +hi def link csInterpolationDelimiter Delimiter +hi def link csInterpolationAlignDel csInterpolationDelimiter +hi def link csInterpolationFormat csInterpolationDelimiter +hi def link csInterpolationFormatDel csInterpolationDelimiter + +hi def link csGenericBraces csBraces + +" xml markup +hi def link csXmlLineCommentLeader Comment +hi def link csXmlLineComment Comment +hi def link csXmlBlockComment Comment +hi def link csXmlBlockCommentMiddle csXmlBlockComment +hi def link csXmlTag Statement +hi def link csXmlAttrib Statement + +let b:current_syntax = 'cs' + +let &cpoptions = s:save_cpo +unlet s:save_cpo + +" vim: vts=16,28 diff --git a/runtime/syntax/csc.vim b/runtime/syntax/csc.vim new file mode 100644 index 0000000..b1bc4d6 --- /dev/null +++ b/runtime/syntax/csc.vim @@ -0,0 +1,191 @@ +" Vim syntax file +" Language: Essbase script +" Maintainer: Raul Segura Acevedo +" Last change: 2011 Dec 25 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" folds: fix/endfix and comments +sy region EssFold start="\" +"hex number +sy match cscNumber contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +sy match cscOctal contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" +sy match cscFloat contained "\d\+f" +"floating point number, with dot, optional exponent +sy match cscFloat contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +sy match cscFloat contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +sy match cscFloat contained "\d\+e[-+]\=\d\+[fl]\=\>" + +sy region cscComment start="/\*" end="\*/" contains=@cscCommentGroup,cscSpaceE fold +sy match cscCommentE "\*/" + +sy keyword cscIfError IF ELSE ENDIF ELSEIF +sy keyword cscCondition contained IF ELSE ENDIF ELSEIF +sy keyword cscFunction contained VARPER VAR UDA TRUNCATE SYD SUMRANGE SUM +sy keyword cscFunction contained STDDEVRANGE STDDEV SPARENTVAL SLN SIBLINGS SHIFT +sy keyword cscFunction contained SANCESTVAL RSIBLINGS ROUND REMAINDER RELATIVE PTD +sy keyword cscFunction contained PRIOR POWER PARENTVAL NPV NEXT MOD MINRANGE MIN +sy keyword cscFunction contained MDSHIFT MDPARENTVAL MDANCESTVAL MAXRANGE MAX MATCH +sy keyword cscFunction contained LSIBLINGS LEVMBRS LEV +sy keyword cscFunction contained ISUDA ISSIBLING ISSAMELEV ISSAMEGEN ISPARENT ISMBR +sy keyword cscFunction contained ISLEV ISISIBLING ISIPARENT ISIDESC ISICHILD ISIBLINGS +sy keyword cscFunction contained ISIANCEST ISGEN ISDESC ISCHILD ISANCEST ISACCTYPE +sy keyword cscFunction contained IRSIBLINGS IRR INTEREST INT ILSIBLINGS IDESCENDANTS +sy keyword cscFunction contained ICHILDREN IANCESTORS IALLANCESTORS +sy keyword cscFunction contained GROWTH GENMBRS GEN FACTORIAL DISCOUNT DESCENDANTS +sy keyword cscFunction contained DECLINE CHILDREN CURRMBRRANGE CURLEV CURGEN +sy keyword cscFunction contained COMPOUNDGROWTH COMPOUND AVGRANGE AVG ANCESTVAL +sy keyword cscFunction contained ANCESTORS ALLANCESTORS ACCUM ABS +sy keyword cscFunction contained @VARPER @VAR @UDA @TRUNCATE @SYD @SUMRANGE @SUM +sy keyword cscFunction contained @STDDEVRANGE @STDDEV @SPARENTVAL @SLN @SIBLINGS @SHIFT +sy keyword cscFunction contained @SANCESTVAL @RSIBLINGS @ROUND @REMAINDER @RELATIVE @PTD +sy keyword cscFunction contained @PRIOR @POWER @PARENTVAL @NPV @NEXT @MOD @MINRANGE @MIN +sy keyword cscFunction contained @MDSHIFT @MDPARENTVAL @MDANCESTVAL @MAXRANGE @MAX @MATCH +sy keyword cscFunction contained @LSIBLINGS @LEVMBRS @LEV +sy keyword cscFunction contained @ISUDA @ISSIBLING @ISSAMELEV @ISSAMEGEN @ISPARENT @ISMBR +sy keyword cscFunction contained @ISLEV @ISISIBLING @ISIPARENT @ISIDESC @ISICHILD @ISIBLINGS +sy keyword cscFunction contained @ISIANCEST @ISGEN @ISDESC @ISCHILD @ISANCEST @ISACCTYPE +sy keyword cscFunction contained @IRSIBLINGS @IRR @INTEREST @INT @ILSIBLINGS @IDESCENDANTS +sy keyword cscFunction contained @ICHILDREN @IANCESTORS @IALLANCESTORS +sy keyword cscFunction contained @GROWTH @GENMBRS @GEN @FACTORIAL @DISCOUNT @DESCENDANTS +sy keyword cscFunction contained @DECLINE @CHILDREN @CURRMBRRANGE @CURLEV @CURGEN +sy keyword cscFunction contained @COMPOUNDGROWTH @COMPOUND @AVGRANGE @AVG @ANCESTVAL +sy keyword cscFunction contained @ANCESTORS @ALLANCESTORS @ACCUM @ABS +sy match cscFunction contained "@" +sy match cscError "@\s*\a*" contains=cscFunction + +sy match cscStatement "&" +sy keyword cscStatement AGG ARRAY VAR CCONV CLEARDATA DATACOPY + +sy match cscComE contained "^\s*CALC.*" +sy match cscComE contained "^\s*CLEARBLOCK.*" +sy match cscComE contained "^\s*SET.*" +sy match cscComE contained "^\s*FIX" +sy match cscComE contained "^\s*ENDFIX" +sy match cscComE contained "^\s*ENDLOOP" +sy match cscComE contained "^\s*LOOP" +" sy keyword cscCom FIX ENDFIX LOOP ENDLOOP + +sy match cscComW "^\s*CALC.*" +sy match cscCom "^\s*CALC\s*ALL" +sy match cscCom "^\s*CALC\s*AVERAGE" +sy match cscCom "^\s*CALC\s*DIM" +sy match cscCom "^\s*CALC\s*FIRST" +sy match cscCom "^\s*CALC\s*LAST" +sy match cscCom "^\s*CALC\s*TWOPASS" + +sy match cscComW "^\s*CLEARBLOCK.*" +sy match cscCom "^\s*CLEARBLOCK\s\+ALL" +sy match cscCom "^\s*CLEARBLOCK\s\+UPPER" +sy match cscCom "^\s*CLEARBLOCK\s\+NONINPUT" + +sy match cscComW "^\s*\{}~]\+\s*\|->\s*\)*=\([^=]\@=\|$\)' + sy region cscFormula transparent matchgroup=cscVarName start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\s*=\([^=]\@=\|\n\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition + sy region cscFormulaIn matchgroup=cscVarName transparent start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\(->\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\)*\s*=\([^=]\@=\|$\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition contained + sy match cscEq "==" +endif + +if !exists("csc_minlines") + let csc_minlines = 50 " mostly for () constructs +endif +exec "sy sync ccomment cscComment minlines=" . csc_minlines + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue + +hi def link cscNumber Number +hi def link cscOctal Number +hi def link cscFloat Float +hi def link cscParenE Error +hi def link cscCommentE Error +hi def link cscSpaceE Error +hi def link cscError Error +hi def link cscString String +hi def link cscComment Comment +hi def link cscTodo Todo +hi def link cscStatement Statement +hi def link cscIfError Error +hi def link cscEqError Error +hi def link cscFunction Statement +hi def link cscCondition Statement +hi def link cscWarn WarningMsg + +hi def link cscComE Error +hi def link cscCom Statement +hi def link cscComW WarningMsg + +hi def link cscBPMacro Identifier +hi def link cscBPW WarningMsg + + +let b:current_syntax = "csc" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/csdl.vim b/runtime/syntax/csdl.vim new file mode 100644 index 0000000..f7d30f1 --- /dev/null +++ b/runtime/syntax/csdl.vim @@ -0,0 +1,536 @@ +" Vim syntax file +" Language: Curated Stream Definition Language (CSDL) +" Maintainer: Jacek Artymiak +" Latest Revision: 25 February 2013 + +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=.,@,48-57,_,192-255 +syn case ignore + +syn match csdlKeyword "tag " +syn match csdlKeyword "stream " +syn match csdlKeyword "return " + +syn keyword csdlOperator contains +syn match csdlOperator "cs contains" +syn keyword csdlOperator substr +syn match csdlOperator "cs substr" +syn keyword csdlOperator contains_any +syn match csdlOperator "cs contains_any" +syn keyword csdlOperator any +syn match csdlOperator "cs any" +syn keyword csdlOperator contains_near +syn match csdlOperator "cs contains_near" +syn keyword csdlOperator exists +syn keyword csdlOperator in +syn keyword csdlOperator url_in +syn match csdlOperator "==" +syn match csdlOperator "!=" +syn match csdlOperator "cs ==" +syn match csdlOperator "cs !=" +syn match csdlOperator ">" +syn match csdlOperator ">=" +syn match csdlOperator "<" +syn match csdlOperator "<=" +syn keyword csdlOperator regex_partial +syn keyword csdlOperator regex_exact +syn keyword csdlOperator geo_box +syn keyword csdlOperator geo_radius +syn keyword csdlOperator geo_polygon + +syn keyword csdlLogicalOperator and +syn keyword csdlLogicalOperator or +syn keyword csdlLogicalOperator not + +syn match csdlTarget 'reddit\.title' +syn match csdlTarget 'reddit\.content' +syn match csdlTarget 'reddit\.contenttype' +syn match csdlTarget 'reddit\.link' +syn match csdlTarget 'reddit\.author\.name' +syn match csdlTarget 'reddit\.author\.link' +syn match csdlTarget 'reddit\.type' +syn match csdlTarget 'reddit\.thread' +syn match csdlTarget 'interaction\.type' +syn match csdlTarget 'interaction\.title' +syn match csdlTarget 'interaction\.content' +syn match csdlTarget 'interaction\.source' +syn match csdlTarget 'interaction\.geo' +syn match csdlTarget 'interaction\.link' +syn match csdlTarget 'interaction\.author\.username' +syn match csdlTarget 'interaction\.author\.name' +syn match csdlTarget 'interaction\.author\.id' +syn match csdlTarget 'interaction\.author\.avatar' +syn match csdlTarget 'interaction\.author\.link' +syn match csdlTarget 'interaction\.sample' +syn match csdlTarget 'links\.title' +syn match csdlTarget 'links\.url' +syn keyword csdlTarget links.normalized_url +syn match csdlTarget 'links\.hops' +syn match csdlTarget 'links\.code' +syn match csdlTarget 'links\.domain' +syn keyword csdlTarget links.retweet_count +syn match csdlTarget 'links\.age' +syn keyword csdlTarget links.meta.content_type +syn match csdlTarget 'links\.meta\.charset' +syn match csdlTarget 'links\.meta\.lang' +syn match csdlTarget 'links\.meta\.keywords' +syn match csdlTarget 'links\.meta\.description' +syn match csdlTarget 'links\.meta\.newskeywords' +syn match csdlTarget 'links\.meta\.standout' +syn match csdlTarget 'links\.meta\.opengraph\.type' +syn match csdlTarget 'links\.meta\.opengraph\.title' +syn match csdlTarget 'links\.meta\.opengraph\.image' +syn match csdlTarget 'links\.meta\.opengraph\.url' +syn match csdlTarget 'links\.meta\.opengraph\.description' +syn keyword csdlTarget links.meta.opengraph.site_name +syn match csdlTarget 'links\.meta\.opengraph\.email' +syn keyword csdlTarget links.meta.opengraph.phone_number +syn keyword csdlTarget links.meta.opengraph.fax_number +syn match csdlTarget 'links\.meta\.opengraph\.geo' +syn keyword csdlTarget links.meta.opengraph.street_address +syn match csdlTarget 'links\.meta\.opengraph\.locality' +syn match csdlTarget 'links\.meta\.opengraph\.region' +syn keyword csdlTarget links.meta.opengraph.postal_code +syn match csdlTarget 'links\.meta\.opengraph\.activity' +syn match csdlTarget 'links\.meta\.opengraph\.sport' +syn match csdlTarget 'links\.meta\.opengraph\.bar' +syn match csdlTarget 'links\.meta\.opengraph\.company' +syn match csdlTarget 'links\.meta\.opengraph\.cafe' +syn match csdlTarget 'links\.meta\.opengraph\.hotel' +syn match csdlTarget 'links\.meta\.opengraph\.restaurant' +syn match csdlTarget 'links\.meta\.opengraph\.cause' +syn keyword csdlTarget links.meta.opengraph.sports_league +syn keyword csdlTarget links.meta.opengraph.sports_team +syn match csdlTarget 'links\.meta\.opengraph\.band' +syn match csdlTarget 'links\.meta\.opengraph\.government' +syn keyword csdlTarget links.meta.opengraph.non_profit +syn match csdlTarget 'links\.meta\.opengraph\.school' +syn match csdlTarget 'links\.meta\.opengraph\.university' +syn match csdlTarget 'links\.meta\.opengraph\.actor' +syn match csdlTarget 'links\.meta\.opengraph\.athlete' +syn match csdlTarget 'links\.meta\.opengraph\.author' +syn match csdlTarget 'links\.meta\.opengraph\.director' +syn match csdlTarget 'links\.meta\.opengraph\.musician' +syn match csdlTarget 'links\.meta\.opengraph\.politician' +syn keyword csdlTarget links.meta.opengraph.public_figure +syn match csdlTarget 'links\.meta\.opengraph\.city' +syn match csdlTarget 'links\.meta\.opengraph\.country' +syn match csdlTarget 'links\.meta\.opengraph\.landmark' +syn keyword csdlTarget links.meta.opengraph.state_province +syn match csdlTarget 'links\.meta\.opengraph\.album' +syn match csdlTarget 'links\.meta\.opengraph\.book' +syn match csdlTarget 'links\.meta\.opengraph\.drink' +syn match csdlTarget 'links\.meta\.opengraph\.food' +syn match csdlTarget 'links\.meta\.opengraph\.game' +syn match csdlTarget 'links\.meta\.opengraph\.movie' +syn match csdlTarget 'links\.meta\.opengraph\.product' +syn match csdlTarget 'links\.meta\.opengraph\.song' +syn keyword csdlTarget links.meta.opengraph.tv_show +syn match csdlTarget 'links\.meta\.opengraph\.blog' +syn match csdlTarget 'links\.meta\.opengraph\.website' +syn match csdlTarget 'links\.meta\.opengraph\.article' +syn match csdlTarget 'links\.meta\.twitter\.card' +syn match csdlTarget 'links\.meta\.twitter\.site' +syn keyword csdlTarget links.meta.twitter.site_id +syn match csdlTarget 'links\.meta\.twitter\.creator' +syn keyword csdlTarget links.meta.twitter.creator_id +syn match csdlTarget 'links\.meta\.twitter\.url' +syn match csdlTarget 'links\.meta\.twitter\.description' +syn match csdlTarget 'links\.meta\.twitter\.title' +syn match csdlTarget 'links\.meta\.twitter\.image' +syn keyword csdlTarget links.meta.twitter.image_width +syn keyword csdlTarget links.meta.twitter.image_height +syn match csdlTarget 'links\.meta\.twitter\.player' +syn keyword csdlTarget links.meta.twitter.player_width +syn keyword csdlTarget links.meta.twitter.player_height +syn keyword csdlTarget links.meta.twitter.player_stream +syn keyword csdlTarget links.meta.twitter.player_stream_content_type +syn match csdlTarget 'myspace\.link' +syn match csdlTarget 'myspace\.content' +syn match csdlTarget 'myspace\.contenttype' +syn match csdlTarget 'myspace\.category' +syn match csdlTarget 'myspace\.author\.username' +syn match csdlTarget 'myspace\.author\.name' +syn match csdlTarget 'myspace\.author\.id' +syn match csdlTarget 'myspace\.author\.link' +syn match csdlTarget 'myspace\.author\.avatar' +syn match csdlTarget 'myspace\.geo' +syn match csdlTarget 'myspace\.verb' +syn match csdlTarget 'newscred\.type' +syn match csdlTarget 'newscred\.article\.domain' +syn match csdlTarget 'newscred\.video\.domain' +syn match csdlTarget 'newscred\.article\.topics' +syn match csdlTarget 'newscred\.video\.topics' +syn match csdlTarget 'newscred\.article\.category' +syn match csdlTarget 'newscred\.video\.category' +syn match csdlTarget 'newscred\.article\.title' +syn match csdlTarget 'newscred\.video\.title' +syn match csdlTarget 'newscred\.article\.content' +syn match csdlTarget 'newscred\.article\.fulltext' +syn match csdlTarget 'newscred\.article\.authors' +syn match csdlTarget 'newscred\.image\.caption' +syn match csdlTarget 'newscred\.video\.caption' +syn match csdlTarget 'newscred\.image\.attribution\.text' +syn match csdlTarget 'newscred\.image\.attribution\.link' +syn match csdlTarget 'newscred\.source\.name' +syn match csdlTarget 'newscred\.source\.link' +syn match csdlTarget 'newscred\.source\.domain' +syn keyword csdlTarget newscred.source.media_type +syn keyword csdlTarget newscred.source.company_type +syn match csdlTarget 'newscred\.source\.country' +syn match csdlTarget 'newscred\.source\.circulation' +syn match csdlTarget 'newscred\.source\.founded' +syn match csdlTarget 'imdb\.title' +syn match csdlTarget 'imdb\.content' +syn match csdlTarget 'imdb\.contenttype' +syn match csdlTarget 'imdb\.link' +syn match csdlTarget 'imdb\.author\.name' +syn match csdlTarget 'imdb\.author\.link' +syn match csdlTarget 'imdb\.type' +syn match csdlTarget 'imdb\.thread' +syn match csdlTarget 'amazon\.title' +syn match csdlTarget 'amazon\.content' +syn match csdlTarget 'amazon\.contenttype' +syn match csdlTarget 'amazon\.link' +syn match csdlTarget 'amazon\.author\.name' +syn match csdlTarget 'amazon\.author\.link' +syn match csdlTarget 'amazon\.type' +syn match csdlTarget 'amazon\.thread' +syn match csdlTarget 'salience\.content\.sentiment' +syn match csdlTarget 'salience\.content\.topics' +syn match csdlTarget 'salience\.title\.sentiment' +syn match csdlTarget 'salience\.title\.topics' +syn match csdlTarget 'salience\.content\.entities\.name' +syn match csdlTarget 'salience\.content\.entities\.type' +syn match csdlTarget 'salience\.title\.entities\.name' +syn match csdlTarget 'salience\.title\.entities\.type' +syn match csdlTarget 'klout\.score' +syn match csdlTarget 'klout\.network' +syn match csdlTarget 'klout\.amplification' +syn keyword csdlTarget klout.true_reach +syn match csdlTarget 'klout\.topics' +syn match csdlTarget 'wikipedia\.author\.talk' +syn match csdlTarget 'wikipedia\.author\.contributions' +syn match csdlTarget 'wikipedia\.author\.username' +syn match csdlTarget 'wikipedia\.body' +syn match csdlTarget 'wikipedia\.title' +syn match csdlTarget 'wikipedia\.images' +syn match csdlTarget 'wikipedia\.categories' +syn match csdlTarget 'wikipedia\.externallinks' +syn match csdlTarget 'wikipedia\.ns' +syn match csdlTarget 'wikipedia\.namespace' +syn match csdlTarget 'wikipedia\.pageid' +syn match csdlTarget 'wikipedia\.parentid' +syn match csdlTarget 'wikipedia\.oldlen' +syn match csdlTarget 'wikipedia\.newlen' +syn match csdlTarget 'wikipedia\.changetype' +syn match csdlTarget 'wikipedia\.diff\.from' +syn match csdlTarget 'wikipedia\.diff\.to' +syn match csdlTarget 'wikipedia\.diff\.changes\.added' +syn match csdlTarget 'wikipedia\.diff\.changes\.removed' +syn keyword csdlTarget demographic.twitter_activity +syn match csdlTarget 'demographic\.location\.country' +syn keyword csdlTarget demographic.location.us_state +syn match csdlTarget 'demographic\.location\.city' +syn match csdlTarget 'demographic\.type' +syn match csdlTarget 'demographic\.sex' +syn match csdlTarget 'demographic\.status\.relationship' +syn match csdlTarget 'demographic\.status\.work' +syn keyword csdlTarget demographic.likes_and_interests +syn keyword csdlTarget demographic.first_language +syn match csdlTarget 'demographic\.professions' +syn match csdlTarget 'demographic\.services' +syn keyword csdlTarget demographic.large_accounts_followed +syn keyword csdlTarget demographic.age_range.start +syn keyword csdlTarget demographic.age_range.end +syn match csdlTarget 'demographic\.income\.start' +syn match csdlTarget 'demographic\.income\.end' +syn keyword csdlTarget demographic.main_street.dressed_by +syn keyword csdlTarget demographic.main_street.shop_at +syn keyword csdlTarget demographic.main_street.eat_and_drink_at +syn match csdlTarget 'demographic\.accounts\.categories' +syn match csdlTarget 'tumblr\.activity' +syn match csdlTarget 'tumblr\.source\.blogid' +syn match csdlTarget 'tumblr\.dest\.blogid' +syn match csdlTarget 'tumblr\.dest\.postid' +syn match csdlTarget 'tumblr\.root\.blogid' +syn match csdlTarget 'tumblr\.root\.postid' +syn match csdlTarget 'tumblr\.blogid' +syn keyword csdlTarget tumblr.blog_name +syn match csdlTarget 'tumblr\.type' +syn match csdlTarget 'tumblr\.title' +syn match csdlTarget 'tumblr\.body' +syn match csdlTarget 'tumblr\.text' +syn match csdlTarget 'tumblr\.tags' +syn keyword csdlTarget tumblr.track_name +syn match csdlTarget 'tumblr\.album' +syn match csdlTarget 'tumblr\.link' +syn match csdlTarget 'tumblr\.meta\.url' +syn match csdlTarget 'tumblr\.meta\.type' +syn match csdlTarget 'tumblr\.meta\.description' +syn keyword csdlTarget tumblr.meta.likes_local +syn keyword csdlTarget tumblr.meta.likes_global +syn keyword csdlTarget tumblr.meta.reblogged_global +syn match csdlTarget 'demographic\.gender' +syn match csdlTarget 'flickr\.title' +syn match csdlTarget 'flickr\.content' +syn match csdlTarget 'flickr\.contenttype' +syn match csdlTarget 'flickr\.link' +syn match csdlTarget 'flickr\.author\.name' +syn match csdlTarget 'flickr\.author\.link' +syn match csdlTarget 'flickr\.author\.username' +syn match csdlTarget 'flickr\.type' +syn match csdlTarget 'flickr\.thread' +syn match csdlTarget 'twitter\.text' +syn match csdlTarget 'twitter\.source' +syn match csdlTarget 'twitter\.mentions' +syn keyword csdlTarget twitter.mention_ids +syn match csdlTarget 'twitter\.links' +syn match csdlTarget 'twitter\.domains' +syn keyword csdlTarget twitter.in_reply_to_screen_name +syn keyword csdlTarget twitter.in_reply_to_user_id +syn keyword csdlTarget twitter.in_reply_to_status_id +syn keyword csdlTarget twitter.filter_level +syn match csdlTarget 'twitter\.lang' +syn match csdlTarget 'twitter\.geo' +syn match csdlTarget 'twitter\.user\.description' +syn match csdlTarget 'twitter\.user\.location' +syn keyword csdlTarget twitter.user.statuses_count +syn keyword csdlTarget twitter.user.followers_count +syn keyword csdlTarget twitter.user.follower_ratio +syn keyword csdlTarget twitter.user.profile_age +syn keyword csdlTarget twitter.user.friends_count +syn keyword csdlTarget twitter.user.screen_name +syn match csdlTarget 'twitter\.user\.lang' +syn keyword csdlTarget twitter.user.time_zone +syn match csdlTarget 'twitter\.user\.name' +syn match csdlTarget 'twitter\.user\.id' +syn keyword csdlTarget twitter.user.listed_count +syn match csdlTarget 'twitter\.user\.url' +syn match csdlTarget 'twitter\.user\.verified' +syn keyword csdlTarget twitter.place.place_type +syn match csdlTarget 'twitter\.place\.country' +syn keyword csdlTarget twitter.place.country_code +syn keyword csdlTarget twitter.place.full_name +syn match csdlTarget 'twitter\.place\.name' +syn match csdlTarget 'twitter\.place\.url' +syn match csdlTarget 'twitter\.place\.attributes\.locality' +syn match csdlTarget 'twitter\.place\.attributes\.region' +syn keyword csdlTarget twitter.place.attributes.street_address +syn match csdlTarget 'twitter\.status' +syn match csdlTarget 'twitter\.retweet\.text' +syn match csdlTarget 'twitter\.retweet\.elapsed' +syn match csdlTarget 'twitter\.retweet\.source' +syn keyword csdlTarget twitter.retweet.filter_level +syn match csdlTarget 'twitter\.retweet\.lang' +syn match csdlTarget 'twitter\.retweet\.user\.description' +syn match csdlTarget 'twitter\.retweet\.user\.location' +syn keyword csdlTarget twitter.retweet.user.statuses_count +syn keyword csdlTarget twitter.retweet.user.followers_count +syn keyword csdlTarget twitter.retweet.user.follower_ratio +syn keyword csdlTarget twitter.retweet.user.profile_age +syn keyword csdlTarget twitter.retweet.user.friends_count +syn keyword csdlTarget twitter.retweet.user.screen_name +syn match csdlTarget 'twitter\.retweet\.user\.lang' +syn keyword csdlTarget twitter.retweet.user.time_zone +syn match csdlTarget 'twitter\.retweet\.user\.name' +syn match csdlTarget 'twitter\.retweet\.user\.id' +syn keyword csdlTarget twitter.retweet.user.listed_count +syn match csdlTarget 'twitter\.retweet\.user\.url' +syn match csdlTarget 'twitter\.retweet\.user\.verified' +syn match csdlTarget 'twitter\.retweeted\.id' +syn match csdlTarget 'twitter\.retweeted\.source' +syn keyword csdlTarget twitter.retweeted.in_reply_to_screen_name +syn keyword csdlTarget twitter.retweeted.in_reply_to_user_id_str +syn keyword csdlTarget twitter.retweeted.in_reply_to_status_id +syn match csdlTarget 'twitter\.retweet\.count' +syn match csdlTarget 'twitter\.retweet\.mentions' +syn keyword csdlTarget twitter.retweet.mention_ids +syn match csdlTarget 'twitter\.retweet\.links' +syn match csdlTarget 'twitter\.retweet\.domains' +syn match csdlTarget 'twitter\.retweeted\.user\.description' +syn match csdlTarget 'twitter\.retweeted\.user\.location' +syn keyword csdlTarget twitter.retweeted.user.statuses_count +syn keyword csdlTarget twitter.retweeted.user.followers_count +syn keyword csdlTarget twitter.retweeted.user.follower_ratio +syn keyword csdlTarget twitter.retweeted.user.profile_age +syn keyword csdlTarget twitter.retweeted.user.friends_count +syn keyword csdlTarget twitter.retweeted.user.screen_name +syn match csdlTarget 'twitter\.retweeted\.user\.lang' +syn keyword csdlTarget twitter.retweeted.user.time_zone +syn match csdlTarget 'twitter\.retweeted\.user\.name' +syn match csdlTarget 'twitter\.retweeted\.user\.id' +syn keyword csdlTarget twitter.retweeted.user.listed_count +syn match csdlTarget 'twitter\.retweeted\.user\.url' +syn match csdlTarget 'twitter\.retweeted\.user\.verified' +syn match csdlTarget 'twitter\.retweeted\.geo' +syn keyword csdlTarget twitter.retweeted.place.place_type +syn match csdlTarget 'twitter\.retweeted\.place\.country' +syn keyword csdlTarget twitter.retweeted.place.country_code +syn keyword csdlTarget twitter.retweeted.place.full_name +syn match csdlTarget 'twitter\.retweeted\.place\.name' +syn match csdlTarget 'twitter\.retweeted\.place\.url' +syn match csdlTarget 'twitter\.retweeted\.place\.attributes' +syn match csdlTarget 'twitter\.hashtags' +syn match csdlTarget 'twitter\.retweet\.hashtags' +syn match csdlTarget 'twitter\.media\.type' +syn keyword csdlTarget twitter.media.media_url +syn keyword csdlTarget twitter.media.display_url +syn match csdlTarget 'twitter\.retweet\.media\.type' +syn keyword csdlTarget twitter.retweet.media.media_url +syn keyword csdlTarget twitter.retweet.media.display_url +syn match csdlTarget 'blog\.title' +syn match csdlTarget 'blog\.content' +syn match csdlTarget 'blog\.contenttype' +syn match csdlTarget 'blog\.link' +syn match csdlTarget 'blog\.domain' +syn match csdlTarget 'blog\.author\.name' +syn match csdlTarget 'blog\.author\.link' +syn match csdlTarget 'blog\.author\.avatar' +syn match csdlTarget 'blog\.author\.username' +syn match csdlTarget 'blog\.type' +syn match csdlTarget 'blog\.post\.link' +syn match csdlTarget 'blog\.post\.title' +syn match csdlTarget 'facebook\.author\.name' +syn match csdlTarget 'facebook\.author\.link' +syn match csdlTarget 'facebook\.author\.id' +syn match csdlTarget 'facebook\.author\.avatar' +syn match csdlTarget 'facebook\.message' +syn match csdlTarget 'facebook\.description' +syn match csdlTarget 'facebook\.caption' +syn match csdlTarget 'facebook\.type' +syn match csdlTarget 'facebook\.application' +syn match csdlTarget 'facebook\.source' +syn match csdlTarget 'facebook\.link' +syn match csdlTarget 'facebook\.name' +syn match csdlTarget 'facebook\.to\.names' +syn match csdlTarget 'facebook\.to\.ids' +syn match csdlTarget 'facebook\.og\.title' +syn match csdlTarget 'facebook\.og\.location' +syn match csdlTarget 'facebook\.og\.photos' +syn match csdlTarget 'facebook\.og\.by' +syn match csdlTarget 'facebook\.og\.description' +syn match csdlTarget 'facebook\.og\.type' +syn match csdlTarget 'facebook\.og\.length' +syn match csdlTarget 'facebook\.likes\.count' +syn match csdlTarget 'facebook\.likes\.names' +syn match csdlTarget 'facebook\.likes\.ids' +syn match csdlTarget 'topix\.title' +syn match csdlTarget 'topix\.content' +syn match csdlTarget 'topix\.contenttype' +syn match csdlTarget 'topix\.link' +syn match csdlTarget 'topix\.author\.name' +syn match csdlTarget 'topix\.type' +syn match csdlTarget 'topix\.thread' +syn match csdlTarget 'topix\.author\.location' +syn match csdlTarget 'bitly\.user\.agent' +syn keyword csdlTarget bitly.url_hash +syn match csdlTarget 'bitly\.share\.hash' +syn match csdlTarget 'bitly\.cname' +syn keyword csdlTarget bitly.referring_url +syn keyword csdlTarget bitly.referring_domain +syn match csdlTarget 'bitly\.url' +syn match csdlTarget 'bitly\.domain' +syn keyword csdlTarget bitly.country_code +syn keyword csdlTarget bitly.geo_region_code +syn match csdlTarget 'bitly\.country' +syn keyword csdlTarget bitly.geo_region +syn keyword csdlTarget bitly.geo_city +syn match csdlTarget 'bitly\.geo' +syn match csdlTarget 'bitly\.timezone' +syn match csdlTarget 'trends\.type' +syn match csdlTarget 'trends\.content' +syn match csdlTarget 'trends\.source' +syn match csdlTarget 'board\.title' +syn match csdlTarget 'board\.content' +syn match csdlTarget 'board\.contenttype' +syn match csdlTarget 'board\.link' +syn match csdlTarget 'board\.domain' +syn match csdlTarget 'board\.author\.name' +syn match csdlTarget 'board\.author\.link' +syn match csdlTarget 'board\.author\.avatar' +syn match csdlTarget 'board\.author\.username' +syn match csdlTarget 'board\.type' +syn match csdlTarget 'board\.thread' +syn match csdlTarget 'board\.author\.location' +syn match csdlTarget 'board\.author\.signature' +syn match csdlTarget 'board\.author\.registered' +syn match csdlTarget 'board\.author\.age' +syn match csdlTarget 'board\.author\.gender' +syn match csdlTarget 'video\.title' +syn match csdlTarget 'video\.content' +syn match csdlTarget 'video\.contenttype' +syn match csdlTarget 'video\.domain' +syn match csdlTarget 'video\.author\.name' +syn match csdlTarget 'video\.author\.link' +syn match csdlTarget 'video\.author\.avatar' +syn match csdlTarget 'video\.author\.username' +syn match csdlTarget 'video\.type' +syn match csdlTarget 'video\.videolink' +syn match csdlTarget 'video\.commentslink' +syn match csdlTarget 'video\.duration' +syn match csdlTarget 'video\.thumbnail' +syn match csdlTarget 'video\.category' +syn match csdlTarget 'video\.tags' +syn match csdlTarget '2ch\.title' +syn match csdlTarget '2ch\.content' +syn match csdlTarget '2ch\.contenttype' +syn match csdlTarget '2ch\.link' +syn match csdlTarget '2ch\.author\.name' +syn match csdlTarget '2ch\.type' +syn match csdlTarget '2ch\.thread' +syn match csdlTarget 'dailymotion\.title' +syn match csdlTarget 'dailymotion\.content' +syn match csdlTarget 'dailymotion\.contenttype' +syn match csdlTarget 'dailymotion\.author\.link' +syn match csdlTarget 'dailymotion\.author\.username' +syn match csdlTarget 'dailymotion\.videolink' +syn match csdlTarget 'dailymotion\.duration' +syn match csdlTarget 'dailymotion\.thumbnail' +syn match csdlTarget 'dailymotion\.category' +syn match csdlTarget 'dailymotion\.tags' +syn match csdlTarget 'language\.tag' +syn match csdlTarget 'language\.confidence' +syn match csdlTarget 'digg\.type' +syn match csdlTarget 'digg\.user\.name' +syn match csdlTarget 'digg\.user\.fullname' +syn match csdlTarget 'digg\.user\.registered' +syn match csdlTarget 'digg\.user\.profileviews' +syn match csdlTarget 'digg\.user\.icon' +syn match csdlTarget 'digg\.user\.links' +syn match csdlTarget 'digg\.item\.status' +syn match csdlTarget 'digg\.item\.description' +syn match csdlTarget 'digg\.item\.title' +syn match csdlTarget 'digg\.item\.diggs' +syn match csdlTarget 'digg\.item\.comments' +syn match csdlTarget 'digg\.item\.topic' +syn match csdlTarget 'digg\.comment\.buries' +syn match csdlTarget 'digg\.comment\.diggs' +syn match csdlTarget 'digg\.comment\.text' +syn match csdlTarget 'youtube\.title' +syn match csdlTarget 'youtube\.content' +syn match csdlTarget 'youtube\.contenttype' +syn match csdlTarget 'youtube\.author\.name' +syn match csdlTarget 'youtube\.author\.link' +syn match csdlTarget 'youtube\.type' +syn match csdlTarget 'youtube\.videolink' +syn match csdlTarget 'youtube\.commentslink' +syn match csdlTarget 'youtube\.duration' +syn match csdlTarget 'youtube\.thumbnail' +syn match csdlTarget 'youtube\.category' +syn match csdlTarget 'youtube\.tags' + +syn match csdlComment "^\/\/.*$" +syn match csdlComment "^\/\*.*$" +syn match csdlComment "^.*\*\/$" + +highlight link csdlKeyword Statement +highlight link csdlOperator Operator +highlight link csdlLogicalOperator Operator +highlight link csdlTarget Constant +highlight link csdlComment Comment +" +let b:current_syntax = "csdl" diff --git a/runtime/syntax/csh.vim b/runtime/syntax/csh.vim new file mode 100644 index 0000000..6a056c7 --- /dev/null +++ b/runtime/syntax/csh.vim @@ -0,0 +1,143 @@ +" Vim syntax file +" Language: C-shell (csh) +" Maintainer: Charles E. Campbell +" Last Change: Aug 31, 2016 +" Version: 14 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_CSH + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" clusters: +syn cluster cshQuoteList contains=cshDblQuote,cshSnglQuote,cshBckQuote +syn cluster cshVarList contains=cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst + +" Variables which affect the csh itself +syn match cshSetVariables contained "argv\|histchars\|ignoreeof\|noglob\|prompt\|status" +syn match cshSetVariables contained "cdpath\|history\|mail\|nonomatch\|savehist\|time" +syn match cshSetVariables contained "cwd\|home\|noclobber\|path\|shell\|verbose" +syn match cshSetVariables contained "echo" + +syn case ignore +syn keyword cshTodo contained todo +syn case match + +" Variable Name Expansion Modifiers +syn match cshModifier contained ":\(h\|t\|r\|q\|x\|gh\|gt\|gr\)" + +" Strings and Comments +syn match cshNoEndlineDQ contained "[^\"]\(\\\\\)*$" +syn match cshNoEndlineSQ contained "[^\']\(\\\\\)*$" +syn match cshNoEndlineBQ contained "[^\`]\(\\\\\)*$" + +syn region cshDblQuote start=+[^\\]"+lc=1 skip=+\\\\\|\\"+ end=+"+ contains=cshSpecial,cshShellVariables,cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst,cshNoEndlineDQ,cshBckQuote,@Spell +syn region cshSnglQuote start=+[^\\]'+lc=1 skip=+\\\\\|\\'+ end=+'+ contains=cshNoEndlineSQ,@Spell +syn region cshBckQuote start=+[^\\]`+lc=1 skip=+\\\\\|\\`+ end=+`+ contains=cshNoEndlineBQ,@Spell +syn region cshDblQuote start=+^"+ skip=+\\\\\|\\"+ end=+"+ contains=cshSpecial,cshExtVar,cshSelector,cshQtyWord,cshArgv,cshSubst,cshNoEndlineDQ,@Spell +syn region cshSnglQuote start=+^'+ skip=+\\\\\|\\'+ end=+'+ contains=cshNoEndlineSQ,@Spell +syn region cshBckQuote start=+^`+ skip=+\\\\\|\\`+ end=+`+ contains=cshNoEndlineBQ,@Spell +syn cluster cshCommentGroup contains=cshTodo,@Spell +syn match cshComment "#.*$" contains=@cshCommentGroup + +" A bunch of useful csh keywords +syn keyword cshStatement alias end history onintr setenv unalias +syn keyword cshStatement cd eval kill popd shift unhash +syn keyword cshStatement chdir exec login pushd source +syn keyword cshStatement continue exit logout rehash time unsetenv +syn keyword cshStatement dirs glob nice repeat umask wait +syn keyword cshStatement echo goto nohup + +syn keyword cshConditional break case else endsw switch +syn keyword cshConditional breaksw default endif +syn keyword cshRepeat foreach + +" Special environment variables +syn keyword cshShellVariables HOME LOGNAME PATH TERM USER + +" Modifiable Variables without {} +syn match cshExtVar "\$[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=" contains=cshModifier +syn match cshSelector "\$[a-zA-Z_][a-zA-Z0-9_]*\[[a-zA-Z_]\+\]\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=" contains=cshModifier +syn match cshQtyWord "\$#[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=" contains=cshModifier +syn match cshArgv "\$\d\+\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=" contains=cshModifier +syn match cshArgv "\$\*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=" contains=cshModifier + +" Modifiable Variables with {} +syn match cshExtVar "\${[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}" contains=cshModifier +syn match cshSelector "\${[a-zA-Z_][a-zA-Z0-9_]*\[[a-zA-Z_]\+\]\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}" contains=cshModifier +syn match cshQtyWord "\${#[a-zA-Z_][a-zA-Z0-9_]*\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}" contains=cshModifier +syn match cshArgv "\${\d\+\(:h\|:t\|:r\|:q\|:x\|:gh\|:gt\|:gr\)\=}" contains=cshModifier + +" UnModifiable Substitutions +syn match cshSubstError "\$?[a-zA-Z_][a-zA-Z0-9_]*:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)" +syn match cshSubstError "\${?[a-zA-Z_][a-zA-Z0-9_]*:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)}" +syn match cshSubstError "\$?[0$<]:\(h\|t\|r\|q\|x\|gh\|gt\|gr\)" +syn match cshSubst "\$?[a-zA-Z_][a-zA-Z0-9_]*" +syn match cshSubst "\${?[a-zA-Z_][a-zA-Z0-9_]*}" +syn match cshSubst "\$?[0$<]" + +" I/O redirection +syn match cshRedir ">>&!\|>&!\|>>&\|>>!\|>&\|>!\|>>\|<<\|>\|<" + +" Handle set expressions +syn region cshSetExpr matchgroup=cshSetStmt start="\\|\" end="$\|;" contains=cshComment,cshSetStmt,cshSetVariables,@cshQuoteList + +" Operators and Expression-Using constructs +"syn match cshOperator contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|\|%\|&\|+\|-\|/\|<\|>\||" +syn match cshOperator contained "&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||" +syn match cshOperator contained "[(){}]" +syn region cshTest matchgroup=cshStatement start="\\|\" skip="\\$" matchgroup=cshStatement end="\\|$" contains=cshComment,cshOperator,@cshQuoteList,@cshVarLIst + +" Highlight special characters (those which have a backslash) differently +syn match cshSpecial contained "\\\d\d\d\|\\[abcfnrtv\\]" +syn match cshNumber "-\=\<\d\+\>" + +" All other identifiers +"syn match cshIdentifier "\<[a-zA-Z._][a-zA-Z0-9._]*\>" + +" Shell Input Redirection (Here Documents) +syn region cshHereDoc matchgroup=cshRedir start="<<-\=\s*\**\z(\h\w*\)\**" matchgroup=cshRedir end="^\z1$" + +" Define the default highlighting. +if !exists("skip_csh_syntax_inits") + + hi def link cshArgv cshVariables + hi def link cshBckQuote cshCommand + hi def link cshDblQuote cshString + hi def link cshExtVar cshVariables + hi def link cshHereDoc cshString + hi def link cshNoEndlineBQ cshNoEndline + hi def link cshNoEndlineDQ cshNoEndline + hi def link cshNoEndlineSQ cshNoEndline + hi def link cshQtyWord cshVariables + hi def link cshRedir cshOperator + hi def link cshSelector cshVariables + hi def link cshSetStmt cshStatement + hi def link cshSetVariables cshVariables + hi def link cshSnglQuote cshString + hi def link cshSubst cshVariables + + hi def link cshCommand Statement + hi def link cshComment Comment + hi def link cshConditional Conditional + hi def link cshIdentifier Error + hi def link cshModifier Special + hi def link cshNoEndline Error + hi def link cshNumber Number + hi def link cshOperator Operator + hi def link cshRedir Statement + hi def link cshRepeat Repeat + hi def link cshShellVariables Special + hi def link cshSpecial Special + hi def link cshStatement Statement + hi def link cshString String + hi def link cshSubstError Error + hi def link cshTodo Todo + hi def link cshVariables Type + +endif + +let b:current_syntax = "csh" + +" vim: ts=18 diff --git a/runtime/syntax/csp.vim b/runtime/syntax/csp.vim new file mode 100644 index 0000000..8001b1f --- /dev/null +++ b/runtime/syntax/csp.vim @@ -0,0 +1,182 @@ +" Vim syntax file +" Language: CSP (Communication Sequential Processes, using FDR input syntax) +" Maintainer: Jan Bredereke +" Version: 0.6.0 +" Last change: Mon Mar 25, 2002 +" URL: http://www.tzi.de/~brederek/vim/ +" Copying: You may distribute and use this file freely, in the same +" way as the vim editor itself. +" +" To Do: - Probably I missed some keywords or operators, please +" fix them and notify me, the maintainer. +" - Currently, we do lexical highlighting only. It would be +" nice to have more actual syntax checks, including +" highlighting of wrong syntax. +" - The additional syntax for the RT-Tester (pseudo-comments) +" should be optional. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" case is significant to FDR: +syn case match + +" Block comments in CSP are between {- and -} +syn region cspComment start="{-" end="-}" contains=cspTodo +" Single-line comments start with -- +syn region cspComment start="--" end="$" contains=cspTodo,cspOldRttComment,cspSdlRttComment keepend + +" Numbers: +syn match cspNumber "\<\d\+\>" + +" Conditionals: +syn keyword cspConditional if then else + +" Operators on processes: +" -> ? : ! ' ; /\ \ [] |~| [> & [[..<-..]] ||| [|..|] || [..<->..] ; : @ ||| +syn match cspOperator "->" +syn match cspOperator "/\\" +syn match cspOperator "[^/]\\"lc=1 +syn match cspOperator "\[\]" +syn match cspOperator "|\~|" +syn match cspOperator "\[>" +syn match cspOperator "\[\[" +syn match cspOperator "\]\]" +syn match cspOperator "<-" +syn match cspOperator "|||" +syn match cspOperator "[^|]||[^|]"lc=1,me=e-1 +syn match cspOperator "[^|{\~]|[^|}\~]"lc=1,me=e-1 +syn match cspOperator "\[|" +syn match cspOperator "|\]" +syn match cspOperator "\[[^>]"me=e-1 +syn match cspOperator "\]" +syn match cspOperator "<->" +syn match cspOperator "[?:!';@]" +syn match cspOperator "&" +syn match cspOperator "\." + +" (not on processes:) +" syn match cspDelimiter "{|" +" syn match cspDelimiter "|}" +" syn match cspDelimiter "{[^-|]"me=e-1 +" syn match cspDelimiter "[^-|]}"lc=1 + +" Keywords: +syn keyword cspKeyword length null head tail concat elem +syn keyword cspKeyword union inter diff Union Inter member card +syn keyword cspKeyword empty set Set Seq +syn keyword cspKeyword true false and or not within let +syn keyword cspKeyword nametype datatype diamond normal +syn keyword cspKeyword sbisim tau_loop_factor model_compress +syn keyword cspKeyword explicate +syn match cspKeyword "transparent" +syn keyword cspKeyword external chase prioritize +syn keyword cspKeyword channel Events +syn keyword cspKeyword extensions productions +syn keyword cspKeyword Bool Int + +" Reserved keywords: +syn keyword cspReserved attribute embed module subtype + +" Include: +syn region cspInclude matchgroup=cspIncludeKeyword start="^include" end="$" keepend contains=cspIncludeArg +syn region cspIncludeArg start='\s\+\"' end= '\"\s*' contained + +" Assertions: +syn keyword cspAssert assert deterministic divergence free deadlock +syn keyword cspAssert livelock +syn match cspAssert "\[T=" +syn match cspAssert "\[F=" +syn match cspAssert "\[FD=" +syn match cspAssert "\[FD\]" +syn match cspAssert "\[F\]" + +" Types and Sets +" (first char a capital, later at least one lower case, no trailing underscore): +syn match cspType "\<_*[A-Z][A-Z_0-9]*[a-z]\(\|[A-Za-z_0-9]*[A-Za-z0-9]\)\>" + +" Processes (all upper case, no trailing underscore): +" (For identifiers that could be types or sets, too, this second rule set +" wins.) +syn match cspProcess "\<[A-Z_][A-Z_0-9]*[A-Z0-9]\>" +syn match cspProcess "\<[A-Z_]\>" + +" reserved identifiers for tool output (ending in underscore): +syn match cspReservedIdentifier "\<[A-Za-z_][A-Za-z_0-9]*_\>" + +" ToDo markers: +syn match cspTodo "FIXME" contained +syn match cspTodo "TODO" contained +syn match cspTodo "!!!" contained + +" RT-Tester pseudo comments: +" (The now obsolete syntax:) +syn match cspOldRttComment "^--\$\$AM_UNDEF"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_ERROR"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_WARNING"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_SET_TIMER"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_RESET_TIMER"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_ELAPSED_TIMER"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_OUTPUT"lc=2 contained +syn match cspOldRttComment "^--\$\$AM_INPUT"lc=2 contained +" (The current syntax:) +syn region cspRttPragma matchgroup=cspRttPragmaKeyword start="^pragma\s\+" end="\s*$" oneline keepend contains=cspRttPragmaArg,cspRttPragmaSdl +syn keyword cspRttPragmaArg AM_ERROR AM_WARNING AM_SET_TIMER contained +syn keyword cspRttPragmaArg AM_RESET_TIMER AM_ELAPSED_TIMER contained +syn keyword cspRttPragmaArg AM_OUTPUT AM_INPUT AM_INTERNAL contained +" the "SDL_MATCH" extension: +syn region cspRttPragmaSdl matchgroup=cspRttPragmaKeyword start="SDL_MATCH\s\+" end="\s*$" contains=cspRttPragmaSdlArg contained +syn keyword cspRttPragmaSdlArg TRANSLATE nextgroup=cspRttPragmaSdlTransName contained +syn keyword cspRttPragmaSdlArg PARAM SKIP OPTIONAL CHOICE ARRAY nextgroup=cspRttPragmaSdlName contained +syn match cspRttPragmaSdlName "\s*\S\+\s*" nextgroup=cspRttPragmaSdlTail contained +syn region cspRttPragmaSdlTail start="" end="\s*$" contains=cspRttPragmaSdlTailArg contained +syn keyword cspRttPragmaSdlTailArg SUBSET_USED DEFAULT_VALUE Present contained +syn match cspRttPragmaSdlTransName "\s*\w\+\s*" nextgroup=cspRttPragmaSdlTransTail contained +syn region cspRttPragmaSdlTransTail start="" end="\s*$" contains=cspRttPragmaSdlTransTailArg contained +syn keyword cspRttPragmaSdlTransTailArg sizeof contained +syn match cspRttPragmaSdlTransTailArg "\*" contained +syn match cspRttPragmaSdlTransTailArg "(" contained +syn match cspRttPragmaSdlTransTailArg ")" contained + +" temporary syntax extension for commented-out "pragma SDL_MATCH": +syn match cspSdlRttComment "pragma\s\+SDL_MATCH\s\+" nextgroup=cspRttPragmaSdlArg contained + +syn sync lines=250 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +" (For vim version <=5.7, the command groups are defined in +" $VIMRUNTIME/syntax/synload.vim ) +hi def link cspComment Comment +hi def link cspNumber Number +hi def link cspConditional Conditional +hi def link cspOperator Delimiter +hi def link cspKeyword Keyword +hi def link cspReserved SpecialChar +hi def link cspInclude Error +hi def link cspIncludeKeyword Include +hi def link cspIncludeArg Include +hi def link cspAssert PreCondit +hi def link cspType Type +hi def link cspProcess Function +hi def link cspTodo Todo +hi def link cspOldRttComment Define +hi def link cspRttPragmaKeyword Define +hi def link cspSdlRttComment Define +hi def link cspRttPragmaArg Define +hi def link cspRttPragmaSdlArg Define +hi def link cspRttPragmaSdlName Default +hi def link cspRttPragmaSdlTailArg Define +hi def link cspRttPragmaSdlTransName Default +hi def link cspRttPragmaSdlTransTailArg Define +hi def link cspReservedIdentifier Error +" (Currently unused vim method: Debug) + + +let b:current_syntax = "csp" + +" vim: ts=8 diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim new file mode 100644 index 0000000..f8104ea --- /dev/null +++ b/runtime/syntax/css.vim @@ -0,0 +1,665 @@ +" Vim syntax file +" Language: Cascading Style Sheets +" Previous Contributor List: +" Jules Wang +" Claudio Fleiner +" Yeti (Add full CSS2, HTML4 support) +" Nikolai Weibull (Add CSS2 support) +" URL: https://github.com/vim-language-dept/css-syntax.vim +" Maintainer: Jay Sitter +" Last Change: 2021 Oct 20 + +" quit when a syntax file was already loaded +if !exists("main_syntax") + if exists("b:current_syntax") + finish + endif + let main_syntax = 'css' +elseif exists("b:current_syntax") && b:current_syntax == "css" + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore +" Add dash to allowed keyword characters. +syn iskeyword @,48-57,_,192-255,- + +" HTML4 tags +syn keyword cssTagName abbr address area a b base +syn keyword cssTagName bdo blockquote body br button +syn keyword cssTagName caption cite code col colgroup dd del +syn keyword cssTagName dfn div dl dt em fieldset form +syn keyword cssTagName h1 h2 h3 h4 h5 h6 head hr html img i +syn keyword cssTagName iframe input ins isindex kbd label legend li +syn keyword cssTagName link map menu meta noscript ol optgroup +syn keyword cssTagName option p param picture pre q s samp script small +syn keyword cssTagName span strong sub sup tbody td +syn keyword cssTagName textarea tfoot th thead title tr ul u var +syn keyword cssTagName object svg +syn match cssTagName /\\|\\|\/ + +" 34 HTML5 tags +syn keyword cssTagName article aside audio bdi canvas command data +syn keyword cssTagName datalist details dialog embed figcaption figure footer +syn keyword cssTagName header hgroup keygen main mark menuitem meter nav +syn keyword cssTagName output progress rt rp ruby section +syn keyword cssTagName source summary time track video wbr + +" Tags not supported in HTML5 +" acronym applet basefont big center dir +" font frame frameset noframes strike tt + +syn match cssTagName "\*" + +" selectors +syn match cssSelectorOp "[,>+~]" +syn match cssSelectorOp2 "[~|^$*]\?=" contained +syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ + +" .class and #id +syn match cssClassName "\.-\=[A-Za-z_][A-Za-z0-9_-]*" contains=cssClassNameDot +syn match cssClassNameDot contained '\.' + +try +syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*" +catch /^.*/ +syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" +endtry + +" digits +syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators +syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|fr\|vw\|vh\|vmin\|vmax\|ch\)\>" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators +syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators +syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators +syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators + +" The 16 basic color names +syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow + +" 130 more color names +syn keyword cssColor contained aliceblue antiquewhite aquamarine azure +syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood +syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick +syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold +syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink +syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen +syn keyword cssColor contained lemonchiffon limegreen linen magenta +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite +syn keyword cssColor contained oldlace olivedrab orange orangered orchid +syn match cssColor contained /\/ +syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue +syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon +syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue +syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan +syn keyword cssColor contained thistle tomato turquoise violet wheat +syn keyword cssColor contained whitesmoke yellowgreen + +" FIXME: These are actually case-insensitive too, but (a) specs recommend using +" mixed-case (b) it's hard to highlight the word `Background' correctly in +" all situations +syn case match +syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background +syn case ignore + +syn match cssImportant contained "!\s*important\>" +syn match cssCustomProp contained "\<--[a-zA-Z0-9-_]*\>" + +syn match cssColor contained "\" +syn match cssColor contained "\" +syn match cssColor contained "\" +syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators +syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators +syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators + +syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline +syn region cssMathGroup contained matchgroup=cssMathParens start="(" end=")" containedin=cssFunction,cssMathGroup contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\|conic-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\(blur\|brightness\|contrast\|drop-shadow\|grayscale\|hue-rotate\|invert\|opacity\|saturate\|sepia\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma +syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at +syn match cssFunctionComma contained "," + +" Common Prop and Attr +syn keyword cssCommonAttr contained auto none inherit all default normal +syn keyword cssCommonAttr contained top bottom center stretch hidden visible +syn match cssCommonAttr contained "\<\(max-\|min-\|fit-\)content\>" +"------------------------------------------------ +" CSS Animations +" http://www.w3.org/TR/css3-animations/ +syn match cssAnimationProp contained "\" + +" animation-direction attributes +syn keyword cssAnimationAttr contained alternate reverse +syn match cssAnimationAttr contained "\" + +" animation-fill-mode attributes +syn keyword cssAnimationAttr contained forwards backwards both + +" animation-play-state attributes +syn keyword cssAnimationAttr contained running paused + +" animation-iteration-count attributes +syn keyword cssAnimationAttr contained infinite +"------------------------------------------------ +" CSS Backgrounds and Borders Module Level 3 +" http://www.w3.org/TR/css3-background/ +syn match cssBackgroundProp contained "\" +" background-attachment attributes +syn keyword cssBackgroundAttr contained scroll fixed local + +" background-position attributes +syn keyword cssBackgroundAttr contained left center right top bottom + +" background-repeat attributes +syn match cssBackgroundAttr contained "\" +syn match cssBackgroundAttr contained "\" + +" background-size attributes +syn keyword cssBackgroundAttr contained cover contain + +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" + +" border-image attributes +syn keyword cssBorderAttr contained stretch round fill + +" border-style attributes +syn keyword cssBorderAttr contained dotted dashed solid double groove ridge inset outset + +" border-width attributes +syn keyword cssBorderAttr contained thin thick medium + +" box-decoration-break attributes +syn keyword cssBorderAttr contained clone slice +"------------------------------------------------ + +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\" +syn keyword cssBoxAttr contained visible hidden scroll auto +syn match cssBoxAttr contained "\" + +syn keyword cssCascadeProp contained all +syn keyword cssCascadeAttr contained initial unset revert + +syn keyword cssColorProp contained opacity +syn match cssColorProp contained "\" +syn match cssColorProp contained "\" + + +syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>" +syn keyword cssDimensionProp contained height +syn keyword cssDimensionProp contained width + +" CSS Flexible Box Layout Module Level 1 +" http://www.w3.org/TR/css3-flexbox/ +" CSS Box Alignment Module Level 3 +" http://www.w3.org/TR/css-align-3/ +syn match cssFlexibleBoxProp contained "\" +syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>" +syn keyword cssFlexibleBoxProp contained order + +syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>" +syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center +syn match cssFlexibleBoxAttr contained "\" +syn match cssFlexibleBoxAttr contained "\" + +" CSS Fonts Module Level 3 +" http://www.w3.org/TR/css-fonts-3/ +syn match cssFontProp contained "\" + +" font attributes +syn keyword cssFontAttr contained icon menu caption +syn match cssFontAttr contained "\" +syn match cssFontAttr contained "\" +syn keyword cssFontAttr contained larger smaller +syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>" +syn match cssFontAttr contained "\" +" font-family attributes +syn keyword cssFontAttr contained sans-serif serif cursive fantasy monospace +" font-feature-settings attributes +syn keyword cssFontAttr contained on off +" font-stretch attributes +syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>" +" font-style attributes +syn keyword cssFontAttr contained italic oblique +" font-synthesis attributes +syn keyword cssFontAttr contained weight style +" font-weight attributes +syn keyword cssFontAttr contained bold bolder lighter +" TODO: font-variant-* attributes +"------------------------------------------------ + +" Webkit specific property/attributes +syn match cssFontProp contained "\" +syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>" + + +" CSS Multi-column Layout Module +" http://www.w3.org/TR/css3-multicol/ +syn match cssMultiColumnProp contained "\" +syn match cssMultiColumnProp contained "\" +syn keyword cssMultiColumnProp contained columns +syn keyword cssMultiColumnAttr contained balance medium +syn keyword cssMultiColumnAttr contained always left right page column +syn match cssMultiColumnAttr contained "\" + +" http://www.w3.org/TR/css3-break/#page-break +syn match cssMultiColumnProp contained "\" + +" http://www.w3.org/TR/SVG11/interact.html +syn match cssInteractProp contained "\" +syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>" + +" TODO find following items in w3c docs. +syn keyword cssGeneratedContentProp contained quotes crop +syn match cssGeneratedContentProp contained "\" +syn match cssGeneratedContentProp contained "\" +syn match cssGeneratedContentProp contained "\" +syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" + +" https://www.w3.org/TR/css-grid-1/ +syn match cssGridProp contained "\" +syn match cssGridProp contained "\" +syn match cssGridProp contained "\" +syn match cssGridProp contained "\" +syn match cssGridProp contained "\" +syn match cssGridProp contained "\" + +syn match cssHyerlinkProp contained "\" + +syn match cssListProp contained "\" +syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" +syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" +syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" +syn keyword cssListAttr contained disc circle square hebrew armenian georgian +syn keyword cssListAttr contained inside outside + +" object-fit https://www.w3.org/TR/css-images-3/#the-object-fit +syn match cssObjectProp contained "\" +syn keyword cssObjectAttr contained fill contain cover scale-down + +syn keyword cssPositioningProp contained bottom clear clip display float left +syn keyword cssPositioningProp contained position right top visibility +syn match cssPositioningProp contained "\" +syn keyword cssPositioningAttr contained block compact grid +syn match cssPositioningAttr contained "\" +syn keyword cssPositioningAttr contained left right both +syn match cssPositioningAttr contained "\" +syn match cssPositioningAttr contained "\" +syn match cssPositioningAttr contained "\" +syn keyword cssPositioningAttr contained static relative absolute fixed subgrid sticky + +syn keyword cssPrintAttr contained landscape portrait crop cross always + +syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" +syn keyword cssTableAttr contained fixed collapse separate show hide once always + + +syn keyword cssTextProp contained color direction hyphens +syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" +syn match cssTextProp contained "\" +syn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>" +syn match cssTextProp contained "\" +syn match cssTextProp contained "\" +syn match cssTextProp contained "\" +syn match cssTextProp contained "\" +syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" +syn keyword cssTextAttr contained ltr rtl embed nowrap +syn keyword cssTextAttr contained underline overline blink sub super middle +syn keyword cssTextAttr contained capitalize uppercase lowercase +syn keyword cssTextAttr contained justify baseline sub super +syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision +syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\<\(allow\|force\)-end\>" +syn keyword cssTextAttr contained start end adjacent +syn match cssTextAttr contained "\" +syn keyword cssTextAttr contained distribute kashida first last +syn keyword cssTextAttr contained clip ellipsis unrestricted suppress +syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\" +syn keyword cssTextAttr contained manual +syn match cssTextAttr contained "\" + +syn match cssTransformProp contained "\" +syn match cssTransformProp contained "\" +syn match cssTransformProp contained "\" + +" CSS Transitions +" http://www.w3.org/TR/css3-transitions/ +syn match cssTransitionProp contained "\" + +" transition-time-function attributes +syn match cssTransitionAttr contained "\" +syn match cssTransitionAttr contained "\" +syn match cssTransitionAttr contained "\" +"------------------------------------------------ +" CSS Basic User Interface Module Level 3 (CSS3 UI) +" http://www.w3.org/TR/css3-ui/ +syn match cssUIProp contained "\" +syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>" + +syn keyword cssUIProp contained cursor +syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>" +syn keyword cssUIAttr contained crosshair help move pointer alias copy +syn keyword cssUIAttr contained progress wait text cell move +syn match cssUIAttr contained "\" +syn match cssUIAttr contained "\" +syn match cssUIAttr contained "\" +syn match cssUIAttr contained "\" +syn match cssUIAttr contained "\<\(vertical-\)\=text\>" +syn match cssUIAttr contained "\" + +syn match cssUIProp contained "\" +syn keyword cssUIAttr contained active inactive disabled + +syn match cssUIProp contained "\" +syn match cssUIProp contained "\" +syn keyword cssUIAttr contained invert + +syn keyword cssUIProp contained icon resize +syn keyword cssUIAttr contained both horizontal vertical + +syn match cssUIProp contained "\" +syn keyword cssUIAttr contained clip ellipsis + +syn match cssUIProp contained "\" +syn keyword cssUIAttr contained pixellated +syn match cssUIAttr contained "\" + +"------------------------------------------------ +" Webkit/iOS specific attributes +syn match cssUIAttr contained '\' +" IE specific attributes +syn match cssIEUIAttr contained '\' + +" Webkit/iOS specific properties +syn match cssUIProp contained '\<\(tap-highlight-color\|user-select\|touch-callout\)\>' +" IE specific properties +syn match cssIEUIProp contained '\<\(interpolation-mode\|zoom\|filter\)\>' + +" Webkit/Firebox specific properties/attributes +syn keyword cssUIProp contained appearance +syn keyword cssUIAttr contained window button field icon document menu + + +syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" +syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>" +syn keyword cssAuralProp contained volume during azimuth elevation stress richness +syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" +syn keyword cssAuralAttr contained silent +syn match cssAuralAttr contained "\" +syn keyword cssAuralAttr contained non mix +syn match cssAuralAttr contained "\<\(left\|right\)-side\>" +syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" +syn keyword cssAuralAttr contained leftwards rightwards behind +syn keyword cssAuralAttr contained below level above lower higher +syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>" +syn keyword cssAuralAttr contained faster slower +syn keyword cssAuralAttr contained male female child code digits continuous + +" mobile text +syn match cssMobileTextProp contained "\" + +syn keyword cssMediaProp contained width height orientation scan +syn keyword cssMediaProp contained any-hover any-pointer color-gamut grid hover +syn keyword cssMediaProp contained overflow-block overflow-inline pointer update +syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio\>/ +syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-pixel-ratio\>/ +syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-\(height\|width\)\>/ +syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)\>/ +syn keyword cssMediaAttr contained portrait landscape progressive interlace +syn keyword cssMediaAttr contained coarse fast fine hover infinite p3 paged +syn keyword cssMediaAttr contained rec2020 scroll slow srgb +syn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\\)\)/ nextgroup=cssDefinition +syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition +syn keyword cssPageProp contained content size +syn keyword cssPageProp contained orphans widows +syn keyword cssFontDescriptorProp contained src +syn match cssFontDescriptorProp contained "\" +" unicode-range attributes +syn match cssFontDescriptorAttr contained "U+[0-9A-Fa-f?]\+" +syn match cssFontDescriptorAttr contained "U+\x\+-\x\+" + +syn match cssBraces contained "[{}]" +syn match cssError contained "{@<>" +syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssAttributeSelector,cssClassName,cssIdentifier,cssAtRule,cssAttrRegion,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssCustomProp,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition,cssHacks,cssNoise fold +syn match cssBraceError "}" +syn match cssAttrComma "," + +" Pseudo class +" https://www.w3.org/TR/selectors-4/ +syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn +syn keyword cssPseudoClassId contained link visited active hover before after left right any-link +syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid default defined autofill fullscreen host indeterminate in-range modal optional out-of-range picture-in-picture placeholder-shown paused playing read-only read-write required scope +syn match cssPseudoClassId contained "\" +syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>" +syn match cssPseudoClassId contained "\" +syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(where\|has\|host\|not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier +" ------------------------------------ +" Vendor specific properties +syn match cssPseudoClassId contained "\" +syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>" + +" Misc highlight groups +syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained +syntax match cssNoise contained /\(:\|;\|\/\)/ + +" Comment +syn region cssComment start="/\*" end="\*/" contains=@Spell fold + +syn match cssUnicodeEscape "\\\x\{1,6}\s\?" +syn match cssSpecialCharQQ +\\\\\|\\"+ contained +syn match cssSpecialCharQ +\\\\\|\\'+ contained +syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ +syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ + +" Vendor Prefix +syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-" + +" Various CSS Hack characters +" In earlier versions of IE (6 and 7), one can prefix property names +" with a _ or * to isolate those definitions to particular versions of IE +" This is purely decorative and therefore we assign to the same highlight +" group to cssVendor, for more information: +" http://www.paulirish.com/2009/browser-specific-css-hacks/ +syn match cssHacks contained /\(_\|*\)/ + +" Attr Enhance +" Some keywords are both Prop and Attr, so we have to handle them +" cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69 +syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise + +" Hack for transition +" 'transition' has Props after ':'. +syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise + +syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ + +syn keyword cssAtRuleLogical only not and contained + +" @media +" Reference: http://www.w3.org/TR/css3-mediaqueries/ +syn region cssAtRule start=/@media\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssVendor,cssMediaType,cssComment,cssCustomProp,cssFunctionName nextgroup=cssDefinition +syn keyword cssMediaType contained screen print aural braille embossed handheld projection tty tv speech all contained + +" @page +" http://www.w3.org/TR/css3-page/ +syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition +syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl +" @keyframe +" http://www.w3.org/TR/css3-animations/#keyframes +syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition + +syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType +syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword +syn region cssAtRule start=/@namespace\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword + +" @supports +" https://www.w3.org/TR/css3-conditional/#at-supports +syn region cssAtRule start=/@supports\>/ end=/\ze{/ skipwhite skipnl contains=cssAtRuleLogical,cssAttrRegion,css.*Prop,cssValue.*,cssVendor,cssAtKeyword,cssComment nextgroup=cssDefinition + + +if main_syntax == "css" + syn sync minlines=10 +endif + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link cssComment Comment +hi def link cssVendor Comment +hi def link cssHacks Comment +hi def link cssTagName Statement +hi def link cssDeprecated Error +hi def link cssSelectorOp Special +hi def link cssSelectorOp2 Special +hi def link cssAttrComma Special + +hi def link cssAnimationProp cssProp +hi def link cssBackgroundProp cssProp +hi def link cssBorderProp cssProp +hi def link cssBoxProp cssProp +hi def link cssCascadeProp cssProp +hi def link cssColorProp cssProp +hi def link cssContentForPagedMediaProp cssProp +hi def link cssDimensionProp cssProp +hi def link cssFlexibleBoxProp cssProp +hi def link cssFontProp cssProp +hi def link cssGeneratedContentProp cssProp +hi def link cssGridProp cssProp +hi def link cssHyerlinkProp cssProp +hi def link cssInteractProp cssProp +hi def link cssLineboxProp cssProp +hi def link cssListProp cssProp +hi def link cssMarqueeProp cssProp +hi def link cssMultiColumnProp cssProp +hi def link cssPagedMediaProp cssProp +hi def link cssPositioningProp cssProp +hi def link cssObjectProp cssProp +hi def link cssPrintProp cssProp +hi def link cssRubyProp cssProp +hi def link cssSpeechProp cssProp +hi def link cssTableProp cssProp +hi def link cssTextProp cssProp +hi def link cssTransformProp cssProp +hi def link cssTransitionProp cssProp +hi def link cssUIProp cssProp +hi def link cssIEUIProp cssProp +hi def link cssAuralProp cssProp +hi def link cssRenderProp cssProp +hi def link cssMobileTextProp cssProp + +hi def link cssAnimationAttr cssAttr +hi def link cssBackgroundAttr cssAttr +hi def link cssBorderAttr cssAttr +hi def link cssBoxAttr cssAttr +hi def link cssContentForPagedMediaAttr cssAttr +hi def link cssDimensionAttr cssAttr +hi def link cssFlexibleBoxAttr cssAttr +hi def link cssFontAttr cssAttr +hi def link cssGeneratedContentAttr cssAttr +hi def link cssGridAttr cssAttr +hi def link cssHyerlinkAttr cssAttr +hi def link cssInteractAttr cssAttr +hi def link cssLineboxAttr cssAttr +hi def link cssListAttr cssAttr +hi def link cssMarginAttr cssAttr +hi def link cssMarqueeAttr cssAttr +hi def link cssMultiColumnAttr cssAttr +hi def link cssPaddingAttr cssAttr +hi def link cssPagedMediaAttr cssAttr +hi def link cssPositioningAttr cssAttr +hi def link cssObjectAttr cssAttr +hi def link cssGradientAttr cssAttr +hi def link cssPrintAttr cssAttr +hi def link cssRubyAttr cssAttr +hi def link cssSpeechAttr cssAttr +hi def link cssTableAttr cssAttr +hi def link cssTextAttr cssAttr +hi def link cssTransformAttr cssAttr +hi def link cssTransitionAttr cssAttr +hi def link cssUIAttr cssAttr +hi def link cssIEUIAttr cssAttr +hi def link cssAuralAttr cssAttr +hi def link cssRenderAttr cssAttr +hi def link cssCascadeAttr cssAttr +hi def link cssCommonAttr cssAttr + +hi def link cssPseudoClassId PreProc +hi def link cssPseudoClassLang Constant +hi def link cssValueLength Number +hi def link cssValueInteger Number +hi def link cssValueNumber Number +hi def link cssValueAngle Number +hi def link cssValueTime Number +hi def link cssValueFrequency Number +hi def link cssFunction Constant +hi def link cssURL String +hi def link cssFunctionName Function +hi def link cssFunctionComma Function +hi def link cssColor Constant +hi def link cssIdentifier Function +hi def link cssAtRule Include +hi def link cssAtKeyword PreProc +hi def link cssImportant Special +hi def link cssCustomProp Special +hi def link cssBraces Function +hi def link cssBraceError Error +hi def link cssError Error +hi def link cssUnicodeEscape Special +hi def link cssStringQQ String +hi def link cssStringQ String +hi def link cssAttributeSelector String +hi def link cssMediaType Special +hi def link cssMediaComma Normal +hi def link cssAtRuleLogical Statement +hi def link cssMediaProp cssProp +hi def link cssMediaAttr cssAttr +hi def link cssPagePseudo PreProc +hi def link cssPageMarginProp cssAtKeyword +hi def link cssPageProp cssProp +hi def link cssKeyFrameProp Constant +hi def link cssFontDescriptor Special +hi def link cssFontDescriptorProp cssProp +hi def link cssFontDescriptorAttr cssAttr +hi def link cssUnicodeRange Constant +hi def link cssClassName Function +hi def link cssClassNameDot Function +hi def link cssProp StorageClass +hi def link cssAttr Constant +hi def link cssUnitDecorators Number +hi def link cssNoise Noise + +let b:current_syntax = "css" + +if main_syntax == 'css' + unlet main_syntax +endif + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/cterm.vim b/runtime/syntax/cterm.vim new file mode 100644 index 0000000..1b6cb28 --- /dev/null +++ b/runtime/syntax/cterm.vim @@ -0,0 +1,177 @@ +" Vim syntax file +" Language: Century Term Command Script +" Maintainer: Sean M. McKee +" Last Change: 2002 Apr 13 +" Version Info: @(#)cterm.vim 1.7 97/12/15 09:23:14 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +"FUNCTIONS +syn keyword ctermFunction abort addcr addlf answer at attr batch baud +syn keyword ctermFunction break call capture cd cdelay charset cls color +syn keyword ctermFunction combase config commect copy cread +syn keyword ctermFunction creadint devprefix dialer dialog dimint +syn keyword ctermFunction dimlog dimstr display dtimeout dwait edit +syn keyword ctermFunction editor emulate erase escloop fcreate +syn keyword ctermFunction fflush fillchar flags flush fopen fread +syn keyword ctermFunction freadln fseek fwrite fwriteln get hangup +syn keyword ctermFunction help hiwait htime ignore init itime +syn keyword ctermFunction keyboard lchar ldelay learn lockfile +syn keyword ctermFunction locktime log login logout lowait +syn keyword ctermFunction lsend ltime memlist menu mkdir mode +syn keyword ctermFunction modem netdialog netport noerror pages parity +syn keyword ctermFunction pause portlist printer protocol quit rcv +syn keyword ctermFunction read readint readn redial release +syn keyword ctermFunction remote rename restart retries return +syn keyword ctermFunction rmdir rtime run runx scrollback send +syn keyword ctermFunction session set setcap setcolor setkey +syn keyword ctermFunction setsym setvar startserver status +syn keyword ctermFunction stime stopbits stopserver tdelay +syn keyword ctermFunction terminal time trans type usend version +syn keyword ctermFunction vi vidblink vidcard vidout vidunder wait +syn keyword ctermFunction wildsize wclose wopen wordlen wru wruchar +syn keyword ctermFunction xfer xmit xprot +syn match ctermFunction "?" +"syn keyword ctermFunction comment remark + +"END FUNCTIONS +"INTEGER FUNCTIONS +syn keyword ctermIntFunction asc atod eval filedate filemode filesize ftell +syn keyword ctermIntFunction len termbits opsys pos sum time val mdmstat +"END INTEGER FUNCTIONS + +"STRING FUNCTIONS +syn keyword ctermStrFunction cdate ctime chr chrdy chrin comin getenv +syn keyword ctermStrFunction gethomedir left midstr right str tolower +syn keyword ctermStrFunction toupper uniq comst exists feof hascolor + +"END STRING FUNCTIONS + +"PREDEFINED TERM VARIABLES R/W +syn keyword ctermPreVarRW f _escloop _filename _kermiteol _obufsiz +syn keyword ctermPreVarRW _port _rcvsync _cbaud _reval _turnchar +syn keyword ctermPreVarRW _txblksiz _txwindow _vmin _vtime _cparity +syn keyword ctermPreVarRW _cnumber false t true _cwordlen _cstopbits +syn keyword ctermPreVarRW _cmode _cemulate _cxprot _clogin _clogout +syn keyword ctermPreVarRW _cstartsrv _cstopsrv _ccmdfile _cwru +syn keyword ctermPreVarRW _cprotocol _captfile _cremark _combufsiz +syn keyword ctermPreVarRW logfile +"END PREDEFINED TERM VARIABLES R/W + +"PREDEFINED TERM VARIABLES R/O +syn keyword ctermPreVarRO _1 _2 _3 _4 _5 _6 _7 _8 _9 _cursess +syn keyword ctermPreVarRO _lockfile _baud _errno _retval _sernum +syn keyword ctermPreVarRO _timeout _row _col _version +"END PREDEFINED TERM VARIABLES R/O + +syn keyword ctermOperator not mod eq ne gt le lt ge xor and or shr not shl + +"SYMBOLS +syn match CtermSymbols "|" +"syn keyword ctermOperators + - * / % = != > < >= <= & | ^ ! << >> +"END SYMBOLS + +"STATEMENT +syn keyword ctermStatement off +syn keyword ctermStatement disk overwrite append spool none +syn keyword ctermStatement echo view wrap +"END STATEMENT + +"TYPE +"syn keyword ctermType +"END TYPE + +"USERLIB FUNCTIONS +"syn keyword ctermLibFunc +"END USERLIB FUNCTIONS + +"LABEL +syn keyword ctermLabel case default +"END LABEL + +"CONDITIONAL +syn keyword ctermConditional on endon +syn keyword ctermConditional proc endproc +syn keyword ctermConditional for in do endfor +syn keyword ctermConditional if else elseif endif iferror +syn keyword ctermConditional switch endswitch +syn keyword ctermConditional repeat until +"END CONDITIONAL + +"REPEAT +syn keyword ctermRepeat while +"END REPEAT + +" Function arguments (eg $1 $2 $3) +syn match ctermFuncArg "\$[1-9]" + +syn keyword ctermTodo contained TODO + +syn match ctermNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" +"floating point number, with dot, optional exponent +syn match ctermNumber "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, starting with a dot, optional exponent +syn match ctermNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match ctermNumber "\<\d\+e[-+]\=\d\+[fl]\=\>" +"hex number +syn match ctermNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" + +syn match ctermComment "![^=].*$" contains=ctermTodo +syn match ctermComment "!$" +syn match ctermComment "\*.*$" contains=ctermTodo +syn region ctermComment start="comment" end="$" contains=ctermTodo +syn region ctermComment start="remark" end="$" contains=ctermTodo + +syn region ctermVar start="\$(" end=")" + +" String and Character contstants +" Highlight special characters (those which have a backslash) differently +syn match ctermSpecial contained "\\\d\d\d\|\\." +syn match ctermSpecial contained "\^." +syn region ctermString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=ctermSpecial,ctermVar,ctermSymbols +syn match ctermCharacter "'[^\\]'" +syn match ctermSpecialCharacter "'\\.'" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link ctermStatement Statement +hi def link ctermFunction Statement +hi def link ctermStrFunction Statement +hi def link ctermIntFunction Statement +hi def link ctermLabel Statement +hi def link ctermConditional Statement +hi def link ctermRepeat Statement +hi def link ctermLibFunc UserDefFunc +hi def link ctermType Type +hi def link ctermFuncArg PreCondit + +hi def link ctermPreVarRO PreCondit +hi def link ctermPreVarRW PreConditBold +hi def link ctermVar Type + +hi def link ctermComment Comment + +hi def link ctermCharacter SpecialChar +hi def link ctermSpecial Special +hi def link ctermSpecialCharacter SpecialChar +hi def link ctermSymbols Special +hi def link ctermString String +hi def link ctermTodo Todo +hi def link ctermOperator Statement +hi def link ctermNumber Number + +" redefine the colors +"hi PreConditBold term=bold ctermfg=1 cterm=bold guifg=Purple gui=bold +"hi Special term=bold ctermfg=6 guifg=SlateBlue gui=underline + + +let b:current_syntax = "cterm" + +" vim: ts=8 diff --git a/runtime/syntax/ctrlh.vim b/runtime/syntax/ctrlh.vim new file mode 100644 index 0000000..b34f335 --- /dev/null +++ b/runtime/syntax/ctrlh.vim @@ -0,0 +1,24 @@ +" Vim syntax file +" Language: CTRL-H (e.g., ASCII manpages) +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Existing syntax is kept, this file can be used as an addition + +" Recognize underlined text: _^Hx +syntax match CtrlHUnderline /_\b./ contains=CtrlHHide + +" Recognize bold text: x^Hx +syntax match CtrlHBold /\(.\)\b\1/ contains=CtrlHHide + +" Hide the CTRL-H (backspace) +syntax match CtrlHHide /.\b/ contained + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link CtrlHHide Ignore +hi def CtrlHUnderline term=underline cterm=underline gui=underline +hi def CtrlHBold term=bold cterm=bold gui=bold + +" vim: ts=8 diff --git a/runtime/syntax/cucumber.vim b/runtime/syntax/cucumber.vim new file mode 100644 index 0000000..90fdbfa --- /dev/null +++ b/runtime/syntax/cucumber.vim @@ -0,0 +1,170 @@ +" Vim syntax file +" Language: Cucumber +" Maintainer: Tim Pope +" Filenames: *.feature +" Last Change: 2023 Dec 28 + +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn case match +syn sync minlines=20 + +let g:cucumber_languages = { + \"en": {"and": "And\\>", "background": "Background", "but": "But\\>", "examples": "Scenarios\\|Examples", "feature": "Business Need\\|Feature\\|Ability", "given": "Given\\>", "rule": "Rule", "scenario": "Scenario\\|Example", "scenario_outline": "Scenario Template\\|Scenario Outline", "then": "Then\\>", "when": "When\\>"}, + \"af": {"and": "En\\>", "background": "Agtergrond", "but": "Maar\\>", "examples": "Voorbeelde", "feature": "Besigheid Behoefte\\|Funksie\\|Vermo\\%u00eb", "given": "Gegewe\\>", "rule": "Regel", "scenario": "Voorbeeld\\|Situasie", "scenario_outline": "Situasie Uiteensetting", "then": "Dan\\>", "when": "Wanneer\\>"}, + \"am": {"and": "\\%u0535\\%u057e\\>", "background": "\\%u053f\\%u0578\\%u0576\\%u057f\\%u0565\\%u0584\\%u057d\\%u057f", "but": "\\%u0532\\%u0561\\%u0575\\%u0581\\>", "examples": "\\%u0555\\%u0580\\%u056b\\%u0576\\%u0561\\%u056f\\%u0576\\%u0565\\%u0580", "feature": "\\%u0556\\%u0578\\%u0582\\%u0576\\%u056f\\%u0581\\%u056b\\%u0578\\%u0576\\%u0561\\%u056c\\%u0578\\%u0582\\%u0569\\%u0575\\%u0578\\%u0582\\%u0576\\|\\%u0540\\%u0561\\%u057f\\%u056f\\%u0578\\%u0582\\%u0569\\%u0575\\%u0578\\%u0582\\%u0576", "given": "\\%u0534\\%u056b\\%u0581\\%u0578\\%u0582\\%u0584\\>", "rule": "Rule", "scenario": "\\%u0555\\%u0580\\%u056b\\%u0576\\%u0561\\%u056f\\|\\%u054d\\%u0581\\%u0565\\%u0576\\%u0561\\%u0580", "scenario_outline": "\\%u054d\\%u0581\\%u0565\\%u0576\\%u0561\\%u0580\\%u056b \\%u056f\\%u0561\\%u057c\\%u0578\\%u0582\\%u0581\\%u057e\\%u0561\\%u0581\\%u0584\\%u0568", "then": "\\%u0531\\%u057a\\%u0561\\>", "when": "\\%u0535\\%u0569\\%u0565\\>\\|\\%u0535\\%u0580\\%u0562\\>"}, + \"amh": {"and": "\\%u12a5\\%u1293\\>", "background": "\\%u1245\\%u12f5\\%u1218 \\%u1201\\%u1294\\%u1273\\|\\%u1218\\%u1290\\%u123b \\%u1200\\%u1233\\%u1265\\|\\%u1218\\%u1290\\%u123b", "but": "\\%u130d\\%u1295\\>", "examples": "\\%u121d\\%u1233\\%u120c\\%u12ce\\%u127d\\|\\%u1201\\%u1293\\%u1274\\%u12ce\\%u127d", "feature": "\\%u12e8\\%u121a\\%u1348\\%u1208\\%u1308\\%u12cd \\%u12f5\\%u122d\\%u130a\\%u1275\\|\\%u12e8\\%u1270\\%u1348\\%u1208\\%u1308\\%u12cd \\%u1235\\%u122b\\|\\%u1235\\%u122b", "given": "\\%u12e8\\%u1270\\%u1230\\%u1320\\>", "rule": "\\%u1205\\%u130d", "scenario": "\\%u121d\\%u1233\\%u120c\\|\\%u1201\\%u1293\\%u1274", "scenario_outline": "\\%u1201\\%u1293\\%u1274 \\%u12dd\\%u122d\\%u12dd\\%u122d\\|\\%u1201\\%u1293\\%u1274 \\%u12a0\\%u1265\\%u1290\\%u1275", "then": "\\%u12a8\\%u12da\\%u12eb\\>", "when": "\\%u1218\\%u127c\\>"}, + \"an": {"and": "Y\\>\\|E\\>", "background": "Antecedents", "but": "Pero\\>", "examples": "Eixemplos", "feature": "Caracteristica", "given": "Dadas\\>\\|Dada\\>\\|Daus\\>\\|Dau\\>", "rule": "Rule", "scenario": "Eixemplo\\|Caso", "scenario_outline": "Esquema del caso", "then": "Antonces\\>\\|Alavez\\>\\|Allora\\>", "when": "Cuan\\>"}, + \"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "rule": "Rule", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\|\\%u0645\\%u062b\\%u0627\\%u0644", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"}, + \"ast": {"and": "Ya\\>\\|Y\\>", "background": "Antecedentes", "but": "Peru\\>", "examples": "Exemplos", "feature": "Carauter\\%u00edstica", "given": "Dada\\>\\|Daos\\>\\|Daes\\>\\|D\\%u00e1u\\>", "rule": "Rule", "scenario": "Exemplo\\|Casu", "scenario_outline": "Esbozu del casu", "then": "Ent\\%u00f3s\\>", "when": "Cuando\\>"}, + \"az": {"and": "H\\%u0259m\\>\\|V\\%u0259\\>", "background": "Kontekst\\|Ke\\%u00e7mi\\%u015f", "but": "Ancaq\\>\\|Amma\\>", "examples": "N\\%u00fcmun\\%u0259l\\%u0259r", "feature": "\\%u00d6z\\%u0259llik", "given": "Tutaq ki\\>\\|Verilir\\>", "rule": "Rule", "scenario": "Ssenari\\|N\\%u00fcmun\\%u0259", "scenario_outline": "Ssenarinin strukturu", "then": "O halda\\>", "when": "N\\%u0259 vaxt ki\\>\\|\\%u018fg\\%u0259r\\>"}, + \"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "rule": "\\%u041f\\%u0440\\%u0430\\%u0432\\%u0438\\%u043b\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"}, + \"bm": {"and": "Dan\\>", "background": "Latar Belakang", "but": "Tetapi\\>\\|Tapi\\>", "examples": "Contoh", "feature": "Fungsi", "given": "Diberi\\>\\|Bagi\\>", "rule": "Rule", "scenario": "Senario\\|Situasi\\|Keadaan", "scenario_outline": "Garis Panduan Senario\\|Kerangka Senario\\|Kerangka Situasi\\|Kerangka Keadaan", "then": "Kemudian\\>\\|Maka\\>", "when": "Apabila\\>"}, + \"bs": {"and": "I\\>\\|A\\>", "background": "Pozadina", "but": "Ali\\>", "examples": "Primjeri", "feature": "Karakteristika", "given": "Dato\\>", "rule": "Rule", "scenario": "Scenariju\\|Scenario\\|Primjer", "scenario_outline": "Scenario-outline\\|Scenariju-obris", "then": "Zatim\\>", "when": "Kada\\>"}, + \"ca": {"and": "I\\>", "background": "Antecedents\\|Rerefons", "but": "Per\\%u00f2\\>", "examples": "Exemples", "feature": "Caracter\\%u00edstica\\|Funcionalitat", "given": "Donada\\>\\|Donat\\>\\|Atesa\\>\\|At\\%u00e8s\\>", "rule": "Rule", "scenario": "Escenari\\|Exemple", "scenario_outline": "Esquema de l'escenari", "then": "Aleshores\\>\\|Cal\\>", "when": "Quan\\>"}, + \"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Kontext\\|Pozad\\%u00ed", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady", "feature": "Po\\%u017eadavek", "given": "Za p\\%u0159edpokladu\\>\\|Pokud\\>", "rule": "Pravidlo", "scenario": "P\\%u0159\\%u00edklad\\|Sc\\%u00e9n\\%u00e1\\%u0159", "scenario_outline": "Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\|N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"}, + \"cy-GB": {"and": "A\\>", "background": "Cefndir", "but": "Ond\\>", "examples": "Enghreifftiau", "feature": "Arwedd", "given": "Anrhegedig a\\>", "rule": "Rule", "scenario": "Enghraifft\\|Scenario", "scenario_outline": "Scenario Amlinellol", "then": "Yna\\>", "when": "Pryd\\>"}, + \"da": {"and": "Og\\>", "background": "Baggrund", "but": "Men\\>", "examples": "Eksempler", "feature": "Egenskab", "given": "Givet\\>", "rule": "Rule", "scenario": "Eksempel\\|Scenarie", "scenario_outline": "Abstrakt Scenario", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, + \"de": {"and": "Und\\>", "background": "Voraussetzungen\\|Vorbedingungen\\|Hintergrund\\|Grundlage", "but": "Aber\\>", "examples": "Beispiele", "feature": "Funktionalit\\%u00e4t\\|Funktion", "given": "Gegeben seien\\>\\|Gegeben sei\\>\\|Angenommen\\>", "rule": "Regel\\|Rule", "scenario": "Beispiel\\|Szenario", "scenario_outline": "Szenariogrundriss\\|Szenarien", "then": "Dann\\>", "when": "Wenn\\>"}, + \"el": {"and": "\\%u039a\\%u03b1\\%u03b9\\>", "background": "\\%u03a5\\%u03c0\\%u03cc\\%u03b2\\%u03b1\\%u03b8\\%u03c1\\%u03bf", "but": "\\%u0391\\%u03bb\\%u03bb\\%u03ac\\>", "examples": "\\%u03a0\\%u03b1\\%u03c1\\%u03b1\\%u03b4\\%u03b5\\%u03af\\%u03b3\\%u03bc\\%u03b1\\%u03c4\\%u03b1\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03b1", "feature": "\\%u0394\\%u03c5\\%u03bd\\%u03b1\\%u03c4\\%u03cc\\%u03c4\\%u03b7\\%u03c4\\%u03b1\\|\\%u039b\\%u03b5\\%u03b9\\%u03c4\\%u03bf\\%u03c5\\%u03c1\\%u03b3\\%u03af\\%u03b1", "given": "\\%u0394\\%u03b5\\%u03b4\\%u03bf\\%u03bc\\%u03ad\\%u03bd\\%u03bf\\%u03c5\\>", "rule": "Rule", "scenario": "\\%u03a0\\%u03b1\\%u03c1\\%u03ac\\%u03b4\\%u03b5\\%u03b9\\%u03b3\\%u03bc\\%u03b1\\|\\%u03a3\\%u03b5\\%u03bd\\%u03ac\\%u03c1\\%u03b9\\%u03bf", "scenario_outline": "\\%u03a0\\%u03b5\\%u03c1\\%u03af\\%u03b3\\%u03c1\\%u03b1\\%u03bc\\%u03bc\\%u03b1 \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5\\|\\%u03a0\\%u03b5\\%u03c1\\%u03b9\\%u03b3\\%u03c1\\%u03b1\\%u03c6\\%u03ae \\%u03a3\\%u03b5\\%u03bd\\%u03b1\\%u03c1\\%u03af\\%u03bf\\%u03c5", "then": "\\%u03a4\\%u03cc\\%u03c4\\%u03b5\\>", "when": "\\%u038c\\%u03c4\\%u03b1\\%u03bd\\>"}, + \"em": {"and": "\\%u1f602", "background": "\\%u1f4a4", "but": "\\%u1f614", "examples": "\\%u1f4d3", "feature": "\\%u1f4da", "given": "\\%u1f610", "rule": "Rule", "scenario": "\\%u1f952\\|\\%u1f4d5", "scenario_outline": "\\%u1f4d6", "then": "\\%u1f64f", "when": "\\%u1f3ac"}, + \"en-Scouse": {"and": "An\\>", "background": "Dis is what went down", "but": "Buh\\>", "examples": "Examples", "feature": "Feature", "given": "Youse know when youse got\\>\\|Givun\\>", "rule": "Rule", "scenario": "The thing of it is", "scenario_outline": "Wharrimean is", "then": "Den youse gotta\\>\\|Dun\\>", "when": "Youse know like when\\>\\|Wun\\>"}, + \"en-au": {"and": "Too right\\>", "background": "First off", "but": "Yeah nah\\>", "examples": "You'll wanna", "feature": "Pretty much", "given": "Y'know\\>", "rule": "Rule", "scenario": "Awww, look mate", "scenario_outline": "Reckon it's like", "then": "But at the end of the day I reckon\\>", "when": "It's just unbelievable\\>"}, + \"en-lol": {"and": "AN\\>", "background": "B4", "but": "BUT\\>", "examples": "EXAMPLZ", "feature": "OH HAI", "given": "I CAN HAZ\\>", "rule": "Rule", "scenario": "MISHUN", "scenario_outline": "MISHUN SRSLY", "then": "DEN\\>", "when": "WEN\\>"}, + \"en-old": {"and": "Ond\\>\\|7\\>", "background": "Aer\\|\\%u00c6r", "but": "Ac\\>", "examples": "Se the\\|Se \\%u00fee\\|Se \\%u00f0e", "feature": "Hwaet\\|Hw\\%u00e6t", "given": "Thurh\\>\\|\\%u00deurh\\>\\|\\%u00d0urh\\>", "rule": "Rule", "scenario": "Swa", "scenario_outline": "Swa hwaer swa\\|Swa hw\\%u00e6r swa", "then": "Tha the\\>\\|\\%u00dea \\%u00fee\\>\\|\\%u00d0a \\%u00f0e\\>\\|Tha\\>\\|\\%u00dea\\>\\|\\%u00d0a\\>", "when": "B\\%u00e6\\%u00fesealfa\\>\\|B\\%u00e6\\%u00fesealfe\\>\\|B\\%u00e6\\%u00fesealf\\>\\|Ciric\\%u00e6we\\>\\|Ciric\\%u00e6wa\\>\\|Ciric\\%u00e6w\\>"}, + \"en-pirate": {"and": "Aye\\>", "background": "Yo-ho-ho", "but": "Avast!\\>", "examples": "Dead men tell no tales", "feature": "Ahoy matey!", "given": "Gangway!\\>", "rule": "Rule", "scenario": "Heave to", "scenario_outline": "Shiver me timbers", "then": "Let go and haul\\>", "when": "Blimey!\\>"}, + \"en-tx": {"and": "Come hell or high water\\>", "background": "Lemme tell y'all a story", "but": "Well now hold on, I'll you what\\>", "examples": "Now that's a story longer than a cattle drive in July", "feature": "This ain\\%u2019t my first rodeo\\|All gussied up", "given": "All git out\\>\\|Fixin' to\\>", "rule": "Rule\\>", "scenario": "All hat and no cattle", "scenario_outline": "Busy as a hound in flea season\\|Serious as a snake bite", "then": "There\\%u2019s no tree but bears some fruit\\>", "when": "Quick out of the chute\\>"}, + \"eo": {"and": "Kaj\\>", "background": "Fono", "but": "Sed\\>", "examples": "Ekzemploj", "feature": "Trajto", "given": "Donita\\%u0135o\\>\\|Komence\\>", "rule": "Rule", "scenario": "Ekzemplo\\|Scenaro\\|Kazo", "scenario_outline": "Konturo de la scenaro\\|Kazo-skizo\\|Skizo", "then": "Do\\>", "when": "Se\\>"}, + \"es": {"and": "Y\\>\\|E\\>", "background": "Antecedentes", "but": "Pero\\>", "examples": "Ejemplos", "feature": "Necesidad del negocio\\|Caracter\\%u00edstica\\|Requisito", "given": "Dados\\>\\|Dadas\\>\\|Dado\\>\\|Dada\\>", "rule": "Regla de negocio\\|Regla", "scenario": "Escenario\\|Ejemplo", "scenario_outline": "Esquema del escenario", "then": "Entonces\\>", "when": "Cuando\\>"}, + \"et": {"and": "Ja\\>", "background": "Taust", "but": "Kuid\\>", "examples": "Juhtumid", "feature": "Omadus", "given": "Eeldades\\>", "rule": "Reegel", "scenario": "Stsenaarium\\|Juhtum", "scenario_outline": "Raamstsenaarium\\|Raamjuhtum", "then": "Siis\\>", "when": "Kui\\>"}, + \"fa": {"and": "\\%u0648\\>", "background": "\\%u0632\\%u0645\\%u06cc\\%u0646\\%u0647", "but": "\\%u0627\\%u0645\\%u0627\\>", "examples": "\\%u0646\\%u0645\\%u0648\\%u0646\\%u0647 \\%u0647\\%u0627", "feature": "\\%u0648\\%u0650\\%u06cc\\%u0698\\%u06af\\%u06cc", "given": "\\%u0628\\%u0627 \\%u0641\\%u0631\\%u0636\\>", "rule": "Rule", "scenario": "\\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648\\|\\%u0645\\%u062b\\%u0627\\%u0644", "scenario_outline": "\\%u0627\\%u0644\\%u06af\\%u0648\\%u06cc \\%u0633\\%u0646\\%u0627\\%u0631\\%u06cc\\%u0648", "then": "\\%u0622\\%u0646\\%u06af\\%u0627\\%u0647\\>", "when": "\\%u0647\\%u0646\\%u06af\\%u0627\\%u0645\\%u06cc\\>"}, + \"fi": {"and": "Ja\\>", "background": "Tausta", "but": "Mutta\\>", "examples": "Tapaukset", "feature": "Ominaisuus", "given": "Oletetaan\\>", "rule": "Rule", "scenario": "Tapaus", "scenario_outline": "Tapausaihio", "then": "Niin\\>", "when": "Kun\\>"}, + \"fr": {"and": "Et que\\>\\|Et qu'\\|Et\\>", "background": "Contexte", "but": "Mais que\\>\\|Mais qu'\\|Mais\\>", "examples": "Exemples", "feature": "Fonctionnalit\\%u00e9", "given": "Etant donn\\%u00e9 que\\>\\|\\%u00c9tant donn\\%u00e9 que\\>\\|Etant donn\\%u00e9 qu'\\|\\%u00c9tant donn\\%u00e9 qu'\\|Etant donn\\%u00e9es\\>\\|\\%u00c9tant donn\\%u00e9es\\>\\|Etant donn\\%u00e9e\\>\\|Etant donn\\%u00e9s\\>\\|\\%u00c9tant donn\\%u00e9e\\>\\|\\%u00c9tant donn\\%u00e9s\\>\\|Sachant que\\>\\|Etant donn\\%u00e9\\>\\|\\%u00c9tant donn\\%u00e9\\>\\|Sachant qu'\\|Sachant\\>\\|Soit\\>", "rule": "R\\%u00e8gle", "scenario": "Sc\\%u00e9nario\\|Exemple", "scenario_outline": "Plan du sc\\%u00e9nario\\|Plan du Sc\\%u00e9nario", "then": "Alors\\>\\|Donc\\>", "when": "Lorsque\\>\\|Lorsqu'\\|Quand\\>"}, + \"ga": {"and": "Agus", "background": "C\\%u00falra", "but": "Ach", "examples": "Sampla\\%u00ed", "feature": "Gn\\%u00e9", "given": "Cuir i gc\\%u00e1s nach\\|Cuir i gc\\%u00e1s gur\\|Cuir i gc\\%u00e1s n\\%u00e1r\\|Cuir i gc\\%u00e1s go", "rule": "Rule", "scenario": "Sampla\\|C\\%u00e1s", "scenario_outline": "C\\%u00e1s Achomair", "then": "Ansin", "when": "Nuair nach\\|Nuair n\\%u00e1r\\|Nuair ba\\|Nuair a"}, + \"gj": {"and": "\\%u0a85\\%u0aa8\\%u0ac7\\>", "background": "\\%u0aac\\%u0ac7\\%u0a95\\%u0a97\\%u0acd\\%u0ab0\\%u0abe\\%u0a89\\%u0aa8\\%u0acd\\%u0aa1", "but": "\\%u0aaa\\%u0aa3\\>", "examples": "\\%u0a89\\%u0aa6\\%u0abe\\%u0ab9\\%u0ab0\\%u0aa3\\%u0acb", "feature": "\\%u0ab5\\%u0acd\\%u0aaf\\%u0abe\\%u0aaa\\%u0abe\\%u0ab0 \\%u0a9c\\%u0ab0\\%u0ac2\\%u0ab0\\|\\%u0a95\\%u0acd\\%u0ab7\\%u0aae\\%u0aa4\\%u0abe\\|\\%u0ab2\\%u0a95\\%u0acd\\%u0ab7\\%u0aa3", "given": "\\%u0a86\\%u0aaa\\%u0ac7\\%u0ab2 \\%u0a9b\\%u0ac7\\>", "rule": "Rule", "scenario": "\\%u0a89\\%u0aa6\\%u0abe\\%u0ab9\\%u0ab0\\%u0aa3\\|\\%u0ab8\\%u0acd\\%u0aa5\\%u0abf\\%u0aa4\\%u0abf", "scenario_outline": "\\%u0aaa\\%u0ab0\\%u0abf\\%u0aa6\\%u0acd\\%u0aa6\\%u0ab6\\%u0acd\\%u0aaf \\%u0ab0\\%u0ac2\\%u0aaa\\%u0ab0\\%u0ac7\\%u0a96\\%u0abe\\|\\%u0aaa\\%u0ab0\\%u0abf\\%u0aa6\\%u0acd\\%u0aa6\\%u0ab6\\%u0acd\\%u0aaf \\%u0aa2\\%u0abe\\%u0a82\\%u0a9a\\%u0acb", "then": "\\%u0aaa\\%u0a9b\\%u0ac0\\>", "when": "\\%u0a95\\%u0acd\\%u0aaf\\%u0abe\\%u0ab0\\%u0ac7\\>"}, + \"gl": {"and": "E\\>", "background": "Contexto", "but": "Mais\\>\\|Pero\\>", "examples": "Exemplos", "feature": "Caracter\\%u00edstica", "given": "Dados\\>\\|Dadas\\>\\|Dado\\>\\|Dada\\>", "rule": "Rule", "scenario": "Escenario\\|Exemplo", "scenario_outline": "Esbozo do escenario", "then": "Ent\\%u00f3n\\>\\|Logo\\>", "when": "Cando\\>"}, + \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "rule": "\\%u05db\\%u05dc\\%u05dc", "scenario": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\|\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"}, + \"hi": {"and": "\\%u0924\\%u0925\\%u093e\\>\\|\\%u0914\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u093f", "but": "\\%u092a\\%u0930\\%u0928\\%u094d\\%u0924\\%u0941\\>\\|\\%u0915\\%u093f\\%u0928\\%u094d\\%u0924\\%u0941\\>\\|\\%u092a\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923", "feature": "\\%u0930\\%u0942\\%u092a \\%u0932\\%u0947\\%u0916", "given": "\\%u091a\\%u0942\\%u0902\\%u0915\\%u093f\\>\\|\\%u0905\\%u0917\\%u0930\\>\\|\\%u092f\\%u0926\\%u093f\\>", "rule": "\\%u0928\\%u093f\\%u092f\\%u092e", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e", "then": "\\%u0924\\%u0926\\%u093e\\>\\|\\%u0924\\%u092c\\>", "when": "\\%u0915\\%u0926\\%u093e\\>\\|\\%u091c\\%u092c\\>"}, + \"hr": {"and": "I\\>", "background": "Pozadina", "but": "Ali\\>", "examples": "Scenariji\\|Primjeri", "feature": "Mogu\\%u0107nost\\|Mogucnost\\|Osobina", "given": "Ukoliko\\>\\|Zadani\\>\\|Zadano\\>\\|Zadan\\>", "rule": "Rule", "scenario": "Scenarij\\|Primjer", "scenario_outline": "Koncept\\|Skica", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"}, + \"ht": {"and": "Epi\\>\\|Ak\\>\\|E\\>", "background": "Kont\\%u00e8ks\\|Istorik", "but": "Men\\>", "examples": "Egzanp", "feature": "Karakteristik\\|Fonksyonalite\\|Mak", "given": "Sipoze ke\\>\\|Sipoze Ke\\>\\|Sipoze\\>", "rule": "Rule", "scenario": "Senaryo", "scenario_outline": "Senaryo deskripsyon\\|Senaryo Deskripsyon\\|Dyagram senaryo\\|Dyagram Senaryo\\|Plan senaryo\\|Plan Senaryo", "then": "L\\%u00e8 sa a\\>\\|Le sa a\\>", "when": "L\\%u00e8\\>\\|Le\\>"}, + \"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k", "feature": "Jellemz\\%u0151", "given": "Amennyiben\\>\\|Adott\\>", "rule": "Szab\\%u00e1ly", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\|P\\%u00e9lda", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat", "then": "Akkor\\>", "when": "Amikor\\>\\|Majd\\>\\|Ha\\>"}, + \"id": {"and": "Dan\\>", "background": "Latar Belakang\\|Dasar", "but": "Tetapi\\>\\|Tapi\\>", "examples": "Contoh\\|Misal", "feature": "Fitur", "given": "Diasumsikan\\>\\|Diketahui\\>\\|Dengan\\>\\|Bila\\>\\|Jika\\>", "rule": "Aturan\\|Rule", "scenario": "Skenario", "scenario_outline": "Garis-Besar Skenario\\|Skenario konsep", "then": "Kemudian\\>\\|Maka\\>", "when": "Ketika\\>"}, + \"is": {"and": "Og\\>", "background": "Bakgrunnur", "but": "En\\>", "examples": "Atbur\\%u00f0ar\\%u00e1sir\\|D\\%u00e6mi", "feature": "Eiginleiki", "given": "Ef\\>", "rule": "Rule", "scenario": "Atbur\\%u00f0ar\\%u00e1s", "scenario_outline": "L\\%u00fdsing Atbur\\%u00f0ar\\%u00e1sar\\|L\\%u00fdsing D\\%u00e6ma", "then": "\\%u00de\\%u00e1\\>", "when": "\\%u00deegar\\>"}, + \"it": {"and": "E\\>", "background": "Contesto", "but": "Ma\\>", "examples": "Esempi", "feature": "Esigenza di Business\\|Funzionalit\\%u00e0\\|Abilit\\%u00e0", "given": "Dato\\>\\|Data\\>\\|Dati\\>\\|Date\\>", "rule": "Regola", "scenario": "Scenario\\|Esempio", "scenario_outline": "Schema dello scenario", "then": "Allora\\>", "when": "Quando\\>"}, + \"ja": {"and": "\\%u4e14\\%u3064\\|\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u7136\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\|\\%u4f8b", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\|\\%u6a5f\\%u80fd", "given": "\\%u524d\\%u63d0", "rule": "\\%u30eb\\%u30fc\\%u30eb", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"}, + \"jv": {"and": "Lan\\>", "background": "Dasar", "but": "Ananging\\>\\|Nanging\\>\\|Tapi\\>", "examples": "Contone\\|Conto", "feature": "Fitur", "given": "Nalikaning\\>\\|Nalika\\>", "rule": "Rule", "scenario": "Skenario", "scenario_outline": "Konsep skenario", "then": "Banjur\\>\\|Njuk\\>", "when": "Manawa\\>\\|Menawa\\>"}, + \"ka": {"and": "\\%u10d0\\%u10e1\\%u10d4\\%u10d5\\%u10d4\\>\\|\\%u10d3\\%u10d0\\>", "background": "\\%u10d9\\%u10dd\\%u10dc\\%u10e2\\%u10d4\\%u10e5\\%u10e1\\%u10e2\\%u10d8", "but": "\\%u10db\\%u10d0\\%u10d2\\%u10e0\\%u10d0\\%u10db\\>\\|\\%u10d7\\%u10e3\\%u10db\\%u10ea\\%u10d0\\>", "examples": "\\%u10db\\%u10d0\\%u10d2\\%u10d0\\%u10da\\%u10d8\\%u10d7\\%u10d4\\%u10d1\\%u10d8", "feature": "\\%u10db\\%u10dd\\%u10d7\\%u10ee\\%u10dd\\%u10d5\\%u10dc\\%u10d0\\|\\%u10d7\\%u10d5\\%u10d8\\%u10e1\\%u10d4\\%u10d1\\%u10d0", "given": "\\%u10db\\%u10dd\\%u10ea\\%u10d4\\%u10db\\%u10e3\\%u10da\\%u10d8\\%u10d0\\>\\|\\%u10db\\%u10dd\\%u10ea\\%u10d4\\%u10db\\%u10e3\\%u10da\\%u10d8\\>\\|\\%u10d5\\%u10d7\\%u10e5\\%u10d5\\%u10d0\\%u10d7\\>", "rule": "\\%u10ec\\%u10d4\\%u10e1\\%u10d8", "scenario": "\\%u10db\\%u10d0\\%u10d2\\%u10d0\\%u10da\\%u10d8\\%u10d7\\%u10d0\\%u10d3\\|\\%u10db\\%u10d0\\%u10d2\\%u10d0\\%u10da\\%u10d8\\%u10d7\\%u10d8\\|\\%u10e1\\%u10ea\\%u10d4\\%u10dc\\%u10d0\\%u10e0\\%u10d8\\|\\%u10db\\%u10d0\\%u10d2", "scenario_outline": "\\%u10e1\\%u10ea\\%u10d4\\%u10dc\\%u10d0\\%u10e0\\%u10d8\\%u10e1 \\%u10e8\\%u10d0\\%u10d1\\%u10da\\%u10dd\\%u10dc\\%u10d8\\|\\%u10e1\\%u10ea\\%u10d4\\%u10dc\\%u10d0\\%u10e0\\%u10d8\\%u10e1 \\%u10dc\\%u10d8\\%u10db\\%u10e3\\%u10e8\\%u10d8\\|\\%u10e8\\%u10d0\\%u10d1\\%u10da\\%u10dd\\%u10dc\\%u10d8\\|\\%u10dc\\%u10d8\\%u10db\\%u10e3\\%u10e8\\%u10d8", "then": "\\%u10db\\%u10d0\\%u10e8\\%u10d8\\%u10dc\\>", "when": "\\%u10e0\\%u10dd\\%u10d2\\%u10dd\\%u10e0\\%u10ea \\%u10d9\\%u10d8\\>\\|\\%u10e0\\%u10dd\\%u10d3\\%u10d4\\%u10e1\\%u10d0\\%u10ea\\>\\|\\%u10e0\\%u10dd\\%u10ea\\%u10d0\\>\\|\\%u10d7\\%u10e3\\>"}, + \"kn": {"and": "\\%u0cae\\%u0ca4\\%u0ccd\\%u0ca4\\%u0cc1\\>", "background": "\\%u0cb9\\%u0cbf\\%u0ca8\\%u0ccd\\%u0ca8\\%u0cc6\\%u0cb2\\%u0cc6", "but": "\\%u0c86\\%u0ca6\\%u0cb0\\%u0cc6\\>", "examples": "\\%u0c89\\%u0ca6\\%u0cbe\\%u0cb9\\%u0cb0\\%u0ca3\\%u0cc6\\%u0c97\\%u0cb3\\%u0cc1", "feature": "\\%u0cb9\\%u0cc6\\%u0c9a\\%u0ccd\\%u0c9a\\%u0cb3", "given": "\\%u0ca8\\%u0cbf\\%u0cd5\\%u0ca1\\%u0cbf\\%u0ca6\\>", "rule": "Rule", "scenario": "\\%u0c95\\%u0ca5\\%u0cbe\\%u0cb8\\%u0cbe\\%u0cb0\\%u0cbe\\%u0c82\\%u0cb6\\|\\%u0c89\\%u0ca6\\%u0cbe\\%u0cb9\\%u0cb0\\%u0ca3\\%u0cc6", "scenario_outline": "\\%u0cb5\\%u0cbf\\%u0cb5\\%u0cb0\\%u0ca3\\%u0cc6", "then": "\\%u0ca8\\%u0c82\\%u0ca4\\%u0cb0\\>", "when": "\\%u0cb8\\%u0ccd\\%u0ca5\\%u0cbf\\%u0ca4\\%u0cbf\\%u0caf\\%u0ca8\\%u0ccd\\%u0ca8\\%u0cc1\\>"}, + \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd", "but": "\\%ud558\\%uc9c0\\%ub9cc\\|\\%ub2e8", "examples": "\\%uc608", "feature": "\\%uae30\\%ub2a5", "given": "\\%uc870\\%uac74\\|\\%uba3c\\%uc800", "rule": "Rule", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c\\|\\%ub9cc\\%uc57d"}, + \"lt": {"and": "Ir\\>", "background": "Kontekstas", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\|Scenarijai\\|Variantai", "feature": "Savyb\\%u0117", "given": "Duota\\>", "rule": "Rule", "scenario": "Scenarijus\\|Pavyzdys", "scenario_outline": "Scenarijaus \\%u0161ablonas", "then": "Tada\\>", "when": "Kai\\>"}, + \"lu": {"and": "an\\>\\|a\\>", "background": "Hannergrond", "but": "awer\\>\\|m\\%u00e4\\>", "examples": "Beispiller", "feature": "Funktionalit\\%u00e9it", "given": "ugeholl\\>", "rule": "Rule", "scenario": "Beispill\\|Szenario", "scenario_outline": "Plang vum Szenario", "then": "dann\\>", "when": "wann\\>"}, + \"lv": {"and": "Un\\>", "background": "Konteksts\\|Situ\\%u0101cija", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\|Paraugs", "feature": "Funkcionalit\\%u0101te\\|F\\%u012b\\%u010da", "given": "Kad\\>", "rule": "Rule", "scenario": "Scen\\%u0101rijs\\|Piem\\%u0113rs", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga", "then": "Tad\\>", "when": "Ja\\>"}, + \"mk-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\|\\%u0421\\%u043e\\%u0434\\%u0440\\%u0436\\%u0438\\%u043d\\%u0430", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\|\\%u0411\\%u0438\\%u0437\\%u043d\\%u0438\\%u0441 \\%u043f\\%u043e\\%u0442\\%u0440\\%u0435\\%u0431\\%u0430\\|\\%u041c\\%u043e\\%u0436\\%u043d\\%u043e\\%u0441\\%u0442", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>\\|\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u0430\\>", "rule": "Rule", "scenario": "\\%u041d\\%u0430 \\%u043f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\|\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u041f\\%u0440\\%u0435\\%u0433\\%u043b\\%u0435\\%u0434 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430", "then": "\\%u0422\\%u043e\\%u0433\\%u0430\\%u0448\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\>"}, + \"mk-Latn": {"and": "I\\>", "background": "Sodrzhina\\|Kontekst", "but": "No\\>", "examples": "Scenaria\\|Primeri", "feature": "Funkcionalnost\\|Biznis potreba\\|Mozhnost", "given": "Dadeno\\>\\|Dadena\\>", "rule": "Rule", "scenario": "Na primer\\|Scenario", "scenario_outline": "Pregled na scenarija\\|Koncept\\|Skica", "then": "Togash\\>", "when": "Koga\\>"}, + \"mn": {"and": "\\%u0422\\%u044d\\%u0433\\%u044d\\%u044d\\%u0434\\>\\|\\%u041c\\%u04e9\\%u043d\\>", "background": "\\%u0410\\%u0433\\%u0443\\%u0443\\%u043b\\%u0433\\%u0430", "but": "\\%u0413\\%u044d\\%u0445\\%u0434\\%u044d\\%u044d\\>\\|\\%u0425\\%u0430\\%u0440\\%u0438\\%u043d\\>", "examples": "\\%u0422\\%u0443\\%u0445\\%u0430\\%u0439\\%u043b\\%u0431\\%u0430\\%u043b", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446", "given": "\\%u04e8\\%u0433\\%u04e9\\%u0433\\%u0434\\%u0441\\%u04e9\\%u043d \\%u043d\\%u044c\\>\\|\\%u0410\\%u043d\\%u0445\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u044b\\%u043d \\%u0442\\%u04e9\\%u043b\\%u04e9\\%u0432\\%u043b\\%u04e9\\%u0433\\%u04e9\\%u04e9", "then": "\\%u04ae\\%u04af\\%u043d\\%u0438\\%u0439 \\%u0434\\%u0430\\%u0440\\%u0430\\%u0430\\>\\|\\%u0422\\%u044d\\%u0433\\%u044d\\%u0445\\%u044d\\%u0434\\>", "when": "\\%u0425\\%u044d\\%u0440\\%u044d\\%u0432\\>"}, + \"mr": {"and": "\\%u0924\\%u0938\\%u0947\\%u091a\\>\\|\\%u0906\\%u0923\\%u093f\\>", "background": "\\%u092a\\%u093e\\%u0930\\%u094d\\%u0936\\%u094d\\%u0935\\%u092d\\%u0942\\%u092e\\%u0940", "but": "\\%u092a\\%u0930\\%u0902\\%u0924\\%u0941\\>\\|\\%u092a\\%u0923\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923", "feature": "\\%u0935\\%u0948\\%u0936\\%u093f\\%u0937\\%u094d\\%u091f\\%u094d\\%u092f\\|\\%u0938\\%u0941\\%u0935\\%u093f\\%u0927\\%u093e", "given": "\\%u0926\\%u093f\\%u0932\\%u0947\\%u0932\\%u094d\\%u092f\\%u093e \\%u092a\\%u094d\\%u0930\\%u092e\\%u093e\\%u0923\\%u0947\\>\\|\\%u091c\\%u0930", "rule": "\\%u0928\\%u093f\\%u092f\\%u092e", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e", "then": "\\%u0924\\%u0947\\%u0935\\%u094d\\%u0939\\%u093e\\>\\|\\%u092e\\%u0917\\>", "when": "\\%u091c\\%u0947\\%u0935\\%u094d\\%u0939\\%u093e\\>"}, + \"ne": {"and": "\\%u0905\\%u0928\\%u093f\\>\\|\\%u0930\\>", "background": "\\%u092a\\%u0943\\%u0937\\%u094d\\%u0920\\%u092d\\%u0942\\%u092e\\%u0940", "but": "\\%u0924\\%u0930\\>", "examples": "\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923\\%u0939\\%u0930\\%u0941\\|\\%u0909\\%u0926\\%u093e\\%u0939\\%u0930\\%u0923", "feature": "\\%u0935\\%u093f\\%u0936\\%u0947\\%u0937\\%u0924\\%u093e\\|\\%u0938\\%u0941\\%u0935\\%u093f\\%u0927\\%u093e", "given": "\\%u0926\\%u093f\\%u0907\\%u090f\\%u0915\\%u094b\\>\\|\\%u0926\\%u093f\\%u090f\\%u0915\\%u094b\\>\\|\\%u092f\\%u0926\\%u093f\\>", "rule": "\\%u0928\\%u093f\\%u092f\\%u092e", "scenario": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f", "scenario_outline": "\\%u092a\\%u0930\\%u093f\\%u0926\\%u0943\\%u0936\\%u094d\\%u092f \\%u0930\\%u0942\\%u092a\\%u0930\\%u0947\\%u0916\\%u093e", "then": "\\%u0924\\%u094d\\%u092f\\%u0938\\%u092a\\%u091b\\%u093f\\>\\|\\%u0905\\%u0928\\%u0940\\>", "when": "\\%u091c\\%u092c\\>"}, + \"nl": {"and": "En\\>", "background": "Achtergrond", "but": "Maar\\>", "examples": "Voorbeelden", "feature": "Functionaliteit", "given": "Gegeven\\>\\|Stel\\>", "rule": "Rule", "scenario": "Voorbeeld\\|Scenario", "scenario_outline": "Abstract Scenario", "then": "Dan\\>", "when": "Wanneer\\>\\|Als\\>"}, + \"no": {"and": "Og\\>", "background": "Bakgrunn", "but": "Men\\>", "examples": "Eksempler", "feature": "Egenskap", "given": "Gitt\\>", "rule": "Regel", "scenario": "Eksempel\\|Scenario", "scenario_outline": "Abstrakt Scenario\\|Scenariomal", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"}, + \"pa": {"and": "\\%u0a05\\%u0a24\\%u0a47\\>", "background": "\\%u0a2a\\%u0a3f\\%u0a1b\\%u0a4b\\%u0a15\\%u0a5c", "but": "\\%u0a2a\\%u0a30\\>", "examples": "\\%u0a09\\%u0a26\\%u0a3e\\%u0a39\\%u0a30\\%u0a28\\%u0a3e\\%u0a02", "feature": "\\%u0a28\\%u0a15\\%u0a36 \\%u0a28\\%u0a41\\%u0a39\\%u0a3e\\%u0a30\\|\\%u0a2e\\%u0a41\\%u0a39\\%u0a3e\\%u0a02\\%u0a26\\%u0a30\\%u0a3e\\|\\%u0a16\\%u0a3e\\%u0a38\\%u0a40\\%u0a05\\%u0a24", "given": "\\%u0a1c\\%u0a3f\\%u0a35\\%u0a47\\%u0a02 \\%u0a15\\%u0a3f\\>\\|\\%u0a1c\\%u0a47\\%u0a15\\%u0a30\\>", "rule": "Rule", "scenario": "\\%u0a09\\%u0a26\\%u0a3e\\%u0a39\\%u0a30\\%u0a28\\|\\%u0a2a\\%u0a1f\\%u0a15\\%u0a25\\%u0a3e", "scenario_outline": "\\%u0a2a\\%u0a1f\\%u0a15\\%u0a25\\%u0a3e \\%u0a30\\%u0a42\\%u0a2a \\%u0a30\\%u0a47\\%u0a16\\%u0a3e\\|\\%u0a2a\\%u0a1f\\%u0a15\\%u0a25\\%u0a3e \\%u0a22\\%u0a3e\\%u0a02\\%u0a1a\\%u0a3e", "then": "\\%u0a24\\%u0a26\\>", "when": "\\%u0a1c\\%u0a26\\%u0a4b\\%u0a02\\>"}, + \"pl": {"and": "Oraz\\>\\|I\\>", "background": "Za\\%u0142o\\%u017cenia", "but": "Ale\\>", "examples": "Przyk\\%u0142ady", "feature": "Potrzeba biznesowa\\|W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\|Funkcja\\|Aspekt", "given": "Zak\\%u0142adaj\\%u0105c, \\%u017ce\\>\\|Zak\\%u0142adaj\\%u0105c\\>\\|Maj\\%u0105c\\>", "rule": "Zasada\\|Regu\\%u0142a", "scenario": "Scenariusz\\|Przyk\\%u0142ad", "scenario_outline": "Szablon scenariusza", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>\\|Je\\%u015bli\\>\\|Kiedy\\>\\|Gdy\\>"}, + \"pt": {"and": "E\\>", "background": "Cen\\%u00e1rio de Fundo\\|Cenario de Fundo\\|Contexto\\|Fundo", "but": "Mas\\>", "examples": "Exemplos\\|Cen\\%u00e1rios\\|Cenarios", "feature": "Funcionalidade\\|Caracter\\%u00edstica\\|Caracteristica", "given": "Dados\\>\\|Dadas\\>\\|Dado\\>\\|Dada\\>", "rule": "Regra", "scenario": "Exemplo\\|Cen\\%u00e1rio\\|Cenario", "scenario_outline": "Delinea\\%u00e7\\%u00e3o do Cen\\%u00e1rio\\|Delineacao do Cenario\\|Esquema do Cen\\%u00e1rio\\|Esquema do Cenario", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"}, + \"ro": {"and": "Si\\>\\|\\%u0218i\\>\\|\\%u015ei\\>", "background": "Context", "but": "Dar\\>", "examples": "Exemple", "feature": "Functionalitate\\|Func\\%u021bionalitate\\|Func\\%u0163ionalitate", "given": "Date fiind\\>\\|Dati fiind\\>\\|Da\\%u021bi fiind\\>\\|Da\\%u0163i fiind\\>\\|Dat fiind\\>\\|Dat\\%u0103 fiind", "rule": "Rule", "scenario": "Scenariu\\|Exemplu", "scenario_outline": "Structura scenariu\\|Structur\\%u0103 scenariu", "then": "Atunci\\>", "when": "Cand\\>\\|C\\%u00e2nd\\>"}, + \"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0422\\%u0430\\%u043a\\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\|\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442", "but": "\\%u0418\\%u043d\\%u0430\\%u0447\\%u0435\\>\\|\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u044b", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u044c\\%u043d\\%u043e\\%u0441\\%u0442\\%u044c\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\|\\%u0421\\%u0432\\%u043e\\%u0439\\%u0441\\%u0442\\%u0432\\%u043e\\|\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u044f\\|\\%u0424\\%u0438\\%u0447\\%u0430", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>\\|\\%u041f\\%u0443\\%u0441\\%u0442\\%u044c\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "rule": "\\%u041f\\%u0440\\%u0430\\%u0432\\%u0438\\%u043b\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\|\\%u0428\\%u0430\\%u0431\\%u043b\\%u043e\\%u043d \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f", "then": "\\%u0417\\%u0430\\%u0442\\%u0435\\%u043c\\>\\|\\%u0422\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0434\\%u0430\\>\\|\\%u0415\\%u0441\\%u043b\\%u0438\\>"}, + \"sk": {"and": "A taktie\\%u017e\\>\\|A z\\%u00e1rove\\%u0148\\>\\|A tie\\%u017e\\>\\|A\\>", "background": "Pozadie", "but": "Ale\\>", "examples": "Pr\\%u00edklady", "feature": "Po\\%u017eiadavka\\|Vlastnos\\%u0165\\|Funkcia", "given": "Za predpokladu\\>\\|Pokia\\%u013e\\>", "rule": "Rule", "scenario": "Pr\\%u00edklad\\|Scen\\%u00e1r", "scenario_outline": "Osnova Scen\\%u00e1ra\\|N\\%u00e1\\%u010drt Scen\\%u00e1ru\\|N\\%u00e1\\%u010drt Scen\\%u00e1ra", "then": "Potom\\>\\|Tak\\>", "when": "Ke\\%u010f\\>\\|Ak\\>"}, + \"sl": {"and": "Ter\\>\\|In\\>", "background": "Kontekst\\|Osnova\\|Ozadje", "but": "Vendar\\>\\|Ampak\\>\\|Toda\\>", "examples": "Scenariji\\|Primeri", "feature": "Funkcionalnost\\|Zna\\%u010dilnost\\|Funkcija\\|Mo\\%u017enosti\\|Moznosti\\|Lastnost", "given": "Privzeto\\>\\|Podano\\>\\|Zaradi\\>\\|Dano\\>", "rule": "Rule", "scenario": "Scenarij\\|Primer", "scenario_outline": "Struktura scenarija\\|Oris scenarija\\|Koncept\\|Osnutek\\|Skica", "then": "Takrat\\>\\|Potem\\>\\|Nato\\>", "when": "Kadar\\>\\|Ko\\>\\|Ce\\>\\|\\%u010ce\\>"}, + \"sr-Cyrl": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430", "given": "\\%u0417\\%u0430 \\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430 \\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430 \\%u0434\\%u0430\\%u0442\\%u0438\\>", "rule": "\\%u041f\\%u0440\\%u0430\\%u0432\\%u0438\\%u043b\\%u043e", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"}, + \"sr-Latn": {"and": "I\\>", "background": "Kontekst\\|Pozadina\\|Osnova", "but": "Ali\\>", "examples": "Scenariji\\|Primeri", "feature": "Funkcionalnost\\|Mogu\\%u0107nost\\|Mogucnost\\|Osobina", "given": "Za dato\\>\\|Za date\\>\\|Za dati\\>", "rule": "Pravilo", "scenario": "Scenario\\|Primer", "scenario_outline": "Struktura scenarija\\|Koncept\\|Skica", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"}, + \"sv": {"and": "Och\\>", "background": "Bakgrund", "but": "Men\\>", "examples": "Exempel", "feature": "Egenskap", "given": "Givet\\>", "rule": "Regel", "scenario": "Scenario", "scenario_outline": "Abstrakt Scenario\\|Scenariomall", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"}, + \"ta": {"and": "\\%u0bae\\%u0bc7\\%u0bb2\\%u0bc1\\%u0bae\\%u0bcd \\>\\|\\%u0bae\\%u0bb1\\%u0bcd\\%u0bb1\\%u0bc1\\%u0bae\\%u0bcd\\>", "background": "\\%u0baa\\%u0bbf\\%u0ba9\\%u0bcd\\%u0ba9\\%u0ba3\\%u0bbf", "but": "\\%u0b86\\%u0ba9\\%u0bbe\\%u0bb2\\%u0bcd \\>", "examples": "\\%u0b8e\\%u0b9f\\%u0bc1\\%u0ba4\\%u0bcd\\%u0ba4\\%u0bc1\\%u0b95\\%u0bcd\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9f\\%u0bc1\\%u0b95\\%u0bb3\\%u0bcd\\|\\%u0ba8\\%u0bbf\\%u0bb2\\%u0bc8\\%u0bae\\%u0bc8\\%u0b95\\%u0bb3\\%u0bbf\\%u0bb2\\%u0bcd\\|\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf\\%u0b95\\%u0bb3\\%u0bcd", "feature": "\\%u0bb5\\%u0ba3\\%u0bbf\\%u0b95 \\%u0ba4\\%u0bc7\\%u0bb5\\%u0bc8\\|\\%u0b85\\%u0bae\\%u0bcd\\%u0b9a\\%u0bae\\%u0bcd\\|\\%u0ba4\\%u0bbf\\%u0bb1\\%u0ba9\\%u0bcd", "given": "\\%u0b95\\%u0bc6\\%u0bbe\\%u0b9f\\%u0bc1\\%u0b95\\%u0bcd\\%u0b95\\%u0baa\\%u0bcd\\%u0baa\\%u0b9f\\%u0bcd\\%u0b9f\\>", "rule": "Rule", "scenario": "\\%u0b89\\%u0ba4\\%u0bbe\\%u0bb0\\%u0ba3\\%u0bae\\%u0bbe\\%u0b95\\|\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf", "scenario_outline": "\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf \\%u0bb5\\%u0bbe\\%u0bb0\\%u0bcd\\%u0baa\\%u0bcd\\%u0baa\\%u0bc1\\%u0bb0\\%u0bc1\\|\\%u0b95\\%u0bbe\\%u0b9f\\%u0bcd\\%u0b9a\\%u0bbf \\%u0b9a\\%u0bc1\\%u0bb0\\%u0bc1\\%u0b95\\%u0bcd\\%u0b95\\%u0bae\\%u0bcd", "then": "\\%u0b85\\%u0baa\\%u0bcd\\%u0baa\\%u0bc6\\%u0bbe\\%u0bb4\\%u0bc1\\%u0ba4\\%u0bc1\\>", "when": "\\%u0b8e\\%u0baa\\%u0bcd\\%u0baa\\%u0bc7\\%u0bbe\\%u0ba4\\%u0bc1\\>"}, + \"te": {"and": "\\%u0c2e\\%u0c30\\%u0c3f\\%u0c2f\\%u0c41\\>", "background": "\\%u0c28\\%u0c47\\%u0c2a\\%u0c25\\%u0c4d\\%u0c2f\\%u0c02", "but": "\\%u0c15\\%u0c3e\\%u0c28\\%u0c3f\\>", "examples": "\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23\\%u0c32\\%u0c41", "feature": "\\%u0c17\\%u0c41\\%u0c23\\%u0c2e\\%u0c41", "given": "\\%u0c1a\\%u0c46\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c2c\\%u0c21\\%u0c3f\\%u0c28\\%u0c26\\%u0c3f\\>", "rule": "Rule", "scenario": "\\%u0c38\\%u0c28\\%u0c4d\\%u0c28\\%u0c3f\\%u0c35\\%u0c47\\%u0c36\\%u0c02\\|\\%u0c09\\%u0c26\\%u0c3e\\%u0c39\\%u0c30\\%u0c23", "scenario_outline": "\\%u0c15\\%u0c25\\%u0c28\\%u0c02", "then": "\\%u0c05\\%u0c2a\\%u0c4d\\%u0c2a\\%u0c41\\%u0c21\\%u0c41\\>", "when": "\\%u0c08 \\%u0c2a\\%u0c30\\%u0c3f\\%u0c38\\%u0c4d\\%u0c25\\%u0c3f\\%u0c24\\%u0c3f\\%u0c32\\%u0c4b\\>"}, + \"th": {"and": "\\%u0e41\\%u0e25\\%u0e30\\>", "background": "\\%u0e41\\%u0e19\\%u0e27\\%u0e04\\%u0e34\\%u0e14", "but": "\\%u0e41\\%u0e15\\%u0e48\\>", "examples": "\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\|\\%u0e0a\\%u0e38\\%u0e14\\%u0e02\\%u0e2d\\%u0e07\\%u0e15\\%u0e31\\%u0e27\\%u0e2d\\%u0e22\\%u0e48\\%u0e32\\%u0e07", "feature": "\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e15\\%u0e49\\%u0e2d\\%u0e07\\%u0e01\\%u0e32\\%u0e23\\%u0e17\\%u0e32\\%u0e07\\%u0e18\\%u0e38\\%u0e23\\%u0e01\\%u0e34\\%u0e08\\|\\%u0e04\\%u0e27\\%u0e32\\%u0e21\\%u0e2a\\%u0e32\\%u0e21\\%u0e32\\%u0e23\\%u0e16\\|\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2b\\%u0e25\\%u0e31\\%u0e01", "given": "\\%u0e01\\%u0e33\\%u0e2b\\%u0e19\\%u0e14\\%u0e43\\%u0e2b\\%u0e49\\>", "rule": "Rule", "scenario": "\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c", "scenario_outline": "\\%u0e42\\%u0e04\\%u0e23\\%u0e07\\%u0e2a\\%u0e23\\%u0e49\\%u0e32\\%u0e07\\%u0e02\\%u0e2d\\%u0e07\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c\\|\\%u0e2a\\%u0e23\\%u0e38\\%u0e1b\\%u0e40\\%u0e2b\\%u0e15\\%u0e38\\%u0e01\\%u0e32\\%u0e23\\%u0e13\\%u0e4c", "then": "\\%u0e14\\%u0e31\\%u0e07\\%u0e19\\%u0e31\\%u0e49\\%u0e19\\>", "when": "\\%u0e40\\%u0e21\\%u0e37\\%u0e48\\%u0e2d\\>"}, + \"tlh": {"and": "latlh\\>\\|'ej\\>", "background": "mo'", "but": "'ach\\>\\|'a\\>", "examples": "ghantoH\\|lutmey", "feature": "poQbogh malja'\\|Qu'meH 'ut\\|perbogh\\|Qap\\|laH", "given": "DaH ghu' bejlu'\\>\\|ghu' noblu'\\>", "rule": "Rule", "scenario": "lut", "scenario_outline": "lut chovnatlh", "then": "vaj\\>", "when": "qaSDI'\\>"}, + \"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler", "feature": "\\%u00d6zellik", "given": "Diyelim ki\\>", "rule": "Kural", "scenario": "Senaryo\\|\\%u00d6rnek", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"}, + \"tt": {"and": "\\%u04ba\\%u04d9\\%u043c\\>\\|\\%u0412\\%u04d9\\>", "background": "\\%u041a\\%u0435\\%u0440\\%u0435\\%u0448", "but": "\\%u041b\\%u04d9\\%u043a\\%u0438\\%u043d\\>\\|\\%u04d8\\%u043c\\%u043c\\%u0430\\>", "examples": "\\%u04ae\\%u0440\\%u043d\\%u04d9\\%u043a\\%u043b\\%u04d9\\%u0440\\|\\%u041c\\%u0438\\%u0441\\%u0430\\%u043b\\%u043b\\%u0430\\%u0440", "feature": "\\%u04ae\\%u0437\\%u0435\\%u043d\\%u0447\\%u04d9\\%u043b\\%u0435\\%u043a\\%u043b\\%u0435\\%u043b\\%u0435\\%u043a\\|\\%u041c\\%u04e9\\%u043c\\%u043a\\%u0438\\%u043d\\%u043b\\%u0435\\%u043a", "given": "\\%u04d8\\%u0439\\%u0442\\%u0438\\%u043a\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\%u043d\\%u044b\\%u04a3 \\%u0442\\%u04e9\\%u0437\\%u0435\\%u043b\\%u0435\\%u0448\\%u0435", "then": "\\%u041d\\%u04d9\\%u0442\\%u0438\\%u0497\\%u04d9\\%u0434\\%u04d9\\>", "when": "\\%u04d8\\%u0433\\%u04d9\\%u0440\\>"}, + \"uk": {"and": "\\%u0410 \\%u0442\\%u0430\\%u043a\\%u043e\\%u0436\\>\\|\\%u0422\\%u0430\\>\\|\\%u0406\\>", "background": "\\%u041f\\%u0435\\%u0440\\%u0435\\%u0434\\%u0443\\%u043c\\%u043e\\%u0432\\%u0430", "but": "\\%u0410\\%u043b\\%u0435\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434\\%u0438", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0456\\%u043e\\%u043d\\%u0430\\%u043b", "given": "\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e, \\%u0449\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\%u043e\\>\\|\\%u041d\\%u0435\\%u0445\\%u0430\\%u0439\\>\\|\\%u0414\\%u0430\\%u043d\\%u043e\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u0439\\|\\%u041f\\%u0440\\%u0438\\%u043a\\%u043b\\%u0430\\%u0434", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0456\\%u044e", "then": "\\%u0422\\%u043e\\%u0434\\%u0456\\>\\|\\%u0422\\%u043e\\>", "when": "\\%u042f\\%u043a\\%u0449\\%u043e\\>\\|\\%u041a\\%u043e\\%u043b\\%u0438\\>"}, + \"ur": {"and": "\\%u0627\\%u0648\\%u0631\\>", "background": "\\%u067e\\%u0633 \\%u0645\\%u0646\\%u0638\\%u0631", "but": "\\%u0644\\%u06cc\\%u06a9\\%u0646\\>", "examples": "\\%u0645\\%u062b\\%u0627\\%u0644\\%u06cc\\%u06ba", "feature": "\\%u06a9\\%u0627\\%u0631\\%u0648\\%u0628\\%u0627\\%u0631 \\%u06a9\\%u06cc \\%u0636\\%u0631\\%u0648\\%u0631\\%u062a\\|\\%u0635\\%u0644\\%u0627\\%u062d\\%u06cc\\%u062a\\|\\%u062e\\%u0635\\%u0648\\%u0635\\%u06cc\\%u062a", "given": "\\%u0641\\%u0631\\%u0636 \\%u06a9\\%u06cc\\%u0627\\>\\|\\%u0628\\%u0627\\%u0644\\%u0641\\%u0631\\%u0636\\>\\|\\%u0627\\%u06af\\%u0631\\>", "rule": "Rule", "scenario": "\\%u0645\\%u0646\\%u0638\\%u0631\\%u0646\\%u0627\\%u0645\\%u06c1", "scenario_outline": "\\%u0645\\%u0646\\%u0638\\%u0631 \\%u0646\\%u0627\\%u0645\\%u06d2 \\%u06a9\\%u0627 \\%u062e\\%u0627\\%u06a9\\%u06c1", "then": "\\%u067e\\%u06be\\%u0631\\>\\|\\%u062a\\%u0628\\>", "when": "\\%u062c\\%u0628\\>"}, + \"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b", "given": "Belgilangan\\>", "rule": "Rule", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"}, + \"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u", "feature": "T\\%u00ednh n\\%u0103ng", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "rule": "Rule", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\|K\\%u1ecbch b\\%u1ea3n", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\|Khung k\\%u1ecbch b\\%u1ea3n", "then": "Th\\%u00ec\\>", "when": "Khi\\>"}, + \"zh-CN": {"and": "\\%u800c\\%u4e14\\|\\%u5e76\\%u4e14\\|\\%u540c\\%u65f6", "background": "\\%u80cc\\%u666f", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50", "feature": "\\%u529f\\%u80fd", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8bbe\\|\\%u5047\\%u5b9a", "rule": "Rule\\|\\%u89c4\\%u5219", "scenario": "\\%u573a\\%u666f\\|\\%u5267\\%u672c", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\|\\%u5267\\%u672c\\%u5927\\%u7eb2", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"}, + \"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14\\|\\%u540c\\%u6642", "background": "\\%u80cc\\%u666f", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50", "feature": "\\%u529f\\%u80fd", "given": "\\%u5047\\%u5982\\|\\%u5047\\%u8a2d\\|\\%u5047\\%u5b9a", "rule": "Rule", "scenario": "\\%u5834\\%u666f\\|\\%u5287\\%u672c", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\|\\%u5287\\%u672c\\%u5927\\%u7db1", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}} + +function! s:pattern(key) + let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+') + if &fileencoding == 'latin1' && language == '' + let language = 'en' + endif + if has_key(g:cucumber_languages, language) + let languages = [g:cucumber_languages[language]] + else + let languages = values(g:cucumber_languages) + end + return '\<\%('.join(map(languages,'get(v:val,a:key,"\\%(a\\&b\\)")'),'\|').'\)' +endfunction + +function! s:Add(name) + let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","StarRegion","Comment","String","Table"],'"cucumber".a:name.v:val'),",") + exe "syn region cucumber".a:name.'Region matchgroup=cucumber'.a:name.' start="\%(^\s*\)\@<=\%('.s:pattern(tolower(a:name)).'\)" end="$"'.next + exe 'syn region cucumber'.a:name.'AndRegion matchgroup=cucumber'.a:name.'And start="\%(^\s*\)\@<='.s:pattern('and').'" end="$" contained'.next + exe 'syn region cucumber'.a:name.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next + exe 'syn region cucumber'.a:name.'StarRegion matchgroup=cucumber'.a:name.'Star start="\%(^\s*\)\@<=\*\S\@!" end="$" contained'.next + exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" contained'.next + exe 'syn region cucumber'.a:name.'String start=+\%(^\s*\)\@<="""+ end=+"""+ contained'.next + exe 'syn match cucumber'.a:name.'Table "\%(^\s*\)\@<=|.*" contained contains=cucumberDelimiter'.next + exe 'hi def link cucumber'.a:name.'Comment cucumberComment' + exe 'hi def link cucumber'.a:name.'String cucumberString' + exe 'hi def link cucumber'.a:name.'But cucumber'.a:name.'And' + exe 'hi def link cucumber'.a:name.'Star cucumber'.a:name.'And' + exe 'hi def link cucumber'.a:name.'And cucumber'.a:name + exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion' +endfunction + +syn match cucumberComment "\%(^\s*\)\@<=#.*" +syn match cucumberComment "\%(\%^\s*\)\@<=#.*" contains=cucumberLanguage +syn match cucumberLanguage "\%(#\s*\)\@<=language:" contained +syn match cucumberUnparsed "\S.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberRule,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained +syn match cucumberUnparsedComment "#.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberRule,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained + +exe 'syn match cucumberFeature "\%(^\s*\)\@<='.s:pattern('feature').':" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberBackground,cucumberRule,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty' +exe 'syn match cucumberBackground "\%(^\s*\)\@<='.s:pattern('background').':"' +exe 'syn match cucumberScenario "\%(^\s*\)\@<='.s:pattern('scenario').':"' +exe 'syn match cucumberRule "\%(^\s*\)\@<='.s:pattern('rule').':"' +exe 'syn match cucumberScenarioOutline "\%(^\s*\)\@<='.s:pattern('scenario_outline').':"' +exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgroup=cucumberExampleTable skipempty skipwhite' + +syn match cucumberPlaceholder "<[^<>]*>" contained containedin=@cucumberStepRegions +syn match cucumberExampleTable "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter +syn match cucumberDelimiter "\\\@ +" Last Change: 2018 Feb 06 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the C++ syntax to start with +runtime! syntax/cpp.vim + +" CUDA extentions +syn keyword cudaStorageClass __device__ __global__ __host__ +syn keyword cudaStorageClass __constant__ __shared__ +syn keyword cudaStorageClass __inline__ __align__ __thread__ +"syn keyword cudaStorageClass __import__ __export__ __location__ +syn keyword cudaStructure template +syn keyword cudaType char1 char2 char3 char4 +syn keyword cudaType uchar1 uchar2 uchar3 uchar4 +syn keyword cudaType short1 short2 short3 short4 +syn keyword cudaType ushort1 ushort2 ushort3 ushort4 +syn keyword cudaType int1 int2 int3 int4 +syn keyword cudaType uint1 uint2 uint3 uint4 +syn keyword cudaType long1 long2 long3 long4 +syn keyword cudaType ulong1 ulong2 ulong3 ulong4 +syn keyword cudaType float1 float2 float3 float4 +syn keyword cudaType ufloat1 ufloat2 ufloat3 ufloat4 +syn keyword cudaType dim3 texture textureReference +syn keyword cudaType cudaError_t cudaDeviceProp cudaMemcpyKind +syn keyword cudaType cudaArray cudaChannelFormatKind +syn keyword cudaType cudaChannelFormatDesc cudaTextureAddressMode +syn keyword cudaType cudaTextureFilterMode cudaTextureReadMode +syn keyword cudaVariable gridDim blockIdx blockDim threadIdx +syn keyword cudaConstant __DEVICE_EMULATION__ +syn keyword cudaConstant cudaSuccess +" Many more errors are defined, but only these are listed in the maunal +syn keyword cudaConstant cudaErrorMemoryAllocation +syn keyword cudaConstant cudaErrorInvalidDevicePointer +syn keyword cudaConstant cudaErrorInvalidSymbol +syn keyword cudaConstant cudaErrorMixedDeviceExecution +syn keyword cudaConstant cudaMemcpyHostToHost +syn keyword cudaConstant cudaMemcpyHostToDevice +syn keyword cudaConstant cudaMemcpyDeviceToHost +syn keyword cudaConstant cudaMemcpyDeviceToDevice +syn keyword cudaConstant cudaReadModeElementType +syn keyword cudaConstant cudaReadModeNormalizedFloat +syn keyword cudaConstant cudaFilterModePoint +syn keyword cudaConstant cudaFilterModeLinear +syn keyword cudaConstant cudaAddressModeClamp +syn keyword cudaConstant cudaAddressModeWrap +syn keyword cudaConstant cudaChannelFormatKindSigned +syn keyword cudaConstant cudaChannelFormatKindUnsigned +syn keyword cudaConstant cudaChannelFormatKindFloat + +hi def link cudaStorageClass StorageClass +hi def link cudaStructure Structure +hi def link cudaType Type +hi def link cudaVariable Identifier +hi def link cudaConstant Constant + +let b:current_syntax = "cuda" + +" vim: ts=8 diff --git a/runtime/syntax/cupl.vim b/runtime/syntax/cupl.vim new file mode 100644 index 0000000..54495f8 --- /dev/null +++ b/runtime/syntax/cupl.vim @@ -0,0 +1,124 @@ +" Vim syntax file +" Language: CUPL +" Maintainer: John Cook +" Last Change: 2011 Dec 27 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" this language is oblivious to case. +syn case ignore + +" A bunch of keywords +syn keyword cuplHeader name partno date revision rev designer company nextgroup=cuplHeaderContents +syn keyword cuplHeader assembly assy location device nextgroup=cuplHeaderContents + +syn keyword cuplTodo contained TODO XXX FIXME + +" cuplHeaderContents uses default highlighting except for numbers +syn match cuplHeaderContents ".\+;"me=e-1 contains=cuplNumber contained + +" String constants +syn region cuplString start=+'+ end=+'+ +syn region cuplString start=+"+ end=+"+ + +syn keyword cuplStatement append condition +syn keyword cuplStatement default else +syn keyword cuplStatement field fld format function fuse +syn keyword cuplStatement group if jump loc +syn keyword cuplStatement macro min node out +syn keyword cuplStatement pin pinnode present table +syn keyword cuplStatement sequence sequenced sequencejk sequencers sequencet + +syn keyword cuplFunction log2 log8 log16 log + +" Valid integer number formats (decimal, binary, octal, hex) +syn match cuplNumber "\<[-+]\=[0-9]\+\>" +syn match cuplNumber "'d'[0-9]\+\>" +syn match cuplNumber "'b'[01x]\+\>" +syn match cuplNumber "'o'[0-7x]\+\>" +syn match cuplNumber "'h'[0-9a-fx]\+\>" + +" operators +syn match cuplLogicalOperator "[!#&$]" +syn match cuplArithmeticOperator "[-+*/%]" +syn match cuplArithmeticOperator "\*\*" +syn match cuplAssignmentOperator ":\==" +syn match cuplEqualityOperator ":" +syn match cuplTruthTableOperator "=>" + +" Signal extensions +syn match cuplExtension "\.[as][pr]\>" +syn match cuplExtension "\.oe\>" +syn match cuplExtension "\.oemux\>" +syn match cuplExtension "\.[dlsrjk]\>" +syn match cuplExtension "\.ck\>" +syn match cuplExtension "\.dq\>" +syn match cuplExtension "\.ckmux\>" +syn match cuplExtension "\.tec\>" +syn match cuplExtension "\.cnt\>" + +syn match cuplRangeOperator "\.\." contained + +" match ranges like memadr:[0000..1FFF] +" and highlight both the numbers and the .. operator +syn match cuplNumberRange "\<\x\+\.\.\x\+\>" contains=cuplRangeOperator + +" match vectors of type [name3..0] (decimal numbers only) +" but assign them no special highlighting except for the .. operator +syn match cuplBitVector "\<\a\+\d\+\.\.\d\+\>" contains=cuplRangeOperator + +" other special characters +syn match cuplSpecialChar "[\[\](){},;]" + +" directives +" (define these after cuplOperator so $xxx overrides $) +syn match cuplDirective "\$msg" +syn match cuplDirective "\$macro" +syn match cuplDirective "\$mend" +syn match cuplDirective "\$repeat" +syn match cuplDirective "\$repend" +syn match cuplDirective "\$define" +syn match cuplDirective "\$include" + +" multi-line comments +syn region cuplComment start=+/\*+ end=+\*/+ contains=cuplNumber,cuplTodo + +syn sync minlines=1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default highlighting. +hi def link cuplHeader cuplStatement +hi def link cuplLogicalOperator cuplOperator +hi def link cuplRangeOperator cuplOperator +hi def link cuplArithmeticOperator cuplOperator +hi def link cuplAssignmentOperator cuplOperator +hi def link cuplEqualityOperator cuplOperator +hi def link cuplTruthTableOperator cuplOperator +hi def link cuplOperator cuplStatement +hi def link cuplFunction cuplStatement +hi def link cuplStatement Statement +hi def link cuplNumberRange cuplNumber +hi def link cuplNumber cuplString +hi def link cuplString String +hi def link cuplComment Comment +hi def link cuplExtension cuplSpecial +hi def link cuplSpecialChar cuplSpecial +hi def link cuplSpecial Special +hi def link cuplDirective PreProc +hi def link cuplTodo Todo + + +let b:current_syntax = "cupl" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:ts=8 diff --git a/runtime/syntax/cuplsim.vim b/runtime/syntax/cuplsim.vim new file mode 100644 index 0000000..36eb4c3 --- /dev/null +++ b/runtime/syntax/cuplsim.vim @@ -0,0 +1,63 @@ +" Vim syntax file +" Language: CUPL simulation +" Maintainer: John Cook +" Last Change: 2001 Apr 25 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the CUPL syntax to start with +runtime! syntax/cupl.vim +unlet b:current_syntax + +" omit definition-specific stuff +syn clear cuplStatement +syn clear cuplFunction +syn clear cuplLogicalOperator +syn clear cuplArithmeticOperator +syn clear cuplAssignmentOperator +syn clear cuplEqualityOperator +syn clear cuplTruthTableOperator +syn clear cuplExtension + +" simulation order statement +syn match cuplsimOrder "order:" nextgroup=cuplsimOrderSpec skipempty +syn region cuplsimOrderSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimOrderFormat,cuplBitVector,cuplSpecialChar,cuplLogicalOperator,cuplCommaOperator contained + +" simulation base statement +syn match cuplsimBase "base:" nextgroup=cuplsimBaseSpec skipempty +syn region cuplsimBaseSpec start="." end=";"me=e-1 contains=cuplComment,cuplsimBaseType contained +syn keyword cuplsimBaseType octal decimal hex contained + +" simulation vectors statement +syn match cuplsimVectors "vectors:" + +" simulator format control +syn match cuplsimOrderFormat "%\d\+\>" contained + +" simulator control +syn match cuplsimStimulus "[10ckpx]\+" +syn match cuplsimStimulus +'\(\x\|x\)\+'+ +syn match cuplsimOutput "[lhznx*]\+" +syn match cuplsimOutput +"\x\+"+ + +syn sync minlines=1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" append to the highlighting links in cupl.vim +" The default highlighting. +hi def link cuplsimOrder cuplStatement +hi def link cuplsimBase cuplStatement +hi def link cuplsimBaseType cuplStatement +hi def link cuplsimVectors cuplStatement +hi def link cuplsimStimulus cuplNumber +hi def link cuplsimOutput cuplNumber +hi def link cuplsimOrderFormat cuplNumber + + +let b:current_syntax = "cuplsim" +" vim:ts=8 diff --git a/runtime/syntax/cvs.vim b/runtime/syntax/cvs.vim new file mode 100644 index 0000000..e1e413f --- /dev/null +++ b/runtime/syntax/cvs.vim @@ -0,0 +1,29 @@ +" Vim syntax file +" Language: CVS commit file +" Maintainer: Matt Dunford (zenmatic@gmail.com) +" Last Change: Sat Nov 24 23:25:11 CET 2001 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn region cvsLine start="^CVS: " end="$" contains=cvsFile,cvsCom,cvsFiles,cvsTag +syn match cvsFile contained " \t\(\(\S\+\) \)\+" +syn match cvsTag contained " Tag:" +syn match cvsFiles contained "\(Added\|Modified\|Removed\) Files:" +syn region cvsCom start="Committing in" end="$" contains=cvsDir contained extend keepend +syn match cvsDir contained "\S\+$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link cvsLine Comment +hi def link cvsDir cvsFile +hi def link cvsFile Constant +hi def link cvsFiles cvsCom +hi def link cvsTag cvsCom +hi def link cvsCom Statement + + +let b:current_syntax = "cvs" diff --git a/runtime/syntax/cvsrc.vim b/runtime/syntax/cvsrc.vim new file mode 100644 index 0000000..9522de6 --- /dev/null +++ b/runtime/syntax/cvsrc.vim @@ -0,0 +1,39 @@ +" Vim syntax file +" Language: cvs(1) RC file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn region cvsrcString display oneline start=+"+ skip=+\\\\\|\\\\"+ end=+"+ +syn region cvsrcString display oneline start=+'+ skip=+\\\\\|\\\\'+ end=+'+ + +syn match cvsrcNumber display '\<\d\+\>' + +syn match cvsrcBegin display '^' nextgroup=cvsrcCommand skipwhite + +syn region cvsrcCommand contained transparent matchgroup=cvsrcCommand + \ start='add\|admin\|checkout\|commit\|cvs\|diff' + \ start='export\|history\|import\|init\|log' + \ start='rdiff\|release\|remove\|rtag\|status\|tag' + \ start='update' + \ end='$' + \ contains=cvsrcOption,cvsrcString,cvsrcNumber + \ keepend + +syn match cvsrcOption contained display '-\a\+' + +hi def link cvsrcString String +hi def link cvsrcNumber Number +hi def link cvsrcCommand Keyword +hi def link cvsrcOption Identifier + +let b:current_syntax = "cvsrc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/cweb.vim b/runtime/syntax/cweb.vim new file mode 100644 index 0000000..4e06b36 --- /dev/null +++ b/runtime/syntax/cweb.vim @@ -0,0 +1,68 @@ +" Vim syntax file +" Language: CWEB +" Maintainer: Andreas Scherer +" Last Change: 2011 Dec 25 by Thilo Six + +" Details of the CWEB language can be found in the article by Donald E. Knuth +" and Silvio Levy, "The CWEB System of Structured Documentation", included as +" file "cwebman.tex" in the standard CWEB distribution, available for +" anonymous ftp at ftp://labrea.stanford.edu/pub/cweb/. + +" TODO: Section names and C/C++ comments should be treated as TeX material. +" TODO: The current version switches syntax highlighting off for section +" TODO: names, and leaves C/C++ comments as such. (On the other hand, +" TODO: switching to TeX mode in C/C++ comments might be colour overkill.) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" For starters, read the TeX syntax; TeX syntax items are allowed at the top +" level in the CWEB syntax, e.g., in the preamble. In general, a CWEB source +" code can be seen as a normal TeX document with some C/C++ material +" interspersed in certain defined regions. +runtime! syntax/tex.vim +unlet b:current_syntax + +" Read the C/C++ syntax too; C/C++ syntax items are treated as such in the +" C/C++ section of a CWEB chunk or in inner C/C++ context in "|...|" groups. +syntax include @webIncludedC :p:h/cpp.vim + +let s:cpo_save = &cpo +set cpo&vim + +" Inner C/C++ context (ICC) should be quite simple as it's comprised of +" material in "|...|"; however the naive definition for this region would +" hickup at the innocious "\|" TeX macro. Note: For the time being we expect +" that an ICC begins either at the start of a line or after some white space. +syntax region webInnerCcontext start="\(^\|[ \t\~`(]\)|" end="|" contains=@webIncludedC,webSectionName,webRestrictedTeX,webIgnoredStuff + +" Genuine C/C++ material. This syntactic region covers both the definition +" part and the C/C++ part of a CWEB section; it is ended by the TeX part of +" the next section. +syntax region webCpart start="@[dfscp<(]" end="@[ \*]" contains=@webIncludedC,webSectionName,webRestrictedTeX,webIgnoredStuff + +" Section names contain C/C++ material only in inner context. +syntax region webSectionName start="@[<(]" end="@>" contains=webInnerCcontext contained + +" The contents of "control texts" is not treated as TeX material, because in +" non-trivial cases this completely clobbers the syntax recognition. Instead, +" we highlight these elements as "strings". +syntax region webRestrictedTeX start="@[\^\.:t=q]" end="@>" oneline + +" Double-@ means single-@, anywhere in the CWEB source. (This allows e-mail +" address without going into C/C++ mode.) +syntax match webIgnoredStuff "@@" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link webRestrictedTeX String + + +let b:current_syntax = "cweb" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/cynlib.vim b/runtime/syntax/cynlib.vim new file mode 100644 index 0000000..24ad2a2 --- /dev/null +++ b/runtime/syntax/cynlib.vim @@ -0,0 +1,74 @@ +" Vim syntax file +" Language: Cynlib(C++) +" Maintainer: Phil Derrick +" Last change: 2001 Sep 02 +" URL http://www.derrickp.freeserve.co.uk/vim/syntax/cynlib.vim +" +" Language Information +" +" Cynlib is a library of C++ classes to allow hardware +" modelling in C++. Combined with a simulation kernel, +" the compiled and linked executable forms a hardware +" simulation of the described design. +" +" Further information can be found from www.forteds.com + + +" Remove any old syntax stuff hanging around +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Read the C++ syntax to start with - this includes the C syntax +runtime! syntax/cpp.vim +unlet b:current_syntax + +" Cynlib extensions + +syn keyword cynlibMacro Default CYNSCON +syn keyword cynlibMacro Case CaseX EndCaseX +syn keyword cynlibType CynData CynSignedData CynTime +syn keyword cynlibType In Out InST OutST +syn keyword cynlibType Struct +syn keyword cynlibType Int Uint Const +syn keyword cynlibType Long Ulong +syn keyword cynlibType OneHot +syn keyword cynlibType CynClock Cynclock0 +syn keyword cynlibFunction time configure my_name +syn keyword cynlibFunction CynModule epilog execute_on +syn keyword cynlibFunction my_name +syn keyword cynlibFunction CynBind bind +syn keyword cynlibFunction CynWait CynEvent +syn keyword cynlibFunction CynSetName +syn keyword cynlibFunction CynTick CynRun +syn keyword cynlibFunction CynFinish +syn keyword cynlibFunction Cynprintf CynSimTime +syn keyword cynlibFunction CynVcdFile +syn keyword cynlibFunction CynVcdAdd CynVcdRemove +syn keyword cynlibFunction CynVcdOn CynVcdOff +syn keyword cynlibFunction CynVcdScale +syn keyword cynlibFunction CynBgnName CynEndName +syn keyword cynlibFunction CynClock configure time +syn keyword cynlibFunction CynRedAnd CynRedNand +syn keyword cynlibFunction CynRedOr CynRedNor +syn keyword cynlibFunction CynRedXor CynRedXnor +syn keyword cynlibFunction CynVerify + + +syn match cynlibOperator "<<=" +syn keyword cynlibType In Out InST OutST Int Uint Const Cynclock + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link cynlibOperator Operator +hi def link cynlibMacro Statement +hi def link cynlibFunction Statement +hi def link cynlibppMacro Statement +hi def link cynlibType Type + + +let b:current_syntax = "cynlib" diff --git a/runtime/syntax/cynpp.vim b/runtime/syntax/cynpp.vim new file mode 100644 index 0000000..3064b11 --- /dev/null +++ b/runtime/syntax/cynpp.vim @@ -0,0 +1,50 @@ +" Vim syntax file +" Language: Cyn++ +" Maintainer: Phil Derrick +" Last change: 2001 Sep 02 +" +" Language Information +" +" Cynpp (Cyn++) is a macro language to ease coding in Cynlib. +" Cynlib is a library of C++ classes to allow hardware +" modelling in C++. Combined with a simulation kernel, +" the compiled and linked executable forms a hardware +" simulation of the described design. +" +" Cyn++ is designed to be HDL-like. +" +" Further information can be found from www.forteds.com + + + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the Cynlib syntax to start with - this includes the C++ syntax +runtime! syntax/cynlib.vim +unlet b:current_syntax + + + +" Cyn++ extensions + +syn keyword cynppMacro Always EndAlways +syn keyword cynppMacro Module EndModule +syn keyword cynppMacro Initial EndInitial +syn keyword cynppMacro Posedge Negedge Changed +syn keyword cynppMacro At +syn keyword cynppMacro Thread EndThread +syn keyword cynppMacro Instantiate + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link cLabel Label +hi def link cynppMacro Statement + + +let b:current_syntax = "cynpp" diff --git a/runtime/syntax/d.vim b/runtime/syntax/d.vim new file mode 100644 index 0000000..fdac98c --- /dev/null +++ b/runtime/syntax/d.vim @@ -0,0 +1,573 @@ +" Vim syntax file for the D programming language (version 1.076 and 2.069). +" +" Language: D +" Maintainer: Jesse Phillips +" Last Change: 2016 Feb 2 +" Version: 0.28 +" +" Contributors: +" - Jason Mills: original Maintainer +" - Kirk McDonald +" - Tim Keating +" - Frank Benoit +" - Shougo Matsushita +" - Ellery Newcomer +" - Steven N. Oliver +" - Sohgo Takeuchi +" - Robert Clipsham +" - Petar Kirov +" +" Please submit bugs/comments/suggestions to the github repo: +" https://github.com/JesseKPhillips/d.vim +" +" Options: +" d_comment_strings - Set to highlight strings and numbers in comments. +" +" d_hl_operator_overload - Set to highlight D's specially named functions +" that when overloaded implement unary and binary operators (e.g. opCmp). +" +" d_hl_object_types - Set to highlight some common types from object.di. + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Support cpoptions +let s:cpo_save = &cpo +set cpo&vim + +" Set the current syntax to be known as d +let b:current_syntax = "d" + +" Keyword definitions +" +syn keyword dExternal contained import module +syn keyword dAssert assert +syn keyword dConditional if else switch +syn keyword dBranch goto break continue +syn keyword dRepeat while for do foreach foreach_reverse +syn keyword dBoolean true false +syn keyword dConstant null +syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__ +syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__ +syn keyword dConstant __MODULE__ __FUNCTION__ __PRETTY_FUNCTION__ +syn keyword dTypedef alias typedef +syn keyword dStructure template interface class struct union +syn keyword dEnum enum +syn keyword dOperator new delete typeof typeid cast align is +syn keyword dOperator this super +if exists("d_hl_operator_overload") + syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd + syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod + syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr + syn keyword dOpOverload opShr_r opUShr opUShr_r opCat + syn keyword dOpOverload opCat_r opEquals opCmp + syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign + syn keyword dOpOverload opDivAssign opModAssign opAndAssign + syn keyword dOpOverload opOrAssign opXorAssign opShlAssign + syn keyword dOpOverload opShrAssign opUShrAssign opCatAssign + syn keyword dOpOverload opIndex opIndexAssign opIndexOpAssign + syn keyword dOpOverload opCall opSlice opSliceAssign opSliceOpAssign + syn keyword dOpOverload opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r + syn keyword dOpOverload opIn opIn_r opPow opDispatch opStar opDot + syn keyword dOpOverload opApply opApplyReverse opDollar + syn keyword dOpOverload opUnary opIndexUnary opSliceUnary + syn keyword dOpOverload opBinary opBinaryRight +endif + +syn keyword dType byte ubyte short ushort int uint long ulong cent ucent +syn keyword dType void bool Object +syn keyword dType float double real +syn keyword dType ushort int uint long ulong float +syn keyword dType char wchar dchar string wstring dstring +syn keyword dType ireal ifloat idouble creal cfloat cdouble +syn keyword dType size_t ptrdiff_t sizediff_t equals_t hash_t +if exists("d_hl_object_types") + syn keyword dType Object Throwable AssociativeArray Error Exception + syn keyword dType Interface OffsetTypeInfo TypeInfo TypeInfo_Typedef + syn keyword dType TypeInfo_Enum TypeInfo_Pointer TypeInfo_Array + syn keyword dType TypeInfo_StaticArray TypeInfo_AssociativeArray + syn keyword dType TypeInfo_Function TypeInfo_Delegate TypeInfo_Class + syn keyword dType ClassInfo TypeInfo_Interface TypeInfo_Struct + syn keyword dType TypeInfo_Tuple TypeInfo_Const TypeInfo_Invariant + syn keyword dType TypeInfo_Shared TypeInfo_Inout MemberInfo + syn keyword dType MemberInfo_field MemberInfo_function ModuleInfo +endif +syn keyword dDebug deprecated unittest invariant +syn keyword dExceptions throw try catch finally +syn keyword dScopeDecl public protected private export package +syn keyword dStatement debug return with +syn keyword dStatement function delegate __ctfe mixin macro __simd +syn keyword dStatement in out body +syn keyword dStorageClass contained in out scope +syn keyword dStorageClass inout ref lazy pure nothrow +syn keyword dStorageClass auto static override final abstract volatile +syn keyword dStorageClass __gshared __vector +syn keyword dStorageClass synchronized shared immutable const lazy +syn keyword dIdentifier _arguments _argptr __vptr __monitor +syn keyword dIdentifier _ctor _dtor __argTypes __overloadset +syn keyword dScopeIdentifier contained exit success failure +syn keyword dTraitsIdentifier contained isAbstractClass isArithmetic +syn keyword dTraitsIdentifier contained isAssociativeArray isFinalClass +syn keyword dTraitsIdentifier contained isPOD isNested isFloating +syn keyword dTraitsIdentifier contained isIntegral isScalar isStaticArray +syn keyword dTraitsIdentifier contained isUnsigned isVirtualFunction +syn keyword dTraitsIdentifier contained isVirtualMethod isAbstractFunction +syn keyword dTraitsIdentifier contained isFinalFunction isStaticFunction +syn keyword dTraitsIdentifier contained isOverrideFunction isTemplate +syn keyword dTraitsIdentifier contained isRef isOut isLazy hasMember +syn keyword dTraitsIdentifier contained identifier getAliasThis +syn keyword dTraitsIdentifier contained getAttributes getFunctionAttributes getMember +syn keyword dTraitsIdentifier contained getOverloads getPointerBitmap getProtection +syn keyword dTraitsIdentifier contained getVirtualFunctions getVirtualIndex +syn keyword dTraitsIdentifier contained getVirtualMethods getUnitTests +syn keyword dTraitsIdentifier contained parent classInstanceSize allMembers +syn keyword dTraitsIdentifier contained derivedMembers isSame compiles +syn keyword dPragmaIdentifier contained inline lib mangle msg startaddress GNU_asm +syn keyword dExternIdentifier contained C C++ D Windows Pascal System Objective-C +syn keyword dAttribute contained safe trusted system +syn keyword dAttribute contained property disable nogc +syn keyword dVersionIdentifier contained DigitalMars GNU LDC SDC D_NET +syn keyword dVersionIdentifier contained X86 X86_64 ARM PPC PPC64 IA64 MIPS MIPS64 Alpha +syn keyword dVersionIdentifier contained SPARC SPARC64 S390 S390X HPPA HPPA64 SH SH64 +syn keyword dVersionIdentifier contained linux Posix OSX FreeBSD Windows Win32 Win64 +syn keyword dVersionIdentifier contained OpenBSD BSD Solaris AIX SkyOS SysV3 SysV4 Hurd +syn keyword dVersionIdentifier contained Cygwin MinGW +syn keyword dVersionIdentifier contained LittleEndian BigEndian +syn keyword dVersionIdentifier contained D_InlineAsm_X86 D_InlineAsm_X86_64 +syn keyword dVersionIdentifier contained D_Version2 D_Coverage D_Ddoc D_LP64 D_PIC +syn keyword dVersionIdentifier contained unittest assert none all + +syn cluster dComment contains=dNestedComment,dBlockComment,dLineComment + +" Highlight the sharpbang +syn match dSharpBang "\%^#!.*" display + +" Attributes/annotations +syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute + +" Version Identifiers +syn match dVersion "\" +syn match dVersion "\"he=s+7 contains=dVersionIdentifier + +" Scope Identifiers +syn match dStatement "\" +syn match dStatement "\"he=s+5 contains=dScopeIdentifier + +" Traits Statement +syn match dStatement "\<__traits\>" +syn match dStatement "\<__traits\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+8 contains=dTraitsIdentifier + +" Pragma Statement +syn match dPragma "\" +syn match dPragma "\"he=s+6 contains=dPragmaIdentifier + +" Necessary to highlight C++ in extern modifiers. +syn match dExternIdentifier "C\(++\)\?" contained + +" Extern Identifiers +syn match dExternal "\" +syn match dExtern "\"he=s+6 contains=dExternIdentifier + +" Make import a region to prevent highlighting keywords +syn region dImport start="\+ contained transparent contains=dNestAngleString,@Spell +syn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell + +" Nesting delimited strings +" +syn region dParenString matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell +syn region dBrackString matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell +syn region dAngleString matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell +syn region dCurlyString matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell + +hi link dParenString dNestString +hi link dBrackString dNestString +hi link dAngleString dNestString +hi link dCurlyString dNestString + +syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString + +" Token strings +" +syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens,dFormat +syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens,dFormat + +syn cluster dTokens add=dTokenString + +" Numbers +" +syn case ignore + +syn match dDec display "\<\d[0-9_]*\(u\=l\=\|l\=u\=\)\>" + +" Hex number +syn match dHex display "\<0x[0-9a-f_]\+\(u\=l\=\|l\=u\=\)\>" + +syn match dOctal display "\<0[0-7_]\+\(u\=l\=\|l\=u\=\)\>" +" flag an octal number with wrong digits +syn match dOctalError display "\<0[0-7_]*[89][0-9_]*" + +" binary numbers +syn match dBinary display "\<0b[01_]\+\(u\=l\=\|l\=u\=\)\>" + +"floating point without the dot +syn match dFloat display "\<\d[0-9_]*\(fi\=\|l\=i\)\>" +"floating point number, with dot, optional exponent +syn match dFloat display "\<\d[0-9_]*\.[0-9_]*\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=" +"floating point number, starting with a dot, optional exponent +syn match dFloat display "\(\.[0-9_]\+\)\(e[-+]\=[0-9_]\+\)\=[fl]\=i\=\>" +"floating point number, without dot, with exponent +"syn match dFloat display "\<\d\+e[-+]\=\d\+[fl]\=\>" +syn match dFloat display "\<\d[0-9_]*e[-+]\=[0-9_]\+[fl]\=\>" + +"floating point without the dot +syn match dHexFloat display "\<0x[0-9a-f_]\+\(fi\=\|l\=i\)\>" +"floating point number, with dot, optional exponent +syn match dHexFloat display "\<0x[0-9a-f_]\+\.[0-9a-f_]*\(p[-+]\=[0-9_]\+\)\=[fl]\=i\=" +"floating point number, without dot, with exponent +syn match dHexFloat display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>" + +syn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat + +syn case match + +" Pragma (preprocessor) support +" TODO: Highlight following Integer and optional Filespec. +syn region dPragma start="#\s*\(line\>\)" skip="\\$" end="$" + +" Block +" +syn region dBlock start="{" end="}" transparent fold + + +" The default highlighting. +" +hi def link dBinary Number +hi def link dDec Number +hi def link dHex Number +hi def link dOctal Number +hi def link dFloat Float +hi def link dHexFloat Float +hi def link dDebug Debug +hi def link dBranch Conditional +hi def link dConditional Conditional +hi def link dLabel Label +hi def link dUserLabel Label +hi def link dRepeat Repeat +hi def link dExceptions Exception +hi def link dAssert Statement +hi def link dStatement Statement +hi def link dScopeDecl dStorageClass +hi def link dStorageClass StorageClass +hi def link dBoolean Boolean +hi def link dUnicode Special +hi def link dTokenStringBrack String +hi def link dHereString String +hi def link dNestString String +hi def link dDelimString String +hi def link dRawString String +hi def link dString String +hi def link dHexString String +hi def link dCharacter Character +hi def link dEscSequence SpecialChar +hi def link dFormat SpecialChar +hi def link dSpecialCharError Error +hi def link dOctalError Error +hi def link dOperator Operator +hi def link dOpOverload Identifier +hi def link dConstant Constant +hi def link dTypedef Typedef +hi def link dEnum Structure +hi def link dStructure Structure +hi def link dTodo Todo +hi def link dType Type +hi def link dLineComment Comment +hi def link dBlockComment Comment +hi def link dNestedComment Comment +hi def link dCommentError Error +hi def link dNestedCommentError Error +hi def link dCommentStartError Error +hi def link dExternal Include +hi def link dAnnotation PreProc +hi def link dSharpBang PreProc +hi def link dAttribute StorageClass +hi def link dIdentifier Identifier +hi def link dVersion dStatement +hi def link dVersionIdentifier Identifier +hi def link dScopeIdentifier Identifier +hi def link dTraitsIdentifier Identifier +hi def link dPragma PreProc +hi def link dPragmaIdentifier Identifier +hi def link dExtern dExternal +hi def link dExternIdentifier Identifier + +" Marks contents of the asm statment body as special + +syn match dAsmStatement "\" +syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode,@dComment,DUserLabel + +hi def link dAsmBody dUnicode +hi def link dAsmStatement dStatement +hi def link dAsmOpCode Identifier + +syn keyword dAsmOpCode contained aaa aad aam aas +syn keyword dAsmOpCode contained add addpd addps addsd +syn keyword dAsmOpCode contained and andnpd andnps andpd +syn keyword dAsmOpCode contained arpl bound bsf bsr +syn keyword dAsmOpCode contained bt btc btr bts +syn keyword dAsmOpCode contained call bswap andps addss +syn keyword dAsmOpCode contained cbw cdq clc cld +syn keyword dAsmOpCode contained cli clts cmc cmova +syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove +syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna +syn keyword dAsmOpCode contained cmovnae cmovg cmovae clflush +syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne +syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno +syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp +syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp +syn keyword dAsmOpCode contained cmppd cmovpe cmovnp cmovng +syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd +syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd +syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq +syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq +syn keyword dAsmOpCode contained cvtps2pd cvtpd2pi comiss cmpss +syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd +syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi +syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd +syn keyword dAsmOpCode contained da daa das db +syn keyword dAsmOpCode contained dd cwde cvttps2dq cvtsi2ss +syn keyword dAsmOpCode contained de dec df di +syn keyword dAsmOpCode contained divpd divps divsd divss +syn keyword dAsmOpCode contained dq ds dt dw +syn keyword dAsmOpCode contained enter f2xm1 fabs fadd +syn keyword dAsmOpCode contained faddp emms dl div +syn keyword dAsmOpCode contained fbld fbstp fchs fclex +syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe +syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi +syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp +syn keyword dAsmOpCode contained fdisi fcomip fcmovne fcmovb +syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp +syn keyword dAsmOpCode contained ffree fiadd ficom ficomp +syn keyword dAsmOpCode contained fidivr fild fimul fincstp +syn keyword dAsmOpCode contained fist fistp fisub fisubr +syn keyword dAsmOpCode contained fld finit fidiv feni +syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e +syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz +syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni +syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv +syn keyword dAsmOpCode contained fnstsw fninit fmul fldl2t +syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan +syn keyword dAsmOpCode contained frstor fsave fscale fsetpm +syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw +syn keyword dAsmOpCode contained fstp fstsw fsub fsubp +syn keyword dAsmOpCode contained fsubr fstenv fsin frndint +syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi +syn keyword dAsmOpCode contained fucomp fucompp fwait fxam +syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x +syn keyword dAsmOpCode contained hlt idiv imul in +syn keyword dAsmOpCode contained inc fyl2xp1 fxch fucomip +syn keyword dAsmOpCode contained ins insb insd insw +syn keyword dAsmOpCode contained into invd invlpg iret +syn keyword dAsmOpCode contained ja jae jb jbe +syn keyword dAsmOpCode contained jcxz je jecxz jg +syn keyword dAsmOpCode contained jge jc iretd int +syn keyword dAsmOpCode contained jl jle jmp jna +syn keyword dAsmOpCode contained jnb jnbe jnc jne +syn keyword dAsmOpCode contained jnge jnl jnle jno +syn keyword dAsmOpCode contained jns jnz jo jp +syn keyword dAsmOpCode contained jpe jnp jng jnae +syn keyword dAsmOpCode contained jpo js jz lahf +syn keyword dAsmOpCode contained ldmxcsr lds lea leave +syn keyword dAsmOpCode contained lfence lfs lgdt lgs +syn keyword dAsmOpCode contained lldt lmsw lock lods +syn keyword dAsmOpCode contained lodsb lidt les lar +syn keyword dAsmOpCode contained lodsd lodsw loop loope +syn keyword dAsmOpCode contained loopnz loopz lsl lss +syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps +syn keyword dAsmOpCode contained maxss mfence minpd minps +syn keyword dAsmOpCode contained minsd maxsd ltr loopne +syn keyword dAsmOpCode contained minss mov movapd movaps +syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps +syn keyword dAsmOpCode contained movhps movlhps movlpd movlps +syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd +syn keyword dAsmOpCode contained movntps movmskpd movhpd movd +syn keyword dAsmOpCode contained movntq movq movq2dq movs +syn keyword dAsmOpCode contained movsd movss movsw movsx +syn keyword dAsmOpCode contained movups movzx mul mulpd +syn keyword dAsmOpCode contained mulsd mulss neg nop +syn keyword dAsmOpCode contained not mulps movupd movsb +syn keyword dAsmOpCode contained or orpd orps out +syn keyword dAsmOpCode contained outsb outsd outsw packssdw +syn keyword dAsmOpCode contained packuswb paddb paddd paddq +syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw +syn keyword dAsmOpCode contained pand paddsb packsswb outs +syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb +syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw +syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub +syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw +syn keyword dAsmOpCode contained pmullw pminsw pextrw pcmpeqd +syn keyword dAsmOpCode contained pmuludq pop popa popad +syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 +syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw +syn keyword dAsmOpCode contained pshufw pslld pslldq psllq +syn keyword dAsmOpCode contained psllw pshuflw prefetcht1 popf +syn keyword dAsmOpCode contained psrad psraw psrld psrldq +syn keyword dAsmOpCode contained psrlw psubb psubd psubq +syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw +syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw +syn keyword dAsmOpCode contained punpckldq punpckhbw psubsb psrlq +syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha +syn keyword dAsmOpCode contained pushf pushfd pxor rcl +syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc +syn keyword dAsmOpCode contained rep repe repne repnz +syn keyword dAsmOpCode contained repz rdtsc rcpps pushad +syn keyword dAsmOpCode contained ret retf rol ror +syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal +syn keyword dAsmOpCode contained sbb scas scasb scasd +syn keyword dAsmOpCode contained seta setae setb setbe +syn keyword dAsmOpCode contained setc scasw sar rsm +syn keyword dAsmOpCode contained sete setg setge setl +syn keyword dAsmOpCode contained setna setnae setnb setnbe +syn keyword dAsmOpCode contained setne setng setnge setnl +syn keyword dAsmOpCode contained setno setnp setns setnz +syn keyword dAsmOpCode contained seto setnle setnc setle +syn keyword dAsmOpCode contained setp setpe setpo sets +syn keyword dAsmOpCode contained sfence sgdt shl shld +syn keyword dAsmOpCode contained shrd shufpd shufps sidt +syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd +syn keyword dAsmOpCode contained sqrtss sldt shr setz +syn keyword dAsmOpCode contained stc std sti stmxcsr +syn keyword dAsmOpCode contained stosb stosd stosw str +syn keyword dAsmOpCode contained subpd subps subsd subss +syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss +syn keyword dAsmOpCode contained ud2 sysenter sub stos +syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps +syn keyword dAsmOpCode contained verw wbinvd wrmsr xadd +syn keyword dAsmOpCode contained xchg xlatb xor xorpd +syn keyword dAsmOpCode contained xorps pfrcpit1 pfmin movddup +syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddps +syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor +syn keyword dAsmOpCode contained haddpd xlat wait verr +syn keyword dAsmOpCode contained movshdup movsldup mwait pfcmpeq +syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd +syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmul +syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 +syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr +syn keyword dAsmOpCode contained pmulhrw pswapd syscall sysret +syn keyword dAsmOpCode contained vpmuldq xgetbv cmpxchg8b cmpxchg16b +syn keyword dAsmOpCode contained pabsb pabsd pabsw palignr +syn keyword dAsmOpCode contained phaddd phaddsw phaddw phsubd +syn keyword dAsmOpCode contained phsubsw phsubw pmaddubsw pmulhrsw +syn keyword dAsmOpCode contained pshufb psignb psignd psignw +syn keyword dAsmOpCode contained popfq pushfq blendpd blendps +syn keyword dAsmOpCode contained blendvpd blendvps extractps insertps +syn keyword dAsmOpCode contained movntdqa mpsadbw packusdw pblendvb +syn keyword dAsmOpCode contained pblendw pcmpeqq pextrb pextrd +syn keyword dAsmOpCode contained pextrq phminposuw pinsrb pinsrd +syn keyword dAsmOpCode contained pinsrq pmaxsb pmaxsd pmaxud +syn keyword dAsmOpCode contained pmaxuw pminsb pminsd pminud +syn keyword dAsmOpCode contained pminuw pmulld ptest roundpd +syn keyword dAsmOpCode contained roundps roundsd roundss pmuldq +syn keyword dAsmOpCode contained pmovsxbd pmovsxdq pmovzxbq pmovzxdq +syn keyword dAsmOpCode contained pmovsxbq pmovsxwd pmovzxbq pmovzxwd +syn keyword dAsmOpCode contained pmovsxbw pmovsxwq pmovzxbw pmovzxwq +syn keyword dAsmOpCode contained crc32 pcmpestri pcmpestrm pcmpgtq +syn keyword dAsmOpCode contained pcmpistri pcmpistrm popcnt pi2fd +syn keyword dAsmOpCode contained adc + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/dart.vim b/runtime/syntax/dart.vim new file mode 100644 index 0000000..d1c2bf2 --- /dev/null +++ b/runtime/syntax/dart.vim @@ -0,0 +1,90 @@ +" Vim syntax file +" +" Language: Dart +" Maintainer: Eugene 'pr3d4t0r' Ciurana +" Source: https://github.com/pr3d4t0r/dart-vim-syntax +" Last Update: 2019 Oct 19 +" +" License: Vim is Charityware. dart.vim syntax is Charityware. +" (c) Copyright 2019 by Eugene Ciurana / pr3d4t0r. Licensed +" under the standard VIM LICENSE - Vim command :help uganda.txt +" for details. +" +" Questions, comments: +" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r +" +" vim: set fileencoding=utf-8: + + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + + +syn keyword dartCommentTodo contained TODO FIXME XXX TBD +syn match dartLineComment "//.*" contains=dartTodo,@Spell +syn match dartCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" +syn region dartComment start="/\*" end="\*/" contains=@Spell,dartTodo +syn keyword dartReserved assert async await class const export extends external final hide import implements interface library mixin on show super sync yield +syn match dartNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" + + +syn keyword dartBoolean false true +syn keyword dartBranch break continue +syn keyword dartConditional if else switch +syn keyword dartException catch finally rethrow throw try +syn keyword dartIdentifier abstract covariant deferred dynamic factory Function operator part static this typedef var +syn keyword dartLabel case default +syn keyword dartNull null +syn keyword dartOperator is new +syn keyword dartRepeat for do in while +syn keyword dartStatement return with +syn keyword dartType bool double enum int String StringBuffer void +syn keyword dartTodo contained TODO FIXME XXX + + +syn match dartEscape contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)" +syn match dartSpecialError contained "\\." +syn match dartStrInterpol contained "\${[\x, _]*\}" + +syn region dartDQString start=+"+ end=+"+ end=+$+ contains=dartEscape,dartStrInterpol,dartSpecialError,@Spell +syn region dartSQString start=+'+ end=+'+ end=+$+ contains=dartEscape,dartStrInterpol,dartSpecialError,@Spell + +syn match dartBraces "[{}\[\]]" +syn match dartParens "[()]" + + +syn sync fromstart +syn sync maxlines=100 + + +hi def link dartBoolean Boolean +hi def link dartBranch Conditional +hi def link dartComment Comment +hi def link dartConditional Conditional +hi def link dartDQString String +hi def link dartEscape SpecialChar +hi def link dartException Exception +hi def link dartIdentifier Identifier +hi def link dartLabel Label +hi def link dartLineComment Comment +hi def link dartNull Keyword +hi def link dartOperator Operator +hi def link dartRepeat Repeat +hi def link dartReserved Keyword +hi def link dartSQString String +hi def link dartSpecialError Error +hi def link dartStatement Statement +hi def link dartStrInterpol Special +hi def link dartTodo Todo +hi def link dartType Type + + +let b:current_syntax = "dart" +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/runtime/syntax/datascript.vim b/runtime/syntax/datascript.vim new file mode 100644 index 0000000..7b686a1 --- /dev/null +++ b/runtime/syntax/datascript.vim @@ -0,0 +1,102 @@ +" Vim syntax file +" Language: DataScript +" Maintainer: Dominique Pelle +" Last Change: 2015 Jul 30 +" +" DataScript is a formal language for modelling binary datatypes, +" bitstreams or file formats. For more information, see: +" +" http://dstools.sourceforge.net/DataScriptLanguageOverview.html + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn keyword dsPackage import package +syn keyword dsType bit bool string +syn keyword dsType int int8 int16 int32 int64 +syn keyword dsType uint8 uint16 uint32 uint64 +syn keyword dsType varint16 varint32 varint64 +syn keyword dsType varuint16 varuint32 varuint64 +syn keyword dsType leint16 leint32 leint64 +syn keyword dsType leuint16 leuint32 leuint64 +syn keyword dsEndian little big +syn keyword dsAlign align +syn keyword dsLabel case default +syn keyword dsConditional if condition +syn keyword dsBoolean true false +syn keyword dsCompound union choice on enum bitmask subtype explicit +syn keyword dsKeyword function return +syn keyword dsOperator sizeof bitsizeof lengthof is sum forall in +syn keyword dsStorageClass const +syn keyword dsTodo contained TODO FIXME XXX +syn keyword dsSql sql sql_table sql_database sql_pragma sql_index +syn keyword dsSql sql_integer sql_metadata sql_key sql_virtual +syn keyword dsSql using reference_key foreign_key to + +" dsCommentGroup allows adding matches for special things in comments. +syn cluster dsCommentGroup contains=dsTodo + +syn match dsOffset display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:" + +syn match dsNumber display "\<\d\+\>" +syn match dsNumberHex display "\<0[xX]\x\+\>" +syn match dsNumberBin display "\<[01]\+[bB]\>" contains=dsBinaryB +syn match dsBinaryB display contained "[bB]\>" +syn match dsOctal display "\<0\o\+\>" contains=dsOctalZero +syn match dsOctalZero display contained "\<0" + +syn match dsOctalError display "\<0\o*[89]\d*\>" + +syn match dsCommentError display "\*/" +syn match dsCommentStartError display "/\*"me=e-1 contained + +syn region dsCommentL + \ start="//" skip="\\$" end="$" keepend + \ contains=@dsCommentGroup,@Spell +syn region dsComment + \ matchgroup=dsCommentStart start="/\*" end="\*/" + \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend + +syn region dsString + \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell + +syn sync ccomment dsComment + +" Define the default highlighting. +hi def link dsType Type +hi def link dsEndian StorageClass +hi def link dsStorageClass StorageClass +hi def link dsAlign Label +hi def link dsLabel Label +hi def link dsOffset Label +hi def link dsSql PreProc +hi def link dsCompound Structure +hi def link dsConditional Conditional +hi def link dsBoolean Boolean +hi def link dsKeyword Statement +hi def link dsString String +hi def link dsNumber Number +hi def link dsNumberBin Number +hi def link dsBinaryB Special +hi def link dsOctal Number +hi def link dsOctalZero Special +hi def link dsOctalError Error +hi def link dsNumberHex Number +hi def link dsTodo Todo +hi def link dsOperator Operator +hi def link dsPackage Include +hi def link dsCommentError Error +hi def link dsCommentStartError Error +hi def link dsCommentStart dsComment +hi def link dsCommentL dsComment +hi def link cCommentL dsComment +hi def link dsComment Comment + +let b:current_syntax = "datascript" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/dcd.vim b/runtime/syntax/dcd.vim new file mode 100644 index 0000000..058d272 --- /dev/null +++ b/runtime/syntax/dcd.vim @@ -0,0 +1,51 @@ +" Vim syntax file +" Language: WildPackets EtherPeek Decoder (.dcd) file +" Maintainer: Christopher Shinn +" Last Change: 2003 Apr 25 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Keywords +syn keyword dcdFunction DCod TRTS TNXT CRLF +syn match dcdFunction display "\(STR\)\#" +syn keyword dcdLabel LABL +syn region dcdLabel start="[A-Z]" end=";" +syn keyword dcdConditional CEQU CNEQ CGTE CLTE CBIT CLSE +syn keyword dcdConditional LSTS LSTE LSTZ +syn keyword dcdConditional TYPE TTST TEQU TNEQ TGTE TLTE TBIT TLSE TSUB SKIP +syn keyword dcdConditional MARK WHOA +syn keyword dcdConditional SEQU SNEQ SGTE SLTE SBIT +syn match dcdConditional display "\(CST\)\#" "\(TST\)\#" +syn keyword dcdDisplay HBIT DBIT BBIT +syn keyword dcdDisplay HBYT DBYT BBYT +syn keyword dcdDisplay HWRD DWRD BWRD +syn keyword dcdDisplay HLNG DLNG BLNG +syn keyword dcdDisplay D64B +syn match dcdDisplay display "\(HEX\)\#" "\(CHR\)\#" "\(EBC\)\#" +syn keyword dcdDisplay HGLB DGLB BGLB +syn keyword dcdDisplay DUMP +syn keyword dcdStatement IPLG IPV6 ATLG AT03 AT01 ETHR TRNG PRTO PORT +syn keyword dcdStatement TIME OSTP PSTR CSTR NBNM DMPE FTPL CKSM FCSC +syn keyword dcdStatement GBIT GBYT GWRD GLNG +syn keyword dcdStatement MOVE ANDG ORRG NOTG ADDG SUBG MULG DIVG MODG INCR DECR +syn keyword dcdSpecial PRV1 PRV2 PRV3 PRV4 PRV5 PRV6 PRV7 PRV8 + +" Comment +syn region dcdComment start="\*" end="\;" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link dcdFunction Identifier +hi def link dcdLabel Constant +hi def link dcdConditional Conditional +hi def link dcdDisplay Type +hi def link dcdStatement Statement +hi def link dcdSpecial Special +hi def link dcdComment Comment + + +let b:current_syntax = "dcd" diff --git a/runtime/syntax/dcl.vim b/runtime/syntax/dcl.vim new file mode 100644 index 0000000..530fbdb --- /dev/null +++ b/runtime/syntax/dcl.vim @@ -0,0 +1,152 @@ +" Vim syntax file +" Language: DCL (Digital Command Language - vms) +" Maintainer: Charles E. Campbell +" Last Change: Mar 26, 2019 +" Version: 13 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704 + syn iskeyword $,@,48-57,_ +else + setlocal iskeyword=$,@,48-57,_ +endif + +syn case ignore +syn keyword dclInstr accounting del[ete] gen[cat] mou[nt] run +syn keyword dclInstr all[ocate] dep[osit] gen[eral] ncp run[off] +syn keyword dclInstr ana[lyze] dia[gnose] gos[ub] ncs sca +syn keyword dclInstr app[end] dif[ferences] got[o] on sea[rch] +syn keyword dclInstr ass[ign] dir[ectory] hel[p] ope[n] set +syn keyword dclInstr att[ach] dis[able] ico[nv] pas[cal] sho[w] +syn keyword dclInstr aut[horize] dis[connect] if pas[sword] sor[t] +syn keyword dclInstr aut[ogen] dis[mount] ini[tialize] pat[ch] spa[wn] +syn keyword dclInstr bac[kup] dpm[l] inq[uire] pca sta[rt] +syn keyword dclInstr cal[l] dqs ins[tall] pho[ne] sto[p] +syn keyword dclInstr can[cel] dsr job pri[nt] sub[mit] +syn keyword dclInstr cc dst[graph] lat[cp] pro[duct] sub[routine] +syn keyword dclInstr clo[se] dtm lib[rary] psw[rap] swx[cr] +syn keyword dclInstr cms dum[p] lic[ense] pur[ge] syn[chronize] +syn keyword dclInstr con[nect] edi[t] lin[k] qde[lete] sys[gen] +syn keyword dclInstr con[tinue] ena[ble] lmc[p] qse[t] sys[man] +syn keyword dclInstr con[vert] end[subroutine] loc[ale] qsh[ow] tff +syn keyword dclInstr cop[y] eod log[in] rea[d] then +syn keyword dclInstr cre[ate] eoj log[out] rec[all] typ[e] +syn keyword dclInstr cxx exa[mine] lse[dit] rec[over] uil +syn keyword dclInstr cxx[l_help] exc[hange] mac[ro] ren[ame] unl[ock] +syn keyword dclInstr dea[llocate] exi[t] mai[l] rep[ly] ves[t] +syn keyword dclInstr dea[ssign] fdl mer[ge] req[uest] vie[w] +syn keyword dclInstr deb[ug] flo[wgraph] mes[sage] ret[urn] wai[t] +syn keyword dclInstr dec[k] fon[t] mms rms wri[te] +syn keyword dclInstr def[ine] for[tran] + +syn keyword dclLexical f$context f$edit f$getjpi f$message f$setprv +syn keyword dclLexical f$csid f$element f$getqui f$mode f$string +syn keyword dclLexical f$cvsi f$environment f$getsyi f$parse f$time +syn keyword dclLexical f$cvtime f$extract f$identifier f$pid f$trnlnm +syn keyword dclLexical f$cvui f$fao f$integer f$privilege f$type +syn keyword dclLexical f$device f$file_attributes f$length f$process f$user +syn keyword dclLexical f$directory f$getdvi f$locate f$search f$verify + +syn match dclMdfy "/\I\i*" nextgroup=dclMdfySet,dclMdfySetString +syn match dclMdfySet "=[^ \t"]*" contained +syn region dclMdfySet matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]" contains=dclMdfySep +syn region dclMdfySetString start='="' skip='""' end='"' contained +syn match dclMdfySep "[:,]" contained + +" Numbers +syn match dclNumber "\d\+" + +" Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname) +syn match dclVarname "\I\i*" + +" Filenames (devices, paths) +syn match dclDevice "\I\i*\(\$\I\i*\)\=:[^=]"me=e-1 nextgroup=dclDirPath,dclFilename +syn match dclDirPath "\[\(\I\i*\.\)*\I\i*\]" contains=dclDirSep nextgroup=dclFilename +syn match dclFilename "\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\=" contains=dclDirSep +syn match dclFilename "\I\i*\.\(\I\i*\)\=\(;\d\+\)\=" contains=dclDirSep contained +syn match dclDirSep "[[\].;]" + +" Strings +syn region dclString start='"' skip='""' end='"' contains=@Spell + +" $ stuff and comments +syn cluster dclCommentGroup contains=dclStart,dclTodo,@Spell +syn match dclStart "^\$" skipwhite nextgroup=dclExe +syn match dclContinue "-$" +syn match dclComment "^\$!.*$" contains=@dclCommentGroup +syn match dclExe "\I\i*" contained +syn keyword dclTodo contained COMBAK DEBUG FIXME TODO XXX + +" Assignments and Operators +syn match dclAssign ":==\=" +syn match dclAssign "=" +syn match dclOper "--\|+\|\*\|/" +syn match dclLogOper "\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSep +syn keyword dclLogical contained and ge gts lt nes +syn keyword dclLogical contained eq ges le lts not +syn keyword dclLogical contained eqs gt les ne or +syn match dclLogSep "\." contained + +" @command procedures +syn match dclCmdProcStart "@" nextgroup=dclCmdProc +syn match dclCmdProc "\I\i*\(\.\I\i*\)\=" contained +syn match dclCmdProc "\I\i*:" contained nextgroup=dclCmdDirPath,dclCmdProc +syn match dclCmdDirPath "\[\(\I\i*\.\)*\I\i*\]" contained nextgroup=delCmdProc + +" labels +syn match dclGotoLabel "^\$\s*\I\i*:\s*$" contains=dclStart + +" parameters +syn match dclParam "'\I[a-zA-Z0-9_$]*'\=" + +" () matching (the clusters are commented out until a vim/vms comes out for v5.2+) +"syn cluster dclNextGroups contains=dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo +"syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,@dclNextGroups +syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo +syn match dclError ")" + +" Define the default highlighting. +if !exists("skip_dcl_syntax_inits") + + hi def link dclLogOper dclError + hi def link dclLogical dclOper + hi def link dclLogSep dclSep + + hi def link dclAssign Operator + hi def link dclCmdProc Special + hi def link dclCmdProcStart Operator + hi def link dclComment Comment + hi def link dclContinue Statement + hi def link dclDevice Identifier + hi def link dclDirPath Identifier + hi def link dclDirPath Identifier + hi def link dclDirSep Delimiter + hi def link dclError Error + hi def link dclExe Statement + hi def link dclFilename NONE + hi def link dclGotoLabel Label + hi def link dclInstr Statement + hi def link dclLexical Function + hi def link dclMdfy Type + hi def link dclMdfyBrkt Delimiter + hi def link dclMdfySep Delimiter + hi def link dclMdfySet Type + hi def link dclMdfySetString String + hi def link dclNumber Number + hi def link dclOper Operator + hi def link dclParam Special + hi def link dclSep Delimiter + hi def link dclStart Delimiter + hi def link dclString String + hi def link dclTodo Todo + +endif + +let b:current_syntax = "dcl" + +" vim: ts=16 diff --git a/runtime/syntax/deb822sources.vim b/runtime/syntax/deb822sources.vim new file mode 100644 index 0000000..8111361 --- /dev/null +++ b/runtime/syntax/deb822sources.vim @@ -0,0 +1,63 @@ +" Vim syntax file +" Language: Debian deb822-format source list file +" Maintainer: Debian Vim Maintainers +" Last Change: 2023 May 25 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/deb822sources.vim + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +" case insensitive +syn case ignore + +" Comments are matched from the first character of a line to the end-of-line +syn region deb822sourcesComment start="^#" end="$" + +" A bunch of useful keywords +syn match deb822sourcesType /\(deb-src\|deb\)/ +syn match deb822sourcesFreeComponent /\(main\|universe\)/ +syn match deb822sourcesNonFreeComponent /\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)/ + +" Include Debian versioning information +runtime! syntax/shared/debversions.vim + +exe 'syn match deb822sourcesSupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+' +exe 'syn match deb822sourcesUnsupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+' + +unlet g:debSharedSupportedVersions +unlet g:debSharedUnsupportedVersions + +syn region deb822sourcesSuites start="\(^Suites: *\)\@<=" end="$" contains=deb822sourcesSupportedSuites,deb822sourcesUnsupportedSuites oneline + +syn keyword deb822sourcesForce contained force +syn keyword deb822sourcesYesNo contained yes no + +" Match uri's +syn match deb822sourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+' + +syn match deb822sourcesEntryField "^\%(Types\|URIs\|Suites\|Components\): *" +syn match deb822sourcesOptionField "^\%(Signed-By\|Check-Valid-Until\|Valid-Until-Min\|Valid-Until-Max\|Date-Max-Future\|InRelease-Path\): *" +syn match deb822sourcesMultiValueOptionField "^\%(Architectures\|Languages\|Targets\)\%(-Add\|-Remove\)\?: *" + +syn region deb822sourcesStrictField matchgroup=deb822sourcesBooleanOptionField start="^\%(PDiffs\|Allow-Insecure\|Allow-Weak\|Allow-Downgrade-To-Insecure\|Trusted\|Check-Date\): *" end="$" contains=deb822sourcesYesNo oneline +syn region deb822sourcesStrictField matchgroup=deb822sourcesForceBooleanOptionField start="^\%(By-Hash\): *" end="$" contains=deb822sourcesForce,deb822sourcesYesNo oneline + +hi def link deb822sourcesComment Comment +hi def link deb822sourcesEntryField Keyword +hi def link deb822sourcesOptionField Special +hi def link deb822sourcesMultiValueOptionField Special +hi def link deb822sourcesBooleanOptionField Special +hi def link deb822sourcesForceBooleanOptionField Special +hi def link deb822sourcesStrictField Error +hi def link deb822sourcesType Identifier +hi def link deb822sourcesFreeComponent Identifier +hi def link deb822sourcesNonFreeComponent Identifier +hi def link deb822sourcesForce Identifier +hi def link deb822sourcesYesNo Identifier +hi def link deb822sourcesUri Constant +hi def link deb822sourcesSupportedSuites Type +hi def link deb822sourcesUnsupportedSuites WarningMsg + +let b:current_syntax = 'deb822sources' diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim new file mode 100644 index 0000000..da35a6a --- /dev/null +++ b/runtime/syntax/debchangelog.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: Debian changelog files +" Maintainer: Debian Vim Maintainers +" Former Maintainers: Gerfried Fuchs +" Wichert Akkerman +" Last Change: 2023 Oct 11 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debchangelog.vim + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +" Case doesn't matter for us +syn case ignore + +let s:urgency='urgency=\(low\|medium\|high\|emergency\|critical\)\( [^[:space:],][^,]*\)\=' +let s:binNMU='binary-only=yes' + +" Include Debian versioning information +runtime! syntax/shared/debversions.vim + +exe 'syn match debchangelogTarget contained "\%( \%('.join(g:debSharedSupportedVersions, '\|').'\)\>[-[:alnum:]]*\)\+"' +exe 'syn match debchangelogUnsupportedTarget contained "\%( \%('.join(g:debSharedUnsupportedVersions, '\|').'\)\>[-[:alnum:]]*\)\+"' + +unlet g:debSharedSupportedVersions +unlet g:debSharedUnsupportedVersions + +" Define some common expressions we can use later on +syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ " +exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"' +exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"' +syn match debchangelogUnreleased contained / UNRELEASED/ +syn match debchangelogVersion contained "(.\{-})" +syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*" +syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*" +syn match debchangelogEmail contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+" +syn match debchangelogEmail contained "<.\{-}>" + +" Define the entries that make up the changelog +syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogFirstKV,debchangelogOtherKV,debchangelogTarget,debchangelogUnsupportedTarget,debchangelogUnreleased,debchangelogVersion,debchangelogBinNMU oneline +syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline +syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline + +" Associate our matches and regions with pretty colours +hi def link debchangelogHeader Error +hi def link debchangelogFooter Identifier +hi def link debchangelogEntry Normal +hi def link debchangelogCloses Statement +hi def link debchangelogLP Statement +hi def link debchangelogFirstKV Identifier +hi def link debchangelogOtherKV Identifier +hi def link debchangelogName Comment +hi def link debchangelogVersion Identifier +hi def link debchangelogUnreleased WarningMsg +hi def link debchangelogEmail Special +hi def link debchangelogTarget Identifier +hi def link debchangelogUnsupportedTarget Identifier + +let b:current_syntax = 'debchangelog' + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim new file mode 100644 index 0000000..b173a7b --- /dev/null +++ b/runtime/syntax/debcontrol.vim @@ -0,0 +1,145 @@ +" Vim syntax file +" Language: Debian control files +" Maintainer: Debian Vim Maintainers +" Former Maintainers: Gerfried Fuchs +" Wichert Akkerman +" Last Change: 2023 Dec 22 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debcontrol.vim + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Should match case except for the keys of each field +syn case match + +syn iskeyword @,48-57,- + +" Everything that is not explicitly matched by the rules below +syn match debcontrolElse "^.*$" + +" Common separators +syn match debControlComma ",[ \t]*" +syn match debControlSpace "[ \t]" + +let s:kernels = ['linux', 'hurd', 'kfreebsd', 'knetbsd', 'kopensolaris', 'netbsd'] +let s:archs = [ + \ 'alpha', 'amd64', 'armeb', 'armel', 'armhf', 'arm64', 'avr32', 'hppa' + \, 'i386', 'ia64', 'loong64', 'lpia', 'm32r', 'm68k', 'mipsel', 'mips64el', 'mips' + \, 'powerpcspe', 'powerpc', 'ppc64el', 'ppc64', 'riscv64', 's390x', 's390', 'sh3eb' + \, 'sh3', 'sh4eb', 'sh4', 'sh', 'sparc64', 'sparc', 'x32' + \ ] +let s:pairs = [ + \ 'hurd-i386', 'kfreebsd-i386', 'kfreebsd-amd64', 'knetbsd-i386' + \, 'kopensolaris-i386', 'netbsd-alpha', 'netbsd-i386' + \ ] + +" Define some common expressions we can use later on +syn keyword debcontrolArchitecture contained all any +exe 'syn keyword debcontrolArchitecture contained '. join(map(copy(s:kernels), {k,v -> v .'-any'})) +exe 'syn keyword debcontrolArchitecture contained '. join(map(copy(s:archs), {k,v -> 'any-'.v})) +exe 'syn keyword debcontrolArchitecture contained '. join(s:archs) +exe 'syn keyword debcontrolArchitecture contained '. join(s:pairs) + +unlet s:kernels s:archs s:pairs + +" Keep in sync with https://metadata.ftp-master.org/sections.822 +" curl -q https://metadata.ftp-master.debian.org/sections.822 2>/dev/null| grep-dctrl -n --not -FSection -sSection / - +let s:sections = [ + \ 'admin', 'cli-mono', 'comm', 'database', 'debian-installer', 'debug' + \, 'devel', 'doc', 'editors', 'education', 'electronics', 'embedded' + \, 'fonts', 'games', 'gnome', 'gnu-r', 'gnustep', 'golang', 'graphics' + \, 'hamradio', 'haskell', 'httpd', 'interpreters', 'introspection' + \, 'java', 'javascript', 'kde', 'kernel', 'libdevel', 'libs', 'lisp' + \, 'localization', 'mail', 'math', 'metapackages', 'misc', 'net', 'news' + \, 'ocaml', 'oldlibs', 'otherosfs', 'perl', 'php', 'python', 'raku' + \, 'ruby', 'rust', 'science', 'shells', 'sound', 'tasks', 'tex', 'text' + \, 'utils', 'vcs', 'video', 'web', 'x11', 'xfce', 'zope' + \ ] + +syn keyword debcontrolMultiArch contained no foreign allowed same +syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+" +syn keyword debcontrolPriority contained extra important optional required standard +exe 'syn match debcontrolSection contained "\%(\%(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\<\%('.join(s:sections, '\|').'\)\>"' +syn keyword debcontrolPackageType contained udeb deb +syn match debcontrolVariable contained "\${.\{-}}" +syn keyword debcontrolDmUpload contained yes +syn keyword debcontrolYesNo contained yes no +syn match debcontrolR3 contained "\<\%(no\|binary-targets\|[[:graph:]]\+/[[:graph:]]\+\%( \+[[:graph:]]\+/[[:graph:]]\+\)*\)\>" + +unlet s:sections + +" A URL (using the domain name definitions from RFC 1034 and 1738), right now +" only enforce protocol and some sanity on the server/path part; +syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" +syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" +syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$" +syn match debcontrolVcsGit contained "\v%(git|https?)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?%(\s+-b\s+[^ ~^:?*[\\]+)?$" + +" An email address +syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+" +syn match debcontrolEmail "<.\{-}>" + +" #-Comments +syn match debcontrolComment "^#.*$" contains=@Spell + +syn case ignore + +" Handle all fields from deb-src-control(5) + +" Catch-all for the legal fields +syn region debcontrolField matchgroup=debcontrolKey start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\|\%(XS-\)\=Testsuite\%(-Triggers\)\=\|Build-Profiles\|Tag\|Subarchitecture\|Kernel-Version\|Installer-Menu-Item\): " end="$" contains=debcontrolVariable,debcontrolEmail oneline +syn region debcontrolMultiField matchgroup=debcontrolKey start="^\%(Build-\%(Conflicts\|Depends\)\%(-Arch\|-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Breaks\|Enhances\|Replaces\|Conflicts\|Provides\|Built-Using\|Uploaders\|X[SBC]\{0,3\}\%(Private-\)\=-[-a-zA-Z0-9]\+\): *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment +syn region debcontrolMultiFieldSpell matchgroup=debcontrolKey start="^Description: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=debcontrolEmail,debcontrolVariable,debcontrolComment,@Spell + +" Fields for which we do strict syntax checking +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Architecture: *" end="$" contains=debcontrolArchitecture,debcontrolSpace oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Multi-Arch: *" end="$" contains=debcontrolMultiArch oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Package\|Source\): *" end="$" contains=debcontrolName oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Priority: *" end="$" contains=debcontrolPriority oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Section: *" end="$" contains=debcontrolSection oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XC-\)\=Package-Type: *" end="$" contains=debcontrolPackageType oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Homepage: *" end="$" contains=debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\): *" end="$" contains=debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-Svn: *" end="$" contains=debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-Cvs: *" end="$" contains=debcontrolVcsCvs oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(XS-[-a-zA-Z0-9]\+-\)\=Vcs-Git: *" end="$" contains=debcontrolVcsGit oneline keepend +syn region debcontrolStrictField matchgroup=debcontrolKey start="^Rules-Requires-Root: *" end="$" contains=debcontrolR3 oneline +syn region debcontrolStrictField matchgroup=debcontrolKey start="^\%(Build-\)\=Essential: *" end="$" contains=debcontrolYesNo oneline + +syn region debcontrolStrictField matchgroup=debcontrolDeprecatedKey start="^\%(XS-\)\=DM-Upload-Allowed: *" end="$" contains=debcontrolDmUpload oneline + +" Associate our matches and regions with pretty colours +hi def link debcontrolKey Keyword +hi def link debcontrolField Normal +hi def link debcontrolStrictField Error +hi def link debcontrolDeprecatedKey Error +hi def link debcontrolMultiField Normal +hi def link debcontrolArchitecture Normal +hi def link debcontrolMultiArch Normal +hi def link debcontrolName Normal +hi def link debcontrolPriority Normal +hi def link debcontrolSection Normal +hi def link debcontrolPackageType Normal +hi def link debcontrolVariable Identifier +hi def link debcontrolEmail Identifier +hi def link debcontrolVcsSvn Identifier +hi def link debcontrolVcsCvs Identifier +hi def link debcontrolVcsGit Identifier +hi def link debcontrolHTTPUrl Identifier +hi def link debcontrolDmUpload Identifier +hi def link debcontrolYesNo Identifier +hi def link debcontrolR3 Identifier +hi def link debcontrolComment Comment +hi def link debcontrolElse Special + +let b:current_syntax = 'debcontrol' + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/debcopyright.vim b/runtime/syntax/debcopyright.vim new file mode 100644 index 0000000..6f76b5c --- /dev/null +++ b/runtime/syntax/debcopyright.vim @@ -0,0 +1,33 @@ +" Vim syntax file +" Language: Debian copyright file +" Maintainer: Debian Vim Maintainers +" Last Change: 2023 Jan 16 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debcopyright.vim + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case match + +syn match debcopyrightUrl "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" +syn match debcopyrightKey "^\%(Format\|Upstream-Name\|Upstream-Contact\|Disclaimer\|Source\|Comment\|Files\|Copyright\|License\|Files-Excluded\%(-[-a-zA-Z0-9]\+\)\=\): *" +syn match debcopyrightEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+" +syn match debcopyrightEmail "<.\{-}>" +syn match debcopyrightComment "^#.*$" contains=@Spell + +hi def link debcopyrightUrl Identifier +hi def link debcopyrightKey Keyword +hi def link debcopyrightEmail Identifier +hi def link debcopyrightComment Comment + +let b:current_syntax = 'debcopyright' + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/debsources.vim b/runtime/syntax/debsources.vim new file mode 100644 index 0000000..9846cfd --- /dev/null +++ b/runtime/syntax/debsources.vim @@ -0,0 +1,47 @@ +" Vim syntax file +" Language: Debian sources.list +" Maintainer: Debian Vim Maintainers +" Former Maintainer: Matthijs Mohlmann +" Last Change: 2023 Oct 11 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debsources.vim + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +" case sensitive +syn case match + +" A bunch of useful keywords +syn match debsourcesType /\(deb-src\|deb\)/ +syn match debsourcesFreeComponent /\(main\|universe\)/ +syn match debsourcesNonFreeComponent /\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)/ + +" Match comments +syn match debsourcesComment /#.*/ contains=@Spell + +" Include Debian versioning information +runtime! syntax/shared/debversions.vim + +exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+' +exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|') .'\)\>\([-[:alnum:]_./]*\)+' + +unlet g:debSharedSupportedVersions +unlet g:debSharedUnsupportedVersions + +" Match uri's +syn match debsourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+' +syn region debsourcesLine start="^" end="$" contains=debsourcesType,debsourcesFreeComponent,debsourcesNonFreeComponent,debsourcesComment,debsourcesUri,debsourcesDistrKeyword,debsourcesUnsupportedDistrKeyword oneline + + +" Associate our matches and regions with pretty colours +hi def link debsourcesType Statement +hi def link debsourcesFreeComponent Statement +hi def link debsourcesNonFreeComponent Statement +hi def link debsourcesComment Comment +hi def link debsourcesUri Constant +hi def link debsourcesDistrKeyword Type +hi def link debsourcesUnsupportedDistrKeyword WarningMsg + +let b:current_syntax = 'debsources' diff --git a/runtime/syntax/def.vim b/runtime/syntax/def.vim new file mode 100644 index 0000000..a17714c --- /dev/null +++ b/runtime/syntax/def.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: Microsoft Module-Definition (.def) File +" Orig Author: Rob Brady +" Maintainer: Wu Yongwei +" Last Change: $Date: 2007/10/02 13:51:24 $ +" $Revision: 1.2 $ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn match defComment ";.*" + +syn keyword defKeyword LIBRARY STUB EXETYPE DESCRIPTION CODE WINDOWS DOS +syn keyword defKeyword RESIDENTNAME PRIVATE EXPORTS IMPORTS SEGMENTS +syn keyword defKeyword HEAPSIZE DATA +syn keyword defStorage LOADONCALL MOVEABLE DISCARDABLE SINGLE +syn keyword defStorage FIXED PRELOAD + +syn match defOrdinal "\s\+@\d\+" + +syn region defString start=+'+ end=+'+ + +syn match defNumber "\d+" +syn match defNumber "0x\x\+" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link defComment Comment +hi def link defKeyword Keyword +hi def link defStorage StorageClass +hi def link defString String +hi def link defNumber Number +hi def link defOrdinal Operator + + +let b:current_syntax = "def" + +" vim: ts=8 diff --git a/runtime/syntax/denyhosts.vim b/runtime/syntax/denyhosts.vim new file mode 100644 index 0000000..f32faab --- /dev/null +++ b/runtime/syntax/denyhosts.vim @@ -0,0 +1,289 @@ +" Vim syntax file +" Language: denyhosts configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-25 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword denyhostsTodo + \ contained + \ TODO + \ FIXME + \ XXX + \ NOTE + +syn case ignore + +syn match denyhostsComment + \ contained + \ display + \ '#.*' + \ contains=denyhostsTodo, + \ @Spell + +syn match denyhostsBegin + \ display + \ '^' + \ nextgroup=@denyhostsSetting, + \ denyhostsComment + \ skipwhite + +syn cluster denyhostsSetting + \ contains=denyhostsStringSetting, + \ denyhostsBooleanSetting, + \ denyhostsPathSetting, + \ denyhostsNumericSetting, + \ denyhostsTimespecSetting, + \ denyhostsFormatSetting, + \ denyhostsRegexSetting + +syn keyword denyhostsStringSetting + \ contained + \ ADMIN_EMAIL + \ SMTP_HOST + \ SMTP_USERNAME + \ SMTP_PASSWORD + \ SMTP_FROM + \ SMTP_SUBJECT + \ BLOCK_SERVICE + \ nextgroup=denyhostsStringDelimiter + \ skipwhite + +syn keyword denyhostsBooleanSetting + \ contained + \ SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS + \ HOSTNAME_LOOKUP + \ SYSLOG_REPORT + \ RESET_ON_SUCCESS + \ SYNC_UPLOAD + \ SYNC_DOWNLOAD + \ ALLOWED_HOSTS_HOSTNAME_LOOKUP + \ nextgroup=denyhostsBooleanDelimiter + \ skipwhite + +syn keyword denyhostsPathSetting + \ contained + \ DAEMON_LOG + \ PLUGIN_DENY + \ PLUGIN_PURGE + \ SECURE_LOG + \ LOCK_FILE + \ HOSTS_DENY + \ WORK_DIR + \ nextgroup=denyhostsPathDelimiter + \ skipwhite + +syn keyword denyhostsNumericSetting + \ contained + \ SYNC_DOWNLOAD_THRESHOLD + \ SMTP_PORT + \ PURGE_THRESHOLD + \ DENY_THRESHOLD_INVALID + \ DENY_THRESHOLD_VALID + \ DENY_THRESHOLD_ROOT + \ DENY_THRESHOLD_RESTRICTED + \ nextgroup=denyhostsNumericDelimiter + \ skipwhite + +syn keyword denyhostsTimespecSetting + \ contained + \ DAEMON_SLEEP + \ DAEMON_PURGE + \ AGE_RESET_INVALID + \ AGE_RESET_VALID + \ AGE_RESET_ROOT + \ AGE_RESET_RESTRICTED + \ SYNC_INTERVAL + \ SYNC_DOWNLOAD_RESILIENCY + \ PURGE_DENY + \ nextgroup=denyhostsTimespecDelimiter + \ skipwhite + +syn keyword denyhostsFormatSetting + \ contained + \ DAEMON_LOG_TIME_FORMAT + \ DAEMON_LOG_MESSAGE_FORMAT + \ SMTP_DATE_FORMAT + \ nextgroup=denyhostsFormatDelimiter + \ skipwhite + +syn keyword denyhostsRegexSetting + \ contained + \ SSHD_FORMAT_REGEX + \ FAILED_ENTRY_REGEX + \ FAILED_ENTRY_REGEX2 + \ FAILED_ENTRY_REGEX3 + \ FAILED_ENTRY_REGEX4 + \ FAILED_ENTRY_REGEX5 + \ FAILED_ENTRY_REGEX6 + \ FAILED_ENTRY_REGEX7 + \ USERDEF_FAILED_ENTRY_REGEX + \ SUCCESSFUL_ENTRY_REGEX + \ nextgroup=denyhostsRegexDelimiter + \ skipwhite + +syn keyword denyhostURLSetting + \ contained + \ SYNC_SERVER + \ nextgroup=denyhostsURLDelimiter + \ skipwhite + +syn match denyhostsStringDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsString + \ skipwhite + +syn match denyhostsBooleanDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=@denyhostsBoolean + \ skipwhite + +syn match denyhostsPathDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsPath + \ skipwhite + +syn match denyhostsNumericDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsNumber + \ skipwhite + +syn match denyhostsTimespecDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsTimespec + \ skipwhite + +syn match denyhostsFormatDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsFormat + \ skipwhite + +syn match denyhostsRegexDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsRegex + \ skipwhite + +syn match denyhostsURLDelimiter + \ contained + \ display + \ '[:=]' + \ nextgroup=denyhostsURL + \ skipwhite + +syn match denyhostsString + \ contained + \ display + \ '.\+' + +syn cluster denyhostsBoolean + \ contains=denyhostsBooleanTrue, + \ denyhostsBooleanFalse + +syn match denyhostsBooleanFalse + \ contained + \ display + \ '.\+' + +syn match denyhostsBooleanTrue + \ contained + \ display + \ '\s*\%(1\|t\%(rue\)\=\|y\%(es\)\=\)\>\s*$' + +syn match denyhostsPath + \ contained + \ display + \ '.\+' + +syn match denyhostsNumber + \ contained + \ display + \ '\d\+\>' + +syn match denyhostsTimespec + \ contained + \ display + \ '\d\+[mhdwy]\>' + +syn match denyhostsFormat + \ contained + \ display + \ '.\+' + \ contains=denyhostsFormattingExpandos + +syn match denyhostsFormattingExpandos + \ contained + \ display + \ '%.' + +syn match denyhostsRegex + \ contained + \ display + \ '.\+' + +" TODO: Perhaps come up with a better regex here? There should really be a +" library for these kinds of generic regexes, that is, URLs, mail addresses, … +syn match denyhostsURL + \ contained + \ display + \ '.\+' + +hi def link denyhostsTodo Todo +hi def link denyhostsComment Comment +hi def link denyhostsSetting Keyword +hi def link denyhostsStringSetting denyhostsSetting +hi def link denyhostsBooleanSetting denyhostsSetting +hi def link denyhostsPathSetting denyhostsSetting +hi def link denyhostsNumericSetting denyhostsSetting +hi def link denyhostsTimespecSetting denyhostsSetting +hi def link denyhostsFormatSetting denyhostsSetting +hi def link denyhostsRegexSetting denyhostsSetting +hi def link denyhostURLSetting denyhostsSetting +hi def link denyhostsDelimiter Normal +hi def link denyhostsStringDelimiter denyhostsDelimiter +hi def link denyhostsBooleanDelimiter denyhostsDelimiter +hi def link denyhostsPathDelimiter denyhostsDelimiter +hi def link denyhostsNumericDelimiter denyhostsDelimiter +hi def link denyhostsTimespecDelimiter denyhostsDelimiter +hi def link denyhostsFormatDelimiter denyhostsDelimiter +hi def link denyhostsRegexDelimiter denyhostsDelimiter +hi def link denyhostsURLDelimiter denyhostsDelimiter +hi def link denyhostsString String +if exists('g:syntax_booleans_simple') || exists('b:syntax_booleans_simple') + hi def link denyhostsBoolean Boolean + hi def link denyhostsBooleanFalse denyhostsBoolean + hi def link denyhostsBooleanTrue denyhostsBoolean +else + hi def denyhostsBooleanTrue term=bold ctermfg=Green guifg=Green + hi def denyhostsBooleanFalse ctermfg=Red guifg=Red +endif +hi def link denyhostsPath String +hi def link denyhostsNumber Number +hi def link denyhostsTimespec Number +hi def link denyhostsFormat String +hi def link denyhostsFormattingExpandos Special +hi def link denyhostsRegex String +hi def link denyhostsURL String + +let b:current_syntax = "denyhosts" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/dep3patch.vim b/runtime/syntax/dep3patch.vim new file mode 100644 index 0000000..c00bddf --- /dev/null +++ b/runtime/syntax/dep3patch.vim @@ -0,0 +1,57 @@ +" Vim syntax file +" Language: Debian DEP3 Patch headers +" Maintainer: Gabriel Filion +" Last Change: 2023 Jan 16 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/dep3patch.vim +" +" Specification of the DEP3 patch header format is available at: +" https://dep-team.pages.debian.net/deps/dep3/ + +" Standard syntax initialization +if exists('b:current_syntax') + finish +endif + +runtime! syntax/diff.vim +unlet! b:current_syntax + +let s:cpo_save = &cpo +set cpo&vim + +syn region dep3patchHeaders start="\%^" end="^\%(---\)\@=" contains=dep3patchKey,dep3patchMultiField + +syn case ignore + +syn region dep3patchMultiField matchgroup=dep3patchKey start="^\%(Description\|Subject\)\ze: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contained contains=@Spell +syn region dep3patchMultiField matchgroup=dep3patchKey start="^Origin\ze: *" end="$" contained contains=dep3patchHTTPUrl,dep3patchCommitID,dep3patchOriginCategory oneline keepend +syn region dep3patchMultiField matchgroup=dep3patchKey start="^Bug\%(-[[:graph:]]\+\)\?\ze: *" end="$" contained contains=dep3patchHTTPUrl oneline keepend +syn region dep3patchMultiField matchgroup=dep3patchKey start="^Forwarded\ze: *" end="$" contained contains=dep3patchHTTPUrl,dep3patchForwardedShort oneline keepend +syn region dep3patchMultiField matchgroup=dep3patchKey start="^\%(Author\|From\)\ze: *" end="$" contained contains=dep3patchEmail oneline keepend +syn region dep3patchMultiField matchgroup=dep3patchKey start="^\%(Reviewed-by\|Acked-by\)\ze: *" end="$" contained contains=dep3patchEmail oneline keepend +syn region dep3patchMultiField matchgroup=dep3patchKey start="^Last-Update\ze: *" end="$" contained contains=dep3patchISODate oneline keepend +syn region dep3patchMultiField matchgroup=dep3patchKey start="^Applied-Upstream\ze: *" end="$" contained contains=dep3patchHTTPUrl,dep3patchCommitID oneline keepend + +syn match dep3patchHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$" +syn match dep3patchCommitID contained "commit:[[:alnum:]]\+" +syn match dep3patchOriginCategory contained "\%(upstream\|backport\|vendor\|other\), " +syn match dep3patchForwardedShort contained "\%(yes\|no\|not-needed\), " +syn match dep3patchEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+" +syn match dep3patchEmail "<.\{-}>" +syn match dep3patchISODate "[[:digit:]]\{4}-[[:digit:]]\{2}-[[:digit:]]\{2}" + +" Associate our matches and regions with pretty colours +hi def link dep3patchKey Keyword +hi def link dep3patchOriginCategory Keyword +hi def link dep3patchForwardedShort Keyword +hi def link dep3patchMultiField Normal +hi def link dep3patchHTTPUrl Identifier +hi def link dep3patchCommitID Identifier +hi def link dep3patchEmail Identifier +hi def link dep3patchISODate Identifier + +let b:current_syntax = 'dep3patch' + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/desc.vim b/runtime/syntax/desc.vim new file mode 100644 index 0000000..84b9cd0 --- /dev/null +++ b/runtime/syntax/desc.vim @@ -0,0 +1,88 @@ +" Vim syntax file +" Language: T2 / ROCK Linux .desc +" Maintainer: René Rebe , Piotr Esden-Tempski +" Last Change: 2006 Aug 14 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" syntax definitions + +setl iskeyword+=- +syn keyword descFlag DIETLIBC KAFFE JAIL NOPARALLEL FPIC-QUIRK LIBTOOL-WUIRK NO-LIBTOOL-FIX AUTOMAKE-QUIRK NO-AS-NEEDED NO-SSP KERNEL INIT LIBC CC CXX F77 KCC contained +syn keyword descLicense Unknown GPL LGPL FDL MIT BSD OpenSource Free-to-use Commercial contained + +" tags +syn match descTag /^\[\(COPY\)\]/ +syn match descTag /^\[\(I\|TITLE\)\]/ +syn match descTag /^\[\(T\|TEXT\)\]/ contained +syn match descTag /^\[\(U\|URL\)\]/ +syn match descTag /^\[\(A\|AUTHOR\)\]/ +syn match descTag /^\[\(M\|MAINTAINER\)\]/ +syn match descTag /^\[\(C\|CATEGORY\)\]/ contained +syn match descTag /^\[\(F\|FLAG\)\]/ contained +syn match descTag /^\[\(E\|DEP\|DEPENDENCY\)\]/ +syn match descTag /^\[\(R\|ARCH\|ARCHITECTURE\)\]/ +syn match descTag /^\[\(L\|LICENSE\)\]/ contained +syn match descTag /^\[\(S\|STATUS\)\]/ +syn match descTag /^\[\(O\|CONF\)\]/ +syn match descTag /^\[\(V\|VER\|VERSION\)\]/ +syn match descTag /^\[\(P\|PRI\|PRIORITY\)\]/ nextgroup=descInstall skipwhite +syn match descTag /^\[\(D\|DOWN\|DOWNLOAD\)\]/ nextgroup=descSum skipwhite + +" misc +syn match descUrl /\w\+:\/\/\S\+/ +syn match descCategory /\w\+\/\w\+/ contained +syn match descEmail /<[\.A-Za-z0-9]\+@[\.A-Za-z0-9]\+>/ + +" priority tag +syn match descInstallX /X/ contained +syn match descInstallO /O/ contained +syn match descInstall /[OX]/ contained contains=descInstallX,descInstallO nextgroup=descStage skipwhite +syn match descDash /-/ contained +syn match descDigit /\d/ contained +syn match descStage /[\-0][\-1][\-2][\-3][\-4][\-5][\-6][\-7][\-8][\-9]/ contained contains=descDash,descDigit nextgroup=descCompilePriority skipwhite +syn match descCompilePriority /\d\{3}\.\d\{3}/ contained + +" download tag +syn match descSum /\d\+/ contained nextgroup=descTarball skipwhite +syn match descTarball /\S\+/ contained nextgroup=descUrl skipwhite + + +" tag regions +syn region descText start=/^\[\(T\|TEXT\)\]/ end=/$/ contains=descTag,descUrl,descEmail + +syn region descTagRegion start=/^\[\(C\|CATEGORY\)\]/ end=/$/ contains=descTag,descCategory + +syn region descTagRegion start=/^\[\(F\|FLAG\)\]/ end=/$/ contains=descTag,descFlag + +syn region descTagRegion start=/^\[\(L\|LICENSE\)\]/ end=/$/ contains=descTag,descLicense + +" Only when an item doesn't have highlighting yet + +hi def link descFlag Identifier +hi def link descLicense Identifier +hi def link descCategory Identifier + +hi def link descTag Type +hi def link descUrl Underlined +hi def link descEmail Underlined + +" priority tag colors +hi def link descInstallX Boolean +hi def link descInstallO Type +hi def link descDash Operator +hi def link descDigit Number +hi def link descCompilePriority Number + +" download tag colors +hi def link descSum Number +hi def link descTarball Underlined + +" tag region colors +hi def link descText Comment + + +let b:current_syntax = "desc" diff --git a/runtime/syntax/desktop.vim b/runtime/syntax/desktop.vim new file mode 100644 index 0000000..461ba85 --- /dev/null +++ b/runtime/syntax/desktop.vim @@ -0,0 +1,267 @@ +" Vim syntax file +" Language: XDG desktop entry +" Filenames: *.desktop, *.directory +" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com ) +" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) +" Last Change: 2022 Sep 22 +" Version Info: desktop.vim 1.5 +" References: +" - https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.5.html (2020-04-27) +" - https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-0.11.html (2006-02-07) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim +syn case match + +" Variable {{{1 +" This syntax file can be used to all *nix configuration files similar to dos +" ini format (eg. .xawtv, .radio, kde rc files) - this is default mode. +" By default strict following of freedesktop.org standard is enforced. +" To highlight nonstandard extensions that does not begin with X-, set +" let g:desktop_enable_nonstd = v:true +" Note that this may cause wrong highlight. +" To highlight KDE-reserved features, set +" let g:desktop_enable_kde = v:true +" g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied + +if exists("g:desktop_enable_nonstd") && g:desktop_enable_nonstd + let s:desktop_enable_nonstd = v:true +else + let s:desktop_enable_nonstd = v:false +endif + +if exists("g:desktop_enable_kde") && g:desktop_enable_kde || s:desktop_enable_nonstd + let s:desktop_enable_kde = v:true +else + let s:desktop_enable_kde = v:false +endif + +" Comment {{{1 +syn match dtComment /^#.*$/ + +" Error {{{1 +syn match dtError /\%(^\s.*\|\s\+$\)/ + +" Group Header {{{1 +" ASCII printable characters except for brackets [ (0x5B) and ] (0x5D) +syn match dtGroup /^\[[\x20-\x5A\x5C\x5E-\x7E]\+\]$/ + +" Entries {{{1 +syn match dtDelim /=/ contained +" lang_territory.codeset@modifier +syn match dtLocaleSuffix + \ /\[\%(C\|POSIX\|[a-z]\{2,4}\%(_[A-Z0-9]\{2,3}\)\?\)\%(\.[A-Za-z0-9_-]\+\)\?\%(@[A-Za-z]\+\)\?\]\ze\s*=/ + \ contained + +" Boolean Value {{{2 +syn match dtBoolean + \ /^\%(DBusActivatable\|Hidden\|NoDisplay\|PrefersNonDefaultGPU\|SingleMainWindow\|StartupNotify\|Terminal\)\s*=\s*\%(true\|false\)/ + \ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent +syn keyword dtBooleanKey + \ DBusActivatable Hidden NoDisplay PrefersNonDefaultGPU SingleMainWindow StartupNotify Terminal + \ contained nextgroup=dtDelim + +if s:desktop_enable_kde + syn match dtBoolean + \ /^ReadOnly\s*=\s*\%(true\|false\)/ + \ contains=dtBooleanKey,dtDelim,dtBooleanValue transparent + syn keyword dtBooleanKey + \ ReadOnly + \ contained nextgroup=dtDelim +endif +syn keyword dtBooleanValue true false contained + +" Numeric Value {{{2 +" icon theme +syn match dtNumeric /^\%(MaxSize\|MinSize\|Size\|Threshold\)\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal +syn keyword dtNumericKey + \ MaxSize MinSize Size Threshold + \ contained nextgroup=dtDelim + +if s:desktop_enable_kde + syn match dtNumeric /^InitialPreference\s*=\s*\d\+/ contains=dtNumericKey,dtDelim,dtNumericDecimal + syn keyword dtNumericKey + \ InitialPreference + \ contained nextgroup=dtDelim +endif + +syn match dtNumericDecimal /\<\d\+$/ contained + +" String Value {{{2 +syn match dtString + \ /^\%(Actions\|Implements\|MimeType\|NotShowIn\|OnlyShowIn\|Path\|StartupWMClass\|URL\)\s*=.*\S/ + \ contains=dtStringKey,dtDelim transparent +syn keyword dtStringKey + \ Actions Implements MimeType NotShowIn OnlyShowIn Path StartupWMClass URL Version + \ contained nextgroup=dtDelim + +" icon theme +syn match dtString + \ /^\%(Context\|Directories\|Example\|Inherits\)\s*=.*\S/ + \ contains=dtStringKey,dtDelim transparent +syn keyword dtStringKey + \ Context Directories Example Inherits + \ contained nextgroup=dtDelim + +if s:desktop_enable_kde + syn match dtString + \ /^\%(Dev\|DocPath\|FSType\|MountPoint\|ServiceTypes\)\s*=.*\S/ + \ contains=dtStringKey,dtDelim transparent + syn keyword dtStringKey + \ Dev DocPath FSType MountPoint ServiceTypes + \ contained nextgroup=dtDelim +endif + +" Categories {{{3 +" https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry +syn match dtCategories /^Categories\s*=.\+\S/ contains=dtCategoriesKey,dtDelim,dtCategoriesValue transparent +syn keyword dtCategoriesKey + \ Categories + \ contained nextgroup=dtDelim + +" Main Categories +syn keyword dtCategoriesValue + \ Audio AudioVideo Development Education Game Graphics Network Office + \ Settings System Utility Video + \ contained + +" Additional Categories +syn keyword dtCategoriesValue + \ BoardGame Chat Clock Geoscience Presentation 2DGraphics 3DGraphics + \ Accessibility ActionGame AdventureGame Amusement ArcadeGame Archiving + \ Art ArtificialIntelligence Astronomy AudioVideoEditing Biology + \ BlocksGame BoardGame Building Calculator Calendar CardGame Chart Chat + \ Chemistry Clock Compression ComputerScience ConsoleOnly Construction + \ ContactManagement Core DataVisualization Database Debugger + \ DesktopSettings Dialup Dictionary DiscBurning Documentation Economy + \ Electricity Electronics Email Emulator Engineering FileManager + \ FileTools FileTransfer Filesystem Finance FlowChart GNOME GTK + \ GUIDesigner Geography Geology Geoscience HamRadio HardwareSettings + \ History IDE IRCClient ImageProcessing InstantMessaging Java KDE + \ KidsGame Languages Literature LogicGame Math MedicalSoftware Midi + \ Mixer Monitor Motif Music News NumericalAnalysis OCR P2P PDA + \ PackageManager ParallelComputing Photography Physics Player + \ Presentation Printing Profiling ProjectManagement Publishing Qt + \ RasterGraphics Recorder RemoteAccess RevisionControl Robotics + \ RolePlaying Scanning Science Security Sequencer Simulation Sports + \ SportsGame Spreadsheet StrategyGame TV Telephony TelephonyTools + \ TerminalEmulator TextEditor TextTools Translation Tuner VectorGraphics + \ VideoConference Viewer WebBrowser WebDevelopment WordProcessor + \ contained + +" Reserved Category +syn keyword dtCategoriesValue + \ Applet Screensaver Shell TrayIcon + \ contained + +" Exec/TryExec {{{3 +syn match dtExec /^\%(Exec\|TryExec\)\s*=.\+\S/ contains=dtExecKey,dtDelim,dtExecParam transparent +syn keyword dtExecKey + \ Exec TryExec + \ contained nextgroup=dtDelim +" code for file(s), URL(s), etc +syn match dtExecParam /\s\zs%[fFuUick]\ze\%(\W\|$\)/ contained + +" Type {{{3 +syn match dtType /^Type\s*=\s*\S\+/ contains=dtTypeKey,dtDelim,dtTypeValue transparent +syn keyword dtTypeKey + \ Type + \ contained nextgroup=dtDelim +syn keyword dtTypeValue + \ Application Directory Link + \ contained + +if s:desktop_enable_kde + syn keyword dtTypeValue + \ FSDevice Service ServiceType + \ contained +endif + + +" Version {{{3 +syn match dtVersion /^Version\s*=\s*\S\+/ contains=dtVersionKey,dtDelim,dtVersionValue transparent +syn keyword dtVersionKey + \ Version + \ contained nextgroup=dtDelim +syn match dtVersionValue /[0-9]\+\%(\.[0-9]\+\)\{1,2}$/ contained + +" Localestring Value {{{2 +syn match dtLocalestring + \ /^\%(Comment\|GenericName\|Keywords\|Name\)\%(\[.\{-}\]\)\?\s*=.*\S/ + \ contains=dtLocalestringKey,dtLocaleSuffix,dtDelim transparent +syn keyword dtLocalestringKey + \ Comment GenericName Keywords Name + \ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite + +" Iconstring Value {{{2 +syn match dtIconstring + \ /^Icon\s*=.*\S/ + \ contains=dtIconstringKey,dtDelim transparent +syn keyword dtIconstringKey + \ Icon + \ contained nextgroup=dtDelim skipwhite + +if s:desktop_enable_kde + syn match dtIconstring + \ /^UnmountIcon\>\%(\[.\{-}\]\)\?\s*=.*\S/ + \ contains=dtIconstringKey,dtLocaleSuffix,dtDelim transparent + syn keyword dtIconstringKey + \ UnmountIcon + \ contained nextgroup=dtLocaleSuffix,dtDelim skipwhite +endif + +" X-Extension {{{2 +syn match dtXExtension /^X-[0-9A-Za-z-]*\%(\[.\{-}\]\)\?\s*=.*\S/ + \ contains=dtXExtensionKey,dtLocaleSuffix,dtDelim transparent +syn match dtXExtensionKey /^X-[0-9A-Za-z-]*/ contained nextgroup=dtLocaleSuffix,dtDelim + +" non standard {{{2 +if s:desktop_enable_nonstd + syn match dtNonStdLabel /^[0-9A-Za-z-]\+\%(\[.\{-}\]\)\?\s*=.*\S/ + \ contains=dtNonStdLabelKey,dtLocaleSuffix,dtDelim transparent + syn match dtNonStdLabelKey /^[0-9A-Za-z-]\+/ contained nextgroup=dtLocaleSuffix,dtDelim +endif + +" Highlight {{{1 +hi def link dtComment Comment +hi def link dtError Error + +hi def link dtGroup Special + +hi def link dtDelim Delimiter +hi def link dtLocaleSuffix Identifier + +hi def link dtBooleanKey Type +hi def link dtBooleanValue Boolean + +hi def link dtNumericKey Type +hi def link dtNumericDecimal Number + +hi def link dtStringKey Type +hi def link dtCategoriesKey Type +hi def link dtCategoriesValue Constant +hi def link dtExecKey Type +hi def link dtExecParam Special +hi def link dtTypeKey Type +hi def link dtTypeValue Constant +hi def link dtVersionKey Type +hi def link dtVersionValue Constant + +hi def link dtLocalestringKey Type + +hi def link dtIconStringKey Type + +hi def link dtXExtensionKey Type + +hi def link dtNonStdLabelKey Type + +" Clean Up {{{1 +let b:current_syntax = "desktop" +let &cpo = s:cpo_save + +" vim:ts=8:sw=2:fdm=marker diff --git a/runtime/syntax/dictconf.vim b/runtime/syntax/dictconf.vim new file mode 100644 index 0000000..c762808 --- /dev/null +++ b/runtime/syntax/dictconf.vim @@ -0,0 +1,80 @@ +" Vim syntax file +" Language: dict(1) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword dictconfTodo contained TODO FIXME XXX NOTE + +syn region dictconfComment display oneline start='#' end='$' + \ contains=dictconfTodo,@Spell + +syn match dictconfBegin display '^' + \ nextgroup=dictconfKeyword,dictconfComment + \ skipwhite + +syn keyword dictconfKeyword contained server + \ nextgroup=dictconfServer skipwhite + +syn keyword dictconfKeyword contained pager + \ nextgroup=dictconfPager + +syn match dictconfServer contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' + \ nextgroup=dictconfServerOptG skipwhite + +syn region dictconfServer contained display oneline + \ start=+"+ skip=+""+ end=+"+ + \ nextgroup=dictconfServerOptG skipwhite + +syn region dictconfServerOptG contained transparent + \ matchgroup=dictconfServerOptsD start='{' + \ matchgroup=dictconfServerOptsD end='}' + \ contains=dictconfServerOpts,dictconfComment + +syn keyword dictconfServerOpts contained port + \ nextgroup=dictconfNumber skipwhite + +syn keyword dictconfServerOpts contained user + \ nextgroup=dictconfUsername skipwhite + +syn match dictconfUsername contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' + \ nextgroup=dictconfSecret skipwhite +syn region dictconfUsername contained display oneline + \ start=+"+ skip=+""+ end=+"+ + \ nextgroup=dictconfSecret skipwhite + +syn match dictconfSecret contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' +syn region dictconfSecret contained display oneline + \ start=+"+ skip=+""+ end=+"+ + +syn match dictconfNumber contained '\<\d\+\>' + +syn match dictconfPager contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' +syn region dictconfPager contained display oneline + \ start=+"+ skip=+""+ end=+"+ + +hi def link dictconfTodo Todo +hi def link dictconfComment Comment +hi def link dictconfKeyword Keyword +hi def link dictconfServer String +hi def link dictconfServerOptsD Delimiter +hi def link dictconfServerOpts Identifier +hi def link dictconfUsername String +hi def link dictconfSecret Special +hi def link dictconfNumber Number +hi def link dictconfPager String + +let b:current_syntax = "dictconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/dictdconf.vim b/runtime/syntax/dictdconf.vim new file mode 100644 index 0000000..ecf5fd3 --- /dev/null +++ b/runtime/syntax/dictdconf.vim @@ -0,0 +1,146 @@ +" Vim syntax file +" Language: dictd(8) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword dictdconfTodo contained TODO FIXME XXX NOTE + +syn region dictdconfComment display oneline start='#' end='$' + \ contains=dictdconfTodo,dictdconfSpecialC, + \ @Spell + +syn keyword dictdconfSpecialC LASTLINE + +syn match dictdconfBegin display '^' + \ nextgroup=dictdconfKeyword,dictdconfComment + \ skipwhite + +syn keyword dictdconfKeyword contained access + \ nextgroup=dictdconfAccessG skipwhite + +syn region dictdconfAccessG contained transparent + \ matchgroup=dictdconfDelimiter start='{' + \ matchgroup=dictdconfDelimiter end='}' + \ contains=dictdconfAccess,dictdconfComment + +syn keyword dictdconfAccess contained allow deny authonly user + \ nextgroup=dictdconfString skipwhite + +syn keyword dictdconfKeyword contained database + \ nextgroup=dictdconfDatabase skipwhite + +syn match dictdconfDatabase contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' + \ nextgroup=dictdconfSpecG skipwhite +syn region dictdconfDatabase contained display oneline + \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+ + \ nextgroup=dictdconfSpecG skipwhite + +syn region dictdconfSpecG contained transparent + \ matchgroup=dictdconfDelimiter start='{' + \ matchgroup=dictdconfDelimiter end='}' + \ contains=dictdconfSpec,dictdconfAccess, + \ dictdconfComment + +syn keyword dictdconfSpec contained data index index_suffix index_word + \ filter prefilter postfilter name info + \ disable_strat + \ nextgroup=dictdconfString skipwhite + +syn keyword dictdconfSpec contained invisible + +syn keyword dictdconfKeyword contained database_virtual + \ nextgroup=dictdconfVDatabase skipwhite + +syn match dictdconfVDatabase contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' + \ nextgroup=dictdconfVSpecG skipwhite +syn region dictdconfVDatabase contained display oneline + \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+ + \ nextgroup=dictdconfVSpecG skipwhite + +syn region dictdconfVSpecG contained transparent + \ matchgroup=dictdconfDelimiter start='{' + \ matchgroup=dictdconfDelimiter end='}' + \ contains=dictdconfVSpec,dictdconfAccess, + \ dictdconfComment + +syn keyword dictdconfVSpec contained name info database_list disable_strat + \ nextgroup=dictdconfString skipwhite + +syn keyword dictdconfVSpec contained invisible + +syn keyword dictdconfKeyword contained database_plugin + \ nextgroup=dictdconfPDatabase skipwhite + +syn match dictdconfPDatabase contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' + \ nextgroup=dictdconfPSpecG skipwhite +syn region dictdconfPDatabase contained display oneline + \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+ + \ nextgroup=dictdconfPSpecG skipwhite + +syn region dictdconfPSpecG contained transparent + \ matchgroup=dictdconfDelimiter start='{' + \ matchgroup=dictdconfDelimiter end='}' + \ contains=dictdconfPSpec,dictdconfAccess, + \ dictdconfComment + +syn keyword dictdconfPSpec contained name info plugin data disable_strat + \ nextgroup=dictdconfString skipwhite + +syn keyword dictdconfPSpec contained invisible + +syn keyword dictdconfKeyword contained database_exit + +syn keyword dictdconfKeyword contained site + \ nextgroup=dictdconfString skipwhite + +syn keyword dictdconfKeyword contained user + \ nextgroup=dictdconfUsername skipwhite + +syn match dictdconfUsername contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' + \ nextgroup=dictdconfSecret skipwhite +syn region dictdconfUsername contained display oneline + \ start=+"+ skip=+""+ end=+"+ + \ nextgroup=dictdconfSecret skipwhite + +syn match dictdconfSecret contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' +syn region dictdconfSecret contained display oneline + \ start=+"+ skip=+""+ end=+"+ + +syn match dictdconfString contained display + \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*' +syn region dictdconfString contained display oneline + \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+ + +hi def link dictdconfTodo Todo +hi def link dictdconfComment Comment +hi def link dictdconfSpecialC Special +hi def link dictdconfKeyword Keyword +hi def link dictdconfIdentifier Identifier +hi def link dictdconfAccess dictdconfIdentifier +hi def link dictdconfDatabase dictdconfString +hi def link dictdconfSpec dictdconfIdentifier +hi def link dictdconfVDatabase dictdconfDatabase +hi def link dictdconfVSpec dictdconfSpec +hi def link dictdconfPDatabase dictdconfDatabase +hi def link dictdconfPSpec dictdconfSpec +hi def link dictdconfUsername dictdconfString +hi def link dictdconfSecret Special +hi def link dictdconfString String +hi def link dictdconfDelimiter Delimiter + +let b:current_syntax = "dictdconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/diff.vim b/runtime/syntax/diff.vim new file mode 100644 index 0000000..b0a8594 --- /dev/null +++ b/runtime/syntax/diff.vim @@ -0,0 +1,390 @@ +" Vim syntax file +" Language: Diff (context or unified) +" Maintainer: The Vim Project +" Translations by Jakson Alves de Aquino. +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif +scriptencoding utf-8 + +syn match diffOnly "^Only in .*" +syn match diffIdentical "^Files .* and .* are identical$" +syn match diffDiffer "^Files .* and .* differ$" +syn match diffBDiffer "^Binary files .* and .* differ$" +syn match diffIsA "^File .* is a .* while file .* is a .*" +syn match diffNoEOL "^\\ No newline at end of file .*" +syn match diffCommon "^Common subdirectories: .*" + +" Disable the translations by setting diff_translations to zero. +if !exists("diff_translations") || diff_translations + +" ca +syn match diffOnly "^Només a .*" +syn match diffIdentical "^Els fitxers .* i .* són idèntics$" +syn match diffDiffer "^Els fitxers .* i .* difereixen$" +syn match diffBDiffer "^Els fitxers .* i .* difereixen$" +syn match diffIsA "^El fitxer .* és un .* mentre que el fitxer .* és un .*" +syn match diffNoEOL "^\\ No hi ha cap caràcter de salt de línia al final del fitxer" +syn match diffCommon "^Subdirectoris comuns: .* i .*" + +" cs +syn match diffOnly "^Pouze v .*" +syn match diffIdentical "^Soubory .* a .* jsou identické$" +syn match diffDiffer "^Soubory .* a .* jsou různé$" +syn match diffBDiffer "^Binární soubory .* a .* jsou rozdílné$" +syn match diffBDiffer "^Soubory .* a .* jsou různé$" +syn match diffIsA "^Soubor .* je .* pokud soubor .* je .*" +syn match diffNoEOL "^\\ Chybí znak konce řádku na konci souboru" +syn match diffCommon "^Společné podadresáře: .* a .*" + +" da +syn match diffOnly "^Kun i .*" +syn match diffIdentical "^Filerne .* og .* er identiske$" +syn match diffDiffer "^Filerne .* og .* er forskellige$" +syn match diffBDiffer "^Binære filer .* og .* er forskellige$" +syn match diffIsA "^Filen .* er en .* mens filen .* er en .*" +syn match diffNoEOL "^\\ Intet linjeskift ved filafslutning" +syn match diffCommon "^Identiske underkataloger: .* og .*" + +" de +syn match diffOnly "^Nur in .*" +syn match diffIdentical "^Dateien .* und .* sind identisch.$" +syn match diffDiffer "^Dateien .* und .* sind verschieden.$" +syn match diffBDiffer "^Binärdateien .* and .* sind verschieden.$" +syn match diffBDiffer "^Binärdateien .* und .* sind verschieden.$" +syn match diffIsA "^Datei .* ist ein .* während Datei .* ein .* ist.$" +syn match diffNoEOL "^\\ Kein Zeilenumbruch am Dateiende." +syn match diffCommon "^Gemeinsame Unterverzeichnisse: .* und .*.$" + +" el +syn match diffOnly "^Μόνο στο .*" +syn match diffIdentical "^Τα αρχεία .* καί .* είναι πανομοιότυπα$" +syn match diffDiffer "^Τα αρχεία .* και .* διαφέρουν$" +syn match diffBDiffer "^Τα αρχεία .* και .* διαφέρουν$" +syn match diffIsA "^Το αρχείο .* είναι .* ενώ το αρχείο .* είναι .*" +syn match diffNoEOL "^\\ Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου" +syn match diffCommon "^Οι υποκατάλογοι .* και .* είναι ταυτόσημοι$" + +" eo +syn match diffOnly "^Nur en .*" +syn match diffIdentical "^Dosieroj .* kaj .* estas samaj$" +syn match diffDiffer "^Dosieroj .* kaj .* estas malsamaj$" +syn match diffBDiffer "^Dosieroj .* kaj .* estas malsamaj$" +syn match diffIsA "^Dosiero .* estas .*, dum dosiero .* estas .*" +syn match diffNoEOL "^\\ Mankas linifino ĉe fino de dosiero" +syn match diffCommon "^Komunaj subdosierujoj: .* kaj .*" + +" es +syn match diffOnly "^Sólo en .*" +syn match diffIdentical "^Los ficheros .* y .* son idénticos$" +syn match diffDiffer "^Los ficheros .* y .* son distintos$" +syn match diffBDiffer "^Los ficheros binarios .* y .* son distintos$" +syn match diffIsA "^El fichero .* es un .* mientras que el .* es un .*" +syn match diffNoEOL "^\\ No hay ningún carácter de nueva línea al final del fichero" +syn match diffCommon "^Subdirectorios comunes: .* y .*" + +" fi +syn match diffOnly "^Vain hakemistossa .*" +syn match diffIdentical "^Tiedostot .* ja .* ovat identtiset$" +syn match diffDiffer "^Tiedostot .* ja .* eroavat$" +syn match diffBDiffer "^Binääritiedostot .* ja .* eroavat$" +syn match diffIsA "^Tiedosto .* on .*, kun taas tiedosto .* on .*" +syn match diffNoEOL "^\\ Ei rivinvaihtoa tiedoston lopussa" +syn match diffCommon "^Yhteiset alihakemistot: .* ja .*" + +" fr +syn match diffOnly "^Seulement dans .*" +syn match diffIdentical "^Les fichiers .* et .* sont identiques.*" +syn match diffDiffer "^Les fichiers .* et .* sont différents.*" +syn match diffBDiffer "^Les fichiers binaires .* et .* sont différents.*" +syn match diffIsA "^Le fichier .* est un .* alors que le fichier .* est un .*" +syn match diffNoEOL "^\\ Pas de fin de ligne à la fin du fichier.*" +syn match diffCommon "^Les sous-répertoires .* et .* sont identiques.*" + +" ga +syn match diffOnly "^I .* amháin: .*" +syn match diffIdentical "^Is comhionann iad na comhaid .* agus .*" +syn match diffDiffer "^Tá difríocht idir na comhaid .* agus .*" +syn match diffBDiffer "^Tá difríocht idir na comhaid .* agus .*" +syn match diffIsA "^Tá comhad .* ina .* ach tá comhad .* ina .*" +syn match diffNoEOL "^\\ Gan líne nua ag an chomhadchríoch" +syn match diffCommon "^Fochomhadlanna i gcoitianta: .* agus .*" + +" gl +syn match diffOnly "^Só en .*" +syn match diffIdentical "^Os ficheiros .* e .* son idénticos$" +syn match diffDiffer "^Os ficheiros .* e .* son diferentes$" +syn match diffBDiffer "^Os ficheiros binarios .* e .* son diferentes$" +syn match diffIsA "^O ficheiro .* é un .* mentres que o ficheiro .* é un .*" +syn match diffNoEOL "^\\ Non hai un salto de liña na fin da liña" +syn match diffCommon "^Subdirectorios comúns: .* e .*" + +" he +" ^.* are expansive patterns for long lines, so disabled unless we can match +" some specific hebrew chars +if search('\%u05d5\|\%u05d1', 'nw', '', 100) + syn match diffOnly "^.*-ב קר אצמנ .*" + syn match diffIdentical "^םיהז םניה .*-ו .* םיצבקה$" + syn match diffDiffer "^הזמ הז םינוש `.*'-ו `.*' םיצבקה$" + syn match diffBDiffer "^הזמ הז םינוש `.*'-ו `.*' םיירניב םיצבק$" + syn match diffIsA "^.* .*-ל .* .* תוושהל ןתינ אל$" + syn match diffNoEOL "^\\ ץבוקה ףוסב השד.-הרוש ות רס." + syn match diffCommon "^.*-ו .* :תוהז תויקית-תת$" +endif + +" hr +syn match diffOnly "^Samo u .*" +syn match diffIdentical "^Datoteke .* i .* su identične$" +syn match diffDiffer "^Datoteke .* i .* se razlikuju$" +syn match diffBDiffer "^Binarne datoteke .* i .* se razlikuju$" +syn match diffIsA "^Datoteka .* je .*, a datoteka .* je .*" +syn match diffNoEOL "^\\ Nema novog retka na kraju datoteke" +syn match diffCommon "^Uobičajeni poddirektoriji: .* i .*" + +" hu +syn match diffOnly "^Csak .* -ben: .*" +syn match diffIdentical "^.* és .* fájlok azonosak$" +syn match diffDiffer "^A(z) .* és a(z) .* fájlok különböznek$" +syn match diffBDiffer "^A(z) .* és a(z) .* fájlok különböznek$" +syn match diffIsA "^A(z) .* fájl egy .*, viszont a(z) .* fájl egy .*" +syn match diffNoEOL "^\\ Nincs újsor a fájl végén" +syn match diffCommon "^Közös alkönyvtárak: .* és .*" + +" id +syn match diffOnly "^Hanya dalam .*" +syn match diffIdentical "^File .* dan .* identik$" +syn match diffDiffer "^Berkas .* dan .* berbeda$" +syn match diffBDiffer "^File biner .* dan .* berbeda$" +syn match diffIsA "^File .* adalah .* sementara file .* adalah .*" +syn match diffNoEOL "^\\ Tidak ada baris-baru di akhir dari berkas" +syn match diffCommon "^Subdirektori sama: .* dan .*" + +" it +syn match diffOnly "^Solo in .*" +syn match diffIdentical "^I file .* e .* sono identici$" +syn match diffDiffer "^I file .* e .* sono diversi$" +syn match diffBDiffer "^I file .* e .* sono diversi$" +syn match diffBDiffer "^I file binari .* e .* sono diversi$" +syn match diffIsA "^File .* è un .* mentre file .* è un .*" +syn match diffNoEOL "^\\ Manca newline alla fine del file" +syn match diffCommon "^Sottodirectory in comune: .* e .*" + +" ja +syn match diffOnly "^.*だけに発見: .*" +syn match diffIdentical "^ファイル.*と.*は同一$" +syn match diffDiffer "^ファイル.*と.*は違います$" +syn match diffBDiffer "^バイナリー・ファイル.*と.*は違います$" +syn match diffIsA "^ファイル.*は.*、ファイル.*は.*" +syn match diffNoEOL "^\\ ファイル末尾に改行がありません" +syn match diffCommon "^共通の下位ディレクトリー: .*と.*" + +" ja DiffUtils 3.3 +syn match diffOnly "^.* のみに存在: .*" +syn match diffIdentical "^ファイル .* と .* は同一です$" +syn match diffDiffer "^ファイル .* と .* は異なります$" +syn match diffBDiffer "^バイナリーファイル .* と.* は異なります$" +syn match diffIsA "^ファイル .* は .* です。一方、ファイル .* は .* です$" +syn match diffNoEOL "^\\ ファイル末尾に改行がありません" +syn match diffCommon "^共通のサブディレクトリー: .* と .*" + +" lv +syn match diffOnly "^Tikai iekš .*" +syn match diffIdentical "^Fails .* un .* ir identiski$" +syn match diffDiffer "^Faili .* un .* atšķiras$" +syn match diffBDiffer "^Faili .* un .* atšķiras$" +syn match diffBDiffer "^Binārie faili .* un .* atšķiras$" +syn match diffIsA "^Fails .* ir .* kamēr fails .* ir .*" +syn match diffNoEOL "^\\ Nav jaunu rindu faila beigās" +syn match diffCommon "^Kopējās apakšdirektorijas: .* un .*" + +" ms +syn match diffOnly "^Hanya dalam .*" +syn match diffIdentical "^Fail .* dan .* adalah serupa$" +syn match diffDiffer "^Fail .* dan .* berbeza$" +syn match diffBDiffer "^Fail .* dan .* berbeza$" +syn match diffIsA "^Fail .* adalah .* manakala fail .* adalah .*" +syn match diffNoEOL "^\\ Tiada baris baru pada penghujung fail" +syn match diffCommon "^Subdirektori umum: .* dan .*" + +" nl +syn match diffOnly "^Alleen in .*" +syn match diffIdentical "^Bestanden .* en .* zijn identiek$" +syn match diffDiffer "^Bestanden .* en .* zijn verschillend$" +syn match diffBDiffer "^Bestanden .* en .* zijn verschillend$" +syn match diffBDiffer "^Binaire bestanden .* en .* zijn verschillend$" +syn match diffIsA "^Bestand .* is een .* terwijl bestand .* een .* is$" +syn match diffNoEOL "^\\ Geen regeleindeteken (LF) aan einde van bestand" +syn match diffCommon "^Gemeenschappelijke submappen: .* en .*" + +" pl +syn match diffOnly "^Tylko w .*" +syn match diffIdentical "^Pliki .* i .* są identyczne$" +syn match diffDiffer "^Pliki .* i .* różnią się$" +syn match diffBDiffer "^Pliki .* i .* różnią się$" +syn match diffBDiffer "^Binarne pliki .* i .* różnią się$" +syn match diffIsA "^Plik .* jest .*, podczas gdy plik .* jest .*" +syn match diffNoEOL "^\\ Brak znaku nowej linii na końcu pliku" +syn match diffCommon "^Wspólne podkatalogi: .* i .*" + +" pt_BR +syn match diffOnly "^Somente em .*" +syn match diffOnly "^Apenas em .*" +syn match diffIdentical "^Os aquivos .* e .* são idênticos$" +syn match diffDiffer "^Os arquivos .* e .* são diferentes$" +syn match diffBDiffer "^Os arquivos binários .* e .* são diferentes$" +syn match diffIsA "^O arquivo .* é .* enquanto o arquivo .* é .*" +syn match diffNoEOL "^\\ Falta o caracter nova linha no final do arquivo" +syn match diffCommon "^Subdiretórios idênticos: .* e .*" + +" ro +syn match diffOnly "^Doar în .*" +syn match diffIdentical "^Fişierele .* şi .* sunt identice$" +syn match diffDiffer "^Fişierele .* şi .* diferă$" +syn match diffBDiffer "^Fişierele binare .* şi .* diferă$" +syn match diffIsA "^Fişierul .* este un .* pe când fişierul .* este un .*.$" +syn match diffNoEOL "^\\ Nici un element de linie nouă la sfârşitul fişierului" +syn match diffCommon "^Subdirectoare comune: .* şi .*.$" + +" ru +syn match diffOnly "^Только в .*" +syn match diffIdentical "^Файлы .* и .* идентичны$" +syn match diffDiffer "^Файлы .* и .* различаются$" +syn match diffBDiffer "^Файлы .* и .* различаются$" +syn match diffIsA "^Файл .* это .*, тогда как файл .* -- .*" +syn match diffNoEOL "^\\ В конце файла нет новой строки" +syn match diffCommon "^Общие подкаталоги: .* и .*" + +" sr +syn match diffOnly "^Само у .*" +syn match diffIdentical "^Датотеке „.*“ и „.*“ се подударају$" +syn match diffDiffer "^Датотеке .* и .* различите$" +syn match diffBDiffer "^Бинарне датотеке .* и .* различите$" +syn match diffIsA "^Датотека „.*“ је „.*“ док је датотека „.*“ „.*“$" +syn match diffNoEOL "^\\ Без новог реда на крају датотеке" +syn match diffCommon "^Заједнички поддиректоријуми: .* и .*" + +" sv +syn match diffOnly "^Endast i .*" +syn match diffIdentical "^Filerna .* och .* är lika$" +syn match diffDiffer "^Filerna .* och .* skiljer$" +syn match diffBDiffer "^Filerna .* och .* skiljer$" +syn match diffIsA "^Fil .* är en .* medan fil .* är en .*" +syn match diffBDiffer "^De binära filerna .* och .* skiljer$" +syn match diffIsA "^Filen .* är .* medan filen .* är .*" +syn match diffNoEOL "^\\ Ingen nyrad vid filslut" +syn match diffCommon "^Lika underkataloger: .* och .*" + +" tr +syn match diffOnly "^Yalnızca .*'da: .*" +syn match diffIdentical "^.* ve .* dosyaları birbirinin aynı$" +syn match diffDiffer "^.* ve .* dosyaları birbirinden farklı$" +syn match diffBDiffer "^.* ve .* dosyaları birbirinden farklı$" +syn match diffBDiffer "^İkili .* ve .* birbirinden farklı$" +syn match diffIsA "^.* dosyası, bir .*, halbuki .* dosyası bir .*" +syn match diffNoEOL "^\\ Dosya sonunda yenisatır yok." +syn match diffCommon "^Ortak alt dizinler: .* ve .*" + +" uk +syn match diffOnly "^Лише у .*" +syn match diffIdentical "^Файли .* та .* ідентичні$" +syn match diffDiffer "^Файли .* та .* відрізняються$" +syn match diffBDiffer "^Файли .* та .* відрізняються$" +syn match diffBDiffer "^Двійкові файли .* та .* відрізняються$" +syn match diffIsA "^Файл .* це .*, тоді як файл .* -- .*" +syn match diffNoEOL "^\\ Наприкінці файлу немає нового рядка" +syn match diffCommon "^Спільні підкаталоги: .* та .*" + +" vi +syn match diffOnly "^Chỉ trong .*" +syn match diffIdentical "^Hai tập tin .* và .* là bằng nhau.$" +syn match diffIdentical "^Cả .* và .* là cùng một tập tin$" +syn match diffDiffer "^Hai tập tin .* và .* là khác nhau.$" +syn match diffBDiffer "^Hai tập tin nhị phân .* và .* khác nhau$" +syn match diffIsA "^Tập tin .* là một .* trong khi tập tin .* là một .*.$" +syn match diffBDiffer "^Hai tập tin .* và .* là khác nhau.$" +syn match diffIsA "^Tập tin .* là một .* còn tập tin .* là một .*.$" +syn match diffNoEOL "^\\ Không có ký tự dòng mới tại kêt thức tập tin." +syn match diffCommon "^Thư mục con chung: .* và .*" + +" zh_CN +syn match diffOnly "^只在 .* 存在:.*" +syn match diffIdentical "^檔案 .* 和 .* 相同$" +syn match diffDiffer "^文件 .* 和 .* 不同$" +syn match diffBDiffer "^文件 .* 和 .* 不同$" +syn match diffIsA "^文件 .* 是.*而文件 .* 是.*" +syn match diffNoEOL "^\\ 文件尾没有 newline 字符" +syn match diffCommon "^.* 和 .* 有共同的子目录$" + +" zh_TW +syn match diffOnly "^只在 .* 存在:.*" +syn match diffIdentical "^檔案 .* 和 .* 相同$" +syn match diffDiffer "^檔案 .* 與 .* 不同$" +syn match diffBDiffer "^二元碼檔 .* 與 .* 不同$" +syn match diffIsA "^檔案 .* 是.*而檔案 .* 是.*" +syn match diffNoEOL "^\\ 檔案末沒有 newline 字元" +syn match diffCommon "^.* 和 .* 有共同的副目錄$" + +endif + + +syn match diffRemoved "^-.*" +syn match diffRemoved "^<.*" +syn match diffAdded "^+.*" +syn match diffAdded "^>.*" +syn match diffChanged "^! .*" + +syn match diffSubname " @@..*"ms=s+3 contained +syn match diffLine "^@.*" contains=diffSubname +syn match diffLine "^\<\d\+\>.*" +syn match diffLine "^\*\*\*\*.*" +syn match diffLine "^---$" + +" Some versions of diff have lines like "#c#" and "#d#" (where # is a number) +syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*" + +syn match diffFile "^diff\>.*" +syn match diffFile "^Index: .*" +syn match diffFile "^==== .*" + +if search('^@@ -\S\+ +\S\+ @@', 'nw', '', 100) + " unified + syn match diffOldFile "^--- .*" + syn match diffNewFile "^+++ .*" +else + " context / old style + syn match diffOldFile "^\*\*\* .*" + syn match diffNewFile "^--- .*" +endif + +" Used by git +syn match diffIndexLine "^index \x\x\x\x.*" + +syn match diffComment "^#.*" + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link diffOldFile diffFile +hi def link diffNewFile diffFile +hi def link diffIndexLine PreProc +hi def link diffFile Type +hi def link diffOnly Constant +hi def link diffIdentical Constant +hi def link diffDiffer Constant +hi def link diffBDiffer Constant +hi def link diffIsA Constant +hi def link diffNoEOL Constant +hi def link diffCommon Constant +hi def link diffRemoved Removed +hi def link diffChanged Changed +hi def link diffAdded Added +hi def link diffLine Statement +hi def link diffSubname PreProc +hi def link diffComment Comment + +let b:current_syntax = "diff" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/dircolors.vim b/runtime/syntax/dircolors.vim new file mode 100644 index 0000000..24bc31f --- /dev/null +++ b/runtime/syntax/dircolors.vim @@ -0,0 +1,222 @@ +" Vim syntax file +" Language: dircolors(1) input file +" Maintainer: Jan Larres +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2018-02-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syntax keyword dircolorsTodo FIXME TODO XXX NOTE contained + +syntax region dircolorsComment start='#' end='$' contains=dircolorsTodo,@Spell + +syntax keyword dircolorsKeyword TERM LEFT LEFTCODE RIGHT RIGHTCODE END ENDCODE + +syntax keyword dircolorsKeyword NORMAL NORM FILE RESET DIR LNK LINK SYMLINK + \ MULTIHARDLINK FIFO SOCK DOOR BLK CHR ORPHAN + \ MISSING PIPE BLOCK CHR EXEC SETUID SETGID + \ CAPABILITY STICKY_OTHER_WRITABLE + \ OTHER_WRITABLE STICKY + +" Slackware only, ignored by GNU dircolors. +syntax keyword dircolorsKeyword COLOR OPTIONS EIGHTBIT + +syntax match dircolorsExtension '^\s*\zs[.*]\S\+' + +syntax match dircolorsEscape '\\[abefnrtv?_\\^#]' +syntax match dircolorsEscape '\\[0-9]\{3}' +syntax match dircolorsEscape '\\x[0-9a-f]\{3}' + +if !has('gui_running') && &t_Co == '' + syntax match dircolorsNumber '\<\d\+\>' + highlight default link dircolorsNumber Number +endif + +highlight default link dircolorsTodo Todo +highlight default link dircolorsComment Comment +highlight default link dircolorsKeyword Keyword +highlight default link dircolorsExtension Identifier +highlight default link dircolorsEscape Special + +function! s:set_guicolors() abort + let s:termguicolors = {} + + let s:termguicolors[0] = "Black" + let s:termguicolors[1] = "DarkRed" + let s:termguicolors[2] = "DarkGreen" + let s:termguicolors[3] = "DarkYellow" + let s:termguicolors[4] = "DarkBlue" + let s:termguicolors[5] = "DarkMagenta" + let s:termguicolors[6] = "DarkCyan" + let s:termguicolors[7] = "Gray" + let s:termguicolors[8] = "DarkGray" + let s:termguicolors[9] = "Red" + let s:termguicolors[10] = "Green" + let s:termguicolors[11] = "Yellow" + let s:termguicolors[12] = "Blue" + let s:termguicolors[13] = "Magenta" + let s:termguicolors[14] = "Cyan" + let s:termguicolors[15] = "White" + + let xterm_palette = ["00", "5f", "87", "af", "d7", "ff"] + + let cur_col = 16 + + for r in xterm_palette + for g in xterm_palette + for b in xterm_palette + let s:termguicolors[cur_col] = '#' . r . g . b + let cur_col += 1 + endfor + endfor + endfor + + for i in range(24) + let g = i * 0xa + 8 + let s:termguicolors[i + 232] = '#' . g . g . g + endfor +endfunction + +function! s:get_hi_str(color, place) abort + if a:color >= 0 && a:color <= 255 + if has('gui_running') + return ' gui' . a:place . '=' . s:termguicolors[a:color] + elseif a:color <= 7 || &t_Co == 256 || &t_Co == 88 + return ' cterm' . a:place . '=' . a:color + endif + endif + return '' +endfunction + +function! s:get_256color(colors) abort + if len(a:colors) >= 2 " May be fewer while editing + let [_five, color] = remove(a:colors, 0, 1) + if _five != '5' || color == '' + return -1 + else + return str2nr(color) + endif + else + return -1 + endif +endfunction + +function! s:preview_color(linenr) abort + let line = getline(a:linenr) + let defline = matchlist(line, '^\v([A-Z_]+|[*.]\S+)\s+([0-9;]+)') + if empty(defline) + return + endif + + let colordef = defline[2] + + let colors = split(colordef, ';') + + let hi_str = '' + let hi_attrs = [] + while len(colors) > 0 + let item = str2nr(remove(colors, 0)) + if item == 1 + call add(hi_attrs, 'bold') + elseif item == 3 + call add(hi_attrs, 'italic') + elseif item == 4 + call add(hi_attrs, 'underline') + elseif item == 7 + call add(hi_attrs, 'inverse') + elseif item >= 30 && item <= 37 + " ANSI SGR foreground color + let hi_str .= s:get_hi_str(item - 30, 'fg') + elseif item >= 40 && item <= 47 + " ANSI SGR background color + let hi_str .= s:get_hi_str(item - 40, 'bg') + elseif item >= 90 && item <= 97 + " ANSI SGR+8 foreground color (xterm 16-color support) + let hi_str .= s:get_hi_str(item - 82, 'fg') + elseif item >= 100 && item <= 107 + " ANSI SGR+8 background color (xterm 16-color support) + let hi_str .= s:get_hi_str(item - 92, 'bg') + elseif item == 38 + " Foreground for terminals with 88/256 color support + let color = s:get_256color(colors) + if color == -1 + break + endif + let hi_str .= s:get_hi_str(color, 'fg') + elseif item == 48 + " Background for terminals with 88/256 color support + let color = s:get_256color(colors) + if color == -1 + break + endif + let hi_str .= s:get_hi_str(color, 'bg') + endif + endwhile + + if hi_str == '' && empty(hi_attrs) + return + endif + + " Check whether we have already defined this color + redir => s:currentmatch + silent! execute 'syntax list' + redir END + + if s:currentmatch !~# '\/\\_s\\zs' . colordef . '\\ze\\_s\/' + " Append the buffer number to avoid problems with other dircolors + " buffers interfering + let bufnr = bufnr('%') + execute 'syntax match dircolorsColor' . b:dc_next_index . '_' . bufnr . + \ ' "\_s\zs' . colordef . '\ze\_s"' + let hi_attrs_str = '' + if !empty(hi_attrs) + if has('gui_running') + let hi_attrs_str = ' gui=' . join(hi_attrs, ',') + else + let hi_attrs_str = ' cterm=' . join(hi_attrs, ',') + endif + endif + execute 'highlight default dircolorsColor' . b:dc_next_index . '_' . + \ bufnr . hi_str . hi_attrs_str + let b:dc_next_index += 1 + endif +endfunction + +" Avoid accumulating too many definitions while editing +function! s:reset_colors() abort + if b:dc_next_index > 0 + let bufnr = bufnr('%') + for i in range(b:dc_next_index) + execute 'syntax clear dircolorsColor' . i . '_' . bufnr + execute 'highlight clear dircolorsColor' . i . '_' . bufnr + endfor + let b:dc_next_index = 0 + endif + + for linenr in range(1, line('$')) + call s:preview_color(linenr) + endfor +endfunction + +let b:dc_next_index = 0 + +if has('gui_running') + call s:set_guicolors() +endif + +if has('gui_running') || &t_Co != '' + call s:reset_colors() + + autocmd CursorMoved,CursorMovedI call s:preview_color('.') + autocmd CursorHold,CursorHoldI call s:reset_colors() +endif + +let b:current_syntax = "dircolors" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/dirpager.vim b/runtime/syntax/dirpager.vim new file mode 100644 index 0000000..dc8b986 --- /dev/null +++ b/runtime/syntax/dirpager.vim @@ -0,0 +1,56 @@ +" Vim syntax file +" Maintainer: Thilo Six +" Contact: +" http://www.vim.org/maillist.php#vim-dev +" +" Description: display directory content inside Vim with syntax +" highlighting +" File: runtime/syntax/dirpager.vim +" Last Change: 2022 Jun 14 +" Modeline: vim: ts=8:sw=2:sts=2: +" +" Credits: dirpager.vim is derived from Nikolai Weibulls dircolors.vim +" +" License: VIM License +" Vim is Charityware, see ":help Uganda" +" +" Usage: $ ls -la | view -c "set ft=dirpager" - +" +" +",----[ ls(1posix) ]-------------------------------------------------- +" +" The character shall describe the type of file, as +" follows: +" +" d Directory. +" b Block special file. +" c Character special file. +" l (ell) Symbolic link. +" p FIFO. +" - Regular file. +" + +if exists("b:current_syntax") || &compatible + finish +endif + +setlocal nowrap + +syn keyword DirPagerTodo contained FIXME TODO XXX NOTE + +syn region DirPagerExe start='^...x\|^......x\|^.........x' end='$' contains=DirPagerTodo,@Spell +syn region DirPagerDir start='^d' end='$' contains=DirPagerTodo,@Spell +syn region DirPagerLink start='^l' end='$' contains=DirPagerTodo,@Spell +syn region DirPagerSpecial start='^b' end='$' contains=DirPagerTodo,@Spell +syn region DirPagerSpecial start='^c' end='$' contains=DirPagerTodo,@Spell +syn region DirPagerFifo start='^p' end='$' contains=DirPagerTodo,@Spell + +hi def link DirPagerTodo Todo +hi def DirPagerExe ctermfg=Green guifg=Green +hi def DirPagerDir ctermfg=Blue guifg=Blue +hi def DirPagerLink ctermfg=Cyan guifg=Cyan +hi def DirPagerSpecial ctermfg=Yellow guifg=Yellow +hi def DirPagerFifo ctermfg=Brown guifg=Brown + +let b:current_syntax = "dirpager" + diff --git a/runtime/syntax/diva.vim b/runtime/syntax/diva.vim new file mode 100644 index 0000000..127a0b4 --- /dev/null +++ b/runtime/syntax/diva.vim @@ -0,0 +1,96 @@ +" Vim syntax file +" Language: SKILL for Diva +" Maintainer: Toby Schaffer +" Last Change: 2001 May 09 +" Comments: SKILL is a Lisp-like programming language for use in EDA +" tools from Cadence Design Systems. It allows you to have +" a programming environment within the Cadence environment +" that gives you access to the complete tool set and design +" database. These items are for Diva verification rules decks. + +" Don't remove any old syntax stuff hanging around! We need stuff +" from skill.vim. +if !exists("did_skill_syntax_inits") + runtime! syntax/skill.vim +endif + +syn keyword divaDRCKeywords area enc notch ovlp sep width +syn keyword divaDRCKeywords app diffNet length lengtha lengthb +syn keyword divaDRCKeywords notParallel only_perp opposite parallel +syn keyword divaDRCKeywords sameNet shielded with_perp +syn keyword divaDRCKeywords edge edgea edgeb fig figa figb +syn keyword divaDRCKeywords normalGrow squareGrow message raw +syn keyword divaMeasKeywords perimeter length bends_all bends_full +syn keyword divaMeasKeywords bends_part corners_all corners_full +syn keyword divaMeasKeywords corners_part angles_all angles_full +syn keyword divaMeasKeywords angles_part fig_count butting coincident +syn keyword divaMeasKeywords over not_over outside inside enclosing +syn keyword divaMeasKeywords figure one_net two_net three_net grounded +syn keyword divaMeasKeywords polarized limit keep ignore +syn match divaCtrlFunctions "(ivIf\>"hs=s+1 +syn match divaCtrlFunctions "\"hs=s+1 +syn match divaCtrlFunctions "\"hs=s+1 +syn match divaCtrlFunctions "\"hs=s+1 +syn match divaCtrlFunctions "\"hs=s+1 +syn match divaCtrlFunctions "\"hs=s+1 +syn match divaExtFunctions "\"hs=s+1 +syn match divaExtFunctions "\<\(save\|measure\|attach\|multiLevel\|calculate\)Parasitic("he=e-1 +syn match divaExtFunctions "(\(calculate\|measure\)Parameter\>"hs=s+1 +syn match divaExtFunctions "\<\(calculate\|measure\)Parameter("he=e-1 +syn match divaExtFunctions "(measure\(Resistance\|Fringe\)\>"hs=s+1 +syn match divaExtFunctions "\"hs=s+1 +syn match divaExtFunctions "\"hs=s+1 +syn match divaDRCFunctions "\"hs=s+1 +syn match divaDRCFunctions "\"hs=s+1 +syn match divaDRCFunctions "\"hs=s+1 +syn match divaDRCFunctions "\"hs=s+1 +syn match divaFunctions "\<\(drcExtract\|lvs\)Rules("he=e-1 +syn match divaLayerFunctions "(saveDerived\>"hs=s+1 +syn match divaLayerFunctions "\"hs=s+1 +syn match divaLayerFunctions "\"hs=s+1 +syn match divaChkFunctions "\"hs=s+1 +syn match divaChkFunctions "\"hs=s+1 +syn match divaLVSFunctions "\"hs=s+1 +syn match divaLVSFunctions "\"hs=s+1 +syn match divaLVSFunctions "\"hs=s+1 +syn match divaLVSFunctions "\<\(permute\|prune\|remove\)Device("he=e-1 +syn match divaGeomFunctions "(geom\u\a\+\(45\|90\)\=\>"hs=s+1 +syn match divaGeomFunctions "\ +" Last Change: 2021 Nov 29 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case match + +" Mark illegal characters +syn match djangoError "%}\|}}\|#}" + +" Django template built-in tags and parameters +" 'comment' doesn't appear here because it gets special treatment +syn keyword djangoStatement contained autoescape csrf_token empty +" FIXME ==, !=, <, >, <=, and >= should be djangoStatements: +" syn keyword djangoStatement contained == != < > <= >= +syn keyword djangoStatement contained and as block endblock by cycle debug else elif +syn keyword djangoStatement contained extends filter endfilter firstof for +syn keyword djangoStatement contained endfor if endif ifchanged endifchanged +syn keyword djangoStatement contained ifequal endifequal ifnotequal +syn keyword djangoStatement contained endifnotequal in include load not now or +syn keyword djangoStatement contained parsed regroup reversed spaceless +syn keyword djangoStatement contained endspaceless ssi templatetag openblock +syn keyword djangoStatement contained closeblock openvariable closevariable +syn keyword djangoStatement contained openbrace closebrace opencomment +syn keyword djangoStatement contained closecomment widthratio url with endwith +syn keyword djangoStatement contained get_current_language trans noop blocktrans +syn keyword djangoStatement contained endblocktrans get_available_languages +syn keyword djangoStatement contained get_current_language_bidi plural +syn keyword djangoStatement contained translate blocktranslate endblocktranslate + +" Django templete built-in filters +syn keyword djangoFilter contained add addslashes capfirst center cut date +syn keyword djangoFilter contained default default_if_none dictsort +syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs +syn keyword djangoFilter contained filesizeformat first fix_ampersands +syn keyword djangoFilter contained floatformat get_digit join last length length_is +syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust +syn keyword djangoFilter contained lower make_list phone2numeric pluralize +syn keyword djangoFilter contained pprint random removetags rjust slice slugify +syn keyword djangoFilter contained safe safeseq stringformat striptags +syn keyword djangoFilter contained time timesince timeuntil title truncatechars +syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode +syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno + +" Keywords to highlight within comments +syn keyword djangoTodo contained TODO FIXME XXX + +" Django template constants (always surrounded by double quotes) +syn region djangoArgument contained start=/"/ skip=/\\"/ end=/"/ + +" Mark illegal characters within tag and variables blocks +syn match djangoTagError contained "#}\|{{\|[^%]}}\|[&#]" +syn match djangoVarError contained "#}\|{%\|%}\|[<>!&#%]" + +" Django template tag and variable blocks +syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display +syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display + +" Django template 'comment' tag and comment block +syn region djangoComment start="{%\s*comment\(\s\+.\{-}\)\?%}" end="{%\s*endcomment\s*%}" contains=djangoTodo +syn region djangoComBlock start="{#" end="#}" contains=djangoTodo + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link djangoTagBlock PreProc +hi def link djangoVarBlock PreProc +hi def link djangoStatement Statement +hi def link djangoFilter Identifier +hi def link djangoArgument Constant +hi def link djangoTagError Error +hi def link djangoVarError Error +hi def link djangoError Error +hi def link djangoComment Comment +hi def link djangoComBlock Comment +hi def link djangoTodo Todo + + +let b:current_syntax = "django" diff --git a/runtime/syntax/dns.vim b/runtime/syntax/dns.vim new file mode 100644 index 0000000..cc9a3f0 --- /dev/null +++ b/runtime/syntax/dns.vim @@ -0,0 +1,5 @@ +" Vim syntax file +" Language: DNS/BIND Zone File + +" This has been replaced by the bindzone syntax +:runtime! syntax/bindzone.vim diff --git a/runtime/syntax/dnsmasq.vim b/runtime/syntax/dnsmasq.vim new file mode 100644 index 0000000..a4cc8b5 --- /dev/null +++ b/runtime/syntax/dnsmasq.vim @@ -0,0 +1,242 @@ +" Vim syntax file +" Maintainer: Thilo Six +" Contact: vim-foo@xk2c-foo.de +" :3s+-foo++g +" Description: highlight dnsmasq configuration files +" File: runtime/syntax/dnsmasq.vim +" Version: 2.76 +" Last Change: 2015 Sep 27 +" Modeline: vim: ts=8:sw=2:sts=2: +" +" License: VIM License +" Vim is Charityware, see ":help Uganda" +" +" Options: You might want to add this to your vimrc: +" +" if &background == "dark" +" let dnsmasq_backrgound_light = 0 +" else +" let dnsmasq_backrgound_light = 1 +" endif +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") || &compatible + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +if !exists("b:dnsmasq_backrgound_light") + if exists("dnsmasq_backrgound_light") + let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light + else + let b:dnsmasq_backrgound_light = 0 + endif +endif + + +" case on +syn case match + +syn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial +syn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues +syn match DnsmasqSpecial "#" + +syn match DnsmasqIPv4 "\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>" nextgroup=DnsmasqSubnet2,DnsmasqRange +syn match DnsmasqSubnet "\<255.\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{2\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>" +syn match DnsmasqSubnet2 contained "\/\([0-4]\?[0-9]\)\>" +syn match DnsmasqRange contained "-" +syn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?" + +syn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>" + +" String +syn match DnsmasqString "\".*\"" contains=@Spell +syn match DnsmasqString "'.*'" contains=@Spell + +" Comments +syn keyword DnsmasqTodo FIXME TODO XXX NOTE contained +syn match DnsmasqComment "\(^\|\s\+\)#.*$" contains=@Spell,DnsmasqTodo + +" highlight trailing spaces +syn match DnsmasqTrailSpace "[ \t]\+$" +syn match DnsmasqTrailSpace "[ \t]\+$" containedin=ALL + +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial ",\"hs=s+1 contains=DnsmasqSpecial +syn match DnsmasqKeywordSpecial ",\"hs=s+1 contains=DnsmasqSpecial +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial "\:"me=e-1 +syn match DnsmasqKeywordSpecial ",\"hs=s+1 contains=DnsmasqSpecial +syn match DnsmasqKeywordSpecial "\:"me=e-1 + +syn match DnsmasqKeyword "^\s*add-mac\>" +syn match DnsmasqKeyword "^\s*add-subnet\>" +syn match DnsmasqKeyword "^\s*addn-hosts\>" +syn match DnsmasqKeyword "^\s*address\>" +syn match DnsmasqKeyword "^\s*alias\>" +syn match DnsmasqKeyword "^\s*all-servers\>" +syn match DnsmasqKeyword "^\s*auth-zone\>" +syn match DnsmasqKeyword "^\s*bind-dynamic\>" +syn match DnsmasqKeyword "^\s*bind-interfaces\>" +syn match DnsmasqKeyword "^\s*bogus-nxdomain\>" +syn match DnsmasqKeyword "^\s*bogus-priv\>" +syn match DnsmasqKeyword "^\s*bootp-dynamic\>" +syn match DnsmasqKeyword "^\s*bridge-interface\>" +syn match DnsmasqKeyword "^\s*cache-size\>" +syn match DnsmasqKeyword "^\s*clear-on-reload\>" +syn match DnsmasqKeyword "^\s*cname\>" +syn match DnsmasqKeyword "^\s*conf-dir\>" +syn match DnsmasqKeyword "^\s*conf-file\>" +syn match DnsmasqKeyword "^\s*conntrack\>" +syn match DnsmasqKeyword "^\s*dhcp-alternate-port\>" +syn match DnsmasqKeyword "^\s*dhcp-authoritative\>" +syn match DnsmasqKeyword "^\s*dhcp-boot\>" +syn match DnsmasqKeyword "^\s*dhcp-broadcast\>" +syn match DnsmasqKeyword "^\s*dhcp-circuitid\>" +syn match DnsmasqKeyword "^\s*dhcp-client-update\>" +syn match DnsmasqKeyword "^\s*dhcp-duid\>" +syn match DnsmasqKeyword "^\s*dhcp-fqdn\>" +syn match DnsmasqKeyword "^\s*dhcp-generate-names\>" +syn match DnsmasqKeyword "^\s*dhcp-host\>" +syn match DnsmasqKeyword "^\s*dhcp-hostsfile\>" +syn match DnsmasqKeyword "^\s*dhcp-ignore\>" +syn match DnsmasqKeyword "^\s*dhcp-ignore-names\>" +syn match DnsmasqKeyword "^\s*dhcp-lease-max\>" +syn match DnsmasqKeyword "^\s*dhcp-leasefile\>" +syn match DnsmasqKeyword "^\s*dhcp-luascript\>" +syn match DnsmasqKeyword "^\s*dhcp-mac\>" +syn match DnsmasqKeyword "^\s*dhcp-match\>" +syn match DnsmasqKeyword "^\s*dhcp-no-override\>" +syn match DnsmasqKeyword "^\s*dhcp-option\>" +syn match DnsmasqKeyword "^\s*dhcp-option-force\>" +syn match DnsmasqKeyword "^\s*dhcp-optsfile\>" +syn match DnsmasqKeyword "^\s*dhcp-proxy\>" +syn match DnsmasqKeyword "^\s*dhcp-range\>" +syn match DnsmasqKeyword "^\s*dhcp-relay\>" +syn match DnsmasqKeyword "^\s*dhcp-remoteid\>" +syn match DnsmasqKeyword "^\s*dhcp-script\>" +syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>" +syn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>" +syn match DnsmasqKeyword "^\s*dhcp-subscrid\>" +syn match DnsmasqKeyword "^\s*dhcp-userclass\>" +syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>" +syn match DnsmasqKeyword "^\s*dhcp-hostsdir\>" +syn match DnsmasqKeyword "^\s*dns-rr\>" +syn match DnsmasqKeyword "^\s*dnssec\>" +syn match DnsmasqKeyword "^\s*dnssec-check-unsigned\>" +syn match DnsmasqKeyword "^\s*dnssec-no-timecheck\>" +syn match DnsmasqKeyword "^\s*dnssec-timestamp\>" +syn match DnsmasqKeyword "^\s*dns-forward-max\>" +syn match DnsmasqKeyword "^\s*domain\>" +syn match DnsmasqKeyword "^\s*domain-needed\>" +syn match DnsmasqKeyword "^\s*edns-packet-max\>" +syn match DnsmasqKeyword "^\s*enable-dbus\>" +syn match DnsmasqKeyword "^\s*enable-ra\>" +syn match DnsmasqKeyword "^\s*enable-tftp\>" +syn match DnsmasqKeyword "^\s*except-interface\>" +syn match DnsmasqKeyword "^\s*expand-hosts\>" +syn match DnsmasqKeyword "^\s*filterwin2k\>" +syn match DnsmasqKeyword "^\s*group\>" +syn match DnsmasqKeyword "^\s*host-record\>" +syn match DnsmasqKeyword "^\s*interface\>" +syn match DnsmasqKeyword "^\s*interface-name\>" +syn match DnsmasqKeyword "^\s*ipset\>" +syn match DnsmasqKeyword "^\s*ignore-address\>" +syn match DnsmasqKeyword "^\s*keep-in-foreground\>" +syn match DnsmasqKeyword "^\s*leasefile-ro\>" +syn match DnsmasqKeyword "^\s*listen-address\>" +syn match DnsmasqKeyword "^\s*local\>" +syn match DnsmasqKeyword "^\s*localmx\>" +syn match DnsmasqKeyword "^\s*local-ttl\>" +syn match DnsmasqKeyword "^\s*local-service\>" +syn match DnsmasqKeyword "^\s*localise-queries\>" +syn match DnsmasqKeyword "^\s*log-async\>" +syn match DnsmasqKeyword "^\s*log-dhcp\>" +syn match DnsmasqKeyword "^\s*log-facility\>" +syn match DnsmasqKeyword "^\s*log-queries\>" +syn match DnsmasqKeyword "^\s*max-ttl\>" +syn match DnsmasqKeyword "^\s*max-cache-ttl\>" +syn match DnsmasqKeyword "^\s*min-cache-ttl\>" +syn match DnsmasqKeyword "^\s*min-port\>" +syn match DnsmasqKeyword "^\s*mx-host\>" +syn match DnsmasqKeyword "^\s*mx-target\>" +syn match DnsmasqKeyword "^\s*naptr-record\>" +syn match DnsmasqKeyword "^\s*neg-ttl\>" +syn match DnsmasqKeyword "^\s*no-daemon\>" +syn match DnsmasqKeyword "^\s*no-dhcp-interface\>" +syn match DnsmasqKeyword "^\s*no-hosts\>" +syn match DnsmasqKeyword "^\s*no-negcache\>" +syn match DnsmasqKeyword "^\s*no-ping\>" +syn match DnsmasqKeyword "^\s*no-poll\>" +syn match DnsmasqKeyword "^\s*no-resolv\>" +syn match DnsmasqKeyword "^\s*pid-file\>" +syn match DnsmasqKeyword "^\s*port\>" +syn match DnsmasqKeyword "^\s*proxy-dnssec\>" +syn match DnsmasqKeyword "^\s*ptr-record\>" +syn match DnsmasqKeyword "^\s*pxe-prompt\>" +syn match DnsmasqKeyword "^\s*pxe-service\>" +syn match DnsmasqKeyword "^\s*query-port\>" +syn match DnsmasqKeyword "^\s*quiet-ra\>" +syn match DnsmasqKeyword "^\s*quiet-dhcp\>" +syn match DnsmasqKeyword "^\s*quiet-dhcp6\>" +syn match DnsmasqKeyword "^\s*ra-param\>" +syn match DnsmasqKeyword "^\s*read-ethers\>" +syn match DnsmasqKeyword "^\s*rebind-domain-ok\>" +syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>" +syn match DnsmasqKeyword "^\s*resolv-file\>" +syn match DnsmasqKeyword "^\s*rev-server\>" +syn match DnsmasqKeyword "^\s*selfmx\>" +syn match DnsmasqKeyword "^\s*server\>" +syn match DnsmasqKeyword "^\s*servers-file\>" +syn match DnsmasqKeyword "^\s*srv-host\>" +syn match DnsmasqKeyword "^\s*stop-dns-rebind\>" +syn match DnsmasqKeyword "^\s*strict-order\>" +syn match DnsmasqKeyword "^\s*synth-domain\>" +syn match DnsmasqKeyword "^\s*tag-if\>" +syn match DnsmasqKeyword "^\s*test\>" +syn match DnsmasqKeyword "^\s*tftp-max\>" +syn match DnsmasqKeyword "^\s*tftp-lowercase\>" +syn match DnsmasqKeyword "^\s*tftp-no-blocksize\>" +syn match DnsmasqKeyword "^\s*tftp-no-fail\>" +syn match DnsmasqKeyword "^\s*tftp-port-range\>" +syn match DnsmasqKeyword "^\s*tftp-root\>" +syn match DnsmasqKeyword "^\s*tftp-secure\>" +syn match DnsmasqKeyword "^\s*tftp-unique-root\>" +syn match DnsmasqKeyword "^\s*txt-record\>" +syn match DnsmasqKeyword "^\s*user\>" +syn match DnsmasqKeyword "^\s*version\>" + + +if b:dnsmasq_backrgound_light == 1 + hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen +else + hi def link DnsmasqKeyword Keyword +endif +hi def link DnsmasqKeywordSpecial Type +hi def link DnsmasqTodo Todo +hi def link DnsmasqSpecial Constant +hi def link DnsmasqIPv4 Identifier +hi def link DnsmasqSubnet2 DnsmasqSubnet +hi def link DnsmasqSubnet DnsmasqMac +hi def link DnsmasqRange DnsmasqMac +hi def link DnsmasqMac Preproc +hi def link DnsmasqTime Preproc +hi def link DnsmasqComment Comment +hi def link DnsmasqTrailSpace DiffDelete +hi def link DnsmasqString Constant +hi def link DnsmasqValues Normal + +let b:current_syntax = "dnsmasq" + +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/runtime/syntax/docbk.vim b/runtime/syntax/docbk.vim new file mode 100644 index 0000000..809f289 --- /dev/null +++ b/runtime/syntax/docbk.vim @@ -0,0 +1,186 @@ +" Vim syntax file +" Language: DocBook +" Maintainer: Devin Weaver +" Last Updated By: Shlomi Fish +" URL: http://tritarget.com/pub/vim/syntax/docbk.vim +" Last Change: 2012 Nov 28 +" Version: 1.2 (and modified after that) +" Thanks to Johannes Zellner for the default to XML +" suggestion. + +" REFERENCES: +" http://docbook.org/ +" http://www.open-oasis.org/docbook/ +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Auto detect added by Bram Moolenaar +if !exists('b:docbk_type') + if expand('%:e') == "sgml" + let b:docbk_type = 'sgml' + else + let b:docbk_type = 'xml' + endif +endif + +if !exists('b:docbk_ver') + if exists('docbk_ver') + let b:docbk_ver = docbk_ver + else + let b:docbk_ver = 4 + endif +end + +if 'xml' == b:docbk_type + doau Syntax xml + syn cluster xmlTagHook add=docbkKeyword + syn cluster xmlRegionHook add=docbkRegion,docbkTitle,docbkRemark,docbkCite + syn case match +elseif 'sgml' == b:docbk_type + doau Syntax sgml + syn cluster sgmlTagHook add=docbkKeyword + syn cluster sgmlRegionHook add=docbkRegion,docbkTitle,docbkRemark,docbkCite + syn case ignore +endif + +syn keyword docbkKeyword abbrev abstract accel acronym address contained +syn keyword docbkKeyword affiliation alt anchor answer appendix contained +syn keyword docbkKeyword application area areaset areaspec arg contained +syn keyword docbkKeyword article artpagenums attribution audiodata contained +syn keyword docbkKeyword audioobject author authorgroup contained +syn keyword docbkKeyword authorinitials bibliocoverage bibliodiv contained +syn keyword docbkKeyword biblioentry bibliography biblioid contained +syn keyword docbkKeyword bibliolist bibliomisc bibliomixed contained +syn keyword docbkKeyword bibliomset biblioref bibliorelation contained +syn keyword docbkKeyword biblioset bibliosource blockquote book contained +syn keyword docbkKeyword bridgehead callout calloutlist caption contained +syn keyword docbkKeyword caution chapter citation citebiblioid contained +syn keyword docbkKeyword citerefentry citetitle city classname contained +syn keyword docbkKeyword classsynopsis classsynopsisinfo cmdsynopsis contained +syn keyword docbkKeyword co code col colgroup collab colophon contained +syn keyword docbkKeyword colspec command computeroutput confdates contained +syn keyword docbkKeyword confgroup confnum confsponsor conftitle contained +syn keyword docbkKeyword constant constructorsynopsis contractnum contained +syn keyword docbkKeyword contractsponsor contrib copyright coref contained +syn keyword docbkKeyword country database date dedication contained +syn keyword docbkKeyword destructorsynopsis edition editor email contained +syn keyword docbkKeyword emphasis entry entrytbl envar epigraph contained +syn keyword docbkKeyword equation errorcode errorname errortext contained +syn keyword docbkKeyword errortype example exceptionname fax contained +syn keyword docbkKeyword fieldsynopsis figure filename firstname contained +syn keyword docbkKeyword firstterm footnote footnoteref contained +syn keyword docbkKeyword foreignphrase formalpara funcdef funcparams contained +syn keyword docbkKeyword funcprototype funcsynopsis funcsynopsisinfo contained +syn keyword docbkKeyword function glossary glossdef glossdiv contained +syn keyword docbkKeyword glossentry glosslist glosssee glossseealso contained +syn keyword docbkKeyword glossterm group guibutton guiicon guilabel contained +syn keyword docbkKeyword guimenu guimenuitem guisubmenu hardware contained +syn keyword docbkKeyword holder honorific imagedata imageobject contained +syn keyword docbkKeyword imageobjectco important index indexdiv contained +syn keyword docbkKeyword indexentry indexterm informalequation contained +syn keyword docbkKeyword informalexample informalfigure contained +syn keyword docbkKeyword informaltable initializer inlineequation contained +syn keyword docbkKeyword inlinemediaobject interfacename issuenum contained +syn keyword docbkKeyword itemizedlist itermset jobtitle keycap contained +syn keyword docbkKeyword keycode keycombo keysym keyword keywordset contained +syn keyword docbkKeyword label legalnotice lineage lineannotation contained +syn keyword docbkKeyword link listitem literal literallayout contained +syn keyword docbkKeyword manvolnum markup mathphrase mediaobject contained +syn keyword docbkKeyword member menuchoice methodname methodparam contained +syn keyword docbkKeyword methodsynopsis modifier mousebutton msg contained +syn keyword docbkKeyword msgaud msgentry msgexplan msginfo msglevel contained +syn keyword docbkKeyword msgmain msgorig msgrel msgset msgsub contained +syn keyword docbkKeyword msgtext note olink ooclass ooexception contained +syn keyword docbkKeyword oointerface option optional orderedlist contained +syn keyword docbkKeyword orgdiv orgname otheraddr othercredit contained +syn keyword docbkKeyword othername package pagenums para paramdef contained +syn keyword docbkKeyword parameter part partintro personblurb contained +syn keyword docbkKeyword personname phone phrase pob postcode contained +syn keyword docbkKeyword preface primary primaryie printhistory contained +syn keyword docbkKeyword procedure productname productnumber contained +syn keyword docbkKeyword programlisting programlistingco prompt contained +syn keyword docbkKeyword property pubdate publisher publishername contained +syn keyword docbkKeyword qandadiv qandaentry qandaset question quote contained +syn keyword docbkKeyword refclass refdescriptor refentry contained +syn keyword docbkKeyword refentrytitle reference refmeta refmiscinfo contained +syn keyword docbkKeyword refname refnamediv refpurpose refsect1 contained +syn keyword docbkKeyword refsect2 refsect3 refsection refsynopsisdiv contained +syn keyword docbkKeyword releaseinfo remark replaceable returnvalue contained +syn keyword docbkKeyword revdescription revhistory revision contained +syn keyword docbkKeyword revnumber revremark row sbr screen screenco contained +syn keyword docbkKeyword screenshot secondary secondaryie sect1 contained +syn keyword docbkKeyword sect2 sect3 sect4 sect5 section see seealso contained +syn keyword docbkKeyword seealsoie seeie seg seglistitem contained +syn keyword docbkKeyword segmentedlist segtitle seriesvolnums set contained +syn keyword docbkKeyword setindex shortaffil shortcut sidebar contained +syn keyword docbkKeyword simpara simplelist simplemsgentry contained +syn keyword docbkKeyword simplesect spanspec state step contained +syn keyword docbkKeyword stepalternatives street subject subjectset contained +syn keyword docbkKeyword subjectterm subscript substeps subtitle contained +syn keyword docbkKeyword superscript surname symbol synopfragment contained +syn keyword docbkKeyword synopfragmentref synopsis systemitem table contained +syn keyword docbkKeyword task taskprerequisites taskrelated contained +syn keyword docbkKeyword tasksummary tbody td term termdef tertiary contained +syn keyword docbkKeyword tertiaryie textdata textobject tfoot tgroup contained +syn keyword docbkKeyword th thead tip title titleabbrev toc tocentry contained +syn keyword docbkKeyword token tr trademark type uri userinput contained +syn keyword docbkKeyword varargs variablelist varlistentry varname contained +syn keyword docbkKeyword videodata videoobject void volumenum contained +syn keyword docbkKeyword warning wordasword xref year contained + +if b:docbk_ver == 4 + syn keyword docbkKeyword ackno action appendixinfo articleinfo contained + syn keyword docbkKeyword authorblurb beginpage bibliographyinfo contained + syn keyword docbkKeyword blockinfo bookinfo chapterinfo contained + syn keyword docbkKeyword collabname corpauthor corpcredit contained + syn keyword docbkKeyword corpname glossaryinfo graphic graphicco contained + syn keyword docbkKeyword highlights indexinfo inlinegraphic contained + syn keyword docbkKeyword interface invpartnumber isbn issn lot contained + syn keyword docbkKeyword lotentry medialabel mediaobjectco contained + syn keyword docbkKeyword modespec objectinfo partinfo contained + syn keyword docbkKeyword prefaceinfo pubsnumber refentryinfo contained + syn keyword docbkKeyword referenceinfo refsect1info refsect2info contained + syn keyword docbkKeyword refsect3info refsectioninfo contained + syn keyword docbkKeyword refsynopsisdivinfo screeninfo sect1info contained + syn keyword docbkKeyword sect2info sect3info sect4info sect5info contained + syn keyword docbkKeyword sectioninfo setindexinfo setinfo contained + syn keyword docbkKeyword sgmltag sidebarinfo structfield contained + syn keyword docbkKeyword structname tocback tocchap tocfront contained + syn keyword docbkKeyword toclevel1 toclevel2 toclevel3 toclevel4 contained + syn keyword docbkKeyword toclevel5 tocpart ulink contained + +else + syn keyword docbkKeyword acknowledgements annotation arc contained + syn keyword docbkKeyword constraint constraintdef cover contained + syn keyword docbkKeyword extendedlink givenname info lhs locator contained + syn keyword docbkKeyword multimediaparam nonterminal org person contained + syn keyword docbkKeyword production productionrecap contained + syn keyword docbkKeyword productionset rhs tag tocdiv topic contained + +endif + +" Add special emphasis on some regions. Thanks to Rory Hunter for these ideas. +syn region docbkRegion start=""lc=10 end=""me=e-11 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend +syn region docbkTitle start=""lc=7 end=""me=e-8 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend +syn region docbkRemark start=""lc=8 end=""me=e-9 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend +syn region docbkRemark start=""lc=9 end=""me=e-10 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend +syn region docbkCite start=""lc=10 end=""me=e-11 contains=xmlRegion,xmlEntity,sgmlRegion,sgmlEntity keepend + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def DocbkBold term=bold cterm=bold gui=bold + +hi def link docbkKeyword Statement +hi def link docbkRegion DocbkBold +hi def link docbkTitle Title +hi def link docbkRemark Comment +hi def link docbkCite Constant + + +let b:current_syntax = "docbk" + +" vim: ts=8 diff --git a/runtime/syntax/docbksgml.vim b/runtime/syntax/docbksgml.vim new file mode 100644 index 0000000..544f3d2 --- /dev/null +++ b/runtime/syntax/docbksgml.vim @@ -0,0 +1,7 @@ +" Vim syntax file +" Language: DocBook SGML +" Maintainer: Johannes Zellner +" Last Change: Sam, 07 Sep 2002 17:20:46 CEST + +let b:docbk_type="sgml" +runtime syntax/docbk.vim diff --git a/runtime/syntax/docbkxml.vim b/runtime/syntax/docbkxml.vim new file mode 100644 index 0000000..181af2c --- /dev/null +++ b/runtime/syntax/docbkxml.vim @@ -0,0 +1,7 @@ +" Vim syntax file +" Language: DocBook XML +" Maintainer: Johannes Zellner +" Last Change: Sam, 07 Sep 2002 17:20:12 CEST + +let b:docbk_type="xml" +runtime syntax/docbk.vim diff --git a/runtime/syntax/dockerfile.vim b/runtime/syntax/dockerfile.vim new file mode 100644 index 0000000..ce52e69 --- /dev/null +++ b/runtime/syntax/dockerfile.vim @@ -0,0 +1,45 @@ +" dockerfile.vim - Syntax highlighting for Dockerfiles +" Maintainer: Honza Pokorny +" Last Change: 2020 Feb 11 +" License: BSD + +" https://docs.docker.com/engine/reference/builder/ + +if exists("b:current_syntax") + finish +endif + +syntax include @JSON syntax/json.vim +unlet b:current_syntax + +syntax include @Shell syntax/sh.vim +unlet b:current_syntax + +syntax case ignore +syntax match dockerfileLinePrefix /\v^\s*(ONBUILD\s+)?\ze\S/ contains=dockerfileKeyword nextgroup=dockerfileInstruction skipwhite +syntax region dockerfileFrom matchgroup=dockerfileKeyword start=/\v^\s*(FROM)\ze(\s|$)/ skip=/\v\\\_./ end=/\v((^|\s)AS(\s|$)|$)/ contains=dockerfileOption + +syntax keyword dockerfileKeyword contained ADD ARG CMD COPY ENTRYPOINT ENV EXPOSE HEALTHCHECK LABEL MAINTAINER ONBUILD RUN SHELL STOPSIGNAL USER VOLUME WORKDIR +syntax match dockerfileOption contained /\v(^|\s)\zs--\S+/ + +syntax match dockerfileInstruction contained /\v<(\S+)>(\s+--\S+)*/ contains=dockerfileKeyword,dockerfileOption skipwhite nextgroup=dockerfileValue +syntax match dockerfileInstruction contained /\v<(ADD|COPY)>(\s+--\S+)*/ contains=dockerfileKeyword,dockerfileOption skipwhite nextgroup=dockerfileJSON +syntax match dockerfileInstruction contained /\v<(HEALTHCHECK)>(\s+--\S+)*/ contains=dockerfileKeyword,dockerfileOption skipwhite nextgroup=dockerfileInstruction +syntax match dockerfileInstruction contained /\v<(CMD|ENTRYPOINT|RUN)>/ contains=dockerfileKeyword skipwhite nextgroup=dockerfileShell +syntax match dockerfileInstruction contained /\v<(CMD|ENTRYPOINT|RUN)>\ze\s+\[/ contains=dockerfileKeyword skipwhite nextgroup=dockerfileJSON +syntax match dockerfileInstruction contained /\v<(SHELL|VOLUME)>/ contains=dockerfileKeyword skipwhite nextgroup=dockerfileJSON + +syntax region dockerfileString contained start=/\v"/ skip=/\v\\./ end=/\v"/ +syntax region dockerfileJSON contained keepend start=/\v\[/ skip=/\v\\\_./ end=/\v$/ contains=@JSON +syntax region dockerfileShell contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=@Shell +syntax region dockerfileValue contained keepend start=/\v/ skip=/\v\\\_./ end=/\v$/ contains=dockerfileString + +syntax region dockerfileComment start=/\v^\s*#/ end=/\v$/ +set commentstring=#\ %s + +hi def link dockerfileString String +hi def link dockerfileKeyword Keyword +hi def link dockerfileComment Comment +hi def link dockerfileOption Special + +let b:current_syntax = "dockerfile" diff --git a/runtime/syntax/dosbatch.vim b/runtime/syntax/dosbatch.vim new file mode 100644 index 0000000..a75771b --- /dev/null +++ b/runtime/syntax/dosbatch.vim @@ -0,0 +1,152 @@ +" Vim syntax file +" Language: MS-DOS/Windows batch file (with NT command extensions) +" Maintainer: Mike Williams +" Filenames: *.bat +" Last Change: 12th February 2023 +" +" Options Flags: +" dosbatch_cmdextversion - 1 = Windows NT, 2 = Windows 2000 [default] +" dosbatch_colons_comment - any value to treat :: as comment line +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Set default highlighting to Win2k +if !exists("dosbatch_cmdextversion") + let dosbatch_cmdextversion = 2 +endif + +" DOS bat files are case insensitive but case preserving! +syn case ignore + +syn keyword dosbatchTodo contained TODO + +" Dosbat keywords +syn keyword dosbatchStatement goto call exit +syn keyword dosbatchConditional if else +syn keyword dosbatchRepeat for + +" Some operators - first lot are case sensitive! +syn case match +syn keyword dosbatchOperator EQU NEQ LSS LEQ GTR GEQ +syn case ignore +syn match dosbatchOperator "\s[-+\*/%!~]\s" +syn match dosbatchOperator "=" +syn match dosbatchOperator "[-+\*/%]=" +syn match dosbatchOperator "\s\(&\||\|^\|<<\|>>\)=\=\s" +syn match dosbatchIfOperator "if\s\+\(\(not\)\=\s\+\)\=\(exist\|defined\|errorlevel\|cmdextversion\)\="lc=2 + +" String - using "'s is a convenience rather than a requirement outside of FOR +syn match dosbatchString "\"[^"]*\"" contains=dosbatchVariable,dosBatchArgument,dosbatchSpecialChar,@dosbatchNumber,@Spell +syn match dosbatchString "\|]\|\^\@<=[)>|]\)*"lc=4 contains=dosbatchVariable,dosbatchArgument,dosbatchSpecialChar,@dosbatchNumber,@Spell +syn match dosbatchEchoOperator "\^]" +syn match dosbatchSpecialChar "\$[a-hl-npqstv_$+]" +syn match dosbatchSpecialChar "%%" + +" Environment variables +syn match dosbatchIdentifier contained "\s\h\w*\>" +syn match dosbatchVariable "%\h\w*%" +syn match dosbatchVariable "%\h\w*:\*\=[^=]*=[^%]*%" +syn match dosbatchVariable "%\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=%" contains=dosbatchInteger +syn match dosbatchVariable "!\h\w*!" +syn match dosbatchVariable "!\h\w*:\*\=[^=]*=[^!]*!" +syn match dosbatchVariable "!\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=!" contains=dosbatchInteger +syn match dosbatchSet "\s\h\w*[+-]\==\{-1}" contains=dosbatchIdentifier,dosbatchOperator + +" Args to bat files and for loops, etc +syn match dosbatchArgument "%\(\d\|\*\)" +syn match dosbatchArgument "%[a-z]\>" +if dosbatch_cmdextversion == 1 + syn match dosbatchArgument "%\~[fdpnxs]\+\(\($PATH:\)\=[a-z]\|\d\)\>" +else + syn match dosbatchArgument "%\~[fdpnxsatz]\+\(\($PATH:\)\=[a-z]\|\d\)\>" +endif + +" Line labels +syn match dosbatchLabel "^\s*:\s*\h\w*\>" +syn match dosbatchLabel "\<\(goto\|call\)\s\+:\h\w*\>"lc=4 +syn match dosbatchLabel "\"lc=4 +syn match dosbatchLabel ":\h\w*\>" + +" Comments - usual rem but also two colons as first non-space is an idiom +syn match dosbatchComment "^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchComment "^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchComment "\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +syn match dosbatchComment "\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +if exists("dosbatch_colons_comment") + syn match dosbatchComment "\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell +else + syn match dosbatchError "\s*:\s*:.*$" +endif + +" Comments in ()'s - still to handle spaces before rem +syn match dosbatchComment "(rem\([^)]\|\^\@<=)\)*"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell + +syn keyword dosbatchImplicit append assoc at attrib break cacls cd chcp chdir +syn keyword dosbatchImplicit chkdsk chkntfs cls cmd color comp compact convert copy +syn keyword dosbatchImplicit date del dir diskcomp diskcopy doskey echo endlocal +syn keyword dosbatchImplicit erase fc find findstr format ftype +syn keyword dosbatchImplicit graftabl help keyb label md mkdir mode more move +syn keyword dosbatchImplicit path pause popd print prompt pushd rd recover rem +syn keyword dosbatchImplicit ren rename replace restore rmdir set setlocal shift +syn keyword dosbatchImplicit sort start subst time title tree type ver verify +syn keyword dosbatchImplicit vol xcopy + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link dosbatchTodo Todo +hi def link dosbatchError Error + +hi def link dosbatchStatement Statement +hi def link dosbatchCommands dosbatchStatement +hi def link dosbatchLabel Label +hi def link dosbatchConditional Conditional +hi def link dosbatchRepeat Repeat + +hi def link dosbatchOperator Operator +hi def link dosbatchEchoOperator dosbatchOperator +hi def link dosbatchIfOperator dosbatchOperator + +hi def link dosbatchArgument Identifier +hi def link dosbatchIdentifier Identifier +hi def link dosbatchVariable dosbatchIdentifier + +hi def link dosbatchSpecialChar SpecialChar +hi def link dosbatchString String +hi def link dosbatchNumber Number +hi def link dosbatchInteger dosbatchNumber +hi def link dosbatchHex dosbatchNumber +hi def link dosbatchBinary dosbatchNumber +hi def link dosbatchOctal dosbatchNumber + +hi def link dosbatchComment Comment +hi def link dosbatchImplicit Function + +hi def link dosbatchSwitch Special + +hi def link dosbatchCmd PreProc + + +let b:current_syntax = "dosbatch" + +" vim: ts=8 diff --git a/runtime/syntax/dosini.vim b/runtime/syntax/dosini.vim new file mode 100644 index 0000000..66e17ec --- /dev/null +++ b/runtime/syntax/dosini.vim @@ -0,0 +1,49 @@ +" Vim syntax file +" Language: Configuration File (ini file) for MSDOS/MS Windows +" Version: 2.3 +" Original Author: Sean M. McKee +" Previous Maintainer: Nima Talebi +" Current Maintainer: Hong Xu +" Homepage: http://www.vim.org/scripts/script.php?script_id=3747 +" Repository: https://github.com/xuhdev/syntax-dosini.vim +" Last Change: 2023 Aug 20 + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" using of line-continuation requires cpo&vim +let s:cpo_save = &cpo +set cpo&vim + +" shut case off +syn case ignore + +syn match dosiniLabel "^.\{-}\ze\s*=" nextgroup=dosiniNumber,dosiniValue +syn match dosiniValue "=\zs.*" +syn match dosiniNumber "=\zs\s*\d\+\s*$" +syn match dosiniNumber "=\zs\s*\d*\.\d\+\s*$" +syn match dosiniNumber "=\zs\s*\d\+e[+-]\=\d\+\s*$" +syn region dosiniHeader start="^\s*\[" end="\]" +syn match dosiniComment "^[#;].*$" +syn region dosiniSection start="\s*\[.*\]" end="\ze\s*\[.*\]" fold + \ contains=dosiniLabel,dosiniValue,dosiniNumber,dosiniHeader,dosiniComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link dosiniNumber Number +hi def link dosiniHeader Special +hi def link dosiniComment Comment +hi def link dosiniLabel Type +hi def link dosiniValue String + + +let b:current_syntax = "dosini" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: sts=2 sw=2 et diff --git a/runtime/syntax/dot.vim b/runtime/syntax/dot.vim new file mode 100644 index 0000000..68a0f57 --- /dev/null +++ b/runtime/syntax/dot.vim @@ -0,0 +1,121 @@ +" Language: Dot +" Filenames: *.dot +" Maintainer: Markus Mottl +" URL: http://www.ocaml.info/vim/syntax/dot.vim +" Last Change: 2021 Mar 24 - better attr + escape string matching, new keywords (Farbod Salamat-Zadeh) +" 2011 May 17 - improved identifier matching + two new keywords +" 2001 May 04 - initial version + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +" Errors +syn match dotParErr ")" +syn match dotBrackErr "]" +syn match dotBraceErr "}" + +" Enclosing delimiters +syn region dotEncl transparent matchgroup=dotParEncl start="(" matchgroup=dotParEncl end=")" contains=ALLBUT,dotParErr +syn region dotEncl transparent matchgroup=dotBrackEncl start="\[" matchgroup=dotBrackEncl end="\]" contains=ALLBUT,dotBrackErr +syn region dotEncl transparent matchgroup=dotBraceEncl start="{" matchgroup=dotBraceEncl end="}" contains=ALLBUT,dotBraceErr + +" Comments +syn region dotComment start="//" end="$" contains=dotComment,dotTodo +syn region dotComment start="/\*" end="\*/" contains=dotComment,dotTodo +syn keyword dotTodo contained TODO FIXME XXX + +" Strings +syn region dotString start=+"+ skip=+\\\\\|\\"+ end=+"+ + +" Escape strings +syn match dotEscString /\v\\(N|G|E|T|H|L)/ containedin=dotString +syn match dotEscString /\v\\(n|l|r)/ containedin=dotString + +" General keywords +syn keyword dotKeyword graph digraph subgraph node edge strict + +" Node, edge and graph attributes +syn keyword dotType _background area arrowhead arrowsize arrowtail bb bgcolor + \ center charset class clusterrank color colorscheme comment compound + \ concentrate constraint Damping decorate defaultdist dim dimen dir + \ diredgeconstraints distortion dpi edgehref edgetarget edgetooltip + \ edgeURL epsilon esep fillcolor fixedsize fontcolor fontname fontnames + \ fontpath fontsize forcelabels gradientangle group head_lp headclip + \ headhref headlabel headport headtarget headtooltip headURL height href + \ id image imagepath imagepos imagescale inputscale K label label_scheme + \ labelangle labeldistance labelfloat labelfontcolor labelfontname + \ labelfontsize labelhref labeljust labelloc labeltarget labeltooltip + \ labelURL landscape layer layerlistsep layers layerselect layersep + \ layout len levels levelsgap lhead lheight lp ltail lwidth margin + \ maxiter mclimit mindist minlen mode model mosek newrank nodesep + \ nojustify normalize notranslate nslimit nslimit1 ordering orientation + \ outputorder overlap overlap_scaling overlap_shrink pack packmode pad + \ page pagedir pencolor penwidth peripheries pin pos quadtree quantum + \ rank rankdir ranksep ratio rects regular remincross repulsiveforce + \ resolution root rotate rotation samehead sametail samplepoints scale + \ searchsize sep shape shapefile showboxes sides size skew smoothing + \ sortv splines start style stylesheet tail_lp tailclip tailhref + \ taillabel tailport tailtarget tailtooltip tailURL target tooltip + \ truecolor URL vertices viewport voro_margin weight width xdotversion + \ xlabel xlp z + +" Special chars +syn match dotKeyChar "=" +syn match dotKeyChar ";" +syn match dotKeyChar "->" +syn match dotKeyChar "--" + +" Identifier +syn match dotIdentifier /\<\w\+\(:\w\+\)\?\>/ + +" Synchronization +syn sync minlines=50 +syn sync maxlines=500 + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_dot_syntax_inits") + if version < 508 + let did_dot_syntax_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink dotParErr Error + HiLink dotBraceErr Error + HiLink dotBrackErr Error + + HiLink dotComment Comment + HiLink dotTodo Todo + + HiLink dotParEncl Keyword + HiLink dotBrackEncl Keyword + HiLink dotBraceEncl Keyword + + HiLink dotKeyword Keyword + HiLink dotType Type + HiLink dotKeyChar Keyword + + HiLink dotString String + HiLink dotEscString Keyword + HiLink dotIdentifier Identifier + + delcommand HiLink +endif + +let b:current_syntax = "dot" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: ts=8 diff --git a/runtime/syntax/doxygen.vim b/runtime/syntax/doxygen.vim new file mode 100644 index 0000000..357c430 --- /dev/null +++ b/runtime/syntax/doxygen.vim @@ -0,0 +1,633 @@ +" DoxyGen syntax highlighting extension for c/c++/idl/java +" Language: doxygen on top of c, cpp, idl, java, php +" Maintainer: Michael Geddes +" Author: Michael Geddes +" Last Change: December 2020 +" Version: 1.30 +" +" Copyright 2004-2020 Michael Geddes +" Please feel free to use, modify & distribute all or part of this script, +" providing this copyright message remains. +" I would appreciate being acknowledged in any derived scripts, and would +" appreciate and welcome any updates, modifications or suggestions. + +" NOTE: Comments welcome! +" +" There are two variables that control the syntax highlighting produced by this +" script: +" doxygen_enhanced_colour - Use the (non-standard) original colours designed +" for this highlighting. +" doxygen_my_rendering - Disable the HTML bold/italic/underline rendering. +" +" A brief description without '.' or '!' will cause the end comment +" character to be marked as an error. You can define the colour of this using +" the highlight doxygenErrorComment. +" A \link without an \endlink will cause an error highlight on the end-comment. +" This is defined by doxygenLinkError +" +" The variable g:doxygen_codeword_font can be set to the guifont for marking \c +" words - a 'typewriter' like font normally. Spaces must be escaped. It can +" also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord +" can be used to override it. +" +" By default, highlighting is done assuming you have the JAVADOC_AUTOBRIEF +" setting turned on in your Doxygen configuration. If you don't, you +" can set the variable g:doxygen_javadoc_autobrief to 0 to have the +" highlighting more accurately reflect the way Doxygen will interpret your +" comments. +" +" Support for cpp, c, idl, doxygen and php. +" +" Special thanks to: Wu Yongwei, Toby Allsopp +" + +if exists('b:suppress_doxygen') + unlet b:suppress_doxygen + finish +endif + +if exists('b:current_syntax') && b:current_syntax =~ 'doxygen' && !exists('doxygen_debug_script') + finish +endif + +let s:cpo_save = &cpo +try + set cpo&vim + + " Start of Doxygen syntax highlighting: + " + + " C/C++ Style line comments + syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ containedin=phpRegion + syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion + syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ + syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion + + syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO,doxygenLeadingWhite keepend fold containedin=phpRegion + syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenLeadingLWhite,doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenCommentWhite2 fold containedin=phpRegion + syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion + syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion + syn region doxygenComment start=+/\*@\ze[{}]+ end=+\*/+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion + + " Single line brief followed by multiline comment. + syn match doxygenCommentWhite2 +\_s*\ze/\*\(\*/\)\@![*!]+ contained nextgroup=doxygenComment2 + syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold + " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. + syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl + + " Skip empty lines at the start for when comments start on the 2nd/3rd line. + syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl + syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl + syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl + + + " Match the Starting pattern (effectively creating the start of a BNF) + if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief + syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial + syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeaingLWhite,doxygenPrevL,doxygenBriefL,doxygenSpecial + " Match the first sentence as a brief comment + if ! exists('g:doxygen_end_punctuation') + let g:doxygen_end_punctuation='[.]' + endif + + exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueCommentWhite,doxygenLeadingWhite,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody' + + syn match doxygenBriefEndComment +\*/+ contained + + exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend' + syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite + else + syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeadingLWhite,doxygenPrevL,doxygenLine,doxygenSpecial + syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial + syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend + syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite + + endif + + " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched. + syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl + " Match an [@\]brief so that it moves to body-mode. + " + " + " syn match doxygenBriefLine contained + syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite + " syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained + syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained + + + +" end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ +"syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contains=doxygenContinueCommentWhite,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipwhite keepend matchgroup=xxx +syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ skipwhite keepend matchgroup=xxx contains=@Spell +" syn region doxygenBriefLine matchgroup=xxxy contained start=+\<\k.\++ skip=+^\s*\k+ end=+end+ skipwhite keepend +"doxygenFindBriefSpecial, + "" syn region doxygenSpecialMultilineDesc start=+.\++ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend + + + " Match a '<' for applying a comment to the previous element. + syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkipWhite skipwhite + +if exists("c_comment_strings") + " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s + " then turn the comments back into normal C comments. + syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError + syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError +else + syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError + syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError +endif + + " Special commands at the start of the area: starting with '@' or '\' + syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend + syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite + + "syn region doxygenBodyBit contained start=+$+ + + " The main body of a doxygen comment. + syn region doxygenBody contained start=+\(/\*[*!]\)\@|]\@|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,]\w\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+' + exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueCommentWhite,doxygen'.a:name.'Word' + exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend' + endfun + call s:DxyCreateSmallSpecial('p', 'Code') + call s:DxyCreateSmallSpecial('c', 'Code') + call s:DxyCreateSmallSpecial('b', 'Bold') + call s:DxyCreateSmallSpecial('e', 'Emphasised') + call s:DxyCreateSmallSpecial('em', 'Emphasised') + call s:DxyCreateSmallSpecial('a', 'Argument') + call s:DxyCreateSmallSpecial('ref', 'Ref') + delfun s:DxyCreateSmallSpecial + + syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\\|\\|\\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word + + " Now for special characters + syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\\|\\>\|\#]\)\@!+ nextgroup=doxygenParam,doxygenTParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion + " doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word + " + syn match doxygenGroupDefine contained +@\@<=[{}]+ + syn match doxygenGroupDefineSpecial contained +@\ze[{}]+ + + syn match doxygenErrorSpecial contained +\s+ + + " Match parameters and retvals (highlighting the first word as special). + syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite + syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite + syn keyword doxygenTParam contained tparam nextgroup=doxygenParamName skipwhite + syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite + syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenReturnValue skipwhite + syn match doxygenReturnValue contained +\S\++ nextgroup=doxygenSpecialMultilineDesc skipwhite + + " Match one line identifiers. + syn keyword doxygenOther contained addindex anchor + \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer + \ example htmlonly image include includelineno ingroup latexonly line + \ overload relates related relatesalso relatedalso sa skip skipline + \ until verbinclude version addtogroup htmlinclude copydoc dotfile + \ xmlonly endxmlonly + \ nextgroup=doxygenSpecialOnelineDesc copybrief copydetails copyright dir extends + \ implements + + syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\+ matchgroup=doxygenOther end=+[\\@]\@<=\+ contains=doxygenCodeRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell + syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+ + + syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\+ matchgroup=doxygenOther end=+[\\@]\@<=\+ contains=doxygenVerbatimRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell + syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+ + + if exists('b:current_syntax') + let b:doxygen_syntax_save=b:current_syntax + unlet b:current_syntax + endif + + syn include @Dotx syntax/dot.vim + + if exists('b:doxygen_syntax_save') + let b:current_syntax=b:doxygen_syntax_save + unlet b:doxygen_syntax_save + else + unlet b:current_syntax + endif + + syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\+ matchgroup=doxygenOther end=+[\\@]\@<=\+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueCommentWhite,@NoSpell,@Dotx + syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+ + + " Match single line identifiers. + syn keyword doxygenBOther contained class enum file fn mainpage interface + \ namespace struct typedef union var def name + \ nextgroup=doxygenSpecialTypeOnelineDesc + + syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine + syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc + " Match the start of other multiline comments. + syn keyword doxygenOther contained arg author authors date deprecated li return returns result see invariant note post pre remarks since test internal nextgroup=doxygenSpecialMultilineDesc + syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc + syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc + syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc + + " Handle \link, \endlink, highlighting the link-to and the link text bits separately. + syn region doxygenOtherLink matchgroup=doxygenOther start=+\+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueCommentWhite,doxygenLinkError,doxygenEndlinkSpecial + syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+ + + syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment + syn match doxygenLinkRest +[^*@\\]\|\*/\@!\|[@\\]\(endlink\>\)\@!+ contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment + syn match doxygenContinueLinkComment contained +^\s*\*\=[^/]+me=e-1 nextgroup=doxygenLinkRest + syn match doxygenLinkError "\*/" contained + " #Link highlighting. + syn match doxygenHashLink /\(\h\w*\)\?#\(\.\w\@=\|\w\+\|::\|()\)\+/ contained contains=doxygenHashSpecial + syn match doxygenHashSpecial /#/ contained + syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained + + " Handle \page. This does not use doxygenBrief. + syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage + syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent + syn region doxygenPageDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody + syn match doxygenPageIdent "\<\w\+\>" contained nextgroup=doxygenPageDesc + + " Handle section + syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent + syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueCommentWhite + syn match doxygenSpecialIdent "\<\w\+\>" contained nextgroup=doxygenSpecialSectionDesc + + " Does the one-line description for the one-line type identifiers. + syn region doxygenSpecialTypeOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend + syn region doxygenSpecialOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend + + " Handle the multiline description for the multiline type identifiers. + " Continue until an 'empty' line (can contain a '*' continuation) or until the + " next whole-line @ command \ command. + syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend + +" syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite + syn match doxygenSpecialContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenSpecialContinueComment + syn match doxygenSpecialContinueComment contained +\*/\@!+ + + + " Handle special cases 'bold' and 'group' + syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading + syn keyword doxygenBriefWord contained brief nextgroup=doxygenBriefLine skipwhite + syn match doxygenSpecialHeading +.\++ contained skipwhite + syn keyword doxygenGroup contained group nextgroup=doxygenGroupName skipwhite + syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite + + " Handle special symbol identifiers @$, @\, @$ etc + syn match doxygenSymbol contained +[$\\&<>#n]+ + + " Simplistic handling of formula regions + syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator + syn match doxygenFormulaSpecial contained +[@\\]\(f[^$]\|[^f]\)+me=s+1 nextgroup=doxygenFormulaKeyword,doxygenFormulaEscaped + syn match doxygenFormulaEscaped contained "." + syn match doxygenFormulaKeyword contained "[a-z]\+" + syn match doxygenFormulaOperator contained +[_^]+ + + syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\[+ end=+[@\\]f]+ contains=doxygenFormulaSpecial,doxygenFormulaOperator,doxygenAtom + syn region doxygenAtom contained transparent matchgroup=doxygenFormulaOperator start=+{+ end=+}+ contains=doxygenAtom,doxygenFormulaSpecial,doxygenFormulaOperator + + " Add TODO highlighting. + syn keyword doxygenTODO contained TODO README XXX FIXME + + " Supported HTML subset. Not perfect, but okay. + syn case ignore + syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueCommentWhite,doxygenHtmlVar + syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite + syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite + syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite + syn match doxygenHtmlExpr contained +"\(\\.\|[^"]\)*"\|'\(\\.\|[^']\)*'+ nextgroup=doxygenHtmlVar skipwhite + syn case match + syn match doxygenHtmlSpecial contained "&\(copy\|quot\|[AEIOUYaeiouy]uml\|[AEIOUYaeiouy]acute\|[AEIOUaeiouy]grave\|[AEIOUaeiouy]circ\|[ANOano]tilde\|szlig\|[Aa]ring\|nbsp\|gt\|lt\|amp\);" + + syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink + + syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueCommentWhite + " Html Support + syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=++me=e-4 contains=@doxygenHtmlTop + hi link doxygenHtmlLink Underlined + + syn region doxygenHtmlBold contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell + syn region doxygenHtmlBold contained start="\c" end="\c"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell + syn region doxygenHtmlBoldUnderline contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell + syn region doxygenHtmlBoldItalic contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell + syn region doxygenHtmlBoldItalic contained start="\c" end="\c"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell + syn region doxygenHtmlBoldUnderlineItalic contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlBoldUnderlineItalic contained start="\c" end="\c"me=e-5 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlBoldItalicUnderline contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell + + syn region doxygenHtmlUnderline contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell + syn region doxygenHtmlUnderlineBold contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell + syn region doxygenHtmlUnderlineBold contained start="\c" end="\c"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell + syn region doxygenHtmlUnderlineItalic contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell + syn region doxygenHtmlUnderlineItalic contained start="\c" end="\c"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell + syn region doxygenHtmlUnderlineItalicBold contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlUnderlineItalicBold contained start="\c" end="\c"me=e-9 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlUnderlineBoldItalic contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlUnderlineBoldItalic contained start="\c" end="\c"me=e-5 contains=@doxygenHtmlTop,@Spell + + syn region doxygenHtmlItalic contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell + syn region doxygenHtmlItalic contained start="\c" end="\c"me=e-5 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlItalicBold contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell + syn region doxygenHtmlItalicBold contained start="\c" end="\c"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell + syn region doxygenHtmlItalicBoldUnderline contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlItalicUnderline contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell + syn region doxygenHtmlItalicUnderlineBold contained start="\c" end="\c"me=e-4 contains=@doxygenHtmlTop,@Spell + syn region doxygenHtmlItalicUnderlineBold contained start="\c" end="\c"me=e-9 contains=@doxygenHtmlTop,@Spell + + syn region doxygenHtmlCode contained start="\c" end="\c"me=e-7 contains=@doxygenHtmlTop,@NoSpell + + " Prevent the doxygen contained matches from leaking into the c/rc groups. + syn cluster cParenGroup add=doxygen.* + syn cluster cParenGroup remove=doxygenComment,doxygenCommentL + syn cluster cPreProcGroup add=doxygen.* + syn cluster cMultiGroup add=doxygen.* + syn cluster rcParenGroup add=doxygen.* + syn cluster rcParenGroup remove=doxygenComment,doxygenCommentL + syn cluster rcGroup add=doxygen.* + + let s:my_syncolor=0 + if !exists(':SynColor') + command -nargs=+ SynColor hi def + let s:my_syncolor=1 + endif + + let s:my_synlink=0 + if !exists(':SynLink') + command -nargs=+ SynLink hi def link + let s:my_synlink=1 + endif + + try + "let did_doxygen_syntax_inits = &background + hi doxygen_Dummy guifg=black + + fun! s:Doxygen_Hilights_Base() + SynLink doxygenHtmlSpecial Special + SynLink doxygenHtmlVar Type + SynLink doxygenHtmlExpr String + + SynLink doxygenSmallSpecial SpecialChar + + SynLink doxygenSpecialCodeWord doxygenSmallSpecial + SynLink doxygenSpecialBoldWord doxygenSmallSpecial + SynLink doxygenSpecialEmphasisedWord doxygenSmallSpecial + SynLink doxygenSpecialArgumentWord doxygenSmallSpecial + + " SynColor doxygenFormulaKeyword cterm=bold ctermfg=DarkMagenta guifg=DarkMagenta gui=bold + SynLink doxygenFormulaKeyword Keyword + "SynColor doxygenFormulaEscaped ctermfg=DarkMagenta guifg=DarkMagenta gui=bold + SynLink doxygenFormulaEscaped Special + SynLink doxygenFormulaOperator Operator + SynLink doxygenFormula Statement + SynLink doxygenSymbol Constant + SynLink doxygenSpecial Special + SynLink doxygenFormulaSpecial Special + "SynColor doxygenFormulaSpecial ctermfg=DarkBlue guifg=DarkBlue + endfun + call s:Doxygen_Hilights_Base() + + fun! s:Doxygen_Hilights() + " Pick a sensible default for 'codeword'. + let font='' + if exists('g:doxygen_codeword_font') + if g:doxygen_codeword_font !~ '\<\k\+=' + let font='font='.g:doxygen_codeword_font + else + let font=g:doxygen_codeword_font + endif + else + " Try and pick a font (only some platforms have been tested). + if has('gui_running') + if has('gui_gtk2') + if &guifont == '' + let font="font='FreeSerif 12'" + else + let font="font='".substitute(&guifont, '^.\{-}\(\d\+\)$', 'FreeSerif \1','')."'" + endif + + elseif has('gui_win32') || has('gui_win16') || has('gui_win95') + + if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera + let font_base='Bitstream_Vera_Sans_Mono' + else + let font_base='Lucida_Console' + endif + if &guifont == '' + let font='font='.font_base.':h10' + else + let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*') + endif + elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}' + if &guifont == '' + let font='font=-b&h-lucidatypewriter-medium-r-normal-*-*-140-*-*-m-*-iso8859-1' + else + " let font='font='.substitute(&guifont,'^\(-[^-]\+\)\{7}-\([0-9]\+\).*', '-b\&h-lucidatypewriter-medium-r-normal-*-*-\2-*-*-m-*-iso8859-1','') + " The above line works, but it is hard to expect the combination of + " the two fonts will look good. + endif + elseif has('gui_kde') + " let font='font=Bitstream\ Vera\ Sans\ Mono/12/-1/5/50/0/0/0/0/0' + endif + endif + endif + if font=='' | let font='gui=bold' | endif + exe 'SynColor doxygenCodeWord term=bold cterm=bold '.font + if (exists('g:doxygen_enhanced_color') && g:doxygen_enhanced_color) || (exists('g:doxygen_enhanced_colour') && g:doxygen_enhanced_colour) + if &background=='light' + SynColor doxygenComment ctermfg=DarkRed guifg=DarkRed + SynColor doxygenBrief cterm=bold ctermfg=Cyan guifg=DarkBlue gui=bold + SynColor doxygenBody ctermfg=DarkBlue guifg=DarkBlue + SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=DarkRed guifg=firebrick3 gui=bold + SynColor doxygenBOther cterm=bold ctermfg=DarkMagenta guifg=#aa50aa gui=bold + SynColor doxygenParam ctermfg=DarkGray guifg=#aa50aa + SynColor doxygenParamName cterm=italic ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=italic,bold + SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=DarkCyan guifg=DodgerBlue3 gui=bold + SynColor doxygenSpecialHeading cterm=bold ctermfg=DarkBlue guifg=DeepSkyBlue4 gui=bold + SynColor doxygenPrev ctermfg=DarkGreen guifg=DarkGreen + else + SynColor doxygenComment ctermfg=LightRed guifg=LightRed + SynColor doxygenBrief cterm=bold ctermfg=Cyan ctermbg=darkgrey guifg=LightBlue gui=Bold,Italic + SynColor doxygenBody ctermfg=Cyan guifg=LightBlue + SynColor doxygenSpecialTypeOnelineDesc cterm=bold ctermfg=Red guifg=firebrick3 gui=bold + SynColor doxygenBOther cterm=bold ctermfg=Magenta guifg=#aa50aa gui=bold + SynColor doxygenParam ctermfg=LightGray guifg=LightGray + SynColor doxygenParamName cterm=italic ctermfg=LightBlue guifg=LightBlue gui=italic,bold + SynColor doxygenSpecialOnelineDesc cterm=bold ctermfg=LightCyan guifg=LightCyan gui=bold + SynColor doxygenSpecialHeading cterm=bold ctermfg=LightBlue guifg=LightBlue gui=bold + SynColor doxygenPrev ctermfg=LightGreen guifg=LightGreen + endif + SynLink doxygenValue doxygenParamName + else + SynLink doxygenComment SpecialComment + SynLink doxygenBrief Statement + SynLink doxygenBody Comment + SynLink doxygenSpecialTypeOnelineDesc Statement + SynLink doxygenBOther Constant + SynLink doxygenParam SpecialComment + SynLink doxygenParamName Underlined + SynLink doxygenSpecialOnelineDesc Statement + SynLink doxygenSpecialHeading Statement + SynLink doxygenPrev SpecialComment + SynLink doxygenValue Constant + endif + SynLink doxygenTParam doxygenParam + + endfun + + call s:Doxygen_Hilights() + + syn match doxygenLeadingWhite +\(^\s*\*\)\@<=\s*+ contained + + " This is still a proposal, but it is probably fine. However, it doesn't + " work when 'syntax' is set in a modeline, catch the security error. + try + aug doxygengroup + au! + au Syntax UserColor_reset nested call s:Doxygen_Hilights_Base() + au Syntax UserColor_{on,reset,enable} nested call s:Doxygen_Hilights() + aug END + catch /E12:/ + endtry + + + SynLink doxygenBody Comment + SynLink doxygenLine doxygenBody + SynLink doxygenTODO Todo + SynLink doxygenOtherTODO Todo + SynLink doxygenOtherWARN Todo + SynLink doxygenOtherBUG Todo + SynLink doxygenLeadingLWhite doxygenBody + + SynLink doxygenErrorSpecial Error + SynLink doxygenErrorEnd Error + SynLink doxygenErrorComment Error + SynLink doxygenLinkError Error + SynLink doxygenBriefSpecial doxygenSpecial + SynLink doxygenHashSpecial doxygenSpecial + SynLink doxygenGroupDefineSpecial doxygenSpecial + SynLink doxygenEndlinkSpecial doxygenSpecial + SynLink doxygenCodeRegionSpecial doxygenSpecial + SynLink doxygenVerbatimRegionSpecial doxygenSpecial + SynLink doxygenDotRegionSpecial doxygenSpecial + SynLink doxygenGroupDefine doxygenParam + + SynLink doxygenSpecialMultilineDesc doxygenSpecialOnelineDesc + SynLink doxygenFormulaEnds doxygenSpecial + SynLink doxygenBold doxygenParam + SynLink doxygenBriefWord doxygenParam + SynLink doxygenRetval doxygenParam + SynLink doxygenOther doxygenParam + SynLink doxygenStart doxygenComment + SynLink doxygenStart2 doxygenStart + SynLink doxygenComment2 doxygenComment + SynLink doxygenCommentL doxygenComment + SynLink doxygenContinueComment doxygenComment + SynLink doxygenSpecialContinueComment doxygenComment + SynLink doxygenSkipComment doxygenComment + SynLink doxygenEndComment doxygenComment + SynLink doxygenStartL doxygenComment + SynLink doxygenBriefEndComment doxygenComment + SynLink doxygenPrevL doxygenPrev + SynLink doxygenBriefL doxygenBrief + SynLink doxygenBriefLine doxygenBrief + SynLink doxygenHeaderLine doxygenSpecialHeading + SynLink doxygenCommentWhite Normal + SynLink doxygenCommentWhite2 doxygenCommentWhite + SynLink doxygenContinueCommentWhite doxygenCommentWhite + SynLink doxygenStartSkipWhite doxygenContinueCommentWhite + SynLink doxygenLinkWord doxygenParamName + SynLink doxygenLinkRest doxygenSpecialMultilineDesc + SynLink doxygenHyperLink doxygenLinkWord + SynLink doxygenHashLink doxygenLinkWord + SynLink doxygenReturnValue doxygenValue + + SynLink doxygenPage doxygenSpecial + SynLink doxygenPagePage doxygenBOther + SynLink doxygenPageIdent doxygenParamName + SynLink doxygenPageDesc doxygenSpecialTypeOnelineDesc + + SynLink doxygenSpecialIdent doxygenPageIdent + SynLink doxygenSpecialSectionDesc doxygenSpecialMultilineDesc + + SynLink doxygenSpecialRefWord doxygenOther + SynLink doxygenRefWord doxygenPageIdent + SynLink doxygenContinueLinkComment doxygenComment + + SynLink doxygenHtmlCh Function + SynLink doxygenHtmlCmd Statement + SynLink doxygenHtmlBoldItalicUnderline doxygenHtmlBoldUnderlineItalic + SynLink doxygenHtmlUnderlineBold doxygenHtmlBoldUnderline + SynLink doxygenHtmlUnderlineItalicBold doxygenHtmlBoldUnderlineItalic + SynLink doxygenHtmlUnderlineBoldItalic doxygenHtmlBoldUnderlineItalic + SynLink doxygenHtmlItalicUnderline doxygenHtmlUnderlineItalic + SynLink doxygenHtmlItalicBold doxygenHtmlBoldItalic + SynLink doxygenHtmlItalicBoldUnderline doxygenHtmlBoldUnderlineItalic + SynLink doxygenHtmlItalicUnderlineBold doxygenHtmlBoldUnderlineItalic + SynLink doxygenHtmlLink Underlined + + SynLink doxygenParamDirection StorageClass + + + if !exists("doxygen_my_rendering") && !exists("html_my_rendering") + SynColor doxygenBoldWord term=bold cterm=bold gui=bold + SynColor doxygenEmphasisedWord term=italic cterm=italic gui=italic + SynLink doxygenArgumentWord doxygenEmphasisedWord + SynLink doxygenHtmlCode doxygenCodeWord + SynLink doxygenHtmlBold doxygenBoldWord + SynColor doxygenHtmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline + SynColor doxygenHtmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic + SynColor doxygenHtmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline + SynColor doxygenHtmlUnderline term=underline cterm=underline gui=underline + SynColor doxygenHtmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline + SynColor doxygenHtmlItalic term=italic cterm=italic gui=italic + endif + + finally + if s:my_synlink | delcommand SynLink | endif + if s:my_syncolor | delcommand SynColor | endif + endtry + + if &syntax=='idl' + syn cluster idlCommentable add=doxygenComment,doxygenCommentL + endif + + "syn sync clear + "syn sync maxlines=500 + "syn sync minlines=50 + syn sync match doxygenComment groupthere cComment "/\@ +" Last change: Wed Apr 25 18:50:01 PDT 2001 +" Extensions: drac.*,*.drac,*.drc,*.lvs,*.lpe +" Comment: Dracula is an industry-standard language created by CADENCE (a +" company specializing in Electronics Design Automation), for +" the purposes of Design Rule Checking, Layout vs. Schematic +" verification, and Layout Parameter Extraction. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Ignore case +syn case ignore + +" A bunch of useful Dracula keywords + +"syn match draculaIdentifier + +syn keyword draculaStatement indisk primary outdisk printfile system +syn keyword draculaStatement mode scale resolution listerror keepdata +syn keyword draculaStatement datatype by lt gt output label range touch +syn keyword draculaStatement inside outside within overlap outlib +syn keyword draculaStatement schematic model unit parset +syn match draculaStatement "flag-\(non45\|acuteangle\|offgrid\)" +syn match draculaStatement "text-pri-only" +syn match draculaStatement "[=&]" +syn match draculaStatement "\[[^,]*\]" +syn match draculastatement "^ *\(sel\|width\|ext\|enc\|area\|shrink\|grow\|length\)" +syn match draculastatement "^ *\(or\|not\|and\|select\|size\|connect\|sconnect\|int\)" +syn match draculastatement "^ *\(softchk\|stamp\|element\|parasitic cap\|attribute cap\)" +syn match draculastatement "^ *\(flagnon45\|lextract\|equation\|lpeselect\|lpechk\|attach\)" +syn match draculaStatement "\(temporary\|connect\)-layer" +syn match draculaStatement "program-dir" +syn match draculaStatement "status-command" +syn match draculaStatement "batch-queue" +syn match draculaStatement "cnames-csen" +syn match draculaStatement "filter-lay-opt" +syn match draculaStatement "filter-sch-opt" +syn match draculaStatement "power-node" +syn match draculaStatement "ground-node" +syn match draculaStatement "subckt-name" + +syn match draculaType "\*description" +syn match draculaType "\*input-layer" +syn match draculaType "\*operation" +syn match draculaType "\*end" + +syn match draculaComment ";.*" + +syn match draculaPreProc "^#.*" + +"Modify the following as needed. The trade-off is performance versus +"functionality. +syn sync lines=50 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link draculaIdentifier Identifier +hi def link draculaStatement Statement +hi def link draculaType Type +hi def link draculaComment Comment +hi def link draculaPreProc PreProc + + +let b:current_syntax = "dracula" + +" vim: ts=8 diff --git a/runtime/syntax/dsl.vim b/runtime/syntax/dsl.vim new file mode 100644 index 0000000..95c7843 --- /dev/null +++ b/runtime/syntax/dsl.vim @@ -0,0 +1,38 @@ +" Vim syntax file +" Language: DSSSL +" Maintainer: Johannes Zellner +" Last Change: Tue, 27 Apr 2004 14:54:59 CEST +" Filenames: *.dsl +" $Id: dsl.vim,v 1.1 2004/06/13 19:13:31 vimboss Exp $ + +if exists("b:current_syntax") | finish | endif + +runtime syntax/xml.vim +syn cluster xmlRegionHook add=dslRegion,dslComment +syn cluster xmlCommentHook add=dslCond + +" EXAMPLE: +" +" (define html-manifest #f) +" ]]> +" +" NOTE: 'contains' the same as xmlRegion, except xmlTag / xmlEndTag +syn region dslCond matchgroup=dslCondDelim start="\[\_[^[]\+\[" end="]]" contains=xmlCdata,@xmlRegionCluster,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook + +" NOTE, that dslRegion and dslComment do both NOT have a 'contained' +" argument, so this will also work in plain dsssl documents. + +syn region dslRegion matchgroup=Delimiter start=+(+ end=+)+ contains=dslRegion,dslString,dslComment +syn match dslString +"\_[^"]*"+ contained +syn match dslComment +;.*$+ contains=dslTodo +syn keyword dslTodo contained TODO FIXME XXX display + +" The default highlighting. +hi def link dslTodo Todo +hi def link dslString String +hi def link dslComment Comment +" compare the following with xmlCdataStart / xmlCdataEnd +hi def link dslCondDelim Type + +let b:current_syntax = "dsl" diff --git a/runtime/syntax/dtd.vim b/runtime/syntax/dtd.vim new file mode 100644 index 0000000..58f07c9 --- /dev/null +++ b/runtime/syntax/dtd.vim @@ -0,0 +1,161 @@ +" Vim syntax file +" Language: DTD (Document Type Definition for XML) +" Maintainer: Christian Brabandt +" Repository: https://github.com/chrisbra/vim-xml-ftplugin +" Previous Maintainer: Johannes Zellner +" Author: Daniel Amyot +" Last Changed: Sept 24, 2019 +" Filenames: *.dtd +" +" REFERENCES: +" http://www.w3.org/TR/html40/ +" http://www.w3.org/TR/NOTE-html-970421 +" +" TODO: +" - improve synchronizing. + +if exists("b:current_syntax") + finish +endif +let s:dtd_cpo_save = &cpo +set cpo&vim + +if !exists("dtd_ignore_case") + " I prefer having the case takes into consideration. + syn case match +else + syn case ignore +endif + + +" the following line makes the opening highlighted using 'dtdFunction'. +" +" PROVIDES: @dtdTagHook +" +syn region dtdTag matchgroup=dtdFunction + \ start=++ matchgroup=NONE + \ contains=dtdTag,dtdTagName,dtdError,dtdComment,dtdString,dtdAttrType,dtdAttrDef,dtdEnum,dtdParamEntityInst,dtdParamEntityDecl,dtdCard,@dtdTagHook + +if !exists("dtd_no_tag_errors") + " mark everything as an error which starts with a + +endif + +" if this is a html like comment highlight also +" the opening as Comment. +syn region dtdComment start=++ contains=dtdTodo,@Spell + + +" proper DTD comment +syn region dtdComment contained start=+--+ end=+--+ contains=dtdTodo,@Spell + + +" Start tags (keywords). This is contained in dtdFunction. +" Note that everything not contained here will be marked +" as error. +syn match dtdTagName contained +" + \ matchgroup=NONE contains=dtdParamEntityPunct + syn match dtdParamEntityPunct contained "\." + + " declarations + " syn region dtdParamEntityDecl oneline matchgroup=dtdParamEntityDPunct start=+" contains=dtdParamEntityDPunct + syn match dtdParamEntityDecl + (njj) +" Last change: 2001 Sep 02 + +" These are used with Claudio Fleiner's html.vim in the standard distribution. +" +" Still very hackish. The 'dtml attributes' and 'dtml methods' have been +" hacked out of the Zope Quick Reference in case someone finds something +" sensible to do with them. I certainly haven't. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" First load the HTML syntax +runtime! syntax/html.vim + +syn case match + +" This doesn't have any effect. Does it need to be moved to above/ +" if !exists("main_syntax") +" let main_syntax = 'dtml' +" endif + +" dtml attributes +syn keyword dtmlAttribute ac_inherited_permissions access_debug_info contained +syn keyword dtmlAttribute acquiredRolesAreUsedBy all_meta_types assume_children AUTH_TYPE contained +syn keyword dtmlAttribute AUTHENTICATED_USER AUTHENTICATION_PATH BASE0 batch-end-index batch-size contained +syn keyword dtmlAttribute batch-start-index bobobase_modification_time boundary branches contained +syn keyword dtmlAttribute branches_expr capitalize cb_dataItems cb_dataValid cb_isCopyable contained +syn keyword dtmlAttribute cb_isMoveable changeClassId classDefinedAndInheritedPermissions contained +syn keyword dtmlAttribute classDefinedPermissions classInheritedPermissions collapse-all column contained +syn keyword dtmlAttribute connected connectionIsValid CONTENT_LENGTH CONTENT_TYPE cook cookies contained +syn keyword dtmlAttribute COPY count- createInObjectManager da_has_single_argument dav__allprop contained +syn keyword dtmlAttribute dav__init dav__propnames dav__propstat dav__validate default contained +syn keyword dtmlAttribute delClassAttr DELETE Destination DestinationURL digits discard contained +syn keyword dtmlAttribute disposition document_src e encode enter etc expand-all expr File contained +syn keyword dtmlAttribute filtered_manage_options filtered_meta_types first- fmt footer form contained +syn keyword dtmlAttribute GATEWAY_INTERFACE get_local_roles get_local_roles_for_userid contained +syn keyword dtmlAttribute get_request_var_or_attr get_size get_size get_valid_userids getAttribute contained +syn keyword dtmlAttribute getAttributeNode getAttributes getChildNodes getClassAttr getContentType contained +syn keyword dtmlAttribute getData getDocType getDocumentElement getElementsByTagName getFirstChild contained +syn keyword dtmlAttribute getImplementation getLastChild getLength getName getNextSibling contained +syn keyword dtmlAttribute getNodeName getNodeType getNodeValue getOwnerDocument getParentNode contained +syn keyword dtmlAttribute getPreviousSibling getProperty getPropertyType getSize getSize getSize contained +syn keyword dtmlAttribute get_size getTagName getUser getUserName getUserNames getUsers contained +syn keyword dtmlAttribute has_local_roles hasChildNodes hasProperty HEAD header hexdigits HTML contained +syn keyword dtmlAttribute html_quote HTMLFile id index_html index_objects indexes contained +syn keyword dtmlAttribute inheritedAttribute items last- leave leave_another leaves letters LOCK contained +syn keyword dtmlAttribute locked_in_version lower lowercase mailfrom mailhost mailhost_list mailto contained +syn keyword dtmlAttribute manage manage_ methods manage_access manage_acquiredPermissions contained +syn keyword dtmlAttribute manage_addConferaTopic manage_addDocument manage_addDTMLDocument contained +syn keyword dtmlAttribute manage_addDTMLMethod manage_addFile manage_addFolder manage_addImage contained +syn keyword dtmlAttribute manage_addLocalRoles manage_addMailHost manage_addPermission contained +syn keyword dtmlAttribute manage_addPrincipiaFactory manage_addProduct manage_addProperty contained +syn keyword dtmlAttribute manage_addUserFolder manage_addZClass manage_addZGadflyConnection contained +syn keyword dtmlAttribute manage_addZGadflyConnectionForm manage_advanced manage_afterAdd contained +syn keyword dtmlAttribute manage_afterClone manage_beforeDelete manage_changePermissions contained +syn keyword dtmlAttribute manage_changeProperties manage_clone manage_CopyContainerFirstItem contained +syn keyword dtmlAttribute manage_copyObjects manage_cutObjects manage_defined_roles contained +syn keyword dtmlAttribute manage_delLocalRoles manage_delObjects manage_delProperties contained +syn keyword dtmlAttribute manage_distribute manage_edit manage_editedDialog manage_editProperties contained +syn keyword dtmlAttribute manage_editRoles manage_exportObject manage_FTPget manage_FTPlist contained +syn keyword dtmlAttribute manage_FTPstat manage_get_product_readme__ manage_getPermissionMapping contained +syn keyword dtmlAttribute manage_haveProxy manage_help manage_importObject manage_listLocalRoles contained +syn keyword dtmlAttribute manage_options manage_pasteObjects manage_permission contained +syn keyword dtmlAttribute manage_propertiesForm manage_proxy manage_renameObject manage_role contained +syn keyword dtmlAttribute manage_setLocalRoles manage_setPermissionMapping contained +syn keyword dtmlAttribute manage_subclassableClassNames manage_test manage_testForm contained +syn keyword dtmlAttribute manage_undo_transactions manage_upload manage_users manage_workspace contained +syn keyword dtmlAttribute management_interface mapping math max- mean- median- meta_type min- contained +syn keyword dtmlAttribute MKCOL modified_in_version MOVE multiple name navigate_filter new_version contained +syn keyword dtmlAttribute newline_to_br next next-batches next-sequence next-sequence-end-index contained +syn keyword dtmlAttribute next-sequence-size next-sequence-start-index no manage_access None contained +syn keyword dtmlAttribute nonempty normalize nowrap null Object Manager objectIds objectItems contained +syn keyword dtmlAttribute objectMap objectValues octdigits only optional OPTIONS orphan overlap contained +syn keyword dtmlAttribute PARENTS PATH_INFO PATH_TRANSLATED permission_settings contained +syn keyword dtmlAttribute permissionMappingPossibleValues permissionsOfRole pi port contained +syn keyword dtmlAttribute possible_permissions previous previous-batches previous-sequence contained +syn keyword dtmlAttribute previous-sequence-end-index previous-sequence-size contained +syn keyword dtmlAttribute previous-sequence-start-index PrincipiaFind PrincipiaSearchSource contained +syn keyword dtmlAttribute propdict propertyIds propertyItems propertyLabel propertyMap propertyMap contained +syn keyword dtmlAttribute propertyValues PROPFIND PROPPATCH PUT query_day query_month QUERY_STRING contained +syn keyword dtmlAttribute query_year quoted_input quoted_report raise_standardErrorMessage random contained +syn keyword dtmlAttribute read read_raw REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_USER REQUEST contained +syn keyword dtmlAttribute REQUESTED_METHOD required RESPONSE reverse rolesOfPermission save schema contained +syn keyword dtmlAttribute SCRIPT_NAME sequence-end sequence-even sequence-index contained +syn keyword dtmlAttribute sequence-index-var- sequence-item sequence-key sequence-Letter contained +syn keyword dtmlAttribute sequence-letter sequence-number sequence-odd sequence-query contained +syn keyword dtmlAttribute sequence-roman sequence-Roman sequence-start sequence-step-end-index contained +syn keyword dtmlAttribute sequence-step-size sequence-step-start-index sequence-var- SERVER_NAME contained +syn keyword dtmlAttribute SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE setClassAttr setName single contained +syn keyword dtmlAttribute size skip_unauthorized smtphost sort spacify sql_quote SQLConnectionIDs contained +syn keyword dtmlAttribute standard-deviation- standard-deviation-n- standard_html_footer contained +syn keyword dtmlAttribute standard_html_header start String string subject SubTemplate superValues contained +syn keyword dtmlAttribute tabs_path_info tag test_url_ text_content this thousands_commas title contained +syn keyword dtmlAttribute title_and_id title_or_id total- tpURL tpValues TRACE translate tree-c contained +syn keyword dtmlAttribute tree-colspan tree-e tree-item-expanded tree-item-url tree-level contained +syn keyword dtmlAttribute tree-root-url tree-s tree-state type undoable_transactions UNLOCK contained +syn keyword dtmlAttribute update_data upper uppercase url url_quote URLn user_names contained +syn keyword dtmlAttribute userdefined_roles valid_property_id valid_roles validate_roles contained +syn keyword dtmlAttribute validClipData validRoles values variance- variance-n- view_image_or_file contained +syn keyword dtmlAttribute where whitespace whrandom xml_namespace zclass_candidate_view_actions contained +syn keyword dtmlAttribute ZClassBaseClassNames ziconImage ZopeFind ZQueryIds contained + +syn keyword dtmlMethod abs absolute_url ac_inherited_permissions aCommon contained +syn keyword dtmlMethod aCommonZ acos acquiredRolesAreUsedBy aDay addPropertySheet aMonth AMPM contained +syn keyword dtmlMethod ampm AMPMMinutes appendChild appendData appendHeader asin atan atan2 contained +syn keyword dtmlMethod atof atoi betavariate capatilize capwords catalog_object ceil center contained +syn keyword dtmlMethod choice chr cloneNode COPY cos cosh count createInObjectManager contained +syn keyword dtmlMethod createSQLInput cunifvariate Date DateTime Day day dayOfYear dd default contained +syn keyword dtmlMethod DELETE deleteData delPropertySheet divmod document_id document_title dow contained +syn keyword dtmlMethod earliestTime enter equalTo exp expireCookie expovariate fabs fCommon contained +syn keyword dtmlMethod fCommonZ filtered_manage_options filtered_meta_types find float floor contained +syn keyword dtmlMethod fmod frexp gamma gauss get get_local_roles_for_userid get_size getattr contained +syn keyword dtmlMethod getAttribute getAttributeNode getClassAttr getDomains contained +syn keyword dtmlMethod getElementsByTagName getHeader getitem getNamedItem getobject contained +syn keyword dtmlMethod getObjectsInfo getpath getProperty getRoles getStatus getUser contained +syn keyword dtmlMethod getUserName greaterThan greaterThanEqualTo h_12 h_24 has_key contained +syn keyword dtmlMethod has_permission has_role hasattr hasFeature hash hasProperty HEAD hex contained +syn keyword dtmlMethod hour hypot index index_html inheritedAttribute insertBefore insertData contained +syn keyword dtmlMethod int isCurrentDay isCurrentHour isCurrentMinute isCurrentMonth contained +syn keyword dtmlMethod isCurrentYear isFuture isLeadYear isPast item join latestTime ldexp contained +syn keyword dtmlMethod leave leave_another len lessThan lessThanEqualTo ljust log log10 contained +syn keyword dtmlMethod lognormvariate lower lstrip maketrans manage manage_access contained +syn keyword dtmlMethod manage_acquiredPermissions manage_addColumn manage_addDocument contained +syn keyword dtmlMethod manage_addDTMLDocument manage_addDTMLMethod manage_addFile contained +syn keyword dtmlMethod manage_addFolder manage_addImage manage_addIndex manage_addLocalRoles contained +syn keyword dtmlMethod manage_addMailHost manage_addPermission manage_addPrincipiaFactory contained +syn keyword dtmlMethod manage_addProduct manage_addProperty manage_addPropertySheet contained +syn keyword dtmlMethod manage_addUserFolder manage_addZCatalog manage_addZClass contained +syn keyword dtmlMethod manage_addZGadflyConnection manage_addZGadflyConnectionForm contained +syn keyword dtmlMethod manage_advanced manage_catalogClear manage_catalogFoundItems contained +syn keyword dtmlMethod manage_catalogObject manage_catalogReindex manage_changePermissions contained +syn keyword dtmlMethod manage_changeProperties manage_clone manage_CopyContainerFirstItem contained +syn keyword dtmlMethod manage_copyObjects manage_createEditor manage_createView contained +syn keyword dtmlMethod manage_cutObjects manage_defined_roles manage_delColumns contained +syn keyword dtmlMethod manage_delIndexes manage_delLocalRoles manage_delObjects contained +syn keyword dtmlMethod manage_delProperties manage_Discard__draft__ manage_distribute contained +syn keyword dtmlMethod manage_edit manage_edit manage_editedDialog manage_editProperties contained +syn keyword dtmlMethod manage_editRoles manage_exportObject manage_importObject contained +syn keyword dtmlMethod manage_makeChanges manage_pasteObjects manage_permission contained +syn keyword dtmlMethod manage_propertiesForm manage_proxy manage_renameObject manage_role contained +syn keyword dtmlMethod manage_Save__draft__ manage_setLocalRoles manage_setPermissionMapping contained +syn keyword dtmlMethod manage_test manage_testForm manage_uncatalogObject contained +syn keyword dtmlMethod manage_undo_transactions manage_upload manage_users manage_workspace contained +syn keyword dtmlMethod mange_createWizard max min minute MKCOL mm modf month Month MOVE contained +syn keyword dtmlMethod namespace new_version nextObject normalvariate notEqualTo objectIds contained +syn keyword dtmlMethod objectItems objectValues oct OPTIONS ord paretovariate parts pCommon contained +syn keyword dtmlMethod pCommonZ pDay permissionsOfRole pMonth pow PreciseAMPM PreciseTime contained +syn keyword dtmlMethod previousObject propertyInfo propertyLabel PROPFIND PROPPATCH PUT quit contained +syn keyword dtmlMethod raise_standardErrorMessage randint random read read_raw redirect contained +syn keyword dtmlMethod removeAttribute removeAttributeNode removeChild replace replaceChild contained +syn keyword dtmlMethod replaceData rfc822 rfind rindex rjust rolesOfPermission round rstrip contained +syn keyword dtmlMethod save searchResults second seed set setAttribute setAttributeNode setBase contained +syn keyword dtmlMethod setCookie setHeader setStatus sin sinh split splitText sqrt str strip contained +syn keyword dtmlMethod substringData superValues swapcase tabs_path_info tan tanh Time contained +syn keyword dtmlMethod TimeMinutes timeTime timezone title title_and_id title_or_id toXML contained +syn keyword dtmlMethod toZone uncatalog_object undoable_transactions uniform uniqueValuesFor contained +syn keyword dtmlMethod update_data upper valid_property_id validate_roles vonmisesvariate contained +syn keyword dtmlMethod weibullvariate year yy zfill ZopeFind contained + +" DTML tags +syn keyword dtmlTagName var if elif else unless in with let call raise try except tag comment tree sqlvar sqltest sqlgroup sendmail mime transparent contained + +syn keyword dtmlEndTagName if unless in with let raise try tree sendmail transparent contained + +" Own additions +syn keyword dtmlTODO TODO FIXME contained + +syn region dtmlComment start=++ end=++ contains=dtmlTODO + +" All dtmlTagNames are contained by dtmlIsTag. +syn match dtmlIsTag "dtml-[A-Za-z]\+" contains=dtmlTagName + +" 'var' tag entity syntax: &dtml-variableName; +" - with attributes: &dtml.attribute1[.attribute2]...-variableName; +syn match dtmlSpecialChar "&dtml[.0-9A-Za-z_]\{-}-[0-9A-Za-z_.]\+;" + +" Redefine to allow inclusion of DTML within HTML strings. +syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc +syn region htmlLink start="[^>]*href\>" end=""me=e-4 contains=@Spell,htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc +syn region htmlHead start="" end=""me=e-7 end=""me=e-5 end=""me=e-3 contains=htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc +syn region htmlTitle start="" end=""me=e-8 contains=htmlTag,htmlEndTag,dtmlSpecialChar,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc +syn region htmlString contained start=+"+ end=+"+ contains=dtmlSpecialChar,htmlSpecialChar,javaScriptExpression,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlPreproc +syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,dtmlIsTag,dtmlAttribute,dtmlMethod,@htmlTagNameCluster +syn match htmlTagN contained + + +" dtrace lexer and parser are at +" http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libdtrace/common/dt_lex.l +" http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libdtrace/common/dt_grammar.y + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax + +syn clear cCommentL " dtrace doesn't support // style comments + +" First line may start with #!, also make sure a '-s' flag is somewhere in +" that line. +syn match dtraceComment "\%^#!.*-s.*" + +" Probe descriptors need explicit matches, so that keywords in probe +" descriptors don't show up as errors. Note that this regex detects probes +" as "something with three ':' in it". This works in practice, but it's not +" really correct. Also add special case code for BEGIN, END and ERROR, since +" they are common. +" Be careful not to detect '/*some:::node*/\n/**/' as probe, as it's +" commented out. +" XXX: This allows a probe description to end with ',', even if it's not +" followed by another probe. +" XXX: This doesn't work if followed by a comment. +let s:oneProbe = '\%(BEGIN\|END\|ERROR\|\S\{-}:\S\{-}:\S\{-}:\S\{-}\)\_s*' +exec 'syn match dtraceProbe "'.s:oneProbe.'\%(,\_s*'.s:oneProbe.'\)*\ze\_s\%({\|\/[^*]\|\%$\)"' + +" Note: We have to be careful to not make this match /* */ comments. +" Also be careful not to eat `c = a / b; b = a / 2;`. We use the same +" technique as the dtrace lexer: a predicate has to be followed by {, ;, or +" EOF. Also note that dtrace doesn't allow an empty predicate // (we do). +" This regex doesn't allow a divison operator in the predicate. +" Make sure that this matches the empty predicate as well. +" XXX: This doesn't work if followed by a comment. +syn match dtracePredicate "/\*\@!\_[^/]*/\ze\_s*\%({\|;\|\%$\)" + "contains=ALLBUT,dtraceOption " this lets the region contain too much stuff + +" Pragmas. +" dtrace seems not to support whitespace before or after the '='. dtrace +" supports only one option per #pragma, and no continuations of #pragma over +" several lines with '\'. +" Note that dtrace treats units (Hz etc) as case-insenstive, we allow only +" sane unit capitalization in this script (ie 'ns', 'us', 'ms', 's' have to be +" small, Hertz can be 'Hz' or 'hz') +" XXX: "cpu" is always highlighted as builtin var, not as option + +" auto or manual: bufresize +syn match dtraceOption contained "bufresize=\%(auto\|manual\)\s*$" + +" scalar: cpu jstackframes jstackstrsize nspec stackframes stackindent ustackframes +syn match dtraceOption contained "\%(cpu\|jstackframes\|jstackstrsize\|nspec\|stackframes\|stackindent\|ustackframes\)=\d\+\s*$" + +" size: aggsize bufsize dynvarsize specsize strsize +" size defaults to something if no unit is given (ie., having no unit is ok) +syn match dtraceOption contained "\%(aggsize\|bufsize\|dynvarsize\|specsize\|strsize\)=\d\+\%(k\|m\|g\|t\|K\|M\|G\|T\)\=\s*$" + +" time: aggrate cleanrate statusrate switchrate +" time defaults to hz if no unit is given +syn match dtraceOption contained "\%(aggrate\|cleanrate\|statusrate\|switchrate\)=\d\+\%(hz\|Hz\|ns\|us\|ms\|s\)\=\s*$" + +" No type: defaultargs destructive flowindent grabanon quiet rawbytes +syn match dtraceOption contained "\%(defaultargs\|destructive\|flowindent\|grabanon\|quiet\|rawbytes\)\s*$" + + +" Turn reserved but unspecified keywords into errors +syn keyword dtraceReservedKeyword auto break case continue counter default do +syn keyword dtraceReservedKeyword else for goto if import probe provider +syn keyword dtraceReservedKeyword register restrict return static switch while + +" Add dtrace-specific stuff +syn keyword dtraceOperator sizeof offsetof stringof xlate +syn keyword dtraceStatement self inline xlate this translator + +" Builtin variables +syn keyword dtraceIdentifier arg0 arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 +syn keyword dtraceIdentifier args caller chip cpu curcpu curlwpsinfo curpsinfo +syn keyword dtraceIdentifier curthread cwd epid errno execname gid id ipl lgrp +syn keyword dtraceIdentifier pid ppid probefunc probemod probename probeprov +syn keyword dtraceIdentifier pset root stackdepth tid timestamp uid uregs +syn keyword dtraceIdentifier vtimestamp walltimestamp +syn keyword dtraceIdentifier ustackdepth + +" Macro Variables +syn match dtraceConstant "$[0-9]\+" +syn match dtraceConstant "$\(egid\|euid\|gid\|pgid\|ppid\)" +syn match dtraceConstant "$\(projid\|sid\|target\|taskid\|uid\)" + +" Data Recording Actions +syn keyword dtraceFunction trace tracemem printf printa stack ustack jstack + +" Process Destructive Actions +syn keyword dtraceFunction stop raise copyout copyoutstr system + +" Kernel Destructive Actions +syn keyword dtraceFunction breakpoint panic chill + +" Special Actions +syn keyword dtraceFunction speculate commit discard exit + +" Subroutines +syn keyword dtraceFunction alloca basename bcopy cleanpath copyin copyinstr +syn keyword dtraceFunction copyinto dirname msgdsize msgsize mutex_owned +syn keyword dtraceFunction mutex_owner mutex_type_adaptive progenyof +syn keyword dtraceFunction rand rw_iswriter rw_write_held speculation +syn keyword dtraceFunction strjoin strlen + +" Aggregating Functions +syn keyword dtraceAggregatingFunction count sum avg min max lquantize quantize + +syn keyword dtraceType int8_t int16_t int32_t int64_t intptr_t +syn keyword dtraceType uint8_t uint16_t uint32_t uint64_t uintptr_t +syn keyword dtraceType string +syn keyword dtraceType pid_t id_t + + +" Define the default highlighting. +" We use `hi def link` directly, this requires 5.8. +hi def link dtraceReservedKeyword Error +hi def link dtracePredicate String +hi def link dtraceProbe dtraceStatement +hi def link dtraceStatement Statement +hi def link dtraceConstant Constant +hi def link dtraceIdentifier Identifier +hi def link dtraceAggregatingFunction dtraceFunction +hi def link dtraceFunction Function +hi def link dtraceType Type +hi def link dtraceOperator Operator +hi def link dtraceComment Comment +hi def link dtraceNumber Number +hi def link dtraceOption Identifier + +let b:current_syntax = "dtrace" diff --git a/runtime/syntax/dts.vim b/runtime/syntax/dts.vim new file mode 100644 index 0000000..bb7eff7 --- /dev/null +++ b/runtime/syntax/dts.vim @@ -0,0 +1,80 @@ +" Vim syntax file +" Language: dts/dtsi (device tree files) +" Maintainer: Daniel Mack +" Last Change: 2023 Apr 28 + +if exists("b:current_syntax") + finish +endif +let b:current_syntax = 'dts' + +syntax region dtsComment start="/\*" end="\*/" +syntax match dtsReference "&[[:alpha:][:digit:]_]\+" +syntax match dtsReference "&{[[:alpha:][:digit:]@_/-]\+}" +syntax region dtsBinaryProperty start="\[" end="\]" +syntax match dtsStringProperty "\".*\"" +syntax match dtsKeyword "/[[:alpha:][:digit:]-]\+/\([[:space:]]\|;\)"he=e-1 +syntax match dtsLabel "^[[:space:]]*[[:alpha:][:digit:]_]\+:" +syntax match dtsNode /[[:alpha:][:digit:]-_]\+\(@[0-9a-fA-F]\+\|\)[[:space:]]*{/he=e-1 +syntax region dtsCellProperty start="<" end=">" contains=dtsReference,dtsBinaryProperty,dtsStringProperty,dtsComment +syntax region dtsCommentInner start="/\*" end="\*/" +syntax match dtsCommentLine "//.*$" + +" Accept %: for # (C99) +syn region cPreCondit start="^\s*\zs\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" keepend contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError +syn match cPreConditMatch display "^\s*\zs\(%:\|#\)\s*\(else\|endif\)\>" +if !exists("c_no_if0") + syn cluster cCppOutInGroup contains=cCppInIf,cCppInElse,cCppInElse2,cCppOutIf,cCppOutIf2,cCppOutElse,cCppInSkip,cCppOutSkip + syn region cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0\+\s*\($\|//\|/\*\|&\)" end=".\@=\|$" contains=cCppOutIf,cCppOutElse,@NoSpell fold + syn region cCppOutIf contained start="0\+" matchgroup=cCppOutWrapper end="^\s*\(%:\|#\)\s*endif\>" contains=cCppOutIf2,cCppOutElse + if !exists("c_no_if0_fold") + syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell fold + else + syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell + endif + syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit + syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold + syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit + if !exists("c_no_if0_fold") + syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold + else + syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 + endif + syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell + syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip + syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc +endif +syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match cIncluded display contained "<[^>]*>" +syn match cInclude display "^\s*\zs\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded +"syn match cLineSkip "\\$" +syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti,cBadBlock +syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell +syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell + +hi def link dtsCellProperty Number +hi def link dtsBinaryProperty Number +hi def link dtsStringProperty String +hi def link dtsKeyword Include +hi def link dtsLabel Label +hi def link dtsNode Structure +hi def link dtsReference Macro +hi def link dtsComment Comment +hi def link dtsCommentInner Comment +hi def link dtsCommentLine Comment + +hi def link cInclude Include +hi def link cPreProc PreProc +hi def link cDefine Macro +hi def link cIncluded cString +hi def link cString String + +hi def link cCppInWrapper cCppOutWrapper +hi def link cCppOutWrapper cPreCondit +hi def link cPreConditMatch cPreCondit +hi def link cPreCondit PreCondit +hi def link cCppOutSkip cCppOutIf2 + +hi def link cCppInElse2 cCppOutIf2 +hi def link cCppOutIf2 cCppOut +hi def link cCppOut Comment diff --git a/runtime/syntax/dune.vim b/runtime/syntax/dune.vim new file mode 100644 index 0000000..b425405 --- /dev/null +++ b/runtime/syntax/dune.vim @@ -0,0 +1,47 @@ +" Vim syntax file +" Language: Dune buildsystem +" Maintainer: Markus Mottl +" Anton Kochkov +" URL: https://github.com/ocaml/vim-ocaml +" Last Change: +" 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes) +" 2018 May 8 - Check current_syntax (Kawahara Satoru) +" 2018 Mar 29 - Extend jbuild syntax with more keywords (Petter A. Urkedal) +" 2017 Sep 6 - Initial version (Etienne Millon) + +if exists("b:current_syntax") + finish +endif + +set syntax=lisp +syn case match + +" The syn-iskeyword setting lacks #,? from the iskeyword setting here. +" Clearing it avoids maintaining keyword characters in multiple places. +syn iskeyword clear + +syn keyword lispDecl jbuild_version library executable executables rule ocamllex ocamlyacc menhir alias install + +syn keyword lispKey name public_name synopsis modules libraries wrapped +syn keyword lispKey preprocess preprocessor_deps optional c_names cxx_names +syn keyword lispKey install_c_headers modes no_dynlink self_build_stubs_archive +syn keyword lispKey ppx_runtime_libraries virtual_deps js_of_ocaml link_flags +syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps +syn keyword lispKey library_flags c_flags c_library_flags kind package action +syn keyword lispKey deps targets locks fallback +syn keyword lispKey inline_tests tests test names + +syn keyword lispAtom true false + +syn keyword lispFunc cat chdir copy# diff? echo run setenv +syn keyword lispFunc ignore-stdout ignore-stderr ignore-outputs +syn keyword lispFunc with-stdout-to with-stderr-to with-outputs-to +syn keyword lispFunc write-file system bash + +syn cluster lispBaseListCluster add=duneVar +syn match duneVar '\${[@<^]}' containedin=lispSymbol +syn match duneVar '\${\k\+\(:\k\+\)\?}' containedin=lispSymbol + +hi def link duneVar Identifier + +let b:current_syntax = "dune" diff --git a/runtime/syntax/dylan.vim b/runtime/syntax/dylan.vim new file mode 100644 index 0000000..345e932 --- /dev/null +++ b/runtime/syntax/dylan.vim @@ -0,0 +1,92 @@ +" Vim syntax file +" Language: Dylan +" Authors: Justus Pendleton +" Brent A. Fulgham +" Last Change: Fri Sep 29 13:45:55 PDT 2000 +" +" This syntax file is based on the Haskell, Perl, Scheme, and C +" syntax files. + +" Part 1: Syntax definition +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +setlocal lisp + +" Highlight special characters (those that have backslashes) differently +syn match dylanSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" + +" Keywords +syn keyword dylanBlock afterwards begin block cleanup end +syn keyword dylanClassMods abstract concrete primary inherited virtual +syn keyword dylanException exception handler signal +syn keyword dylanParamDefs method class function library macro interface +syn keyword dylanSimpleDefs constant variable generic primary +syn keyword dylanOther above below from by in instance local slot subclass then to +syn keyword dylanConditional if when select case else elseif unless finally otherwise then +syn keyword dylanRepeat begin for until while from to +syn keyword dylanStatement define let +syn keyword dylanImport use import export exclude rename create +syn keyword dylanMiscMods open sealed domain singleton sideways inline functional + +" Matching rules for special forms +syn match dylanOperator "\s[-!%&\*\+/=\?@\\^|~:]\+[-#!>%&:\*\+/=\?@\\^|~]*" +syn match dylanOperator "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./=\?@\\^|~:]*" +" Numbers +syn match dylanNumber "\<[0-9]\+\>\|\<0[xX][0-9a-fA-F]\+\>\|\<0[oO][0-7]\+\>" +syn match dylanNumber "\<[0-9]\+\.[0-9]\+\([eE][-+]\=[0-9]\+\)\=\>" +" Booleans +syn match dylanBoolean "#t\|#f" +" Comments +syn match dylanComment "//.*" +syn region dylanComment start="/\*" end="\*/" +" Strings +syn region dylanString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=dySpecial +syn match dylanCharacter "'[^\\]'" +" Constants, classes, and variables +syn match dylanConstant "$\<[a-zA-Z0-9\-]\+\>" +syn match dylanClass "<\<[a-zA-Z0-9\-]\+\>>" +syn match dylanVariable "\*\<[a-zA-Z0-9\-]\+\>\*" +" Preconditions +syn region dylanPrecondit start="^\s*#\s*\(if\>\|else\>\|endif\>\)" skip="\\$" end="$" + +" These appear at the top of files (usually). I like to highlight the whole line +" so that the definition stands out. They should probably really be keywords, but they +" don't generally appear in the middle of a line of code. +syn region dylanHeader start="^[Mm]odule:" end="^$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link dylanBlock PreProc +hi def link dylanBoolean Boolean +hi def link dylanCharacter Character +hi def link dylanClass Structure +hi def link dylanClassMods StorageClass +hi def link dylanComment Comment +hi def link dylanConditional Conditional +hi def link dylanConstant Constant +hi def link dylanException Exception +hi def link dylanHeader Macro +hi def link dylanImport Include +hi def link dylanLabel Label +hi def link dylanMiscMods StorageClass +hi def link dylanNumber Number +hi def link dylanOther Keyword +hi def link dylanOperator Operator +hi def link dylanParamDefs Keyword +hi def link dylanPrecondit PreCondit +hi def link dylanRepeat Repeat +hi def link dylanSimpleDefs Keyword +hi def link dylanStatement Macro +hi def link dylanString String +hi def link dylanVariable Identifier + + +let b:current_syntax = "dylan" + +" vim:ts=8 diff --git a/runtime/syntax/dylanintr.vim b/runtime/syntax/dylanintr.vim new file mode 100644 index 0000000..692db34 --- /dev/null +++ b/runtime/syntax/dylanintr.vim @@ -0,0 +1,39 @@ +" Vim syntax file +" Language: Dylan +" Authors: Justus Pendleton +" Last Change: Fri Sep 29 13:53:27 PDT 2000 +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn region dylanintrInfo matchgroup=Statement start="^" end=":" oneline +syn match dylanintrInterface "define interface" +syn match dylanintrClass "<.*>" +syn region dylanintrType start=+"+ skip=+\\\\\|\\"+ end=+"+ + +syn region dylanintrIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match dylanintrIncluded contained "<[^>]*>" +syn match dylanintrInclude "^\s*#\s*include\>\s*["<]" contains=intrIncluded + +"syn keyword intrMods pointer struct + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link dylanintrInfo Special +hi def link dylanintrInterface Operator +hi def link dylanintrMods Type +hi def link dylanintrClass StorageClass +hi def link dylanintrType Type +hi def link dylanintrIncluded String +hi def link dylanintrInclude Include + + +let b:current_syntax = "dylanintr" + +" vim:ts=8 diff --git a/runtime/syntax/dylanlid.vim b/runtime/syntax/dylanlid.vim new file mode 100644 index 0000000..dae0bf9 --- /dev/null +++ b/runtime/syntax/dylanlid.vim @@ -0,0 +1,29 @@ +" Vim syntax file +" Language: Dylan Library Interface Files +" Authors: Justus Pendleton +" Brent Fulgham +" Last Change: Fri Sep 29 13:50:20 PDT 2000 +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn region dylanlidInfo matchgroup=Statement start="^" end=":" oneline +syn region dylanlidEntry matchgroup=Statement start=":%" end="$" oneline + +syn sync lines=50 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link dylanlidInfo Type +hi def link dylanlidEntry String + + +let b:current_syntax = "dylanlid" + +" vim:ts=8 diff --git a/runtime/syntax/ecd.vim b/runtime/syntax/ecd.vim new file mode 100644 index 0000000..1276f2b --- /dev/null +++ b/runtime/syntax/ecd.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: ecd (Embedix Component Description) files +" Maintainer: John Beppu +" URL: http://opensource.lineo.com/~beppu/prose/ecd_vim.html +" Last Change: 2001 Sep 27 + +" An ECD file contains meta-data for packages in the Embedix Linux distro. +" This syntax file was derived from apachestyle.vim +" by Christian Hammers + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" specials +syn match ecdComment "^\s*#.*" + +" options and values +syn match ecdAttr "^\s*[a-zA-Z]\S*\s*[=].*$" contains=ecdAttrN,ecdAttrV +syn match ecdAttrN contained "^.*="me=e-1 +syn match ecdAttrV contained "=.*$"ms=s+1 + +" tags +syn region ecdTag start=+<+ end=+>+ contains=ecdTagN,ecdTagError +syn match ecdTagN contained +<[/\s]*[-a-zA-Z0-9_]\++ms=s+1 +syn match ecdTagError contained "[^>]<"ms=s+1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link ecdComment Comment +hi def link ecdAttr Type +hi def link ecdAttrN Statement +hi def link ecdAttrV Value +hi def link ecdTag Function +hi def link ecdTagN Statement +hi def link ecdTagError Error + + +let b:current_syntax = "ecd" +" vim: ts=8 diff --git a/runtime/syntax/edif.vim b/runtime/syntax/edif.vim new file mode 100644 index 0000000..002c9f8 --- /dev/null +++ b/runtime/syntax/edif.vim @@ -0,0 +1,45 @@ +" Vim syntax file +" Language: EDIF (Electronic Design Interchange Format) +" Maintainer: Artem Zankovich +" Last Change: Oct 14, 2002 +" +" Supported standarts are: +" ANSI/EIA Standard 548-1988 (EDIF Version 2 0 0) +" IEC 61690-1 (EDIF Version 3 0 0) +" IEC 61690-2 (EDIF Version 4 0 0) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=48-57,-,+,A-Z,a-z,_,& + +syn region edifList matchgroup=Delimiter start="(" end=")" contains=edifList,edifKeyword,edifString,edifNumber + +" Strings +syn match edifInStringError /%/ contained +syn match edifInString /%\s*\d\+\s*%/ contained +syn region edifString start=/"/ end=/"/ contains=edifInString,edifInStringError contained + +" Numbers +syn match edifNumber "\<[-+]\=[0-9]\+\>" + +" Keywords +syn match edifKeyword "(\@<=\s*[a-zA-Z&][a-zA-Z_0-9]*\>" contained + +syn match edifError ")" + +" synchronization +syntax sync fromstart + +" Define the default highlighting. + +hi def link edifInString SpecialChar +hi def link edifKeyword Keyword +hi def link edifNumber Number +hi def link edifInStringError edifError +hi def link edifError Error +hi def link edifString String + +let b:current_syntax = "edif" diff --git a/runtime/syntax/editorconfig.vim b/runtime/syntax/editorconfig.vim new file mode 100644 index 0000000..7f75ab6 --- /dev/null +++ b/runtime/syntax/editorconfig.vim @@ -0,0 +1,21 @@ +" Vim syntax file +" Language: EditorConfig +" Maintainer: Gregory Anders +" Last Change: 2023-07-20 + +if exists('b:current_syntax') + finish +endif + +runtime! syntax/dosini.vim +unlet! b:current_syntax + +syntax match editorconfigUnknownProperty "^\s*\zs[a-zA-Z0-9_-]\+\ze\s*=" + +syntax keyword editorconfigProperty root charset end_of_line indent_style +syntax keyword editorconfigProperty indent_size tab_width max_line_length +syntax keyword editorconfigProperty trim_trailing_whitespace insert_final_newline + +hi def link editorconfigProperty dosiniLabel + +let b:current_syntax = 'editorconfig' diff --git a/runtime/syntax/eiffel.vim b/runtime/syntax/eiffel.vim new file mode 100644 index 0000000..c663487 --- /dev/null +++ b/runtime/syntax/eiffel.vim @@ -0,0 +1,199 @@ +" Eiffel syntax file +" Language: Eiffel +" Maintainer: Jocelyn Fiat +" Previous maintainer: Reimer Behrends +" Contributions from: Thilo Six +" +" URL: https://github.com/eiffelhub/vim-eiffel +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:keepcpo= &cpo +set cpo&vim + +" Option handling + +if exists("eiffel_ignore_case") + syn case ignore +else + syn case match + if exists("eiffel_pedantic") || exists("eiffel_strict") + syn keyword eiffelError current void result precursor none + syn keyword eiffelError CURRENT VOID RESULT PRECURSOR None + syn keyword eiffelError TRUE FALSE + endif + if exists("eiffel_pedantic") + syn keyword eiffelError true false + syn match eiffelError "\<[a-z_]\+[A-Z][a-zA_Z_]*\>" + syn match eiffelError "\<[A-Z][a-z_]*[A-Z][a-zA-Z_]*\>" + endif + if exists("eiffel_lower_case_predef") + syn keyword eiffelPredefined current void result precursor + endif +endif + +if exists("eiffel_hex_constants") + syn match eiffelNumber "\d[0-9a-fA-F]*[xX]" +endif + +" Keyword definitions + +syn keyword eiffelTopStruct note indexing feature creation inherit +syn match eiffelTopStruct "\" +syn match eiffelKeyword "\" +syn match eiffelTopStruct "^end\>\(\s*--\s\+class\s\+\<[A-Z][A-Z0-9_]*\>\)\=" contains=eiffelClassName +syn match eiffelBrackets "[[\]]" +syn match eiffelBracketError "\]" +syn region eiffelGeneric transparent matchgroup=eiffelBrackets start="\[" end="\]" contains=ALLBUT,eiffelBracketError,eiffelGenericDecl,eiffelStringError,eiffelStringEscape,eiffelGenericCreate,eiffelTopStruct +if exists("eiffel_ise") + syn match eiffelAgent "\" + syn match eiffelConvert "\" + syn match eiffelCreate "\" + syn match eiffelTopStruct contained "\" + syn match eiffelTopStruct contained "\" + syn match eiffelGenericCreate contained "\" + syn match eiffelTopStruct "^create\>" + syn region eiffelGenericDecl transparent matchgroup=eiffelBrackets contained start="\[" end="\]" contains=ALLBUT,eiffelCreate,eiffelTopStruct,eiffelGeneric,eiffelBracketError,eiffelStringEscape,eiffelStringError,eiffelBrackets + syn region eiffelClassHeader start="^class\>" end="$" contains=ALLBUT,eiffelCreate,eiffelGenericCreate,eiffelGeneric,eiffelStringEscape,eiffelStringError,eiffelBrackets +endif +syn keyword eiffelDeclaration is do once deferred unique local attribute assign +syn keyword eiffelDeclaration attached detachable Unique +syn keyword eiffelProperty expanded obsolete separate frozen +syn keyword eiffelProperty prefix infix +syn keyword eiffelInheritClause rename redefine undefine select export as +syn keyword eiffelAll all +syn keyword eiffelKeyword external alias some +syn keyword eiffelStatement if else elseif inspect +syn keyword eiffelStatement when then +syn match eiffelAssertion "\" +syn match eiffelAssertion "\" +syn keyword eiffelAssertion check +syn keyword eiffelDebug debug +syn keyword eiffelStatement across from until loop +syn keyword eiffelAssertion variant +syn match eiffelAssertion "\" +syn match eiffelTopStruct "^invariant\>" +syn keyword eiffelException rescue retry + +syn keyword eiffelPredefined Current Void Result Precursor + +" Operators +syn match eiffelOperator "\" +syn match eiffelOperator "\" +syn keyword eiffelOperator xor implies not +syn keyword eiffelOperator strip old +syn keyword eiffelOperator Strip +syn match eiffelOperator "\$" +syn match eiffelCreation "!" +syn match eiffelExport "[{}]" +syn match eiffelArray "<<" +syn match eiffelArray ">>" +syn match eiffelConstraint "->" +syn match eiffelOperator "[@#|&][^ \e\t\b%]*" + +" Special classes +syn keyword eiffelAnchored like +syn keyword eiffelBitType BIT + +" Constants +if !exists("eiffel_pedantic") + syn keyword eiffelBool true false +endif +syn keyword eiffelBool True False +syn region eiffelString start=+"+ skip=+%"+ end=+"+ contains=eiffelStringEscape,eiffelStringError +syn match eiffelStringEscape contained "%[^/]" +syn match eiffelStringEscape contained "%/\d\+/" +syn match eiffelStringEscape contained "^[ \t]*%" +syn match eiffelStringEscape contained "%[ \t]*$" +syn match eiffelStringError contained "%/[^0-9]" +syn match eiffelStringError contained "%/\d\+[^0-9/]" +syn match eiffelBadConstant "'\(%[^/]\|%/\d\+/\|[^'%]\)\+'" +syn match eiffelBadConstant "''" +syn match eiffelCharacter "'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=eiffelStringEscape +syn match eiffelNumber "-\=\<\d\+\(_\d\+\)*\>" +syn match eiffelNumber "\<[01]\+[bB]\>" +syn match eiffelNumber "-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\=" +syn match eiffelNumber "-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\=" +syn match eiffelComment "--.*" contains=eiffelTodo + +syn case match + +" Case sensitive stuff + +syn keyword eiffelTodo contained TODO XXX FIXME +syn match eiffelClassName "\<[A-Z][A-Z0-9_]*\>" + +" Catch mismatched parentheses +syn match eiffelParenError ")" +syn region eiffelParen transparent start="(" end=")" contains=ALLBUT,eiffelParenError,eiffelStringError,eiffelStringEscape + +if exists("eiffel_fold") +" setlocal foldmethod=indent +" syn sync fromstart +endif + +" Should suffice for even very long strings and expressions +syn sync lines=40 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link eiffelKeyword Statement +hi def link eiffelProperty Statement +hi def link eiffelInheritClause Statement +hi def link eiffelStatement Statement +hi def link eiffelDeclaration Statement +hi def link eiffelAssertion Statement +hi def link eiffelDebug Statement +hi def link eiffelException Statement +hi def link eiffelGenericCreate Statement + +hi def link eiffelAgent Statement +hi def link eiffelConvert Statement + +hi def link eiffelTopStruct PreProc + +hi def link eiffelAll Special +hi def link eiffelAnchored Special +hi def link eiffelBitType Special + + +hi def link eiffelBool Boolean +hi def link eiffelString String +hi def link eiffelCharacter Character +hi def link eiffelClassName Type +hi def link eiffelNumber Number + +hi def link eiffelStringEscape Special + +hi def link eiffelOperator Special +hi def link eiffelArray Special +hi def link eiffelExport Special +hi def link eiffelCreation Special +hi def link eiffelBrackets Special +hi def link eiffelGeneric Special +hi def link eiffelGenericDecl Special +hi def link eiffelConstraint Special +hi def link eiffelCreate Special + +hi def link eiffelPredefined Constant + +hi def link eiffelComment Comment + +hi def link eiffelError Error +hi def link eiffelBadConstant Error +hi def link eiffelStringError Error +hi def link eiffelParenError Error +hi def link eiffelBracketError Error + +hi def link eiffelTodo Todo + + +let b:current_syntax = "eiffel" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: ts=8 diff --git a/runtime/syntax/elf.vim b/runtime/syntax/elf.vim new file mode 100644 index 0000000..c8e5a61 --- /dev/null +++ b/runtime/syntax/elf.vim @@ -0,0 +1,82 @@ +" Vim syntax file +" Language: ELF +" Maintainer: Christian V. J. Brüssow +" Last Change: Son 22 Jun 2003 20:43:14 CEST +" Filenames: *.ab,*.am +" URL: http://www.cvjb.de/comp/vim/elf.vim +" $Id: elf.vim,v 1.1 2004/06/13 19:52:27 vimboss Exp $ +" +" ELF: Extensible Language Facility +" This is the Applix Inc., Macro and Builder programming language. +" It has nothing in common with the binary format called ELF. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Case does not matter +syn case ignore + +" Environments +syn region elfEnvironment transparent matchgroup=Special start="{" matchgroup=Special end="}" contains=ALLBUT,elfBraceError + +" Unmatched braces +syn match elfBraceError "}" + +" All macros must have at least one of these definitions +syn keyword elfSpecial endmacro +syn region elfSpecial transparent matchgroup=Special start="^\(\(macro\)\|\(set\)\) \S\+$" matchgroup=Special end="^\(\(endmacro\)\|\(endset\)\)$" contains=ALLBUT,elfBraceError + +" Preprocessor Commands +syn keyword elfPPCom define include + +" Some keywords +syn keyword elfKeyword false true null +syn keyword elfKeyword var format object function endfunction + +" Conditionals and loops +syn keyword elfConditional if else case of endcase for to next while until return goto + +" All built-in elf macros end with an '@' +syn match elfMacro "[0-9_A-Za-z]\+@" + +" Strings and characters +syn region elfString start=+"+ skip=+\\\\\|\\"+ end=+"+ + +" Numbers +syn match elfNumber "-\=\<[0-9]*\.\=[0-9_]\>" + +" Comments +syn region elfComment start="/\*" end="\*/" +syn match elfComment "\'.*$" + +syn sync ccomment elfComment + +" Parenthesis +syn match elfParens "[\[\]()]" + +" Punctuation +syn match elfPunct "[,;]" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later. +hi def link elfComment Comment +hi def link elfPPCom Include +hi def link elfKeyword Keyword +hi def link elfSpecial Special +hi def link elfEnvironment Special +hi def link elfBraceError Error +hi def link elfConditional Conditional +hi def link elfMacro Function +hi def link elfNumber Number +hi def link elfString String +hi def link elfParens Delimiter +hi def link elfPunct Delimiter + + +let b:current_syntax = "elf" + +" vim:ts=8:sw=4:nocindent:smartindent: diff --git a/runtime/syntax/elinks.vim b/runtime/syntax/elinks.vim new file mode 100644 index 0000000..98252a2 --- /dev/null +++ b/runtime/syntax/elinks.vim @@ -0,0 +1,188 @@ +" Vim syntax file +" Language: elinks(1) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-17 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=- + +syn keyword elinksTodo contained TODO FIXME XXX NOTE + +syn region elinksComment display oneline start='#' end='$' + \ contains=elinksTodo,@Spell + +syn match elinksNumber '\<\d\+\>' + +syn region elinksString start=+"+ skip=+\\\\\|\\"+ end=+"+ + \ contains=@elinksColor + +syn keyword elinksKeyword set bind + +syn keyword elinksPrefix bookmarks +syn keyword elinksOptions file_format + +syn keyword elinksPrefix config +syn keyword elinksOptions comments indentation saving_style i18n + \ saving_style_w show_template + +syn keyword elinksPrefix connection ssl client_cert +syn keyword elinksOptions enable file cert_verify async_dns max_connections + \ max_connections_to_host receive_timeout retries + \ unrestartable_receive_timeout + +syn keyword elinksPrefix cookies +syn keyword elinksOptions accept_policy max_age paranoid_security save resave + +syn keyword elinksPrefix document browse accesskey forms images links +syn keyword elinksPrefix active_link colors search cache codepage colors +syn keyword elinksPrefix format memory download dump history global html +syn keyword elinksPrefix plain +syn keyword elinksOptions auto_follow priority auto_submit confirm_submit + \ input_size show_formhist file_tags + \ image_link_tagging image_link_prefix + \ image_link_suffix show_as_links + \ show_any_as_links background text enable_color + \ bold invert underline color_dirs numbering + \ use_tabindex number_keys_select_link + \ wraparound case regex show_hit_top_bottom + \ wraparound show_not_found margin_width refresh + \ minimum_refresh_time scroll_margin scroll_step + \ table_move_order size size cache_redirects + \ ignore_cache_control assume force_assumed text + \ background link vlink dirs allow_dark_on_black + \ ensure_contrast use_document_colors directory + \ set_original_time overwrite notify_bell + \ codepage width enable max_items display_type + \ write_interval keep_unhistory display_frames + \ display_tables expand_table_columns display_subs + \ display_sups link_display underline_links + \ wrap_nbsp display_links compress_empty_lines + +syn keyword elinksPrefix mime extension handler mailcap mimetypes type +syn keyword elinksOptions ask block program enable path ask description + \ prioritize enable path default_type + +syn keyword elinksPrefix protocol file cgi ftp proxy http bugs proxy +syn keyword elinksPrefix referer https proxy rewrite dumb smart +syn keyword elinksOptions path policy allow_special_files show_hidden_files + \ try_encoding_extensions host anon_passwd + \ use_pasv use_epsv accept_charset allow_blacklist + \ broken_302_redirect post_no_keepalive http10 + \ host user passwd policy fake accept_language + \ accept_ui_language trace user_agent host + \ enable-dumb enable-smart + +syn keyword elinksPrefix terminal +syn keyword elinksOptions type m11_hack utf_8_io restrict_852 block_cursor + \ colors transparency underline charset + +syn keyword elinksPrefix ui colors color mainmenu normal selected hotkey + \ menu marked hotkey frame dialog generic + \ frame scrollbar scrollbar-selected title text + \ checkbox checkbox-label button button-selected + \ field field-text meter shadow title title-bar + \ title-text status status-bar status-text tabs + \ unvisited normal loading separator searched mono +syn keyword elinksOptions text background + +syn keyword elinksPrefix ui dialogs leds sessions tabs timer +syn keyword elinksOptions listbox_min_height shadows underline_hotkeys enable + \ auto_save auto_restore auto_save_foldername + \ homepage show_bar wraparound confirm_close + \ enable duration action language show_status_bar + \ show_title_bar startup_goto_dialog + \ success_msgbox window_title + +syn keyword elinksOptions secure_file_saving + +syn cluster elinksColor contains=elinksColorBlack,elinksColorDarkRed, + \ elinksColorDarkGreen,elinksColorDarkYellow, + \ elinksColorDarkBlue,elinksColorDarkMagenta, + \ elinksColorDarkCyan,elinksColorGray, + \ elinksColorDarkGray,elinksColorRed, + \ elinksColorGreen,elinksColorYellow, + \ elinksColorBlue,elinksColorMagenta, + \ elinksColorCyan,elinksColorWhite + +syn keyword elinksColorBlack contained black +syn keyword elinksColorDarkRed contained darkred sandybrown maroon crimson + \ firebrick +syn keyword elinksColorDarkGreen contained darkgreen darkolivegreen + \ darkseagreen forestgreen + \ mediumspringgreen seagreen +syn keyword elinksColorDarkYellow contained brown blanchedalmond chocolate + \ darkorange darkgoldenrod orange rosybrown + \ saddlebrown peru olive olivedrab sienna +syn keyword elinksColorDarkBlue contained darkblue cadetblue cornflowerblue + \ darkslateblue deepskyblue midnightblue + \ royalblue steelblue navy +syn keyword elinksColorDarkMagenta contained darkmagenta mediumorchid + \ mediumpurple mediumslateblue slateblue + \ deeppink hotpink darkorchid orchid purple + \ indigo +syn keyword elinksColorDarkCyan contained darkcyan mediumaquamarine + \ mediumturquoise darkturquoise teal +syn keyword elinksColorGray contained silver dimgray lightslategray + \ slategray lightgrey burlywood plum tan + \ thistle +syn keyword elinksColorDarkGray contained gray darkgray darkslategray + \ darksalmon +syn keyword elinksColorRed contained red indianred orangered tomato + \ lightsalmon salmon coral lightcoral +syn keyword elinksColorGreen contained green greenyellow lawngreen + \ lightgreen lightseagreen limegreen + \ mediumseagreen springgreen yellowgreen + \ palegreen lime chartreuse +syn keyword elinksColorYellow contained yellow beige darkkhaki + \ lightgoldenrodyellow palegoldenrod gold + \ goldenrod khaki lightyellow +syn keyword elinksColorBlue contained blue aliceblue aqua aquamarine + \ azure dodgerblue lightblue lightskyblue + \ lightsteelblue mediumblue +syn keyword elinksColorMagenta contained magenta darkviolet blueviolet + \ lightpink mediumvioletred palevioletred + \ violet pink fuchsia +syn keyword elinksColorCyan contained cyan lightcyan powderblue skyblue + \ turquoise paleturquoise +syn keyword elinksColorWhite contained white antiquewhite floralwhite + \ ghostwhite navajowhite whitesmoke linen + \ lemonchiffon cornsilk lavender + \ lavenderblush seashell mistyrose ivory + \ papayawhip bisque gainsboro honeydew + \ mintcream moccasin oldlace peachpuff snow + \ wheat + +hi def link elinksTodo Todo +hi def link elinksComment Comment +hi def link elinksNumber Number +hi def link elinksString String +hi def link elinksKeyword Keyword +hi def link elinksPrefix Identifier +hi def link elinksOptions Identifier +hi def elinksColorBlack ctermfg=Black guifg=Black +hi def elinksColorDarkRed ctermfg=DarkRed guifg=DarkRed +hi def elinksColorDarkGreen ctermfg=DarkGreen guifg=DarkGreen +hi def elinksColorDarkYellow ctermfg=DarkYellow guifg=DarkYellow +hi def elinksColorDarkBlue ctermfg=DarkBlue guifg=DarkBlue +hi def elinksColorDarkMagenta ctermfg=DarkMagenta guifg=DarkMagenta +hi def elinksColorDarkCyan ctermfg=DarkCyan guifg=DarkCyan +hi def elinksColorGray ctermfg=Gray guifg=Gray +hi def elinksColorDarkGray ctermfg=DarkGray guifg=DarkGray +hi def elinksColorRed ctermfg=Red guifg=Red +hi def elinksColorGreen ctermfg=Green guifg=Green +hi def elinksColorYellow ctermfg=Yellow guifg=Yellow +hi def elinksColorBlue ctermfg=Blue guifg=Blue +hi def elinksColorMagenta ctermfg=Magenta guifg=Magenta +hi def elinksColorCyan ctermfg=Cyan guifg=Cyan +hi def elinksColorWhite ctermfg=White guifg=White + +let b:current_syntax = "elinks" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/elm.vim b/runtime/syntax/elm.vim new file mode 100644 index 0000000..1277827 --- /dev/null +++ b/runtime/syntax/elm.vim @@ -0,0 +1,105 @@ +" Vim syntax file +" Language: Elm +" Maintainer: Andreas Scharf +" Original Author: Joseph Hager +" Copyright: Joseph Hager +" License: BSD3 +" Latest Revision: 2020-05-29 + +if exists('b:current_syntax') + finish +endif + +" Keywords +syn keyword elmConditional else if of then case +syn keyword elmAlias alias +syn keyword elmTypedef contained type port +syn keyword elmImport exposing as import module where + +" Operators +" elm/core +syn match elmOperator contained "\(<|\||>\|||\|&&\|==\|/=\|<=\|>=\|++\|::\|+\|-\|*\|/\|//\|^\|<>\|>>\|<<\|<\|>\|%\)" +" elm/parser +syn match elmOperator contained "\(|.\||=\)" +" elm/url +syn match elmOperator contained "\(\|\)" + +" Types +syn match elmType "\<[A-Z][0-9A-Za-z_-]*" +syn keyword elmNumberType number + +" Modules +syn match elmModule "\<\([A-Z][0-9A-Za-z_'-\.]*\)\+\.[A-Za-z]"me=e-2 +syn match elmModule "^\(module\|import\)\s\+[A-Z][0-9A-Za-z_'-\.]*\(\s\+as\s\+[A-Z][0-9A-Za-z_'-\.]*\)\?\(\s\+exposing\)\?" contains=elmImport + +" Delimiters +syn match elmDelimiter "[,;]" +syn match elmBraces "[()[\]{}]" + +" Functions +syn match elmTupleFunction "\((,\+)\)" + +" Comments +syn keyword elmTodo TODO FIXME XXX contained +syn match elmLineComment "--.*" contains=elmTodo,@spell +syn region elmComment matchgroup=elmComment start="{-|\=" end="-}" contains=elmTodo,elmComment,@spell fold + +" Strings +syn match elmStringEscape "\\u[0-9a-fA-F]\{4}" contained +syn match elmStringEscape "\\[nrfvbt\\\"]" contained +syn region elmString start="\"" skip="\\\"" end="\"" contains=elmStringEscape,@spell +syn region elmTripleString start="\"\"\"" skip="\\\"" end="\"\"\"" contains=elmStringEscape,@spell +syn match elmChar "'[^'\\]'\|'\\.'\|'\\u[0-9a-fA-F]\{4}'" + +" Lambda +syn region elmLambdaFunc start="\\"hs=s+1 end="->"he=e-2 + +" Debug +syn match elmDebug "Debug.\(log\|todo\|toString\)" + +" Numbers +syn match elmInt "-\?\<\d\+\>" +syn match elmFloat "-\?\(\<\d\+\.\d\+\>\)" + +" Identifiers +syn match elmTopLevelDecl "^\s*[a-zA-Z][a-zA-z0-9_]*\('\)*\s\+:\(\r\n\|\r\|\n\|\s\)\+" contains=elmOperator +syn match elmFuncName /^\l\w*/ + +" Folding +syn region elmTopLevelTypedef start="type" end="\n\(\n\n\)\@=" contains=ALL fold +syn region elmTopLevelFunction start="^[a-zA-Z].\+\n[a-zA-Z].\+=" end="^\(\n\+\)\@=" contains=ALL fold +syn region elmCaseBlock matchgroup=elmCaseBlockDefinition start="^\z\(\s\+\)\" end="^\z1\@!\W\@=" end="\(\n\n\z1\@!\)\@=" end="\n\z1\@!\(\n\n\)\@=" contains=ALL fold +syn region elmCaseItemBlock start="^\z\(\s\+\).\+->$" end="^\z1\@!\W\@=" end="\(\n\n\z1\@!\)\@=" end="\(\n\z1\S\)\@=" contains=ALL fold +syn region elmLetBlock matchgroup=elmLetBlockDefinition start="\" end="\" contains=ALL fold + +hi def link elmFuncName Function +hi def link elmCaseBlockDefinition Conditional +hi def link elmCaseBlockItemDefinition Conditional +hi def link elmLetBlockDefinition TypeDef +hi def link elmTopLevelDecl Function +hi def link elmTupleFunction Normal +hi def link elmTodo Todo +hi def link elmComment Comment +hi def link elmLineComment Comment +hi def link elmString String +hi def link elmTripleString String +hi def link elmChar String +hi def link elmStringEscape Special +hi def link elmInt Number +hi def link elmFloat Float +hi def link elmDelimiter Delimiter +hi def link elmBraces Delimiter +hi def link elmTypedef TypeDef +hi def link elmImport Include +hi def link elmConditional Conditional +hi def link elmAlias Delimiter +hi def link elmOperator Operator +hi def link elmType Type +hi def link elmNumberType Identifier +hi def link elmLambdaFunc Function +hi def link elmDebug Debug +hi def link elmModule Type + +syn sync minlines=500 + +let b:current_syntax = 'elm' diff --git a/runtime/syntax/elmfilt.vim b/runtime/syntax/elmfilt.vim new file mode 100644 index 0000000..d995853 --- /dev/null +++ b/runtime/syntax/elmfilt.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: Elm Filter rules +" Maintainer: Charles E. Campbell +" Last Change: Aug 31, 2016 +" Version: 9 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_ELMFILT + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn cluster elmfiltIfGroup contains=elmfiltCond,elmfiltOper,elmfiltOperKey,,elmfiltNumber,elmfiltOperKey + +syn match elmfiltParenError "[()]" +syn match elmfiltMatchError "/" +syn region elmfiltIf start="\" end="\" contains=elmfiltParen,elmfiltParenError skipnl skipwhite nextgroup=elmfiltAction +syn region elmfiltParen contained matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=elmfiltParen,@elmfiltIfGroup,elmfiltThenError +syn region elmfiltMatch contained matchgroup=Delimiter start="/" skip="\\/" matchgroup=Delimiter end="/" skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey +syn match elmfiltThenError "\" skipnl skipwhite nextgroup=elmfiltString +syn match elmfiltOperKey contained "\=\|!=\|<\|<\|=" skipnl skipwhite nextgroup=elmfiltString,elmfiltCond,elmfiltOperKey +syn region elmfiltString contained start='"' skip='"\(\\\\\)*\\["%]' end='"' contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell +syn region elmfiltString contained start="'" skip="'\(\\\\\)*\\['%]" end="'" contains=elmfiltArg skipnl skipwhite nextgroup=elmfiltOper,elmfiltOperKey,@Spell +syn match elmfiltSpaceError contained "\s.*$" + +" Define the default highlighting. +if !exists("skip_elmfilt_syntax_inits") + + hi def link elmfiltAction Statement + hi def link elmfiltArg Special + hi def link elmfiltComment Comment + hi def link elmfiltCond Statement + hi def link elmfiltIf Statement + hi def link elmfiltMatch Special + hi def link elmfiltMatchError Error + hi def link elmfiltNumber Number + hi def link elmfiltOper Operator + hi def link elmfiltOperKey Type + hi def link elmfiltParenError Error + hi def link elmfiltSpaceError Error + hi def link elmfiltString String + hi def link elmfiltThenError Error + +endif + +let b:current_syntax = "elmfilt" +" vim: ts=9 diff --git a/runtime/syntax/erlang.vim b/runtime/syntax/erlang.vim new file mode 100644 index 0000000..0b25619 --- /dev/null +++ b/runtime/syntax/erlang.vim @@ -0,0 +1,266 @@ +" Vim syntax file +" Language: Erlang (http://www.erlang.org) +" Maintainer: Csaba Hoch +" Contributor: Adam Rutkowski +" Last Update: 2022-Sep-06 +" License: Vim license +" URL: https://github.com/vim-erlang/vim-erlang-runtime + +" Acknowledgements: This script was originally created by Kresimir Marzic [1]. +" The script was then revamped by Csaba Hoch [2]. During the revamp, the new +" highlighting style and some code was taken from the Erlang syntax script +" that is part of vimerl [3], created by Oscar Hellström [4] and improved by +" Ricardo Catalinas Jiménez [5]. + +" [1]: Kreąimir Marľić (Kresimir Marzic) +" [2]: Csaba Hoch +" [3]: https://github.com/jimenezrick/vimerl +" [4]: Oscar Hellström (http://oscar.hellstrom.st) +" [5]: Ricardo Catalinas Jiménez + +" Customization: +" +" To use the old highlighting style, add this to your .vimrc: +" +" let g:erlang_old_style_highlight = 1 +" +" To highlight further module attributes, add them to +" ~/.vim/after/syntax/erlang.vim: +" +" syn keyword erlangAttribute myattr1 myattr2 contained + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Case sensitive +syn case match + +setlocal iskeyword+=$,@-@ + +" Comments +syn match erlangComment '%.*$' contains=erlangCommentAnnotation,erlangTodo +syn match erlangCommentAnnotation ' \@<=@\%(clear\|docfile\|end\|headerfile\|todo\|TODO\|type\|author\|copyright\|doc\|reference\|see\|since\|title\|version\|deprecated\|hidden\|param\|private\|equiv\|spec\|throws\)' contained +syn match erlangCommentAnnotation /`[^']*'/ contained +syn keyword erlangTodo TODO FIXME XXX contained + +" Numbers (minimum base is 2, maximum is 36.) +syn match erlangNumberInteger '\<\d\+\>' +syn match erlangNumberInteger '\<\%([2-9]\|[12]\d\|3[0-6]\)\+#[[:alnum:]]\+\>' +syn match erlangNumberFloat '\<\d\+\.\d\+\%([eE][+-]\=\d\+\)\=\>' + +" Strings, atoms, characters +syn region erlangString start=/"/ end=/"/ contains=erlangStringModifier +syn region erlangQuotedAtom start=/'/ end=/'/ contains=erlangQuotedAtomModifier +syn match erlangStringModifier '\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\|\~\%([ni~]\|\%(-\=\d\+\|\*\)\=\.\=\%(\*\|\d\+\)\=\%(\..\)\=[tl]*[cfegswpWPBX#bx+]\)' contained +syn match erlangQuotedAtomModifier '\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)' contained +syn match erlangModifier '\$\%([^\\]\|\\\%(\o\{1,3}\|x\x\x\|x{\x\+}\|\^.\|.\)\)' + +" Operators, separators +syn match erlangOperator '==\|=:=\|/=\|=/=\|<\|=<\|>\|>=\|=>\|:=\|?=\|++\|--\|=\|!\|<-\|+\|-\|\*\|\/' +syn match erlangEqualsBinary '=<<\%(<\)\@!' +syn keyword erlangOperator div rem or xor bor bxor bsl bsr and band not bnot andalso orelse +syn match erlangBracket '{\|}\|\[\|]\||\|||' +syn match erlangPipe '|' +syn match erlangRightArrow '->' + +" Atoms, function calls (order is important) +syn match erlangAtom '\<\l[[:alnum:]_@]*' contains=erlangBoolean +syn keyword erlangBoolean true false contained +syn match erlangLocalFuncCall '\<\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*(\)\@=' contains=erlangBIF +syn match erlangLocalFuncRef '\<\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*/\)\@=' +syn match erlangGlobalFuncCall '\<\%(\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*\.\%(\s\|\n\|%.*\n\)*\)*\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*:\%(\s\|\n\|%.*\n\)*\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*(\)\@=' contains=erlangComment,erlangVariable +syn match erlangGlobalFuncRef '\<\%(\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*\.\%(\s\|\n\|%.*\n\)*\)*\a[[:alnum:]_@]*\%(\s\|\n\|%.*\n\)*:\%(\s\|\n\|%.*\n\)*\a[[:alnum:]_@]*\>\%(\%(\s\|\n\|%.*\n\)*/\)\@=' contains=erlangComment,erlangVariable + +" Variables, macros, records, maps +syn match erlangVariable '\<[A-Z][[:alnum:]_@]*' +syn match erlangAnonymousVariable '\<_[[:alnum:]_@]*' +syn match erlangMacro '??\=[[:alnum:]_@]\+' +syn match erlangMacro '\%(-define(\)\@<=[[:alnum:]_@]\+' +syn region erlangQuotedMacro start=/??\=\s*'/ end=/'/ contains=erlangQuotedAtomModifier +syn match erlangMap '#' +syn match erlangRecord '#\s*\l[[:alnum:]_@]*' +syn region erlangQuotedRecord start=/#\s*'/ end=/'/ contains=erlangQuotedAtomModifier + +" Shebang (this line has to be after the ErlangMap) +syn match erlangShebang '^#!.*' + +" Bitstrings +syn match erlangBitType '\%(\/\%(\s\|\n\|%.*\n\)*\)\@<=\%(integer\|float\|binary\|bytes\|bitstring\|bits\|binary\|utf8\|utf16\|utf32\|signed\|unsigned\|big\|little\|native\|unit\)\%(\%(\s\|\n\|%.*\n\)*-\%(\s\|\n\|%.*\n\)*\%(integer\|float\|binary\|bytes\|bitstring\|bits\|binary\|utf8\|utf16\|utf32\|signed\|unsigned\|big\|little\|native\|unit\)\)*' contains=erlangComment + +" Constants and Directives +syn match erlangUnknownAttribute '^\s*-\%(\s\|\n\|%.*\n\)*\l[[:alnum:]_@]*' contains=erlangComment +syn match erlangAttribute '^\s*-\%(\s\|\n\|%.*\n\)*\%(behaviou\=r\|compile\|export\(_type\)\=\|file\|import\|module\|author\|copyright\|doc\|vsn\|on_load\|optional_callbacks\|feature\)\>' contains=erlangComment +syn match erlangInclude '^\s*-\%(\s\|\n\|%.*\n\)*\%(include\|include_lib\)\>' contains=erlangComment +syn match erlangRecordDef '^\s*-\%(\s\|\n\|%.*\n\)*record\>' contains=erlangComment +syn match erlangDefine '^\s*-\%(\s\|\n\|%.*\n\)*\%(define\|undef\)\>' contains=erlangComment +syn match erlangPreCondit '^\s*-\%(\s\|\n\|%.*\n\)*\%(ifdef\|ifndef\|else\|endif\)\>' contains=erlangComment +syn match erlangType '^\s*-\%(\s\|\n\|%.*\n\)*\%(spec\|type\|opaque\|callback\)\>' contains=erlangComment + +" Keywords +syn keyword erlangKeyword after begin case catch cond end fun if let of else +syn keyword erlangKeyword receive when try maybe + +" Build-in-functions (BIFs) +syn keyword erlangBIF abs alive apply atom_to_binary atom_to_list contained +syn keyword erlangBIF binary_part binary_to_atom contained +syn keyword erlangBIF binary_to_existing_atom binary_to_float contained +syn keyword erlangBIF binary_to_integer bitstring_to_list contained +syn keyword erlangBIF binary_to_list binary_to_term bit_size contained +syn keyword erlangBIF byte_size check_old_code check_process_code contained +syn keyword erlangBIF concat_binary date delete_module demonitor contained +syn keyword erlangBIF disconnect_node element erase error exit contained +syn keyword erlangBIF float float_to_binary float_to_list contained +syn keyword erlangBIF garbage_collect get get_keys group_leader contained +syn keyword erlangBIF halt hd integer_to_binary integer_to_list contained +syn keyword erlangBIF iolist_to_binary iolist_size is_alive contained +syn keyword erlangBIF is_atom is_binary is_bitstring is_boolean contained +syn keyword erlangBIF is_float is_function is_integer is_list is_map is_map_key contained +syn keyword erlangBIF is_number is_pid is_port is_process_alive contained +syn keyword erlangBIF is_record is_reference is_tuple length link contained +syn keyword erlangBIF list_to_atom list_to_binary contained +syn keyword erlangBIF list_to_bitstring list_to_existing_atom contained +syn keyword erlangBIF list_to_float list_to_integer list_to_pid contained +syn keyword erlangBIF list_to_tuple load_module make_ref map_size max contained +syn keyword erlangBIF min module_loaded monitor monitor_node node contained +syn keyword erlangBIF nodes now open_port pid_to_list port_close contained +syn keyword erlangBIF port_command port_connect pre_loaded contained +syn keyword erlangBIF process_flag process_flag process_info contained +syn keyword erlangBIF process purge_module put register registered contained +syn keyword erlangBIF round self setelement size spawn spawn_link contained +syn keyword erlangBIF spawn_monitor spawn_opt split_binary contained +syn keyword erlangBIF statistics term_to_binary throw time tl contained +syn keyword erlangBIF trunc tuple_size tuple_to_list unlink contained +syn keyword erlangBIF unregister whereis contained + +" Sync at the beginning of functions: if this is not used, multiline string +" are not always recognized, and the indentation script cannot use the +" "searchpair" (because it would not always skip strings and comments when +" looking for keywords and opening parens/brackets). +syn sync match erlangSync grouphere NONE "^[a-z]\s*(" +let b:erlang_syntax_synced = 1 + +" Define the default highlighting. See ":help group-name" for the groups and +" their colors. + +let s:old_style = (exists("g:erlang_old_style_highlight") && + \g:erlang_old_style_highlight == 1) + + +" Comments +hi def link erlangComment Comment +hi def link erlangCommentAnnotation Special +hi def link erlangTodo Todo +hi def link erlangShebang Comment + +" Numbers +hi def link erlangNumberInteger Number +hi def link erlangNumberFloat Float + +" Strings, atoms, characters +hi def link erlangString String + +if s:old_style +hi def link erlangQuotedAtom Type +else +hi def link erlangQuotedAtom String +endif + +hi def link erlangStringModifier Special +hi def link erlangQuotedAtomModifier Special +hi def link erlangModifier Special + +" Operators, separators +hi def link erlangOperator Operator +hi def link erlangEqualsBinary ErrorMsg +hi def link erlangRightArrow Operator +if s:old_style +hi def link erlangBracket Normal +hi def link erlangPipe Normal +else +hi def link erlangBracket Delimiter +hi def link erlangPipe Delimiter +endif + +" Atoms, functions, variables, macros +if s:old_style +hi def link erlangAtom Normal +hi def link erlangLocalFuncCall Normal +hi def link erlangLocalFuncRef Normal +hi def link erlangGlobalFuncCall Function +hi def link erlangGlobalFuncRef Function +hi def link erlangVariable Normal +hi def link erlangAnonymousVariable erlangVariable +hi def link erlangMacro Normal +hi def link erlangQuotedMacro Normal +hi def link erlangRecord Normal +hi def link erlangQuotedRecord Normal +hi def link erlangMap Normal +else +hi def link erlangAtom String +hi def link erlangLocalFuncCall Normal +hi def link erlangLocalFuncRef Normal +hi def link erlangGlobalFuncCall Normal +hi def link erlangGlobalFuncRef Normal +hi def link erlangVariable Identifier +hi def link erlangAnonymousVariable erlangVariable +hi def link erlangMacro Macro +hi def link erlangQuotedMacro Macro +hi def link erlangRecord Structure +hi def link erlangQuotedRecord Structure +hi def link erlangMap Structure +endif + +" Bitstrings +if !s:old_style +hi def link erlangBitType Type +endif + +" Constants and Directives +if s:old_style +hi def link erlangAttribute Type +hi def link erlangMacroDef Type +hi def link erlangUnknownAttribute Normal +hi def link erlangInclude Type +hi def link erlangRecordDef Type +hi def link erlangDefine Type +hi def link erlangPreCondit Type +hi def link erlangType Type +else +hi def link erlangAttribute Keyword +hi def link erlangMacroDef Macro +hi def link erlangUnknownAttribute Normal +hi def link erlangInclude Include +hi def link erlangRecordDef Keyword +hi def link erlangDefine Define +hi def link erlangPreCondit PreCondit +hi def link erlangType Type +endif + +" Keywords +hi def link erlangKeyword Keyword + +" Build-in-functions (BIFs) +hi def link erlangBIF Function + +if s:old_style +hi def link erlangBoolean Statement +hi def link erlangExtra Statement +hi def link erlangSignal Statement +else +hi def link erlangBoolean Boolean +hi def link erlangExtra Statement +hi def link erlangSignal Statement +endif + + +let b:current_syntax = "erlang" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: sw=2 et diff --git a/runtime/syntax/eruby.vim b/runtime/syntax/eruby.vim new file mode 100644 index 0000000..3d1bf71 --- /dev/null +++ b/runtime/syntax/eruby.vim @@ -0,0 +1,79 @@ +" Vim syntax file +" Language: eRuby +" Maintainer: Tim Pope +" URL: https://github.com/vim-ruby/vim-ruby +" Release Coordinator: Doug Kearns +" Last Change: 2022 Mar 18 + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'eruby' +endif + +if !exists("g:eruby_default_subtype") + let g:eruby_default_subtype = "html" +endif + +if &filetype =~ '^eruby\.' + let b:eruby_subtype = matchstr(&filetype,'^eruby\.\zs\w\+') +elseif !exists("b:eruby_subtype") && main_syntax == 'eruby' + let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$") + let b:eruby_subtype = matchstr(s:lines,'eruby_subtype=\zs\w\+') + if b:eruby_subtype == '' + let b:eruby_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.erb\|\.eruby\|\.erubis\|\.example\)\+$','',''),'\.\zs\w\+\%(\ze+\w\+\)\=$') + endif + if b:eruby_subtype == 'rhtml' + let b:eruby_subtype = 'html' + elseif b:eruby_subtype == 'rb' + let b:eruby_subtype = 'ruby' + elseif b:eruby_subtype == 'yml' + let b:eruby_subtype = 'yaml' + elseif b:eruby_subtype == 'js' + let b:eruby_subtype = 'javascript' + elseif b:eruby_subtype == 'txt' + " Conventional; not a real file type + let b:eruby_subtype = 'text' + elseif b:eruby_subtype == '' + let b:eruby_subtype = g:eruby_default_subtype + endif +endif + +if !exists("b:eruby_nest_level") + if &syntax =~# '\' + let b:eruby_nest_level = strlen(substitute(substitute(&filetype,'\C\','@','g'),'[^@]','','g')) + else + let b:eruby_nest_level = strlen(substitute(substitute(substitute(expand("%:t"),'@','','g'),'\c\.\%(erb\|rhtml\)\>','@','g'),'[^@]','','g')) + endif +endif +if !b:eruby_nest_level + let b:eruby_nest_level = 1 +endif + +if exists("b:eruby_subtype") && b:eruby_subtype != '' && b:eruby_subtype !=? 'eruby' + exe "runtime! syntax/".b:eruby_subtype.".vim" + unlet! b:current_syntax +endif +syn include @rubyTop syntax/ruby.vim + +syn cluster erubyRegions contains=erubyOneLiner,erubyBlock,erubyExpression,erubyComment + +exe 'syn region erubyOneLiner matchgroup=erubyDelimiter start="^%\{1,'.b:eruby_nest_level.'\}%\@!" end="$" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend oneline' +exe 'syn region erubyBlock matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}%\@!-\=" end="[=-]\=%\@" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend' +exe 'syn region erubyExpression matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}=\{1,4}" end="[=-]\=%\@" contains=@rubyTop containedin=ALLBUT,@erubyRegions keepend' +exe 'syn region erubyComment matchgroup=erubyDelimiter start="<%\{1,'.b:eruby_nest_level.'\}-\=#" end="[=-]\=%\@" contains=rubyTodo,@Spell containedin=ALLBUT,@erubyRegions keepend' + +" Define the default highlighting. + +hi def link erubyDelimiter PreProc +hi def link erubyComment Comment + +let b:current_syntax = 'eruby' + +if main_syntax == 'eruby' + unlet main_syntax +endif + +" vim: nowrap sw=2 sts=2 ts=8: diff --git a/runtime/syntax/esmtprc.vim b/runtime/syntax/esmtprc.vim new file mode 100644 index 0000000..81f074b --- /dev/null +++ b/runtime/syntax/esmtprc.vim @@ -0,0 +1,31 @@ +" Vim syntax file +" Language: Esmtp setup file (based on esmtp 0.5.0) +" Maintainer: Kornel Kielczewski +" Last Change: 16 Feb 2005 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +"All options +syntax keyword esmtprcOptions hostname username password starttls certificate_passphrase preconnect identity mda + +"All keywords +syntax keyword esmtprcIdentifier default enabled disabled required + +"We're trying to be smarer than /."*@.*/ :) +syntax match esmtprcAddress /[a-z0-9_.-]*[a-z0-9]\+@[a-z0-9_.-]*[a-z0-9]\+\.[a-z]\+/ +syntax match esmtprcFulladd /[a-z0-9_.-]*[a-z0-9]\+\.[a-z]\+:[0-9]\+/ + +"String.. +syntax region esmtprcString start=/"/ end=/"/ + + +highlight link esmtprcOptions Label +highlight link esmtprcString String +highlight link esmtprcAddress Type +highlight link esmtprcIdentifier Identifier +highlight link esmtprcFulladd Include + +let b:current_syntax = "esmtprc" diff --git a/runtime/syntax/esqlc.vim b/runtime/syntax/esqlc.vim new file mode 100644 index 0000000..792e5d3 --- /dev/null +++ b/runtime/syntax/esqlc.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: ESQL-C +" Maintainer: Jonathan A. George +" Last Change: 2001 May 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the C++ syntax to start with +runtime! syntax/cpp.vim + +" ESQL-C extentions + +syntax keyword esqlcPreProc EXEC SQL INCLUDE + +syntax case ignore + +syntax keyword esqlcPreProc begin end declare section database open execute +syntax keyword esqlcPreProc prepare fetch goto continue found sqlerror work + +syntax keyword esqlcKeyword access add as asc by check cluster column +syntax keyword esqlcKeyword compress connect current decimal +syntax keyword esqlcKeyword desc exclusive file from group +syntax keyword esqlcKeyword having identified immediate increment index +syntax keyword esqlcKeyword initial into is level maxextents mode modify +syntax keyword esqlcKeyword nocompress nowait of offline on online start +syntax keyword esqlcKeyword successful synonym table then to trigger uid +syntax keyword esqlcKeyword unique user validate values view whenever +syntax keyword esqlcKeyword where with option order pctfree privileges +syntax keyword esqlcKeyword public resource row rowlabel rownum rows +syntax keyword esqlcKeyword session share size smallint + +syntax keyword esqlcOperator not and or +syntax keyword esqlcOperator in any some all between exists +syntax keyword esqlcOperator like escape +syntax keyword esqlcOperator intersect minus +syntax keyword esqlcOperator prior distinct +syntax keyword esqlcOperator sysdate + +syntax keyword esqlcStatement alter analyze audit comment commit create +syntax keyword esqlcStatement delete drop explain grant insert lock noaudit +syntax keyword esqlcStatement rename revoke rollback savepoint select set +syntax keyword esqlcStatement truncate update + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link esqlcOperator Operator +hi def link esqlcStatement Statement +hi def link esqlcKeyword esqlcSpecial +hi def link esqlcSpecial Special +hi def link esqlcPreProc PreProc + + +let b:current_syntax = "esqlc" + diff --git a/runtime/syntax/esterel.vim b/runtime/syntax/esterel.vim new file mode 100644 index 0000000..b010521 --- /dev/null +++ b/runtime/syntax/esterel.vim @@ -0,0 +1,78 @@ +" Vim syntax file +" Language: ESTEREL +" Maintainer: Maurizio Tranchero - +" Credits: Luca Necchi , Nikos Andrikos +" First Release: Tue May 17 23:49:39 CEST 2005 +" Last Change: Tue May 6 13:29:56 CEST 2008 +" Version: 0.8 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" case is significant +syn case ignore +" Esterel Regions +syn region esterelModule start=/module/ end=/end module/ contains=ALLBUT,esterelModule +syn region esterelLoop start=/loop/ end=/end loop/ contains=ALLBUT,esterelModule +syn region esterelAbort start=/abort/ end=/when/ contains=ALLBUT,esterelModule +syn region esterelAbort start=/weak abort/ end=/when/ contains=ALLBUT,esterelModule +syn region esterelEvery start=/every/ end=/end every/ contains=ALLBUT,esterelModule +syn region esterelIf start=/if/ end=/end if/ contains=ALLBUT,esterelModule +syn region esterelConcurrent transparent start=/\[/ end=/\]/ contains=ALLBUT,esterelModule +syn region esterelIfThen start=/if/ end=/then/ oneline +" Esterel Keywords +syn keyword esterelIO input output inputoutput constant +syn keyword esterelBoolean and or not xor xnor nor nand +syn keyword esterelExpressions mod pre +syn keyword esterelStatement nothing halt +syn keyword esterelStatement module signal sensor end +syn keyword esterelStatement every do loop abort weak +syn keyword esterelStatement emit present await +syn keyword esterelStatement pause when immediate +syn keyword esterelStatement if then else case +syn keyword esterelStatement var in run suspend +syn keyword esterelStatement repeat times combine with +syn keyword esterelStatement assert sustain +" check what it is the following +syn keyword esterelStatement relation +syn keyword esterelFunctions function procedure task +syn keyword esterelSysCall call trap exit exec +" Esterel Types +syn keyword esterelType integer float bolean +" Esterel Comment +syn match esterelComment "%.*$" +" Operators and special characters +syn match esterelSpecial ":" +syn match esterelSpecial "<=" +syn match esterelSpecial ">=" +syn match esterelSpecial "+" +syn match esterelSpecial "-" +syn match esterelSpecial "=" +syn match esterelSpecial ";" +syn match esterelSpecial "/" +syn match esterelSpecial "?" +syn match esterelOperator "\[" +syn match esterelOperator "\]" +syn match esterelOperator ":=" +syn match esterelOperator "||" +syn match esterelStatement "\<\(if\|else\)\>" +syn match esterelNone "\$" +syn match esterelNone "\\s" + +" Class Linking + +hi def link esterelStatement Statement +hi def link esterelType Type +hi def link esterelComment Comment +hi def link esterelBoolean Number +hi def link esterelExpressions Number +hi def link esterelIO String +hi def link esterelOperator Type +hi def link esterelSysCall Type +hi def link esterelFunctions Type +hi def link esterelSpecial Special + + +let b:current_syntax = "esterel" diff --git a/runtime/syntax/eterm.vim b/runtime/syntax/eterm.vim new file mode 100644 index 0000000..9b43cb2 --- /dev/null +++ b/runtime/syntax/eterm.vim @@ -0,0 +1,429 @@ +" Vim syntax file +" Language: eterm(1) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-21 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword etermTodo contained TODO FIXME XXX NOTE + +syn region etermComment display oneline start='^#' end='$' + \ contains=etermTodo,@Spell + +syn match etermMagic display '^$' + +syn match etermNumber contained display '\<\(\d\+\|0x\x\{1,2}\)\>' + +syn region etermString contained display oneline start=+"+ + \ skip=+\\"+ end=+"+ + +syn keyword etermBoolean contained on off true false yes no + +syn keyword etermPreProc contained appname exec get put random version + \ include preproc + +syn keyword etermFunctions contained copy exit kill nop paste save + \ scroll search spawn + +syn cluster etermGeneral contains=etermComment,etermFunction, + \ etermPreProc + +syn keyword etermKeyMod contained ctrl shift lock mod1 mod2 mod3 mod4 + \ mod5 alt meta anymod +syn keyword etermKeyMod contained button1 button2 button3 button4 + \ button5 + +syn keyword etermColorOptions contained video nextgroup=etermVideoOptions + \ skipwhite + +syn keyword etermVideoType contained normal reverse + +syn keyword etermColorOptions contained foreground background cursor + \ cursor_text pointer + \ nextgroup=etermColorType skipwhite + +syn keyword etermColorType contained bd ul +syn match etermColorType contained display '\<\%(\d\|1[0-5]\)' + +syn keyword etermColorOptions contained color + \ nextgroup=etermColorNumber skipwhite + +syn keyword etermColorNumber contained bd ul nextgroup=etermColorSpec + \ skipwhite +syn match etermColorNumber contained display '\<\%(\d\|1[0-5]\)' + \ nextgroup=etermColorSpec skipwhite + +syn match etermColorSpec contained display '\S\+' + +syn region etermColorContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+color\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermColorOptions + +syn keyword etermAttrOptions contained geometry nextgroup=etermGeometry + \ skipwhite + +syn match etermGeometry contained display '\d\+x\d++\d\++\d\+' + +syn keyword etermAttrOptions contained scrollbar_type + \ nextgroup=etermScrollbarType skipwhite + +syn keyword etermScrollbarType contained motif xterm next + +syn keyword etermAttrOptions contained font nextgroup=etermFontType + \ skipwhite + +syn keyword etermFontType contained bold nextgroup=etermFont skipwhite +syn match etermFontType contained display '[0-5]' nextgroup=etermFont + \ skipwhite + +syn match etermFont contained display '\S\+' + +syn keyword etermFontType contained default nextgroup=etermNumber + \ skipwhite + +syn keyword etermFontType contained proportional nextgroup=etermBoolean + \ skipwhite + +syn keyword etermFontType contained fx nextgroup=etermString skipwhite + +syn keyword etermAttrOptions contained title name iconname + \ nextgroup=etermString skipwhite + +syn keyword etermAttrOptions contained scrollbar_width desktop + \ nextgroup=etermNumber skipwhite + +syn region etermAttrContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+attributes\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermAttrOptions + +syn keyword etermIClassOptions contained icon path nextgroup=etermString + \ skipwhite +syn keyword etermIClassOptions contained cache nextgroup=etermNumber + \ skipwhite +syn keyword etermIClassOptions contained anim nextgroup=etermNumber + \ skipwhite + +syn region etermIClassContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+imageclasses\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermImageContext, + \ etermIClassOptions + +syn keyword etermImageOptions contained type nextgroup=etermImageType + \ skipwhite + +syn keyword etermImageTypes contained background trough anchor up_arrow + \ left_arrow right_arrow menu menuitem + \ submenu button buttonbar down_arrow + +syn keyword etermImageOptions contained mode nextgroup=etermImageModes + \ skipwhite + +syn keyword etermImageModes contained image trans viewport auto solid + \ nextgroup=etermImageModesAllow skipwhite +syn keyword etermImageModesAllow contained allow nextgroup=etermImageModesR + \ skipwhite +syn keyword etermImageModesR contained image trans viewport auto solid + +syn keyword etermImageOptions contained state nextgroup=etermImageState + \ skipwhite + +syn keyword etermImageState contained normal selected clicked disabled + +syn keyword etermImageOptions contained color nextgroup=etermImageColorFG + \ skipwhite + +syn keyword etermImageColorFG contained '\S\+' nextgroup=etermImageColorBG + \ skipwhite + +syn keyword etermImageColorBG contained '\S\+' + +syn keyword etermImageOptions contained file nextgroup=etermString + \ skipwhite + +syn keyword etermImageOptions contained geom nextgroup=etermImageGeom + \ skipwhite + +syn match etermImageGeom contained display + \ '\s\+\%(\d\+x\d\++\d\++\d\+\)\=:\%(\%(tie\|scale\|hscale\|vscale\|propscale\)d\=\)\=' + +syn keyword etermImageOptions contained cmod colormod + \ nextgroup=etermImageCmod skipwhite + +syn keyword etermImageCmod contained image red green blue + \ nextgroup=etermImageBrightness skipwhite + +syn match etermImageBrightness contained display '\<\(\d\+\|0x\x\{1,2}\)\>' + \ nextgroup=etermImageContrast skipwhite + +syn match etermImageContrast contained display '\<\(\d\+\|0x\x\{1,2}\)\>' + \ nextgroup=etermImageGamma skipwhite + +syn match etermImageGamma contained display '\<\(\d\+\|0x\x\{1,2}\)\>' + \ nextgroup=etermImageGamma skipwhite + +syn region etermImageOptions contained display oneline + \ matchgroup=etermImageOptions + \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding' + \ end='$' contains=etermNumber + +syn region etermImageContext contained fold transparent + \ matchgroup=etermContext + \ start='^\s*begin\s\+image\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermImageOptions + +syn keyword etermMenuItemOptions contained action + \ nextgroup=etermMenuItemAction skipwhite + +syn keyword etermMenuItemAction contained string echo submenu script + \ nextgroup=etermString skipwhite + +syn keyword etermMenuItemAction contained separator + +syn keyword etermMenuItemOptions contained text rtext nextgroup=etermString + \ skipwhite + +syn region etermMenuItemContext contained fold transparent + \ matchgroup=etermContext + \ start='^\s*begin\s\+menuitem\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermMenuItemOptions + +syn keyword etermMenuOptions contained title nextgroup=etermString + \ skipwhite + +syn keyword etermMenuOptions contained font_name nextgroup=etermFont + \ skipwhite + +syn match etermMenuOptions contained display '\\|-' + +syn region etermMenuContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+menu\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermMenuOptions, + \ etermMenuItemContext + +syn keyword etermBind contained bind nextgroup=etermBindMods + \ skipwhite + +syn keyword etermBindMods contained ctrl shift lock mod1 mod2 mod3 mod4 + \ mod5 alt meta anymod + \ nextgroup=etermBindMods skipwhite + +syn keyword etermBindTo contained to nextgroup=etermBindType + \ skipwhite + +syn keyword etermBindType contained string echo menu script + \ nextgroup=etermBindParam skipwhite + +syn match etermBindParam contained display '\S\+' + +syn region etermActionsContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+actions\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermActionsOptions + +syn keyword etermButtonOptions contained font nextgroup=etermFont skipwhite +syn keyword etermButtonOptions contained visible nextgroup=etermBoolean + \ skipwhite +syn keyword etermButtonOptions contained dock nextgroup=etermDockOption + \ skipwhite + +syn keyword etermDockOption contained top bottom no + +syn keyword etermButton contained button nextgroup=etermButtonText + \ skipwhite + +syn region etermButtonText contained display oneline start=+"+ + \ skip=+\\"+ end=+"+ + \ nextgroup=etermButtonIcon skipwhite + +syn keyword etermButtonIcon contained icon nextgroup=etermButtonIconFile + \ skipwhite + +syn keyword etermButtonIconFile contained '\S\+' nextgroup=etermButtonAction + \ skipwhite + +syn keyword etermButtonAction contained action nextgroup=etermBindType + \ skipwhite + +syn region etermButtonContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+button_bar\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermButtonOptions + +syn keyword etermMultiOptions contained encoding nextgroup=etermEncoding + \ skipwhite + +syn keyword etermEncoding eucj sjis euckr big5 gb +syn match etermEncoding display 'iso-10646' + +syn keyword etermMultiOptions contained font nextgroup=etermFontType + \ skipwhite + +syn region etermMultiContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+multichar\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermMultiOptions + +syn keyword etermXimOptions contained input_method + \ nextgroup=etermInputMethod skipwhite + +syn match etermInputMethod contained display '\S+' + +syn keyword etermXimOptions contained preedit_type + \ nextgroup=etermPreeditType skipwhite + +syn keyword etermPreeditType contained OverTheSpot OffTheSpot Root + +syn region etermXimContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+xim\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermXimOptions + +syn keyword etermTogOptions contained map_alert visual_bell login_shell + \ scrollbar utmp_logging meta8 iconic + \ no_input home_on_output home_on_input + \ scrollbar_floating scrollbar_right + \ scrollbar_popup borderless double_buffer + \ no_cursor pause xterm_select select_line + \ select_trailing_spaces report_as_keysyms + \ itrans immotile_trans buttonbar + \ resize_gravity nextgroup=etermBoolean + \ skipwhite + +syn region etermTogContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+toggles\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermTogOptions + +syn keyword etermKeyboardOptions contained smallfont_key bigfont_key keysym + \ nextgroup=etermKeysym skipwhite + +syn keyword etermKeysym contained '\S\+' nextgroup=etermString + \ skipwhite + +syn keyword etermKeyboardOptions contained meta_mod alt_mod numlock_mod + \ nextgroup=etermNumber skipwhite + +syn keyword etermKeyboardOptions contained greek app_keypad app_cursor + \ nextgroup=etermBoolean skipwhite + +syn region etermKeyboardContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+keyboard\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermKeyboardOptions + +syn keyword etermMiscOptions contained print_pipe cut_chars finished_title + \ finished_text term_name exec + \ nextgroup=etermString skipwhite + +syn keyword etermMiscOptions contained save_lines min_anchor_size + \ border_width line_space + +syn region etermMiscContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+misc\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermMiscOptions + +syn keyword etermEScreenOptions contained url nextgroup=etermURL skipwhite + +syn match etermURL contained display + \ '\<\%(screen\|twin\)://\%([^@:/]\+\%(@[^:/]\+\%(:[^/]\+\)\=\)\=\)\=/\S\+' + +syn keyword etermEScreenOptions contained firewall + +syn keyword etermEScreenOptions contained delay nextgroup=etermNumber + \ skipwhite + +syn keyword etermEScreenOptions contained bbar_font nextgroup=etermFont + \ skipwhite + +syn keyword etermEScreenOptions contained bbar_dock nextgroup=etermDockOption + \ skipwhite + +syn region etermEScreenContext fold transparent matchgroup=etermContext + \ start='^\s*begin\s\+escreen\>' + \ end='^\s*end\>' + \ contains=@etermGeneral,etermEScreenOptions + +if exists("eterm_minlines") + let b:eterm_minlines = eterm_minlines +else + let b:eterm_minlines = 50 +endif +exec "syn sync minlines=" . b:eterm_minlines + +hi def link etermTodo Todo +hi def link etermComment Comment +hi def link etermMagic PreProc +hi def link etermNumber Number +hi def link etermString String +hi def link etermBoolean Boolean +hi def link etermPreProc PreProc +hi def link etermFunctions Function +hi def link etermKeyMod Constant +hi def link etermOption Keyword +hi def link etermColorOptions etermOption +hi def link etermColor String +hi def link etermVideoType Type +hi def link etermColorType Type +hi def link etermColorNumber Number +hi def link etermColorSpec etermColor +hi def link etermContext Keyword +hi def link etermAttrOptions etermOption +hi def link etermGeometry String +hi def link etermScrollbarType Type +hi def link etermFontType Type +hi def link etermIClassOptions etermOption +hi def link etermImageOptions etermOption +hi def link etermImageTypes Type +hi def link etermImageModes Type +hi def link etermImageModesAllow Keyword +hi def link etermImageModesR Type +hi def link etermImageState Keyword +hi def link etermImageColorFG etermColor +hi def link etermImageColorBG etermColor +hi def link etermImageGeom String +hi def link etermImageCmod etermOption +hi def link etermImageBrightness Number +hi def link etermImageContrast Number +hi def link etermImageGamma Number +hi def link etermMenuItemOptions etermOption +hi def link etermMenuItemAction Keyword +hi def link etermMenuOptions etermOption +hi def link etermBind Keyword +hi def link etermBindMods Identifier +hi def link etermBindTo Keyword +hi def link etermBindType Type +hi def link etermBindParam String +hi def link etermButtonOptions etermOption +hi def link etermDockOption etermOption +hi def link etermButtonText String +hi def link etermButtonIcon String +hi def link etermButtonIconFile String +hi def link etermButtonAction Keyword +hi def link etermMultiOptions etermOption +hi def link etermEncoding Identifier +hi def link etermXimOptions etermOption +hi def link etermInputMethod Identifier +hi def link etermPreeditType Type +hi def link etermTogOptions etermOption +hi def link etermKeyboardOptions etermOption +hi def link etermKeysym Constant +hi def link etermMiscOptions etermOption +hi def link etermEScreenOptions etermOption +hi def link etermURL Identifier + +let b:current_syntax = "eterm" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/euphoria3.vim b/runtime/syntax/euphoria3.vim new file mode 100644 index 0000000..ece1402 --- /dev/null +++ b/runtime/syntax/euphoria3.vim @@ -0,0 +1,133 @@ +" Vim syntax file +" Language: Euphoria 3.1.1 - supports DOS - (http://www.rapideuphoria.com/) +" Maintainer: Shian Lee +" Last Change: 2014 Feb 24 (for Vim 7.4) +" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim; +" For details see :help ft-euphoria-syntax + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Reset compatible-options to Vim default value, just in case: +let s:save_cpo = &cpo +set cpo&vim + +" Should suffice for very long expressions: +syn sync lines=40 + +" Euphoria is a case-sensitive language (with only 4 builtin types): +syntax case match + +" Keywords/Builtins for Debug - from $EUDIR/bin/keywords.e: +syn keyword euphoria3Debug with without trace profile +syn keyword euphoria3Debug profile_time warning type_check + +" Keywords (Statments) - from $EUDIR/bin/keywords.e: +syn keyword euphoria3Keyword if end then procedure else for return +syn keyword euphoria3Keyword do elsif while type constant to and or +syn keyword euphoria3Keyword exit function global by not include +syn keyword euphoria3Keyword xor + +" Builtins (Identifiers) - from $EUDIR/bin/keywords.e: +syn keyword euphoria3Builtin length puts integer sequence position object +syn keyword euphoria3Builtin append prepend print printf +syn keyword euphoria3Builtin clear_screen floor getc gets get_key +syn keyword euphoria3Builtin rand repeat atom compare find match +syn keyword euphoria3Builtin time command_line open close getenv +syn keyword euphoria3Builtin sqrt sin cos tan log system date remainder +syn keyword euphoria3Builtin power machine_func machine_proc abort peek poke +syn keyword euphoria3Builtin call sprintf arctan and_bits or_bits xor_bits +syn keyword euphoria3Builtin not_bits pixel get_pixel mem_copy mem_set +syn keyword euphoria3Builtin c_proc c_func routine_id call_proc call_func +syn keyword euphoria3Builtin poke4 peek4s peek4u equal system_exec +syn keyword euphoria3Builtin platform task_create task_schedule task_yield +syn keyword euphoria3Builtin task_self task_suspend task_list +syn keyword euphoria3Builtin task_status task_clock_stop task_clock_start +syn keyword euphoria3Builtin find_from match_from +" Builtins (Identifiers) shortcuts for length() and print(): +syn match euphoria3Builtin "\$" +syn match euphoria3Builtin "?" + +" Library Identifiers (Function) - from $EUDIR/doc/library.doc: +syn keyword euphoria3Library reverse sort custom_sort lower upper +syn keyword euphoria3Library wildcard_match wildcard_file arcsin +syn keyword euphoria3Library arccos PI flush lock_file unlock_file +syn keyword euphoria3Library pretty_print sprint get_bytes prompt_string +syn keyword euphoria3Library wait_key get prompt_number value seek where +syn keyword euphoria3Library current_dir chdir dir walk_dir allow_break +syn keyword euphoria3Library check_break get_mouse mouse_events mouse_pointer +syn keyword euphoria3Library tick_rate sleep get_position graphics_mode +syn keyword euphoria3Library video_config scroll wrap text_color bk_color +syn keyword euphoria3Library palette all_palette get_all_palette read_bitmap +syn keyword euphoria3Library save_bitmap get_active_page set_active_page +syn keyword euphoria3Library get_display_page set_display_page sound +syn keyword euphoria3Library cursor text_rows get_screen_char put_screen_char +syn keyword euphoria3Library save_text_image display_text_image draw_line +syn keyword euphoria3Library polygon ellipse save_screen save_image display_image +syn keyword euphoria3Library dos_interrupt allocate free allocate_low free_low +syn keyword euphoria3Library allocate_string register_block unregister_block +syn keyword euphoria3Library get_vector set_vector lock_memory int_to_bytes +syn keyword euphoria3Library bytes_to_int int_to_bits bits_to_int atom_to_float64 +syn keyword euphoria3Library atom_to_float32 float64_to_atom float32_to_atom +syn keyword euphoria3Library set_rand use_vesa crash_file crash_message +syn keyword euphoria3Library crash_routine open_dll define_c_proc define_c_func +syn keyword euphoria3Library define_c_var call_back message_box free_console +syn keyword euphoria3Library instance + +" Library Identifiers (Function) - from $EUDIR/doc/database.doc: +syn keyword euphoria3Library db_create db_open db_select db_close db_create_table +syn keyword euphoria3Library db_select_table db_rename_table db_delete_table +syn keyword euphoria3Library db_table_list db_table_size db_find_key db_record_key +syn keyword euphoria3Library db_record_data db_insert db_delete_record +syn keyword euphoria3Library db_replace_data db_compress db_dump db_fatal_id + +" Linux shell comment (#!...): +syn match euphoria3Comment "\%^#!.*$" +" Comment on one line: +syn region euphoria3Comment start=/--/ end=/$/ + +" Delimiters and brackets: +syn match euphoria3Delimit "[([\])]" +syn match euphoria3Delimit "\.\." +syn match euphoria3Operator "[{}]" + +" Character constant: +syn region euphoria3Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline + +" String constant: +syn region euphoria3String start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline + +" Hexadecimal integer: +syn match euphoria3Number "#[0-9A-F]\+\>" + +" Integer/Floating point without a dot: +syn match euphoria3Number "\<\d\+\>" +" Floating point with dot: +syn match euphoria3Number "\<\d\+\.\d*\>" +" Floating point starting with a dot: +syn match euphoria3Number "\.\d\+\>" +" Boolean constants: +syn keyword euphoria3Boolean true TRUE false FALSE + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet: +hi def link euphoria3Comment Comment +hi def link euphoria3String String +hi def link euphoria3Char Character +hi def link euphoria3Number Number +hi def link euphoria3Boolean Boolean +hi def link euphoria3Builtin Identifier +hi def link euphoria3Library Function +hi def link euphoria3Keyword Statement +hi def link euphoria3Operator Statement +hi def link euphoria3Debug Debug +hi def link euphoria3Delimit Delimiter + +let b:current_syntax = "euphoria3" + +" Restore current compatible-options: +let &cpo = s:save_cpo +unlet s:save_cpo + diff --git a/runtime/syntax/euphoria4.vim b/runtime/syntax/euphoria4.vim new file mode 100644 index 0000000..baa0e8e --- /dev/null +++ b/runtime/syntax/euphoria4.vim @@ -0,0 +1,245 @@ +" Vim syntax file +" Language: Euphoria 4.0.5 (http://www.openeuphoria.org/) +" Maintainer: Shian Lee +" Last Change: 2014 Feb 26 (for Vim 7.4) +" Remark: Euphoria has two syntax files, euphoria3.vim and euphoria4.vim; +" For details see :help ft-euphoria-syntax + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Reset compatible-options to Vim default value, just in case: +let s:save_cpo = &cpo +set cpo&vim + +" Should suffice for very long strings and expressions: +syn sync lines=40 + +" Euphoria is a case-sensitive language (with only 4 builtin types): +syntax case match + +" Some keywords/Builtins for Debug - from $EUDIR/include/euphoria/keywords.e: +syn keyword euphoria4Debug with without trace profile batch check indirect +syn keyword euphoria4Debug includes inline warning define + +" Keywords for conditional compilation - from $EUDIR/include/euphoria/keywords.e: +syn keyword euphoria4PreProc elsedef elsifdef ifdef + +" Keywords (Statements) - from $EUDIR/include/euphoria/keywords.e: +syn keyword euphoria4Keyword and as break by case constant continue do else +syn keyword euphoria4Keyword elsif end entry enum exit export +syn keyword euphoria4Keyword fallthru for function global goto if include +syn keyword euphoria4Keyword label loop namespace not or override procedure +syn keyword euphoria4Keyword public retry return routine switch then to type +syn keyword euphoria4Keyword until while xor + +" Builtins (Identifiers) - from $EUDIR/include/euphoria/keywords.e: +syn keyword euphoria4Builtin abort and_bits append arctan atom c_func c_proc +syn keyword euphoria4Builtin call call_func call_proc clear_screen close +syn keyword euphoria4Builtin command_line compare cos date delete delete_routine +syn keyword euphoria4Builtin equal find floor get_key getc getenv gets hash +syn keyword euphoria4Builtin head include_paths insert integer length log +syn keyword euphoria4Builtin machine_func machine_proc match mem_copy mem_set +syn keyword euphoria4Builtin not_bits object open option_switches or_bits peek +syn keyword euphoria4Builtin peek2s peek2u peek4s peek4u peek_string peeks pixel +syn keyword euphoria4Builtin platform poke poke2 poke4 position power prepend +syn keyword euphoria4Builtin print printf puts rand remainder remove repeat +syn keyword euphoria4Builtin replace routine_id sequence sin splice sprintf +syn keyword euphoria4Builtin sqrt system system_exec tail tan task_clock_start +syn keyword euphoria4Builtin task_clock_stop task_create task_list task_schedule +syn keyword euphoria4Builtin task_self task_status task_suspend task_yield time +syn keyword euphoria4Builtin xor_bits +" Builtins (Identifiers) shortcuts for length() and print(): +syn match euphoria4Builtin "\$" +syn match euphoria4Builtin "?" + +" Library Identifiers (Function) - grep from $EUDIR/include/*: +syn keyword euphoria4Library DEP_on SyntaxColor abbreviate_path abs absolute_path +syn keyword euphoria4Library accept add add_item all_copyrights all_matches +syn keyword euphoria4Library allocate allocate_code allocate_data allocate_low +syn keyword euphoria4Library allocate_pointer_array allocate_protect +syn keyword euphoria4Library allocate_string allocate_string_pointer_array +syn keyword euphoria4Library allocate_wstring allocations allow_break any_key +syn keyword euphoria4Library append_lines apply approx arccos arccosh arcsin +syn keyword euphoria4Library arcsinh arctanh assert at atan2 atom_to_float32 +syn keyword euphoria4Library atom_to_float64 attr_to_colors avedev average +syn keyword euphoria4Library begins binary_search bind binop_ok bits_to_int +syn keyword euphoria4Library bk_color breakup build_commandline build_list +syn keyword euphoria4Library bytes_to_int calc_hash calc_primes call_back +syn keyword euphoria4Library canon2win canonical canonical_path ceil +syn keyword euphoria4Library central_moment chance char_test chdir +syn keyword euphoria4Library check_all_blocks check_break check_free_list +syn keyword euphoria4Library checksum clear clear_directory cmd_parse +syn keyword euphoria4Library colors_to_attr columnize combine connect +syn keyword euphoria4Library console_colors copy copy_file cosh count crash +syn keyword euphoria4Library crash_file crash_message crash_routine create +syn keyword euphoria4Library create_directory create_file curdir current_dir +syn keyword euphoria4Library cursor custom_sort datetime days_in_month +syn keyword euphoria4Library days_in_year db_cache_clear db_clear_table db_close +syn keyword euphoria4Library db_compress db_connect db_create db_create_table +syn keyword euphoria4Library db_current db_current_table db_delete_record +syn keyword euphoria4Library db_delete_table db_dump db_fetch_record db_find_key +syn keyword euphoria4Library db_get_errors db_get_recid db_insert db_open +syn keyword euphoria4Library db_record_data db_record_key db_record_recid +syn keyword euphoria4Library db_rename_table db_replace_data db_replace_recid +syn keyword euphoria4Library db_select db_select_table db_set_caching +syn keyword euphoria4Library db_table_list db_table_size deallocate decanonical +syn keyword euphoria4Library decode defaulted_value defaultext define_c_func +syn keyword euphoria4Library define_c_proc define_c_var deg2rad delete_file +syn keyword euphoria4Library dep_works dequote deserialize diff dir dir_size +syn keyword euphoria4Library dirname disk_metrics disk_size display +syn keyword euphoria4Library display_text_image dnsquery driveid dump dup emovavg +syn keyword euphoria4Library encode ends ensure_in_list ensure_in_range +syn keyword euphoria4Library error_code error_message error_no error_string +syn keyword euphoria4Library error_to_string escape euphoria_copyright exec +syn keyword euphoria4Library exp extract fetch fib file_exists file_length +syn keyword euphoria4Library file_timestamp file_type filebase fileext filename +syn keyword euphoria4Library filter find_all find_all_but find_any find_each +syn keyword euphoria4Library find_nested find_replace find_replace_callback +syn keyword euphoria4Library find_replace_limit flags_to_string flatten +syn keyword euphoria4Library float32_to_atom float64_to_atom flush for_each +syn keyword euphoria4Library format frac free free_code free_console free_low +syn keyword euphoria4Library free_pointer_array from_date from_unix gcd geomean +syn keyword euphoria4Library get get_bytes get_charsets get_def_lang +syn keyword euphoria4Library get_display_page get_dstring get_encoding_properties +syn keyword euphoria4Library get_integer16 get_integer32 get_lang_path get_lcid +syn keyword euphoria4Library get_mouse get_option get_ovector_size get_pid +syn keyword euphoria4Library get_position get_rand get_screen_char get_text +syn keyword euphoria4Library get_vector getaddrinfo getmxrr getnsrr graphics_mode +syn keyword euphoria4Library harmean has has_console has_match hex_text +syn keyword euphoria4Library host_by_addr host_by_name http_get http_post iff +syn keyword euphoria4Library iif info init_class init_curdir insertion_sort +syn keyword euphoria4Library instance int_to_bits int_to_bytes intdiv +syn keyword euphoria4Library is_DEP_supported is_empty is_even is_even_obj +syn keyword euphoria4Library is_in_list is_in_range is_inetaddr is_leap_year +syn keyword euphoria4Library is_match is_using_DEP is_win_nt join join_path +syn keyword euphoria4Library keep_comments keep_newlines key_codes keys keyvalues +syn keyword euphoria4Library kill kurtosis lang_load larger_of largest last +syn keyword euphoria4Library listen load load_map locate_file lock_file +syn keyword euphoria4Library lock_memory log10 lookup lower malloc mapping +syn keyword euphoria4Library match_all match_any match_replace matches max +syn keyword euphoria4Library maybe_any_key median memory_used merge message_box +syn keyword euphoria4Library mid min minsize mod mode money mouse_events +syn keyword euphoria4Library mouse_pointer movavg move_file nested_get +syn keyword euphoria4Library nested_put new new_extra new_from_kvpairs +syn keyword euphoria4Library new_from_string new_time next_prime now now_gmt +syn keyword euphoria4Library number open_dll optimize option_spec_to_string +syn keyword euphoria4Library or_all pad_head pad_tail pairs parse +syn keyword euphoria4Library parse_commandline parse_ip_address parse_querystring +syn keyword euphoria4Library parse_url patch pathinfo pathname pcre_copyright +syn keyword euphoria4Library peek_end peek_top peek_wstring pivot platform_name +syn keyword euphoria4Library poke_string poke_wstring pop powof2 prepare_block +syn keyword euphoria4Library pretty_print pretty_sprint prime_list process_lines +syn keyword euphoria4Library product project prompt_number prompt_string proper +syn keyword euphoria4Library push put put_integer16 put_integer32 put_screen_char +syn keyword euphoria4Library quote rad2deg rand_range range raw_frequency read +syn keyword euphoria4Library read_bitmap read_file read_lines receive receive_from +syn keyword euphoria4Library register_block rehash remove_all remove_directory +syn keyword euphoria4Library remove_dups remove_item remove_subseq rename_file +syn keyword euphoria4Library repeat_pattern reset retain_all reverse rfind rmatch +syn keyword euphoria4Library rnd rnd_1 roll rotate rotate_bits round safe_address +syn keyword euphoria4Library sample save_bitmap save_map save_text_image scroll +syn keyword euphoria4Library seek select send send_to serialize series +syn keyword euphoria4Library service_by_name service_by_port set +syn keyword euphoria4Library set_accumulate_summary set_charsets set_colors +syn keyword euphoria4Library set_decimal_mark set_def_lang set_default_charsets +syn keyword euphoria4Library set_encoding_properties set_keycodes set_lang_path +syn keyword euphoria4Library set_option set_rand set_test_abort set_test_verbosity +syn keyword euphoria4Library set_vector set_wait_on_summary setenv shift_bits +syn keyword euphoria4Library show_block show_help show_tokens shuffle shutdown +syn keyword euphoria4Library sign sim_index sinh size skewness sleep slice small +syn keyword euphoria4Library smaller_of smallest sort sort_columns sound split +syn keyword euphoria4Library split_any split_limit split_path sprint start_time +syn keyword euphoria4Library statistics stdev store string_numbers subtract sum +syn keyword euphoria4Library sum_central_moments swap tanh task_delay temp_file +syn keyword euphoria4Library test_equal test_exec test_fail test_false +syn keyword euphoria4Library test_not_equal test_pass test_read test_report +syn keyword euphoria4Library test_true test_write text_color text_rows threshold +syn keyword euphoria4Library tick_rate to_integer to_number to_string to_unix +syn keyword euphoria4Library tokenize_file tokenize_string top transform translate +syn keyword euphoria4Library transmute trim trim_head trim_tail trsprintf trunc +syn keyword euphoria4Library type_of uname unlock_file unregister_block unsetenv +syn keyword euphoria4Library upper use_vesa valid valid_index value values version +syn keyword euphoria4Library version_date version_major version_minor version_node +syn keyword euphoria4Library version_patch version_revision version_string +syn keyword euphoria4Library version_string_long version_string_short version_type +syn keyword euphoria4Library video_config vlookup vslice wait_key walk_dir +syn keyword euphoria4Library warning_file weeks_day where which_bit wildcard_file +syn keyword euphoria4Library wildcard_match wrap write write_file write_lines +syn keyword euphoria4Library writef writefln years_day + +" Library Identifiers (Type) - grep from $EUDIR/include/*: +syn keyword euphoria4Type ascii_string boolean bordered_address byte_range +syn keyword euphoria4Type case_flagset_type color cstring +syn keyword euphoria4Type file_number file_position graphics_point +syn keyword euphoria4Type integer_array lcid lock_type machine_addr map +syn keyword euphoria4Type mixture number_array option_spec +syn keyword euphoria4Type page_aligned_address positive_int process regex +syn keyword euphoria4Type sequence_array socket stack std_library_address +syn keyword euphoria4Type string t_alnum t_alpha t_ascii t_boolean +syn keyword euphoria4Type t_bytearray t_cntrl t_consonant t_digit t_display +syn keyword euphoria4Type t_graph t_identifier t_lower t_print t_punct +syn keyword euphoria4Type t_space t_specword t_text t_upper t_vowel t_xdigit +syn keyword euphoria4Type valid_memory_protection_constant valid_wordsize + +" Linux shell comment (#!...): +syn match euphoria4Comment "\%^#!.*$" +" Single and multilines comments: +syn region euphoria4Comment start=/--/ end=/$/ +syn region euphoria4Comment start="/\*" end="\*/" + +" Delimiters and brackets: +syn match euphoria4Delimit "[([\])]" +syn match euphoria4Delimit "\.\." +syn match euphoria4Delimit ":" +syn match euphoria4Operator "[{}]" + +" Character constant: +syn region euphoria4Char start=/'/ skip=/\\'\|\\\\/ end=/'/ oneline + +" String constant (""" must be *after* "): +syn region euphoria4String start=/"/ skip=/\\"\|\\\\/ end=/"/ oneline +syn region euphoria4String start=/b"\|x"/ end=/"/ +syn region euphoria4String start=/`/ end=/`/ +syn region euphoria4String start=/"""/ end=/"""/ + +" Binary/Octal/Decimal/Hexadecimal integer: +syn match euphoria4Number "\<0b[01_]\+\>" +syn match euphoria4Number "\<0t[0-7_]\+\>" +syn match euphoria4Number "\<0d[0-9_]\+\>" +syn match euphoria4Number "\<0x[0-9A-Fa-f_]\+\>" +syn match euphoria4Number "#[0-9A-Fa-f_]\+\>" + +" Integer/Floating point without a dot: +syn match euphoria4Number "\<\d\+\>" +" Floating point with dot: +syn match euphoria4Number "\<\d\+\.\d*\>" +" Floating point starting with a dot: +syn match euphoria4Number "\.\d\+\>" +" Boolean constants: +syn keyword euphoria4Boolean true TRUE false FALSE + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet: +hi def link euphoria4Comment Comment +hi def link euphoria4String String +hi def link euphoria4Char Character +hi def link euphoria4Number Number +hi def link euphoria4Boolean Boolean +hi def link euphoria4Builtin Identifier +hi def link euphoria4Library Function +hi def link euphoria4Type Type +hi def link euphoria4Keyword Statement +hi def link euphoria4Operator Statement +hi def link euphoria4Debug Debug +hi def link euphoria4Delimit Delimiter +hi def link euphoria4PreProc PreProc + +let b:current_syntax = "euphoria4" + +" Restore current compatible-options: +let &cpo = s:save_cpo +unlet s:save_cpo + diff --git a/runtime/syntax/eviews.vim b/runtime/syntax/eviews.vim new file mode 100644 index 0000000..03cfb25 --- /dev/null +++ b/runtime/syntax/eviews.vim @@ -0,0 +1,87 @@ +" Vim syntax file +" Language: Eviews (http://www.eviews.com) +" Maintainer: Vaidotas Zemlys +" Last Change: 2006 Apr 30 +" Filenames: *.prg +" URL: http://uosis.mif.vu.lt/~zemlys/vim-syntax/eviews.vim +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,. + +syn case match + +" Comment +syn match eComment /\'.*/ + +" Constant +" string enclosed in double quotes +syn region eString start=/"/ skip=/\\\\\|\\"/ end=/"/ +" number with no fractional part or exponent +syn match eNumber /\d\+/ +" floating point number with integer and fractional parts and optional exponent +syn match eFloat /\d\+\.\d*\([Ee][-+]\=\d\+\)\=/ +" floating point number with no integer part and optional exponent +syn match eFloat /\.\d\+\([Ee][-+]\=\d\+\)\=/ +" floating point number with no fractional part and optional exponent +syn match eFloat /\d\+[Ee][-+]\=\d\+/ + +" Identifier +" identifier with leading letter and optional following keyword characters +syn match eIdentifier /\a\k*/ + +" Eviews Programing Language +syn keyword eProgLang @date else endif @errorcount @evpath exitloop for if @isobject next poff pon return statusline step stop @temppath then @time to @toc wend while include call subroutine endsub and or + +" Eviews Objects, Views and Procedures +syn keyword eOVP alpha coef equation graph group link logl matrix model pool rowvector sample scalar series sspace sym system table text valmap var vector + + +" Standard Eviews Commands +syn keyword eStdCmd 3sls add addassign addinit addtext align alpha append arch archtest area arlm arma arroots auto axis bar bdstest binary block boxplot boxplotby bplabel cause ccopy cd cdfplot cellipse censored cfetch checkderivs chow clabel cleartext close coef coefcov coint comment control copy cor correl correlsq count cov create cross data datelabel dates db dbcopy dbcreate dbdelete dbopen dbpack dbrebuild dbrename dbrepair decomp define delete derivs describe displayname do draw driconvert drop dtable ec edftest endog eqs equation errbar exclude exit expand fetch fill fiml fit forecast freeze freq frml garch genr gmm grads graph group hconvert hfetch hilo hist hlabel hpf impulse jbera kdensity kerfit label laglen legend line linefit link linkto load logit logl ls makecoint makederivs makeendog makefilter makegarch makegrads makegraph makegroup makelimits makemodel makeregs makeresids makesignals makestates makestats makesystem map matrix means merge metafile ml model msg name nnfit open options ordered output override pageappend pagecontract pagecopy pagecreate pagedelete pageload pagerename pagesave pageselect pagestack pagestruct pageunstack param pcomp pie pool predict print probit program qqplot qstats range read rename representations resample reset residcor residcov resids results rls rndint rndseed rowvector run sample save scalar scale scat scatmat scenario seas seasplot series set setbpelem setcell setcolwidth setconvert setelem setfillcolor setfont setformat setheight setindent setjust setline setlines setmerge settextcolor setwidth sheet show signalgraphs smooth smpl solve solveopt sort spec spike sspace statby statefinal stategraphs stateinit stats statusline stomna store structure sur svar sym system table template testadd testbtw testby testdrop testexog testfit testlags teststat text tic toc trace tramoseats tsls unlink update updatecoefs uroot usage valmap var vars vector wald wfcreate wfopen wfsave wfselect white wls workfile write wtsls x11 x12 xy xyline xypair + +" Constant Identifier +syn match eConstant /\!\k*/ +" String Identifier +syn match eStringId /%\k*/ +" Command Identifier +syn match eCommand /@\k*/ + +" Special +syn match eDelimiter /[,;:]/ + +" Error +syn region eRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError +syn region eRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError +syn region eRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError +syn match eError /[)\]}]/ +syn match eBraceError /[)}]/ contained +syn match eCurlyError /[)\]]/ contained +syn match eParenError /[\]}]/ contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link eComment Comment +hi def link eConstant Identifier +hi def link eStringId Identifier +hi def link eCommand Type +hi def link eString String +hi def link eNumber Number +hi def link eBoolean Boolean +hi def link eFloat Float +hi def link eConditional Conditional +hi def link eProgLang Statement +hi def link eOVP Statement +hi def link eStdCmd Statement +hi def link eIdentifier Normal +hi def link eDelimiter Delimiter +hi def link eError Error +hi def link eBraceError Error +hi def link eCurlyError Error +hi def link eParenError Error + +let b:current_syntax="eviews" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/exim.vim b/runtime/syntax/exim.vim new file mode 100644 index 0000000..4edc0d7 --- /dev/null +++ b/runtime/syntax/exim.vim @@ -0,0 +1,105 @@ +" Vim syntax file +" This is a GENERATED FILE. Please always refer to source file at the URI below. +" Language: Exim configuration file exim.conf +" Maintainer: David Ne\v{c}as (Yeti) +" Last Change: 2002-10-15 +" URL: http://trific.ath.cx/Ftp/vim/syntax/exim.vim + +" Setup +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +" Base constructs +syn match eximComment "^\s*#.*$" contains=eximFixme +syn match eximComment "\s#.*$" contains=eximFixme +syn keyword eximFixme FIXME TODO XXX NOT contained +syn keyword eximConstant true false yes no +syn match eximNumber "\<\d\+[KM]\?\>" +syn match eximNumber "\<0[xX]\x\+\>" +syn match eximNumber "\<\d\+\(\.\d\{,3}\)\?\>" +syn match eximTime "\<\(\d\+[wdhms]\)\+\>" +syn match eximSpecialChar "\\[\\nrt]\|\\\o\{1,3}\|\\x\x\{1,2}" +syn region eximMacroDefinition matchgroup=eximMacroName start="^[A-Z]\i*\s*=" end="$" skip="\\\s*$" transparent + +syn match eximDriverName "\<\(aliasfile\|appendfile\|autoreply\|domainlist\|forwardfile\|ipliteral\|iplookup\|lmtp\|localuser\|lookuphost\|pipe\|queryprogram\|smartuser\|smtp\)\>" +syn match eximTransport "^\s*\i\+:" + +" Options +syn keyword eximEnd end +syn keyword eximKeyword accept_8bitmime accept_timeout admin_groups allow_mx_to_ip always_bcc auth_always_advertise auth_hosts auth_over_tls_hosts auto_thaw bi_command check_log_inodes check_log_space check_spool_inodes check_spool_space collapse_source_routes daemon_smtp_port daemon_smtp_service debug_level delay_warning delay_warning_condition deliver_load_max deliver_queue_load_max delivery_date_remove dns_again_means_nonexist dns_check_names dns_check_names_pattern dns_retrans dns_ipv4_lookup dns_retry envelope_to_remove errmsg_text errmsg_file errors_address errors_copy errors_reply_to exim_group exim_path exim_user extract_addresses_remove_arguments finduser_retries forbid_domain_literals freeze_tell_mailmaster gecos_name gecos_pattern headers_check_syntax headers_checks_fail headers_sender_verify headers_sender_verify_errmsg helo_accept_junk_hosts helo_strict_syntax helo_verify hold_domains host_accept_relay host_auth_accept_relay host_lookup host_reject host_reject_recipients hosts_treat_as_local ignore_errmsg_errors ignore_errmsg_errors_after ignore_fromline_hosts ignore_fromline_local keep_malformed kill_ip_options ldap_default_servers local_domains local_domains_include_host local_domains_include_host_literals local_from_check local_from_prefix local_from_suffix local_interfaces localhost_number locally_caseless log_all_parents log_arguments log_file_path log_incoming_port log_ip_options log_level log_queue_run_level log_received_recipients log_received_sender log_refused_recipients log_rewrites log_sender_on_delivery log_smtp_confirmation log_smtp_connections log_smtp_syntax_errors log_subject lookup_open_max max_username_length message_body_visible message_filter message_filter_directory_transport message_filter_directory2_transport message_filter_file_transport message_filter_group message_filter_pipe_transport message_filter_reply_transport message_filter_user message_id_header_text message_size_limit message_size_limit_count_recipients move_frozen_messages mysql_servers never_users nobody_group nobody_user percent_hack_domains perl_at_start perl_startup pgsql_servers pid_file_path preserve_message_logs primary_hostname print_topbitchars prod_requires_admin prohibition_message qualify_domain qualify_recipient queue_list_requires_admin queue_only queue_only_file queue_only_load queue_remote_domains queue_run_in_order queue_run_max queue_smtp_domains rbl_domains rbl_hosts rbl_log_headers rbl_log_rcpt_count rbl_reject_recipients rbl_warn_header received_header_text received_headers_max receiver_try_verify receiver_unqualified_hosts receiver_verify receiver_verify_addresses receiver_verify_hosts receiver_verify_senders recipients_max recipients_max_reject recipients_reject_except recipients_reject_except_senders refuse_ip_options relay_domains relay_domains_include_local_mx relay_match_host_or_sender remote_max_parallel remote_sort retry_data_expire retry_interval_max return_path_remove return_size_limit rfc1413_hosts rfc1413_query_timeout security sender_address_relay sender_address_relay_hosts sender_reject sender_reject_recipients sender_try_verify sender_unqualified_hosts sender_verify sender_verify_batch sender_verify_callback_domains sender_verify_callback_timeout sender_verify_fixup sender_verify_hosts sender_verify_hosts_callback sender_verify_max_retry_rate sender_verify_reject smtp_accept_keepalive smtp_accept_max smtp_accept_max_per_host smtp_accept_queue smtp_accept_queue_per_connection smtp_accept_reserve smtp_banner smtp_check_spool_space smtp_connect_backlog smtp_etrn_command smtp_etrn_hosts smtp_etrn_serialize smtp_expn_hosts smtp_load_reserve smtp_receive_timeout smtp_reserve_hosts smtp_verify split_spool_directory spool_directory strip_excess_angle_brackets strip_trailing_dot syslog_timestamp timeout_frozen_after timestamps_utc timezone tls_advertise_hosts tls_certificate tls_dhparam tls_host_accept_relay tls_hosts tls_log_cipher tls_log_peerdn tls_privatekey tls_verify_certificates tls_verify_ciphers tls_verify_hosts trusted_groups trusted_users unknown_login unknown_username untrusted_set_sender uucp_from_pattern uucp_from_sender warnmsg_file +syn keyword eximKeyword no_accept_8bitmime no_allow_mx_to_ip no_always_bcc no_auth_always_advertise no_collapse_source_routes no_delivery_date_remove no_dns_check_names no_envelope_to_remove no_extract_addresses_remove_arguments no_forbid_domain_literals no_freeze_tell_mailmaster no_headers_check_syntax no_headers_checks_fail no_headers_sender_verify no_headers_sender_verify_errmsg no_helo_strict_syntax no_ignore_errmsg_errors no_ignore_fromline_local no_kill_ip_options no_local_domains_include_host no_local_domains_include_host_literals no_local_from_check no_locally_caseless no_log_all_parents no_log_arguments no_log_incoming_port no_log_ip_options no_log_received_recipients no_log_received_sender no_log_refused_recipients no_log_rewrites no_log_sender_on_delivery no_log_smtp_confirmation no_log_smtp_connections no_log_smtp_syntax_errors no_log_subject no_message_size_limit_count_recipients no_move_frozen_messages no_preserve_message_logs no_print_topbitchars no_prod_requires_admin no_queue_list_requires_admin no_queue_only no_rbl_log_headers no_rbl_log_rcpt_count no_rbl_reject_recipients no_receiver_try_verify no_receiver_verify no_recipients_max_reject no_refuse_ip_options no_relay_domains_include_local_mx no_relay_match_host_or_sender no_return_path_remove no_sender_try_verify no_sender_verify no_sender_verify_batch no_sender_verify_fixup no_sender_verify_reject no_smtp_accept_keepalive no_smtp_check_spool_space no_smtp_etrn_serialize no_smtp_verify no_split_spool_directory no_strip_excess_angle_brackets no_strip_trailing_dot no_syslog_timestamp no_timestamps_utc no_tls_log_cipher no_tls_log_peerdn no_untrusted_set_sender +syn keyword eximKeyword not_accept_8bitmime not_allow_mx_to_ip not_always_bcc not_auth_always_advertise not_collapse_source_routes not_delivery_date_remove not_dns_check_names not_envelope_to_remove not_extract_addresses_remove_arguments not_forbid_domain_literals not_freeze_tell_mailmaster not_headers_check_syntax not_headers_checks_fail not_headers_sender_verify not_headers_sender_verify_errmsg not_helo_strict_syntax not_ignore_errmsg_errors not_ignore_fromline_local not_kill_ip_options not_local_domains_include_host not_local_domains_include_host_literals not_local_from_check not_locally_caseless not_log_all_parents not_log_arguments not_log_incoming_port not_log_ip_options not_log_received_recipients not_log_received_sender not_log_refused_recipients not_log_rewrites not_log_sender_on_delivery not_log_smtp_confirmation not_log_smtp_connections not_log_smtp_syntax_errors not_log_subject not_message_size_limit_count_recipients not_move_frozen_messages not_preserve_message_logs not_print_topbitchars not_prod_requires_admin not_queue_list_requires_admin not_queue_only not_rbl_log_headers not_rbl_log_rcpt_count not_rbl_reject_recipients not_receiver_try_verify not_receiver_verify not_recipients_max_reject not_refuse_ip_options not_relay_domains_include_local_mx not_relay_match_host_or_sender not_return_path_remove not_sender_try_verify not_sender_verify not_sender_verify_batch not_sender_verify_fixup not_sender_verify_reject not_smtp_accept_keepalive not_smtp_check_spool_space not_smtp_etrn_serialize not_smtp_verify not_split_spool_directory not_strip_excess_angle_brackets not_strip_trailing_dot not_syslog_timestamp not_timestamps_utc not_tls_log_cipher not_tls_log_peerdn not_untrusted_set_sender +syn keyword eximKeyword body_only debug_print delivery_date_add driver envelope_to_add headers_add headers_only headers_remove headers_rewrite message_size_limit return_path return_path_add shadow_condition shadow_transport transport_filter +syn keyword eximKeyword no_body_only no_delivery_date_add no_envelope_to_add no_headers_only no_return_path_add +syn keyword eximKeyword not_body_only not_delivery_date_add not_envelope_to_add not_headers_only not_return_path_add +syn keyword eximKeyword allow_fifo allow_symlink batch batch_max bsmtp bsmtp_helo check_group check_owner check_string create_directory create_file current_directory directory directory_mode escape_string file file_format file_must_exist from_hack group lock_fcntl_timeout lock_interval lock_retries lockfile_mode lockfile_timeout maildir_format maildir_retries maildir_tag mailstore_format mailstore_prefix mailstore_suffix mbx_format mode mode_fail_narrower notify_comsat prefix quota quota_filecount quota_is_inclusive quota_size_regex quota_warn_message quota_warn_threshold require_lockfile retry_use_local_part suffix use_crlf use_fcntl_lock use_lockfile use_mbx_lock user +syn keyword eximKeyword no_allow_fifo no_allow_symlink no_bsmtp_helo no_check_group no_check_owner no_create_directory no_file_must_exist no_from_hack no_maildir_format no_mailstore_format no_mbx_format no_mode_fail_narrower no_notify_comsat no_quota_is_inclusive no_require_lockfile no_retry_use_local_part no_use_crlf no_use_fcntl_lock no_use_lockfile no_use_mbx_lock +syn keyword eximKeyword not_allow_fifo not_allow_symlink not_bsmtp_helo not_check_group not_check_owner not_create_directory not_file_must_exist not_from_hack not_maildir_format not_mailstore_format not_mbx_format not_mode_fail_narrower not_notify_comsat not_quota_is_inclusive not_require_lockfile not_retry_use_local_part not_use_crlf not_use_fcntl_lock not_use_lockfile not_use_mbx_lock +syn keyword eximKeyword bcc cc file file_expand file_optional from group headers initgroups log mode once once_file_size once_repeat reply_to return_message subject text to user +syn keyword eximKeyword no_file_expand no_file_optional no_initgroups no_return_message +syn keyword eximKeyword not_file_expand not_file_optional not_initgroups not_return_message +syn keyword eximKeyword batch batch_max command group initgroups retry_use_local_part timeout user +syn keyword eximKeyword no_initgroups +syn keyword eximKeyword not_initgroups +syn keyword eximKeyword allow_commands batch batch_max bsmtp bsmtp_helo check_string command current_directory environment escape_string freeze_exec_fail from_hack group home_directory ignore_status initgroups log_defer_output log_fail_output log_output max_output path pipe_as_creator prefix restrict_to_path retry_use_local_part return_fail_output return_output suffix temp_errors timeout umask use_crlf use_shell user +syn keyword eximKeyword no_bsmtp_helo no_freeze_exec_fail no_from_hack no_ignore_status no_log_defer_output no_log_fail_output no_log_output no_pipe_as_creator no_restrict_to_path no_return_fail_output no_return_output no_use_crlf no_use_shell +syn keyword eximKeyword not_bsmtp_helo not_freeze_exec_fail not_from_hack not_ignore_status not_log_defer_output not_log_fail_output not_log_output not_pipe_as_creator not_restrict_to_path not_return_fail_output not_return_output not_use_crlf not_use_shell +syn keyword eximKeyword allow_localhost authenticate_hosts batch_max command_timeout connect_timeout data_timeout delay_after_cutoff dns_qualify_single dns_search_parents fallback_hosts final_timeout gethostbyname helo_data hosts hosts_avoid_tls hosts_require_tls hosts_override hosts_max_try hosts_randomize interface keepalive max_rcpt multi_domain mx_domains port protocol retry_include_ip_address serialize_hosts service size_addition tls_certificate tls_privatekey tls_verify_certificates tls_verify_ciphers +syn keyword eximKeyword no_allow_localhost no_delay_after_cutoff no_dns_qualify_single no_dns_search_parents no_gethostbyname no_hosts_override no_hosts_randomize no_keepalive no_multi_domain no_retry_include_ip_address +syn keyword eximKeyword not_allow_localhost not_delay_after_cutoff not_dns_qualify_single not_dns_search_parents not_gethostbyname not_hosts_override not_hosts_randomize not_keepalive not_multi_domain not_retry_include_ip_address +syn keyword eximKeyword condition debug_print domains driver errors_to fail_verify fail_verify_recipient fail_verify_sender fallback_hosts group headers_add headers_remove initgroups local_parts more require_files senders transport unseen user verify verify_only verify_recipient verify_sender +syn keyword eximKeyword no_fail_verify no_fail_verify_recipient no_fail_verify_sender no_initgroups no_more no_unseen no_verify no_verify_only no_verify_recipient no_verify_sender +syn keyword eximKeyword not_fail_verify not_fail_verify_recipient not_fail_verify_sender not_initgroups not_more not_unseen not_verify not_verify_only not_verify_recipient not_verify_sender +syn keyword eximKeyword current_directory expn home_directory new_director prefix prefix_optional suffix suffix_optional +syn keyword eximKeyword no_expn no_prefix_optional no_suffix_optional +syn keyword eximKeyword not_expn not_prefix_optional not_suffix_optional +syn keyword eximKeyword check_ancestor directory_transport directory2_transport file_transport forbid_file forbid_include forbid_pipe freeze_missing_include hide_child_in_errmsg modemask one_time owners owngroups pipe_transport qualify_preserve_domain rewrite skip_syntax_errors syntax_errors_text syntax_errors_to +syn keyword eximKeyword no_check_ancestor no_forbid_file no_forbid_include no_forbid_pipe no_freeze_missing_include no_hide_child_in_errmsg no_one_time no_qualify_preserve_domain no_rewrite no_skip_syntax_errors +syn keyword eximKeyword not_check_ancestor not_forbid_file not_forbid_include not_forbid_pipe not_freeze_missing_include not_hide_child_in_errmsg not_one_time not_qualify_preserve_domain not_rewrite not_skip_syntax_errors +syn keyword eximKeyword expand file forbid_special include_domain optional queries query search_type +syn keyword eximKeyword no_expand no_forbid_special no_include_domain no_optional +syn keyword eximKeyword not_expand not_forbid_special not_include_domain not_optional +syn keyword eximKeyword allow_system_actions check_group check_local_user data file file_directory filter forbid_filter_existstest forbid_filter_logwrite forbid_filter_lookup forbid_filter_perl forbid_filter_reply ignore_eacces ignore_enotdir match_directory reply_transport seteuid +syn keyword eximKeyword no_allow_system_actions no_check_local_user no_forbid_filter_reply no_forbid_filter_existstest no_forbid_filter_logwrite no_forbid_filter_lookup no_forbid_filter_perl no_forbid_filter_reply no_ignore_eacces no_ignore_enotdir no_seteuid +syn keyword eximKeyword not_allow_system_actions not_check_local_user not_forbid_filter_reply not_forbid_filter_existstest not_forbid_filter_logwrite not_forbid_filter_lookup not_forbid_filter_perl not_forbid_filter_reply not_ignore_eacces not_ignore_enotdir not_seteuid +syn keyword eximKeyword match_directory +syn keyword eximKeyword directory_transport directory2_transport file_transport forbid_file forbid_pipe hide_child_in_errmsg new_address panic_expansion_fail pipe_transport qualify_preserve_domain rewrite +syn keyword eximKeyword no_forbid_file no_forbid_pipe no_hide_child_in_errmsg no_panic_expansion_fail no_qualify_preserve_domain no_rewrite +syn keyword eximKeyword not_forbid_file not_forbid_pipe not_hide_child_in_errmsg not_panic_expansion_fail not_qualify_preserve_domain not_rewrite +syn keyword eximKeyword ignore_target_hosts pass_on_timeout self translate_ip_address +syn keyword eximKeyword no_pass_on_timeout +syn keyword eximKeyword not_pass_on_timeout +syn keyword eximKeyword host_find_failed hosts_randomize modemask owners owngroups qualify_single route_file route_list route_queries route_query search_parents search_type +syn keyword eximKeyword no_hosts_randomize no_qualify_single no_search_parents +syn keyword eximKeyword not_hosts_randomize not_qualify_single not_search_parents +syn keyword eximKeyword hosts optional port protocol query reroute response_pattern service timeout +syn keyword eximKeyword no_optional +syn keyword eximKeyword not_optional +syn keyword eximKeyword check_secondary_mx gethostbyname mx_domains qualify_single rewrite_headers search_parents widen_domains +syn keyword eximKeyword no_check_secondary_mx no_gethostbyname no_qualify_single no_search_parents +syn keyword eximKeyword not_check_secondary_mx not_gethostbyname not_qualify_single not_search_parents +syn keyword eximKeyword command command_group command_user current_directory timeout +syn keyword eximKeyword driver public_name server_set_id server_mail_auth_condition +syn keyword eximKeyword server_prompts server_condition client_send +syn keyword eximKeyword server_secret client_name client_secret + +" Define the default highlighting + +hi def link eximComment Comment +hi def link eximFixme Todo +hi def link eximEnd Keyword +hi def link eximNumber Number +hi def link eximDriverName Constant +hi def link eximConstant Constant +hi def link eximTime Constant +hi def link eximKeyword Type +hi def link eximSpecialChar Special +hi def link eximMacroName Preproc +hi def link eximTransport Identifier + + +let b:current_syntax = "exim" diff --git a/runtime/syntax/expect.vim b/runtime/syntax/expect.vim new file mode 100644 index 0000000..75cbd3e --- /dev/null +++ b/runtime/syntax/expect.vim @@ -0,0 +1,103 @@ +" Vim syntax file +" Language: Expect +" Maintainer: Ralph Jennings +" Last Change: 2012 Jun 01 +" (Dominique Pelle added @Spell) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Reserved Expect variable prefixes. +syn match expectVariables "\$exp[a-zA-Z0-9_]*\|\$inter[a-zA-Z0-9_]*" +syn match expectVariables "\$spawn[a-zA-Z0-9_]*\|\$timeout[a-zA-Z0-9_]*" + +" Normal Expect variables. +syn match expectVariables "\$env([^)]*)" +syn match expectVariables "\$any_spawn_id\|\$argc\|\$argv\d*" +syn match expectVariables "\$user_spawn_id\|\$spawn_id\|\$timeout" + +" Expect variable arrays. +syn match expectVariables "\$\(expect\|interact\)_out([^)]*)" contains=expectOutVar + +" User defined variables. +syn match expectVariables "\$[a-zA-Z_][a-zA-Z0-9_]*" + +" Reserved Expect command prefixes. +syn match expectCommand "exp_[a-zA-Z0-9_]*" + +" Normal Expect commands. +syn keyword expectStatement close debug disconnect +syn keyword expectStatement exit exp_continue exp_internal exp_open +syn keyword expectStatement exp_pid exp_version +syn keyword expectStatement fork inter_return interpreter +syn keyword expectStatement log_file log_user match_max overlay +syn keyword expectStatement parity remove_nulls return +syn keyword expectStatement send send_error send_log send_user +syn keyword expectStatement sleep spawn strace stty system +syn keyword expectStatement timestamp trace trap wait + +" Tcl commands recognized and used by Expect. +syn keyword expectCommand proc +syn keyword expectConditional if else +syn keyword expectRepeat while for foreach + +" Expect commands with special arguments. +syn keyword expectStatement expect expect_after expect_background nextgroup=expectExpectOpts +syn keyword expectStatement expect_before expect_user interact nextgroup=expectExpectOpts + +syn match expectSpecial contained "\\." + +" Options for "expect", "expect_after", "expect_background", +" "expect_before", "expect_user", and "interact". +syn keyword expectExpectOpts default eof full_buffer null return timeout + +syn keyword expectOutVar contained spawn_id seconds seconds_total +syn keyword expectOutVar contained string start end buffer + +" Numbers (Tcl style). +syn case ignore + syn match expectNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" + "floating point number, with dot, optional exponent + syn match expectNumber "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" + "floating point number, starting with a dot, optional exponent + syn match expectNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" + "floating point number, without dot, with exponent + syn match expectNumber "\<\d\+e[-+]\=\d\+[fl]\=\>" + "hex number + syn match expectNumber "0x[0-9a-f]\+\(u\=l\=\|lu\)\>" + "syn match expectIdentifier "\<[a-z_][a-z0-9_]*\>" +syn case match + +syn region expectString start=+"+ end=+"+ contains=@Spell,expectVariables,expectSpecial + +" Are these really comments in Expect? (I never use it, so I'm just guessing). +syn keyword expectTodo contained TODO +syn match expectComment "#.*$" contains=@Spell,expectTodo +syn match expectSharpBang "\%^#!.*" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link expectSharpBang PreProc +hi def link expectVariables Special +hi def link expectCommand Function +hi def link expectStatement Statement +hi def link expectConditional Conditional +hi def link expectRepeat Repeat +hi def link expectExpectOpts Keyword +hi def link expectOutVar Special +hi def link expectSpecial Special +hi def link expectNumber Number + +hi def link expectString String + +hi def link expectComment Comment +hi def link expectTodo Todo +"hi def link expectIdentifier Identifier + + +let b:current_syntax = "expect" + +" vim: ts=8 diff --git a/runtime/syntax/exports.vim b/runtime/syntax/exports.vim new file mode 100644 index 0000000..05a3f1a --- /dev/null +++ b/runtime/syntax/exports.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: exports +" Maintainer: Charles E. Campbell +" Last Change: Aug 31, 2016 +" Version: 8 +" Notes: This file includes both SysV and BSD 'isms +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_EXPORTS + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Options: -word +syn keyword exportsKeyOptions contained alldirs nohide ro wsync +syn keyword exportsKeyOptions contained kerb o rw +syn match exportsOptError contained "[a-z]\+" + +" Settings: word= +syn keyword exportsKeySettings contained access anon root rw +syn match exportsSetError contained "[a-z]\+" + +" OptSet: -word= +syn keyword exportsKeyOptSet contained mapall maproot mask network +syn match exportsOptSetError contained "[a-z]\+" + +" options and settings +syn match exportsSettings "[a-z]\+=" contains=exportsKeySettings,exportsSetError +syn match exportsOptions "-[a-z]\+" contains=exportsKeyOptions,exportsOptError +syn match exportsOptSet "-[a-z]\+=" contains=exportsKeyOptSet,exportsOptSetError + +" Separators +syn match exportsSeparator "[,:]" + +" comments +syn match exportsComment "^\s*#.*$" contains=@Spell + +" Define the default highlighting. +if !exists("skip_exports_syntax_inits") + + hi def link exportsKeyOptSet exportsKeySettings + hi def link exportsOptSet exportsSettings + + hi def link exportsComment Comment + hi def link exportsKeyOptions Type + hi def link exportsKeySettings Keyword + hi def link exportsOptions Constant + hi def link exportsSeparator Constant + hi def link exportsSettings Constant + + hi def link exportsOptError Error + hi def link exportsOptSetError Error + hi def link exportsSetError Error + +endif + +let b:current_syntax = "exports" +" vim: ts=10 diff --git a/runtime/syntax/falcon.vim b/runtime/syntax/falcon.vim new file mode 100644 index 0000000..e022c7a --- /dev/null +++ b/runtime/syntax/falcon.vim @@ -0,0 +1,197 @@ +" Vim syntax file +" Language: Falcon +" Maintainer: Steven Oliver +" Website: http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim +" Credits: Thanks the ruby.vim authors, I borrowed a lot! +" Thanks to the lisp authors for the rainbow code! +" ------------------------------------------------------------------------------- + +" When wanted, highlight the trailing whitespace. +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match falconSpaceError "\s\+$" + endif + + if !exists("c_no_tab_space_error") + syn match falconSpaceError " \+\t"me=e-1 + endif +endif + +" Symbols +syn match falconSymbol "\(;\|,\|\.\)" +syn match falconSymbolOther "\(#\|@\)" display + +" Operators +syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)" +syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)" + +" Clusters +syn region falconSymbol start="[]})\"':]\@\|::\)\@=\%(\s*(\)\@!" + +" Comments +syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)" +syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo +syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo +syn match falconSharpBang "\%^#!.*" display +syn sync ccomment falconComment + +" Numbers +syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal +syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal +syn match falconHexadecimal contained "\<0x\x\+\>" +syn match falconOctal contained "\<0\o\+\>" +syn match falconIntLiteral contained "[+-]\" +syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*" +syn match falconFloatLiteral contained "[+-]\=\d*\.\d*" + +" Includes +syn keyword falconInclude load import + +" Expression Substitution and Backslash Notation +syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display +syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display +syn region falconSymbol start="[]})\"':]\@" skip="\\\\\|\\>" fold contains=falconDelimEscape +syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape +syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape +syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold +syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape +syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape +syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape +syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape + +" Generalized Double Quoted String and Array of Strings and Shell Command Output +syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold +syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold +syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold +syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold +syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold +syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold + +syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@ +" Last Change: 2010 May 27 +" Based on Java syntax file by Claudio Fleiner + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" keyword definitions +syn keyword fanExternal using native +syn keyword fanError goto void serializable volatile +syn keyword fanConditional if else switch +syn keyword fanRepeat do while for foreach each +syn keyword fanBoolean true false +syn keyword fanConstant null +syn keyword fanTypedef this super +syn keyword fanOperator new is isnot as +syn keyword fanLongOperator plus minus mult div mod get set slice lshift rshift and or xor inverse negate increment decrement equals compare +syn keyword fanType Void Bool Int Float Decimal Str Duration Uri Type Range List Map Obj +syn keyword fanStatement return +syn keyword fanStorageClass static const final +syn keyword fanSlot virtual override once +syn keyword fanField readonly +syn keyword fanExceptions throw try catch finally +syn keyword fanAssert assert +syn keyword fanTypedef class enum mixin +syn match fanFacet "@[_a-zA-Z][_a-zA-Z0-9_]*\>" +syn keyword fanBranch break continue +syn keyword fanScopeDecl public internal protected private abstract + +if exists("fan_space_errors") + if !exists("fan_no_trail_space_error") + syn match fanSpaceError "\s\+$" + endif + if !exists("fan_no_tab_space_error") + syn match fanSpaceError " \+\t"me=e-1 + endif +endif + +syn region fanLabelRegion transparent matchgroup=fanLabel start="\" matchgroup=NONE end=":" contains=fanNumber,fanCharacter +syn keyword fanLabel default +syn keyword fanLabel case + +" The following cluster contains all fan groups except the contained ones +syn cluster fanTop add=fanExternal,fanError,fanConditional,fanRepeat,fanBoolean,fanConstant,fanTypedef,fanOperator,fanLongOperator,fanType,fanType,fanStatement,fanStorageClass,fanSlot,fanField,fanExceptions,fanAssert,fanClassDecl,fanTypedef,fanFacet,fanBranch,fanScopeDecl,fanLabelRegion,fanLabel + +" Comments +syn keyword fanTodo contained TODO FIXME XXX +syn region fanComment start="/\*" end="\*/" contains=@fanCommentSpecial,fanTodo,fanComment,@Spell +syn match fanCommentStar contained "^\s*\*[^/]"me=e-1 +syn match fanCommentStar contained "^\s*\*$" +syn match fanLineComment "//.*" contains=@fanCommentSpecial2,fanTodo,@Spell +syn match fanDocComment "\*\*.*" contains=@fanCommentSpecial2,fanTodo,@Spell +hi def link fanCommentString fanString +hi def link fanComment2String fanString +hi def link fanCommentCharacter fanCharacter + +syn cluster fanTop add=fanComment,fanLineComment,fanDocComment + +" match the special comment /**/ +syn match fanComment "/\*\*/" + +" Strings and constants +syn match fanSpecialError contained "\\." +syn match fanSpecialCharError contained "[^']" +syn match fanSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)" +syn match fanStringSubst contained "\$[A-Za-z][A-Za-z_.]*" +syn match fanStringSubst contained "\${[^}]*}" +syn region fanString start=+"+ end=+"+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell +syn region fanTripleString start=+"""+ end=+"""+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell +syn region fanDSL start=+<|+ end=+|>+ +syn match fanUri "`[^`]*`" +syn match fanCharacter "'[^']*'" contains=fanSpecialChar,fanSpecialCharError +syn match fanCharacter "'\\''" contains=fanSpecialChar +syn match fanCharacter "'[^\\]'" +syn match fanNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" +syn match fanNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" +syn match fanNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" +syn match fanNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" + +syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError + +" The default highlighting. +hi def link fanBranch Conditional +hi def link fanLabel Label +hi def link fanUserLabel Label +hi def link fanConditional Conditional +hi def link fanRepeat Repeat +hi def link fanExceptions Exception +hi def link fanAssert Statement +hi def link fanStorageClass StorageClass +hi def link fanSlot StorageClass +hi def link fanField StorageClass +hi def link fanScopeDecl StorageClass +hi def link fanBoolean Boolean +hi def link fanSpecial Special +hi def link fanSpecialError Error +hi def link fanSpecialCharError Error +hi def link fanTripleString String +hi def link fanString String +hi def link fanDSL String +hi def link fanCharacter String +hi def link fanStringSubst Identifier +hi def link fanUri SpecialChar +hi def link fanSpecialChar SpecialChar +hi def link fanNumber Number +hi def link fanError Error +hi def link fanStringError Error +hi def link fanStatement Statement +hi def link fanOperator Operator +hi def link fanLongOperator Operator +hi def link fanComment Comment +hi def link fanDocComment Comment +hi def link fanLineComment Comment +hi def link fanConstant Constant +hi def link fanTypedef Typedef +hi def link fanTodo Todo +hi def link fanFacet PreProc + +hi def link fanCommentTitle SpecialComment +hi def link fanCommentStar SpecialComment +hi def link fanType Identifier +hi def link fanExternal Include + +hi def link fanSpaceError Error + +let b:current_syntax = "fan" + +" vim: ts=8 diff --git a/runtime/syntax/fasm.vim b/runtime/syntax/fasm.vim new file mode 100644 index 0000000..172ba7c --- /dev/null +++ b/runtime/syntax/fasm.vim @@ -0,0 +1,151 @@ +" Vim syntax file +" Language: Flat Assembler (FASM) +" Maintainer: Ron Aaron +" Last Change: 2012/02/13 +" Vim URL: http://www.vim.org/lang.html +" FASM Home: http://flatassembler.net/ +" FASM Version: 1.56 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword=a-z,A-Z,48-57,.,_ +setlocal isident=a-z,A-Z,48-57,.,_ +syn case ignore + +syn keyword fasmRegister ah al ax bh bl bp bx ch cl cr0 cr1 cr2 cr3 cr4 cr5 cr6 +syn keyword fasmRegister cr7 cs cx dh di dl dr0 dr1 dr2 dr3 dr4 dr5 dr6 dr7 ds dx +syn keyword fasmRegister eax ebp ebx ecx edi edx es esi esp fs gs mm0 mm1 mm2 mm3 +syn keyword fasmRegister mm4 mm5 mm6 mm7 si sp ss st st0 st1 st2 st3 st4 st5 st6 +syn keyword fasmRegister st7 tr0 tr1 tr2 tr3 tr4 tr5 tr6 tr7 xmm0 xmm1 xmm2 xmm3 +syn keyword fasmRegister xmm4 xmm5 xmm6 xmm7 +syn keyword fasmAddressSizes byte dqword dword fword pword qword tword word +syn keyword fasmDataDirectives db dd df dp dq dt du dw file rb rd rf rp rq rt rw +syn keyword fasmInstr aaa aad aam aas adc add addpd addps addsd addss addsubpd +syn keyword fasmInstr addsubps and andnpd andnps andpd andps arpl bound bsf bsr +syn keyword fasmInstr bswap bt btc btr bts call cbw cdq clc cld clflush cli clts +syn keyword fasmInstr cmc cmova cmovae cmovb cmovbe cmovc cmove cmovg cmovge cmovl +syn keyword fasmInstr cmovle cmovna cmovnae cmovnb cmovnbe cmovnc cmovne cmovng +syn keyword fasmInstr cmovnge cmovnl cmovnle cmovno cmovnp cmovns cmovnz cmovo cmovp +syn keyword fasmInstr cmovpe cmovpo cmovs cmovz cmp cmpeqpd cmpeqps cmpeqsd cmpeqss +syn keyword fasmInstr cmplepd cmpleps cmplesd cmpless cmpltpd cmpltps cmpltsd cmpltss +syn keyword fasmInstr cmpneqpd cmpneqps cmpneqsd cmpneqss cmpnlepd cmpnleps cmpnlesd +syn keyword fasmInstr cmpnless cmpnltpd cmpnltps cmpnltsd cmpnltss cmpordpd cmpordps +syn keyword fasmInstr cmpordsd cmpordss cmppd cmpps cmps cmpsb cmpsd cmpss cmpsw +syn keyword fasmInstr cmpunordpd cmpunordps cmpunordsd cmpunordss cmpxchg cmpxchg8b +syn keyword fasmInstr comisd comiss cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps +syn keyword fasmInstr cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd cvtps2pi cvtsd2si cvtsd2ss +syn keyword fasmInstr cvtsi2sd cvtsi2ss cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq +syn keyword fasmInstr cvttps2pi cvttsd2si cvttss2si cwd cwde daa das data dec div +syn keyword fasmInstr divpd divps divsd divss else emms end enter extrn f2xm1 fabs +syn keyword fasmInstr fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb +syn keyword fasmInstr fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp +syn keyword fasmInstr fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree +syn keyword fasmInstr ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp +syn keyword fasmInstr finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv +syn keyword fasmInstr fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi +syn keyword fasmInstr fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem +syn keyword fasmInstr fprem1 fptan frndint frstor frstpm fsave fscale fsetpm fsin +syn keyword fasmInstr fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr +syn keyword fasmInstr fsubrp ftst fucom fucomi fucomip fucomp fucompp fwait fxam +syn keyword fasmInstr fxch fxrstor fxsave fxtract fyl2x fyl2xp1 haddpd haddps heap +syn keyword fasmInstr hlt hsubpd hsubps idiv if imul in inc ins insb insd insw int +syn keyword fasmInstr int3 into invd invlpg iret iretd iretw ja jae jb jbe jc jcxz +syn keyword fasmInstr je jecxz jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge +syn keyword fasmInstr jnl jnle jno jnp jns jnz jo jp jpe jpo js jz lahf lar lddqu +syn keyword fasmInstr ldmxcsr lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw +syn keyword fasmInstr load loadall286 loadall386 lock lods lodsb lodsd lodsw loop +syn keyword fasmInstr loopd loope looped loopew loopne loopned loopnew loopnz loopnzd +syn keyword fasmInstr loopnzw loopw loopz loopzd loopzw lsl lss ltr maskmovdqu maskmovq +syn keyword fasmInstr maxpd maxps maxsd maxss mfence minpd minps minsd minss monitor +syn keyword fasmInstr mov movapd movaps movd movddup movdq2q movdqa movdqu movhlps +syn keyword fasmInstr movhpd movhps movlhps movlpd movlps movmskpd movmskps movntdq +syn keyword fasmInstr movnti movntpd movntps movntq movq movq2dq movs movsb movsd +syn keyword fasmInstr movshdup movsldup movss movsw movsx movupd movups movzx mul +syn keyword fasmInstr mulpd mulps mulsd mulss mwait neg nop not or org orpd orps +syn keyword fasmInstr out outs outsb outsd outsw packssdw packsswb packuswb paddb +syn keyword fasmInstr paddd paddq paddsb paddsw paddusb paddusw paddw pand pandn +syn keyword fasmInstr pause pavgb pavgusb pavgw pcmpeqb pcmpeqd pcmpeqw pcmpgtb +syn keyword fasmInstr pcmpgtd pcmpgtw pextrw pf2id pf2iw pfacc pfadd pfcmpeq pfcmpge +syn keyword fasmInstr pfcmpgt pfmax pfmin pfmul pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2 +syn keyword fasmInstr pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pi2fw pinsrw pmaddwd pmaxsw +syn keyword fasmInstr pmaxub pminsw pminub pmovmskb pmulhrw pmulhuw pmulhw pmullw +syn keyword fasmInstr pmuludq pop popa popad popaw popd popf popfd popfw popw por +syn keyword fasmInstr prefetch prefetchnta prefetcht0 prefetcht1 prefetcht2 prefetchw +syn keyword fasmInstr psadbw pshufd pshufhw pshuflw pshufw pslld pslldq psllq psllw +syn keyword fasmInstr psrad psraw psrld psrldq psrlq psrlw psubb psubd psubq psubsb +syn keyword fasmInstr psubsw psubusb psubusw psubw pswapd punpckhbw punpckhdq punpckhqdq +syn keyword fasmInstr punpckhwd punpcklbw punpckldq punpcklqdq punpcklwd push pusha +syn keyword fasmInstr pushad pushaw pushd pushf pushfd pushfw pushw pxor rcl rcpps +syn keyword fasmInstr rcpss rcr rdmsr rdpmc rdtsc rep repe repne repnz repz ret +syn keyword fasmInstr retd retf retfd retfw retn retnd retnw retw rol ror rsm rsqrtps +syn keyword fasmInstr rsqrtss sahf sal salc sar sbb scas scasb scasd scasw seta +syn keyword fasmInstr setae setalc setb setbe setc sete setg setge setl setle setna +syn keyword fasmInstr setnae setnb setnbe setnc setne setng setnge setnl setnle +syn keyword fasmInstr setno setnp setns setnz seto setp setpe setpo sets setz sfence +syn keyword fasmInstr sgdt shl shld shr shrd shufpd shufps sidt sldt smsw sqrtpd +syn keyword fasmInstr sqrtps sqrtsd sqrtss stc std sti stmxcsr store stos stosb +syn keyword fasmInstr stosd stosw str sub subpd subps subsd subss sysenter sysexit +syn keyword fasmInstr test ucomisd ucomiss ud2 unpckhpd unpckhps unpcklpd unpcklps +syn keyword fasmInstr verr verw wait wbinvd wrmsr xadd xchg xlat xlatb xor xorpd +syn keyword fasmPreprocess common equ fix forward include local macro purge restore +syn keyword fasmPreprocess reverse struc +syn keyword fasmDirective align binary code coff console discardable display dll +syn keyword fasmDirective elf entry executable export extern far fixups format gui +syn keyword fasmDirective import label ms mz native near notpageable pe public readable +syn keyword fasmDirective repeat resource section segment shareable stack times +syn keyword fasmDirective use16 use32 virtual wdm writable writeable +syn keyword fasmOperator as at defined eq eqtype from mod on ptr rva used + +syn match fasmNumericOperator "[+-/*]" +syn match fasmLogicalOperator "[=|&~<>]\|<=\|>=\|<>" +" numbers +syn match fasmBinaryNumber "\<[01]\+b\>" +syn match fasmHexNumber "\<\d\x*h\>" +syn match fasmHexNumber "\<\(0x\|$\)\x*\>" +syn match fasmFPUNumber "\<\d\+\(\.\d*\)\=\(e[-+]\=\d*\)\=\>" +syn match fasmOctalNumber "\<\(0\o\+o\=\|\o\+o\)\>" +syn match fasmDecimalNumber "\<\(0\|[1-9]\d*\)\>" +syn region fasmComment start=";" end="$" +syn region fasmString start="\"" end="\"\|$" +syn region fasmString start="'" end="'\|$" +syn match fasmSymbol "[()|\[\]:]" +syn match fasmSpecial "[#?%$,]" +syn match fasmLabel "^\s*[^; \t]\+:" + +hi def link fasmAddressSizes type +hi def link fasmNumericOperator fasmOperator +hi def link fasmLogicalOperator fasmOperator + +hi def link fasmBinaryNumber fasmNumber +hi def link fasmHexNumber fasmNumber +hi def link fasmFPUNumber fasmNumber +hi def link fasmOctalNumber fasmNumber +hi def link fasmDecimalNumber fasmNumber + +hi def link fasmSymbols fasmRegister +hi def link fasmPreprocess fasmDirective + +" link to standard syn groups so the 'colorschemes' work: +hi def link fasmOperator operator +hi def link fasmComment comment +hi def link fasmDirective preproc +hi def link fasmRegister type +hi def link fasmNumber constant +hi def link fasmSymbol structure +hi def link fasmString String +hi def link fasmSpecial special +hi def link fasmInstr keyword +hi def link fasmLabel label +hi def link fasmPrefix preproc +let b:current_syntax = "fasm" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 sw=8 : diff --git a/runtime/syntax/fdcc.vim b/runtime/syntax/fdcc.vim new file mode 100644 index 0000000..f7b296b --- /dev/null +++ b/runtime/syntax/fdcc.vim @@ -0,0 +1,101 @@ +" Vim syntax file +" Language: fdcc or locale files +" Maintainer: Dwayne Bailey +" Last Change: 2004 May 16 +" Remarks: FDCC (Formal Definitions of Cultural Conventions) see ISO TR 14652 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn sync minlines=150 +setlocal iskeyword+=- + +" Numbers +syn match fdccNumber /[0-9]*/ contained + +" Unicode codings and strings +syn match fdccUnicodeInValid /<[^<]*>/ contained +syn match fdccUnicodeValid // contained +syn region fdccString start=/"/ end=/"/ contains=fdccUnicodeInValid,fdccUnicodeValid + +" Valid LC_ Keywords +syn keyword fdccKeyword escape_char comment_char +syn keyword fdccKeywordIdentification title source address contact email tel fax language territory revision date category +syn keyword fdccKeywordCtype copy space translit_start include translit_end outdigit class +syn keyword fdccKeywordCollate copy script order_start order_end collating-symbol reorder-after reorder-end collating-element symbol-equivalence +syn keyword fdccKeywordMonetary copy int_curr_symbol currency_symbol mon_decimal_point mon_thousands_sep mon_grouping positive_sign negative_sign int_frac_digits frac_digits p_cs_precedes p_sep_by_space n_cs_precedes n_sep_by_space p_sign_posn n_sign_posn int_p_cs_precedes int_p_sep_by_space int_n_cs_precedes int_n_sep_by_space int_p_sign_posn int_n_sign_posn +syn keyword fdccKeywordNumeric copy decimal_point thousands_sep grouping +syn keyword fdccKeywordTime copy abday day abmon mon d_t_fmt d_fmt t_fmt am_pm t_fmt_ampm date_fmt era_d_fmt first_weekday first_workday week cal_direction time_zone era alt_digits era_d_t_fmt +syn keyword fdccKeywordMessages copy yesexpr noexpr yesstr nostr +syn keyword fdccKeywordPaper copy height width +syn keyword fdccKeywordTelephone copy tel_int_fmt int_prefix tel_dom_fmt int_select +syn keyword fdccKeywordMeasurement copy measurement +syn keyword fdccKeywordName copy name_fmt name_gen name_mr name_mrs name_miss name_ms +syn keyword fdccKeywordAddress copy postal_fmt country_name country_post country_ab2 country_ab3 country_num country_car country_isbn lang_name lang_ab lang_term lang_lib + +" Comments +syn keyword fdccTodo TODO FIXME contained +syn match fdccVariable /%[a-zA-Z]/ contained +syn match fdccComment /[#%].*/ contains=fdccTodo,fdccVariable + +" LC_ Groups +syn region fdccBlank matchgroup=fdccLCIdentification start=/^LC_IDENTIFICATION$/ end=/^END LC_IDENTIFICATION$/ contains=fdccKeywordIdentification,fdccString,fdccComment +syn region fdccBlank matchgroup=fdccLCCtype start=/^LC_CTYPE$/ end=/^END LC_CTYPE$/ contains=fdccKeywordCtype,fdccString,fdccComment,fdccUnicodeInValid,fdccUnicodeValid +syn region fdccBlank matchgroup=fdccLCCollate start=/^LC_COLLATE$/ end=/^END LC_COLLATE$/ contains=fdccKeywordCollate,fdccString,fdccComment,fdccUnicodeInValid,fdccUnicodeValid +syn region fdccBlank matchgroup=fdccLCMonetary start=/^LC_MONETARY$/ end=/^END LC_MONETARY$/ contains=fdccKeywordMonetary,fdccString,fdccComment,fdccNumber +syn region fdccBlank matchgroup=fdccLCNumeric start=/^LC_NUMERIC$/ end=/^END LC_NUMERIC$/ contains=fdccKeywordNumeric,fdccString,fdccComment,fdccNumber +syn region fdccBlank matchgroup=fdccLCTime start=/^LC_TIME$/ end=/^END LC_TIME$/ contains=fdccKeywordTime,fdccString,fdccComment,fdccNumber +syn region fdccBlank matchgroup=fdccLCMessages start=/^LC_MESSAGES$/ end=/^END LC_MESSAGES$/ contains=fdccKeywordMessages,fdccString,fdccComment +syn region fdccBlank matchgroup=fdccLCPaper start=/^LC_PAPER$/ end=/^END LC_PAPER$/ contains=fdccKeywordPaper,fdccString,fdccComment,fdccNumber +syn region fdccBlank matchgroup=fdccLCTelephone start=/^LC_TELEPHONE$/ end=/^END LC_TELEPHONE$/ contains=fdccKeywordTelephone,fdccString,fdccComment +syn region fdccBlank matchgroup=fdccLCMeasurement start=/^LC_MEASUREMENT$/ end=/^END LC_MEASUREMENT$/ contains=fdccKeywordMeasurement,fdccString,fdccComment,fdccNumber +syn region fdccBlank matchgroup=fdccLCName start=/^LC_NAME$/ end=/^END LC_NAME$/ contains=fdccKeywordName,fdccString,fdccComment +syn region fdccBlank matchgroup=fdccLCAddress start=/^LC_ADDRESS$/ end=/^END LC_ADDRESS$/ contains=fdccKeywordAddress,fdccString,fdccComment,fdccNumber + + +" Only when an item doesn't have highlighting yet + +hi def link fdccBlank Blank + +hi def link fdccTodo Todo +hi def link fdccComment Comment +hi def link fdccVariable Type + +hi def link fdccLCIdentification Statement +hi def link fdccLCCtype Statement +hi def link fdccLCCollate Statement +hi def link fdccLCMonetary Statement +hi def link fdccLCNumeric Statement +hi def link fdccLCTime Statement +hi def link fdccLCMessages Statement +hi def link fdccLCPaper Statement +hi def link fdccLCTelephone Statement +hi def link fdccLCMeasurement Statement +hi def link fdccLCName Statement +hi def link fdccLCAddress Statement + +hi def link fdccUnicodeInValid Error +hi def link fdccUnicodeValid String +hi def link fdccString String +hi def link fdccNumber Blank + +hi def link fdccKeywordIdentification fdccKeyword +hi def link fdccKeywordCtype fdccKeyword +hi def link fdccKeywordCollate fdccKeyword +hi def link fdccKeywordMonetary fdccKeyword +hi def link fdccKeywordNumeric fdccKeyword +hi def link fdccKeywordTime fdccKeyword +hi def link fdccKeywordMessages fdccKeyword +hi def link fdccKeywordPaper fdccKeyword +hi def link fdccKeywordTelephone fdccKeyword +hi def link fdccKeywordMeasurement fdccKeyword +hi def link fdccKeywordName fdccKeyword +hi def link fdccKeywordAddress fdccKeyword +hi def link fdccKeyword Identifier + + +let b:current_syntax = "fdcc" + +" vim: ts=8 diff --git a/runtime/syntax/fetchmail.vim b/runtime/syntax/fetchmail.vim new file mode 100644 index 0000000..50d6b82 --- /dev/null +++ b/runtime/syntax/fetchmail.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: fetchmail(1) RC File +" Maintainer: Doug Kearns +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2022 Jul 02 + +" Version 6.4.3 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword fetchmailTodo contained FIXME TODO XXX NOTE + +syn region fetchmailComment start='#' end='$' contains=fetchmailTodo,@Spell + +syn match fetchmailNumber display '\<\d\+\>' + +syn region fetchmailString start=+"+ skip=+\\\\\|\\"+ end=+"+ + \ contains=fetchmailStringEsc +syn region fetchmailString start=+'+ skip=+\\\\\|\\'+ end=+'+ + \ contains=fetchmailStringEsc + +syn match fetchmailStringEsc contained '\\\([ntb]\|0\d*\|x\x\+\)' + +syn region fetchmailKeyword transparent matchgroup=fetchmailKeyword + \ start='\' + \ end='\' + \ contains=ALLBUT,fetchmailOptions,fetchmailSet + +syn keyword fetchmailServerOpts contained via proto[col] local[domains] port + \ service auth[enticate] timeout envelope + \ qvirtual aka interface monitor plugin plugout + \ dns checkalias uidl interval tracepolls + \ principal esmtpname esmtppassword +" removed in 6.3.0 +syn keyword fetchmailServerOpts contained netsec +syn match fetchmailServerOpts contained '\' +syn match fetchmailServerOpts contained '\ +" Update: 26 Sep 2002 +" Changes: +" - Dynamic 4GL/FourJs/4GL 7.30 pseudo comment directives (Julian Bridle) +" - Conditionally allow case insensitive keywords (Julian Bridle) +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if exists("fgl_ignore_case") + syntax case ignore +else + syntax case match +endif +syn keyword fglKeyword ABORT ABS ABSOLUTE ACCEPT ACCESS ACOS ADD AFTER ALL +syn keyword fglKeyword ALLOCATE ALTER AND ANSI ANY APPEND ARG_VAL ARRAY ARR_COUNT +syn keyword fglKeyword ARR_CURR AS ASC ASCENDING ASCII ASIN AT ATAN ATAN2 ATTACH +syn keyword fglKeyword ATTRIBUTE ATTRIBUTES AUDIT AUTHORIZATION AUTO AUTONEXT AVERAGE AVG +syn keyword fglKeyword BEFORE BEGIN BETWEEN BLACK BLINK BLUE BOLD BORDER BOTH BOTTOM +syn keyword fglKeyword BREAK BUFFERED BY BYTE +syn keyword fglKeyword CALL CASCADE CASE CHAR CHARACTER CHARACTER_LENGTH CHAR_LENGTH +syn keyword fglKeyword CHECK CLASS_ORIGIN CLEAR CLIPPED CLOSE CLUSTER COLOR +syn keyword fglKeyword COLUMN COLUMNS COMMAND COMMENT COMMENTS COMMIT COMMITTED +syn keyword fglKeyword COMPOSITES COMPRESS CONCURRENT CONNECT CONNECTION +syn keyword fglKeyword CONNECTION_ALIAS CONSTRAINED CONSTRAINT CONSTRAINTS CONSTRUCT +syn keyword fglKeyword CONTINUE CONTROL COS COUNT CREATE CURRENT CURSOR CYAN +syn keyword fglKeyword DATA DATABASE DATASKIP DATE DATETIME DAY DBA DBINFO DBSERVERNAME +syn keyword fglKeyword DEALLOCATE DEBUG DEC DECIMAL DECLARE DEFAULT DEFAULTS DEFER +syn keyword fglKeyword DEFERRED DEFINE DELETE DELIMITER DELIMITERS DESC DESCENDING +syn keyword fglKeyword DESCRIBE DESCRIPTOR DETACH DIAGNOSTICS DIM DIRTY DISABLED +syn keyword fglKeyword DISCONNECT DISPLAY DISTINCT DISTRIBUTIONS DO DORMANT DOUBLE +syn keyword fglKeyword DOWN DOWNSHIFT DROP +syn keyword fglKeyword EACH ELIF ELSE ENABLED END ENTRY ERROR ERRORLOG ERR_GET +syn keyword fglKeyword ERR_PRINT ERR_QUIT ESC ESCAPE EVERY EXCEPTION EXCLUSIVE +syn keyword fglKeyword EXEC EXECUTE EXISTS EXIT EXP EXPLAIN EXPRESSION EXTEND EXTENT +syn keyword fglKeyword EXTERN EXTERNAL +syn keyword fglKeyword F1 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F2 F20 F21 F22 F23 +syn keyword fglKeyword F24 F25 F26 F27 F28 F29 F3 F30 F31 F32 F33 F34 F35 F36 F37 F38 +syn keyword fglKeyword F39 F4 F40 F41 F42 F43 F44 F45 F46 F47 F48 F49 F5 F50 F51 F52 +syn keyword fglKeyword F53 F54 F55 F56 F57 F58 F59 F6 F60 F61 F62 F63 F64 F7 F8 F9 +syn keyword fglKeyword FALSE FETCH FGL_GETENV FGL_KEYVAL FGL_LASTKEY FIELD FIELD_TOUCHED +syn keyword fglKeyword FILE FILLFACTOR FILTERING FINISH FIRST FLOAT FLUSH FOR +syn keyword fglKeyword FOREACH FOREIGN FORM FORMAT FORMONLY FORTRAN FOUND FRACTION +syn keyword fglKeyword FRAGMENT FREE FROM FUNCTION GET_FLDBUF GLOBAL GLOBALS GO GOTO +syn keyword fglKeyword GRANT GREEN GROUP HAVING HEADER HELP HEX HIDE HIGH HOLD HOUR +syn keyword fglKeyword IDATA IF ILENGTH IMMEDIATE IN INCLUDE INDEX INDEXES INDICATOR +syn keyword fglKeyword INFIELD INIT INITIALIZE INPUT INSERT INSTRUCTIONS INT INTEGER +syn keyword fglKeyword INTERRUPT INTERVAL INTO INT_FLAG INVISIBLE IS ISAM ISOLATION +syn keyword fglKeyword ITYPE +syn keyword fglKeyword KEY LABEL +syn keyword fglKeyword LANGUAGE LAST LEADING LEFT LENGTH LET LIKE LINE +syn keyword fglKeyword LINENO LINES LOAD LOCATE LOCK LOG LOG10 LOGN LONG LOW +syn keyword fglKeyword MAGENTA MAIN MARGIN MATCHES MAX MDY MEDIUM MEMORY MENU MESSAGE +syn keyword fglKeyword MESSAGE_LENGTH MESSAGE_TEXT MIN MINUTE MOD MODE MODIFY MODULE +syn keyword fglKeyword MONEY MONTH MORE +syn keyword fglKeyword NAME NCHAR NEED NEW NEXT NEXTPAGE NO NOCR NOENTRY NONE NORMAL +syn keyword fglKeyword NOT NOTFOUND NULL NULLABLE NUMBER NUMERIC NUM_ARGS NVARCHAR +syn keyword fglKeyword OCTET_LENGTH OF OFF OLD ON ONLY OPEN OPTIMIZATION OPTION OPTIONS +syn keyword fglKeyword OR ORDER OTHERWISE OUTER OUTPUT +syn keyword fglKeyword PAGE PAGENO PAUSE PDQPRIORITY PERCENT PICTURE PIPE POW PRECISION +syn keyword fglKeyword PREPARE PREVIOUS PREVPAGE PRIMARY PRINT PRINTER PRIOR PRIVATE +syn keyword fglKeyword PRIVILEGES PROCEDURE PROGRAM PROMPT PUBLIC PUT +syn keyword fglKeyword QUIT QUIT_FLAG +syn keyword fglKeyword RAISE RANGE READ READONLY REAL RECORD RECOVER RED REFERENCES +syn keyword fglKeyword REFERENCING REGISTER RELATIVE REMAINDER REMOVE RENAME REOPTIMIZATION +syn keyword fglKeyword REPEATABLE REPORT REQUIRED RESOLUTION RESOURCE RESTRICT +syn keyword fglKeyword RESUME RETURN RETURNED_SQLSTATE RETURNING REVERSE REVOKE RIGHT +syn keyword fglKeyword ROBIN ROLE ROLLBACK ROLLFORWARD ROOT ROUND ROW ROWID ROWIDS +syn keyword fglKeyword ROWS ROW_COUNT RUN +syn keyword fglKeyword SCALE SCHEMA SCREEN SCROLL SCR_LINE SECOND SECTION SELECT +syn keyword fglKeyword SERIAL SERIALIZABLE SERVER_NAME SESSION SET SET_COUNT SHARE +syn keyword fglKeyword SHORT SHOW SITENAME SIZE SIZEOF SKIP SLEEP SMALLFLOAT SMALLINT +syn keyword fglKeyword SOME SPACE SPACES SQL SQLAWARN SQLCA SQLCODE SQLERRD SQLERRM +syn keyword fglKeyword SQLERROR SQLERRP SQLSTATE SQLWARNING SQRT STABILITY START +syn keyword fglKeyword STARTLOG STATIC STATISTICS STATUS STDEV STEP STOP STRING STRUCT +syn keyword fglKeyword SUBCLASS_ORIGIN SUM SWITCH SYNONYM SYSTEM +syn keyword fglKeyword SysBlobs SysChecks SysColAuth SysColDepend SysColumns +syn keyword fglKeyword SysConstraints SysDefaults SysDepend SysDistrib SysFragAuth +syn keyword fglKeyword SysFragments SysIndexes SysObjState SysOpClstr SysProcAuth +syn keyword fglKeyword SysProcBody SysProcPlan SysProcedures SysReferences SysRoleAuth +syn keyword fglKeyword SysSynTable SysSynonyms SysTabAuth SysTables SysTrigBody +syn keyword fglKeyword SysTriggers SysUsers SysViews SysViolations +syn keyword fglKeyword TAB TABLE TABLES TAN TEMP TEXT THEN THROUGH THRU TIME TO +syn keyword fglKeyword TODAY TOP TOTAL TRACE TRAILER TRAILING TRANSACTION TRIGGER +syn keyword fglKeyword TRIGGERS TRIM TRUE TRUNC TYPE TYPEDEF +syn keyword fglKeyword UNCOMMITTED UNCONSTRAINED UNDERLINE UNION UNIQUE UNITS UNLOAD +syn keyword fglKeyword UNLOCK UNSIGNED UP UPDATE UPSHIFT USER USING +syn keyword fglKeyword VALIDATE VALUE VALUES VARCHAR VARIABLES VARIANCE VARYING +syn keyword fglKeyword VERIFY VIEW VIOLATIONS +syn keyword fglKeyword WAIT WAITING WARNING WEEKDAY WHEN WHENEVER WHERE WHILE WHITE +syn keyword fglKeyword WINDOW WITH WITHOUT WORDWRAP WORK WRAP WRITE +syn keyword fglKeyword YEAR YELLOW +syn keyword fglKeyword ZEROFILL + +" Strings and characters: +syn region fglString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region fglString start=+'+ skip=+\\\\\|\\"+ end=+'+ + +" Numbers: +syn match fglNumber "-\=\<[0-9]*\.\=[0-9_]\>" + +" Comments: +syn region fglComment start="{" end="}" +syn match fglComment "--.*" +syn match fglComment "#.*" + +" Not a comment even though it looks like one (Dynamic 4GL/FourJs directive) +syn match fglSpecial "--#" +syn match fglSpecial "--@" + +syn sync ccomment fglComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link fglComment Comment +"hi def link fglKeyword fglSpecial +hi def link fglKeyword fglStatement +hi def link fglNumber Number +hi def link fglOperator fglStatement +hi def link fglSpecial Special +hi def link fglStatement Statement +hi def link fglString String +hi def link fglType Type + + +let b:current_syntax = "fgl" + +" vim: ts=8 diff --git a/runtime/syntax/fish.vim b/runtime/syntax/fish.vim new file mode 100644 index 0000000..266878b --- /dev/null +++ b/runtime/syntax/fish.vim @@ -0,0 +1,225 @@ +" Vim syntax file +" Language: fish +" Maintainer: Nicholas Boyle (github.com/nickeb96) +" Repository: https://github.com/nickeb96/fish.vim +" Last Change: February 1, 2023 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + + +" Statements +syn cluster fishStatement contains=fishKeywordAndOr,fishNot,fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand,fishVariable + +syn keyword fishKeywordAndOr and or nextgroup=fishNot,fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand +hi def link fishKeywordAndOr fishOperator + +syn keyword fishNot not skipwhite nextgroup=fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand +syn match fishNot /!/ skipwhite nextgroup=fishSelectStatement,fishKeyword,fishKeywordIf,fishCommand +hi def link fishNot fishOperator + +syn keyword fishSelectStatement command builtin skipwhite nextgroup=fishKeyword,fishKeywordIf,fishCommand,fishOption +hi def link fishSelectStatement fishKeyword + +syn keyword fishKeyword end skipwhite nextgroup=@fishTerminator + +syn keyword fishKeywordIf if skipwhite nextgroup=@fishStatement +syn keyword fishKeyword else skipwhite nextgroup=fishKeywordIf,fishSemicolon +hi def link fishKeywordIf fishKeyword + +syn keyword fishKeyword switch skipwhite nextgroup=@fishArgument +syn keyword fishKeyword case skipwhite nextgroup=@fishArgument + +syn keyword fishKeyword while skipwhite nextgroup=@fishStatement + +syn keyword fishKeyword for skipwhite nextgroup=fishForVariable +syn match fishForVariable /[[:alnum:]_]\+/ contained skipwhite nextgroup=fishKeywordIn +syn keyword fishKeywordIn in contained skipwhite nextgroup=@fishArgument +hi def link fishForVariable fishParameter +hi def link fishKeywordIn fishKeyword + +syn keyword fishKeyword _ abbr argparse begin bg bind block break breakpoint cd commandline + \ complete continue count disown echo emit eval exec exit false fg function functions + \ history jobs math printf pwd random read realpath return set set_color source status + \ string test time true type ulimit wait + \ skipwhite nextgroup=@fishNext +syn match fishKeyword /\/ skipwhite nextgroup=@fishNext + +syn match fishCommand /[[:alnum:]_\/[][[:alnum:]+._-]*/ skipwhite nextgroup=@fishNext + + +" Internally Nested Arguments + +syn cluster fishSubscriptArgs contains=fishInnerVariable,fishIndexNum,fishIndexRange,fishInnerCommandSub + +syn match fishInnerVariable /\$\+[[:alnum:]_]\+/ contained +syn match fishInnerVariable /\$\+[[:alnum:]_]\+\[/me=e-1,he=e-1 contained nextgroup=fishInnerSubscript +hi def link fishInnerVariable fishVariable + +syn region fishInnerSubscript matchgroup=fishVariable start=/\[/ end=/]/ contained + \ keepend contains=@fishSubscriptArgs +hi def link fishInnerSubscript fishSubscript + +syn match fishIndexNum /[+-]?[[:digit:]]\+/ contained +hi def link fishIndexNum fishParameter + +syn match fishIndexRange /\.\./ contained +hi def link fishIndexRange fishParameter + +syn region fishInnerCommandSub matchgroup=fishOperator start=/(/ start=/\$(/ end=/)/ contained + \ contains=@fishStatement +hi def link fishInnerCommandSub fishCommandSub + +syn region fishQuotedCommandSub matchgroup=fishOperator start=/\$(/ end=/)/ contained + \ contains=@fishStatement +hi def link fishQuotedCommandSub fishCommandSub + +syn match fishBraceExpansionComma /,/ contained +hi def link fishBraceExpansionComma fishOperator + +syn match fishBracedParameter '[[:alnum:]\u5b\u5d@:=+.%/!_-]\+' contained contains=fishInnerPathGlob +hi def link fishBracedParameter fishParameter + +syn region fishBracedQuote start=/'/ skip=/\\'/ end=/'/ contained + \ contains=fishEscapedEscape,fishEscapedSQuote +syn region fishBracedQuote start=/"/ skip=/\\"/ end=/"/ contained + \ contains=fishEscapedEscape,fishEscapedDQuote,fishEscapedDollar,fishInnerVariable,fishInnerCommandSub +hi def link fishBracedQuote fishQuote + + +" Arguments + +syn cluster fishArgument contains=fishParameter,fishOption,fishVariable,fishPathGlob,fishBraceExpansion,fishQuote,fishCharacter,fishCommandSub,fishRedirection,fishSelfPid + +syn match fishParameter '[[:alnum:]\u5b\u5d@:=+.,%/!_-]\+' contained skipwhite nextgroup=@fishNext + +syn match fishOption /-[[:alnum:]=_-]*/ contained skipwhite nextgroup=@fishNext + +syn match fishPathGlob /\(\~\|*\|?\)/ contained skipwhite nextgroup=@fishNext + +syn region fishBraceExpansion matchgroup=fishOperator start=/{/ end=/}/ contained + \ contains=fishBraceExpansionComma,fishInnerVariable,fishInnerCommandSub,fishBracedParameter,fishBracedQuote + \ skipwhite nextgroup=@fishNext + +syn match fishVariable /\$\+[[:alnum:]_]\+/ skipwhite nextgroup=@fishNext +syn match fishVariable /\$\+[[:alnum:]_]\+\[/me=e-1,he=e-1 nextgroup=fishSubscript + +syn region fishSubscript matchgroup=fishVariable start=/\[/ end=/]/ contained + \ keepend contains=@fishSubscriptArgs + \ skipwhite nextgroup=@fishNext + +syn region fishCommandSub matchgroup=fishOperator start=/(/ start=/\$(/ end=/)/ contained + \ contains=@fishStatement + \ skipwhite nextgroup=@fishNext + +syn region fishQuote start=/'/ skip=/\\'/ end=/'/ contained + \ contains=fishEscapedEscape,fishEscapedSQuote + \ skipwhite nextgroup=@fishNext +syn region fishQuote start=/"/ skip=/\\"/ end=/"/ contained + \ contains=fishEscapedEscape,fishEscapedDQuote,fishEscapedDollar,fishInnerVariable,fishQuotedCommandSub + \ skipwhite nextgroup=@fishNext + +syn match fishEscapedEscape /\\\\/ contained +syn match fishEscapedSQuote /\\'/ contained +syn match fishEscapedDQuote /\\"/ contained +syn match fishEscapedDollar /\\\$/ contained +hi def link fishEscapedEscape fishCharacter +hi def link fishEscapedSQuote fishCharacter +hi def link fishEscapedDQuote fishCharacter +hi def link fishEscapedDollar fishCharacter + +syn match fishCharacter /\\[0-7]\{1,3}/ contained skipwhite nextgroup=@fishNext +syn match fishCharacter /\\u[0-9a-fA-F]\{4}/ contained skipwhite nextgroup=@fishNext +syn match fishCharacter /\\U[0-9a-fA-F]\{8}/ contained skipwhite nextgroup=@fishNext +syn match fishCharacter /\\x[0-7][0-9a-fA-F]\|\\x[0-9a-fA-F]/ contained skipwhite nextgroup=@fishNext +syn match fishCharacter /\\X[0-9a-fA-F]\{1,2}/ contained skipwhite nextgroup=@fishNext +syn match fishCharacter /\\[abcefnrtv[\](){}<>\\*?~%#$|&;'" ]/ contained skipwhite nextgroup=@fishNext + +syn match fishRedirection /[>?]\?/ contained skipwhite nextgroup=fishRedirectionTarget +syn match fishRedirection /[0-9&]\?>&[0-9-]/ contained skipwhite nextgroup=@fishNext + +syn match fishRedirectionTarget /[[:alnum:]$~*?{,}"'\/._-]\+/ contained contains=fishInnerVariable skipwhite nextgroup=@fishNext +hi def link fishRedirectionTarget fishRedirection + +syn match fishSelfPid /%self\>/ contained nextgroup=@fishNext +hi def link fishSelfPid fishOperator + + +" Terminators + +syn cluster fishTerminator contains=fishPipe,fishBackgroundJob,fishSemicolon,fishSymbolicAndOr + +syn match fishPipe /\(1>\|2>\|&\)\?|/ contained skipwhite nextgroup=@fishStatement +hi def link fishPipe fishEnd + +syn match fishBackgroundJob /&$/ contained skipwhite nextgroup=@fishStatement +syn match fishBackgroundJob /&[^<>&|]/me=s+1,he=s+1 contained skipwhite nextgroup=@fishStatement +hi def link fishBackgroundJob fishEnd + +syn match fishSemicolon /;/ skipwhite nextgroup=@fishStatement +hi def link fishSemicolon fishEnd + +syn match fishSymbolicAndOr /\(&&\|||\)/ contained skipwhite skipempty nextgroup=@fishStatement +hi def link fishSymbolicAndOr fishOperator + + +" Other + +syn cluster fishNext contains=fishEscapedNl,@fishArgument,@fishTerminator + +syn match fishEscapedNl /\\$/ skipnl skipwhite contained nextgroup=@fishNext + +syn match fishComment /#.*/ contains=fishTodo,@Spell + +syn keyword fishTodo TODO contained + + + +syn sync minlines=200 +syn sync maxlines=300 + + +" Intermediate highlight groups matching $fish_color_* variables + +hi def link fishCommand fish_color_command +hi def link fishComment fish_color_comment +hi def link fishEnd fish_color_end +hi def link fishCharacter fish_color_escape +hi def link fishKeyword fish_color_keyword +hi def link fishEscapedNl fish_color_normal +hi def link fishOperator fish_color_operator +hi def link fishVariable fish_color_operator +hi def link fishInnerVariable fish_color_operator +hi def link fishPathGlob fish_color_operator +hi def link fishOption fish_color_option +hi def link fishParameter fish_color_param +hi def link fishQuote fish_color_quote +hi def link fishRedirection fish_color_redirection + + +" Default highlight groups + +hi def link fish_color_param Normal +hi def link fish_color_normal Normal +hi def link fish_color_option Normal +hi def link fish_color_command Function +hi def link fish_color_keyword Keyword +hi def link fish_color_end Delimiter +hi def link fish_color_operator Operator +hi def link fish_color_redirection Type +hi def link fish_color_quote String +hi def link fish_color_escape Character +hi def link fish_color_comment Comment + +hi def link fishTodo Todo + + +let b:current_syntax = 'fish' + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/flexwiki.vim b/runtime/syntax/flexwiki.vim new file mode 100644 index 0000000..3b5f7ff --- /dev/null +++ b/runtime/syntax/flexwiki.vim @@ -0,0 +1,133 @@ +" Vim syntax file +" Language: FlexWiki, http://www.flexwiki.com/ +" Maintainer: George V. Reilly +" Home: http://www.georgevreilly.com/vim/flexwiki/ +" Other Home: http://www.vim.org/scripts/script.php?script_id=1529 +" Author: George V. Reilly +" Filenames: *.wiki +" Last Change: Wed Apr 26 11:00 PM 2006 P +" Version: 0.3 + +" Note: The horrible regexps were reverse-engineered from +" FlexWikiCore\EngineSource\Formatter.cs, with help from the Regex Analyzer +" in The Regulator, http://regulator.sourceforge.net/ .NET uses Perl-style +" regexes, which use a different syntax than Vim (fewer \s). +" The primary test case is FlexWiki\FormattingRules.wiki + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" A WikiWord (unqualifiedWikiName) +syntax match flexwikiWord /\%(_\?\([A-Z]\{2,}[a-z0-9]\+[A-Za-z0-9]*\)\|\([A-Z][a-z0-9]\+[A-Za-z0-9]*[A-Z]\+[A-Za-z0-9]*\)\)/ +" A [bracketed wiki word] +syntax match flexwikiWord /\[[[:alnum:]\s]\+\]/ + +" text: "this is a link (optional tooltip)":http://www.microsoft.com +" TODO: check URL syntax against RFC +syntax match flexwikiLink `\("[^"(]\+\((\([^)]\+\))\)\?":\)\?\(https\?\|ftp\|gopher\|telnet\|file\|notes\|ms-help\):\(\(\(//\)\|\(\\\\\)\)\+[A-Za-z0-9:#@%/;$~_?+-=.&\-\\\\]*\)` + +" text: *strong* +syntax match flexwikiBold /\(^\|\W\)\zs\*\([^ ].\{-}\)\*/ +" '''bold''' +syntax match flexwikiBold /'''\([^'].\{-}\)'''/ + +" text: _emphasis_ +syntax match flexwikiItalic /\(^\|\W\)\zs_\([^ ].\{-}\)_/ +" ''italic'' +syntax match flexwikiItalic /''\([^'].\{-}\)''/ + +" ``deemphasis`` +syntax match flexwikiDeEmphasis /``\([^`].\{-}\)``/ + +" text: @code@ +syntax match flexwikiCode /\(^\|\s\|(\|\[\)\zs@\([^@]\+\)@/ + +" text: -deleted text- +syntax match flexwikiDelText /\(^\|\s\+\)\zs-\([^ , horizontal rule +syntax match flexwikiHR /^----.*$/ + +" Formatting can be turned off by ""enclosing it in pairs of double quotes"" +syntax match flexwikiEscape /"".\{-}""/ + +" Tables. Each line starts and ends with '||'; each cell is separated by '||' +syntax match flexwikiTable /||/ + +" Bulleted list items start with one or tabs, followed by whitespace, then '*' +" Numeric list items start with one or tabs, followed by whitespace, then '1.' +" Eight spaces at the beginning of the line is equivalent to the leading tab. +syntax match flexwikiList /^\(\t\| \{8}\)\s*\(\*\|1\.\).*$/ contains=@flexwikiText + +" Treat all other lines that start with spaces as PRE-formatted text. +syntax match flexwikiPre /^[ \t]\+[^ \t*1].*$/ + + +" Link FlexWiki syntax items to colors +hi def link flexwikiH1 Title +hi def link flexwikiH2 flexwikiH1 +hi def link flexwikiH3 flexwikiH2 +hi def link flexwikiH4 flexwikiH3 +hi def link flexwikiH5 flexwikiH4 +hi def link flexwikiH6 flexwikiH5 +hi def link flexwikiHR flexwikiH6 + +hi def flexwikiBold term=bold cterm=bold gui=bold +hi def flexwikiItalic term=italic cterm=italic gui=italic + +hi def link flexwikiCode Statement +hi def link flexwikiWord Underlined + +hi def link flexwikiEscape Todo +hi def link flexwikiPre PreProc +hi def link flexwikiLink Underlined +hi def link flexwikiList Type +hi def link flexwikiTable Type +hi def link flexwikiEmoticons Constant +hi def link flexwikiDelText Comment +hi def link flexwikiDeEmphasis Comment +hi def link flexwikiInsText Constant +hi def link flexwikiSuperScript Constant +hi def link flexwikiSubScript Constant +hi def link flexwikiCitation Constant + +hi def link flexwikiSingleLineProperty Identifier + +let b:current_syntax="FlexWiki" + +" vim:tw=0: diff --git a/runtime/syntax/focexec.vim b/runtime/syntax/focexec.vim new file mode 100644 index 0000000..187fd50 --- /dev/null +++ b/runtime/syntax/focexec.vim @@ -0,0 +1,88 @@ +" Vim syntax file +" Language: Focus Executable +" Maintainer: Rob Brady +" Last Change: $Date: 2004/06/13 15:38:04 $ +" URL: http://www.datatone.com/~robb/vim/syntax/focexec.vim +" $Revision: 1.1 $ + +" this is a very simple syntax file - I will be improving it +" one thing is how to do computes +" I don't like that &vars and FUSE() functions highlight to the same color +" I think some of these things should get different highlights - +" should MODIFY commands look different than TABLE? + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +" A bunch of useful keywords +syn keyword focexecTable TABLE SUM BY ACROSS END PRINT HOLD LIST NOPRINT +syn keyword focexecTable SUBFOOT SUBHEAD HEADING FOOTING PAGE-BREAK AS +syn keyword focexecTable WHERE AND OR NOSPLIT FORMAT +syn keyword focexecModify MODIFY DATA ON FIXFORM PROMPT MATCH COMPUTE +syn keyword focexecModify GOTO CASE ENDCASE TYPE NOMATCH REJECT INCLUDE +syn keyword focexecModify CONTINUE FROM +syn keyword focexecNormal CHECK FILE CREATE EX SET IF FILEDEF DEFINE +syn keyword focexecNormal REBUILD IF RECORDLIMIT FI EQ JOIN +syn keyword focexecJoin IN TO +syn keyword focexecFileDef DISK +syn keyword focexecSet MSG ALL +syn match focexecDash "-RUN" +syn match focexecDash "-PROMPT" +syn match focexecDash "-WINFORM" + +" String and Character constants +syn region focexecString1 start=+"+ end=+"+ +syn region focexecString2 start=+'+ end=+'+ + +"amper variables +syn match focexecAmperVar "&&\=[A-Z_]\+" + +"fuse functions +syn keyword focexecFuse GETUSER GETUSR WHOAMI FEXERR ASIS GETTOK UPCASE LOCASE +syn keyword focexecFuse SUBSTR TODAY TODAYI POSIT HHMMSS BYTVAL EDAUT1 BITVAL +syn keyword focexecFuse BITSON FGETENV FPUTENV HEXBYT SPAWN YM YMI JULDAT +syn keyword focexecFuse JULDATI DOWK DOWKI DOWKLI CHGDAT CHGDATI FTOA ATODBL +syn keyword focexecFuse SOUNDEX RJUST REVERSE PARAG OVRLAY LJUST CTRFLD CTRAN +syn keyword focexecFuse CHKFMT ARGLEN GREGDT GREGDTI DTYMD DTYMDI DTDMY DTDMYI +syn keyword focexecFuse DTYDM DTYDMI DTMYD DTMYDI DTDYM DTDYMI DAYMD DAYMDI +syn keyword focexecFuse DAMDY DAMDYI DADMY DADMYI AYM AYMI AYMD AYMDI CHKPCK +syn keyword focexecFuse IMOD FMOD DMOD PCKOUT EXP BAR SPELLNM SPELLNUM RTCIVP +syn keyword focexecFuse PRDUNI PRDNOR RDNORM RDUNIF LCWORD ITOZ RLPHLD IBIPRO +syn keyword focexecFuse IBIPRW IBIPRC IBIPRU IBIRCP PTHDAT ITOPACK ITONUM +syn keyword focexecFuse DSMEXEC DSMEVAL DSMERRC MSMEXEC MSMEVAL MSMERRC EXTDXI +syn keyword focexecFuse BAANHASH EDAYSI DTOG GTOD HSETPT HPART HTIME HNAME +syn keyword focexecFuse HADD HDIFF HDATE HGETC HCNVRT HDTTM HMIDNT TEMPPATH +syn keyword focexecFuse DATEADD DATEDIF DATEMOV DATECVT EURHLD EURXCH FINDFOC +syn keyword focexecFuse FERRMES CNCTUSR CURRPATH USERPATH SYSTEM ASKYN +syn keyword focexecFuse FUSEMENU POPEDIT POPFILE + +syn match focexecNumber "\<\d\+\>" +syn match focexecNumber "\<\d\+\.\d*\>" + +syn match focexecComment "-\*.*" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link focexecString1 String +hi def link focexecString2 String +hi def link focexecNumber Number +hi def link focexecComment Comment +hi def link focexecTable Keyword +hi def link focexecModify Keyword +hi def link focexecNormal Keyword +hi def link focexecSet Keyword +hi def link focexecDash Keyword +hi def link focexecFileDef Keyword +hi def link focexecJoin Keyword +hi def link focexecAmperVar Identifier +hi def link focexecFuse Function + + +let b:current_syntax = "focexec" + +" vim: ts=8 diff --git a/runtime/syntax/form.vim b/runtime/syntax/form.vim new file mode 100644 index 0000000..9718480 --- /dev/null +++ b/runtime/syntax/form.vim @@ -0,0 +1,145 @@ +" Vim syntax file +" Language: FORM +" Version: 2.0 +" Maintainer: Michael M. Tung +" Last Change: +" Past Change: +" Past Change: + +" First public release based on 'Symbolic Manipulation with FORM' +" by J.A.M. Vermaseren, CAN, Netherlands, 1991. +" This syntax file is still in development. Please send suggestions +" to the maintainer. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" a bunch of useful FORM keywords +syn keyword formType global local +syn keyword formHeaderStatement symbol symbols cfunction cfunctions +syn keyword formHeaderStatement function functions vector vectors +syn keyword formHeaderStatement tensor tensors ctensor ctensors +syn keyword formHeaderStatement set sets index indices table ctable +syn keyword formHeaderStatement dimension dimensions unittrace +syn keyword formConditional if else elseif endif while +syn keyword formConditional repeat endrepeat label goto +syn keyword formConditional argument endargument exit +syn keyword formConditional inexpression inside term +syn keyword formConditional endinexpression endinside endterm +syn keyword formStatement abrackets also antibrackets antisymmetrize +syn keyword formStatement argexplode argimplode apply auto autodeclare +syn keyword formStatement brackets chainin chainout chisholm cleartable +syn keyword formStatement collect commuting compress contract +syn keyword formStatement cyclesymmetrize deallocatetable delete +syn keyword formStatement dimension discard disorder drop factarg fill +syn keyword formStatement fillexpression fixindex format funpowers hide +syn keyword formStatement identify idnew idold ifmatch inparallel +syn keyword formStatement insidefirst keep load makeinteger many metric +syn keyword formStatement moduleoption modulus multi multiply ndrop +syn keyword formStatement nfunctions nhide normalize notinparallel +syn keyword formStatement nprint nskip ntable ntensors nunhide nwrite +syn keyword formStatement off on once only polyfun pophide print +syn keyword formStatement printtable propercount pushhide ratio +syn keyword formStatement rcyclesymmetrize redefine renumber +syn keyword formStatement replaceinarg replaceloop save select +syn keyword formStatement setexitflag skip slavepatchsize sort splitarg +syn keyword formStatement splitfirstarg splitlastarg sum symmetrize +syn keyword formStatement tablebase testuse threadbucketsize totensor +syn keyword formStatement tovector trace4 tracen tryreplace unhide +syn keyword formStatement unittrace vectors write +" for compatibility with older FORM versions: +syn keyword formStatement id bracket count match traceN + +" some special functions +syn keyword formStatement abs_ bernoulli_ binom_ conjg_ count_ +syn keyword formStatement d_ dd_ delta_ deltap_ denom_ distrib_ +syn keyword formStatement dum_ dummy_ dummyten_ e_ exp_ fac_ +syn keyword formStatement factorin_ firstbracket_ g5_ g6_ g7_ +syn keyword formStatement g_ gcd_ gi_ integer_ invfac_ match_ +syn keyword formStatement max_ maxpowerof_ min_ minpowerof_ +syn keyword formStatement mod_ nargs_ nterms_ pattern_ poly_ +syn keyword formStatement polyadd_ polydiv_ polygcd_ polyintfac_ +syn keyword formStatement polymul_ polynorm_ polyrem_ polysub_ +syn keyword formStatement replace_ reverse_ root_ setfun_ sig_ +syn keyword formStatement sign_ sum_ sump_ table_ tbl_ term_ +syn keyword formStatement termsin_ termsinbracket_ theta_ thetap_ +syn keyword formStatement 5_ 6_ 7_ + +syn keyword formReserved sqrt_ ln_ sin_ cos_ tan_ asin_ acos_ +syn keyword formReserved atan_ atan2_ sinh_ cosh_ tanh_ asinh_ +syn keyword formReserved acosh_ atanh_ li2_ lin_ + +syn keyword formTodo contained TODO FIXME XXX + +syn match formSpecial display contained "\\\(n\|t\|b\|\\\|\"\)" +syn match formSpecial display contained "%\(%\|e\|E\|s\|f\|\$\)" +syn match formSpecial "\" +syn match formNumber "\<\d\+\>" +syn match formNumber "\<\d\+\.\d*\>" +syn match formNumber "\.\d\+\>" +syn match formNumber "-\d" contains=Number +syn match formNumber "-\.\d" contains=Number +syn match formNumber "i_\+\>" +syn match formNumber "fac_\+\>" +" pattern matching wildcards +syn match formNumber "?[a-zA-Z0-9]*" +" dollar-variables (new in 3.x) +syn match formNumber "\\$[a-zA-Z0-9]*" +" scalar products +syn match formNumber "^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>" + +syn match formDirective "^\=\.[a-zA-Z][a-zA-Z0-9]*\>" + +" hi User Labels +syn sync ccomment formComment minlines=10 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link formConditional Conditional +hi def link formNumber Number +hi def link formStatement Statement +hi def link formComment Comment +hi def link formPreProc PreProc +hi def link formDirective PreProc +hi def link formType Type +hi def link formString String +hi def link formNestedString String +hi def link formReserved Error +hi def link formTodo Todo +hi def link formSpecial SpecialChar + +if !exists("form_enhanced_color") +hi def link formHeaderStatement Statement +else +" enhanced color mode +hi def link formHeaderStatement HeaderStatement +" dark and a light background for local types +if &background == "dark" +hi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold +else +hi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold +endif +" change slightly the default for dark gvim +if has("gui_running") && &background == "dark" +hi Conditional guifg=LightBlue gui=bold +hi Statement guifg=LightYellow +endif +endif + + + let b:current_syntax = "form" + +" vim: ts=8 diff --git a/runtime/syntax/forth.vim b/runtime/syntax/forth.vim new file mode 100644 index 0000000..252116a --- /dev/null +++ b/runtime/syntax/forth.vim @@ -0,0 +1,455 @@ +" Vim syntax file +" Language: Forth +" Maintainer: Johan Kotlinski +" Previous Maintainer: Christian V. J. Brüssow +" Last Change: 2023 Aug 13 +" Filenames: *.f,*.fs,*.ft,*.fth,*.4th +" URL: https://github.com/jkotlinski/forth.vim + +" Supports the Forth-2012 Standard. +" +" Removed words from the earlier Forth-79, Forth-83 and Forth-94 standards are +" also included. +" +" These have been organised according to the version in which they were +" initially included and the version in which they were removed (obsolescent +" status is ignored). Words with "experimental" or "uncontrolled" status are +" not included unless they were later standardised. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Synchronization method +exe "syn sync minlines=" .. get(g:, "forth_minlines", 50) + +syn case ignore + +" Characters allowed in keywords +" I don't know if 128-255 are allowed in ANS-FORTH +syn iskeyword 33-126,128-255 + +" Space errors {{{1 +" when wanted, highlight trailing white space +if exists("forth_space_errors") + if !exists("forth_no_trail_space_error") + syn match forthSpaceError display excludenl "\s\+$" + endif + if !exists("forth_no_tab_space_error") + syn match forthSpaceError display " \+\t"me=e-1 + endif +endif + +" Core words {{{1 + +" basic mathematical and logical operators {{{2 +syn keyword forthOperators * */ */MOD + - / /MOD 0< 0= 1+ 1- 2* 2/ < = > ABS +syn keyword forthOperators AND FM/MOD INVERT LSHIFT M* MAX MIN MOD NEGATE OR +syn keyword forthOperators RSHIFT SM/REM U< UM* UM/MOD XOR + " extension words +syn keyword forthOperators 0<> 0> <> U> WITHIN + " Forth-79 +syn keyword forthOperators U* U/ U/MOD + " Forth-79, Forth-83 +syn keyword forthOperators NOT + " Forth-83 +syn keyword forthOperators 2+ 2- + +" non-standard basic mathematical and logical operators +syn keyword forthOperators 0<= 0>= 8* <= >= ?DNEGATE ?NEGATE U<= U>= UNDER+ + +" various words that take an input and do something with it {{{2 +syn keyword forthFunction . U. + " extension words +syn keyword forthFunction .R U.R + +" stack manipulations {{{2 +syn keyword forthStack 2DROP 2DUP 2OVER 2SWAP >R ?DUP DROP DUP OVER R> R@ ROT +syn keyword forthStack SWAP + " extension words +syn keyword forthStack NIP PICK ROLL TUCK +syn keyword forthRStack 2>R 2R> 2R@ + +" non-standard stack manipulations +syn keyword forthStack -ROT 3DROP 3DUP 4-ROT 4DROP 4DUP 4ROT 4SWAP 4TUCK +syn keyword forthStack 5DROP 5DUP 8DROP 8DUP 8SWAP +syn keyword forthRStack 4>R 4R> 4R@ 4RDROP RDROP + +" stack pointer manipulations {{{2 +syn keyword forthSP DEPTH + +" non-standard stack pointer manipulations +syn keyword forthSP FP! FP@ LP! LP@ RP! RP@ SP! SP@ + +" address operations {{{2 +syn keyword forthMemory ! +! 2! 2@ @ C! C@ +syn keyword forthAdrArith ALIGN ALIGNED ALLOT CELL+ CELLS CHAR+ CHARS +syn keyword forthMemBlks FILL MOVE + " extension words +syn keyword forthMemBlks ERASE UNUSED + +" non-standard address operations +syn keyword forthAdrArith ADDRESS-UNIT-BITS CELL CFALIGN CFALIGNED FLOAT +syn keyword forthAdrArith MAXALIGN MAXALIGNED + +" conditionals {{{2 +syn keyword forthCond ELSE IF THEN + " extension words +syn keyword forthCond CASE ENDCASE ENDOF OF + +" non-standard conditionals +syn keyword forthCond ?DUP-0=-IF ?DUP-IF ENDIF + +" iterations {{{2 +syn keyword forthLoop +LOOP BEGIN DO EXIT I J LEAVE LOOP RECURSE REPEAT UNLOOP +syn keyword forthLoop UNTIL WHILE + " extension words +syn keyword forthLoop ?DO AGAIN + +" non-standard iterations +syn keyword forthLoop +DO -DO -LOOP ?LEAVE DONE FOR K NEXT U+DO U-DO + +" new words {{{2 +syn match forthColonDef "\<:\s*[^ \t]\+\>" +syn keyword forthEndOfColonDef ; +syn keyword forthDefine ' , C, CONSTANT CREATE DOES> EXECUTE IMMEDIATE LITERAL +syn keyword forthDefine POSTPONE STATE VARIABLE ] +syn match forthDefine "\<\[']\>" +syn match forthDefine "\<\[\>" + " extension words +syn keyword forthColonDef :NONAME +syn keyword forthDefine BUFFER: COMPILE, DEFER IS MARKER TO VALUE +syn match forthDefine "\<\[COMPILE]\>" + " Forth-79, Forth-83 +syn keyword forthDefine COMPILE + +" non-standard new words +syn match forthClassDef "\<:CLASS\s*[^ \t]\+\>" +syn keyword forthEndOfClassDef ;CLASS +syn match forthObjectDef "\<:OBJECT\s*[^ \t]\+\>" +syn keyword forthEndOfObjectDef ;OBJECT +syn match forthColonDef "\<:M\s*[^ \t]\+\>" +syn keyword forthEndOfColonDef ;M +syn keyword forthDefine 2, COMPILE-ONLY CREATE-INTERPRET/COMPILE +syn keyword forthDefine CVARIABLE F, FIND-NAME INTERPRET INTERPRETATION> +syn keyword forthDefine LASTXT NAME>COMP NAME>INT NAME?INT POSTPONE, RESTRICT +syn keyword forthDefine USER +syn match forthDefine "\<\[COMP']\>" + +" basic character operations {{{2 +syn keyword forthCharOps BL COUNT CR EMIT FIND KEY SPACE SPACES TYPE WORD +" recognize 'char (' or '[CHAR] (' correctly, so it doesn't +" highlight everything after the paren as a comment till a closing ')' +syn match forthCharOps '\ #S <# >NUMBER HOLD S>D SIGN + " extension words +syn keyword forthConversion HOLDS + " Forth-79, Forth-83, Forth-93 +syn keyword forthConversion CONVERT + +" non-standard char-number conversion +syn keyword forthConversion #>> (NUMBER) (NUMBER?) <<# DIGIT DPL HLD NUMBER + +" interpreter, wordbook, compiler {{{2 +syn keyword forthForth >BODY >IN ACCEPT ENVIRONMENT? EVALUATE HERE QUIT SOURCE + " extension words +syn keyword forthForth ACTION-OF DEFER! DEFER@ PAD PARSE PARSE-NAME REFILL +syn keyword forthForth RESTORE-INPUT SAVE-INPUT SOURCE-ID + " Forth-79 +syn keyword forthForth 79-STANDARD + " Forth-83 +syn keyword forthForth MARK >RESOLVE ?BRANCH BRANCH FORTH-83 + " Forth-79, Forth-83, Forth-94 +syn keyword forthForth QUERY + " Forth-83, Forth-94 +syn keyword forthForth SPAN + +" non-standard interpreter, wordbook, compiler +syn keyword forthForth ) >LINK >NEXT >VIEW ASSERT( ASSERT0( ASSERT1( ASSERT2( +syn keyword forthForth ASSERT3( BODY> CFA COLD L>NAME LINK> N>LINK NAME> VIEW +syn keyword forthForth VIEW> + +" booleans {{{2 + " extension words +syn match forthBoolean "\<\%(TRUE\|FALSE\)\>" + +" numbers {{{2 +syn keyword forthMath BASE DECIMAL + " extension words +syn keyword forthMath HEX +syn match forthInteger '\<-\=\d\+\.\=\>' +syn match forthInteger '\<#-\=\d\+\.\=\>' +syn match forthInteger '\<\$-\=\x\+\.\=\>' +syn match forthInteger '\<%-\=[01]\+\.\=\>' + +" characters {{{2 +syn match forthCharacter "'\k'" + +" strings {{{2 + +" Words that end with " are assumed to start string parsing. +" This includes standard words: S" ." +syn region forthString matchgroup=forthString start=+\<\S\+"\s+ end=+"+ end=+$+ contains=@Spell + " extension words +syn region forthString matchgroup=forthString start=+\\|:\@=\)" + +" XXX If you find this overkill you can remove it. This has to come after the +" highlighting for numbers and booleans otherwise it has no effect. +syn region forthComment start='\<\%(0\|FALSE\)\s\+\[IF]' end='\<\[ENDIF]' end='\<\[THEN]' contains=forthTodo + +if get(g:, "forth_no_comment_fold", 0) + syn region forthComment start='\<(\>' end=')' contains=@Spell,forthTodo,forthSpaceError + " extension words + syn match forthComment '\<\\\>.*$' contains=@Spell,forthTodo,forthSpaceError +else + syn region forthComment start='\<(\>' end=')' contains=@Spell,forthTodo,forthSpaceError fold + " extension words + syn match forthComment '\<\\\>.*$' contains=@Spell,forthTodo,forthSpaceError + syn region forthMultilineComment start="^\s*\\\>" end="\n\%(\s*\\\>\)\@!" contains=forthComment transparent fold +endif + + " extension words +syn region forthComment start='\<\.(\>' end=')' end='$' contains=@Spell,forthTodo,forthSpaceError + +" ABORT {{{2 +syn keyword forthForth ABORT +syn region forthForth start=+\+ end=+$+ + +" The optional Block word set {{{1 +" Handled as Core words - REFILL +syn keyword forthBlocks BLK BLOCK BUFFER FLUSH LOAD SAVE-BUFFERS UPDATE + " extension words +syn keyword forthBlocks EMPTY-BUFFERS LIST SCR THRU + +" Non-standard Block words +syn keyword forthBlocks +LOAD +THRU --> BLOCK-INCLUDED BLOCK-OFFSET +syn keyword forthBlocks BLOCK-POSITION EMPTY-BUFFER GET-BLOCK-FID OPEN-BLOCKS +syn keyword forthBlocks SAVE-BUFFER UPDATED? USE + +" The optional Double-Number word set {{{1 +syn keyword forthConversion D>S +syn keyword forthDefine 2CONSTANT 2LITERAL 2VARIABLE +syn keyword forthFunction D. D.R +syn keyword forthOperators D+ D- D0= D2* D2/ D= DABS DMAX DMIN DNEGATE +syn keyword forthOperators D0< D< M+ M*/ + " extension words +syn keyword forthDefine 2VALUE +syn keyword forthOperators DU< +syn keyword forthStack 2ROT + +" Non-standard Double-Number words +syn keyword forthOperators D0<= D0<> D0> D0>= D<= D<> D> D>= DU<= DU> DU>= +syn keyword forthStack 2-ROT 2NIP 2RDROP 2TUCK + +" The optional Exception word set {{{1 +" Handled as Core words - ABORT ABORT" +syn keyword forthCond CATCH THROW + +" The optional Facility word set {{{1 +syn keyword forthCharOps AT-XY KEY? PAGE + " extension words +syn keyword forthCharOps EKEY EKEY>CHAR EKEY>FKEY EKEY? EMIT? K-ALT-MASK +syn keyword forthCharOps K-CTRL-MASK K-DELETE K-DOWN K-END K-F1 K-F10 K-F11 +syn keyword forthCharOps K-F12 K-F2 K-F3 K-F4 K-F5 K-F6 K-F7 K-F8 K-F9 K-HOME +syn keyword forthCharOps K-INSERT K-LEFT K-NEXT K-PRIOR K-RIGHT K-SHIFT-MASK +syn keyword forthCharOps K-UP +syn keyword forthDefine +FIELD BEGIN-STRUCTURE CFIELD: END-STRUCTURE FIELD: +syn keyword forthForth MS TIME&DATE + +" The optional File-Access word set {{{1 +" Handled as Core words - REFILL SOURCE-ID S\" S" ( +syn keyword forthFileMode BIN R/O R/W W/O +syn keyword forthFileWords CLOSE-FILE CREATE-FILE DELETE-FILE FILE-POSITION +syn keyword forthFileWords FILE-SIZE INCLUDE-FILE INCLUDED OPEN-FILE READ-FILE +syn keyword forthFileWords READ-LINE REPOSITION-FILE RESIZE-FILE WRITE-FILE +syn keyword forthFileWords WRITE-LINE + " extension words +syn keyword forthFileWords FILE-STATUS FLUSH-FILE RENAME-FILE REQUIRED +syn match forthInclude '\' + +syn keyword forthConversion >FLOAT D>F F>D +syn keyword forthAdrArith FALIGN FALIGNED FLOAT+ FLOATS +syn keyword forthDefine FCONSTANT FLITERAL FVARIABLE +syn keyword forthFStack FDROP FDUP FOVER FROT FSWAP +syn keyword forthFunction REPRESENT +syn keyword forthMemory F! F@ +syn keyword forthOperators F* F+ F- F/ F0< F0= F< FLOOR FMAX FMIN FNEGATE +syn keyword forthOperators FROUND +syn keyword forthSP FDEPTH + " extension words +syn keyword forthConversion F>S S>F +syn keyword forthAdrArith DFALIGN DFALIGNED DFLOAT+ DFLOATS SFALIGN +syn keyword forthAdrArith SFALIGNED SFLOAT+ SFLOATS +syn keyword forthDefine DFFIELD: FFIELD: FVALUE SFFIELD: +syn keyword forthFunction F. FE. FS. PRECISION SET-PRECISION +syn keyword forthMemory DF! DF@ SF! SF@ +syn keyword forthOperators F** FABS FACOS FACOSH FALOG FASIN FASINH FATAN +syn keyword forthOperators FATAN2 FATANH FCOS FCOSH FEXP FEXPM1 FLN FLNP1 +syn keyword forthOperators FLOG FSIN FSINCOS FSINH FSQRT FTAN FTANH FTRUNC F~ + +" Non-standard Floating-Point words +syn keyword forthOperators 1/F F2* F2/ F~ABS F~REL +syn keyword forthFStack FNIP FTUCK + +" The optional Locals word set {{{1 +syn keyword forthForth (LOCAL) + " extension words +syn region forthLocals start="\<{:\>" end="\<:}\>" +syn region forthLocals start="\" end="\<|\>" + +" Non-standard Locals words +syn region forthLocals start="\<{\>" end="\<}\>" + +" The optional Memory-Allocation word set {{{1 +syn keyword forthMemory ALLOCATE FREE RESIZE + +" The optional Programming-Tools wordset {{{1 +syn keyword forthDebug .S ? DUMP SEE WORDS + " extension words +syn keyword forthAssembler ;CODE ASSEMBLER CODE END-CODE +syn keyword forthCond AHEAD CS-PICK CS-ROLL +syn keyword forthDefine NAME>COMPILE NAME>INTERPRET NAME>STRING SYNONYM +syn keyword forthDefine TRAVERSE-WORDLIST +syn match forthDefine "\<\[DEFINED]\>" +syn match forthDefine "\<\[ELSE]\>" +syn match forthDefine "\<\[IF]\>" +syn match forthDefine "\<\[THEN]\>" +syn match forthDefine "\<\[UNDEFINED]\>" +syn keyword forthForth BYE FORGET +syn keyword forthStack N>R NR> +syn keyword forthVocs EDITOR + +" Non-standard Programming-Tools words +syn keyword forthAssembler FLUSH-ICACHE +syn keyword forthDebug PRINTDEBUGDATA PRINTDEBUGLINE +syn match forthDebug "\<\~\~\>" +syn match forthDefine "\<\[+LOOP]\>" +syn match forthDefine "\<\[?DO]\>" +syn match forthDefine "\<\[AGAIN]\>" +syn match forthDefine "\<\[BEGIN]\>" +syn match forthDefine "\<\[DO]\>" +syn match forthDefine "\<\[ENDIF]\>" +syn match forthDefine "\<\[IFDEF]\>" +syn match forthDefine "\<\[IFUNDEF]\>" +syn match forthDefine "\<\[LOOP]\>" +syn match forthDefine "\<\[NEXT]\>" +syn match forthDefine "\<\[REPEAT]\>" +syn match forthDefine "\<\[UNTIL]\>" +syn match forthDefine "\<\[WHILE]\>" + +" The optional Search-Order word set {{{1 +" Handled as Core words - FIND +syn keyword forthVocs DEFINITIONS FORTH-WORDLIST GET-CURRENT GET-ORDER +syn keyword forthVocs SEARCH-WORDLIST SET-CURRENT SET-ORDER WORDLIST + " extension words +syn keyword forthVocs ALSO FORTH ONLY ORDER PREVIOUS + " Forth-79, Forth-83 +syn keyword forthVocs CONTEXT CURRENT VOCABULARY + +" Non-standard Search-Order words +syn keyword forthVocs #VOCS ROOT SEAL VOCS + +" The optional String word set {{{1 +syn keyword forthFunction -TRAILING /STRING BLANK CMOVE CMOVE> COMPARE SEARCH +syn keyword forthFunction SLITERAL + " extension words +syn keyword forthFunction REPLACES SUBSTITUTE UNESCAPE + +" The optional Extended-Character word set {{{1 +" Handled as Core words - [CHAR] CHAR and PARSE +syn keyword forthAdrArith XCHAR+ +syn keyword forthCharOps X-SIZE XC-SIZE XEMIT XKEY XKEY? +syn keyword forthDefine XC, +syn keyword forthMemory XC!+ XC!+? XC@+ + " extension words +syn keyword forthAdrArith XCHAR- +X/STRING X\\STRING- +syn keyword forthCharOps EKEY>XCHAR X-WIDTH XC-WIDTH +syn keyword forthConversion XHOLD +syn keyword forthString -TRAILING-GARBAGE + +" Define the default highlighting {{{1 +hi def link forthBoolean Boolean +hi def link forthCharacter Character +hi def link forthTodo Todo +hi def link forthOperators Operator +hi def link forthMath Number +hi def link forthInteger Number +hi def link forthFloat Float +hi def link forthStack Special +hi def link forthRstack Special +hi def link forthFStack Special +hi def link forthSP Special +hi def link forthMemory Function +hi def link forthAdrArith Function +hi def link forthMemBlks Function +hi def link forthCond Conditional +hi def link forthLoop Repeat +hi def link forthColonDef Define +hi def link forthEndOfColonDef Define +hi def link forthDefine Define +hi def link forthDebug Debug +hi def link forthAssembler Include +hi def link forthCharOps Character +hi def link forthConversion String +hi def link forthForth Statement +hi def link forthVocs Statement +hi def link forthEscape Special +hi def link forthString String +hi def link forthComment Comment +hi def link forthClassDef Define +hi def link forthEndOfClassDef Define +hi def link forthObjectDef Define +hi def link forthEndOfObjectDef Define +hi def link forthInclude Include +hi def link forthLocals Type " nothing else uses type and locals must stand out +hi def link forthFileMode Function +hi def link forthFunction Function +hi def link forthFileWords Statement +hi def link forthBlocks Statement +hi def link forthSpaceError Error +"}}} + +let b:current_syntax = "forth" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:ts=8:sw=4:nocindent:smartindent:fdm=marker:tw=78 + diff --git a/runtime/syntax/fortran.vim b/runtime/syntax/fortran.vim new file mode 100644 index 0000000..1fb8a1c --- /dev/null +++ b/runtime/syntax/fortran.vim @@ -0,0 +1,490 @@ +" Vim syntax file +" Language: Fortran 2023 (and Fortran 2018, 2008, 2003, 95, 90, and 77) +" Version: (v110) 2024 January 03 +" Maintainers: Ajit J. Thakkar ; +" Joshua Hollett +" Usage: For instructions, do :help fortran-syntax from Vim +" Credits: +" Version 0.1 for Fortran 95 was created in April 2000 by Ajit Thakkar from an +" older Fortran 77 syntax file by Mario Eusebio and Preben Guldberg. +" Since then, useful suggestions and contributions have been made, in order, by: +" Andrej Panjkov, Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile, +" Walter Dieudonne, Alexander Wagner, Roman Bertle, Charles Rendleman, +" Andrew Griffiths, Joe Krahn, Hendrik Merx, Matt Thompson, Jan Hermann, +" Stefano Zaghi, Vishnu V. Krishnan, Judicael Grasset, Takuma Yoshida, +" Eisuke Kawashima, Andre Chalella, Fritz Reese, Karl D. Hammond, +" and Michele Esposito Marzino. + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Choose between fixed and free source form if this hasn't been done yet +if !exists("b:fortran_fixed_source") + if exists("fortran_free_source") + " User guarantees free source form for all fortran files + let b:fortran_fixed_source = 0 + elseif exists("fortran_fixed_source") + " User guarantees fixed source form for all fortran files + let b:fortran_fixed_source = 1 + elseif expand("%:e") =~? '^f\%(90\|95\|03\|08\)$' + " Free-form file extension defaults as in Intel ifort, gcc(gfortran), NAG, Pathscale, and Cray compilers + let b:fortran_fixed_source = 0 + elseif expand("%:e") =~? '^\%(f\|f77\|for\)$' + " Fixed-form file extension defaults + let b:fortran_fixed_source = 1 + else + " Modern fortran compilers still allow both free and fixed source form. + " Assume fixed source form unless signs of free source form + " are detected in the first five columns of the first s:lmax lines. + " Detection becomes more accurate and time-consuming if more lines + " are checked. Increase the limit below if you keep lots of comments at + " the very top of each file and you have a fast computer. + let s:lmax = 500 + if ( s:lmax > line("$") ) + let s:lmax = line("$") + endif + let b:fortran_fixed_source = 1 + let s:ln=1 + while s:ln <= s:lmax + let s:test = strpart(getline(s:ln),0,5) + if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t' + let b:fortran_fixed_source = 0 + break + endif + let s:ln = s:ln + 1 + endwhile + unlet! s:lmax s:ln s:test + endif +endif + +syn case ignore + +if b:fortran_fixed_source == 1 + syn match fortranConstructName "^\s\{6,}\zs\a\w*\ze\s*:" +else + syn match fortranConstructName "^\s*\zs\a\w*\ze\s*:" +endif +syn match fortranConstructName "\%(\" +syn match fortranConstructName "\%(\" +syn match fortranConstructName "\%(\" + +syn match fortranUnitName "\%(\<\%(end\s*\)\?\%(subroutine\|function\|module\|program\|submodule\)\s\+\)\@12<=\a\w\+" +syn match fortranUnitHeader "\\ze\s*\%(!.*\)\?$" + +syn keyword fortranIntrinsic abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh +syn keyword fortranIntrinsicR achar iachar transfer dble dprod dim lge lgt lle llt mod +syn keyword fortranIntrinsic command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line same_type_as extends_type_of +syn keyword fortranIntrinsic selected_real_kind selected_int_kind selected_logical_kind selected_char_kind +syn keyword fortranIntrinsic acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 +syn keyword fortranIntrinsic adjustl adjustr all allocated any associated bit_size btest ceiling cshift date_and_time digits +syn keyword fortranIntrinsic dot_product eoshift exponent floor fraction iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc merge minexponent minloc +syn keyword fortranIntrinsic modulo mvbits nearest pack precision present radix random_number random_seed range repeat reshape rrspacing scale scan set_exponent shape size spacing +"syn keyword fortranIntrinsic count epsilon maxval minval product sum huge tiny +" intrinsic names often used for variables in older Fortran code +syn match fortranIntrinsic '\<\%(count\|epsilon\|maxval\|minval\|product\|sum\|huge\|tiny\)\>\ze\s*(' +syn keyword fortranIntrinsic spread system_clock transpose trim ubound unpack verify +syn keyword fortranIntrinsic atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits +syn keyword fortranIntrinsic bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image +syn keyword fortranIntrinsic null cpu_time failed_images stopped_images image_status co_broadcast co_max co_min co_sum co_reduce +syn keyword fortranIntrinsic atomic_add atomic_and atomic_or atomic_xor atomic_fetch_add atomic_fetch_and atomic_fetch_or atomic_fetch_xor atomic_cas +syn keyword fortranIntrinsic ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode +syn keyword fortranIntrinsic ieee_max ieee_max_mag ieee_min ieee_min_mag split tokenize ieee_support_subnormal ieee_get_modes ieee_set_modes +syn keyword fortranIntrinsic ieee_set_status ieee_get_rounding_mode ieee_set_rounding_mode +syn keyword fortranIntrinsic iso_c_binding c_loc c_funloc c_sizeof c_associated c_f_pointer c_f_procpointer +syn keyword fortranIntrinsic out_of_range reduce random_init coshape +syn keyword fortranIntrinsic acosd asind atand atan2d cosd sind tand acospi asinpi atanpi atan2pi cospi sinpi tanpi +syn keyword fortranIntrinsic compiler_options compiler_version get_team team_number +syn match fortranIntrinsic "\" +syn match fortranType "^\s*\zsimplicit\s\+none\>" +syn match fortranType "\<\%(class\|type\)\%(of\)\?\>" +syn match fortranType "\<\%(end\s*\)\?interface\>" +syn match fortranType "\" +syn match fortranType "\<\%(end\s*\)\?enumeration\s\+type" +syn match fortranType "\<\%(end\s*\)\?\%(module\s\+\)\?procedure\>" +syn match fortranTypeR display "\" +syn match fortranTypeR display "\" +syn keyword fortranAttribute value bind deferred contiguous intrinsic non_intrinsic +syn keyword fortranAttribute asynchronous nopass non_overridable pass volatile extends +syn keyword fortranAttribute abstract external private public protected intent optional +syn keyword fortranAttribute pointer target allocatable dimension codimension sequence parameter save + +syn keyword fortranUnitHeader result operator assignment +syn match fortranUnitHeader "\<\%(end\s*\)\?\%(subroutine\|function\|module\|program\|submodule\)\>" +syn match fortranBlock "\<\%(end\s*\)\?\%(block\|critical\|associate\)\>" +syn match fortranCalled "\<\%(call\s\+\)\@7<=\a\w*" +syn match fortranRepeat "\" +syn keyword fortranRepeat concurrent +syn keyword fortranRepeatR while +syn match fortranRepeat "\" +syn keyword fortranRepeatOb forall +syn match fortranRepeatOb "\" + +syn keyword fortranTodo contained bug note debug todo fixme + +"Catch errors caused by too many right parentheses +syn region fortranParen transparent start="(" end=")" contains=ALLBUT,fortranParenError,@fortranCommentGroup,cIncluded,@spell +syn match fortranParenError ")" + +syn match fortranOperator "\.\s*n\=eqv\s*\." +syn match fortranOperator "\.\s*\%(and\|or\|not\)\s*\." +syn match fortranOperator "\%(+\|-\|/\|\*\)" +syn match fortranOperator "\%(\%(>\|<\)=\=\|==\|/=\|=\)" +syn match fortranOperator "\%(%\|?\|=>\)" +syn match fortranOperator "\%([\|]\)" +syn match fortranOperatorR "\.\s*[gl][et]\s*\." +syn match fortranOperatorR "\.\s*\%(eq\|ne\)\s*\." + +syn keyword fortranReadWrite print flush +syn match fortranReadWrite '\<\%(backspace\|close\|endfile\|inquire\|open\|read\|rewind\|write\)\ze\s*(' + +"If tabs are allowed then the left margin checks do not work +if exists("fortran_have_tabs") + syn match fortranTab "\t" transparent +else + syn match fortranTab "\t" +endif + +"Numbers of various sorts +" Integers +syn match fortranNumber display "\<\d\+\%(_\a\w*\)\=\>" +" floating point number, without a decimal point +syn match fortranFloatIll display "\<\d\+[deq][-+]\=\d\+\%(_\a\w*\)\=\>" +" floating point number, starting with a decimal point +syn match fortranFloatIll display "\.\d\+\%([deq][-+]\=\d\+\)\=\%(_\a\w*\)\=\>" +" floating point number, no digits after decimal +syn match fortranFloatIll display "\<\d\+\.\%([deq][-+]\=\d\+\)\=\%(_\a\w*\)\=\>" +" floating point number, D or Q exponents +syn match fortranFloatIll display "\<\d\+\.\d\+\%([dq][-+]\=\d\+\)\=\%(_\a\w*\)\=\>" +" floating point number +syn match fortranFloat display "\<\d\+\.\d\+\%(e[-+]\=\d\+\)\=\%(_\a\w*\)\=\>" +" binary number +syn match fortranBinary display "b["'][01]\+["']" +" octal number +syn match fortranOctal display "o["'][0-7]\+["']" +" hexadecimal number +syn match fortranHex display "z["'][0-9A-F]\+["']" +" Numbers in formats +syn match fortranFormatSpec display "\d*f\d\+\.\d\+" +syn match fortranFormatSpec display "\d*e[sn]\=\d\+\.\d\+\%(e\d+\>\)\=" +syn match fortranFormatSpec display "\d*\%(d\|q\|g\)\d\+\.\d\+\%(e\d+\)\=" +syn match fortranFormatSpec display "\d\+x\>" +" The next match cannot be used because it would pick up identifiers as well +" syn match fortranFormatSpec display "\<\%(a\|i\)\d\+" +" Numbers as labels +syn match fortranLabelNumber display "^\zs\d\{1,5}\ze\s" +syn match fortranLabelNumber display "^ \zs\d\{1,4}\ze\s" +syn match fortranLabelNumber display "^ \zs\d\{1,3}\ze\s" +syn match fortranLabelNumber display "^ \zs\d\d\=\ze\s" +syn match fortranLabelNumber display "^ \zs\d\ze\s" +" Numbers as targets +syn match fortranTarget display "\%(\" +syn match fortranTarget display "\%(\" +syn match fortranTarget display "\%(\" + +syn match fortranBoolean "\.\s*\%(true\|false\)\s*\." + +syn keyword fortranKeyword call +syn keyword fortranKeyword use only contains +syn match fortranKeyword "\" +syn match fortranKeyword "\<\%(error\s\+\)\=stop\>" +syn keyword fortranKeyword continue +syn match fortranKeyword "\" +syn match fortranKeywordDel "\" +syn match fortranConditional "\" +syn match fortranConditional "\<\%(end\s*\)\?\%(if\|where\|select\)\>" +syn match fortranConditional "\" +syn match fortranConditional "\<\%(class\|type\)\s\+is\>" +syn match fortranConditional "\<\%(case\|rank\)\%(\s\+default\)\?\>" +syn match fortranConditionalDel "\" +syn match fortranImageControl "\<\%(change\|form\|end\)\s\+team\>" +syn match fortranImageControl "\" + +syn keyword fortranStorageClass in out +syn match fortranStorageClass "\" +syn match fortranStorageClass "\\%(\s\+\a\w*\s*/\)\@=" +syn match fortranStorageClassOb "^\s*\zscommon\>" +syn match fortranStorageClassOb "^\s*\zscommon\>\%(\s*/\)\@=" +syn keyword fortranStorageClassOb equivalence + +syn keyword fortranConstant c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab +syn keyword fortranConstant c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr +syn keyword fortranConstant iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit stat_failed_image stat_unlocked_failed_image +syn keyword fortranConstant int8 int16 int32 int64 real16 real32 real64 real128 character_kinds integer_kinds logical_kinds real_kinds iostat_inquire_internal_unit +syn keyword fortranConstant ieee_negative_subnormal ieee_positive_subnormal + +" CUDA fortran +if exists("fortran_CUDA") + syn match fortranTypeCUDA "\" + syn keyword fortranTypeCUDA host global device + syn keyword fortranTypeCUDA shared constant pinned texture + syn keyword fortranTypeCUDA dim1 dim2 dim3 dim4 + syn keyword fortranTypeCUDA cudadeviceprop cuda_count_kind cuda_stream_kind + syn keyword fortranTypeCUDA cudaEvent cudaFuncAttributes cudaArrayPtr + syn keyword fortranTypeCUDA cudaSymbol cudaChannelFormatDesc cudaPitchedPtr + syn keyword fortranTypeCUDA cudaExtent cudaMemcpy3DParms + syn keyword fortranTypeCUDA cudaFuncCachePreferNone cudaFuncCachePreferShared + syn keyword fortranTypeCUDA cudaFuncCachePreferL1 cudaLimitStackSize + syn keyword fortranTypeCUDA cudaLimitPrintfSize cudaLimitMallocHeapSize + syn keyword fortranTypeCUDA cudaSharedMemBankSizeDefault cudaSharedMemBankSizeFourByte cudaSharedMemBankSizeEightByte + syn keyword fortranTypeCUDA cudaEventDefault cudaEventBlockingSync cudaEventDisableTiming + syn keyword fortranTypeCUDA cudaMemcpyHostToDevice cudaMemcpyDeviceToHost + syn keyword fortranTypeCUDA cudaMemcpyDeviceToDevice + syn keyword fortranTypeCUDA cudaErrorNotReady cudaSuccess cudaErrorInvalidValue + syn keyword fortranTypeCUDA c_devptr + + syn match fortranStringCUDA "\" + syn match fortranStringCUDA "\" + syn match fortranStringCUDA "\" + syn match fortranStringCUDA "\" + + syn keyword fortranIntrinsicCUDA warpsize syncthreads syncthreads_and syncthreads_count syncthreads_or threadfence threadfence_block threadfence_system gpu_time allthreads anythread ballot + syn keyword fortranIntrinsicCUDA atomicadd atomicsub atomicmax atomicmin atomicand atomicor atomicxor atomicexch atomicinc atomicdec atomiccas sizeof __shfl __shfl_up __shfl_down __shfl_xor + syn keyword fortranIntrinsicCUDA cudaChooseDevice cudaDeviceGetCacheConfig cudaDeviceGetLimit cudaDeviceGetSharedMemConfig cudaDeviceReset cudaDeviceSetCacheConfig cudaDeviceSetLimit cudaDeviceSetSharedMemConfig cudaDeviceSynchronize cudaGetDevice cudaGetDeviceCount cudaGetDeviceProperties cudaSetDevice cudaSetDeviceFlags cudaSetValidDevices + syn keyword fortranIntrinsicCUDA cudaThreadExit cudaThreadSynchronize cudaGetLastError cudaGetErrorString cudaPeekAtLastError cudaStreamCreate cudaStreamDestroy cudaStreamQuery cudaStreamSynchronize cudaStreamWaitEvent cudaEventCreate cudaEventCreateWithFlags cudaEventDestroy cudaEventElapsedTime cudaEventQuery cudaEventRecord cudaEventSynchronize + syn keyword fortranIntrinsicCUDA cudaFuncGetAttributes cudaFuncSetCacheConfig cudaFuncSetSharedMemConfig cudaSetDoubleForDevice cudaSetDoubleForHost cudaFree cudaFreeArray cudaFreeHost cudaGetSymbolAddress cudaGetSymbolSize + syn keyword fortranIntrinsicCUDA cudaHostAlloc cudaHostGetDevicePointer cudaHostGetFlags cudaHostRegister cudaHostUnregister cudaMalloc cudaMallocArray cudaMallocHost cudaMallocPitch cudaMalloc3D cudaMalloc3DArray + syn keyword fortranIntrinsicCUDA cudaMemcpy cudaMemcpyArraytoArray cudaMemcpyAsync cudaMemcpyFromArray cudaMemcpyFromSymbol cudaMemcpyFromSymbolAsync cudaMemcpyPeer cudaMemcpyPeerAsync cudaMemcpyToArray cudaMemcpyToSymbol cudaMemcpyToSymbolAsync cudaMemcpy2D cudaMemcpy2DArrayToArray cudaMemcpy2DAsync cudaMemcpy2DFromArray cudaMemcpy2DToArray cudaMemcpy3D cudaMemcpy3DAsync + syn keyword fortranIntrinsicCUDA cudaMemGetInfo cudaMemset cudaMemset2D cudaMemset3D cudaDeviceCanAccessPeer cudaDeviceDisablePeerAccess cudaDeviceEnablePeerAccess cudaPointerGetAttributes cudaDriverGetVersion cudaRuntimeGetVersion +endif + +syn region none matchgroup=fortranType start="<<<" end=">>>" contains=ALLBUT,none + +syn cluster fortranCommentGroup contains=fortranTodo + +if (b:fortran_fixed_source == 1) + if !exists("fortran_have_tabs") + if exists("fortran_extended_line_length") + " Vendor extensions allow lines with a text width of 132 + syn match fortranSerialNumber excludenl "^.\{133,}$"lc=132 + else + " Standard requires fixed format to have a text width of 72, + " but all current compilers use 80 instead + syn match fortranSerialNumber excludenl "^.\{81,}$"lc=80 + endif + "Flag left margin errors + syn match fortranLabelError "^.\{-,4}[^0-9 ]" contains=fortranTab + syn match fortranLabelError "^.\{4}\d\S" + endif + syn match fortranComment excludenl "^[!c*].*$" contains=@fortranCommentGroup,@spell + syn match fortranLeftMargin transparent "^ \{5}" + syn match fortranContinueMark display "^.\{5}\S"lc=5 +else + syn match fortranContinueMark display "&" +endif + +syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell +syn match fortranOpenMP excludenl "^\s*\zs!\$\%(OMP\)\=&\=\s.*$" +syn match fortranEndStatement display ";" + +"cpp is often used with Fortran +syn match cPreProc "^\s*#\s*\%(define\|ifdef\)\>.*" +syn match cPreProc "^\s*#\s*\%(elif\|if\)\>.*" +syn match cPreProc "^\s*#\s*\%(ifndef\|undef\)\>.*" +syn match cPreCondit "^\s*#\s*\%(else\|endif\)\>.*" +syn region cIncluded contained start=+"[^("]+ skip=+\\\\\|\\"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber +"syn region cIncluded contained start=+"[^("]+ skip=+\\\\\|\\"+ end=+"+ +syn match cIncluded contained "<[^>]*>" +syn match cInclude "^\s*#\s*include\>\s*["<]" contains=cIncluded + +"Synchronising limits assume that comment and continuation lines are not mixed +if exists("fortran_fold") + syn sync fromstart +elseif (b:fortran_fixed_source == 0) + syn sync linecont "&" minlines=30 +else + syn sync minlines=30 +endif + +if exists("fortran_fold") + + if has("folding") + setlocal foldmethod=syntax + endif + if (b:fortran_fixed_source == 1) + syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\\)\=\|$\)" contains=ALLBUT,fortranModule + syn region fortranModule transparent fold keepend start="^\s*submodule\s\+(\a\w*\s*\%(:\a\w*\s*\)*)\s*\z\(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\\)\=\|$\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranModule transparent fold keepend start="^\s*module\s\+\%(procedure\)\@!\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\\)\=\|$\)" contains=ALLBUT,fortranProgram + syn region fortranFunction transparent fold keepend extend start="^\s*\%(elemental \|pure \|impure \|module \|recursive \)\=\s*\%(\%(\%(real \|integer \|logical \|complex \|double \s*precision \)\s*\%((\%(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \%((\%(\s*len\s*=\)\=\s*\d\+\s*)\|(\%(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\\)\=\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranSubroutine transparent fold keepend extend start="^\s*\%(elemental \|pure \|impure \|module \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\%([!c*]\|\s*#\).*$" excludenl end="\\)\=\)" contains=ALLBUT,fortranProgram,fortranModule + syn region fortranBlockData transparent fold keepend start="\" skip="^\s*[!#].*$" excludenl end="\" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock + syn region fortranAssociate transparent fold keepend start="^\s*\ +" Last Change: 15 May 2006 + +" This file replaces the FoxPro for DOS v2.x syntax file +" maintained by Powing Tse +" +" Change Log: added support for FoxPro Codebook highlighting +" corrected highlighting of comments that do NOT start in col 1 +" corrected highlighting of comments at end of line (&&) +" +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" FoxPro Codebook Naming Conventions +syn match foxproCBConst "\<[c][A-Z][A-Za-z0-9_]*\>" +syn match foxproCBVar "\<[lgrt][acndlmf][A-Z][A-Za-z0-9_]*\>" +syn match foxproCBField "\<[a-z0-9]*\.[A-Za-z0-9_]*\>" +" PROPER CodeBook field names start with the data type and do NOT have _ +syn match foxproCBField "\<[A-Za-z0-9]*\.[acndlm][A-Z][A-Za-z0-9]*\>" +syn match foxproCBWin "\" +" CodeBook 2.0 defined objects as follows +" This uses the hotkey from the screen builder as the second character +syn match foxproCBObject "\<[lgr][bfthnkoli][A-Z][A-Za-z0-9_]*\>" +" A later version added the following conventions for objects +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" +syn match foxproCBObject "\" + +syntax case ignore + +" Highlight special characters +syn match foxproSpecial "^\s*!" +syn match foxproSpecial "&" +syn match foxproSpecial ";\s*$" +syn match foxproSpecial "^\s*=" +syn match foxproSpecial "^\s*\\" +syn match foxproSpecial "^\s*\\\\" +syn match foxproSpecial "^\s*?" +syn match foxproSpecial "^\s*??" +syn match foxproSpecial "^\s*???" +syn match foxproSpecial "\\." + +" @ Statements +syn match foxproAtSymbol contained "^\s*@" +syn match foxproAtCmd contained "\\|\\|\\|\\|\\|\\|\\|\\|\\|\" +syn match foxproAtStart transparent "^\s*@.*" contains=ALL + +" preprocessor directives +syn match foxproPreProc "^\s*#\s*\(\\|\\|\\|\\)" +syn match foxproPreProc "^\s*#\s*\(\\|\\)" +syn match foxproPreProc "^\s*#\s*\" + +" Functions +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 +syn match foxproFunc "\\s*("me=e-1 + +" Commands +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\<=\>" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\/n" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\" +syn match foxproCmd "^\s*\\s*\" + +" Enclosed Block +syn match foxproEnBlk "^\s*\\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" +syn match foxproEnBlk "^\s*\" + +" System Variables +syn keyword foxproSysVar _alignment _assist _beautify _box _calcmem _calcvalue +syn keyword foxproSysVar _cliptext _curobj _dblclick _diarydate _dos _foxdoc +syn keyword foxproSysVar _foxgraph _gengraph _genmenu _genpd _genscrn _genxtab +syn keyword foxproSysVar _indent _lmargin _mac _mline _padvance _pageno _pbpage +syn keyword foxproSysVar _pcolno _pcopies _pdriver _pdsetup _pecode _peject _pepage +syn keyword foxproSysVar _plength _plineno _ploffset _ppitch _pquality _pretext +syn keyword foxproSysVar _pscode _pspacing _pwait _rmargin _shell _spellchk +syn keyword foxproSysVar _startup _tabs _tally _text _throttle _transport _unix +syn keyword foxproSysVar _windows _wrap + +" Strings +syn region foxproString start=+"+ end=+"+ oneline +syn region foxproString start=+'+ end=+'+ oneline +syn region foxproString start=+\[+ end=+\]+ oneline + +" Constants +syn match foxproConst "\.t\." +syn match foxproConst "\.f\." + +"integer number, or floating point number without a dot and with "f". +syn match foxproNumber "\<[0-9]\+\>" +"floating point number, with dot, optional exponent +syn match foxproFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>" +"floating point number, starting with a dot, optional exponent +syn match foxproFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>" +"floating point number, without dot, with exponent +syn match foxproFloat "\<[0-9]\+e[-+]\=[0-9]\+\>" + +syn match foxproComment "^\s*\*.*" +syn match foxproComment "&&.*" + +"catch errors caused by wrong parenthesis +syn region foxproParen transparent start='(' end=')' contains=ALLBUT,foxproParenErr +syn match foxproParenErr ")" + +syn sync minlines=1 maxlines=3 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link foxproSpecial Special +hi def link foxproAtSymbol Special +hi def link foxproAtCmd Statement +hi def link foxproPreProc PreProc +hi def link foxproFunc Identifier +hi def link foxproCmd Statement +hi def link foxproEnBlk Type +hi def link foxproSysVar String +hi def link foxproString String +hi def link foxproConst Constant +hi def link foxproNumber Number +hi def link foxproFloat Float +hi def link foxproComment Comment +hi def link foxproParenErr Error +hi def link foxproCBConst PreProc +hi def link foxproCBField Special +hi def link foxproCBVar Identifier +hi def link foxproCBWin Special +hi def link foxproCBObject Identifier + + +let b:current_syntax = "foxpro" diff --git a/runtime/syntax/fpcmake.vim b/runtime/syntax/fpcmake.vim new file mode 100644 index 0000000..bbc6f1d --- /dev/null +++ b/runtime/syntax/fpcmake.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: Free Pascal Makefile Definition Files +" Maintainer: Doug Kearns +" Last Change: 2021 Apr 23 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/make.vim + +" NOTE: using start-of-line anchored syn-match groups is simpler than other +" alternatives when interacting with the sourced make.vim syntax groups + +" Sections +syn region fpcmakeSection matchgroup=fpcmakeSectionDelimiter start="^\s*\[" end="]" contains=fpcmakeSectionName + +syn keyword fpcmakeSectionName contained clean compiler default dist install +syn keyword fpcmakeSectionName contained lib package prerules require rules +syn keyword fpcmakeSectionName contained shared target + +" [clean] +syn match fpcmakeRule "^\s*\(units\|files\)\>" +" [compiler] +syn match fpcmakeRule "^\s*\(options\|version\|unitdir\|librarydir\|objectdir\)\>" +syn match fpcmakeRule "^\s*\(targetdir\|sourcedir\|unittargetdir\|includedir\)\>" +" [default] +syn match fpcmakeRule "^\s*\(cpu\|dir\|fpcdir\|rule\|target\)\>" +" [dist] +syn match fpcmakeRule "^\s*\(destdir\|zipname\|ziptarget\)\>" +" [install] +syn match fpcmakeRule "^\s*\(basedir\|datadir\|fpcpackage\|files\|prefix\)\>" +syn match fpcmakeRule "^\s*\(units\)\>" +" [package] +syn match fpcmakeRule "^\s*\(name\|version\|main\)\>" +" [requires] +syn match fpcmakeRule "^\s*\(fpcmake\|packages\|libc\|nortl\|unitdir\)\>" +syn match fpcmakeRule "^\s*\(packagedir\|tools\)\>" +" [shared] +syn match fpcmakeRule "^\s*\(build\|libname\|libversion\|libunits\)\>" +" [target] +syn match fpcmakeRule "^\s*\(dirs\|exampledirs\|examples\|loaders\|programs\)\>" +syn match fpcmakeRule "^\s*\(rsts\|units\)\>" + +" Comments +syn keyword fpcmakeTodo TODO FIXME XXX contained +syn match fpcmakeComment "#.*" contains=fpcmakeTodo,@Spell + +" Default highlighting +hi def link fpcmakeSectionDelimiter Delimiter +hi def link fpcmakeSectionName Type +hi def link fpcmakeComment Comment +hi def link fpcmakeTodo Todo +hi def link fpcmakeRule Identifier + +let b:current_syntax = "fpcmake" + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/framescript.vim b/runtime/syntax/framescript.vim new file mode 100644 index 0000000..8b16d04 --- /dev/null +++ b/runtime/syntax/framescript.vim @@ -0,0 +1,491 @@ +" Vim syntax file +" Language: FrameScript v4.0 +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-02-22 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match framescriptOperator + \ '[+*/%=-]\|[><]=\=\|#[&|]' + +syn keyword framescriptTodo + \ contained + \ TODO FIXME XXX NOTE + +syn cluster framescriptCommentGroup + \ contains= + \ framescriptTodo, + \ @Spell + +syn match framescriptComment + \ display + \ contains=@framescriptCommentGroup + \ '//.*$' + +syn region framescriptComment + \ contains=@framescriptCommentGroup + \ matchgroup=framescriptCommentStart + \ start='/\*' + \ end='\*/' + +syn case ignore + +syn match framescriptInclude + \ display + \ contains=framescriptIncluded + \ "^\s*<#Include\>\s*'" + +syn region framescriptIncluded + \ contained + \ display + \ start=+'+ + \ skip=+\\\\\|\\'+ + \ end=+'+ + +syn match framescriptNumbers + \ display + \ transparent + \ contains= + \ framescriptInteger, + \ framescriptReal, + \ framescriptMetric, + \ framescriptCharacter + \ '\<\d\|\.\d' + +syn keyword framescriptBoolean + \ True False + +syn match framescriptInteger + \ contained + \ display + \ '\d\+\>' + +syn match framescriptInteger + \ contained + \ display + \ '\x\+H\>' + +syn match framescriptInteger + \ contained + \ display + \ '[01]\+B\>' + +syn match framescriptReal + \ contained + \ display + \ '\d\+\.\d*\|\.\d\+\>' + +syn match framescriptMetric + \ contained + \ display + \ '\%(\d\+\%(\.\d*\)\=\|\.\d\+\)\%(pts\|in\|"\|cm\|mm\|pica\)\>' + +syn match framescriptCharacter + \ contained + \ display + \ '\d\+S\>' + +syn region framescriptString + \ contains=framescriptStringSpecialChar,@Spell + \ start=+'+ + \ skip=+\\\\\|\\'+ + \ end=+'+ + +syn match framescriptStringSpecialChar + \ contained + \ display + \ "\\[\\']" + +syn keyword framescriptConstant + \ BackSlash + \ CharCR + \ CharLF + \ CharTAB + \ ClientDir + \ ClientName + \ FslVersionMajor + \ FslVersionMinor + \ InstallName + \ InstalledScriptList + \ MainScript + \ NULL + \ ObjEndOffset + \ ProductRevision + \ Quote + \ ThisScript + +syn keyword framescriptOperator + \ not + \ and + \ or + +syn keyword framescriptSessionVariables + \ ErrorCode + \ ErrorMsg + \ DeclareVarMode + \ PlatformEncodingMode + +syn keyword framescriptStructure + \ Event + \ EndEvent + +syn keyword framescriptStatement + \ Sub + \ EndSub + \ Run + \ Function + \ EndFunction + \ Set + \ Add + \ Apply + \ CallClient + \ Close + \ Copy + \ Cut + \ DialogBox + \ Delete + \ Demote + \ Display + \ DocCompare + \ Export + \ Find + \ LeaveLoop + \ LeaveScript + \ LeaveSub + \ LoopNext + \ Merge + \ MsgBox + \ Paste + \ PopClipboard + \ PushClipboard + \ Read + \ Replace + \ Return + \ Sort + \ Split + +syn keyword framescriptStatement + \ nextgroup=framescriptApplySubStatement skipwhite skipempty + \ Apply + +syn keyword framescriptApplySubStatement + \ contained + \ Pagelayout + \ TextProperties + +syn keyword framescriptStatement + \ nextgroup=framescriptClearSubStatement skipwhite skipempty + \ Clear + +syn keyword framescriptClearSubStatement + \ contained + \ ChangeBars + \ Text + +syn keyword framescriptStatement + \ nextgroup=framescriptCloseSubStatement skipwhite skipempty + \ Close + +syn keyword framescriptCloseSubStatement + \ contained + \ Book + \ Document + \ TextFile + +syn keyword framescriptStatement + \ nextgroup=framescriptExecSubStatement skipwhite skipempty + \ Exec + +syn keyword framescriptExecSubStatement + \ contained + \ Compile + \ Script + \ Wait + +syn keyword framescriptStatement + \ nextgroup=framescriptExecuteSubStatement skipwhite skipempty + \ Execute + +syn keyword framescriptExecuteSubStatement + \ contained + \ FrameCommand + \ Hypertext + \ StartUndoCheckPoint + \ EndUndoCheckPoint + \ ClearUndoHistory + +syn keyword framescriptStatement + \ nextgroup=framescriptGenerateSubStatement skipwhite skipempty + \ Generate + +syn keyword framescriptGenerateSubStatement + \ contained + \ Bookfile + +syn keyword framescriptStatement + \ nextgroup=framescriptGetSubStatement skipwhite skipempty + \ Get + +syn keyword framescriptGetSubStatement + \ contained + \ Member + \ Object + \ String + \ TextList + \ TextProperties + +syn keyword framescriptStatement + \ nextgroup=framescriptImportSubStatement skipwhite skipempty + \ Import + +syn keyword framescriptImportSubStatement + \ contained + \ File + \ Formats + \ ElementDefs + +syn keyword framescriptStatement + \ nextgroup=framescriptInstallSubStatement skipwhite skipempty + \ Install + \ Uninstall + +syn keyword framescriptInstallSubStatement + \ contained + \ ChangeBars + \ Text + +syn keyword framescriptStatement + \ nextgroup=framescriptNewSubStatement skipwhite skipempty + \ New + +syn keyword framescriptNewSubStatement + \ contained + \ AFrame + \ Footnote + \ Marker + \ TiApiClient + \ Variable + \ XRef + \ FormatChangeList + \ FormatRule + \ FmtRuleClause + \ Arc + \ Ellipse + \ Flow + \ Group + \ Inset + \ Line + \ Math + \ Polygon + \ Polyline + \ Rectangle + \ RoundRect + \ TextFrame + \ Textline + \ UnanchoredFrame + \ Command + \ Menu + \ MenuItemSeparator + \ Book + \ CharacterFormat + \ Color + \ ConditionFormat + \ ElementDef + \ FormatChangeList + \ MarkerType + \ MasterPage + \ ParagraphFormat + \ PgfFmt + \ ReferencePAge + \ RulingFormat + \ TableFormat + \ VariableFormat + \ XRefFormat + \ BodyPage + \ BookComponent + \ Paragraph + \ Element + \ Attribute + \ AttributeDef + \ AttributeList + \ AttributeDefList + \ ElementLoc + \ ElementRange + \ Table + \ TableRows + \ TableCols + \ Text + \ Integer + \ Real + \ Metric + \ String + \ Object + \ TextLoc + \ TextRange + \ IntList + \ UIntList + \ MetricList + \ StringList + \ PointList + \ TabList + \ PropertyList + \ LibVar + \ ScriptVar + \ SubVar + \ TextFile + +syn keyword framescriptStatement + \ nextgroup=framescriptOpenSubStatement skipwhite skipempty + \ Open + +syn keyword framescriptOpenSubStatement + \ contained + \ Document + \ Book + \ TextFile + +syn keyword framescriptStatement + \ nextgroup=framescriptPrintSubStatement skipwhite skipempty + \ Print + +syn keyword framescriptPrintSubStatement + \ contained + \ Document + \ Book + +syn keyword framescriptStatement + \ nextgroup=framescriptQuitSubStatement skipwhite skipempty + \ Quit + +syn keyword framescriptQuitSubStatement + \ contained + \ Session + +syn keyword framescriptStatement + \ nextgroup=framescriptRemoveSubStatement skipwhite skipempty + \ Remove + +syn keyword framescriptRemoveSubStatement + \ contained + \ Attribute + \ CommandObject + +syn keyword framescriptStatement + \ nextgroup=framescriptSaveSubStatement skipwhite skipempty + \ Save + +syn keyword framescriptSaveSubStatement + \ contained + \ Document + \ Book + +syn keyword framescriptStatement + \ nextgroup=framescriptSelectSubStatement skipwhite skipempty + \ Select + +syn keyword framescriptSelectSubStatement + \ contained + \ TableCells + +syn keyword framescriptStatement + \ nextgroup=framescriptStraddleSubStatement skipwhite skipempty + \ Straddle + +syn keyword framescriptStraddleSubStatement + \ contained + \ TableCells + +syn keyword framescriptStatement + \ nextgroup=framescriptUpdateSubStatement skipwhite skipempty + \ Update + +syn keyword framescriptUpdateSubStatement + \ contained + \ ReDisplay + \ Formatting + \ Hyphenating + \ ResetEquationsSettings + \ ResetRefFrames + \ RestartPgfNums + \ TextInset + \ Variables + \ XRefs + \ Book + +syn keyword framescriptStatement + \ nextgroup=framescriptWriteSubStatement skipwhite skipempty + \ Write + +syn keyword framescriptUpdateSubStatement + \ contained + \ Console + \ Display + +syn keyword framescriptRepeat + \ Loop + \ EndLoop + +syn keyword framescriptConditional + \ If + \ ElseIf + \ Else + \ EndIf + +syn keyword framescriptType + \ Local + \ GlobalVar + +let b:framescript_minlines = exists("framescript_minlines") + \ ? framescript_minlines : 15 +exec "syn sync ccomment framescriptComment minlines=" . b:framescript_minlines + +hi def link framescriptTodo Todo +hi def link framescriptComment Comment +hi def link framescriptCommentStart framescriptComment +hi def link framescriptInclude Include +hi def link framescriptIncluded String +hi def link framescriptBoolean Boolean +hi def link framescriptNumber Number +hi def link framescriptInteger framescriptNumber +hi def link framescriptReal framescriptNumber +hi def link framescriptMetric framescriptNumber +hi def link framescriptCharacter framescriptNumber +hi def link framescriptString String +hi def link framescriptStringSpecialChar SpecialChar +hi def link framescriptConstant Constant +hi def link framescriptOperator None +hi def link framescriptSessionVariables PreProc +hi def link framescriptStructure Structure +hi def link framescriptStatement Statement +hi def link framescriptSubStatement Type +hi def link framescriptApplySubStatement framescriptSubStatement +hi def link framescriptClearSubStatement framescriptSubStatement +hi def link framescriptCloseSubStatement framescriptSubStatement +hi def link framescriptExecSubStatement framescriptSubStatement +hi def link framescriptExecuteSubStatement framescriptSubStatement +hi def link framescriptGenerateSubStatement framescriptSubStatement +hi def link framescriptGetSubStatement framescriptSubStatement +hi def link framescriptImportSubStatement framescriptSubStatement +hi def link framescriptInstallSubStatement framescriptSubStatement +hi def link framescriptNewSubStatement framescriptSubStatement +hi def link framescriptOpenSubStatement framescriptSubStatement +hi def link framescriptPrintSubStatement framescriptSubStatement +hi def link framescriptQuitSubStatement framescriptSubStatement +hi def link framescriptRemoveSubStatement framescriptSubStatement +hi def link framescriptSaveSubStatement framescriptSubStatement +hi def link framescriptSelectSubStatement framescriptSubStatement +hi def link framescriptStraddleSubStatement framescriptSubStatement +hi def link framescriptUpdateSubStatement framescriptSubStatement +hi def link framescriptRepeat Repeat +hi def link framescriptConditional Conditional +hi def link framescriptType Type + +let b:current_syntax = "framescript" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/freebasic.vim b/runtime/syntax/freebasic.vim new file mode 100644 index 0000000..5c43289 --- /dev/null +++ b/runtime/syntax/freebasic.vim @@ -0,0 +1,674 @@ +" Vim syntax file +" Language: FreeBASIC +" Maintainer: Doug Kearns +" Previous Maintainer: Mark Manning +" Last Change: 2023 Aug 14 +" +" Description: +" +" Based originally on the work done by Allan Kelly +" Updated by Mark Manning +" Applied FreeBASIC support to the already excellent support +" for standard basic syntax (like QB). +" +" First version based on Micro$soft QBASIC circa +" 1989, as documented in 'Learn BASIC Now' by +" Halvorson&Rygmyr. Microsoft Press 1989. This syntax file +" not a complete implementation yet. Send suggestions to +" the maintainer. +" +" TODO: split this into separate dialect-based files, possibly with a common base +" +" Quit when a (custom) syntax file was already loaded (Taken from c.vim) +" +if exists("b:current_syntax") + finish +endif +" +" Dialect detection +" +let s:lang = freebasic#GetDialect() +" +" Whitespace Errors +" +if exists("freebasic_space_errors") + if !exists("freebasic_no_trail_space_error") + syn match freebasicSpaceError display excludenl "\s\+$" + endif + if !exists("freebasic_no_tab_space_error") + syn match freebasicSpaceError display " \+\t"me=e-1 + endif +endif +" +" Be sure to turn on the "case ignore" since current versions +" of freebasic support both upper as well as lowercase +" letters. - MEM 10/1/2006 +" +syn case ignore +" +" Do the Basic variables names first. This is because it +" is the most inclusive of the tests. Later on we change +" this so the identifiers are split up into the various +" types of identifiers like functions, basic commands and +" such. MEM 9/9/2006 +" +if s:lang =~# '\<\%(qb\|fblite\)\>' + syn iskeyword @,48-57,_,192-255,. + syn match freebasicIdentifier "\<\h\%(\w\|\.\)*\>" + syn match freebasicGenericFunction "\<\h\%(\w\|\.\)*\>\ze\s*(" +else + syn iskeyword @,48-57,_,192-255 + syn match freebasicIdentifier "\<\h\w*\>" + syn match freebasicGenericFunction "\<\h\w*\>\ze\s*(" +endif +" +" This list of keywords is taken directly from the FreeBASIC +" user's guide as presented by the FreeBASIC online site. +" +syn keyword freebasicArrays ERASE LBOUND PRESERVE REDIM UBOUND + +" array.bi +syn keyword freebasicArrays ARRAYLEN ARRAYSIZE +if s:lang == "fb" + syn keyword freebasicArrays ArrayConstDescriptorPtr ArrayDescriptorPtr FBARRAY +endif + +if s:lang == "qb" + syn keyword freebasicAsm __ASM + syn match freebasicAsm "\" +else + syn keyword freebasicAsm ASM + syn match freebasicAsm "\" +endif + +if s:lang == "qb" + syn keyword freebasicBitManipulation __BIT __BITRESET __BITSET __HIBYTE __HIWORD __LOBYTE __LOWORD +else + syn keyword freebasicBitManipulation BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD +endif + +if s:lang != "fb" + syn keyword freebasicCompilerSwitches DEFDBL DEFINT DEFLNG DEFSNG DEFSTR +endif +if s:lang == "qb" + syn keyword freebasicCompilerSwitches __DEFBYTE __DEFLONGINT __DEFSHORT __DEFUBYTE __DEFUINT __DEFULONGINT __DEFUSHORT +elseif s:lang == "fblite" || s:lang == "deprecated" + syn keyword freebasicCompilerSwitches DEFBYTE DEFLONGINT DEFSHORT DEFUBYTE DEFUINT DEFUILONGINT DEFUSHORT +endif + +syn match freebasicCompilerSwitches "\" +syn match freebasicCompilerSwitches "\" + +syn keyword freebasicData DATA READ RESTORE + +syn keyword freebasicProgramFlow EXIT GOTO RETURN SLEEP +syn match freebasicProgramFlow "\" +if s:lang == "qb" + syn keyword freebasicProgramFlow __SLEEP +endif +if s:lang == "fblite" || s:lang == "qb" + syn keyword freebasicProgramFlow GOSUB +endif +if s:lang == "fb" || s:lang == "deprecated" + syn keyword freebasicProgramFlow SCOPE + syn match freebasicProgramFlow "\" +endif + +if s:lang == "fblite" || s:lang == "qb" + syn region freebasicConditional matchgroup=freebasicConditional start="\" end="\" transparent + syn region freebasicConditional matchgroup=freebasicConditional start="\" end="\" transparent +endif +syn keyword freebasicConditional IF THEN ELSE ELSEIF +if s:lang == "qb" + syn keyword freebasicConditional __IIF __WITH + syn match freebasicConditional "\" +else + syn keyword freebasicConditional IIF WITH + syn match freebasicConditional "\" +endif +syn match freebasicConditional "\" +syn match freebasicConditional "\" +syn match freebasicConditional "\" +syn match freebasicConditional "\" +syn match freebasicConditional "\" + +syn keyword freebasicConsole BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB USING VIEW WIDTH +syn match freebasicConsole "?" + +syn keyword freebasicDataTypes SINGLE DOUBLE INTEGER LONG +syn match freebasicDataTypes "\" +syn keyword freebasicDataTypes AS DIM CONST ENUM SHARED TYPE +syn match freebasicDataTypes "\" +syn match freebasicDataTypes "\" +if s:lang == "qb" + syn keyword freebasicDataTypes __BOOLEAN __BYTE __LONGINT __SHORT __UBYTE __UINTEGER __ULONG __ULONGINT __UNSIGNED __USHORT __ZSTRING + syn match freebasicDataTypes "\<__WSTRING\>" + syn keyword freebasicDataTypes __EXPLICIT __EXTENDS __IMPLEMENTS __OBJECT __POINTER __PTR __SIZEOF __TYPEOF + syn keyword freebasicDataTypes __UNION + syn match freebasicDataTypes "\" +else + syn keyword freebasicDataTypes BOOLEAN BYTE LONGINT SHORT UBYTE UINTEGER ULONG ULONGINT UNSIGNED USHORT ZSTRING + syn match freebasicDataTypes "\" + syn keyword freebasicDataTypes EXPLICIT EXTENDS IMPLEMENTS OBJECT POINTER PTR SIZEOF TYPEOF + syn keyword freebasicDataTypes UNION + syn match freebasicDataTypes "\" +endif +if s:lang == "fb" + syn keyword freebasicDataTypes BASE CLASS THIS VAR +endif + +if s:lang == "qb" + syn match freebasicDateTime "\<\%(date\|time\)\$" +elseif s:lang == "fblite" || s:lang == "deprecated" + syn match freebasicDateTime "\<\%(date\|time\)\>\$\=" +else " fb + syn keyword freebasicDateTime DATE TIME +endif +syn keyword freebasicDateTime SETDATE SETTIME + +" datetime.bi +syn keyword freebasicDateTime DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR ISDATE MINUTE +syn keyword freebasicDateTime MONTH MONTHNAME NOW SECOND TIMESERIAL TIMEVALUE +syn keyword freebasicDateTime TIMER YEAR WEEKDAY WEEKDAYNAME + +syn keyword freebasicDebug STOP +if s:lang == "qb" + syn keyword freebasicDebug __ASSERT __ASSERTWARN +else + syn keyword freebasicDebug ASSERT ASSERTWARN +endif + +syn keyword freebasicErrorHandling ERR ERL ERROR +if s:lang == "qb" + syn keyword freebasicErrorHandling __ERFN __ERMN + syn match freebasicErrorHandling "\" +else + syn keyword freebasicErrorHandling ERFN ERMN + syn match freebasicErrorHandling "\" +endif +if s:lang != "fb" + syn match freebasicErrorHandling "\" +endif + +syn match freebasicFiles "\" +syn match freebasicFiles "\" +syn match freebasicFiles "\" +syn match freebasicFiles "\" +syn keyword freebasicFiles ACCESS APPEND BINARY CLOSE EOF FREEFILE INPUT LOC +syn keyword freebasicFiles LOCK LOF OUTPUT RANDOM RESET SEEK UNLOCK WRITE +syn match freebasicFiles "\" +if s:lang == "qb" + syn keyword freebasicFiles __ENCODING +else + syn keyword freebasicFiles ENCODING WINPUT + syn match freebasicFiles "\" +endif + +" file.bi +syn keyword freebasicFiles FILEATTR FILECOPY FILEDATETIME FILEEXISTS FILEFLUSH FILELEN FILESETEOF + +syn keyword freebasicFunctions ALIAS BYREF BYVAL CDECL DECLARE LIB NAKED PASCAL STATIC STDCALL +syn match freebasicFunctions "\" +syn match freebasicFunctions "\" + +if s:lang == "fb" + syn keyword freebasicFunctions ABSTRACT OVERRIDE VIRTUAL __THISCALL + syn keyword freebasicFunctions CONSTRUCTOR DESTRUCTOR OPERATOR PROPERTY + syn match freebasicFunctions "\" + syn match freebasicFunctions "\" + syn match freebasicFunctions "\" + syn match freebasicFunctions "\" +else + syn keyword freebasicFunctions CALL +endif + +syn match freebasicGraphics "\" +syn keyword freebasicGraphics ADD ALPHA BLOAD BSAVE CIRCLE CLS COLOR DRAW GET +syn keyword freebasicGraphics LINE PAINT PALETTE PCOPY PMAP POINT +syn keyword freebasicGraphics PRESET PSET PUT SCREEN +syn keyword freebasicGraphics TRANS WINDOW +if s:lang == "qb" + syn keyword freebasicGraphics __FLIP __IMAGECONVERTROW __IMAGECREATE __IMAGEDESTROY __IMAGEINFO __POINTCOORD + syn keyword freebasicGraphics __RGB __RGBA __SCREENCOPY __SCREENCONTROL __SCREENEVENT __SCREENGLPROC __SCREENINFO + syn keyword freebasicGraphics __SCREENLIST __SCREENLOCK __SCREENPTR __SCREENRES __SCREENSET __SCREENSYNC + syn keyword freebasicGraphics __SCREENUNLOCK __WINDOWTITLE +else + syn keyword freebasicGraphics CUSTOM + syn keyword freebasicGraphics FLIP IMAGECONVERTROW IMAGECREATE IMAGEDESTROY IMAGEINFO POINTCOORD + syn keyword freebasicGraphics RGB RGBA SCREENCOPY SCREENCONTROL SCREENEVENT SCREENGLPROC SCREENINFO + syn keyword freebasicGraphics SCREENLIST SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC + syn keyword freebasicGraphics SCREENUNLOCK WINDOWTITLE +endif + +if s:lang != "qb" + syn match freebasicHardware "\" +endif +syn keyword freebasicHardware INP OUT WAIT LPOS LPRINT + +syn keyword freebasicMath ABS ATN COS EXP FIX FRAC INT LOG MOD RANDOMIZE RND SGN SIN SQR TAN + +if s:lang == "qb" + syn keyword freebasicMath __ACOS __ASIN __ATAN2 +else + syn keyword freebasicMath ACOS ASIN ATAN2 +endif + +if s:lang == "qb" + syn keyword freebasicMemory __ALLOCATE __CALLOCATE __DEALLOCATE __REALLOCATE +else + syn keyword freebasicMemory ALLOCATE CALLOCATE DEALLOCATE REALLOCATE + syn keyword freebasicMemory PEEK POKE CLEAR FB_MEMCOPY FB_MEMCOPYCLEAR FB_MEMMOVE SWAP SADD + syn keyword freebasicMemory FIELD FRE +endif + +syn keyword freebasicMisc LET TO +if s:lang == "qb" + syn keyword freebasicMisc __OFFSETOF +else + syn keyword freebasicMisc OFFSETOF +endif + +syn keyword freebasicModularizing CHAIN COMMON +if s:lang == "fb" + syn keyword freebasicModularizing EXTERN + syn match freebasicModularizing "\" + syn keyword freebasicModularizing PROTECTED +endif +if s:lang == "qb" + syn keyword freebasicModularizing __EXPORT __IMPORT __DYLIBFREE __DYLIBLOAD __DYLIBSYMBOL +else + syn keyword freebasicModularizing EXPORT IMPORT DYLIBFREE DYLIBLOAD DYLIBSYMBOL + syn keyword freebasicModularizing PRIVATE PUBLIC + syn keyword freebasicModularizing NAMESPACE + syn match freebasicModularizing "\" +endif + +if s:lang != "qb" + syn keyword freebasicMultithreading MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT + syn keyword freebasicMultithreading CONDBROADCAST CONDCREATE CONDDESTROY CONDSIGNAL CONDWAIT + syn keyword freebasicMultithreading THREADCALL THREADDETACH THREADSELF +endif + +syn keyword freebasicShell CHDIR KILL NAME MKDIR RMDIR RUN SETENVIRON +if s:lang == "qb" + syn keyword freebasicShell __CURDIR __DIR __EXEC __EXEPATH + syn match freebasicString "\<\%(command\|environ\)\$" +else + " fbio.bi + syn keyword freebasicShell ISREDIRECTED + syn keyword freebasicShell CURDIR DIR EXEC EXEPATH + syn match freebasicString "\<\%(command\|environ\)\>\$\=" +endif + +syn keyword freebasicEnviron SHELL SYSTEM + +syn keyword freebasicLoops FOR LOOP WHILE WEND DO STEP UNTIL NEXT +if s:lang == "qb" + syn keyword freebasicLoops __CONTINUE +else + syn keyword freebasicLoops CONTINUE +endif +" +" File numbers +" +syn match freebasicFilenumber "#\d\+" +syn match freebasicFilenumber "#\a[[:alpha:].]*[%&!#]\=" + +syn match freebasicMetacommand "$\s*\%(dynamic\|static\)" +syn match freebasicMetacommand "$\s*include\s*\%(once\)\=\s*:\s*'[^']\+'" +syn match freebasicMetacommand '$\s*include\s*\%(once\)\=\s*:\s*"[^"]\+"' +syn match freebasicMetacommand '$\s*lang\s*:\s*"[^"]\+"' +" +" Intrinsic defines +" +syn keyword freebasicPredefined __DATE__ __DATE_ISO__ +syn keyword freebasicPredefined __FB_64BIT__ __FB_ARGC__ __FB_ARG_COUNT__ __FB_ARG_EXTRACT__ __FB_ARG_LEFTOF__ +syn keyword freebasicPredefined __FB_ARG_RIGHTOF__ __FB_ARGV__ __FB_ARM__ __FB_ASM__ __FB_BACKEND__ +syn keyword freebasicPredefined __FB_BIGENDIAN__ __FB_BUILD_DATE__ __FB_BUILD_DATE_ISO__ __FB_BUILD_SHA1__ +syn keyword freebasicPredefined __FB_CYGWIN__ __FB_DARWIN__ __FB_DEBUG__ __FB_DOS__ __FB_ERR__ __FB_EVAL__ +syn keyword freebasicPredefined __FB_FPMODE__ __FB_FPU__ __FB_FREEBSD__ __FB_GCC__ __FB_GUI__ __FB_IIF__ __FB_JOIN__ +syn keyword freebasicPredefined __FB_LANG__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__ __FB_MT__ __FB_NETBSD__ +syn keyword freebasicPredefined __FB_OPENBSD__ __FB_OPTIMIZE__ __FB_OPTION_BYVAL__ __FB_OPTION_DYNAMIC__ +syn keyword freebasicPredefined __FB_OPTION_ESCAPE__ __FB_OPTION_EXPLICIT__ __FB_OPTION_GOSUB__ +syn keyword freebasicPredefined __FB_OPTION_PRIVATE__ __FB_OUT_DLL__ __FB_OUT_EXE__ __FB_OUT_LIB__ __FB_OUT_OBJ__ +syn keyword freebasicPredefined __FB_PCOS__ __FB_PPC__ __FB_QUERY_SYMBOL__ __FB_QUOTE__ __FB_SIGNATURE__ __FB_SSE__ +syn keyword freebasicPredefined __FB_UNIQUEID__ __FB_UNIQUEID_POP__ __FB_UNIQUEID_PUSH__ __FB_UNIX__ __FB_UNQUOTE__ +syn keyword freebasicPredefined __FB_VECTORIZE__ __FB_VER_MAJOR__ __FB_VER_MINOR__ __FB_VER_PATCH__ __FB_VERSION__ +syn keyword freebasicPredefined __FB_WIN32__ __FB_X86__ __FB_XBOX__ +syn keyword freebasicPredefined __FILE__ __FILE_NQ__ __FUNCTION__ __FUNCTION_NQ__ +syn keyword freebasicPredefined __LINE__ __PATH__ __TIME__ +" +" Preprocessor directives +" +syn match freebasicInclude "#\s*\%(inclib\|include\%(\s\+once\)\=\|libpath\)\>" + +syn match freebasicPreProcessor "#\s*assert\>" +syn match freebasicPreProcessor "#\s*cmdline\>" +syn match freebasicPreProcessor "#\s*\%(define\|undef\)\>" +syn match freebasicPreProcessor "#\s*\%(if\|ifdef\|ifndef\|else\|elseif\|endif\)\>" +syn match freebasicPreProcessor "#\s*\%(macro\|endmacro\)\>" +syn match freebasicPreProcessor "#\s*error\>" +syn match freebasicPreProcessor "#\s*lang\>" +syn match freebasicPreProcessor "#\s*line\>" +syn match freebasicPreProcessor "#\s*pragma\%(\s\+reserve\)\=\>" +syn match freebasicPreProcessor "#\s*\%(print\|dynamic\|static\)\>" +syn keyword freebasicPreProcessor DEFINED + +syn keyword freebasicString LEN +syn keyword freebasicString ASC +" string.bi +syn keyword freebasicString FORMAT +syn keyword freebasicString VAL +syn keyword freebasicString CVD CVI CVL CVS +syn keyword freebasicString INSTR +syn keyword freebasicString LSET RSET + +if s:lang == "qb" + syn match freebasicString "\\$\=" + syn keyword freebasicString WSPACE + syn match freebasicString "\\$\=" + syn keyword freebasicString WCHR + syn keyword freebasicString WBIN WHEX WOCT WSTR + syn match freebasicString "\<\%(bin\|hex\|oct\|str\)\>\$\=" + syn keyword freebasicString VALLNG VALINT VALUINT VALULNG + syn match freebasicString "\<\%(mkd\|mki\|mkl\|mks\)\>\$\=" + syn match freebasicString "\<\%(mklongint\|mkshort\)\>\$\=" + syn keyword freebasicString CVLONGINT CVSHORT + syn match freebasicString "\<\%(left\|mid\|right\|lcase\|ucase\|ltrim\|rtrim\)\>\$\=" + syn match freebasicString "\\$\=" + syn keyword freebasicString INSTRREV +endif + +syn keyword freebasicTypeCasting CDBL CINT CLNG CSNG +if s:lang == "qb" + syn keyword freebasicTypeCasting __CAST __CBOOL __CBYTE __CLNGINT __CPTR __CSHORT __CSIGN __CYBTE __CUINT __CULNG + syn keyword freebasicTypeCasting __CULNGINT __CUNSG __CUSHORT +else + syn keyword freebasicTypeCasting CAST CBOOL CBYTE CLNGINT CPTR CSHORT CSIGN CUBYTE CUINT CULNG CULNGINT CUNSG CUSHORT +endif + +syn match freebasicUserInput "\" +syn keyword freebasicUserInput INKEY INPUT +if s:lang == "qb" + syn keyword freebasicUserInput __GETJOYSTICK __GETKEY __GETMOUSE __MULTIKEY __SETMOUSE STICK STRIG +else + syn keyword freebasicUserInput GETJOYSTICK GETKEY GETMOUSE MULTIKEY SETMOUSE +endif +" +" Operators +" +" TODO: make these context sensitive to remove the overlap of common operators +" : alpha operators should probably always be highlighted +" -- DJK 20/11/19 +if s:lang == "qb" + syn match freebasicArithmeticOperator "\<\%(MOD\|__SHL\|__SHR\)\>" +else + syn match freebasicArithmeticOperator "\<\%(MOD\|SHL\|SHR\)\>" +endif +syn match freebasicBitwiseOperator "\<\%(AND\|EQV\|IMP\|NOT\|OR\|XOR\)\>" " freebaseLogical? +if s:lang == "qb" + syn match freebasicAssignmentOperator "\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|__SHL\|__SHR\)=\@=" " exclude trailing '=' +else + syn match freebasicAssignmentOperator "\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|SHL\|SHR\)=\@=" +endif +syn match freebasicShortcircuitOperator "\<\%(ANDALSO\|ORELSE\)\>" +if s:lang == "fb" + syn match freebasicMemoryOperator '\<\%(new\|delete\)\>' +endif +syn keyword freebasicPointerOperator STRPTR VARPTR +if s:lang == "qb" + syn keyword freebasicPointerOperator __PROCPTR +else + syn keyword freebasicPointerOperator PROCPTR +endif +syn match freebasicTypeOperator '\' +syn match freebasicTypeOperator '\.' nextgroup=freebasicIdentifier skipwhite +if s:lang == "fb" + syn match freebasicTypeOperator '->' nextgroup=freebasicIdentifier skipwhite +endif + +if exists("freebasic_operators") + syn match freebasicAssignmentOperator "=>\=\|[-+&/\\*^]=" + if s:lang == "qb" + syn match freebasicAssignmentOperator "\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|__SHL\|__SHR\)=" " include trailing '=' + else + syn match freebasicAssignmentOperator "\<\%(MOD\|AND\|EQV\|IMP\|OR\|XOR\|SHL\|SHR\)=" + endif + syn match freebasicArithmeticOperator "[-+&/\\*^]" + " syn match freebasicIndexingOperator "[[\]()]" " FIXME + syn match freebasicRelationalOperator "=\|<>\|<=\|<\|>=\|>" + syn match freebasicPreprocessorOperator '\%(^\s*\)\@' nextgroup=freebasicIdentifier skipwhite + endif +endif + +syn cluster freebasicOperator contains=freebasic.*Operator +" +" Catch errors caused by wrong parenthesis +" +" syn region freebasicParen transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup +" syn match freebasicParenError ")" +" syn match freebasicInParen contained "[{}]" +" syn cluster freebasicParenGroup contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField +" +" Integer number +" +syn match freebasicHexError "&h\w*\>" +syn match freebasicOctalError "&o\w*\>" +syn match freebasicBinaryError "&b\w*\>" +syn match freebasicHex "&h\x\+\%([%L&U]\|UL\|LL\|ULL\)\=\>" +syn match freebasicOctal "&o\o\+\%([%L&U]\|UL\|LL\|ULL\)\=\>" +syn match freebasicBinary "&b[10]\+\%([%L&U]\|UL\|LL\|ULL\)\=\>" +syn match freebasicInteger "\<\d\+\%([%L&U]\|UL\|LL\|ULL\)\=\>" +" +" Floating point +" See: https://www.freebasic.net/forum/viewtopic.php?t=20323 +" +" Floating point number, with dot, optional exponent, optional suffix +" +syn match freebasicFloat "\<\d\+\.\d*\%([de][-+]\=\d*\)\=[f!#]\=" +" +" Floating point number, starting with a dot, optional exponent, optional suffix +" +syn match freebasicFloat "\.\d\+\%([de][-+]\=\d*\)\=[f!#]\=" +" +" Floating point number, without dot, with optional exponent, optional suffix +" +syn match freebasicFloat "\<\d\+\%([de][-+]\=\d*\)[f!#]\=" +" +" Floating point number, without dot, without exponent, with suffix +" +syn match freebasicFloat "\<\d\+[f!#]" +" +" Create the clusters +" +syn cluster freebasicNumber contains=freebasicHex,freebasicOctal,freebasicBinary,freebasicInteger,freebasicFloat +syn cluster freebasicNumberError contains=freebasicHexError,freebasicOctalError,freebasicBinaryError +" +" Booleans +" +if s:lang != "qb" + syn keyword freebasicBoolean TRUE FALSE +endif +" +" +" String and escape sequences +" +syn match freebasicSpecial contained "\\." +syn match freebasicSpecial contained "\\\d\{1,3}" +syn match freebasicSpecial contained "\\&h\x\{1,2}" +syn match freebasicSpecial contained "\\&o\o\{1,3}" +syn match freebasicSpecial contained "\\&b[01]\{1,8}" +syn match freebasicSpecial contained "\\u\x\{1,4}" +syn region freebasicString start='"' end='"' " TODO: Toggle contains on Option Escape in fblite and qb? -- DJK 20/11/19 +syn region freebasicString start='!\zs"' end='"' contains=freebasicSpecial +syn region freebasicString start='$\zs"' end='"' +" +" Line labels +" +if s:lang =~# '\<\%(qb\|fblite\)\>' + syn match freebasicLineLabel "^\s*\zs\h\%(\w\|\.\)*\ze\s*:" +else + syn match freebasicLineLabel "^\s*\zs\h\w*\ze\s*:" +endif +syn match freebasicLineNumber "^\s*\zs\d\+" +" +" Line continuations +" +" syn match freebasicLineContinuation "\<_\>" nextgroup=freebasicComment,freebasicPostLineContinuation skipwhite +syn keyword freebasicLineContinuation _ nextgroup=freebasicComment,freebasicPostLineContinuation skipwhite +syn match freebasicPostLineContinuation ".*" contained +" +" +" Type suffixes +if exists("freebasic_type_suffixes") && s:lang =~# '\<\%(qb\|fblite\)\>' + syn match freebasicTypeSuffix "\h\%(\w\|.\)*\zs[$%&!#]" +endif +" +" Comments +" +syn keyword freebasicTodo TODO FIXME XXX NOTE contained +syn region freebasicComment start="\" end="$" contains=freebasicTodo,@Spell,freebasicMetacommand +syn region freebasicComment start="'" end="$" contains=freebasicTodo,@Spell,freebasicMetacommand +syn region freebasicDoubleComment start="''" end="$" contains=freebasicTodo,@Spell + +if !exists("freebasic_no_comment_fold") + syn region freebasicMultilineComment start="/'" end="'/" contains=freebasicTodo,@Spell,freeBasicMultilineComment fold keepend extend + syn region freebasicMultilineComment2 start="^\s*'.*\n\%(\s*'\)\@=" end="^\s*'.*\n\%(\s*'\)\@!" contains=freebasicComment,freebasicDoubleComment keepend fold +else + syn region freebasicMultilineComment start="/'" end="'/" contains=freebasicTodo,@Spell,freeBasicMultilineComment +endif + +syn case match + +syn sync linebreaks=1 + +" +" The default methods for highlighting. Can be overridden later +" +hi def link freebasicArrays StorageClass +hi def link freebasicAsm Special +hi def link freebasicBitManipulation Operator +hi def link freebasicBoolean Boolean +if s:lang == "fb" + hi def link freebasicCompilerSwitches freebasicUnsupportedError +else + hi def link freebasicCompilerSwitches PreCondit +endif +hi def link freebasicConsole Special +hi def link freebasicData Special +hi def link freebasicDataTypes Type +hi def link freebasicDateTime Type +hi def link freebasicDebug Special +hi def link freebasicErrorHandling Special +hi def link freebasicFilenumber Special +hi def link freebasicFiles Special +hi def link freebasicFunctions Function +hi def link freebasicGraphics Function +hi def link freebasicHardware Special +hi def link freebasicLoops Repeat +hi def link freebasicMath Function +if s:lang == "fb" + hi def link freebasicMetacommand freebasicUnsupportedError +else + hi def link freebasicMetacommand SpecialComment +endif +hi def link freebasicMemory Function +hi def link freebasicMisc Special +hi def link freebasicModularizing Special +hi def link freebasicMultithreading Special +hi def link freebasicShell Special +hi def link freebasicEnviron Special +hi def link freebasicPointer Special +hi def link freebasicPredefined PreProc +hi def link freebasicPreProcessor PreProc +hi def link freebasicProgramFlow Statement +hi def link freebasicString String +hi def link freebasicTypeCasting Type +hi def link freebasicUserInput Statement +hi def link freebasicComment Comment +hi def link freebasicDoubleComment Comment +hi def link freebasicMultilineComment Comment +hi def link freebasicConditional Conditional +hi def link freebasicError Error +hi def link freebasicIdentifier Identifier +hi def link freebasicInclude Include +hi def link freebasicGenericFunction Function +hi def link freebasicLineContinuation Special +hi def link freebasicLineLabel LineNr +if s:lang == "fb" + hi def link freebasicLineNumber freebasicUnsupportedError +else + hi def link freebasicLineNumber LineNr +endif +hi def link freebasicMathOperator Operator + +hi def link freebasicHex Number +hi def link freebasicOctal Number +hi def link freebasicBinary Number +hi def link freebasicInteger Number +hi def link freebasicFloat Float + +hi def link freebasicHexError Error +hi def link freebasicOctalError Error +hi def link freebasicBinaryError Error + +hi def link freebasicAssignmentOperator Operator +hi def link freebasicArithmeticOperator Operator +hi def link freebasicIndexingOperator Operator +hi def link freebasicRelationalOperator Operator +hi def link freebasicBitwiseOperator Operator +hi def link freebasicShortcircuitOperator Operator +hi def link freebasicPreprocessorOperator Operator +hi def link freebasicPointerOperator Operator +if exists("freebasic_operators") + hi def link freebasicTypeOperator Operator +endif +hi def link freebasicMemoryOperator Operator + +hi def link freebasicSpaceError Error + +hi def link freebasicSpecial Special +hi def link freebasicTodo Todo + +hi def link freebasicUnsupported freebasicUnsupportedError +hi def link freebasicUnsupportedError Error + +unlet s:lang + +let b:current_syntax = "freebasic" + +" vim: ts=8 tw=132 fdm=marker diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim new file mode 100644 index 0000000..91150bc --- /dev/null +++ b/runtime/syntax/fstab.vim @@ -0,0 +1,494 @@ +" Vim syntax file +" Language: fstab file +" Maintainer: Radu Dineiu +" URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim +" Last Change: 2023 Feb 19 +" Version: 1.6.3 +" +" Credits: +" David Necas (Yeti) +" Stefano Zacchiroli +" Georgi Georgiev +" James Vega +" Elias Probst + +" Options: +" let fstab_unknown_fs_errors = 1 +" highlight unknown filesystems as errors +" +" let fstab_unknown_device_errors = 0 +" do not highlight unknown devices as errors + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" General +syn cluster fsGeneralCluster contains=fsComment +syn match fsComment /\s*#.*/ contains=@Spell +syn match fsOperator /[,=:#]/ + +" Device +syn cluster fsDeviceCluster contains=fsOperator,fsDeviceKeyword,fsDeviceError +syn match fsDeviceError /\%([^a-zA-Z0-9_\/#@:\.-]\|^\w\{-}\ze\W\)/ contained +syn keyword fsDeviceKeyword contained none proc linproc tmpfs devpts devtmpfs sysfs usbfs +syn keyword fsDeviceKeyword contained LABEL nextgroup=fsDeviceLabel +syn keyword fsDeviceKeyword contained UUID nextgroup=fsDeviceUUID +syn keyword fsDeviceKeyword contained PARTLABEL nextgroup=fsDevicePARTLABEL +syn keyword fsDeviceKeyword contained PARTUUID nextgroup=fsDevicePARTUUID +syn keyword fsDeviceKeyword contained sshfs nextgroup=fsDeviceSshfs +syn match fsDeviceKeyword contained /^[a-zA-Z0-9.\-]\+\ze:/ +syn match fsDeviceLabel contained /=[^ \t]\+/hs=s+1 contains=fsOperator +syn match fsDeviceUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator +syn match fsDevicePARTLABEL contained /=[^ \t]\+/hs=s+1 contains=fsOperator +syn match fsDevicePARTUUID contained /=[^ \t]\+/hs=s+1 contains=fsOperator +syn match fsDeviceSshfs contained /#[_=[:alnum:]\.\/+-]\+@[a-z0-9._-]\+\a\{2}:[^ \t]\+/hs=s+1 contains=fsOperator + +" Mount Point +syn cluster fsMountPointCluster contains=fsMountPointKeyword,fsMountPointError +syn match fsMountPointError /\%([^ \ta-zA-Z0-9_\/#@\.-]\|\s\+\zs\w\{-}\ze\s\)/ contained +syn keyword fsMountPointKeyword contained none swap + +" Type +syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown +syn match fsTypeUnknown /\s\+\zs\w\+/ contained +syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 ceph cfs cgroup cifs coda coherent configfs cpuset cramfs debugfs devfs devpts devtmpfs dlmfs e2compr ecryptfs efivarfs efs erofs exfat ext2 ext2fs ext3 ext4 f2fs fdesc ffs filecore fuse fuseblk fusectl gfs2 hfs hfsplus hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfs4 nfsd nilfs2 none ntfs ntfs3 null nwfs ocfs2 omfs overlay ovlfs pipefs portal proc procfs pstore ptyfs pvfs2 qnx4 qnx6 reiserfs ramfs romfs rpc_pipefs securityfs shm smbfs spufs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs ubifs udf ufs umap umsdos union usbfs userfs v9fs vfat virtiofs vs3fs vxfs wrapfs wvfs xenfs xenix xfs zisofs zonefs + +" Options +" ------- +" Options: General +syn cluster fsOptionsCluster contains=fsOperator,fsOptionsGeneral,fsOptionsKeywords,fsTypeUnknown +syn match fsOptionsNumber /\d\+/ +syn match fsOptionsNumberSigned /[-+]\?\d\+/ +syn match fsOptionsNumberOctal /[0-8]\+/ +syn match fsOptionsString /[a-zA-Z0-9_-]\+/ +syn keyword fsOptionsTrueFalse true false +syn keyword fsOptionsYesNo yes no +syn keyword fsOptionsYN y n +syn keyword fsOptions01 0 1 +syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck +syn keyword fsOptionsSize 512 1024 2048 +syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop managed mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner pamconsole rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx nofail failok lazytime +syn match fsOptionsGeneral /_netdev/ + +syn match fsOptionsKeywords contained /\/ +syn keyword fsOptionsKeywords contained acl bsddf minixdf debug grpid bsdgroups minixdf nocheck nogrpid oldalloc orlov sysvgroups nouid32 nobh user_xattr nouser_xattr + +" Options: ext3 +syn match fsOptionsKeywords contained /\/ +syn keyword fsOptionsUfsError contained panic lock umount repair + +" Options: usbfs +syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)\%(id\|gid\)=/ nextgroup=fsOptionsNumber +syn match fsOptionsKeywords contained /\<\%(dev\|bus\|list\)mode=/ nextgroup=fsOptionsNumberOctal + +" Options: v9fs +syn match fsOptionsKeywords contained /\<\%(trans\)=/ nextgroup=fsOptionsV9Trans +syn keyword fsOptionsV9Trans unix tcp fd virtio rdma +syn match fsOptionsKeywords contained /\ +" Previous Maintainer: Haakon Riiser +" Last Change: Sat 29 Sep 2007 11:08:34 AM PDT +" +" Thanks to David Necas (Yeti) for adding Fvwm 2.4 support. +" +" 2006-05-09 gi1242: Rewrote fvwm2 syntax completely. Also since fvwm1 is now +" mostly obsolete, made the syntax file pick fvwm2 syntax by default. + +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +" Fvwm configuration files are case insensitive +syn case ignore + +" Identifiers in Fvwm can contain most characters, so we only +" include the most common ones here. +setlocal iskeyword=_,-,+,.,a-z,A-Z,48-57 + +" Syntax items common to fvwm1 and fvwm2 config files +syn cluster fvwmConstants contains=fvwmEnvVar,fvwmNumber +syn match fvwmEnvVar "\$\w\+" +syn match fvwmNumber '\v<(\d+|0x[0-9a-f]+)>' + +syn match fvwmModConf nextgroup=fvwmModArg "\v^\s*\*\a+" +syn region fvwmModArg contained contains=fvwmString,fvwmRGBValue + \ start='.' skip='\\$' end='$' + +syn region fvwmString contains=fvwmBackslash start='"' + \ matchgroup=fvwmBackslash skip='\v\\"' end='"' +syn region fvwmString contains=fvwmBackslash start='`' + \ matchgroup=fvwmBackslash skip='\v\\`' end='`' +syn region fvwmString contains=fvwmBackslash start="'" + \ matchgroup=fvwmBackslash skip="\v\\'" end="'" +syn match fvwmBackslash contained '\\[^"'`]' + +syn match fvwmRGBValue "#\x\{3}" +syn match fvwmRGBValue "#\x\{6}" +syn match fvwmRGBValue "#\x\{9}" +syn match fvwmRGBValue "#\x\{12}" +syn match fvwmRGBValue "rgb:\x\{1,4}/\x\{1,4}/\x\{1,4}" + +syn region fvwmComment contains=@Spell + \ start='^\s*#\s' skip='\\$' end='$' +syn region fvwmComment start="\v^\s*#(\S|$)" skip='\\$' end='$' + +if (exists("b:fvwm_version") && b:fvwm_version == 1) + \ || (exists("use_fvwm_1") && use_fvwm_1) + + " + " Syntax highlighting for Fvwm1 files. + " + + " Moved from common syntax items + syn match fvwmModule "\' + syn match fvwmGradient contained '\v<[HVDBSCRY]Gradient>' + + " Styles + syn keyword fvwmKeyword nextgroup=fvwmStyleArgs skipwhite + \ Style WindowStyle + syn region fvwmStyleArgs contained transparent contains=fvwmStyleNames,@fvwmConstants,fvwmString,fvwmRGBValue + \ start='.' skip='\\$' end='$' + syn keyword fvwmStyleNames contained + \ BorderWidth HandleWidth NoIcon Icon MiniIcon + \ IconBox IconGrid IconFill IconSize NoTitle + \ Title TitleAtBottom TitleAtLeft TitleAtRight + \ TitleAtTop LeftTitleRotatedCW + \ LeftTitleRotatedCCW RightTitleRotatedCCW + \ RightTitleRotatedCW TopTitleRotated + \ TopTitleNotRotated BottomTitleRotated + \ BottomTitleNotRotated UseTitleDecorRotation + \ StippledTitle StippledTitleOff + \ IndexedWindowName ExactWindowName + \ IndexedIconName ExactIconName Borders + \ NoHandles Handles WindowListSkip + \ WindowListHit CirculateSkip CirculateHit + \ CirculateSkipShaded CirculateHitShaded Layer + \ StaysOnTop StaysOnBottom StaysPut Sticky + \ Slippery StickyAcrossPages StickyAcrossDesks + \ StartIconic StartNormal Color ForeColor + \ BackColor Colorset HilightFore HilightBack + \ HilightColorset BorderColorset + \ HilightBorderColorset IconTitleColorset + \ HilightIconTitleColorset + \ IconBackgroundColorset IconTitleRelief + \ IconBackgroundRelief IconBackgroundPadding + \ Font IconFont StartsOnDesk StartsOnPage + \ StartsAnyWhere StartsOnScreen + \ ManualPlacementHonorsStartsOnPage + \ ManualPlacementIgnoresStartsOnPage + \ CaptureHonorsStartsOnPage + \ CaptureIgnoresStartsOnPage + \ RecaptureHonorsStartsOnPage + \ RecaptureIgnoresStartsOnPage + \ StartsOnPageIncludesTransients + \ StartsOnPageIgnoresTransients IconTitle + \ NoIconTitle MwmButtons FvwmButtons MwmBorder + \ FvwmBorder MwmDecor NoDecorHint MwmFunctions + \ NoFuncHint HintOverride NoOverride NoButton + \ Button ResizeHintOverride NoResizeOverride + \ OLDecor NoOLDecor GNOMEUseHints + \ GNOMEIgnoreHints StickyIcon SlipperyIcon + \ StickyAcrossPagesIcon StickyAcrossDesksIcon + \ ManualPlacement CascadePlacement + \ MinOverlapPlacement + \ MinOverlapPercentPlacement + \ TileManualPlacement TileCascadePlacement + \ MinOverlapPlacementPenalties + \ MinOverlapPercentPlacementPenalties + \ DecorateTransient NakedTransient + \ DontRaiseTransient RaiseTransient + \ DontLowerTransient LowerTransient + \ DontStackTransientParent + \ StackTransientParent SkipMapping ShowMapping + \ ScatterWindowGroups KeepWindowGroupsOnDesk + \ UseDecor UseStyle NoPPosition UsePPosition + \ NoUSPosition UseUSPosition + \ NoTransientPPosition UseTransientPPosition + \ NoTransientUSPosition UseTransientUSPosition + \ NoIconPosition UseIconPosition Lenience + \ NoLenience ClickToFocus SloppyFocus + \ MouseFocus FocusFollowsMouse NeverFocus + \ ClickToFocusPassesClickOff + \ ClickToFocusPassesClick + \ ClickToFocusRaisesOff ClickToFocusRaises + \ MouseFocusClickRaises + \ MouseFocusClickRaisesOff GrabFocus + \ GrabFocusOff GrabFocusTransientOff + \ GrabFocusTransient FPFocusClickButtons + \ FPFocusClickModifiers + \ FPSortWindowlistByFocus FPClickRaisesFocused + \ FPClickDecorRaisesFocused + \ FPClickIconRaisesFocused + \ FPClickRaisesUnfocused + \ FPClickDecorRaisesUnfocused + \ FPClickIconRaisesUnfocused FPClickToFocus + \ FPClickDecorToFocus FPClickIconToFocus + \ FPEnterToFocus FPLeaveToUnfocus + \ FPFocusByProgram FPFocusByFunction + \ FPFocusByFunctionWarpPointer FPLenient + \ FPPassFocusClick FPPassRaiseClick + \ FPIgnoreFocusClickMotion + \ FPIgnoreRaiseClickMotion + \ FPAllowFocusClickFunction + \ FPAllowRaiseClickFunction FPGrabFocus + \ FPGrabFocusTransient FPOverrideGrabFocus + \ FPReleaseFocus FPReleaseFocusTransient + \ FPOverrideReleaseFocus StartsLowered + \ StartsRaised IgnoreRestack AllowRestack + \ FixedPosition VariablePosition + \ FixedUSPosition VariableUSPosition + \ FixedPPosition VariablePPosition FixedSize + \ VariableSize FixedUSSize VariableUSSize + \ FixedPSize VariablePSize Closable + \ Iconifiable Maximizable + \ AllowMaximizeFixedSize IconOverride + \ NoIconOverride NoActiveIconOverride + \ DepressableBorder FirmBorder MaxWindowSize + \ IconifyWindowGroups IconifyWindowGroupsOff + \ ResizeOpaque ResizeOutline BackingStore + \ BackingStoreOff BackingStoreWindowDefault + \ Opacity ParentalRelativity SaveUnder + \ SaveUnderOff WindowShadeShrinks + \ WindowShadeScrolls WindowShadeSteps + \ WindowShadeAlwaysLazy WindowShadeBusy + \ WindowShadeLazy EWMHDonateIcon + \ EWMHDontDonateIcon EWMHDonateMiniIcon + \ EWMHDontDonateMiniIcon EWMHMiniIconOverride + \ EWMHNoMiniIconOverride + \ EWMHUseStackingOrderHints + \ EWMHIgnoreStackingOrderHints + \ EWMHIgnoreStateHints EWMHUseStateHints + \ EWMHIgnoreStrutHints EWMHIgnoreWindowType + \ EWMHUseStrutHints + \ EWMHMaximizeIgnoreWorkingArea + \ EWMHMaximizeUseWorkingArea + \ EWMHMaximizeUseDynamicWorkingArea + \ EWMHPlacementIgnoreWorkingArea + \ EWMHPlacementUseWorkingArea + \ EWMHPlacementUseDynamicWorkingArea + \ MoveByProgramMethod Unmanaged State + \ StippledIconTitle StickyStippledTitle + \ StickyStippledIconTitle + \ PositionPlacement + \ UnderMousePlacementHonorsStartsOnPage + \ UnderMousePlacementIgnoresStartsOnPage + \ MinOverlapPlacementPenalties + \ MinOverlapPercentPlacementPenalties + \ MinWindowSize StartShaded + + " Cursor styles + syn keyword fvwmKeyword nextgroup=fvwmCursorStyle skipwhite + \ CursorStyle + syn case match + syn keyword fvwmCursorStyle contained + \ POSITION TITLE DEFAULT SYS MOVE RESIZE WAIT + \ MENU SELECT DESTROY TOP RIGHT BOTTOM LEFT + \ TOP_LEFT TOP_RIGHT BOTTOM_LEFT BOTTOM_RIGHT + \ TOP_EDGE RIGHT_EDGE BOTTOM_EDGE LEFT_EDGE + \ ROOT STROKE + syn case ignore + + " Menu style + syn keyword fvwmKeyword nextgroup=fvwmMStyleArgs skipwhite + \ MenuStyle + syn region fvwmMStyleArgs contained transparent contains=fvwmMStyleNames,@fvwmConstants,fvwmString,fvwmGradient,fvwmRGBValue + \ start='.' skip='\\$' end='$' + syn keyword fvwmMStyleNames contained + \ Fvwm Mwm Win BorderWidth Foreground + \ Background Greyed HilightBack HilightBackOff + \ ActiveFore ActiveForeOff MenuColorset + \ ActiveColorset GreyedColorset Hilight3DThick + \ Hilight3DThin Hilight3DOff + \ Hilight3DThickness Animation AnimationOff + \ Font MenuFace PopupDelay PopupOffset + \ TitleWarp TitleWarpOff TitleUnderlines0 + \ TitleUnderlines1 TitleUnderlines2 + \ SeparatorsLong SeparatorsShort + \ TrianglesSolid TrianglesRelief + \ PopupImmediately PopupDelayed + \ PopdownImmediately PopdownDelayed + \ PopupActiveArea DoubleClickTime SidePic + \ SideColor PopupAsRootMenu PopupAsSubmenu + \ PopupIgnore PopupClose RemoveSubmenus + \ HoldSubmenus SubmenusRight SubmenusLeft + \ SelectOnRelease ItemFormat + \ VerticalItemSpacing VerticalTitleSpacing + \ AutomaticHotkeys AutomaticHotkeysOff + \ TitleFont TitleColorset HilightTitleBack + + " Button style + syn keyword fvwmKeyword nextgroup=fvwmBNum skipwhite + \ ButtonStyle AddButtonStyle + syn match fvwmBNum contained + \ nextgroup=fvwmBState,fvwmBStyleArgs skipwhite + \ '\v<([0-9]|All|Left|Right|Reset)>' + syn keyword fvwmBState contained nextgroup=fvwmBStyleArgs skipwhite + \ ActiveUp ActiveDown InactiveUp InactiveDown + \ Active Inactive ToggledActiveUp + \ ToggledActiveDown ToggledInactiveUp + \ ToggledInactiveDown ToggledActive + \ ToggledInactive AllNormal AllToggled + \ AllActive AllInactive AllUp AllDown + syn region fvwmBStyleArgs contained contains=fvwmBStyleFlags,fvwmBStyleNames,fvwmGradient,fvwmRGBValue,@fvwmConstants,fvwmString + \ start='\S' skip='\\$' end='$' + syn keyword fvwmBStyleNames contained + \ Simple Default Solid Colorset Vector Pixmap + \ AdjustedPixmap ShrunkPixmap StretchedPixmap + \ TiledPixmap MiniIcon + syn keyword fvwmBStyleFlags contained + \ Raised Sunk Flat UseTitleStyle + \ UseBorderStyle + + " Border style + syn keyword fvwmKeyword skipwhite nextgroup=fvwmBdState,fvwmBdStyleArgs + \ BorderStyle + syn keyword fvwmBdState contained skipwhite nextgroup=fvwmBdStyleArgs + \ Active Inactive + syn region fvwmBdStyleArgs contained contains=fvwmBdStyNames,fvwmBdStyFlags + \ start='\S' skip='\\$' end='$' + syn keyword fvwmBdStyNames contained + \ TiledPixmap Colorset + syn keyword fvwmBdStyFlags contained + \ HiddenHandles NoInset Raised Sunk Flat + + " Title styles + syn keyword fvwmKeyword skipwhite nextgroup=fvwmTState,fvwmTStyleArgs + \ TitleStyle AddTitleStyle + syn keyword fvwmTState contained skipwhite nextgroup=fvwmTStyleArgs + \ ActiveUp ActiveDown InactiveUp InactiveDown + \ Active Inactive ToggledActiveUp + \ ToggledActiveDown ToggledInactiveUp + \ ToggledInactiveDown ToggledActive + \ ToggledInactive AllNormal AllToggled + \ AllActive AllInactive AllUp AllDown + syn region fvwmTStyleArgs contained contains=fvwmBStyleNames,fvwmTStyleNames,fvwmMPmapNames,fvwmTStyleFlags,fvwmGradient,fvwmRGBValue,@fvwmConstants + \ start='\S' skip='\\$' end='$' + syn keyword fvwmTStyleNames contained + \ MultiPixmap + syn keyword fvwmTStyleNames contained + \ LeftJustified Centered RightJustified Height + \ MinHeight + syn keyword fvwmMPmapNames contained + \ Main LeftMain RightMain UnderText LeftOfText + \ RightOfText LeftEnd RightEnd Buttons + \ LeftButtons RightButtons + syn keyword fvwmTStyleFlags contained + \ Raised Flat Sunk + + " Button state + syn keyword fvwmKeyword nextgroup=fvwmBStateArgs + \ ButtonState + syn region fvwmBStateArgs contained contains=fvwmBStateTF,fvwmBStateNames + \ start='.' skip='\\$' end='$' + syn keyword fvwmBStateNames contained ActiveDown Inactive InactiveDown + syn keyword fvwmBStateTF contained True False + + " Paths + syn keyword fvwmKeyword nextgroup=fvwmPath skipwhite + \ IconPath ImagePath LocalePath PixmapPath + \ ModulePath + syn match fvwmPath contained contains=fvwmEnvVar '\v.+$' + + " Window list command + syn keyword fvwmKeyword nextgroup=fvwmWLArgs skipwhite + \ WindowList + syn region fvwmWLArgs contained + \ contains=fvwmCondition,@fvwmConstants,fvwmString,fvwmWLOpts + \ start='.' skip='\\$' end='$' + syn keyword fvwmWLOpts contained + \ Geometry NoGeometry NoGeometryWithInfo + \ NoDeskNum NoNumInDeskTitle + \ NoCurrentDeskTitle MaxLabelWidth width + \ TitleForAllDesks Function funcname Desk + \ desknum CurrentDesk NoIcons Icons OnlyIcons + \ NoNormal Normal OnlyNormal NoSticky Sticky + \ OnlySticky NoStickyAcrossPages + \ StickyAcrossPages OnlyStickyAcrossPages + \ NoStickyAcrossDesks StickyAcrossDesks + \ OnlyStickyAcrossDesks NoOnTop OnTop + \ OnlyOnTop NoOnBottom OnBottom OnlyOnBottom + \ Layer UseListSkip OnlyListSkip NoDeskSort + \ ReverseOrder CurrentAtEnd IconifiedAtEnd + \ UseIconName Alphabetic NotAlphabetic + \ SortByResource SortByClass NoHotkeys + \ SelectOnRelease + + syn keyword fvwmSpecialFn StartFunction InitFunction RestartFunction + \ ExitFunction SessionInitFunction + \ SessionRestartFunction SessionExitFunction + \ MissingSubmenuFunction WindowListFunc + + syn keyword fvwmKeyword skipwhite nextgroup=fvwmKeyWin,fvwmKeyName + \ Key PointerKey + syn region fvwmKeyWin contained skipwhite nextgroup=fvwmKeyName + \ start='(' end=')' + syn case match + syn match fvwmKeyName contained skipwhite nextgroup=fvwmKeyContext + \ '\v<([a-zA-Z0-9]|F\d+|KP_\d)>' + syn keyword fvwmKeyName contained skipwhite nextgroup=fvwmKeyContext + \ BackSpace Begin Break Cancel Clear Delete + \ Down End Escape Execute Find Help Home + \ Insert KP_Add KP_Begin KP_Decimal KP_Delete + \ KP_Divide KP_Down KP_End KP_Enter KP_Equal + \ KP_Home KP_Insert KP_Left KP_Multiply + \ KP_Next KP_Page_Down KP_Page_Up KP_Prior + \ KP_Right KP_Separator KP_Space KP_Subtract + \ KP_Tab KP_Up Left Linefeed Menu Mode_switch + \ Next Num_Lock Page_Down Page_Up Pause Print + \ Prior Redo Return Right script_switch + \ Scroll_Lock Select Sys_Req Tab Undo Up space + \ exclam quotedbl numbersign dollar percent + \ ampersand apostrophe quoteright parenleft + \ parenright asterisk plus comma minus period + \ slash colon semicolon less equal greater + \ question at bracketleft backslash + \ bracketright asciicircum underscore grave + \ quoteleft braceleft bar braceright + \ asciitilde + + syn match fvwmKeyContext contained skipwhite nextgroup=fvwmKeyMods + \ '\v<[][RWDTS_F<^>vI0-9AM-]+>' + syn match fvwmKeyMods contained '\v[NCSMLA1-5]+' + syn case ignore + + syn keyword fvwmKeyword skipwhite nextgroup=fvwmMouseWin,fvwmMouseButton + \ Mouse + syn region fvwmMouseWin contained skipwhite nextgroup=fvwmMouseButton + \ start='(' end=')' + syn match fvwmMouseButton contained skipwhite nextgroup=fvwmKeyContext + \ '[0-5]' +endif + +" Define syntax highlighting groups + +" +" Common highlighting groups +" +hi def link fvwmComment Comment +hi def link fvwmEnvVar Macro +hi def link fvwmNumber Number +hi def link fvwmKeyword Keyword +hi def link fvwmPath Constant +hi def link fvwmModConf Macro +hi def link fvwmRGBValue Constant +hi def link fvwmString String +hi def link fvwmBackslash SpecialChar + + +" +" Highlighting groups for fvwm1 specific items +" +hi def link fvwmExec fvwmKeyword +hi def link fvwmKey fvwmKeyword +hi def link fvwmModule fvwmKeyword +hi def link fvwmFunction Function + +" +" Highlighting groups for fvwm2 specific items +" +hi def link fvwmSpecialFn Type +hi def link fvwmCursorStyle fvwmStyleNames +hi def link fvwmStyleNames Identifier +hi def link fvwmMStyleNames fvwmStyleNames +hi def link fvwmCSNames fvwmStyleNames +hi def link fvwmGradient fvwmStyleNames +hi def link fvwmCondNames fvwmStyleNames +hi def link fvwmTCNames fvwmStyleNames +hi def link fvwmTRNames fvwmStyleNames +hi def link fvwmWLOpts fvwmStyleNames + +hi def link fvwmBNum Number +hi def link fvwmBState Type +hi def link fvwmBStyleNames fvwmStyleNames +hi def link fvwmBStyleFlags Special + +hi def link fvwmBStateTF Constant +hi def link fvwmBStateNames fvwmStyleNames + +hi def link fvwmBdState fvwmBState +hi def link fvwmBdStyNames fvwmStyleNames +hi def link fvwmBdStyFlags fvwmBStyleFlags + +hi def link fvwmTState fvwmBState +hi def link fvwmTStyleNames fvwmStyleNames +hi def link fvwmMPmapNames fvwmBStyleFlags +hi def link fvwmTStyleFlags fvwmBStyleFlags + +hi def link fvwmDirection fvwmBStyleFlags + +hi def link fvwmKeyWin Constant +hi def link fvwmMouseWin fvwmKeyWin +hi def link fvwmKeyName Special +hi def link fvwmKeyContext fvwmKeyName +hi def link fvwmKeyMods fvwmKeyName +hi def link fvwmMouseButton fvwmKeyName + +hi def link fvwmMenuString String +hi def link fvwmIcon Type +hi def link fvwmShortcutKey SpecialChar + +hi def link fvwmModuleName Function + +let b:current_syntax = "fvwm" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/fvwm2m4.vim b/runtime/syntax/fvwm2m4.vim new file mode 100644 index 0000000..e296273 --- /dev/null +++ b/runtime/syntax/fvwm2m4.vim @@ -0,0 +1,32 @@ +" Vim syntax file +" Language: FvwmM4 preprocessed Fvwm2 configuration files +" Maintainer: David Ne\v{c}as (Yeti) +" Last Change: 2002-06-02 +" URI: http://physics.muni.cz/~yeti/download/syntax/fvwmm4.vim + +" Setup +" quit when a syntax file was already loaded +if exists('b:current_syntax') + finish +endif + +" Let included files know they are included +if !exists('main_syntax') + let main_syntax = 'fvwm2m4' +endif + +" Include M4 syntax +runtime! syntax/m4.vim +unlet b:current_syntax + +" Include Fvwm2 syntax (Fvwm1 doesn't have M4 preprocessor) +runtime! syntax/fvwm.vim +unlet b:current_syntax + +" That's all! +let b:current_syntax = 'fvwm2m4' + +if main_syntax == 'fvwm2m4' + unlet main_syntax +endif + diff --git a/runtime/syntax/gdb.vim b/runtime/syntax/gdb.vim new file mode 100644 index 0000000..c15b96d --- /dev/null +++ b/runtime/syntax/gdb.vim @@ -0,0 +1,104 @@ +" Vim syntax file +" Language: GDB command files +" Maintainer: Claudio Fleiner +" URL: http://www.fleiner.com/vim/syntax/gdb.vim +" Last Change: 2021 Nov 15 +" Additional changes by Simon Sobisch + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword gdbInfo contained address architecture args breakpoints catch common copying dcache +syn keyword gdbInfo contained display files float frame functions handle line +syn keyword gdbInfo contained locals program registers scope set sharedlibrary signals +syn keyword gdbInfo contained source sources stack symbol target terminal threads +syn keyword gdbInfo contained syn keyword tracepoints types udot variables warranty watchpoints +syn match gdbInfo contained "all-registers" + + +syn keyword gdbStatement contained actions apply attach awatch backtrace break bt call catch cd clear collect commands +syn keyword gdbStatement contained complete condition continue delete detach directory disable disas[semble] disp[lay] down +syn keyword gdbStatement contained echo else enable end file finish frame handle hbreak help if ignore +syn keyword gdbStatement contained inspect jump kill list load maintenance make next nexti ni output overlay +syn keyword gdbStatement contained passcount path print printf ptype python pwd quit rbreak remote return run rwatch +syn keyword gdbStatement contained search section set sharedlibrary shell show si signal skip source step stepi stepping +syn keyword gdbStatement contained stop target tbreak tdump tfind thbreak thread tp trace tstart tstatus tstop +syn keyword gdbStatement contained tty und[isplay] unset until up watch whatis where while ws x +syn match gdbFuncDef "\.*" +syn match gdbStatementContainer "^\s*\S\+" contains=gdbStatement,gdbFuncDef +syn match gdbStatement "^\s*info" nextgroup=gdbInfo skipwhite skipempty + +" some commonly used abbreviations +syn keyword gdbStatement c cont p py + +syn region gdbDocument matchgroup=gdbFuncDef start="\.*$" matchgroup=gdbFuncDef end="^end\s*$" + +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" +syn match gdbStatement "\" + +syn keyword gdbSet annotate architecture args check complaints confirm editing endian +syn keyword gdbSet environment gnutarget height history language listsize print prompt +syn keyword gdbSet radix remotebaud remotebreak remotecache remotedebug remotedevice remotelogbase +syn keyword gdbSet remotelogfile remotetimeout remotewritesize targetdebug variable verbose +syn keyword gdbSet watchdog width write +syn match gdbSet "\" +syn match gdbSet "\" +syn match gdbSet "\" +syn match gdbSet "\" +syn match gdbSet "\" +syn match gdbSet "\" +syn match gdbSet "\" +syn match gdbSet "\" + +syn match gdbComment "^\s*#.*" contains=@Spell + +syn match gdbVariable "\$\K\k*" + +" Strings and constants +syn region gdbString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell +syn match gdbCharacter "'[^']*'" contains=gdbSpecialChar,gdbSpecialCharError +syn match gdbCharacter "'\\''" contains=gdbSpecialChar +syn match gdbCharacter "'[^\\]'" +syn match gdbNumber "\<[0-9_]\+\>" +syn match gdbNumber "\<0x[0-9a-fA-F_]\+\>" + + +if !exists("gdb_minlines") + let gdb_minlines = 10 +endif +exec "syn sync ccomment gdbComment minlines=" . gdb_minlines + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link gdbFuncDef Function +hi def link gdbComment Comment +hi def link gdbStatement Statement +hi def link gdbString String +hi def link gdbCharacter Character +hi def link gdbVariable Identifier +hi def link gdbSet Constant +hi def link gdbInfo Type +hi def link gdbDocument Special +hi def link gdbNumber Number + +let b:current_syntax = "gdb" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/gdmo.vim b/runtime/syntax/gdmo.vim new file mode 100644 index 0000000..009f402 --- /dev/null +++ b/runtime/syntax/gdmo.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: GDMO +" (ISO-10165-4; Guidelines for the Definition of Managed Object) +" Maintainer: Gyuman (Chester) Kim +" URL: http://classicalprogrammer.wikidot.com/local--files/vim-syntax-file-for-gdmo/gdmo.vim +" Last change: 8th June, 2011 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" keyword definitions +syn match gdmoCategory "MANAGED\s\+OBJECT\s\+CLASS" +syn keyword gdmoCategory NOTIFICATION ATTRIBUTE BEHAVIOUR PACKAGE ACTION +syn match gdmoCategory "NAME\s\+BINDING" +syn match gdmoRelationship "DERIVED\s\+FROM" +syn match gdmoRelationship "SUPERIOR\s\+OBJECT\s\+CLASS" +syn match gdmoRelationship "SUBORDINATE\s\+OBJECT\s\+CLASS" +syn match gdmoExtension "AND\s\+SUBCLASSES" +syn match gdmoDefinition "DEFINED\s\+AS" +syn match gdmoDefinition "REGISTERED\s\+AS" +syn match gdmoExtension "ORDER\s\+BY" +syn match gdmoReference "WITH\s\+ATTRIBUTE" +syn match gdmoReference "WITH\s\+INFORMATION\s\+SYNTAX" +syn match gdmoReference "WITH\s\+REPLY\s\+SYNTAX" +syn match gdmoReference "WITH\s\+ATTRIBUTE\s\+SYNTAX" +syn match gdmoExtension "AND\s\+ATTRIBUTE\s\+IDS" +syn match gdmoExtension "MATCHES\s\+FOR" +syn match gdmoReference "CHARACTERIZED\s\+BY" +syn match gdmoReference "CONDITIONAL\s\+PACKAGES" +syn match gdmoExtension "PRESENT\s\+IF" +syn match gdmoExtension "DEFAULT\s\+VALUE" +syn match gdmoExtension "PERMITTED\s\+VALUES" +syn match gdmoExtension "REQUIRED\s\+VALUES" +syn match gdmoExtension "NAMED\s\+BY" +syn keyword gdmoReference ATTRIBUTES NOTIFICATIONS ACTIONS +syn keyword gdmoExtension DELETE CREATE +syn keyword gdmoExtension EQUALITY SUBSTRINGS ORDERING +syn match gdmoExtension "REPLACE-WITH-DEFAULT" +syn match gdmoExtension "GET" +syn match gdmoExtension "GET-REPLACE" +syn match gdmoExtension "ADD-REMOVE" +syn match gdmoExtension "WITH-REFERENCE-OBJECT" +syn match gdmoExtension "WITH-AUTOMATIC-INSTANCE-NAMING" +syn match gdmoExtension "ONLY-IF-NO-CONTAINED-OBJECTS" + + +" Strings and constants +syn match gdmoSpecial contained "\\\d\d\d\|\\." +syn region gdmoString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gdmoSpecial +syn match gdmoCharacter "'[^\\]'" +syn match gdmoSpecialCharacter "'\\.'" +syn match gdmoNumber "0[xX][0-9a-fA-F]\+\>" +syn match gdmoLineComment "--.*" +syn match gdmoLineComment "--.*--" + +syn match gdmoDefinition "^\s*[a-zA-Z][-a-zA-Z0-9_.\[\] \t{}]* *::="me=e-3 +syn match gdmoBraces "[{}]" + +syn sync ccomment gdmoComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link gdmoCategory Structure +hi def link gdmoRelationship Macro +hi def link gdmoDefinition Statement +hi def link gdmoReference Type +hi def link gdmoExtension Operator +hi def link gdmoBraces Function +hi def link gdmoSpecial Special +hi def link gdmoString String +hi def link gdmoCharacter Character +hi def link gdmoSpecialCharacter gdmoSpecial +hi def link gdmoComment Comment +hi def link gdmoLineComment gdmoComment +hi def link gdmoType Type + + +let b:current_syntax = "gdmo" + +" vim: ts=8 diff --git a/runtime/syntax/gdresource.vim b/runtime/syntax/gdresource.vim new file mode 100644 index 0000000..7e1a251 --- /dev/null +++ b/runtime/syntax/gdresource.vim @@ -0,0 +1,65 @@ +" Vim syntax file for Godot resource (scenes) +" Language: gdresource +" Maintainer: Maxim Kim +" Filenames: *.tscn, *.tres +" Website: https://github.com/habamax/vim-gdscript + +if exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +syn match gdResourceNumber "\<0x\%(_\=\x\)\+\>" +syn match gdResourceNumber "\<0b\%(_\=[01]\)\+\>" +syn match gdResourceNumber "\<\d\%(_\=\d\)*\>" +syn match gdResourceNumber "\<\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>" +syn match gdResourceNumber "\<\d\%(_\=\d\)*\.\%(e[+-]\=\d\%(_\=\d\)*\)\=\%(\W\|$\)\@=" +syn match gdResourceNumber "\%(^\|\W\)\@1<=\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>" + +syn keyword gdResourceKeyword true false + +syn region gdResourceString + \ start=+[uU]\="+ end='"' skip='\\\\\|\\"' + \ contains=@Spell keepend + +" Section +syn region gdResourceSection matchgroup=gdResourceSectionDelimiter + \ start='^\[' end=']\s*$' + \ oneline keepend + \ contains=gdResourceSectionName,gdResourceSectionAttribute + +syn match gdResourceSectionName '\[\@<=\S\+' contained skipwhite +syn match gdResourceSectionAttribute '\S\+\s*=\s*\S\+' + \ skipwhite keepend contained + \ contains=gdResourceSectionAttributeName,gdResourceSectionAttributeValue +syn match gdResourceSectionAttributeName '\S\+\ze\(\s*=\)' skipwhite contained +syn match gdResourceSectionAttributeValue '\(=\s*\)\zs\S\+\ze' skipwhite + \ contained + \ contains=gdResourceString,gdResourceNumber,gdResourceKeyword + + +" Section body +syn match gdResourceAttribute '^\s*\S\+\s*=.*$' + \ skipwhite keepend + \ contains=gdResourceAttributeName,gdResourceAttributeValue + +syn match gdResourceAttributeName '\S\+\ze\(\s*=\)' skipwhite contained +syn match gdResourceAttributeValue '\(=\s*\)\zs.*$' skipwhite + \ contained + \ contains=gdResourceString,gdResourceNumber,gdResourceKeyword + + +hi def link gdResourceNumber Constant +hi def link gdResourceKeyword Constant +hi def link gdResourceSectionName Statement +hi def link gdResourceSectionDelimiter Delimiter +hi def link gdResourceSectionAttributeName Type +hi def link gdResourceAttributeName Identifier +hi def link gdResourceString String + +let b:current_syntax = "gdresource" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/gdscript.vim b/runtime/syntax/gdscript.vim new file mode 100644 index 0000000..48af153 --- /dev/null +++ b/runtime/syntax/gdscript.vim @@ -0,0 +1,103 @@ +" Vim syntax file for Godot gdscript +" Language: gdscript +" Maintainer: Maxim Kim +" Website: https://github.com/habamax/vim-gdscript +" Filenames: *.gd + +if exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +syntax sync maxlines=100 + +syn keyword gdscriptConditional if else elif match +syn keyword gdscriptRepeat for while break continue + +syn keyword gdscriptOperator is as not and or in + +syn match gdscriptBlockStart ":\s*$" + +syn keyword gdscriptKeyword null self owner parent tool +syn keyword gdscriptBoolean false true + +syn keyword gdscriptStatement remote master puppet remotesync mastersync puppetsync sync +syn keyword gdscriptStatement return pass +syn keyword gdscriptStatement static const enum +syn keyword gdscriptStatement breakpoint assert +syn keyword gdscriptStatement onready +syn keyword gdscriptStatement class_name extends + +syn keyword gdscriptType void bool int float String contained +syn match gdscriptType ":\s*\zs\h\w*" contained +syn match gdscriptType "->\s*\zs\h\w*" contained + +syn keyword gdscriptStatement var nextgroup=gdscriptTypeDecl skipwhite +syn keyword gdscriptStatement const nextgroup=gdscriptTypeDecl skipwhite +syn match gdscriptTypeDecl "\h\w*\s*:\s*\h\w*" contains=gdscriptType contained skipwhite +syn match gdscriptTypeDecl "->\s*\h\w*" contains=gdscriptType skipwhite + +syn keyword gdscriptStatement export nextgroup=gdscriptExportTypeDecl skipwhite +syn match gdscriptExportTypeDecl "(.\{-}[,)]" contains=gdscriptOperator,gdscriptType contained skipwhite + +syn keyword gdscriptStatement setget nextgroup=gdscriptSetGet,gdscriptSetGetSeparator skipwhite +syn match gdscriptSetGet "\h\w*" nextgroup=gdscriptSetGetSeparator display contained skipwhite +syn match gdscriptSetGetSeparator "," nextgroup=gdscriptSetGet display contained skipwhite + +syn keyword gdscriptStatement class func signal nextgroup=gdscriptFunctionName skipwhite +syn match gdscriptFunctionName "\h\w*" nextgroup=gdscriptFunctionParams display contained skipwhite +syn match gdscriptFunctionParams "(.*)" contains=gdscriptTypeDecl display contained skipwhite + +syn match gdscriptNode "\$\h\w*\%(/\h\w*\)*" + +syn match gdscriptComment "#.*$" contains=@Spell,gdscriptTodo + +syn region gdscriptString matchgroup=gdscriptQuotes + \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=gdscriptEscape,@Spell + +syn region gdscriptString matchgroup=gdscriptTripleQuotes + \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend + \ contains=gdscriptEscape,@Spell + +syn match gdscriptEscape +\\[abfnrtv'"\\]+ contained +syn match gdscriptEscape "\\$" + +" Numbers +syn match gdscriptNumber "\<0x\%(_\=\x\)\+\>" +syn match gdscriptNumber "\<0b\%(_\=[01]\)\+\>" +syn match gdscriptNumber "\<\d\%(_\=\d\)*\>" +syn match gdscriptNumber "\<\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>" +syn match gdscriptNumber "\<\d\%(_\=\d\)*\.\%(e[+-]\=\d\%(_\=\d\)*\)\=\%(\W\|$\)\@=" +syn match gdscriptNumber "\%(^\|\W\)\@1<=\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%(e[+-]\=\d\%(_\=\d\)*\)\=\>" + +" XXX, TODO, etc +syn keyword gdscriptTodo TODO XXX FIXME HACK NOTE BUG contained + +hi def link gdscriptStatement Statement +hi def link gdscriptKeyword Keyword +hi def link gdscriptConditional Conditional +hi def link gdscriptBoolean Boolean +hi def link gdscriptOperator Operator +hi def link gdscriptRepeat Repeat +hi def link gdscriptSetGet Function +hi def link gdscriptFunctionName Function +hi def link gdscriptBuiltinStruct Typedef +hi def link gdscriptComment Comment +hi def link gdscriptString String +hi def link gdscriptQuotes String +hi def link gdscriptTripleQuotes String +hi def link gdscriptEscape Special +hi def link gdscriptNode PreProc +hi def link gdscriptType Type +hi def link gdscriptNumber Number +hi def link gdscriptBlockStart Special +hi def link gdscriptTodo Todo + + +let b:current_syntax = "gdscript" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/gdshader.vim b/runtime/syntax/gdshader.vim new file mode 100644 index 0000000..f0d9f7e --- /dev/null +++ b/runtime/syntax/gdshader.vim @@ -0,0 +1,57 @@ +" Vim syntax file for Godot shading language +" Language: gdshader +" Maintainer: Maxim Kim +" Filenames: *.gdshader + +if exists("b:current_syntax") + finish +endif + +syn keyword gdshaderConditional if else switch case default +syn keyword gdshaderRepeat for while do +syn keyword gdshaderStatement return discard +syn keyword gdshaderBoolean true false + +syn keyword gdshaderKeyword shader_type render_mode +syn keyword gdshaderKeyword in out inout +syn keyword gdshaderKeyword lowp mediump highp +syn keyword gdshaderKeyword uniform varying const +syn keyword gdshaderKeyword flat smooth + +syn keyword gdshaderType float vec2 vec3 vec4 +syn keyword gdshaderType uint uvec2 uvec3 uvec4 +syn keyword gdshaderType int ivec2 ivec3 ivec4 +syn keyword gdshaderType void bool +syn keyword gdshaderType bvec2 bvec3 bvec4 +syn keyword gdshaderType mat2 mat3 mat4 +syn keyword gdshaderType sampler2D isampler2D usampler2D samplerCube + +syn match gdshaderMember "\v<(\.)@<=[a-z_]+\w*>" +syn match gdshaderBuiltin "\v<[A-Z_]+[A-Z0-9_]*>" +syn match gdshaderFunction "\v<\w*>(\()@=" + +syn match gdshaderNumber "\v<\d+(\.)@!>" +syn match gdshaderFloat "\v<\d*\.\d+(\.)@!>" +syn match gdshaderFloat "\v<\d*\.=\d+(e-=\d+)@=" +syn match gdshaderExponent "\v(\d*\.=\d+)@<=e-=\d+>" + +syn match gdshaderComment "\v//.*$" contains=@Spell +syn region gdshaderComment start="/\*" end="\*/" contains=@Spell +syn keyword gdshaderTodo TODO FIXME XXX NOTE BUG HACK OPTIMIZE containedin=gdshaderComment + +hi def link gdshaderConditional Conditional +hi def link gdshaderRepeat Repeat +hi def link gdshaderStatement Statement +hi def link gdshaderBoolean Boolean +hi def link gdshaderKeyword Keyword +hi def link gdshaderMember Identifier +hi def link gdshaderBuiltin Identifier +hi def link gdshaderFunction Function +hi def link gdshaderType Type +hi def link gdshaderNumber Number +hi def link gdshaderFloat Float +hi def link gdshaderExponent Special +hi def link gdshaderComment Comment +hi def link gdshaderTodo Todo + +let b:current_syntax = "gdshader" diff --git a/runtime/syntax/gedcom.vim b/runtime/syntax/gedcom.vim new file mode 100644 index 0000000..cd09e0f --- /dev/null +++ b/runtime/syntax/gedcom.vim @@ -0,0 +1,53 @@ +" Vim syntax file +" Language: Gedcom +" Maintainer: Paul Johnson (pjcj@transeda.com) +" Version 1.059 - 23rd December 1999 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case match + +syntax keyword gedcom_record ABBR ADDR ADOP ADR1 ADR2 AFN AGE AGNC ALIA ANCE +syntax keyword gedcom_record ANCI ANUL ASSO AUTH BAPL BAPM BARM BASM BIRT BLES +syntax keyword gedcom_record BLOB BURI CALN CAST CAUS CENS CHAN CHAR CHIL CHR +syntax keyword gedcom_record CHRA CITY CONC CONF CONL CONT COPR CORP CREM CTRY +syntax keyword gedcom_record DATA DEAT DESC DESI DEST DIV DIVF DSCR EDUC EMIG +syntax keyword gedcom_record ENDL ENGA EVEN FAM FAMC FAMF FAMS FCOM FILE FORM +syntax keyword gedcom_record GEDC GIVN GRAD HEAD HUSB IDNO IMMI INDI LANG MARB +syntax keyword gedcom_record MARC MARL MARR MARS MEDI NATI NATU NCHI NICK NMR +syntax keyword gedcom_record NOTE NPFX NSFX OBJE OCCU ORDI ORDN PAGE PEDI PHON +syntax keyword gedcom_record PLAC POST PROB PROP PUBL QUAY REFN RELA RELI REPO +syntax keyword gedcom_record RESI RESN RETI RFN RIN ROLE SEX SLGC SLGS SOUR +syntax keyword gedcom_record SPFX SSN STAE STAT SUBM SUBN SURN TEMP TEXT TIME +syntax keyword gedcom_record TITL TRLR TYPE VERS WIFE WILL +syntax keyword gedcom_record DATE nextgroup=gedcom_date +syntax keyword gedcom_record NAME nextgroup=gedcom_name + +syntax case ignore + +syntax region gedcom_id start="@" end="@" oneline contains=gedcom_ii, gedcom_in +syntax match gedcom_ii "\I\+" contained nextgroup=gedcom_in +syntax match gedcom_in "\d\+" contained +syntax region gedcom_name start="" end="$" skipwhite oneline contains=gedcom_cname, gedcom_surname contained +syntax match gedcom_cname "\i\+" contained +syntax match gedcom_surname "/\(\i\|\s\)*/" contained +syntax match gedcom_date "\d\{1,2}\s\+\(jan\|feb\|mar\|apr\|may\|jun\|jul\|aug\|sep\|oct\|nov\|dec\)\s\+\d\+" +syntax match gedcom_date ".*" contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link gedcom_record Statement +hi def link gedcom_id Comment +hi def link gedcom_ii PreProc +hi def link gedcom_in Type +hi def link gedcom_name PreProc +hi def link gedcom_cname Type +hi def link gedcom_surname Identifier +hi def link gedcom_date Constant + + +let b:current_syntax = "gedcom" diff --git a/runtime/syntax/gemtext.vim b/runtime/syntax/gemtext.vim new file mode 100644 index 0000000..8c2bd29 --- /dev/null +++ b/runtime/syntax/gemtext.vim @@ -0,0 +1,24 @@ +" Vim syntax file +" Language: Gemtext markup language +" Maintainer: Suneel Freimuth +" Latest Revision: 2020-11-21 +" Filenames: *.gmi + +if exists('b:current_syntax') + finish +endif + +syntax match Heading /^#\{1,3}.\+$/ +syntax match List /^\* / +syntax match LinkURL /^=>\s*\S\+/ +syntax match Quote /^>.\+/ +syntax region Preformatted start=/^```/ end=/```/ + +highlight default link Heading Special +highlight default link List Statement +highlight default link LinkURL Underlined +highlight default link Quote Constant +highlight default link Preformatted Identifier + +let b:current_syntax = 'gemtext' + diff --git a/runtime/syntax/gift.vim b/runtime/syntax/gift.vim new file mode 100644 index 0000000..3f8d631 --- /dev/null +++ b/runtime/syntax/gift.vim @@ -0,0 +1,216 @@ +" Vim syntax file +" +" Language: Moodle GIFT (General Import Format Template) +" Maintainer: Selim Temizer (http://selimtemizer.com) +" Creation: November 28, 2020 +" Latest Revision: December 21, 2020 +" Note: The order of entities in this file is important! + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + + +setlocal conceallevel=1 + +"----------------------------------------------- +" GIFT entities + +syn match giftS "\~" contained "GIFT special characters +syn match giftS "=" contained +syn match giftS "#" contained +syn match giftS "{" contained +syn match giftS "}" contained +syn match giftS ":" contained + +syn match giftES "\\\~" contained conceal cchar=~ "GIFT escaped special characters +syn match giftES "\\=" contained conceal cchar== +syn match giftES "\\#" contained conceal cchar=# +syn match giftES "\\{" contained conceal cchar={ +syn match giftES "\\}" contained conceal cchar=} +syn match giftES "\\:" contained conceal cchar=: + +syn match giftEN "\\n" contained conceal cchar=n "GIFT escaped newline + +syn match giftFormat "\[html]" contained "GIFT formats +syn match giftFormat "\[plain]" contained +syn match giftFormat "\[moodle]" contained +syn match giftFormat "\[markdown]" contained + +"-------------------------------------------------------- +" HTML entities + +syn match giftH "<" contained "HTML characters that might need to be handled/escaped +syn match giftH ">" contained +syn match giftH "&" contained + +syn match giftEH "<" contained conceal cchar=< "HTML escaped characters +syn match giftEH ">" contained conceal cchar=> +syn match giftEH "&" contained conceal cchar=& +syn match giftEH " " contained conceal cchar=_ + +"------------------------------------------------------- +" Answer components: Feedback and general feedback + +syn match giftFB "#\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|#\|####\|}\)" contained contains=giftF "Feedback block +syn match giftF "#\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|#\|####\|}\)" contained contains=@giftCEF "Feedback + +syn match giftGFB "####\_.\{-}\(\_^\|[^\\]\)\ze}" contained contains=giftGF "General feedback block +syn match giftGF "####\zs\_.\{-}\(\_^\|[^\\]\)\ze}" contained contains=@giftCEF "General feedback + +"------------------------------------------------------ +" Answer components: Other components + +syn keyword giftTF T TRUE F FALSE contained + +syn match giftNum1 "[-+]\=[.0-9]\+" contained "Something matching a number + +syn match giftNum2 "[-+]\=[.0-9]\+\s*:\s*[-+]\=[.0-9]\+" contained contains=giftNum2D "Number with error margin +syn match giftNum2D ":" contained "Associated delimiter + +syn match giftNum3 "[-+]\=[.0-9]\+\s*\.\.\s*[-+]\=[.0-9]\+" contained contains=giftNum3D "Number as min/max range +syn match giftNum3D "\.\." contained "Associated delimiter + +syn match giftWeightB "%-*[0-9]\{1,2}\.\?[0-9]*%" contained contains=giftWeight "Weight block +syn match giftWeight "%\zs-*[0-9]\{1,2}\.\?[0-9]*\ze%" contained "Weight + +"----------------------------------------------------- +" Answer choices + +syn match giftWrongNum "\~\zs\_.\{-}\(\_^\|[^\\]\)\ze\(####\|}\)" contained contains=@giftCEFF "Wrong numeric choice +syn match giftRightNum "=\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=@giftCEFFW,@giftNums "Right numeric choice + +syn match giftWrong "\~\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=@giftCEFFW "Wrong choice +syn match giftRight "=\zs\_.\{-}\(\ze->\|\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)\)" contained contains=@giftCEFFW "Right choice +syn match giftMatchB "->\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=giftMatch "Match choice block +syn match giftMatch "->\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=@giftCE "Match choice + +"---------------------------------------------------- +" Answer + +syn match giftAnswer "{\_.\{-}\(\_^\|[^\\]\)}" contained keepend contains=@giftA "General answer +syn match giftAnswer "{}" contained "Minimal answer + +syn match giftAnswerNum "{\_[[:space:]]*#\_[^#]\_.\{-}\(\_^\|[^\\]\)}" contained keepend contains=@giftANum "Numeric answer +syn match giftAnswerNumD "{\zs\_[[:space:]]*#" contained "Associated delimiter + +"--------------------------------------------------- +" Question + +" The first pattern matches the last question at the end of the file (in case there is no empty line coming after). +" However, it slows down parsing (and especially scrolling up), therefore it is commented out. + +"syn match giftQuestion "[^{[:space:]]\_.\{-}\%$" keepend contains=@giftCEF,giftAnswer,giftAnswerNum + syn match giftQuestion "[^{[:space:]]\_.\{-}\n\(\s*\n\)\+" keepend contains=@giftCEF,giftAnswer,giftAnswerNum + +"-------------------------------------------------- +" Question name + +syn match giftName "::\_.\{-}::" contains=@giftCE,giftNameD "Question name +syn match giftNameD "::" contained "Associated delimiter + +"------------------------------------------------- +" Category + +syn match giftCategoryB "^\s*\$CATEGORY:.*\n\+" contains=giftCategory "Category block +syn match giftCategory "^\s*\$CATEGORY:\zs.*\ze\n" contained "Category + +"------------------------------------------------ +" Comments (may need to be the last entity) + +syn keyword giftTodo FIXME TODO NOTE FIX XXX contained + +syn match giftIdB "\[id:\(\\]\|[^][:cntrl:]]\)\+]" contained contains=giftId "Id block +syn match giftId "\[id:\zs\(\\]\|[^][:cntrl:]]\)\+\ze]" contained "Id + +syn match giftTagB "\[tag:\(\\]\|[^]<>`[:cntrl:]]\)\+]" contained contains=giftTag "Tag block +syn match giftTag "\[tag:\zs\(\\]\|[^]<>`[:cntrl:]]\)\+\ze]" contained "Tag + +syn match giftComment "^\s*//.*" contains=giftTodo,giftIdB,giftTagB + +"----------------------------------------------- +" Clusters + +"Comments and entities (to be escaped) +syn cluster giftCE contains=giftComment,giftS,giftES,giftEN,giftH,giftEH + +"The above plus format +syn cluster giftCEF contains=@giftCE,giftFormat + +"The above plus feedback block +syn cluster giftCEFF contains=@giftCEF,giftFB + +"The above plus weight block +syn cluster giftCEFFW contains=@giftCEFF,giftWeightB + +"Possible numerical representations +syn cluster giftNums contains=giftNum1,giftNum2,giftNum3 + +"Possible contents of answers +syn cluster giftA contains=giftComment,giftTF,giftWrong,giftRight,giftMatchB,giftFB,giftGFB + +"Possible contents of numerical answers +syn cluster giftANum contains=giftAnswerNumD,giftComment,@giftNums,giftWrongNum,giftRightNum,giftFB,giftGFB + +"----------------------------------------------- + +let b:current_syntax = "gift" + +"----------------------------------------------- + +hi Conceal ctermbg=NONE ctermfg=Blue guibg=NONE guifg=Blue +hi Feedback ctermbg=NONE ctermfg=DarkCyan guibg=NONE guifg=DarkCyan +hi GFeedback ctermbg=NONE ctermfg=DarkGreen guibg=NONE guifg=DarkGreen +hi WeightB ctermbg=NONE ctermfg=DarkYellow guibg=NONE guifg=DarkYellow + +"----------------------------------------------- + +hi def link giftS Error +hi def link giftES Conceal +hi def link giftEN Conceal +hi def link giftFormat LineNr + +hi def link giftH Error +hi def link giftEH Conceal + +hi def link giftFB PreProc +hi def link giftF Feedback +hi def link giftGFB Title +hi def link giftGF GFeedback + +hi def link giftTF Question +hi def link giftNum1 Question +hi def link giftNum2 Question +hi def link giftNum2D Special +hi def link giftNum3 Question +hi def link giftNum3D Special +hi def link giftWeightB WeightB +hi def link giftWeight Identifier + +hi def link giftWrongNum Constant +hi def link giftRightNum Question +hi def link giftWrong Constant +hi def link giftRight Question +hi def link giftMatchB ModeMsg +hi def link giftMatch Constant + +hi def link giftAnswer MoreMsg +hi def link giftAnswerNum MoreMsg +hi def link giftAnswerNumD Identifier + +hi def link giftQuestion Identifier + +hi def link giftName PreProc +hi def link giftNameD Directory + +hi def link giftCategoryB LineNr +hi def link giftCategory Directory + +hi def link giftTodo Todo +hi def link giftIdB LineNr +hi def link giftId Title +hi def link giftTagB LineNr +hi def link giftTag Constant +hi def link giftComment Comment diff --git a/runtime/syntax/git.vim b/runtime/syntax/git.vim new file mode 100644 index 0000000..51eb812 --- /dev/null +++ b/runtime/syntax/git.vim @@ -0,0 +1,111 @@ +" Vim syntax file +" Language: generic git output +" Maintainer: Tim Pope +" Last Change: 2023 Dec 28 + +if exists("b:current_syntax") + finish +endif + +syn case match +syn sync minlines=50 + +syn include @gitDiff syntax/diff.vim + +syn region gitHead start=/\%^\%(tag \|tree \|object \)\@=/ end=/^$/ contains=@NoSpell +syn region gitHead start=/\%(^commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ contains=@NoSpell +" git log --oneline +" minimize false positives by verifying contents of buffer +if getline(1) =~# '^\x\{7,\} ' && getline('$') =~# '^\x\{7,\} ' + syn match gitHashAbbrev /^\x\{7,\} \@=/ contains=@NoSpell +elseif getline(1) =~# '^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \x\{7,\} ' + syn match gitHashAbbrev /^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \zs\x\{7,\} \@=/ contains=@NoSpell +endif +" git log --graph +syn region gitGraph start=/\%(^[|\/\\_ ]*\*[|\/\\_ ]\{-\} commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^\%([|\/\\_ ]*$\)\@=/ contains=@NoSpell +" git blame --porcelain +syn region gitHead start=/\%(^\x\{40,\} \d\+ \d\+\%( \d\+\)\=$\)\@=/ end=/^\t\@=/ contains=@NoSpell +" git ls-tree +syn match gitMode /^\d\{6\}\%( \%(blob\|tree\) \x\{4,\}\t\)\@=/ nextgroup=gitType skipwhite contains=@NoSpell +" git ls-files --stage +syn match gitMode /^\d\{6\}\%( \x\{4,\} [0-3]\t\)\@=/ nextgroup=gitHashStage skipwhite contains=@NoSpell +" .git/HEAD, .git/refs/ +syn match gitKeyword /\%^ref: \@=/ nextgroup=gitReference skipwhite contains=@NoSpell +syn match gitHash /\%^\x\{40,}\%$/ skipwhite contains=@NoSpell +" .git/logs/ +syn match gitReflog /^\x\{40,\} \x\{40,\} .\{-\}\d\+\s-\d\{4\}\t.*/ skipwhite contains=@NoSpell,gitReflogOld + +syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold +syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff + +syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold +syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff +syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge +syn match gitDiffAdded "{+[^}]*+}" contained containedin=gitDiff +syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge +syn match gitDiffRemoved "\[-[^]]*-\]" contained containedin=gitDiff + +syn match gitKeyword /^commit \@=/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitKeyword /^\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitHead nextgroup=gitHash skipwhite contains=@NoSpell +syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitIdentityKeyword /^\%(author\|committer\|tagger\) \@=/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell +syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell +syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite contains=@NoSpell + +syn match gitKeyword /^[*|\/\\_ ]\+\zscommit \@=/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitKeyword /^[|\/\\_ ]\+\zs\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitGraph nextgroup=gitHash skipwhite contains=@NoSpell +syn match gitKeyword /^[|\/\\_ ]\+\zsMerge:/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitIdentityKeyword /^[|\/\\_ ]\+\zs\%(author\|committer\|tagger\) \@=/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell +syn match gitIdentityHeader /^[|\/\\_ ]\+\zs\%(Author\|Commit\|Tagger\):/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell +syn match gitDateHeader /^[|\/\\_ ]\+\zs\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitGraph nextgroup=gitDate skipwhite contains=@NoSpell + +syn match gitKeyword /^type \@=/ contained containedin=gitHead nextgroup=gitType skipwhite contains=@NoSpell +syn match gitKeyword /^\%(summary\|boundary\|filename\|\%(author\|committer\)-\%(time\|tz\)\) \@=/ contained containedin=gitHead skipwhite contains=@NoSpell +syn match gitKeyword /^tag \@=/ contained containedin=gitHead nextgroup=gitReference skipwhite contains=@NoSpell +syn match gitIdentityKeyword /^\%(author\|committer\)-mail \@=/ contained containedin=gitHead nextgroup=gitEmail skipwhite contains=@NoSpell +syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite contains=@NoSpell +syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite contains=@NoSpell +syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity contains=@NoSpell + +syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite contains=@NoSpell +syn region gitEmail matchgroup=gitEmailDelimiter start=// keepend oneline contained containedin=gitIdentity contains=@NoSpell +syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained contains=@NoSpell +syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained contains=@NoSpell +syn match gitDate /\<\d\+ \l\+ ago\>/ contained contains=@NoSpell +syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitReference /\S\+\S\@!/ contained contains=@NoSpell +syn match gitHash /\<\x\{40,\}\>/ contained nextgroup=gitIdentity,gitHash skipwhite contains=@NoSpell +syn match gitReflogOld /^\x\{40,\} \@=/ contained nextgroup=gitReflogNew skipwhite contains=@NoSpell +syn match gitReflogNew /\<\x\{40,\} \@=/ contained nextgroup=gitIdentity skipwhite contains=@NoSpell +syn match gitHashAbbrev /\<\x\{4,\}\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell +syn match gitHashStage /\<\x\{4,\}\>/ contained nextgroup=gitStage skipwhite contains=@NoSpell +syn match gitStage /\<\d\t\@=/ contained contains=@NoSpell + + +syn match gitNotesHeader /^Notes:\ze\n / + +hi def link gitDateHeader gitIdentityHeader +hi def link gitIdentityHeader gitIdentityKeyword +hi def link gitIdentityKeyword Label +hi def link gitNotesHeader gitKeyword +hi def link gitReflogHeader gitKeyword +hi def link gitKeyword Keyword +hi def link gitIdentity String +hi def link gitEmailDelimiter Delimiter +hi def link gitEmail Special +hi def link gitDate Number +hi def link gitMode Number +hi def link gitHashStage gitHash +hi def link gitHashAbbrev gitHash +hi def link gitReflogOld gitHash +hi def link gitReflogNew gitHash +hi def link gitHash Identifier +hi def link gitReflogMiddle gitReference +hi def link gitReference Function +hi def link gitStage gitType +hi def link gitType Type +hi def link gitDiffAdded diffAdded +hi def link gitDiffRemoved diffRemoved + +let b:current_syntax = "git" diff --git a/runtime/syntax/gitattributes.vim b/runtime/syntax/gitattributes.vim new file mode 100644 index 0000000..b6d997f --- /dev/null +++ b/runtime/syntax/gitattributes.vim @@ -0,0 +1,63 @@ +" Vim syntax file +" Language: git attributes +" Maintainer: ObserverOfTime +" Filenames: .gitattributes, *.git/info/attributes +" Last Change: 2022 Sep 09 + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +" Comment +syn keyword gitattributesTodo contained TODO FIXME XXX +syn match gitattributesComment /^\s*#.*/ contains=gitattributesTodo + +" Pattern +syn match gitattributesPattern /^\s*#\@!\(".\+"\|\S\+\)/ skipwhite + \ nextgroup=gitattributesAttrPrefixed,gitattributesAttrAssigned skipwhite + \ contains=gitattributesGlob,gitattributesRange,gitattributesSeparator +syn match gitattributesGlob /\\\@1 +" Filenames: *.git/COMMIT_EDITMSG +" Last Change: 2023 Dec 28 + +if exists("b:current_syntax") + finish +endif + +scriptencoding utf-8 + +syn case match +syn sync minlines=50 +syn sync linebreaks=1 + +if has("spell") + syn spell toplevel +endif + +syn include @gitcommitDiff syntax/diff.vim +syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@gitcommitDiff + +if get(g:, 'gitcommit_summary_length') < 0 + syn match gitcommitSummary "^.*$" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell +elseif get(g:, 'gitcommit_summary_length', 1) > 0 + exe 'syn match gitcommitSummary "^.*\%<' . (get(g:, 'gitcommit_summary_length', 50) + 1) . 'v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell' +endif +syn match gitcommitOverflow ".*" contained contains=@Spell +syn match gitcommitBlank "^.\+" contained contains=@Spell +syn match gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank,gitcommitComment skipnl + +let s:scissors = 0 +let s:l = search('^[#;@!$%^&|:] -\{24,\} >8 -\{24,\}$', 'cnW', '', 100) +if s:l == 0 + let s:l = line('$') +elseif getline(s:l)[0] !=# getline(s:l - 1)[0] + let s:scissors = 1 +endif +let s:comment = escape((matchstr(getline(s:l), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/') + +if s:scissors + let s:comment .= ' -\{24,\} >8 -\{24,\}$' + exe 'syn region gitcommitComment start="^' . s:comment . '" end="\%$" contains=gitcommitDiff' +else + exe 'syn match gitcommitComment "^' . s:comment . '.*"' +endif +exe 'syn match gitcommitTrailers "\n\@<=\n\%([[:alnum:]-]\+\s*:.*\|(cherry picked from commit .*\)\%(\n\s.*\|\n[[:alnum:]-]\+\s*:.*\|\n(cherry picked from commit .*\)*\%(\n\n*\%(' . s:comment . '\)\|\n*\%$\)\@="' + +unlet s:l s:comment s:scissors + +syn match gitcommitTrailerToken "^[[:alnum:]-]\+\s*:" contained containedin=gitcommitTrailers + +syn match gitcommitHash "\<\x\{40,}\>" contains=@NoSpell display +syn match gitcommitOnBranch "\%(^. \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite +syn match gitcommitOnBranch "\%(^. \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite +syn match gitcommitBranch "[^ ']\+" contained +syn match gitcommitNoBranch "\%(^. \)\@<=Not currently on any branch." contained containedin=gitcommitComment +syn match gitcommitHeader "\%(^. \)\@<=\S.*[::]\%(\n^$\)\@!$" contained containedin=gitcommitComment +syn region gitcommitAuthor matchgroup=gitCommitHeader start=/\%(^. \)\@<=\%(Author\|Committer\|Date\):/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent +syn match gitcommitHeader "\%(^. \)\@<=commit\%( \x\{40,\}$\)\@=" contained containedin=gitcommitComment nextgroup=gitcommitHash skipwhite +syn match gitcommitNoChanges "\%(^. \)\@<=No changes$" contained containedin=gitcommitComment + +syn match gitcommitType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained containedin=gitcommitComment nextgroup=gitcommitFile skipwhite +syn match gitcommitFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitArrow +syn match gitcommitArrow " -> " contained nextgroup=gitcommitFile +syn match gitcommitUntrackedFile "\%(^.\t\)\@<=[^::/]*\%(/.*\)\=$" contained containedin=gitcommitComment + +syn region gitcommitUntracked start=/^\z(.\) Untracked files:$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader containedin=gitcommitComment containedin=gitcommitComment contained transparent fold +syn region gitcommitDiscarded start=/^\z(.\) Change\%(s not staged for commit\|d but not updated\):$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader,gitcommitDiscardedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold +syn region gitcommitSelected start=/^\z(.\) Changes to be committed:$/ end=/^\z1$\|^\z1\@!/ contains=gitcommitHeader,gitcommitSelectedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold +syn region gitcommitUnmerged start=/^\z(.\) Unmerged paths:$/ end=/^\z1\=$\|^\z1\@!/ contains=gitcommitHeader,gitcommitUnmergedType containedin=gitcommitComment containedin=gitcommitComment contained transparent fold + +syn match gitcommitUntrackedFile "\%(^.\t\)\@<=.*" contained containedin=gitcommitUntracked + +syn match gitcommitDiscardedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitDiscardedFile skipwhite +syn match gitcommitSelectedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitSelectedFile skipwhite +syn match gitcommitUnmergedType "\%(^.\t\)\@<=[^[:punct:][:space:]][^/::]*[^[:punct:][:space:]][::]\ze "he=e-1 contained nextgroup=gitcommitUnmergedFile skipwhite +syn match gitcommitDiscardedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow +syn match gitcommitSelectedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow +syn match gitcommitUnmergedFile "\S.\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitUnmergedArrow +syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile +syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile +syn match gitcommitUnmergedArrow " -> " contained nextgroup=gitcommitUnmergedFile + +hi def link gitcommitSummary Keyword +hi def link gitcommitTrailerToken Label +hi def link gitcommitComment Comment +hi def link gitcommitHash Identifier +hi def link gitcommitOnBranch Comment +hi def link gitcommitBranch Special +hi def link gitcommitNoBranch gitCommitBranch +hi def link gitcommitDiscardedType gitcommitType +hi def link gitcommitSelectedType gitcommitType +hi def link gitcommitUnmergedType gitcommitType +hi def link gitcommitType Type +hi def link gitcommitNoChanges gitcommitHeader +hi def link gitcommitHeader PreProc +hi def link gitcommitUntrackedFile gitcommitFile +hi def link gitcommitDiscardedFile gitcommitFile +hi def link gitcommitSelectedFile gitcommitFile +hi def link gitcommitUnmergedFile gitcommitFile +hi def link gitcommitFile Constant +hi def link gitcommitDiscardedArrow gitcommitArrow +hi def link gitcommitSelectedArrow gitcommitArrow +hi def link gitcommitUnmergedArrow gitcommitArrow +hi def link gitcommitArrow gitcommitComment +"hi def link gitcommitOverflow Error +hi def link gitcommitBlank Error + +let b:current_syntax = "gitcommit" diff --git a/runtime/syntax/gitconfig.vim b/runtime/syntax/gitconfig.vim new file mode 100644 index 0000000..e5eaf10 --- /dev/null +++ b/runtime/syntax/gitconfig.vim @@ -0,0 +1,36 @@ +" Vim syntax file +" Language: git config file +" Maintainer: Tim Pope +" Filenames: gitconfig, .gitconfig, *.git/config +" Last Change: 2019 Dec 05 + +if exists("b:current_syntax") + finish +endif + +syn case ignore +syn sync minlines=10 + +syn match gitconfigComment "[#;].*" contains=@Spell +syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]" +syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]' +syn match gitconfigVariable "\%(^\s*\)\@<=\a[a-z0-9-]*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite +syn region gitconfigAssignment matchgroup=gitconfigNone start=+=\s*+ skip=+\\+ end=+\s*$+ contained contains=gitconfigBoolean,gitconfigNumber,gitConfigString,gitConfigEscape,gitConfigError,gitconfigComment keepend +syn keyword gitconfigBoolean true false yes no contained +syn match gitconfigNumber "\<\d\+\>" contained +syn region gitconfigString matchgroup=gitconfigDelim start=+"+ skip=+\\+ end=+"+ matchgroup=gitconfigError end=+[^\\"]\%#\@!$+ contained contains=gitconfigEscape,gitconfigEscapeError +syn match gitconfigError +\\.+ contained +syn match gitconfigEscape +\\[\\"ntb]+ contained +syn match gitconfigEscape +\\$+ contained + +hi def link gitconfigComment Comment +hi def link gitconfigSection Keyword +hi def link gitconfigVariable Identifier +hi def link gitconfigBoolean Boolean +hi def link gitconfigNumber Number +hi def link gitconfigString String +hi def link gitconfigDelim Delimiter +hi def link gitconfigEscape Special +hi def link gitconfigError Error + +let b:current_syntax = "gitconfig" diff --git a/runtime/syntax/gitignore.vim b/runtime/syntax/gitignore.vim new file mode 100644 index 0000000..8e6d098 --- /dev/null +++ b/runtime/syntax/gitignore.vim @@ -0,0 +1,29 @@ +" Vim syntax file +" Language: git ignore +" Maintainer: ObserverOfTime +" Filenames: .gitignore, *.git/info/exclude +" Last Change: 2022 Sep 10 + +if exists('b:current_syntax') + finish +endif + +" Comment +syn keyword gitignoreTodo contained TODO FIXME XXX +syn match gitignoreComment /^#.*/ contains=gitignoreTodo + +" Pattern +syn match gitignorePattern /^#\@!.*$/ contains=gitignoreNegation,gitignoreGlob,gitignoreRange,gitignoreSeparator +syn match gitignoreNegation /^!/ contained +syn match gitignoreGlob /\\\@1 +" (former Maintainer: Teemu Matilainen ) +" Last Change: 2017 Oct 05 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" this seems to be the best way, for now. +syntax sync fromstart + +" ---- common stuff + +syn match gitoliteGroup '@\S\+' + +syn match gitoliteComment '#.*' contains=gitoliteTodo +syn keyword gitoliteTodo TODO FIXME XXX NOT contained + +" ---- main section + +" catch template-data syntax appearing outside template-data section +syn match gitoliteRepoError '^\s*repo.*=' +syn match gitoliteRepoError '^\s*\S\+\s*=' " this gets overridden later when first word is a perm, don't worry + +" normal gitolite group and repo lines +syn match gitoliteGroupLine '^\s*@\S\+\s*=\s*\S.*$' contains=gitoliteGroup,gitoliteComment +syn match gitoliteRepoLine '^\s*repo\s\+[^=]*$' contains=gitoliteRepo,gitoliteGroup,gitoliteComment +syn keyword gitoliteRepo repo contained + +syn keyword gitoliteSpecialRepo CREATOR + +" normal gitolite rule lines +syn match gitoliteRuleLine '^\s*\(-\|C\|R\|RW+\?C\?D\?\)\s[^#]*' contains=gitoliteRule,gitoliteCreateRule,gitoliteDenyRule,gitoliteRefex,gitoliteUsers,gitoliteGroup +syn match gitoliteRule '\(^\s*\)\@<=\(-\|C\|R\|RW+\?C\?D\?\)\s\@=' contained +syn match gitoliteRefex '\(^\s*\(-\|R\|RW+\?C\?D\?\)\s\+\)\@<=\S.\{-}\(\s*=\)\@=' contains=gitoliteSpecialRefex +syn match gitoliteSpecialRefex 'NAME/' +syn match gitoliteSpecialRefex '/USER/' +syn match gitoliteCreateRule '\(^\s*C\s.*=\s*\)\@<=\S[^#]*[^# ]' contained contains=gitoliteGroup +syn match gitoliteDenyRule '\(^\s*-\s.*=\s*\)\@<=\S[^#]*[^# ]' contained + +" normal gitolite config (and similar) lines +syn match gitoliteConfigLine '^\s*\(config\|option\|include\|subconf\)\s[^#]*' contains=gitoliteConfigKW,gitoliteConfigKey,gitoliteConfigVal,gitoliteComment +syn keyword gitoliteConfigKW config option include subconf contained +syn match gitoliteConfigKey '\(\(config\|option\)\s\+\)\@<=[^ =]*' contained +syn match gitoliteConfigVal '\(=\s*\)\@<=\S.*' contained + +" ---- template-data section + +syn region gitoliteTemplateLine matchgroup=PreProc start='^=begin template-data$' end='^=end$' contains=gitoliteTplRepoLine,gitoliteTplRoleLine,gitoliteGroup,gitoliteComment,gitoliteTplError + +syn match gitoliteTplRepoLine '^\s*repo\s\+\S.*=.*' contained contains=gitoliteTplRepo,gitoliteTplTemplates,gitoliteGroup +syn keyword gitoliteTplRepo repo contained +syn match gitoliteTplTemplates '\(=\s*\)\@<=\S.*' contained contains=gitoliteGroup,gitoliteComment + +syn match gitoliteTplRoleLine '^\s*\S\+\s*=\s*.*' contained contains=gitoliteTplRole,gitoliteGroup,gitoliteComment +syn match gitoliteTplRole '\S\+\s*='he=e-1 contained + +" catch normal gitolite rules appearing in template-data section +syn match gitoliteTplError '^\s*repo[^=]*$' contained +syn match gitoliteTplError '^\s*\(-\|R\|RW+\?C\?D\?\)\s'he=e-1 contained +syn match gitoliteTplError '^\s*\(config\|option\|include\|subconf\)\s'he=e-1 contained +syn match gitoliteTplError '^\s*@\S\+\s*=' contained contains=NONE + +hi def link gitoliteGroup Identifier +hi def link gitoliteComment Comment +hi def link gitoliteTodo ToDo +hi def link gitoliteRepoError Error +hi def link gitoliteGroupLine PreProc +hi def link gitoliteRepo Keyword +hi def link gitoliteSpecialRepo PreProc +hi def link gitoliteRule Keyword +hi def link gitoliteCreateRule PreProc +hi def link gitoliteDenyRule WarningMsg +hi def link gitoliteRefex Constant +hi def link gitoliteSpecialRefex PreProc +hi def link gitoliteConfigKW Keyword +hi def link gitoliteConfigKey Identifier +hi def link gitoliteConfigVal String +hi def link gitoliteTplRepo Keyword +hi def link gitoliteTplTemplates Constant +hi def link gitoliteTplRole Constant +hi def link gitoliteTplError Error + +let b:current_syntax = "gitolite" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/gitrebase.vim b/runtime/syntax/gitrebase.vim new file mode 100644 index 0000000..13f157b --- /dev/null +++ b/runtime/syntax/gitrebase.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: git rebase --interactive +" Maintainer: Tim Pope +" Filenames: git-rebase-todo +" Last Change: 2022 Jan 05 + +if exists("b:current_syntax") + finish +endif + +syn case match + +let s:c = escape((matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/') + +syn match gitrebaseHash "\v<\x{7,}>" contained contains=@NoSpell +syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite contains=@NoSpell +syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite +syn match gitrebaseBreak "\v^b%(reak)=>" +syn match gitrebaseDrop "\v^d%(rop)=>" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseNoop "\v^noop>" +syn match gitrebaseMerge "\v^m(erge)=>" nextgroup=gitrebaseMergeOption,gitrebaseName skipwhite +syn match gitrebaseLabel "\v^l(abel)=>" nextgroup=gitrebaseName skipwhite +syn match gitrebaseReset "\v^(t|reset)=>" nextgroup=gitrebaseName skipwhite +syn match gitrebaseSummary ".*" contains=gitrebaseHash contained +syn match gitrebaseCommand ".*" contained +exe 'syn match gitrebaseComment " \@<=' . s:c . ' empty$" containedin=gitrebaseSummary contained' +exe 'syn match gitrebaseComment "^\s*' . s:c . '.*" contains=gitrebaseHash' +syn match gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite +syn match gitrebaseMergeOption "\v-[Cc]>" nextgroup=gitrebaseMergeCommit skipwhite contained +syn match gitrebaseMergeCommit "\v<\x{7,}>" nextgroup=gitrebaseName skipwhite contained +syn match gitrebaseName "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained +exe 'syn match gitrebaseMergeComment "' . s:c . '" nextgroup=gitrebaseSummary skipwhite contained' + +unlet s:c + +hi def link gitrebaseCommit gitrebaseHash +hi def link gitrebaseHash Identifier +hi def link gitrebasePick Type +hi def link gitrebaseReword Conditional +hi def link gitrebaseEdit PreProc +hi def link gitrebaseSquash Statement +hi def link gitrebaseFixup Repeat +hi def link gitrebaseExec Operator +hi def link gitrebaseBreak Macro +hi def link gitrebaseDrop Comment +hi def link gitrebaseNoop Comment +hi def link gitrebaseMerge Exception +hi def link gitrebaseLabel Label +hi def link gitrebaseReset Keyword +hi def link gitrebaseSummary String +hi def link gitrebaseComment Comment +hi def link gitrebaseSquashError Error +hi def link gitrebaseMergeCommit gitrebaseCommit +hi def link gitrebaseMergeComment gitrebaseComment +hi def link gitrebaseName Tag + +let b:current_syntax = "gitrebase" diff --git a/runtime/syntax/gitsendemail.vim b/runtime/syntax/gitsendemail.vim new file mode 100644 index 0000000..8fdf683 --- /dev/null +++ b/runtime/syntax/gitsendemail.vim @@ -0,0 +1,23 @@ +" Vim syntax file +" Language: git send-email message +" Maintainer: Tim Pope +" Filenames: .gitsendemail.* +" Last Change: 2016 Aug 29 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/mail.vim +unlet! b:current_syntax +syn include @gitsendemailDiff syntax/diff.vim +syn region gitsendemailDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^-- %/ fold contains=@gitsendemailDiff + +syn case match + +syn match gitsendemailComment "\%^From.*#.*" +syn match gitsendemailComment "^GIT:.*" + +hi def link gitsendemailComment Comment + +let b:current_syntax = "gitsendemail" diff --git a/runtime/syntax/gkrellmrc.vim b/runtime/syntax/gkrellmrc.vim new file mode 100644 index 0000000..f005ca2 --- /dev/null +++ b/runtime/syntax/gkrellmrc.vim @@ -0,0 +1,75 @@ +" Vim syntax file +" This is a GENERATED FILE. Please always refer to source file at the URI below. +" Language: gkrellm theme files `gkrellmrc' +" Maintainer: David Ne\v{c}as (Yeti) +" Last Change: 2003-04-30 +" URL: http://trific.ath.cx/Ftp/vim/syntax/gkrellmrc.vim + +" Setup +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=_,-,a-z,A-Z,48-57 + +syn case match + +" Base constructs +syn match gkrellmrcComment "#.*$" contains=gkrellmrcFixme +syn keyword gkrellmrcFixme FIXME TODO XXX NOT contained +syn region gkrellmrcString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline +syn match gkrellmrcNumber "^-\=\(\d\+\)\=\.\=\d\+" +syn match gkrellmrcNumber "\W-\=\(\d\+\)\=\.\=\d\+"lc=1 +syn keyword gkrellmrcConstant none +syn match gkrellmrcRGBColor "#\(\x\{12}\|\x\{9}\|\x\{6}\|\x\{3}\)\>" + +" Keywords +syn keyword gkrellmrcBuiltinExt cpu_nice_color cpu_nice_grid_color krell_depth krell_expand krell_left_margin krell_right_margin krell_x_hot krell_yoff mem_krell_buffers_depth mem_krell_buffers_expand mem_krell_buffers_x_hot mem_krell_buffers_yoff mem_krell_cache_depth mem_krell_cache_expand mem_krell_cache_x_hot mem_krell_cache_yoff sensors_bg_volt timer_bg_timer +syn keyword gkrellmrcGlobal allow_scaling author chart_width_ref theme_alternatives +syn keyword gkrellmrcSetCmd set_image_border set_integer set_string +syn keyword gkrellmrcGlobal bg_slider_meter_border bg_slider_panel_border +syn keyword gkrellmrcGlobal frame_bottom_height frame_left_width frame_right_width frame_top_height frame_left_chart_overlap frame_right_chart_overlap frame_left_panel_overlap frame_right_panel_overlap frame_left_spacer_overlap frame_right_spacer_overlap spacer_overlap_off cap_images_off +syn keyword gkrellmrcGlobal frame_bottom_border frame_left_border frame_right_border frame_top_border spacer_top_border spacer_bottom_border frame_left_chart_border frame_right_chart_border frame_left_panel_border frame_right_panel_border +syn keyword gkrellmrcGlobal chart_in_color chart_in_color_grid chart_out_color chart_out_color_grid +syn keyword gkrellmrcGlobal bg_separator_height bg_grid_mode +syn keyword gkrellmrcGlobal rx_led_x rx_led_y tx_led_x tx_led_y +syn keyword gkrellmrcGlobal decal_mail_frames decal_mail_delay +syn keyword gkrellmrcGlobal decal_alarm_frames decal_warn_frames +syn keyword gkrellmrcGlobal krell_slider_depth krell_slider_expand krell_slider_x_hot +syn keyword gkrellmrcGlobal button_panel_border button_meter_border +syn keyword gkrellmrcGlobal large_font normal_font small_font +syn keyword gkrellmrcGlobal spacer_bottom_height spacer_top_height spacer_bottom_height_chart spacer_top_height_chart spacer_bottom_height_meter spacer_top_height_meter +syn keyword gkrellmrcExpandMode left right bar-mode left-scaled right-scaled bar-mode-scaled +syn keyword gkrellmrcMeterName apm cal clock fs host mail mem swap timer sensors uptime +syn keyword gkrellmrcChartName cpu proc disk inet and net +syn match gkrellmrcSpecialClassName "\*" +syn keyword gkrellmrcStyleCmd StyleMeter StyleChart StylePanel +syn keyword gkrellmrcStyleItem textcolor alt_textcolor font alt_font transparency border label_position margin margins left_margin right_margin top_margin bottom_margin krell_depth krell_yoff krell_x_hot krell_expand krell_left_margin krell_right_margin + +" Define the default highlighting + +hi def link gkrellmrcComment Comment +hi def link gkrellmrcFixme Todo + +hi def link gkrellmrcString gkrellmrcConstant +hi def link gkrellmrcNumber gkrellmrcConstant +hi def link gkrellmrcRGBColor gkrellmrcConstant +hi def link gkrellmrcExpandMode gkrellmrcConstant +hi def link gkrellmrcConstant Constant + +hi def link gkrellmrcMeterName gkrellmrcClass +hi def link gkrellmrcChartName gkrellmrcClass +hi def link gkrellmrcSpecialClassName gkrellmrcClass +hi def link gkrellmrcClass Type + +hi def link gkrellmrcGlobal gkrellmrcItem +hi def link gkrellmrcBuiltinExt gkrellmrcItem +hi def link gkrellmrcStyleItem gkrellmrcItem +hi def link gkrellmrcItem Function + +hi def link gkrellmrcSetCmd Special +hi def link gkrellmrcStyleCmd Statement + + +let b:current_syntax = "gkrellmrc" diff --git a/runtime/syntax/gnash.vim b/runtime/syntax/gnash.vim new file mode 100644 index 0000000..cce522d --- /dev/null +++ b/runtime/syntax/gnash.vim @@ -0,0 +1,96 @@ +" Vim syntax file +" Maintainer: Thilo Six +" Contact: +" http://www.vim.org/maillist.php#vim-dev +" +" Description: highlight gnash configuration files +" http://www.gnu.org/software/gnash/manual/gnashuser.html#gnashrc +" File: runtime/syntax/gnash.vim +" Last Change: 2012 May 19 +" Modeline: vim: ts=8:sw=2:sts=2: +" +" Credits: derived from Nikolai Weibulls readline.vim +" +" License: VIM License +" Vim is Charityware, see ":help Uganda" +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") || &compatible + finish +endif + +syn case match +syn keyword GnashTodo contained TODO FIXME XXX NOTE + +" Comments +syn match GnashComment "^#.*$" contains=@Spell,GnashTodo +syn match GnashComment "\s#.*$" contains=@Spell,GnashTodo + +syn match GnashNumber display '\<\d\+\>' + +syn case ignore +syn keyword GnashOn ON YES TRUE +syn keyword GnashOff OFF NO FALSE + +syn match GnashSet '^\s*set\>' +syn match GnashSet '^\s*append\>' + +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' +syn match GnashKeyword '\' + +hi def link GnashOn Identifier +hi def link GnashOff Preproc +hi def link GnashComment Comment +hi def link GnashTodo Todo +hi def link GnashNumber Type +hi def link GnashSet String +hi def link GnashKeyword Keyword + +let b:current_syntax = "gnash" + diff --git a/runtime/syntax/gnuplot.vim b/runtime/syntax/gnuplot.vim new file mode 100644 index 0000000..b5092d7 --- /dev/null +++ b/runtime/syntax/gnuplot.vim @@ -0,0 +1,549 @@ +" Vim syntax file +" Language: gnuplot 4.7.0 +" Maintainer: Josh Wainwright +" Last Maintainer: Andrew Rasmussen andyras@users.sourceforge.net +" Original Maintainer: John Hoelzel johnh51@users.sourceforge.net +" Last Change: 2021 Nov 16 +" additional changes from PR #8949 +" Filenames: *.gnu *.plt *.gpi *.gih *.gp *.gnuplot scripts: #!*gnuplot +" URL: http://www.vim.org/scripts/script.php?script_id=4873 +" Original URL: http://johnh51.get.to/vim/syntax/gnuplot.vim + +" thanks to "David Necas (Yeti)" + +" credit also to Jim Eberle +" for the script http://www.vim.org/scripts/script.php?script_id=1737 + +" some shortened names to make demo files look clean... jeh. 11/2000 +" demos -> 3.8i ... jeh. 5/2003 - a work in progress... +" added current commands, keywords, variables, todos, macros... amr 2014-02-24 + +" For vim version 5.x: Clear all syntax items +" For vim version 6.x: Quit when a syntax file was already loaded + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" ---- Special characters ---- " + +" no harm in just matching any \[char] within double quotes, right? +syn match gnuplotSpecial "\\." contained +" syn match gnuplotSpecial "\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[a-z\\]" contained + +" measurements in the units in, cm and pt are special +syn match gnuplotUnit "\d+in" +syn match gnuplotUnit "\d+cm" +syn match gnuplotUnit "\d+pt" + +" external (shell) commands are special +syn region gnuplotExternal start="^\s*!" end="$" + +" ---- Comments ---- " + +syn region gnuplotComment start="#" end="$" contains=gnuplotTodo,@Spell + +" ---- Constants ---- " + +" strings +syn region gnuplotString start=+"+ skip=+\\"+ end=+"+ contains=gnuplotSpecial,@Spell +syn region gnuplotString start="'" end="'" contains=@Spell + +" built-in variables +syn keyword gnuplotNumber GNUTERM GPVAL_TERM GPVAL_TERMOPTIONS GPVAL_SPLOT +syn keyword gnuplotNumber GPVAL_OUTPUT GPVAL_ENCODING GPVAL_VERSION +syn keyword gnuplotNumber GPVAL_PATCHLEVEL GPVAL_COMPILE_OPTIONS +syn keyword gnuplotNumber GPVAL_MULTIPLOT GPVAL_PLOT GPVAL_VIEW_ZSCALE +syn keyword gnuplotNumber GPVAL_TERMINALS GPVAL_pi GPVAL_NaN +syn keyword gnuplotNumber GPVAL_ERRNO GPVAL_ERRMSG GPVAL_PWD +syn keyword gnuplotNumber pi NaN GPVAL_LAST_PLOT GPVAL_TERM_WINDOWID +syn keyword gnuplotNumber GPVAL_X_MIN GPVAL_X_MAX GPVAL_X_LOG +syn keyword gnuplotNumber GPVAL_DATA_X_MIN GPVAL_DATA_X_MAX GPVAL_Y_MIN +syn keyword gnuplotNumber GPVAL_Y_MAX GPVAL_Y_LOG GPVAL_DATA_Y_MIN +syn keyword gnuplotNumber GPVAL_DATA_Y_MAX GPVAL_X2_MIN GPVAL_X2_MAX +syn keyword gnuplotNumber GPVAL_X2_LOG GPVAL_DATA_X2_MIN GPVAL_DATA_X2_MAX +syn keyword gnuplotNumber GPVAL_Y2_MIN GPVAL_Y2_MAX GPVAL_Y2_LOG +syn keyword gnuplotNumber GPVAL_DATA_Y2_MIN GPVAL_DATA_Y2_MAX GPVAL_Z_MIN +syn keyword gnuplotNumber GPVAL_Z_MAX GPVAL_Z_LOG GPVAL_DATA_Z_MIN +syn keyword gnuplotNumber GPVAL_DATA_Z_MAX GPVAL_CB_MIN GPVAL_CB_MAX +syn keyword gnuplotNumber GPVAL_CB_LOG GPVAL_DATA_CB_MIN GPVAL_DATA_CB_MAX +syn keyword gnuplotNumber GPVAL_T_MIN GPVAL_T_MAX GPVAL_T_LOG GPVAL_U_MIN +syn keyword gnuplotNumber GPVAL_U_MAX GPVAL_U_LOG GPVAL_V_MIN GPVAL_V_MAX +syn keyword gnuplotNumber GPVAL_V_LOG GPVAL_R_MIN GPVAL_R_LOG +syn keyword gnuplotNumber GPVAL_TERM_XMIN GPVAL_TERM_XMAX GPVAL_TERM_YMIN +syn keyword gnuplotNumber GPVAL_TERM_YMAX GPVAL_TERM_XSIZE +syn keyword gnuplotNumber GPVAL_TERM_YSIZE GPVAL_VIEW_MAP GPVAL_VIEW_ROT_X +syn keyword gnuplotNumber GPVAL_VIEW_ROT_Z GPVAL_VIEW_SCALE + +" function name variables +syn match gnuplotNumber "GPFUN_\h*" + +" stats variables +syn keyword gnuplotNumber STATS_records STATS_outofrange STATS_invalid +syn keyword gnuplotNumber STATS_blank STATS_blocks STATS_columns STATS_min +syn keyword gnuplotNumber STATS_max STATS_index_min STATS_index_max +syn keyword gnuplotNumber STATS_lo_quartile STATS_median STATS_up_quartile +syn keyword gnuplotNumber STATS_mean STATS_stddev STATS_sum STATS_sumsq +syn keyword gnuplotNumber STATS_correlation STATS_slope STATS_intercept +syn keyword gnuplotNumber STATS_sumxy STATS_pos_min_y STATS_pos_max_y +syn keyword gnuplotNumber STATS_mean STATS_stddev STATS_mean_x STATS_sum_x +syn keyword gnuplotNumber STATS_stddev_x STATS_sumsq_x STATS_min_x +syn keyword gnuplotNumber STATS_max_x STATS_median_x STATS_lo_quartile_x +syn keyword gnuplotNumber STATS_up_quartile_x STATS_index_min_x +syn keyword gnuplotNumber STATS_index_max_x STATS_mean_y STATS_stddev_y +syn keyword gnuplotNumber STATS_sum_y STATS_sumsq_y STATS_min_y +syn keyword gnuplotNumber STATS_max_y STATS_median_y STATS_lo_quartile_y +syn keyword gnuplotNumber STATS_up_quartile_y STATS_index_min_y +syn keyword gnuplotNumber STATS_index_max_y STATS_correlation STATS_sumxy + +" deprecated fit variables +syn keyword gnuplotError FIT_LIMIT FIT_MAXITER FIT_START_LAMBDA +syn keyword gnuplotError FIT_LAMBDA_FACTOR FIT_LOG FIT_SCRIPT + +" numbers, from c.vim + +" integer number, or floating point number without a dot and with "f". +syn case ignore +syn match gnuplotNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" + +" floating point number, with dot, optional exponent +syn match gnuplotFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" + +" floating point number, starting with a dot, optional exponent +syn match gnuplotFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" + +" floating point number, without dot, with exponent +syn match gnuplotFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" + +" hex number +syn match gnuplotNumber "\<0x\x\+\(u\=l\=\|lu\)\>" +syn case match + +" flag an octal number with wrong digits by not highlighting +syn match gnuplotOctalError "\<0\o*[89]" + +" ---- Identifiers: Functions ---- " + +" numerical functions +syn keyword gnuplotFunc abs acos acosh airy arg asin asinh atan atan2 +syn keyword gnuplotFunc atanh EllipticK EllipticE EllipticPi besj0 besj1 +syn keyword gnuplotFunc besy0 besy1 ceil cos cosh erf erfc exp expint +syn keyword gnuplotFunc floor gamma ibeta inverf igamma imag invnorm int +syn keyword gnuplotFunc lambertw lgamma log log10 norm rand real sgn sin +syn keyword gnuplotFunc sin sinh sqrt tan tanh voigt + +" string functions +syn keyword gnuplotFunc gprintf sprintf strlen strstrt substr strftime +syn keyword gnuplotFunc strptime system word words + +" other functions +syn keyword gnuplotFunc column columnhead columnheader defined exists +syn keyword gnuplotFunc hsv2rgb stringcolumn timecolumn tm_hour tm_mday +syn keyword gnuplotFunc tm_min tm_mon tm_sec tm_wday tm_yday tm_year +syn keyword gnuplotFunc time valid value + +" ---- Statements ---- " + +" common (builtin) variable names +syn keyword gnuplotKeyword x y t u v z s + +" conditionals +syn keyword gnuplotConditional if else + +" repeats +syn keyword gnuplotRepeat do for while + +" operators +syn match gnuplotOperator "[-+*/^|&?:]" +syn match gnuplotOperator "\*\*" +syn match gnuplotOperator "&&" +syn match gnuplotOperator "||" + +" Keywords + +" keywords for 'fit' command +syn keyword gnuplotKeyword via z x:z x:z:s x:y:z:s +syn keyword gnuplotKeyword x:y:t:z:s x:y:t:u:z:s x:y:t:u:v:z:s + +" keywords for 'plot' command +" 'axes' keyword +syn keyword gnuplotKeyword axes x1y1 x1y2 x2y1 x2y2 +" 'binary' keyword +syn keyword gnuplotKeyword binary matrix general array record format endian +syn keyword gnuplotKeyword filetype avs edf png scan transpose dx dy dz +syn keyword gnuplotKeyword flipx flipy flipz origin center rotate using +syn keyword gnuplotKeyword perpendicular skip every +" datafile keywords +syn keyword gnuplotKeyword binary nonuniform matrix index every using +syn keyword gnuplotKeyword smooth volatile noautoscale every index +" 'smooth' keywords +syn keyword gnuplotKeyword unique frequency cumulative cnormal kdensity +syn keyword gnuplotKeyword csplines acsplines bezer sbezier +" deprecated 'thru' keyword +syn keyword gnuplotError thru +" 'using' keyword +syn keyword gnuplotKeyword using u xticlabels yticlabels zticlabels +syn keyword gnuplotKeyword x2ticlabels y2ticlabels xtic ytic ztic +" 'errorbars' keywords +syn keyword gnuplotKeyword errorbars xerrorbars yerrorbars xyerrorbars +" 'errorlines' keywords +syn keyword gnuplotKeyword errorlines xerrorlines yerrorlines xyerrorlines +" 'title' keywords +syn keyword gnuplotKeyword title t tit notitle columnheader at beginning +syn keyword gnuplotKeyword end +" 'with' keywords +syn keyword gnuplotKeyword with w linestyle ls linetype lt linewidth +syn keyword gnuplotKeyword lw linecolor lc pointtype pt pointsize ps +syn keyword gnuplotKeyword fill fs nohidden3d nocontours nosurface palette +" styles for 'with' +syn keyword gnuplotKeyword lines l points p linespoints lp surface dots +syn keyword gnuplotKeyword impulses labels vectors steps fsteps histeps +syn keyword gnuplotKeyword errorbars errorlines financebars xerrorbars +syn keyword gnuplotKeyword xerrorlines xyerrorbars yerrorbars yerrorlines +syn keyword gnuplotKeyword boxes boxerrorbars boxxyerrorbars boxplot +syn keyword gnuplotKeyword candlesticks circles ellipses filledcurves +syn keyword gnuplotKeyword histogram image rgbimage rgbalpha pm3d variable + +" keywords for 'save' command +syn keyword gnuplotKeyword save functions func variables all var terminal +syn keyword gnuplotKeyword term set + +" keywords for 'set/show' command +" set angles +syn keyword gnuplotKeyword angles degrees deg radians rad +" set arrow +syn keyword gnuplotKeyword arrow from to rto length angle arrowstyle as +syn keyword gnuplotKeyword nohead head backhead heads size filled empty +syn keyword gnuplotKeyword nofilled front back linestyle linetype linewidth +" set autoscale +" TODO regexp here +syn keyword gnuplotKeyword autoscale x y z cb x2 y2 zy min max fixmin +syn keyword gnuplotKeyword fixmax fix keepfix noextend +" set bars +syn keyword gnuplotKeyword bars small large fullwidth front back +" set bind +syn keyword gnuplotKeyword bind +" set margins +" TODO regexp +syn keyword gnuplotKeyword margin bmargin lmargin rmargin tmargin +" set border +syn keyword gnuplotKeyword border front back +" set boxwidth +syn keyword gnuplotKeyword boxwidth absolute relative +" deprecated set clabel +syn keyword gnuplotError clabel +" set clip +syn keyword gnuplotKeyword clip points one two +" set cntrlabel +syn keyword gnuplotKeyword cntrlabel format font start interval onecolor +" set cntrparam +syn keyword gnuplotKeyword cntrparam linear cubicspline bspline points +syn keyword gnuplotKeyword order levels auto discrete incremental +" set colorbox +syn keyword gnuplotKeyword colorbox vertical horizontal default user origin +syn keyword gnuplotKeyword size front back noborder bdefault border +" show colornames +syn keyword gnuplotKeyword colornames +" set contour +syn keyword gnuplotKeyword contour base surface both +" set datafile +syn keyword gnuplotKeyword datafile fortran nofpe_trap missing separator +syn keyword gnuplotKeyword whitespace tab comma commentschars binary +" set decimalsign +syn keyword gnuplotKeyword decimalsign locale +" set dgrid3d +syn keyword gnuplotKeyword dgrid3d splines qnorm gauss cauchy exp box hann +syn keyword gnuplotKeyword kdensity +" set dummy +syn keyword gnuplotKeyword dummy +" set encoding +syn keyword gnuplotKeyword encoding default iso_8859_1 iso_8859_15 +syn keyword gnuplotKeyword iso_8859_2 iso_8859_9 koi8r koi8u cp437 cp850 +syn keyword gnuplotKeyword cp852 cp950 cp1250 cp1251 cp1254 sjis utf8 +" set fit +syn keyword gnuplotKeyword fit logfile default quiet noquiet results brief +syn keyword gnuplotKeyword verbose errorvariables noerrorvariables +syn keyword gnuplotKeyword errorscaling noerrorscaling prescale noprescale +syn keyword gnuplotKeyword maxiter none limit limit_abs start-lambda script +syn keyword gnuplotKeyword lambda-factor +" set fontpath +syn keyword gnuplotKeyword fontpath +" set format +syn keyword gnuplotKeyword format +" show functions +syn keyword gnuplotKeyword functions +" set grid +syn keyword gnuplotKeyword grid polar layerdefault xtics ytics ztics x2tics +syn keyword gnuplotKeyword y2tics cbtics mxtics mytics mztics mx2tics +syn keyword gnuplotKeyword my2tics mcbtics xmtics ymtics zmtics x2mtics +syn keyword gnuplotKeyword y2mtics cbmtics noxtics noytics noztics nox2tics +syn keyword gnuplotKeyword noy2tics nocbtics nomxtics nomytics nomztics +syn keyword gnuplotKeyword nomx2tics nomy2tics nomcbtics +" set hidden3d +syn keyword gnuplotKeyword hidden3d offset trianglepattern undefined +syn keyword gnuplotKeyword altdiagonal noaltdiagonal bentover nobentover +syn keyword gnuplotKeyword noundefined +" set historysize +syn keyword gnuplotKeyword historysize +" set isosamples +syn keyword gnuplotKeyword isosamples +" set key +syn keyword gnuplotKeyword key on off inside outside at left right center +syn keyword gnuplotKeyword top bottom vertical horizontal Left Right +syn keyword gnuplotKeyword opaque noopaque reverse noreverse invert maxrows +syn keyword gnuplotKeyword noinvert samplen spacing width height autotitle +syn keyword gnuplotKeyword noautotitle title enhanced noenhanced font +syn keyword gnuplotKeyword textcolor box nobox linetype linewidth maxcols +" set label +syn keyword gnuplotKeyword label left center right rotate norotate by font +syn keyword gnuplotKeyword front back textcolor point nopoint offset boxed +syn keyword gnuplotKeyword hypertext +" set linetype +syn keyword gnuplotKeyword linetype +" set link +syn keyword gnuplotKeyword link via inverse +" set loadpath +syn keyword gnuplotKeyword loadpath +" set locale +syn keyword gnuplotKeyword locale +" set logscale +syn keyword gnuplotKeyword logscale log +" set macros +syn keyword gnuplotKeyword macros +" set mapping +syn keyword gnuplotKeyword mapping cartesian spherical cylindrical +" set mouse +syn keyword gnuplotKeyword mouse doubleclick nodoubleclick zoomcoordinates +syn keyword gnuplotKeyword nozoomcoordinates ruler noruler at polardistance +syn keyword gnuplotKeyword nopolardistance deg tan format clipboardformat +syn keyword gnuplotKeyword mouseformat labels nolabels zoomjump nozoomjump +syn keyword gnuplotKeyword verbose noverbose +" set multiplot +syn keyword gnuplotKeyword multiplot title font layout rowsfirst downwards +syn keyword gnuplotKeyword downwards upwards scale offset +" set object +syn keyword gnuplotKeyword object behind fillcolor fc fs rectangle ellipse +syn keyword gnuplotKeyword circle polygon at center size units xy xx yy to +syn keyword gnuplotKeyword from +" set offsets +syn keyword gnuplotKeyword offsets +" set origin +syn keyword gnuplotKeyword origin +" set output +syn keyword gnuplotKeyword output +" set parametric +syn keyword gnuplotKeyword parametric +" show plot +syn keyword gnuplotKeyword plot add2history +" set pm3d +syn keyword gnuplotKeyword hidden3d interpolate scansautomatic scansforward +syn keyword gnuplotKeyword scansbackward depthorder flush begin center end +syn keyword gnuplotKeyword ftriangles noftriangles clip1in clip4in mean map +syn keyword gnuplotKeyword corners2color geomean harmean rms median min max +syn keyword gnuplotKeyword c1 c2 c3 c4 pm3d at nohidden3d implicit explicit +" set palette +syn keyword gnuplotKeyword palette gray color gamma rgbformulae defined +syn keyword gnuplotKeyword file functions cubehelix start cycles saturation +syn keyword gnuplotKeyword model RGB HSV CMY YIQ XYZ positive negative +syn keyword gnuplotKeyword nops_allcF ps_allcF maxcolors float int gradient +syn keyword gnuplotKeyword fit2rgbformulae rgbformulae +" set pointintervalbox +syn keyword gnuplotKeyword pointintervalbox +" set pointsize +syn keyword gnuplotKeyword pointsize +" set polar +syn keyword gnuplotKeyword polar +" set print +syn keyword gnuplotKeyword print append +" set psdir +syn keyword gnuplotKeyword psdir +" set raxis +syn keyword gnuplotKeyword raxis rrange rtics +" set samples +syn keyword gnuplotKeyword samples +" set size +syn keyword gnuplotKeyword size square nosquare ratio noratio +" set style +syn keyword gnuplotKeyword style arrow auto back border boxplot +syn keyword gnuplotKeyword candlesticks circle clustered columnstacked data +syn keyword gnuplotKeyword default ellipse empty fill[ed] financebars +syn keyword gnuplotKeyword fraction front function gap graph head[s] +syn keyword gnuplotKeyword histogram increment labels lc line linecolor +syn keyword gnuplotKeyword linetype linewidth lt lw noborder nofilled +syn keyword gnuplotKeyword nohead nooutliers nowedge off opaque outliers +syn keyword gnuplotKeyword palette pattern pi pointinterval pointsize +syn keyword gnuplotKeyword pointtype ps pt radius range rectangle +syn keyword gnuplotKeyword rowstacked screen separation size solid sorted +syn keyword gnuplotKeyword textbox units unsorted userstyles wedge +syn keyword gnuplotKeyword x x2 xx xy yy +" set surface +syn keyword gnuplotKeyword surface implicit explicit +" set table +syn keyword gnuplotKeyword table +" set terminal (list of terminals) +syn keyword gnuplotKeyword terminal term push pop aed512 aed767 aifm aqua +syn keyword gnuplotKeyword be cairo cairolatex canvas cgm context corel +syn keyword gnuplotKeyword debug dumb dxf dxy800a eepic emf emxvga epscairo +syn keyword gnuplotKeyword epslatex epson_180dpi excl fig ggi gif gpic hpgl +syn keyword gnuplotKeyword grass hp2623a hp2648 hp500c hpljii hppj imagen +syn keyword gnuplotKeyword jpeg kyo latex linux lua mf mif mp next openstep +syn keyword gnuplotKeyword pbm pdf pdfcairo pm png pngcairo postscript +syn keyword gnuplotKeyword pslatex pstex pstricks qms qt regis sun svg svga +syn keyword gnuplotKeyword tek40 tek410x texdraw tgif tikz tkcanvas tpic +syn keyword gnuplotKeyword vgagl vws vx384 windows wx wxt x11 xlib +" keywords for 'set terminal' +syn keyword gnuplotKeyword color monochrome dashlength dl eps pdf fontscale +syn keyword gnuplotKeyword standalone blacktext colortext colourtext header +syn keyword gnuplotKeyword noheader mono color solid dashed notransparent +syn keyword gnuplotKeyword crop crop background input rounded butt square +syn keyword gnuplotKeyword size fsize standalone name jsdir defaultsize +syn keyword gnuplotKeyword timestamp notimestamp colour mitered beveled +syn keyword gnuplotKeyword round squared palfuncparam blacktext nec_cp6 +syn keyword gnuplotKeyword mppoints inlineimages externalimages defaultfont +syn keyword gnuplotKeyword aspect feed nofeed rotate small tiny standalone +syn keyword gnuplotKeyword oldstyle newstyle level1 leveldefault level3 +syn keyword gnuplotKeyword background nobackground solid clip noclip +syn keyword gnuplotKeyword colortext colourtext epson_60dpi epson_lx800 +syn keyword gnuplotKeyword okidata starc tandy_60dpi dpu414 nec_cp6 draft +syn keyword gnuplotKeyword medium large normal landscape portrait big +syn keyword gnuplotKeyword inches pointsmax textspecial texthidden +syn keyword gnuplotKeyword thickness depth version acceleration giant +syn keyword gnuplotKeyword delay loop optimize nooptimize pspoints +syn keyword gnuplotKeyword FNT9X17 FNT13X25 interlace nointerlace courier +syn keyword gnuplotKeyword originreset nooriginreset gparrows nogparrows +syn keyword gnuplotKeyword picenvironment nopicenvironment tightboundingbox +syn keyword gnuplotKeyword notightboundingbox charsize gppoints nogppoints +syn keyword gnuplotKeyword fontscale textscale fulldoc nofulldoc standalone +syn keyword gnuplotKeyword preamble header tikzplot tikzarrows notikzarrows +syn keyword gnuplotKeyword cmykimages externalimages noexternalimages +syn keyword gnuplotKeyword polyline vectors magnification psnfss nopsnfss +syn keyword gnuplotKeyword psnfss-version7 prologues a4paper amstex fname +syn keyword gnuplotKeyword fsize server persist widelines interlace +syn keyword gnuplotKeyword truecolor notruecolor defaultplex simplex duplex +syn keyword gnuplotKeyword nofontfiles adobeglyphnames noadobeglyphnames +syn keyword gnuplotKeyword nostandalone metric textrigid animate nopspoints +syn keyword gnuplotKeyword hpdj FNT5X9 roman emtex rgbimages bitmap +syn keyword gnuplotKeyword nobitmap providevars nointerlace add delete +syn keyword gnuplotKeyword auxfile hacktext unit raise palfuncparam +syn keyword gnuplotKeyword noauxfile nohacktext nounit noraise ctrl noctrl +syn keyword gnuplotKeyword close widget fixed dynamic tek40xx vttek +syn keyword gnuplotKeyword kc-tek40xx km-tek40xx bitgraph perltk +syn keyword gnuplotKeyword interactive red green blue interpolate mode +syn keyword gnuplotKeyword position ctrlq replotonresize position noctrlq +syn keyword gnuplotKeyword noreplotonresize +" set termoption +syn keyword gnuplotKeyword termoption font fontscale solid dashed +" set tics +syn keyword gnuplotKeyword tics add axis border mirror nomirror in out +syn keyword gnuplotKeyword scale rotate norotate by offset nooffset left +syn keyword gnuplotKeyword autojustify format font textcolor right center +" deprecated set ticslevel +syn keyword gnuplotError ticslevel ticscale +" set timestamp +syn keyword gnuplotKeyword timestamp top bottom offset font +" set timefmt +syn keyword gnuplotKeyword timefmt +" set title +syn keyword gnuplotKeyword title offset font textcolor tc +" set ranges +syn keyword gnuplotKeyword trange urange vrange +" show variables +syn keyword gnuplotKeyword variables +" show version +syn keyword gnuplotKeyword version +" set view +syn keyword gnuplotKeyword view map equal noequal xy xyz +" set x2data +syn keyword gnuplotKeyword xdata ydata zdata x2data y2data cbdata xdtics +syn keyword gnuplotKeyword ydtics zdtics x2dtics y2dtics cbdtics xzeroaxis +syn keyword gnuplotKeyword yzeroaxis zzeroaxis x2zeroaxis y2zeroaxis +syn keyword gnuplotKeyword cbzeroaxis time geographic +" set label +syn keyword gnuplotKeyword xlabel ylabel zlabel x2label y2label cblabel +syn keyword gnuplotKeyword offset font textcolor by parallel +" set range +syn keyword gnuplotKeyword xrange yrange zrange x2range y2range cbrange +" set xyplane +syn keyword gnuplotKeyword xyplane +" set zeroaxis +" set zero +syn keyword gnuplotKeyword zero +" set zeroaxis +syn keyword gnuplotKeyword zeroaxis + +" keywords for 'stats' command +syn keyword gnuplotKeyword nooutput + +" keywords for 'test' command +syn keyword gnuplotKeyword terminal palette rgb rbg grb gbr brg bgr + +" The transparent gnuplot keyword cannot use 'syn keyword' as transparent +" has a special meaning in :syntax commands. +syn match gnuplotKeyword "\" + +" ---- Macros ---- " + +syn match gnuplotMacro "@\w*" + +" ---- Todos ---- " + +syn keyword gnuplotTodo contained TODO FIXME XXX + +" ---- Types: gnuplot commands ---- " + +" I set the commands as Types to distinguish them visually from keywords for the +" commands. This comes at the end of the syntax file because some commands +" are redundant with keywords. It's probably too much trouble to go and +" create special regions for each redundant keyword/command pair, which means +" that some keywords (e.g. 'p') will be highlighted as commands. + +syn keyword gnuplotStatement cd call clear evaluate exit fit help history +syn keyword gnuplotStatement load lower pause plot p print pwd quit raise +syn keyword gnuplotStatement refresh replot rep reread reset save set show +syn keyword gnuplotStatement shell splot spstats stats system test undefine +syn keyword gnuplotStatement unset update + +" ---- Define the default highlighting ---- " +" Only when an item doesn't have highlighting yet + +" ---- Comments ---- " +hi def link gnuplotComment Comment + +" ---- Constants ---- " +hi def link gnuplotString String +hi def link gnuplotNumber Number +hi def link gnuplotFloat Float + +" ---- Identifiers ---- " +hi def link gnuplotIdentifier Identifier + +" ---- Statements ---- " +hi def link gnuplotConditional Conditional +hi def link gnuplotRepeat Repeat +hi def link gnuplotKeyword Keyword +hi def link gnuplotOperator Operator + +" ---- PreProcs ---- " +hi def link gnuplotMacro Macro + +" ---- Types ---- " +hi def link gnuplotStatement Type +hi def link gnuplotFunc Identifier + +" ---- Specials ---- " +hi def link gnuplotSpecial Special +hi def link gnuplotUnit Special +hi def link gnuplotExternal Special + +" ---- Errors ---- " +hi def link gnuplotError Error +hi def link gnuplotOctalError Error + +" ---- Todos ---- " +hi def link gnuplotTodo Todo + + +let b:current_syntax = "gnuplot" + +" vim: ts=8 diff --git a/runtime/syntax/go.vim b/runtime/syntax/go.vim new file mode 100644 index 0000000..4272e80 --- /dev/null +++ b/runtime/syntax/go.vim @@ -0,0 +1,550 @@ +" Copyright 2009 The Go Authors. All rights reserved. +" Use of this source code is governed by a BSD-style +" license that can be found in the LICENSE file. +" +" go.vim: Vim syntax file for Go. +" Language: Go +" Maintainer: Billie Cleek +" Latest Revision: 2023-08-21 +" License: BSD-style. See LICENSE file in source repository. +" Repository: https://github.com/fatih/vim-go + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +function! s:FoldEnable(...) abort + if a:0 > 0 + return index(s:FoldEnable(), a:1) > -1 + endif + return get(g:, 'go_fold_enable', ['block', 'import', 'varconst', 'package_comment']) +endfunction + +function! s:HighlightArrayWhitespaceError() abort + return get(g:, 'go_highlight_array_whitespace_error', 0) +endfunction + +function! s:HighlightChanWhitespaceError() abort + return get(g:, 'go_highlight_chan_whitespace_error', 0) +endfunction + +function! s:HighlightExtraTypes() abort + return get(g:, 'go_highlight_extra_types', 0) +endfunction + +function! s:HighlightSpaceTabError() abort + return get(g:, 'go_highlight_space_tab_error', 0) +endfunction + +function! s:HighlightTrailingWhitespaceError() abort + return get(g:, 'go_highlight_trailing_whitespace_error', 0) +endfunction + +function! s:HighlightOperators() abort + return get(g:, 'go_highlight_operators', 0) +endfunction + +function! s:HighlightFunctions() abort + return get(g:, 'go_highlight_functions', 0) +endfunction + +function! s:HighlightFunctionParameters() abort + return get(g:, 'go_highlight_function_parameters', 0) +endfunction + +function! s:HighlightFunctionCalls() abort + return get(g:, 'go_highlight_function_calls', 0) +endfunction + +function! s:HighlightFields() abort + return get(g:, 'go_highlight_fields', 0) +endfunction + +function! s:HighlightTypes() abort + return get(g:, 'go_highlight_types', 0) +endfunction + +function! s:HighlightBuildConstraints() abort + return get(g:, 'go_highlight_build_constraints', 0) +endfunction + +function! s:HighlightStringSpellcheck() abort + return get(g:, 'go_highlight_string_spellcheck', 1) +endfunction + +function! s:HighlightFormatStrings() abort + return get(g:, 'go_highlight_format_strings', 1) +endfunction + +function! s:HighlightGenerateTags() abort + return get(g:, 'go_highlight_generate_tags', 0) +endfunction + +function! s:HighlightVariableAssignments() abort + return get(g:, 'go_highlight_variable_assignments', 0) +endfunction + +function! s:HighlightVariableDeclarations() abort + return get(g:, 'go_highlight_variable_declarations', 0) +endfunction + +syn case match + +syn keyword goPackage package +syn keyword goImport import contained +syn keyword goVar var contained +syn keyword goConst const contained + +hi def link goPackage Statement +hi def link goImport Statement +hi def link goVar Keyword +hi def link goConst Keyword +hi def link goDeclaration Keyword + +" Keywords within functions +syn keyword goStatement defer go goto return break continue fallthrough +syn keyword goConditional if else switch select +syn keyword goLabel case default +syn keyword goRepeat for range + +hi def link goStatement Statement +hi def link goConditional Conditional +hi def link goLabel Label +hi def link goRepeat Repeat + +" Predefined types +syn keyword goType chan map bool string error any comparable +syn keyword goSignedInts int int8 int16 int32 int64 rune +syn keyword goUnsignedInts byte uint uint8 uint16 uint32 uint64 uintptr +syn keyword goFloats float32 float64 +syn keyword goComplexes complex64 complex128 + +hi def link goType Type +hi def link goSignedInts Type +hi def link goUnsignedInts Type +hi def link goFloats Type +hi def link goComplexes Type + +" Predefined functions and values +syn keyword goBuiltins append cap clear close complex copy delete imag len +syn keyword goBuiltins make max min new panic print println real recover +syn keyword goBoolean true false +syn keyword goPredefinedIdentifiers nil iota + +hi def link goBuiltins Identifier +hi def link goPredefinedIdentifiers Constant +" Boolean links to Constant by default by vim: goBoolean and goPredefinedIdentifiers +" will be highlighted the same, but having the separate groups allows users to +" have separate highlighting for them if they desire. +hi def link goBoolean Boolean + +" Comments; their contents +syn keyword goTodo contained TODO FIXME XXX BUG +syn cluster goCommentGroup contains=goTodo + +syn region goComment start="//" end="$" contains=goGenerate,@goCommentGroup,@Spell +if s:FoldEnable('comment') + syn region goComment start="/\*" end="\*/" contains=@goCommentGroup,@Spell fold + syn match goComment "\v(^\s*//.*\n)+" contains=goGenerate,@goCommentGroup,@Spell fold +else + syn region goComment start="/\*" end="\*/" contains=@goCommentGroup,@Spell +endif + +hi def link goComment Comment +hi def link goTodo Todo + +if s:HighlightGenerateTags() + syn match goGenerateVariables contained /\%(\$GOARCH\|\$GOOS\|\$GOFILE\|\$GOLINE\|\$GOPACKAGE\|\$DOLLAR\)\>/ + syn region goGenerate start="^\s*//go:generate" end="$" contains=goGenerateVariables + hi def link goGenerate PreProc + hi def link goGenerateVariables Special +endif + +" Go escapes +syn match goEscapeOctal display contained "\\[0-7]\{3}" +syn match goEscapeC display contained +\\[abfnrtv\\'"]+ +syn match goEscapeX display contained "\\x\x\{2}" +syn match goEscapeU display contained "\\u\x\{4}" +syn match goEscapeBigU display contained "\\U\x\{8}" +syn match goEscapeError display contained +\\[^0-7xuUabfnrtv\\'"]+ + +hi def link goEscapeOctal goSpecialString +hi def link goEscapeC goSpecialString +hi def link goEscapeX goSpecialString +hi def link goEscapeU goSpecialString +hi def link goEscapeBigU goSpecialString +hi def link goSpecialString Special +hi def link goEscapeError Error + +" Strings and their contents +syn cluster goStringGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU,goEscapeError +if s:HighlightStringSpellcheck() + syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup,@Spell + syn region goRawString start=+`+ end=+`+ contains=@Spell +else + syn region goString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@goStringGroup + syn region goRawString start=+`+ end=+`+ +endif + +syn match goImportString /^\%(\s\+\|import \)\(\h\w* \)\?\zs"[^"]\+"$/ contained containedin=goImport + +if s:HighlightFormatStrings() + " [n] notation is valid for specifying explicit argument indexes + " 1. Match a literal % not preceded by a %. + " 2. Match any number of -, #, 0, space, or + + " 3. Match * or [n]* or any number or nothing before a . + " 4. Match * or [n]* or any number or nothing after a . + " 5. Match [n] or nothing before a verb + " 6. Match a formatting verb + syn match goFormatSpecifier /\ + \%([^%]\%(%%\)*\)\ + \@<=%[-#0 +]*\ + \%(\%(\%(\[\d\+\]\)\=\*\)\|\d\+\)\=\ + \%(\.\%(\%(\%(\[\d\+\]\)\=\*\)\|\d\+\)\=\)\=\ + \%(\[\d\+\]\)\=[vTtbcdoqxXUeEfFgGspw]/ contained containedin=goString,goRawString + hi def link goFormatSpecifier goSpecialString +endif + +hi def link goImportString String +hi def link goString String +hi def link goRawString String + +" Characters; their contents +syn cluster goCharacterGroup contains=goEscapeOctal,goEscapeC,goEscapeX,goEscapeU,goEscapeBigU +syn region goCharacter start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@goCharacterGroup + +hi def link goCharacter Character + +" Regions +syn region goParen start='(' end=')' transparent +if s:FoldEnable('block') + syn region goBlock start="{" end="}" transparent fold +else + syn region goBlock start="{" end="}" transparent +endif + +" import +if s:FoldEnable('import') + syn region goImport start='import (' end=')' transparent fold contains=goImport,goImportString,goComment +else + syn region goImport start='import (' end=')' transparent contains=goImport,goImportString,goComment +endif + +" var, const +if s:FoldEnable('varconst') + syn region goVar start='var (' end='^\s*)$' transparent fold + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + syn region goConst start='const (' end='^\s*)$' transparent fold + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator +else + syn region goVar start='var (' end='^\s*)$' transparent + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator + syn region goConst start='const (' end='^\s*)$' transparent + \ contains=ALLBUT,goParen,goBlock,goFunction,goTypeName,goReceiverType,goReceiverVar,goParamName,goParamType,goSimpleParams,goPointerOperator +endif + +" Single-line var, const, and import. +syn match goSingleDecl /\%(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst + +" Integers +syn match goDecimalInt "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)\>" +syn match goHexadecimalInt "\<-\=0[xX]_\?\%(\x\|\x_\x\)\+\>" +syn match goOctalInt "\<-\=0[oO]\?_\?\%(\o\|\o_\o\)\+\>" +syn match goBinaryInt "\<-\=0[bB]_\?\%([01]\|[01]_[01]\)\+\>" + +hi def link goDecimalInt Integer +hi def link goDecimalError Error +hi def link goHexadecimalInt Integer +hi def link goHexadecimalError Error +hi def link goOctalInt Integer +hi def link goOctalError Error +hi def link goBinaryInt Integer +hi def link goBinaryError Error +hi def link Integer Number + +" Floating point +"float_lit = decimal_float_lit | hex_float_lit . +" +"decimal_float_lit = decimal_digits "." [ decimal_digits ] [ decimal_exponent ] | +" decimal_digits decimal_exponent | +" "." decimal_digits [ decimal_exponent ] . +"decimal_exponent = ( "e" | "E" ) [ "+" | "-" ] decimal_digits . +" +"hex_float_lit = "0" ( "x" | "X" ) hex_mantissa hex_exponent . +"hex_mantissa = [ "_" ] hex_digits "." [ hex_digits ] | +" [ "_" ] hex_digits | +" "." hex_digits . +"hex_exponent = ( "p" | "P" ) [ "+" | "-" ] decimal_digits . +" decimal floats with a decimal point +syn match goFloat "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)\.\%(\%(\%(\d\|\d_\d\)\+\)\=\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\=\>\)\=" +syn match goFloat "\s\zs-\=\.\%(\d\|\d_\d\)\+\%(\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\>\)\=" +" decimal floats without a decimal point +syn match goFloat "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)[Ee][-+]\=\%(\d\|\d_\d\)\+\>" +" hexadecimal floats with a decimal point +syn match goHexadecimalFloat "\<-\=0[xX]\%(_\x\|\x\)\+\.\%(\%(\x\|\x_\x\)\+\)\=\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=\>" +syn match goHexadecimalFloat "\<-\=0[xX]\.\%(\x\|\x_\x\)\+\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=\>" +" hexadecimal floats without a decimal point +syn match goHexadecimalFloat "\<-\=0[xX]\%(_\x\|\x\)\+[Pp][-+]\=\%(\d\|\d_\d\)\+\>" + +hi def link goFloat Float +hi def link goHexadecimalFloat Float + +" Imaginary literals +syn match goImaginaryDecimal "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)i\>" +syn match goImaginaryHexadecimal "\<-\=0[xX]_\?\%(\x\|\x_\x\)\+i\>" +syn match goImaginaryOctal "\<-\=0[oO]\?_\?\%(\o\|\o_\o\)\+i\>" +syn match goImaginaryBinary "\<-\=0[bB]_\?\%([01]\|[01]_[01]\)\+i\>" + +" imaginary decimal floats with a decimal point +syn match goImaginaryFloat "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)\.\%(\%(\%(\d\|\d_\d\)\+\)\=\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\=\)\=i\>" +syn match goImaginaryFloat "\s\zs-\=\.\%(\d\|\d_\d\)\+\%([Ee][-+]\=\%(\d\|\d_\d\)\+\)\=i\>" +" imaginary decimal floats without a decimal point +syn match goImaginaryFloat "\<-\=\%(0\|\%(\d\|\d_\d\)\+\)[Ee][-+]\=\%(\d\|\d_\d\)\+i\>" +" imaginary hexadecimal floats with a decimal point +syn match goImaginaryHexadecimalFloat "\<-\=0[xX]\%(_\x\|\x\)\+\.\%(\%(\x\|\x_\x\)\+\)\=\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=i\>" +syn match goImaginaryHexadecimalFloat "\<-\=0[xX]\.\%(\x\|\x_\x\)\+\%([Pp][-+]\=\%(\d\|\d_\d\)\+\)\=i\>" +" imaginary hexadecimal floats without a decimal point +syn match goImaginaryHexadecimalFloat "\<-\=0[xX]\%(_\x\|\x\)\+[Pp][-+]\=\%(\d\|\d_\d\)\+i\>" + +hi def link goImaginaryDecimal Number +hi def link goImaginaryHexadecimal Number +hi def link goImaginaryOctal Number +hi def link goImaginaryBinary Number +hi def link goImaginaryFloat Float +hi def link goImaginaryHexadecimalFloat Float + +" Spaces after "[]" +if s:HighlightArrayWhitespaceError() + syn match goSpaceError display "\%(\[\]\)\@<=\s\+" +endif + +" Spacing errors around the 'chan' keyword +if s:HighlightChanWhitespaceError() + " receive-only annotation on chan type + " + " \(\\)\@\)\@\)\@=" + + " send-only annotation on chan type + " + " \(<-\)\@ (only pick chan when it doesn't come after an arrow) + " this prevents picking up '<-chan <-chan' but not 'chan <-' + syn match goSpaceError display "\%(\%(<-\)\@\)\@<=\s\+\%(<-\)\@=" + + " value-ignoring receives in a few contexts + syn match goSpaceError display "\%(\%(^\|[={(,;]\)\s*<-\)\@<=\s\+" +endif + +" Extra types commonly seen +if s:HighlightExtraTypes() + syn match goExtraType /\/ + syn match goExtraType /\/ + syn match goExtraType /\/ + syn match goExtraType /\/ + syn match goExtraType /\/ +endif + +" Space-tab error +if s:HighlightSpaceTabError() + syn match goSpaceError display " \+\t"me=e-1 +endif + +" Trailing white space error +if s:HighlightTrailingWhitespaceError() + syn match goSpaceError display excludenl "\s\+$" +endif + +hi def link goExtraType Type +hi def link goSpaceError Error + + + +" included from: https://github.com/athom/more-colorful.vim/blob/master/after/syntax/go.vim +" +" Comments; their contents +syn keyword goTodo contained NOTE +hi def link goTodo Todo + +syn match goVarArgs /\.\.\./ + +" Operators; +if s:HighlightOperators() + " match single-char operators: - + % < > ! & | ^ * = + " and corresponding two-char operators: -= += %= <= >= != &= |= ^= *= == + syn match goOperator /[-+%<>!&|^*=]=\?/ + " match / and /= + syn match goOperator /\/\%(=\|\ze[^/*]\)/ + " match two-char operators: << >> &^ + " and corresponding three-char operators: <<= >>= &^= + syn match goOperator /\%(<<\|>>\|&^\)=\?/ + " match remaining two-char operators: := && || <- ++ -- + syn match goOperator /:=\|||\|<-\|++\|--/ + " match ~ + syn match goOperator /\~/ + " match ... + + hi def link goPointerOperator goOperator + hi def link goVarArgs goOperator +endif +hi def link goOperator Operator + +" -> type constraint opening bracket +" |-> start non-counting group +" || -> any word character +" || | -> at least one, as many as possible +" || | | -> start non-counting group +" || | | | -> match ~ +" || | | | | -> at most once +" || | | | | | -> allow a slice type +" || | | | | | | -> any word character +" || | | | | | | | -> start a non-counting group +" || | | | | | | | | -> that matches word characters and | +" || | | | | | | | | | -> close the non-counting group +" || | | | | | | | | | | -> close the non-counting group +" || | | | | | | | | | | |-> any number of matches +" || | | | | | | | | | | || -> start a non-counting group +" || | | | | | | | | | | || | -> a comma and whitespace +" || | | | | | | | | | | || | | -> at most once +" || | | | | | | | | | | || | | | -> close the non-counting group +" || | | | | | | | | | | || | | | | -> at least one of those non-counting groups, as many as possible +" || | | | | | -------- | | | | || | | | | | -> type constraint closing bracket +" || | | | | || | | | | | || | | | | | | +syn match goTypeParams /\[\%(\w\+\s\+\%(\~\?\%(\[]\)\?\w\%(\w\||\)\)*\%(,\s*\)\?\)\+\]/ nextgroup=goSimpleParams,goDeclType contained + +" Functions; +if s:HighlightFunctions() || s:HighlightFunctionParameters() + syn match goDeclaration /\/ nextgroup=goReceiver,goFunction,goSimpleParams skipwhite skipnl + syn match goReceiverDecl /(\s*\zs\%(\%(\w\+\s\+\)\?\*\?\w\+\%(\[\%(\%(\[\]\)\?\w\+\%(,\s*\)\?\)\+\]\)\?\)\ze\s*)/ contained contains=goReceiverVar,goReceiverType,goPointerOperator + syn match goReceiverVar /\w\+\ze\s\+\%(\w\|\*\)/ nextgroup=goPointerOperator,goReceiverType skipwhite skipnl contained + syn match goPointerOperator /\*/ nextgroup=goReceiverType contained skipwhite skipnl + syn match goFunction /\w\+/ nextgroup=goSimpleParams,goTypeParams contained skipwhite skipnl + syn match goReceiverType /\w\+\%(\[\%(\%(\[\]\)\?\w\+\%(,\s*\)\?\)\+\]\)\?\ze\s*)/ contained + if s:HighlightFunctionParameters() + syn match goSimpleParams /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType nextgroup=goFunctionReturn skipwhite skipnl + syn match goFunctionReturn /(\%(\w\|\_s\|[*\.\[\],\{\}<>-]\)*)/ contained contains=goParamName,goType skipwhite skipnl + syn match goParamName /\w\+\%(\s*,\s*\w\+\)*\ze\s\+\%(\w\|\.\|\*\|\[\)/ contained nextgroup=goParamType skipwhite skipnl + syn match goParamType /\%([^,)]\|\_s\)\+,\?/ contained nextgroup=goParamName skipwhite skipnl + \ contains=goVarArgs,goType,goSignedInts,goUnsignedInts,goFloats,goComplexes,goDeclType,goBlock + hi def link goReceiverVar goParamName + hi def link goParamName Identifier + endif + syn match goReceiver /(\s*\%(\w\+\s\+\)\?\*\?\s*\w\+\%(\[\%(\%(\[\]\)\?\w\+\%(,\s*\)\?\)\+\]\)\?\s*)\ze\s*\w/ contained nextgroup=goFunction contains=goReceiverDecl skipwhite skipnl +else + syn keyword goDeclaration func +endif +hi def link goFunction Function + +" Function calls; +if s:HighlightFunctionCalls() + syn match goFunctionCall /\w\+\ze\%(\[\%(\%(\[]\)\?\w\+\(,\s*\)\?\)\+\]\)\?(/ contains=goBuiltins,goDeclaration +endif +hi def link goFunctionCall Type + +" Fields; +if s:HighlightFields() + " 1. Match a sequence of word characters coming after a '.' + " 2. Require the following but dont match it: ( \@= see :h E59) + " - The symbols: / - + * % OR + " - The symbols: [] {} <> ) OR + " - The symbols: \n \r space OR + " - The symbols: , : . + " 3. Have the start of highlight (hs) be the start of matched + " pattern (s) offsetted one to the right (+1) (see :h E401) + syn match goField /\.\w\+\ + \%(\%([\/\-\+*%]\)\|\ + \%([\[\]{}<\>\)]\)\|\ + \%([\!=\^|&]\)\|\ + \%([\n\r\ ]\)\|\ + \%([,\:.]\)\)\@=/hs=s+1 +endif +hi def link goField Identifier + +" Structs & Interfaces; +if s:HighlightTypes() + syn match goTypeConstructor /\<\w\+{\@=/ + syn match goTypeDecl /\/ nextgroup=goTypeName skipwhite skipnl + syn match goTypeName /\w\+/ contained nextgroup=goDeclType,goTypeParams skipwhite skipnl + syn match goDeclType /\<\%(interface\|struct\)\>/ skipwhite skipnl + hi def link goReceiverType Type +else + syn keyword goDeclType struct interface + syn keyword goDeclaration type +endif +hi def link goTypeConstructor Type +hi def link goTypeName Type +hi def link goTypeDecl Keyword +hi def link goDeclType Keyword + +" Variable Assignments +if s:HighlightVariableAssignments() + syn match goVarAssign /\v[_.[:alnum:]]+(,\s*[_.[:alnum:]]+)*\ze(\s*([-^+|^\/%&]|\*|\<\<|\>\>|\&\^)?\=[^=])/ + hi def link goVarAssign Special +endif + +" Variable Declarations +if s:HighlightVariableDeclarations() + syn match goVarDefs /\v\w+(,\s*\w+)*\ze(\s*:\=)/ + hi def link goVarDefs Special +endif + +" Build Constraints +if s:HighlightBuildConstraints() + syn match goBuildKeyword display contained "+build\|go:build" + " Highlight the known values of GOOS, GOARCH, and other +build options. + syn keyword goBuildDirectives contained + \ android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 + \ solaris windows 386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 + \ ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc + \ s390 s390x sparc sparc64 cgo ignore race + + " Other words in the build directive are build tags not listed above, so + " avoid highlighting them as comments by using a matchgroup just for the + " start of the comment. + " The rs=s+2 option lets the \s*+build portion be part of the inner region + " instead of the matchgroup so it will be highlighted as a goBuildKeyword. + syn region goBuildComment matchgroup=goBuildCommentStart + \ start="//\(\s*+build\s\|go:build\)"rs=s+2 end="$" + \ contains=goBuildKeyword,goBuildDirectives + hi def link goBuildCommentStart Comment + hi def link goBuildDirectives Type + hi def link goBuildKeyword PreProc +endif + +if s:HighlightBuildConstraints() || s:FoldEnable('package_comment') + " One or more line comments that are followed immediately by a "package" + " declaration are treated like package documentation, so these must be + " matched as comments to avoid looking like working build constraints. + " The he, me, and re options let the "package" itself be highlighted by + " the usual rules. + exe 'syn region goPackageComment start=/\v(\/\/.*\n)+\s*package/' + \ . ' end=/\v\n\s*package/he=e-7,me=e-7,re=e-7' + \ . ' contains=@goCommentGroup,@Spell' + \ . (s:FoldEnable('package_comment') ? ' fold' : '') + exe 'syn region goPackageComment start=/\v^\s*\/\*.*\n(.*\n)*\s*\*\/\npackage/' + \ . ' end=/\v\*\/\n\s*package/he=e-7,me=e-7,re=e-7' + \ . ' contains=@goCommentGroup,@Spell' + \ . (s:FoldEnable('package_comment') ? ' fold' : '') + hi def link goPackageComment Comment +endif + +" :GoCoverage commands +hi def link goCoverageNormalText Comment + +" Search backwards for a global declaration to start processing the syntax. +"syn sync match goSync grouphere NONE /^\(const\|var\|type\|func\)\>/ + +" There's a bug in the implementation of grouphere. For now, use the +" following as a more expensive/less precise workaround. +syn sync minlines=500 + +let b:current_syntax = "go" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: sw=2 sts=2 et diff --git a/runtime/syntax/godoc.vim b/runtime/syntax/godoc.vim new file mode 100644 index 0000000..0603f51 --- /dev/null +++ b/runtime/syntax/godoc.vim @@ -0,0 +1,19 @@ +" Vim syntax file +" Language: Godoc (generated documentation for go) +" Maintainer: David Barnett (https://github.com/google/vim-ft-go) +" Last Change: 2014 Aug 16 + +if exists('b:current_syntax') + finish +endif + +syn case match +syn match godocTitle "^\([A-Z][A-Z ]*\)$" + + +hi def link godocTitle Title + + +let b:current_syntax = 'godoc' + +" vim: sw=2 sts=2 et diff --git a/runtime/syntax/gp.vim b/runtime/syntax/gp.vim new file mode 100644 index 0000000..89f2d3f --- /dev/null +++ b/runtime/syntax/gp.vim @@ -0,0 +1,88 @@ +" Vim syntax file +" Language: gp (version 2.15) +" Maintainer: Karim Belabas +" Last change: 2023 Aug 22 +" URL: http://pari.math.u-bordeaux.fr + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" control statements +syntax keyword gpStatement break return next +syntax keyword gpConditional if iferr +syntax keyword gpRepeat until while for forcomposite fordiv +syntax keyword gpRepeat fordivfactored foreach forell forfactored +syntax keyword gpRepeat forpart forperm forprime forprimestep forqfvec +syntax keyword gpRepeat forsquarefree forstep forsubgroup forsubset +syntax keyword gpRepeat forvec +syntax keyword gpRepeat parfor parforeach parforprime parforprimestep +syntax keyword gpRepeat parforvec +" storage class +syntax keyword gpScope my local global export exportall +" defaults +syntax keyword gpInterfaceKey breakloop colors compatible +syntax keyword gpInterfaceKey datadir debug debugfiles debugmem +syntax keyword gpInterfaceKey echo factor_add_primes factor_proven format +syntax keyword gpInterfaceKey graphcolormap graphcolors +syntax keyword gpInterfaceKey help histfile histsize +syntax keyword gpInterfaceKey lines linewrap log logfile nbthreads +syntax keyword gpInterfaceKey new_galois_format output parisize parisizemax +syntax keyword gpInterfaceKey path plothsizes prettyprinter primelimit prompt +syntax keyword gpInterfaceKey prompt_cont psfile readline realbitprecision +syntax keyword gpInterfaceKey realprecision recover secure seriesprecision +syntax keyword gpInterfaceKey simplify sopath strictmatch TeXstyle +syntax keyword gpInterfaceKey threadsize threadsizemax timer + +syntax match gpInterface "^\s*\\[a-z].*" +syntax keyword gpInterface default +syntax keyword gpInput read input + +" functions +syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*[^ \t=]"me=e-1 contains=gpFunction,gpArgs +syntax match gpFunRegion "^\s*[a-zA-Z][_a-zA-Z0-9]*(.*)\s*=\s*$" contains=gpFunction,gpArgs +syntax match gpArgs contained "[a-zA-Z][_a-zA-Z0-9]*" +syntax match gpFunction contained "^\s*[a-zA-Z][_a-zA-Z0-9]*("me=e-1 + +" String and Character constants +" Highlight special (backslash'ed) characters differently +syntax match gpSpecial contained "\\[ent\\]" +syntax region gpString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gpSpecial + +"comments +syntax region gpComment start="/\*" end="\*/" contains=gpTodo +syntax match gpComment "\\\\.*" contains=gpTodo +syntax keyword gpTodo contained TODO +syntax sync ccomment gpComment minlines=10 + +"catch errors caused by wrong parenthesis +syntax region gpParen transparent start='(' end=')' contains=ALLBUT,gpParenError,gpTodo,gpFunction,gpArgs,gpSpecial +syntax match gpParenError ")" +syntax match gpInParen contained "[{}]" + +hi def link gpConditional Conditional +hi def link gpRepeat Repeat +hi def link gpError Error +hi def link gpParenError gpError +hi def link gpInParen gpError +hi def link gpStatement Statement +hi def link gpString String +hi def link gpComment Comment +hi def link gpInterface Type +hi def link gpInput Type +hi def link gpInterfaceKey Statement +hi def link gpFunction Function +hi def link gpScope Type +" contained ones +hi def link gpSpecial Special +hi def link gpTodo Todo +hi def link gpArgs Type + +let b:current_syntax = "gp" +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/gpg.vim b/runtime/syntax/gpg.vim new file mode 100644 index 0000000..c7f3584 --- /dev/null +++ b/runtime/syntax/gpg.vim @@ -0,0 +1,180 @@ +" Vim syntax file +" Language: gpg(1) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2010-10-14 +" Updated: 2023-01-23 @ObserverOfTime: added a couple of keywords +" 2023-03-21 Todd Zullinger : sync with gnupg-2.4.0 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=- + +syn keyword gpgTodo contained FIXME TODO XXX NOTE + +syn region gpgComment contained display oneline start='#' end='$' + \ contains=gpgTodo,gpgID,@Spell + +syn match gpgID contained display '\<\(0x\)\=\x\{8,}\>' + +syn match gpgBegin display '^' skipwhite nextgroup=gpgComment,gpgOption,gpgCommand + +syn keyword gpgCommand contained skipwhite nextgroup=gpgArg + \ change-passphrase check-sig check-signatures + \ check-sigs delete-keys delete-secret-and-public-keys + \ delete-secret-keys desig-revoke export + \ export-secret-keys export-secret-ssh-key + \ export-secret-subkeys export-ssh-key list-key + \ list-keys list-packets list-public-keys + \ list-secret-keys list-sig list-signatures list-sigs + \ passwd send-keys fetch-keys + \ generate-designated-revocation generate-revocation + \ gen-prime gen-random gen-revoke locate-external-keys + \ locate-keys lsign-key options print-md quick-add-key + \ quick-addkey quick-add-uid quick-adduid + \ quick-generate-key quick-gen-key quick-lsign-key + \ quick-revoke-sig quick-revoke-uid quick-revuid + \ quick-set-expire quick-set-primary-uid quick-sign-key + \ quick-update-pref receive-keys recv-keys refresh-keys + \ search-keys show-key show-keys sign-key tofu-policy +syn keyword gpgCommand contained skipwhite nextgroup=gpgArgError + \ card-edit card-status change-pin check-trustdb + \ clear-sign clearsign dearmor dearmour decrypt + \ decrypt-files detach-sign encrypt encrypt-files + \ edit-card edit-key enarmor enarmour export-ownertrust + \ fast-import import import-ownertrust key-edit + \ fingerprint fix-trustdb full-generate-key + \ full-gen-key generate-key gen-key gpgconf-list + \ gpgconf-test list-config list-gcrypt-config + \ list-trustdb no-options print-mds + \ rebuild-keydb-caches server sign store symmetric + \ update-trustdb verify verify-files + +syn keyword gpgOption contained skipwhite nextgroup=gpgArg + \ aead-algo agent-program attribute-fd attribute-file + \ auto-key-locate bzip2-compress-level cert-digest-algo + \ cert-notation cert-policy-url charset chuid + \ chunk-size cipher-algo command-fd command-file + \ comment compatibility-flags completes-needed + \ compliance compress-algo compression-algo + \ compress-level ctapi-driver debug + \ debug-allow-large-chunks debug-level + \ debug-set-iobuf-size default-cert-check-level + \ default-cert-expire default-cert-level default-key + \ default-keyserver-url default-new-key-algo + \ default-preference-list default-recipient + \ default-sig-expire digest-algo dirmngr-program + \ disable-cipher-algo disable-pubkey-algo display + \ display-charset encrypt-to exec-path export-filter + \ export-options faked-system-time force-ownertrust + \ gpg-agent-info group hidden-encrypt-to + \ hidden-recipient hidden-recipient-file homedir + \ import-filter import-options input-size-hint + \ keyboxd-program keyid-format key-origin keyring + \ keyserver keyserver-options known-notation lc-ctype + \ lc-messages limit-card-insert-tries list-filter + \ list-options local-user log-file logger-fd + \ logger-file marginals-needed max-cert-depth + \ max-output min-cert-level min-rsa-length output + \ override-session-key override-session-key-fd + \ passphrase passphrase-fd passphrase-file + \ passphrase-repeat pcsc-driver + \ personal-aead-preferences personal-cipher-preferences + \ personal-cipher-prefs personal-compress-preferences + \ personal-compress-prefs personal-digest-preferences + \ photo-viewer pinentry-mode primary-keyring + \ reader-port recipient recipient-file remote-user + \ request-origin s2k-cipher-algo s2k-count + \ s2k-digest-algo s2k-mode secret-keyring sender + \ set-filename set-filesize set-notation set-policy-url + \ sig-keyserver-url sig-notation sign-with + \ sig-policy-url status-fd status-file temp-directory + \ tofu-db-format tofu-default-policy trustdb-name + \ trusted-key trust-model try-secret-key ttyname + \ ttytype ungroup user verify-options weak-digest + \ xauthority +syn keyword gpgOption contained skipwhite nextgroup=gpgArgError + \ allow-freeform-uid allow-multiple-messages + \ allow-multisig-verification allow-non-selfsigned-uid + \ allow-old-cipher-algos allow-secret-key-import + \ allow-weak-digest-algos allow-weak-key-signatures + \ always-trust armor armour ask-cert-expire + \ ask-cert-level ask-sig-expire auto-check-trustdb + \ auto-key-import auto-key-retrieve batch + \ bzip2-decompress-lowmem compress-keys compress-sigs + \ debug-all debug-iolbf debug-quick-random + \ default-comment default-recipient-self disable-ccid + \ disable-dirmngr disable-dsa2 disable-large-rsa + \ disable-mdc disable-signer-uid dry-run dump-options + \ dump-option-table emit-version enable-dsa2 + \ enable-large-rsa enable-progress-filter + \ enable-special-filenames encrypt-to-default-key + \ escape-from-lines exit-on-status-write-error expert + \ fast-list-mode file-is-digest fixed-list-mode + \ forbid-gen-key force-aead force-mdc force-ocb + \ force-sign-key force-v3-sigs force-v4-certs + \ for-your-eyes-only full-timestrings gnupg help + \ honor-http-proxy ignore-crc-error ignore-mdc-error + \ ignore-time-conflict ignore-valid-from + \ include-key-block interactive legacy-list-mode + \ list-only lock-multiple lock-never lock-once + \ mangle-dos-filenames merge-only mimemode multifile no + \ no-allow-freeform-uid no-allow-multiple-messages + \ no-allow-non-selfsigned-uid no-armor no-armour + \ no-ask-cert-expire no-ask-cert-level + \ no-ask-sig-expire no-auto-check-trustdb + \ no-auto-key-import no-auto-key-locate + \ no-auto-key-retrieve no-autostart + \ no-auto-trust-new-key no-batch no-comments + \ no-default-keyring no-default-recipient + \ no-disable-mdc no-emit-version no-encrypt-to + \ no-escape-from-lines no-expensive-trust-checks + \ no-expert no-force-mdc no-force-v3-sigs + \ no-force-v4-certs no-for-your-eyes-only no-greeting + \ no-groups no-include-key-block no-keyring no-literal + \ no-mangle-dos-filenames no-mdc-warning + \ no-permission-warning no-pgp2 no-pgp6 no-pgp7 no-pgp8 + \ no-random-seed-file no-require-backsigs + \ no-require-cross-certification no-require-secmem + \ no-rfc2440-text no-secmem-warning no-show-notation + \ no-show-photos no-show-policy-url no-sig-cache + \ no-sk-comments no-skip-hidden-recipients + \ no-symkey-cache not-dash-escaped no-textmode + \ no-throw-keyids no-tty no-use-agent + \ no-use-embedded-filename no-utf8-strings no-verbose + \ no-version only-sign-text-ids openpgp + \ override-compliance-check pgp6 pgp7 pgp8 + \ preserve-permissions print-dane-records quiet + \ require-backsigs require-compliance + \ require-cross-certification require-secmem rfc2440 + \ rfc2440-text rfc4880 rfc4880bis show-keyring + \ show-notation show-photos show-policy-url + \ show-session-key sk-comments skip-hidden-recipients + \ skip-verify textmode throw-keyids try-all-secrets + \ unwrap use-agent use-embedded-filename use-keyboxd + \ use-only-openpgp-card utf8-strings verbose version + \ warranty with-colons with-fingerprint + \ with-icao-spelling with-key-data with-keygrip + \ with-key-origin with-key-screening with-secret + \ with-sig-check with-sig-list with-subkey-fingerprint + \ with-subkey-fingerprints with-tofu-info with-wkd-hash + \ yes + +syn match gpgArg contained display '\S\+\(\s\+\S\+\)*' contains=gpgID +syn match gpgArgError contained display '\S\+\(\s\+\S\+\)*' + +hi def link gpgComment Comment +hi def link gpgTodo Todo +hi def link gpgID Number +hi def link gpgOption Keyword +hi def link gpgCommand Error +hi def link gpgArgError Error + +let b:current_syntax = "gpg" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/gprof.vim b/runtime/syntax/gprof.vim new file mode 100644 index 0000000..d2c5cb4 --- /dev/null +++ b/runtime/syntax/gprof.vim @@ -0,0 +1,70 @@ +" Vim syntax file +" Language: Syntax for Gprof Output +" Maintainer: Dominique Pelle +" Last Change: 2021 Sep 19 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn spell notoplevel +syn case match +syn sync minlines=100 + +" Flat profile +syn match gprofFlatProfileTitle + \ "^Flat profile:$" +syn region gprofFlatProfileHeader + \ start="^Each sample counts as.*" + \ end="^ time.*name\s*$" +syn region gprofFlatProfileTrailer + \ start="^\s*%\s\+the percentage of the total running time.*" + \ end="^\s*the gprof listing if it were to be printed\." + +" Call graph +syn match gprofCallGraphTitle "Call graph (explanation follows)" +syn region gprofCallGraphHeader + \ start="^granularity: each sample hit covers.*" + \ end="^\s*index % time\s\+self\s\+children\s\+called\s\+name$" +syn match gprofCallGraphFunction "\<\(\d\+\.\d\+\s\+\)\{3}\([0-9+]\+\)\?\s\+[a-zA-Z_<].*\ze\[" +syn match gprofCallGraphSeparator "^-\+$" +syn region gprofCallGraphTrailer + \ start="This table describes the call tree of the program" + \ end="^\s*the cycle\.$" + +" Index +syn region gprofIndex + \ start="^Index by function name$" + \ end="\%$" + +syn match gprofIndexFunctionTitle "^Index by function name$" + +syn match gprofNumbers "^\s*[0-9 ./+]\+" +syn match gprofFunctionIndex "\[\d\+\]" +syn match gprofSpecial "<\(spontaneous\|cycle \d\+\)>" + +hi def link gprofFlatProfileTitle Title +hi def link gprofFlatProfileHeader Comment +hi def link gprofFlatProfileFunction Number +hi def link gprofFlatProfileTrailer Comment + +hi def link gprofCallGraphTitle Title +hi def link gprofCallGraphHeader Comment +hi def link gprofFlatProfileFunction Number +hi def link gprofCallGraphFunction Special +hi def link gprofCallGraphTrailer Comment +hi def link gprofCallGraphSeparator Label + +hi def link gprofFunctionIndex Label +hi def link gprofSpecial SpecialKey +hi def link gprofNumbers Number + +hi def link gprofIndexFunctionTitle Title + +let b:current_syntax = "gprof" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/grads.vim b/runtime/syntax/grads.vim new file mode 100644 index 0000000..50be14b --- /dev/null +++ b/runtime/syntax/grads.vim @@ -0,0 +1,73 @@ +" Vim syntax file +" Language: grads (GrADS scripts) +" Maintainer: Stefan Fronzek (sfronzek at gmx dot net) +" Last change: 13 Feb 2004 + +" Grid Analysis and Display System (GrADS); http://grads.iges.org/grads +" This syntax file defines highlighting for only very few features of +" the GrADS scripting language. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" GrADS is entirely case-insensitive. +syn case ignore + +" The keywords + +syn keyword gradsStatement if else endif break exit return +syn keyword gradsStatement while endwhile say prompt pull function +syn keyword gradsStatement subwrd sublin substr read write close +" String + +syn region gradsString start=+'+ end=+'+ + +" Integer number +syn match gradsNumber "[+-]\=\<[0-9]\+\>" + +" Operator + +"syn keyword gradsOperator | ! % & != >= +"syn match gradsOperator "[^\.]not[^a-zA-Z]" + +" Variables + +syn keyword gradsFixVariables lat lon lev result rec rc +syn match gradsglobalVariables "_[a-zA-Z][a-zA-Z0-9]*" +syn match gradsVariables "[a-zA-Z][a-zA-Z0-9]*" +syn match gradsConst "#[A-Z][A-Z_]+" + +" Comments + +syn match gradsComment "\*.*" + +" Typical Typos + +" for C programmers: +" syn match gradsTypos "==" +" syn match gradsTypos "!=" + +" Define the default highlighting. +" Only when an item doesn't hgs highlighting+yet + +hi def link gradsStatement Statement + +hi def link gradsString String +hi def link gradsNumber Number + +hi def link gradsFixVariables Special +hi def link gradsVariables Identifier +hi def link gradsglobalVariables Special +hi def link gradsConst Special + +hi def link gradsClassMethods Function + +hi def link gradsOperator Operator +hi def link gradsComment Comment + +hi def link gradsTypos Error + + +let b:current_syntax = "grads" diff --git a/runtime/syntax/gretl.vim b/runtime/syntax/gretl.vim new file mode 100644 index 0000000..671142a --- /dev/null +++ b/runtime/syntax/gretl.vim @@ -0,0 +1,85 @@ +" Vim syntax file +" Language: gretl (http://gretl.sf.net) +" Maintainer: Vaidotas Zemlys +" Last Change: 2006 Apr 30 +" Filenames: *.inp *.gretl +" URL: http://uosis.mif.vu.lt/~zemlys/vim-syntax/gretl.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,. + +syn case match + +" Constant +" string enclosed in double quotes +syn region gString start=/"/ skip=/\\\\\|\\"/ end=/"/ +" number with no fractional part or exponent +syn match gNumber /\d\+/ +" floating point number with integer and fractional parts and optional exponent +syn match gFloat /\d\+\.\d*\([Ee][-+]\=\d\+\)\=/ +" floating point number with no integer part and optional exponent +syn match gFloat /\.\d\+\([Ee][-+]\=\d\+\)\=/ +" floating point number with no fractional part and optional exponent +syn match gFloat /\d\+[Ee][-+]\=\d\+/ + +" Gretl commands +syn keyword gCommands add addobs addto adf append ar arch arma break boxplot chow coeffsum coint coint2 corc corr corrgm criteria critical cusum data delete diff else end endif endloop eqnprint equation estimate fcast fcasterr fit freq function funcerr garch genr gnuplot graph hausman hccm help hilu hsk hurst if import include info kpss label labels lad lags ldiff leverage lmtest logistic logit logs loop mahal meantest mle modeltab mpols multiply nls nulldata ols omit omitfrom open outfile panel pca pergm plot poisson pooled print printf probit pvalue pwe quit remember rename reset restrict rhodiff rmplot run runs scatters sdiff set setobs setmiss shell sim smpl spearman square store summary system tabprint testuhat tobit transpos tsls var varlist vartest vecm vif wls + +"Gretl genr functions +syn keyword gGenrFunc log exp sin cos tan atan diff ldiff sdiff mean sd min max sort int ln coeff abs rho sqrt sum nobs firstobs lastobs normal uniform stderr cum missing ok misszero corr vcv var sst cov median zeromiss pvalue critical obsnum mpow dnorm cnorm gamma lngamma resample hpfilt bkfilt fracdiff varnum isvector islist nelem + +" Identifier +" identifier with leading letter and optional following keyword characters +syn match gIdentifier /\a\k*/ + +" Variable with leading $ +syn match gVariable /\$\k*/ +" Arrow +syn match gArrow /<-/ + +" Special +syn match gDelimiter /[,;:]/ + +" Error +syn region gRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError,gBCstart,gBCend +syn region gRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError +syn region gRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError +syn match gError /[)\]}]/ +syn match gBraceError /[)}]/ contained +syn match gCurlyError /[)\]]/ contained +syn match gParenError /[\]}]/ contained + +" Comment +syn match gComment /#.*/ +syn match gBCstart /(\*/ +syn match gBCend /\*)/ + +syn region gBlockComment matchgroup=gCommentStart start="(\*" end="\*)" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link gComment Comment +hi def link gCommentStart Comment +hi def link gBlockComment Comment +hi def link gString String +hi def link gNumber Number +hi def link gBoolean Boolean +hi def link gFloat Float +hi def link gCommands Repeat +hi def link gGenrFunc Type +hi def link gDelimiter Delimiter +hi def link gError Error +hi def link gBraceError Error +hi def link gCurlyError Error +hi def link gParenError Error +hi def link gIdentifier Normal +hi def link gVariable Identifier +hi def link gArrow Repeat + +let b:current_syntax="gretl" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/groff.vim b/runtime/syntax/groff.vim new file mode 100644 index 0000000..c076c8d --- /dev/null +++ b/runtime/syntax/groff.vim @@ -0,0 +1,10 @@ +" VIM syntax file +" Language: groff +" Maintainer: John Marshall +" Previous Maintainer: Pedro Alejandro López-Valencia +" Last Change: 2003-05-08-12:41:13 GMT-5. + +" This uses the nroff.vim syntax file. +let b:main_syntax = "nroff" +let b:nroff_is_groff = 1 +runtime! syntax/nroff.vim diff --git a/runtime/syntax/groovy.vim b/runtime/syntax/groovy.vim new file mode 100644 index 0000000..e48279b --- /dev/null +++ b/runtime/syntax/groovy.vim @@ -0,0 +1,451 @@ +" Vim syntax file +" Language: Groovy +" Original Author: Alessio Pace +" Maintainer: Tobias Rapp +" Version: 0.1.18 +" URL: http://www.vim.org/scripts/script.php?script_id=945 +" Last Change: 2021 Feb 03 + +" THE ORIGINAL AUTHOR'S NOTES: +" +" This is my very first vim script, I hope to have +" done it the right way. +" +" I must directly or indirectly thank the author of java.vim and ruby.vim: +" I copied from them most of the stuff :-) +" +" Relies on html.vim + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +" +" HOWTO USE IT (INSTALL) when not part of the distribution: +" +" 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder +" +" 2) add this line to recognize groovy files by filename extension: +" +" au BufNewFile,BufRead *.groovy setf groovy +" in the global vim filetype.vim file or inside $HOME/.vim/filetype.vim +" +" 3) add this part to recognize by content groovy script (no extension needed :-) +" +" if did_filetype() +" finish +" endif +" if getline(1) =~ '^#!.*[/\\]groovy\>' +" setf groovy +" endif +" +" in the global scripts.vim file or in $HOME/.vim/scripts.vim +" +" 4) open/write a .groovy file or a groovy script :-) +" +" Let me know if you like it or send me patches, so that I can improve it +" when I have time + +" quit when a syntax file was already loaded +if !exists("main_syntax") + if exists("b:current_syntax") + finish + endif + " we define it here so that included files can test for it + let main_syntax='groovy' +endif + +let s:cpo_save = &cpo +set cpo&vim + +" ########################## +" Java stuff taken from java.vim +" some characters that cannot be in a groovy program (outside a string) +" syn match groovyError "[\\@`]" +"syn match groovyError "<<<\|\.\.\|=>\|<>\|||=\|&&=\|[^-]->\|\*\/" +"syn match groovyOK "\.\.\." + +" keyword definitions +syn keyword groovyExternal native package +syn match groovyExternal "\\(\s\+static\>\)\?" +syn keyword groovyError goto const +syn keyword groovyConditional if else switch +syn keyword groovyRepeat while for do +syn keyword groovyBoolean true false +syn keyword groovyConstant null +syn keyword groovyTypedef this super +syn keyword groovyOperator new instanceof +syn keyword groovyType boolean char byte short int long float double +syn keyword groovyType void +syn keyword groovyType Integer Double Date Boolean Float String Array Vector List +syn keyword groovyStatement return +syn keyword groovyStorageClass static synchronized transient volatile final strictfp serializable +syn keyword groovyExceptions throw try catch finally +syn keyword groovyAssert assert +syn keyword groovyMethodDecl synchronized throws +syn keyword groovyClassDecl extends implements interface +" to differentiate the keyword class from MyClass.class we use a match here +syn match groovyTypedef "\.\s*\"ms=s+1 +syn keyword groovyClassDecl enum +syn match groovyClassDecl "^class\>" +syn match groovyClassDecl "[^.]\s*\"ms=s+1 +syn keyword groovyBranch break continue nextgroup=groovyUserLabelRef skipwhite +syn match groovyUserLabelRef "\k\+" contained +syn keyword groovyScopeDecl public protected private abstract + + +if exists("groovy_highlight_groovy_lang_ids") || exists("groovy_highlight_groovy_lang") || exists("groovy_highlight_all") + " groovy.lang.* + syn keyword groovyLangClass Closure MetaMethod GroovyObject + + syn match groovyJavaLangClass "\" + syn keyword groovyJavaLangClass Cloneable Comparable Runnable Serializable Boolean Byte Class Object + syn keyword groovyJavaLangClass Character CharSequence ClassLoader Compiler + " syn keyword groovyJavaLangClass Integer Double Float Long + syn keyword groovyJavaLangClass InheritableThreadLocal Math Number Object Package Process + syn keyword groovyJavaLangClass Runtime RuntimePermission InheritableThreadLocal + syn keyword groovyJavaLangClass SecurityManager Short StrictMath StackTraceElement + syn keyword groovyJavaLangClass StringBuffer Thread ThreadGroup + syn keyword groovyJavaLangClass ThreadLocal Throwable Void ArithmeticException + syn keyword groovyJavaLangClass ArrayIndexOutOfBoundsException AssertionError + syn keyword groovyJavaLangClass ArrayStoreException ClassCastException + syn keyword groovyJavaLangClass ClassNotFoundException + syn keyword groovyJavaLangClass CloneNotSupportedException Exception + syn keyword groovyJavaLangClass IllegalAccessException + syn keyword groovyJavaLangClass IllegalArgumentException + syn keyword groovyJavaLangClass IllegalMonitorStateException + syn keyword groovyJavaLangClass IllegalStateException + syn keyword groovyJavaLangClass IllegalThreadStateException + syn keyword groovyJavaLangClass IndexOutOfBoundsException + syn keyword groovyJavaLangClass InstantiationException InterruptedException + syn keyword groovyJavaLangClass NegativeArraySizeException NoSuchFieldException + syn keyword groovyJavaLangClass NoSuchMethodException NullPointerException + syn keyword groovyJavaLangClass NumberFormatException RuntimeException + syn keyword groovyJavaLangClass SecurityException StringIndexOutOfBoundsException + syn keyword groovyJavaLangClass UnsupportedOperationException + syn keyword groovyJavaLangClass AbstractMethodError ClassCircularityError + syn keyword groovyJavaLangClass ClassFormatError Error ExceptionInInitializerError + syn keyword groovyJavaLangClass IllegalAccessError InstantiationError + syn keyword groovyJavaLangClass IncompatibleClassChangeError InternalError + syn keyword groovyJavaLangClass LinkageError NoClassDefFoundError + syn keyword groovyJavaLangClass NoSuchFieldError NoSuchMethodError + syn keyword groovyJavaLangClass OutOfMemoryError StackOverflowError + syn keyword groovyJavaLangClass ThreadDeath UnknownError UnsatisfiedLinkError + syn keyword groovyJavaLangClass UnsupportedClassVersionError VerifyError + syn keyword groovyJavaLangClass VirtualMachineError + + syn keyword groovyJavaLangObject clone equals finalize getClass hashCode + syn keyword groovyJavaLangObject notify notifyAll toString wait + + hi def link groovyLangClass groovyConstant + hi def link groovyJavaLangClass groovyExternal + hi def link groovyJavaLangObject groovyConstant + syn cluster groovyTop add=groovyJavaLangObject,groovyJavaLangClass,groovyLangClass + syn cluster groovyClasses add=groovyJavaLangClass,groovyLangClass +endif + + +" Groovy stuff +syn match groovyOperator "\.\." +syn match groovyOperator "<\{2,3}" +syn match groovyOperator ">\{2,3}" +syn match groovyOperator "->" +syn match groovyLineComment '^\%1l#!.*' " Shebang line +syn match groovyExceptions "\\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>" + +" Groovy JDK stuff +syn keyword groovyJDKBuiltin as def in +syn keyword groovyJDKOperOverl div minus plus abs round power multiply +syn keyword groovyJDKMethods each call inject sort print println +syn keyword groovyJDKMethods getAt putAt size push pop toList getText writeLine eachLine readLines +syn keyword groovyJDKMethods withReader withStream withWriter withPrintWriter write read leftShift +syn keyword groovyJDKMethods withWriterAppend readBytes splitEachLine +syn keyword groovyJDKMethods newInputStream newOutputStream newPrintWriter newReader newWriter +syn keyword groovyJDKMethods compareTo next previous isCase +syn keyword groovyJDKMethods times step toInteger upto any collect dump every find findAll grep +syn keyword groovyJDKMethods inspect invokeMethods join +syn keyword groovyJDKMethods getErr getIn getOut waitForOrKill +syn keyword groovyJDKMethods count tokenize asList flatten immutable intersect reverse reverseEach +syn keyword groovyJDKMethods subMap append asWritable eachByte eachLine eachFile +syn cluster groovyTop add=groovyJDKBuiltin,groovyJDKOperOverl,groovyJDKMethods + +" no useful I think, so I comment it.. +"if filereadable(expand(":p:h")."/groovyid.vim") + " source :p:h/groovyid.vim +"endif + +if exists("groovy_space_errors") + if !exists("groovy_no_trail_space_error") + syn match groovySpaceError "\s\+$" + endif + if !exists("groovy_no_tab_space_error") + syn match groovySpaceError " \+\t"me=e-1 + endif +endif + +" it is a better case construct than java.vim to match groovy syntax +syn region groovyLabelRegion transparent matchgroup=groovyLabel start="\" matchgroup=NONE end=":\|$" contains=groovyNumber,groovyString,groovyLangClass,groovyJavaLangClass +syn match groovyUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=groovyLabel +syn keyword groovyLabel default + +if !exists("groovy_allow_cpp_keywords") + syn keyword groovyError auto delete extern friend inline redeclared + syn keyword groovyError register signed sizeof struct template typedef union + syn keyword groovyError unsigned operator +endif + +" The following cluster contains all groovy groups except the contained ones +syn cluster groovyTop add=groovyExternal,groovyError,groovyError,groovyBranch,groovyLabelRegion,groovyLabel,groovyConditional,groovyRepeat,groovyBoolean,groovyConstant,groovyTypedef,groovyOperator,groovyType,groovyType,groovyStatement,groovyStorageClass,groovyAssert,groovyExceptions,groovyMethodDecl,groovyClassDecl,groovyClassDecl,groovyClassDecl,groovyScopeDecl,groovyError,groovyError2,groovyUserLabel,groovyLangObject + + +" Comments +syn keyword groovyTodo contained TODO FIXME XXX +if exists("groovy_comment_strings") + syn region groovyCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=groovySpecial,groovyCommentStar,groovySpecialChar,@Spell + syn region groovyComment2String contained start=+"+ end=+$\|"+ contains=groovySpecial,groovySpecialChar,@Spell + syn match groovyCommentCharacter contained "'\\[^']\{1,6\}'" contains=groovySpecialChar + syn match groovyCommentCharacter contained "'\\''" contains=groovySpecialChar + syn match groovyCommentCharacter contained "'[^\\]'" + syn cluster groovyCommentSpecial add=groovyCommentString,groovyCommentCharacter,groovyNumber + syn cluster groovyCommentSpecial2 add=groovyComment2String,groovyCommentCharacter,groovyNumber +endif +syn region groovyComment start="/\*" end="\*/" contains=@groovyCommentSpecial,groovyTodo,@Spell +syn match groovyCommentStar contained "^\s*\*[^/]"me=e-1 +syn match groovyCommentStar contained "^\s*\*$" +syn match groovyLineComment "//.*" contains=@groovyCommentSpecial2,groovyTodo,@Spell +hi def link groovyCommentString groovyString +hi def link groovyComment2String groovyString +hi def link groovyCommentCharacter groovyCharacter + +syn cluster groovyTop add=groovyComment,groovyLineComment + +if !exists("groovy_ignore_groovydoc") && main_syntax != 'jsp' + syntax case ignore + " syntax coloring for groovydoc comments (HTML) + " syntax include @groovyHtml :p:h/html.vim + syntax include @groovyHtml runtime! syntax/html.vim + unlet b:current_syntax + syntax spell default " added by Bram + syn region groovyDocComment start="/\*\*" end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell + syn region groovyCommentTitle contained matchgroup=groovyDocComment start="/\*\*" matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags + + syn region groovyDocTags contained start="{@\(link\|linkplain\|inherit[Dd]oc\|doc[rR]oot\|value\)" end="}" + syn match groovyDocTags contained "@\(see\|param\|exception\|throws\|since\)\s\+\S\+" contains=groovyDocParam + syn match groovyDocParam contained "\s\S\+" + syn match groovyDocTags contained "@\(version\|author\|return\|deprecated\|serial\|serialField\|serialData\)\>" + syntax case match +endif + +" match the special comment /**/ +syn match groovyComment "/\*\*/" + +" Strings and constants +syn match groovySpecialError contained "\\." +syn match groovySpecialCharError contained "[^']" +syn match groovySpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)" +syn match groovyRegexChar contained "\\." +syn region groovyString start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr +syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell +syn region groovyString start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr +syn region groovyString start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell +if exists("groovy_regex_strings") + " regex strings interfere with the division operator and thus are disabled + " by default + syn region groovyString start='/[^/*]' end='/' contains=groovySpecialChar,groovyRegexChar,groovyELExpr +endif +" syn region groovyELExpr start=+${+ end=+}+ keepend contained +syn match groovyELExpr /\${.\{-}}/ contained +" Fix: force use of the NFA regexp engine (2), see GitHub issue #7280 +syn match groovyELExpr /\%#=2\$[a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE_][a-zA-Z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\uFFFE0-9_.]*/ contained +hi def link groovyELExpr Identifier + +" TODO: better matching. I am waiting to understand how it really works in groovy +" syn region groovyClosureParamsBraces start=+|+ end=+|+ contains=groovyClosureParams +" syn match groovyClosureParams "[ a-zA-Z0-9_*]\+" contained +" hi def link groovyClosureParams Identifier + +" next line disabled, it can cause a crash for a long line +"syn match groovyStringError +"\([^"\\]\|\\.\)*$+ + +" disabled: in groovy strings or characters are written the same +" syn match groovyCharacter "'[^']*'" contains=groovySpecialChar,groovySpecialCharError +" syn match groovyCharacter "'\\''" contains=groovySpecialChar +" syn match groovyCharacter "'[^\\]'" +syn match groovyNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" +syn match groovyNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" +syn match groovyNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" +syn match groovyNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" + +" unicode characters +syn match groovySpecial "\\u\d\{4\}" + +syn cluster groovyTop add=groovyString,groovyCharacter,groovyNumber,groovySpecial,groovyStringError + +if exists("groovy_highlight_functions") + if groovy_highlight_functions == "indent" + syn match groovyFuncDef "^\(\t\| \{8\}\)[_$a-zA-Z][_$a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses + syn region groovyFuncDef start=+^\(\t\| \{8\}\)[$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses + syn match groovyFuncDef "^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*)" contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses + syn region groovyFuncDef start=+^ [$_a-zA-Z][$_a-zA-Z0-9_. \[\]]*([^-+*/()]*,\s*+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,@groovyClasses + else + " This line catches method declarations at any indentation>0, but it assumes + " two things: + " 1. class names are always capitalized (ie: Button) + " 2. method names are never capitalized (except constructors, of course) + syn region groovyFuncDef start=+^\s\+\(\(public\|protected\|private\|static\|abstract\|final\|native\|synchronized\)\s\+\)*\(\(void\|boolean\|char\|byte\|short\|int\|long\|float\|double\|\([A-Za-z_][A-Za-z0-9_$]*\.\)*[A-Z][A-Za-z0-9_$]*\)\(<[^>]*>\)\=\(\[\]\)*\s\+[a-z][A-Za-z0-9_$]*\|[A-Z][A-Za-z0-9_$]*\)\s*([^0-9]+ end=+)+ contains=groovyScopeDecl,groovyType,groovyStorageClass,groovyComment,groovyLineComment,@groovyClasses + endif + syn match groovyBraces "[{}]" + syn cluster groovyTop add=groovyFuncDef,groovyBraces +endif + +if exists("groovy_highlight_debug") + + " Strings and constants + syn match groovyDebugSpecial contained "\\\d\d\d\|\\." + syn region groovyDebugString contained start=+"+ end=+"+ contains=groovyDebugSpecial + syn match groovyDebugStringError +"\([^"\\]\|\\.\)*$+ + syn match groovyDebugCharacter contained "'[^\\]'" + syn match groovyDebugSpecialCharacter contained "'\\.'" + syn match groovyDebugSpecialCharacter contained "'\\''" + syn match groovyDebugNumber contained "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" + syn match groovyDebugNumber contained "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" + syn match groovyDebugNumber contained "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" + syn match groovyDebugNumber contained "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" + syn keyword groovyDebugBoolean contained true false + syn keyword groovyDebugType contained null this super + syn region groovyDebugParen start=+(+ end=+)+ contained contains=groovyDebug.*,groovyDebugParen + + " to make this work you must define the highlighting for these groups + syn match groovyDebug "\\|\<[A-Z]\{1,}[a-zA-Z0-9]*Exception\>" + + +if !exists("groovy_minlines") + let groovy_minlines = 10 +endif +exec "syn sync ccomment groovyComment minlines=" . groovy_minlines + + +" ################### +" Groovy stuff +" syn match groovyOperator "|[ ,a-zA-Z0-9_*]\+|" + +" All groovy valid tokens +" syn match groovyTokens ";\|,\|<=>\|<>\|:\|:=\|>\|>=\|=\|==\|<\|<=\|!=\|/\|/=\|\.\.|\.\.\.\|\~=\|\~==" +" syn match groovyTokens "\*=\|&\|&=\|\*\|->\|\~\|+\|-\|/\|?\|<<<\|>>>\|<<\|>>" + +" Must put explicit these ones because groovy.vim mark them as errors otherwise +" syn match groovyTokens "<=>\|<>\|==\~" +"syn cluster groovyTop add=groovyTokens + +" Mark these as operators + +" Highlight brackets +" syn match groovyBraces "[{}]" +" syn match groovyBraces "[\[\]]" +" syn match groovyBraces "[\|]" + +if exists("groovy_mark_braces_in_parens_as_errors") + syn match groovyInParen contained "[{}]" + hi def link groovyInParen groovyError + syn cluster groovyTop add=groovyInParen +endif + +" catch errors caused by wrong parenthesis +syn region groovyParenT transparent matchgroup=groovyParen start="(" end=")" contains=@groovyTop,groovyParenT1 +syn region groovyParenT1 transparent matchgroup=groovyParen1 start="(" end=")" contains=@groovyTop,groovyParenT2 contained +syn region groovyParenT2 transparent matchgroup=groovyParen2 start="(" end=")" contains=@groovyTop,groovyParenT contained +syn match groovyParenError ")" +hi def link groovyParenError groovyError + +" catch errors caused by wrong square parenthesis +syn region groovyParenT transparent matchgroup=groovyParen start="\[" end="\]" contains=@groovyTop,groovyParenT1 +syn region groovyParenT1 transparent matchgroup=groovyParen1 start="\[" end="\]" contains=@groovyTop,groovyParenT2 contained +syn region groovyParenT2 transparent matchgroup=groovyParen2 start="\[" end="\]" contains=@groovyTop,groovyParenT contained +syn match groovyParenError "\]" + +" ############################### +" java.vim default highlighting +hi def link groovyFuncDef Function +hi def link groovyBraces Function +hi def link groovyBranch Conditional +hi def link groovyUserLabelRef groovyUserLabel +hi def link groovyLabel Label +hi def link groovyUserLabel Label +hi def link groovyConditional Conditional +hi def link groovyRepeat Repeat +hi def link groovyExceptions Exception +hi def link groovyAssert Statement +hi def link groovyStorageClass StorageClass +hi def link groovyMethodDecl groovyStorageClass +hi def link groovyClassDecl groovyStorageClass +hi def link groovyScopeDecl groovyStorageClass +hi def link groovyBoolean Boolean +hi def link groovySpecial Special +hi def link groovySpecialError Error +hi def link groovySpecialCharError Error +hi def link groovyString String +hi def link groovyRegexChar String +hi def link groovyCharacter Character +hi def link groovySpecialChar SpecialChar +hi def link groovyNumber Number +hi def link groovyError Error +hi def link groovyStringError Error +hi def link groovyStatement Statement +hi def link groovyOperator Operator +hi def link groovyComment Comment +hi def link groovyDocComment Comment +hi def link groovyLineComment Comment +hi def link groovyConstant Constant +hi def link groovyTypedef Typedef +hi def link groovyTodo Todo + +hi def link groovyCommentTitle SpecialComment +hi def link groovyDocTags Special +hi def link groovyDocParam Function +hi def link groovyCommentStar groovyComment + +hi def link groovyType Type +hi def link groovyExternal Include + +hi def link htmlComment Special +hi def link htmlCommentPart Special +hi def link groovySpaceError Error +hi def link groovyJDKBuiltin Special +hi def link groovyJDKOperOverl Operator +hi def link groovyJDKMethods Function + + +let b:current_syntax = "groovy" +if main_syntax == 'groovy' + unlet main_syntax +endif + +let b:spell_options="contained" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/group.vim b/runtime/syntax/group.vim new file mode 100644 index 0000000..f62a4a1 --- /dev/null +++ b/runtime/syntax/group.vim @@ -0,0 +1,52 @@ +" Vim syntax file +" Language: group(5) user group file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2012-08-05 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match groupBegin display '^' nextgroup=groupName + +syn match groupName contained display '[^:]\+' + \ nextgroup=groupPasswordColon + +syn match groupPasswordColon contained display ':' + \ nextgroup=groupPassword,groupShadow + +syn match groupPassword contained display '[^:]*' + \ nextgroup=groupGIDColon + +syn match groupShadow contained display '[x*]' nextgroup=groupGIDColon + +syn match groupGIDColon contained display ':' nextgroup=groupGID + +syn match groupGID contained display '\d*' + \ nextgroup=groupUserListColon + +syn match groupUserListColon contained display ':' nextgroup=groupUserList + +syn match groupUserList contained '[^,]\+' + \ nextgroup=groupUserListSep + +syn match groupUserListSep contained display ',' nextgroup=groupUserList + +hi def link groupDelimiter Normal +hi def link groupName Identifier +hi def link groupPasswordColon groupDelimiter +hi def link groupPassword Number +hi def link groupShadow Special +hi def link groupGIDColon groupDelimiter +hi def link groupGID Number +hi def link groupUserListColon groupDelimiter +hi def link groupUserList Identifier +hi def link groupUserListSep groupDelimiter + +let b:current_syntax = "group" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/grub.vim b/runtime/syntax/grub.vim new file mode 100644 index 0000000..3743ae3 --- /dev/null +++ b/runtime/syntax/grub.vim @@ -0,0 +1,93 @@ +" Vim syntax file +" Language: grub(8) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword grubTodo contained TODO FIXME XXX NOTE + +syn region grubComment display oneline start='^#' end='$' + \ contains=grubTodo,@Spell + +syn match grubDevice display + \ '(\([fh]d\d\|\d\+\|0x\x\+\)\(,\d\+\)\=\(,\l\)\=)' + +syn match grubBlock display '\(\d\+\)\=+\d\+\(,\(\d\+\)\=+\d\+\)*' + +syn match grubNumbers display '+\=\<\d\+\|0x\x\+\>' + +syn match grubBegin display '^' + \ nextgroup=@grubCommands,grubComment skipwhite + +syn cluster grubCommands contains=grubCommand,grubTitleCommand + +syn keyword grubCommand contained default fallback hiddenmenu timeout + +syn keyword grubTitleCommand contained title nextgroup=grubTitle skipwhite + +syn match grubTitle contained display '.*' + +syn keyword grubCommand contained bootp color device dhcp hide ifconfig + \ pager partnew parttype password rarp serial setkey + \ terminal tftpserver unhide blocklist boot cat + \ chainloader cmp configfile debug displayapm + \ displaymem embed find fstest geometry halt help + \ impsprobe initrd install ioprobe kernel lock + \ makeactive map md5crypt module modulenounzip pause + \ quit reboot read root rootnoverify savedefault setup + \ testload testvbe uppermem vbeprobe + +syn keyword grubSpecial saved + +syn match grubBlink display 'blink-' +syn keyword grubBlack black +syn keyword grubBlue blue +syn keyword grubGreen green +syn keyword grubRed red +syn keyword grubMagenta magenta +syn keyword grubBrown brown yellow +syn keyword grubWhite white +syn match grubLightGray display 'light-gray' +syn match grubLightBlue display 'light-blue' +syn match grubLightGreen display 'light-green' +syn match grubLightCyan display 'light-cyan' +syn match grubLightRed display 'light-red' +syn match grubLightMagenta display 'light-magenta' +syn match grubDarkGray display 'dark-gray' + +hi def link grubComment Comment +hi def link grubTodo Todo +hi def link grubNumbers Number +hi def link grubDevice Identifier +hi def link grubBlock Identifier +hi def link grubCommand Keyword +hi def link grubTitleCommand grubCommand +hi def link grubTitle String +hi def link grubSpecial Special + +hi def grubBlink cterm=inverse +hi def grubBlack ctermfg=Black ctermbg=White guifg=Black guibg=White +hi def grubBlue ctermfg=DarkBlue guifg=DarkBlue +hi def grubGreen ctermfg=DarkGreen guifg=DarkGreen +hi def grubRed ctermfg=DarkRed guifg=DarkRed +hi def grubMagenta ctermfg=DarkMagenta guifg=DarkMagenta +hi def grubBrown ctermfg=Brown guifg=Brown +hi def grubWhite ctermfg=White ctermbg=Black guifg=White guibg=Black +hi def grubLightGray ctermfg=LightGray guifg=LightGray +hi def grubLightBlue ctermfg=LightBlue guifg=LightBlue +hi def grubLightGreen ctermfg=LightGreen guifg=LightGreen +hi def grubLightCyan ctermfg=LightCyan guifg=LightCyan +hi def grubLightRed ctermfg=LightRed guifg=LightRed +hi def grubLightMagenta ctermfg=LightMagenta guifg=LightMagenta +hi def grubDarkGray ctermfg=DarkGray guifg=DarkGray + +let b:current_syntax = "grub" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/gsp.vim b/runtime/syntax/gsp.vim new file mode 100644 index 0000000..6270b2a --- /dev/null +++ b/runtime/syntax/gsp.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: GSP - GNU Server Pages (v. 0.86) +" Created By: Nathaniel Harward nharward@yahoo.com +" Last Changed: 2012 Jan 08 by Thilo Six +" Filenames: *.gsp +" URL: http://www.constructicon.com/~nharward/vim/syntax/gsp.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'gsp' +endif + +" Source HTML syntax +runtime! syntax/html.vim +unlet b:current_syntax + +syn case match + +" Include Java syntax +syn include @gspJava syntax/java.vim + +let s:cpo_save = &cpo +set cpo&vim + +" Add as an HTML tag name along with its args +syn keyword htmlTagName contained java +syn keyword htmlArg contained type file page + +" Redefine some HTML things to include (and highlight) gspInLine code in +" places where it's likely to be found +syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine +syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,gspInLine +syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc,gspInLine +syn region htmlEndTag start=++ contains=htmlTagN,htmlTagError,gspInLine +syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster,gspInLine +syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster,gspInLine +syn match htmlTagN contained +[^>]*\>" end=""me=e-7 contains=@gspJava,htmlTag +syn region gspInLine matchgroup=htmlError start="`" end="`" contains=@gspJava + +let b:current_syntax = "gsp" + +if main_syntax == 'gsp' + unlet main_syntax +endif + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/gtkrc.vim b/runtime/syntax/gtkrc.vim new file mode 100644 index 0000000..9c1bc2a --- /dev/null +++ b/runtime/syntax/gtkrc.vim @@ -0,0 +1,126 @@ +" Vim syntax file +" This is a GENERATED FILE. Please always refer to source file at the URI below. +" Language: Gtk+ theme files `gtkrc' +" Maintainer: David Ne\v{c}as (Yeti) +" Last Change: 2002-10-31 +" URL: http://trific.ath.cx/Ftp/vim/syntax/gtkrc.vim + +" Setup +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=_,-,a-z,A-Z,48-57 + +syn case match + +" Base constructs +syn match gtkrcComment "#.*$" contains=gtkrcFixme +syn keyword gtkrcFixme FIXME TODO XXX NOT contained +syn region gtkrcACString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=gtkrcWPathSpecial,gtkrcClassName,gtkrcClassNameGnome contained +syn region gtkrcBString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline contains=gtkrcKeyMod contained +syn region gtkrcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gtkrcStockName,gtkrcPathSpecial,gtkrcRGBColor +syn match gtkrcPathSpecial "" contained +syn match gtkrcWPathSpecial "[*?.]" contained +syn match gtkrcNumber "^\(\d\+\)\=\.\=\d\+" +syn match gtkrcNumber "\W\(\d\+\)\=\.\=\d\+"lc=1 +syn match gtkrcRGBColor "#\(\x\{12}\|\x\{9}\|\x\{6}\|\x\{3}\)" contained +syn cluster gtkrcPRIVATE add=gtkrcFixme,gtkrcPathSpecial,gtkrcWPathSpecial,gtkrcRGBColor,gtkrcACString + +" Keywords +syn keyword gtkrcInclude include +syn keyword gtkrcPathSet module_path pixmap_path +syn keyword gtkrcTop binding style +syn keyword gtkrcTop widget widget_class nextgroup=gtkrcACString skipwhite +syn keyword gtkrcTop class nextgroup=gtkrcACString skipwhite +syn keyword gtkrcBind bind nextgroup=gtkrcBString skipwhite +syn keyword gtkrcStateName NORMAL INSENSITIVE PRELIGHT ACTIVE SELECTED +syn keyword gtkrcPriorityName HIGHEST RC APPLICATION GTK LOWEST +syn keyword gtkrcPriorityName highest rc application gtk lowest +syn keyword gtkrcTextDirName LTR RTL +syn keyword gtkrcStyleKeyword fg bg fg_pixmap bg_pixmap bg_text base font font_name fontset stock text +syn match gtkrcKeyMod "<\(alt\|ctrl\|control\|mod[1-5]\|release\|shft\|shift\)>" contained +syn cluster gtkrcPRIVATE add=gtkrcKeyMod + +" Enums and engine words +syn keyword gtkrcKeyword engine image +syn keyword gtkrcImage arrow_direction border detail file gap_border gap_end_border gap_end_file gap_file gap_side gap_side gap_start_border gap_start_file orientation overlay_border overlay_file overlay_stretch recolorable shadow state stretch thickness +syn keyword gtkrcConstant TRUE FALSE NONE IN OUT LEFT RIGHT TOP BOTTOM UP DOWN VERTICAL HORIZONTAL ETCHED_IN ETCHED_OUT +syn keyword gtkrcFunction function nextgroup=gtkrcFunctionEq skipwhite +syn match gtkrcFunctionEq "=" nextgroup=gtkrcFunctionName contained skipwhite +syn keyword gtkrcFunctionName ARROW BOX BOX_GAP CHECK CROSS DIAMOND EXTENSION FLAT_BOX FOCUS HANDLE HLINE OPTION OVAL POLYGON RAMP SHADOW SHADOW_GAP SLIDER STRING TAB VLINE contained +syn cluster gtkrcPRIVATE add=gtkrcFunctionName,gtkrcFunctionEq + +" Class names +syn keyword gtkrcClassName GtkAccelLabel GtkAdjustment GtkAlignment GtkArrow GtkAspectFrame GtkBin GtkBox GtkButton GtkButtonBox GtkCList GtkCTree GtkCalendar GtkCheckButton GtkCheckMenuItem GtkColorSelection GtkColorSelectionDialog GtkCombo GtkContainer GtkCurve GtkData GtkDialog GtkDrawingArea GtkEditable GtkEntry GtkEventBox GtkFileSelection GtkFixed GtkFontSelection GtkFontSelectionDialog GtkFrame GtkGammaCurve GtkHBox GtkHButtonBox GtkHPaned GtkHRuler GtkHScale GtkHScrollbar GtkHSeparator GtkHandleBox GtkImage GtkImageMenuItem GtkInputDialog GtkInvisible GtkItem GtkItemFactory GtkLabel GtkLayout GtkList GtkListItem GtkMenu GtkMenuBar GtkMenuItem GtkMenuShell GtkMessageDialog GtkMisc GtkNotebook GtkObject GtkOptionMenu GtkPacker GtkPaned GtkPixmap GtkPlug GtkPreview GtkProgress GtkProgressBar GtkRadioButton GtkRadioMenuItem GtkRange GtkRuler GtkScale GtkScrollbar GtkScrolledWindow GtkSeparatorMenuItem GtkSocket GtkSpinButton GtkStatusbar GtkTable GtkTearoffMenuItem GtkText GtkTextBuffer GtkTextMark GtkTextTag GtkTextView GtkTipsQuery GtkToggleButton GtkToolbar GtkTooltips GtkTree GtkTreeView GtkTreeItem GtkVBox GtkVButtonBox GtkVPaned GtkVRuler GtkVScale GtkVScrollbar GtkVSeparator GtkViewport GtkWidget GtkWindow GtkWindowGroup contained +syn keyword gtkrcClassName AccelLabel Adjustment Alignment Arrow AspectFrame Bin Box Button ButtonBox CList CTree Calendar CheckButton CheckMenuItem ColorSelection ColorSelectionDialog Combo Container Curve Data Dialog DrawingArea Editable Entry EventBox FileSelection Fixed FontSelection FontSelectionDialog Frame GammaCurve HBox HButtonBox HPaned HRuler HScale HScrollbar HSeparator HandleBox Image ImageMenuItem InputDialog Invisible Item ItemFactory Label Layout List ListItem Menu MenuBar MenuItem MenuShell MessageDialog Misc Notebook Object OptionMenu Packer Paned Pixmap Plug Preview Progress ProgressBar RadioButton RadioMenuItem Range Ruler Scale Scrollbar ScrolledWindow SeparatorMenuItem Socket SpinButton Statusbar Table TearoffMenuItem Text TextBuffer TextMark TextTag TextView TipsQuery ToggleButton Toolbar Tooltips Tree TreeView TreeItem VBox VButtonBox VPaned VRuler VScale VScrollbar VSeparator Viewport Widget Window WindowGroup contained +syn keyword gtkrcClassNameGnome GnomeAbout GnomeAnimator GnomeApp GnomeAppBar GnomeCalculator GnomeCanvas GnomeCanvasEllipse GnomeCanvasGroup GnomeCanvasImage GnomeCanvasItem GnomeCanvasLine GnomeCanvasPolygon GnomeCanvasRE GnomeCanvasRect GnomeCanvasText GnomeCanvasWidget GnomeClient GnomeColorPicker GnomeDEntryEdit GnomeDateEdit GnomeDialog GnomeDock GnomeDockBand GnomeDockItem GnomeDockLayout GnomeDruid GnomeDruidPage GnomeDruidPageFinish GnomeDruidPageStandard GnomeDruidPageStart GnomeEntry GnomeFileEntry GnomeFontPicker GnomeFontSelector GnomeHRef GnomeIconEntry GnomeIconList GnomeIconSelection GnomeIconTextItem GnomeLess GnomeMDI GnomeMDIChild GnomeMDIGenericChild GnomeMessageBox GnomeNumberEntry GnomePaperSelector GnomePixmap GnomePixmapEntry GnomeProcBar GnomePropertyBox GnomeScores GnomeSpell GnomeStock GtkClock GtkDial GtkPixmapMenuItem GtkTed contained +syn cluster gtkrcPRIVATE add=gtkrcClassName,gtkrcClassNameGnome + +" Stock item names +syn keyword gtkrcStockName gtk-add gtk-apply gtk-bold gtk-cancel gtk-cdrom gtk-clear gtk-close gtk-convert gtk-copy gtk-cut gtk-delete gtk-dialog-error gtk-dialog-info gtk-dialog-question gtk-dialog-warning gtk-dnd gtk-dnd-multiple gtk-execute gtk-find gtk-find-and-replace gtk-floppy gtk-goto-bottom gtk-goto-first gtk-goto-last gtk-goto-top gtk-go-back gtk-go-down gtk-go-forward gtk-go-up gtk-help gtk-home gtk-index gtk-italic gtk-jump-to gtk-justify-center gtk-justify-fill gtk-justify-left gtk-justify-right gtk-missing-image gtk-new gtk-no gtk-ok gtk-open gtk-paste gtk-preferences gtk-print gtk-print-preview gtk-properties gtk-quit gtk-redo gtk-refresh gtk-remove gtk-revert-to-saved gtk-save gtk-save-as gtk-select-color gtk-select-font gtk-sort-ascending gtk-sort-descending gtk-spell-check gtk-stop gtk-strikethrough gtk-undelete gtk-underline gtk-undo gtk-yes gtk-zoom-100 gtk-zoom-fit gtk-zoom-in gtk-zoom-out contained +syn cluster gtkrcPRIVATE add=gtkrcStockName + +" Gtk Settings +syn keyword gtkrcSettingsName gtk-double-click-time gtk-cursor-blink gtk-cursor-blink-time gtk-split-cursor gtk-theme-name gtk-key-theme-name gtk-menu-bar-accel gtk-dnd-drag-threshold gtk-font-name gtk-color-palette gtk-entry-select-on-focus gtk-can-change-accels gtk-toolbar-style gtk-toolbar-icon-size +syn cluster gtkrcPRIVATE add=gtkrcSettingsName + +" Catch errors caused by wrong parenthesization +syn region gtkrcParen start='(' end=')' transparent contains=ALLBUT,gtkrcParenError,@gtkrcPRIVATE +syn match gtkrcParenError ")" +syn region gtkrcBrace start='{' end='}' transparent contains=ALLBUT,gtkrcBraceError,@gtkrcPRIVATE +syn match gtkrcBraceError "}" +syn region gtkrcBracket start='\[' end=']' transparent contains=ALLBUT,gtkrcBracketError,@gtkrcPRIVATE +syn match gtkrcBracketError "]" + +" Synchronization +syn sync minlines=50 +syn sync match gtkrcSyncClass groupthere NONE "^\s*class\>" + +" Define the default highlighting + +hi def link gtkrcComment Comment +hi def link gtkrcFixme Todo + +hi def link gtkrcInclude Preproc + +hi def link gtkrcACString gtkrcString +hi def link gtkrcBString gtkrcString +hi def link gtkrcString String +hi def link gtkrcNumber Number +hi def link gtkrcStateName gtkrcConstant +hi def link gtkrcPriorityName gtkrcConstant +hi def link gtkrcTextDirName gtkrcConstant +hi def link gtkrcSettingsName Function +hi def link gtkrcStockName Function +hi def link gtkrcConstant Constant + +hi def link gtkrcPathSpecial gtkrcSpecial +hi def link gtkrcWPathSpecial gtkrcSpecial +hi def link gtkrcRGBColor gtkrcSpecial +hi def link gtkrcKeyMod gtkrcSpecial +hi def link gtkrcSpecial Special + +hi def link gtkrcTop gtkrcKeyword +hi def link gtkrcPathSet gtkrcKeyword +hi def link gtkrcStyleKeyword gtkrcKeyword +hi def link gtkrcFunction gtkrcKeyword +hi def link gtkrcBind gtkrcKeyword +hi def link gtkrcKeyword Keyword + +hi def link gtkrcClassNameGnome gtkrcGtkClass +hi def link gtkrcClassName gtkrcGtkClass +hi def link gtkrcFunctionName gtkrcGtkClass +hi def link gtkrcGtkClass Type + +hi def link gtkrcImage gtkrcOtherword +hi def link gtkrcOtherword Function + +hi def link gtkrcParenError gtkrcError +hi def link gtkrcBraceError gtkrcError +hi def link gtkrcBracketError gtkrcError +hi def link gtkrcError Error + + +let b:current_syntax = "gtkrc" diff --git a/runtime/syntax/gvpr.vim b/runtime/syntax/gvpr.vim new file mode 100644 index 0000000..a737891 --- /dev/null +++ b/runtime/syntax/gvpr.vim @@ -0,0 +1,85 @@ +" Vim syntax file +" Language: Graphviz program +" Maintainer: Matthew Fernandez +" Last Change: Tue, 28 Jul 2020 17:20:44 -0700 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword gvArg ARGC ARGV +syn keyword gvBeg BEGIN BEG_G N E END END_G +syn keyword gvFunc + \ graph fstsubg isDirect isStrict isSubg nEdges nNodes nxtsubg subg + \ degreeOf fstnode indegreeOf isNode isSubnode node nxtnode nxtnode_sg + \ outDegreeOf subnode + \ edge edge_sg fstedge fstedge_sg fstin fstin_sg fstout fstout_sg isEdge + \ isEdge_sg isSubedge nxtedge nxtedge_sg nxtin nxtin_sg nxtout nxtout_sg opp + \ subedge + \ freadG fwriteG readG write[] writeG + \ aget aset clone cloneG compOf copy[] copyA delete[] fstAttr getDflt hasAttr + \ induce isAttr isIn kindOf lock[] nxtAttr setDflt + \ canon gsub html index ishtml length llOf match[] rindex split[] sprintf + \ sscanf strcmp sub substr tokens tolower toupper urOf xOf yOf + \ closeF openF print[] printf scanf readL + \ atan2 cos exp log MAX MIN pow sin[] sqrt + \ in[] unset + \ colorx exit[] rand srand system +syn keyword gvCons + \ NULL TV_bfs TV_dfs TV_en TV_flat TV_fwd TV_ne TV_prepostdfs TV_prepostfwd + \ TV_prepostrev TV_postdfs TV_postfwd tv_postrev TV_rev +syn keyword gvType char double float int long unsigned void + \ string + \ edge_t graph_t node_t obj_t +syn match gvVar + \ "\$\(\(F\|G\|NG\|O\|T\|tgtname\|tvedge\|tvnext\|tvroot\|tvtype\)\>\)\?\(\<\)\@!" +syn keyword gvWord break continue else for forr if return switch while + +" numbers adapted from c.vim's cNumbers and friends +syn match gvNums transparent "\<\d\|\.\d" contains=gvNumber,gvFloat,gvOctal +syn match gvNumber contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +syn match gvNumber contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +syn match gvOctal contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=gvOctalZero +syn match gvOctalZero contained "\<0" +syn match gvFloat contained "\d\+f" +syn match gvFloat contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +syn match gvFloat contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +syn match gvFloat contained "\d\+e[-+]\=\d\+[fl]\=\>" + +syn region gvString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=gvFormat,gvSpecial extend +syn region gvString start="'" skip="\\\\\|\\'" end="'" contains=gvFormat,gvSpecial extend + +" adapted from c.vim's cFormat for c_no_c99 +syn match gvFormat "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([bdiuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained + +syn match gvSpecial "\\." contained + +syn region gvCComment start="//" skip="\\$" end="$" keepend +syn region gvCPPComment start="#" skip="\\$" end="$" keepend +syn region gvCXXComment start="/\*" end="\*/" fold + +hi def link gvArg Identifier +hi def link gvBeg Keyword +hi def link gvFloat Number +hi def link gvFunc Identifier +hi def link gvCons Number +hi def link gvNumber Number +hi def link gvType Type +hi def link gvVar Statement +hi def link gvWord Keyword + +hi def link gvString String +hi def link gvFormat Special +hi def link gvSpecial Special + +hi def link gvCComment Comment +hi def link gvCPPComment Comment +hi def link gvCXXComment Comment + +let b:current_syntax = "gvpr" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/gyp.vim b/runtime/syntax/gyp.vim new file mode 100644 index 0000000..14c07b8 --- /dev/null +++ b/runtime/syntax/gyp.vim @@ -0,0 +1,49 @@ +" Vim syntax file +" Language: GYP +" Maintainer: ObserverOfTime +" Filenames: *.gyp,*.gypi +" Last Change: 2022 Sep 27 + +if !exists('g:main_syntax') + if exists('b:current_syntax') && b:current_syntax ==# 'gyp' + finish + endif + let g:main_syntax = 'gyp' +endif + +" Based on JSON syntax +runtime! syntax/json.vim + +" Single quotes are allowed +syn clear jsonStringSQError + +syn match jsonKeywordMatch /'\([^']\|\\\'\)\+'[[:blank:]\r\n]*\:/ contains=jsonKeyword +if has('conceal') && (!exists('g:vim_json_conceal') || g:vim_json_conceal==1) + syn region jsonKeyword matchgroup=jsonQuote start=/'/ end=/'\ze[[:blank:]\r\n]*\:/ concealends contained +else + syn region jsonKeyword matchgroup=jsonQuote start=/'/ end=/'\ze[[:blank:]\r\n]*\:/ contained +endif + +syn match jsonStringMatch /'\([^']\|\\\'\)\+'\ze[[:blank:]\r\n]*[,}\]]/ contains=jsonString +if has('conceal') && (!exists('g:vim_json_conceal') || g:vim_json_conceal==1) + syn region jsonString oneline matchgroup=jsonQuote start=/'/ skip=/\\\\\|\\'/ end=/'/ concealends contains=jsonEscape contained +else + syn region jsonString oneline matchgroup=jsonQuote start=/'/ skip=/\\\\\|\\'/ end=/'/ contains=jsonEscape contained +endif + +" Trailing commas are allowed +if !exists('g:vim_json_warnings') || g:vim_json_warnings==1 + syn clear jsonTrailingCommaError +endif + +" Python-style comments are allowed +syn match jsonComment /#.*$/ contains=jsonTodo,@Spell +syn keyword jsonTodo FIXME NOTE TODO XXX TBD contained + +hi def link jsonComment Comment +hi def link jsonTodo Todo + +let b:current_syntax = 'gyp' +if g:main_syntax ==# 'gyp' + unlet g:main_syntax +endif diff --git a/runtime/syntax/haml.vim b/runtime/syntax/haml.vim new file mode 100644 index 0000000..c14b88f --- /dev/null +++ b/runtime/syntax/haml.vim @@ -0,0 +1,109 @@ +" Vim syntax file +" Language: Haml +" Maintainer: Tim Pope +" Filenames: *.haml +" Last Change: 2019 Dec 05 + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'haml' +endif +let b:ruby_no_expensive = 1 + +runtime! syntax/html.vim +unlet! b:current_syntax +silent! syn include @hamlSassTop syntax/sass.vim +unlet! b:current_syntax +syn include @hamlRubyTop syntax/ruby.vim + +syn case match + +syn region rubyCurlyBlock start="{" end="}" contains=@hamlRubyTop contained +syn cluster hamlRubyTop add=rubyCurlyBlock + +syn cluster hamlComponent contains=hamlAttributes,hamlAttributesHash,hamlClassChar,hamlIdChar,hamlObject,hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable +syn cluster hamlEmbeddedRuby contains=hamlAttributesHash,hamlObject,hamlRuby,hamlRubyFilter +syn cluster hamlTop contains=hamlBegin,hamlPlainFilter,hamlRubyFilter,hamlSassFilter,hamlComment,hamlHtmlComment + +syn match hamlBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=hamlTag,hamlClassChar,hamlIdChar,hamlRuby,hamlPlainChar,hamlInterpolatable + +syn match hamlTag "%\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@hamlComponent +syn region hamlAttributes matchgroup=hamlAttributesDelimiter start="(" end=")" contained contains=htmlArg,hamlAttributeString,hamlAttributeVariable,htmlEvent,htmlCssDefinition nextgroup=@hamlComponent +syn region hamlAttributesHash matchgroup=hamlAttributesDelimiter start="{" end="}" contained contains=@hamlRubyTop nextgroup=@hamlComponent +syn region hamlObject matchgroup=hamlObjectDelimiter start="\[" end="\]" contained contains=@hamlRubyTop nextgroup=@hamlComponent +syn match hamlDespacer "[<>]" contained nextgroup=hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable +syn match hamlSelfCloser "/" contained +syn match hamlClassChar "\." contained nextgroup=hamlClass +syn match hamlIdChar "#{\@!" contained nextgroup=hamlId +syn match hamlClass "\%(\w\|-\|\:\)\+" contained nextgroup=@hamlComponent +syn match hamlId "\%(\w\|-\)\+" contained nextgroup=@hamlComponent +syn region hamlDocType start="^\s*!!!" end="$" + +syn region hamlRuby matchgroup=hamlRubyOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@hamlRubyTop keepend +syn region hamlRuby matchgroup=hamlRubyChar start="-" skip=",\s*$" end="$" contained contains=@hamlRubyTop keepend +syn match hamlPlainChar "\\" contained +syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="!\===\|!=\@!" end="$" keepend contained contains=hamlInterpolation,hamlInterpolationEscape,@hamlHtmlTop +syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="&==\|&=\@!" end="$" keepend contained contains=hamlInterpolation,hamlInterpolationEscape +syn region hamlInterpolation matchgroup=hamlInterpolationDelimiter start="#{" end="}" contains=@hamlRubyTop containedin=javascriptStringS,javascriptStringD +syn match hamlInterpolationEscape "\\\@" contained contains=@hamlRubyTop + +syn region hamlAttributeString start=+\%(=\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=hamlInterpolation,hamlInterpolationEscape +syn region hamlAttributeString start=+\%(=\s*\)\@<="+ skip=+\%(\\\\\)*\\"+ end=+"+ contains=hamlInterpolation,hamlInterpolationEscape +syn match hamlAttributeVariable "\%(=\s*\)\@<=\%(@@\=\|\$\)\=\w\+" contained + +syn match hamlHelper "\[^]]*]" contained containedin=hamlHtmlComment + +hi def link hamlSelfCloser Special +hi def link hamlDespacer Special +hi def link hamlClassChar Special +hi def link hamlIdChar Special +hi def link hamlTag Special +hi def link hamlClass Type +hi def link hamlId Identifier +hi def link hamlPlainChar Special +hi def link hamlInterpolatableChar hamlRubyChar +hi def link hamlRubyOutputChar hamlRubyChar +hi def link hamlRubyChar Special +hi def link hamlInterpolationDelimiter Delimiter +hi def link hamlInterpolationEscape Special +hi def link hamlAttributeString String +hi def link hamlAttributeVariable Identifier +hi def link hamlDocType PreProc +hi def link hamlFilter PreProc +hi def link hamlAttributesDelimiter Delimiter +hi def link hamlObjectDelimiter Delimiter +hi def link hamlHelper Function +hi def link hamlHtmlComment hamlComment +hi def link hamlComment Comment +hi def link hamlIEConditional SpecialComment +hi def link hamlError Error + +let b:current_syntax = "haml" + +if main_syntax == "haml" + unlet main_syntax +endif + +" vim:set sw=2: diff --git a/runtime/syntax/hamster.vim b/runtime/syntax/hamster.vim new file mode 100644 index 0000000..975562d --- /dev/null +++ b/runtime/syntax/hamster.vim @@ -0,0 +1,370 @@ +" Vim syntax file +" Language: Hamster Scripting Language +" Maintainer: David Fishburn +" Last Change: Sun Oct 24 2004 7:11:50 PM +" Version: 2.0.6.0 + +" Description: Hamster Classic +" Hamster is a local server for news and mail. It's a windows-32-bit-program. +" It allows the use of multiple news- and mailserver and combines them to one +" mail- and newsserver for the news/mail-client. It load faster than a normal +" newsreader because many threads can run simultaneous. It contains scorefile +" for news and mail, a built-in script language, the GUI allows translation to +" other languages, it can be used in a network and that's not all features... +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn keyword hamsterSpecial abs +syn keyword hamsterSpecial artaddheader +syn keyword hamsterSpecial artalloc +syn keyword hamsterSpecial artdelheader +syn keyword hamsterSpecial artfree +syn keyword hamsterSpecial artgetbody +syn keyword hamsterSpecial artgetheader +syn keyword hamsterSpecial artgetheaders +syn keyword hamsterSpecial artgettext +syn keyword hamsterSpecial artheaderexists +syn keyword hamsterSpecial artload +syn keyword hamsterSpecial artsave +syn keyword hamsterSpecial artsetbody +syn keyword hamsterSpecial artsetheader +syn keyword hamsterSpecial artsetheaders +syn keyword hamsterSpecial artsettext +syn keyword hamsterSpecial assert +syn keyword hamsterSpecial atadd +syn keyword hamsterSpecial atclear +syn keyword hamsterSpecial atcount +syn keyword hamsterSpecial ateverymins +syn keyword hamsterSpecial atexecute +syn keyword hamsterSpecial atfrom +syn keyword hamsterSpecial atondays +syn keyword hamsterSpecial atsubfunction +syn keyword hamsterSpecial atuntil +syn keyword hamsterSpecial beep +syn keyword hamsterSpecial break +syn keyword hamsterSpecial chr +syn keyword hamsterSpecial clearxcounter +syn keyword hamsterSpecial clipread +syn keyword hamsterSpecial clipwrite +syn keyword hamsterSpecial const +syn keyword hamsterSpecial constenum +syn keyword hamsterSpecial continue +syn keyword hamsterSpecial copy +syn keyword hamsterSpecial debug +syn keyword hamsterSpecial dec +syn keyword hamsterSpecial decodebase64 +syn keyword hamsterSpecial decodeqp +syn keyword hamsterSpecial decodetime +syn keyword hamsterSpecial decxcounter +syn keyword hamsterSpecial delete +syn keyword hamsterSpecial deletehostsentry +syn keyword hamsterSpecial digest +syn keyword hamsterSpecial dirchange +syn keyword hamsterSpecial dircurrent +syn keyword hamsterSpecial direxists +syn keyword hamsterSpecial dirmake +syn keyword hamsterSpecial dirremove +syn keyword hamsterSpecial dirsystem +syn keyword hamsterSpecial dirwindows +syn keyword hamsterSpecial diskfreekb +syn keyword hamsterSpecial dllcall +syn keyword hamsterSpecial dllfree +syn keyword hamsterSpecial dlllasterror +syn keyword hamsterSpecial dllload +syn keyword hamsterSpecial dump +syn keyword hamsterSpecial encodetime +syn keyword hamsterSpecial entercontext +syn keyword hamsterSpecial errcatch +syn keyword hamsterSpecial errline +syn keyword hamsterSpecial errlineno +syn keyword hamsterSpecial errmodule +syn keyword hamsterSpecial errmsg +syn keyword hamsterSpecial errnum +syn keyword hamsterSpecial error +syn keyword hamsterSpecial errsender +syn keyword hamsterSpecial eval +syn keyword hamsterSpecial eventclose +syn keyword hamsterSpecial eventcreate +syn keyword hamsterSpecial eventmultiplewait +syn keyword hamsterSpecial eventpulse +syn keyword hamsterSpecial eventreset +syn keyword hamsterSpecial eventset +syn keyword hamsterSpecial eventwait +syn keyword hamsterSpecial execute +syn keyword hamsterSpecial false +syn keyword hamsterSpecial filecopy +syn keyword hamsterSpecial filedelete +syn keyword hamsterSpecial fileexists +syn keyword hamsterSpecial filemove +syn keyword hamsterSpecial filerename +syn keyword hamsterSpecial filesize +syn keyword hamsterSpecial filetime +syn keyword hamsterSpecial getenv +syn keyword hamsterSpecial getprocessidentifier +syn keyword hamsterSpecial getuptimedays +syn keyword hamsterSpecial getuptimehours +syn keyword hamsterSpecial getuptimemins +syn keyword hamsterSpecial getuptimesecs +syn keyword hamsterSpecial gosub +syn keyword hamsterSpecial goto +syn keyword hamsterSpecial hex +syn keyword hamsterSpecial icase +syn keyword hamsterSpecial iif +syn keyword hamsterSpecial inc +syn keyword hamsterSpecial incxcounter +syn keyword hamsterSpecial inidelete +syn keyword hamsterSpecial inierasesection +syn keyword hamsterSpecial iniread +syn keyword hamsterSpecial iniwrite +syn keyword hamsterSpecial inputbox +syn keyword hamsterSpecial inputpw +syn keyword hamsterSpecial int +syn keyword hamsterSpecial isint +syn keyword hamsterSpecial isstr +syn keyword hamsterSpecial leavecontext +syn keyword hamsterSpecial len +syn keyword hamsterSpecial listadd +syn keyword hamsterSpecial listalloc +syn keyword hamsterSpecial listappend +syn keyword hamsterSpecial listbox +syn keyword hamsterSpecial listclear +syn keyword hamsterSpecial listcount +syn keyword hamsterSpecial listdelete +syn keyword hamsterSpecial listdirs +syn keyword hamsterSpecial listexists +syn keyword hamsterSpecial listfiles +syn keyword hamsterSpecial listfiles +syn keyword hamsterSpecial listfree +syn keyword hamsterSpecial listget +syn keyword hamsterSpecial listgetkey +syn keyword hamsterSpecial listgettag +syn keyword hamsterSpecial listgettext +syn keyword hamsterSpecial listindexof +syn keyword hamsterSpecial listinsert +syn keyword hamsterSpecial listload +syn keyword hamsterSpecial listrasentries +syn keyword hamsterSpecial listsave +syn keyword hamsterSpecial listset +syn keyword hamsterSpecial listsetkey +syn keyword hamsterSpecial listsettag +syn keyword hamsterSpecial listsettext +syn keyword hamsterSpecial listsort +syn keyword hamsterSpecial localhostaddr +syn keyword hamsterSpecial localhostname +syn keyword hamsterSpecial lookuphostaddr +syn keyword hamsterSpecial lookuphostname +syn keyword hamsterSpecial lowercase +syn keyword hamsterSpecial memalloc +syn keyword hamsterSpecial memforget +syn keyword hamsterSpecial memfree +syn keyword hamsterSpecial memgetint +syn keyword hamsterSpecial memgetstr +syn keyword hamsterSpecial memsetint +syn keyword hamsterSpecial memsetstr +syn keyword hamsterSpecial memsize +syn keyword hamsterSpecial memvarptr +syn keyword hamsterSpecial msgbox +syn keyword hamsterSpecial ord +syn keyword hamsterSpecial paramcount +syn keyword hamsterSpecial paramstr +syn keyword hamsterSpecial popupbox +syn keyword hamsterSpecial pos +syn keyword hamsterSpecial print +syn keyword hamsterSpecial quit +syn keyword hamsterSpecial random +syn keyword hamsterSpecial randomize +syn keyword hamsterSpecial rasdial +syn keyword hamsterSpecial rasgetconnection +syn keyword hamsterSpecial rasgetip +syn keyword hamsterSpecial rashangup +syn keyword hamsterSpecial rasisconnected +syn keyword hamsterSpecial re_extract +syn keyword hamsterSpecial re_match +syn keyword hamsterSpecial re_parse +syn keyword hamsterSpecial re_split +syn keyword hamsterSpecial replace +syn keyword hamsterSpecial return +syn keyword hamsterSpecial runscript +syn keyword hamsterSpecial scriptpriority +syn keyword hamsterSpecial set +syn keyword hamsterSpecial sethostsentry_byaddr +syn keyword hamsterSpecial sethostsentry_byname +syn keyword hamsterSpecial setxcounter +syn keyword hamsterSpecial sgn +syn keyword hamsterSpecial shell +syn keyword hamsterSpecial sleep +syn keyword hamsterSpecial stopthread +syn keyword hamsterSpecial str +syn keyword hamsterSpecial syserrormessage +syn keyword hamsterSpecial testmailfilterline +syn keyword hamsterSpecial testnewsfilterline +syn keyword hamsterSpecial ticks +syn keyword hamsterSpecial time +syn keyword hamsterSpecial timegmt +syn keyword hamsterSpecial trace +syn keyword hamsterSpecial trim +syn keyword hamsterSpecial true +syn keyword hamsterSpecial uppercase +syn keyword hamsterSpecial utf7toucs16 +syn keyword hamsterSpecial utf8toucs32 +syn keyword hamsterSpecial var +syn keyword hamsterSpecial varset +syn keyword hamsterSpecial warning +syn keyword hamsterSpecial xcounter + +" common functions +syn keyword hamsterFunction addlog +syn keyword hamsterFunction decodemimeheaderstring +syn keyword hamsterFunction decodetolocalcharset +syn keyword hamsterFunction gettasksactive +syn keyword hamsterFunction gettasksrun +syn keyword hamsterFunction gettaskswait +syn keyword hamsterFunction hamaddgroup +syn keyword hamsterFunction hamaddlog +syn keyword hamsterFunction hamaddpull +syn keyword hamsterFunction hamartcount +syn keyword hamsterFunction hamartdeletemid +syn keyword hamsterFunction hamartdeletemidingroup +syn keyword hamsterFunction hamartdeletenringroup +syn keyword hamsterFunction hamartimport +syn keyword hamsterFunction hamartlocatemid +syn keyword hamsterFunction hamartlocatemidingroup +syn keyword hamsterFunction hamartnomax +syn keyword hamsterFunction hamartnomin +syn keyword hamsterFunction hamarttext +syn keyword hamsterFunction hamarttextexport +syn keyword hamsterFunction hamchangepassword +syn keyword hamsterFunction hamcheckpurge +syn keyword hamsterFunction hamdelgroup +syn keyword hamsterFunction hamdelpull +syn keyword hamsterFunction hamdialogaddpull +syn keyword hamsterFunction hamdialogeditdirs +syn keyword hamsterFunction hamdialogmailkillfilelog +syn keyword hamsterFunction hamdialognewskillfilelog +syn keyword hamsterFunction hamdialogscripts +syn keyword hamsterFunction hamenvelopefrom +syn keyword hamsterFunction hamexepath +syn keyword hamsterFunction hamfetchmail +syn keyword hamsterFunction hamflush +syn keyword hamsterFunction hamgetstatus +syn keyword hamsterFunction hamgroupclose +syn keyword hamsterFunction hamgroupcount +syn keyword hamsterFunction hamgroupindex +syn keyword hamsterFunction hamgroupname +syn keyword hamsterFunction hamgroupnamebyhandle +syn keyword hamsterFunction hamgroupopen +syn keyword hamsterFunction hamgroupspath +syn keyword hamsterFunction hamhscpath +syn keyword hamsterFunction hamhsmpath +syn keyword hamsterFunction hamimapserver +syn keyword hamsterFunction hamisidle +syn keyword hamsterFunction hamlogspath +syn keyword hamsterFunction hammailexchange +syn keyword hamsterFunction hammailpath +syn keyword hamsterFunction hammailsoutpath +syn keyword hamsterFunction hammainfqdn +syn keyword hamsterFunction hammainwindow +syn keyword hamsterFunction hammessage +syn keyword hamsterFunction hammidfqdn +syn keyword hamsterFunction hamnewmail +syn keyword hamsterFunction hamnewserrpath +syn keyword hamsterFunction hamnewsjobsadd +syn keyword hamsterFunction hamnewsjobscheckactive +syn keyword hamsterFunction hamnewsjobsclear +syn keyword hamsterFunction hamnewsjobsdelete +syn keyword hamsterFunction hamnewsjobsfeed +syn keyword hamsterFunction hamnewsjobsgetcounter +syn keyword hamsterFunction hamnewsjobsgetparam +syn keyword hamsterFunction hamnewsjobsgetpriority +syn keyword hamsterFunction hamnewsjobsgetserver +syn keyword hamsterFunction hamnewsjobsgettype +syn keyword hamsterFunction hamnewsjobspost +syn keyword hamsterFunction hamnewsjobspostdef +syn keyword hamsterFunction hamnewsjobspull +syn keyword hamsterFunction hamnewsjobspulldef +syn keyword hamsterFunction hamnewsjobssetpriority +syn keyword hamsterFunction hamnewsjobsstart +syn keyword hamsterFunction hamnewsoutpath +syn keyword hamsterFunction hamnewspost +syn keyword hamsterFunction hamnewspull +syn keyword hamsterFunction hamnntpserver +syn keyword hamsterFunction hampassreload +syn keyword hamsterFunction hampath +syn keyword hamsterFunction hampop3server +syn keyword hamsterFunction hampostmaster +syn keyword hamsterFunction hampurge +syn keyword hamsterFunction hamrasdial +syn keyword hamsterFunction hamrashangup +syn keyword hamsterFunction hamrcpath +syn keyword hamsterFunction hamrebuildgloballists +syn keyword hamsterFunction hamrebuildhistory +syn keyword hamsterFunction hamrecoserver +syn keyword hamsterFunction hamreloadconfig +syn keyword hamsterFunction hamreloadipaccess +syn keyword hamsterFunction hamresetcounters +syn keyword hamsterFunction hamrotatelog +syn keyword hamsterFunction hamscorelist +syn keyword hamsterFunction hamscoretest +syn keyword hamsterFunction hamsendmail +syn keyword hamsterFunction hamsendmailauth +syn keyword hamsterFunction hamserverpath +syn keyword hamsterFunction hamsetlogin +syn keyword hamsterFunction hamshutdown +syn keyword hamsterFunction hamsmtpserver +syn keyword hamsterFunction hamstopalltasks +syn keyword hamsterFunction hamthreadcount +syn keyword hamsterFunction hamtrayicon +syn keyword hamsterFunction hamusenetacc +syn keyword hamsterFunction hamversion +syn keyword hamsterFunction hamwaitidle +syn keyword hamsterFunction raslasterror +syn keyword hamsterFunction rfctimezone +syn keyword hamsterFunction settasklimiter + +syn keyword hamsterStatement if +syn keyword hamsterStatement else +syn keyword hamsterStatement elseif +syn keyword hamsterStatement endif +syn keyword hamsterStatement do +syn keyword hamsterStatement loop +syn keyword hamsterStatement while +syn keyword hamsterStatement endwhile +syn keyword hamsterStatement repeat +syn keyword hamsterStatement until +syn keyword hamsterStatement for +syn keyword hamsterStatement endfor +syn keyword hamsterStatement sub +syn keyword hamsterStatement endsub +syn keyword hamsterStatement label + + +" Strings and characters: +syn region hamsterString start=+"+ end=+"+ contains=@Spell +syn region hamsterString start=+'+ end=+'+ contains=@Spell + +" Numbers: +syn match hamsterNumber "-\=\<\d*\.\=[0-9_]\>" + +" Comments: +syn region hamsterHashComment start=/#/ end=/$/ contains=@Spell +syn cluster hamsterComment contains=hamsterHashComment +syn sync ccomment hamsterHashComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link hamsterHashComment Comment +hi def link hamsterSpecial Special +hi def link hamsterStatement Statement +hi def link hamsterString String +hi def link hamsterFunction Function + + +let b:current_syntax = "hamster" + +" vim:sw=4 diff --git a/runtime/syntax/hare.vim b/runtime/syntax/hare.vim new file mode 100644 index 0000000..07cf33f --- /dev/null +++ b/runtime/syntax/hare.vim @@ -0,0 +1,133 @@ +" PRELUDE {{{1 +" Vim syntax file +" Language: Hare +" Maintainer: Amelia Clarke +" Last Change: 2022-09-21 + +if exists("b:current_syntax") + finish +endif +let b:current_syntax = "hare" + +" SYNTAX {{{1 +syn case match + +" KEYWORDS {{{2 +syn keyword hareConditional if else match switch +syn keyword hareKeyword break continue return yield +syn keyword hareKeyword defer +syn keyword hareKeyword fn +syn keyword hareKeyword let +syn keyword hareLabel case +syn keyword hareOperator as is +syn keyword hareRepeat for +syn keyword hareStorageClass const def export nullable static +syn keyword hareStructure enum struct union +syn keyword hareTypedef type + +" C ABI. +syn keyword hareKeyword vastart vaarg vaend + +" BUILTINS {{{2 +syn keyword hareBuiltin abort +syn keyword hareBuiltin alloc free +syn keyword hareBuiltin append delete insert +syn keyword hareBuiltin assert +syn keyword hareBuiltin len offset + +" TYPES {{{2 +syn keyword hareType bool +syn keyword hareType char str +syn keyword hareType f32 f64 +syn keyword hareType u8 u16 u32 u64 i8 i16 i32 i64 +syn keyword hareType uint int +syn keyword hareType rune +syn keyword hareType uintptr +syn keyword hareType void + +" C ABI. +syn keyword hareType valist + +" LITERALS {{{2 +syn keyword hareBoolean true false +syn keyword hareNull null + +" Number literals. +syn match hareNumber "\v(\.@1" display +syn match hareNumber "\v(\.@1" display +syn match hareNumber "\v(\.@1" display +syn match hareNumber "\v(\.@1" display + +" Floating-point number literals. +syn match hareFloat "\v<\d+\.\d+([Ee][+-]?\d+)?(f32|f64)?>" display +syn match hareFloat "\v<\d+([Ee][+-]?\d+)?(f32|f64)>" display + +" String and rune literals. +syn match hareEscape "\\[\\'"0abfnrtv]" contained display +syn match hareEscape "\v\\(x\x{2}|u\x{4}|U\x{8})" contained display +syn match hareFormat "\v\{\d*(\%\d*|(:[ 0+-]?\d*(\.\d+)?[Xbox]?))?}" contained display +syn match hareFormat "\({{\|}}\)" contained display +syn region hareRune start="'" end="'\|$" skip="\\'" contains=hareEscape display extend +syn region hareString start=+"+ end=+"\|$+ skip=+\\"+ contains=hareEscape,hareFormat display extend +syn region hareString start="`" end="`\|$" contains=hareFormat display + +" MISCELLANEOUS {{{2 +syn keyword hareTodo FIXME TODO XXX contained + +" Attributes. +syn match hareAttribute "@[a-z]*" + +" Blocks. +syn region hareBlock start="{" end="}" fold transparent + +" Comments. +syn region hareComment start="//" end="$" contains=hareCommentDoc,hareTodo,@Spell display keepend +syn region hareCommentDoc start="\[\[" end="]]\|\ze\_s" contained display + +" The size keyword can be either a builtin or a type. +syn match hareBuiltin "\v\ze(\_s*//.*\_$)*\_s*\(" contains=hareComment +syn match hareType "\v((\_s*//.*\_$)*\_s*\()@!" contains=hareComment + +" Trailing whitespace. +syn match hareSpaceError "\v\s+$" display excludenl +syn match hareSpaceError "\v\zs +\ze\t" display + +" Use statement. +syn region hareUse start="\v^\s*\zsuse>" end=";" contains=hareComment display + +syn match hareErrorAssertion "\v(^([^/]|//@!)*\)\_s*)@<=!\=@!" +syn match hareQuestionMark "?" + +" DEFAULT HIGHLIGHTING {{{1 +hi def link hareAttribute Keyword +hi def link hareBoolean Boolean +hi def link hareBuiltin Function +hi def link hareComment Comment +hi def link hareCommentDoc SpecialComment +hi def link hareConditional Conditional +hi def link hareEscape SpecialChar +hi def link hareFloat Float +hi def link hareFormat SpecialChar +hi def link hareKeyword Keyword +hi def link hareLabel Label +hi def link hareNull Constant +hi def link hareNumber Number +hi def link hareOperator Operator +hi def link hareQuestionMark Special +hi def link hareRepeat Repeat +hi def link hareRune Character +hi def link hareStorageClass StorageClass +hi def link hareString String +hi def link hareStructure Structure +hi def link hareTodo Todo +hi def link hareType Type +hi def link hareTypedef Typedef +hi def link hareUse PreProc + +hi def link hareSpaceError Error +autocmd InsertEnter * hi link hareSpaceError NONE +autocmd InsertLeave * hi link hareSpaceError Error + +hi def hareErrorAssertion ctermfg=red cterm=bold guifg=red gui=bold + +" vim: tabstop=8 shiftwidth=2 expandtab diff --git a/runtime/syntax/haskell.vim b/runtime/syntax/haskell.vim new file mode 100644 index 0000000..b48b278 --- /dev/null +++ b/runtime/syntax/haskell.vim @@ -0,0 +1,193 @@ +" Vim syntax file +" Language: Haskell +" Maintainer: Haskell Cafe mailinglist +" Last Change: 2020 Oct 4 by Marcin Szamotulski +" Original Author: John Williams +" +" Thanks to Ryan Crumley for suggestions and John Meacham for +" pointing out bugs. Also thanks to Ian Lynagh and Donald Bruce Stewart +" for providing the inspiration for the inclusion of the handling +" of C preprocessor directives, and for pointing out a bug in the +" end-of-line comment handling. +" +" Options-assign a value to these variables to turn the option on: +" +" hs_highlight_delimiters - Highlight delimiter characters--users +" with a light-colored background will +" probably want to turn this on. +" hs_highlight_boolean - Treat True and False as keywords. +" hs_highlight_types - Treat names of primitive types as keywords. +" hs_highlight_more_types - Treat names of other common types as keywords. +" hs_highlight_debug - Highlight names of debugging functions. +" hs_allow_hash_operator - Don't highlight seemingly incorrect C +" preprocessor directives but assume them to be +" operators +" +" 2004 Feb 19: Added C preprocessor directive handling, corrected eol comments +" cleaned away literate haskell support (should be entirely in +" lhaskell.vim) +" 2004 Feb 20: Cleaned up C preprocessor directive handling, fixed single \ +" in eol comment character class +" 2004 Feb 23: Made the leading comments somewhat clearer where it comes +" to attribution of work. +" 2008 Dec 15: Added comments as contained element in import statements + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" (Qualified) identifiers (no default highlighting) +syn match ConId "\(\<[A-Z][a-zA-Z0-9_']*\.\)*\<[A-Z][a-zA-Z0-9_']*\>" contains=@NoSpell +syn match VarId "\(\<[A-Z][a-zA-Z0-9_']*\.\)*\<[a-z][a-zA-Z0-9_']*\>" contains=@NoSpell + +" Infix operators--most punctuation characters and any (qualified) identifier +" enclosed in `backquotes`. An operator starting with : is a constructor, +" others are variables (e.g. functions). +syn match hsVarSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[-!#$%&\*\+/<=>\?@\\^|~.][-!#$%&\*\+/<=>\?@\\^|~:.]*" +syn match hsConSym "\(\<[A-Z][a-zA-Z0-9_']*\.\)\=:[-!#$%&\*\+./<=>\?@\\^|~:]*" +syn match hsVarSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[a-z][a-zA-Z0-9_']*`" +syn match hsConSym "`\(\<[A-Z][a-zA-Z0-9_']*\.\)\=[A-Z][a-zA-Z0-9_']*`" + +" (Non-qualified) identifiers which start with # are labels +syn match hsLabel "#[a-z][a-zA-Z0-9_']*\>" + +" Reserved symbols--cannot be overloaded. +syn match hsDelimiter "(\|)\|\[\|\]\|,\|;\|{\|}" + +" Strings and constants +syn match hsSpecialChar contained "\\\([0-9]\+\|o[0-7]\+\|x[0-9a-fA-F]\+\|[\"\\'&\\abfnrtv]\|^[A-Z^_\[\\\]]\)" +syn match hsSpecialChar contained "\\\(NUL\|SOH\|STX\|ETX\|EOT\|ENQ\|ACK\|BEL\|BS\|HT\|LF\|VT\|FF\|CR\|SO\|SI\|DLE\|DC1\|DC2\|DC3\|DC4\|NAK\|SYN\|ETB\|CAN\|EM\|SUB\|ESC\|FS\|GS\|RS\|US\|SP\|DEL\)" +syn match hsSpecialCharError contained "\\&\|'''\+" +syn region hsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=hsSpecialChar,@NoSpell +syn match hsCharacter "[^a-zA-Z0-9_']'\([^\\]\|\\[^']\+\|\\'\)'"lc=1 contains=hsSpecialChar,hsSpecialCharError +syn match hsCharacter "^'\([^\\]\|\\[^']\+\|\\'\)'" contains=hsSpecialChar,hsSpecialCharError +syn match hsNumber "\v<[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*>|<0[oO]_*%(_*[0-7])*>|<0[bB]_*[01]%(_*[01])*>" +syn match hsFloat "\v<[0-9]%(_*[0-9])*\.[0-9]%(_*[0-9])*%(_*[eE][-+]?[0-9]%(_*[0-9])*)?>|<[0-9]%(_*[0-9])*_*[eE][-+]?[0-9]%(_*[0-9])*>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*\.[0-9a-fA-F]%(_*[0-9a-fA-F])*%(_*[pP][-+]?[0-9]%(_*[0-9])*)?>|<0[xX]_*[0-9a-fA-F]%(_*[0-9a-fA-F])*_*[pP][-+]?[0-9]%(_*[0-9])*>" + +" Keyword definitions. +syn keyword hsModule module +syn match hsImportGroup "\.*" contains=hsImport,hsImportModuleName,hsImportMod,hsLineComment,hsBlockComment,hsImportList,@NoSpell nextgroup=hsImport +syn keyword hsImport import contained nextgroup=hsImportModuleName +syn match hsImportModuleName '\<[A-Z][A-Za-z.]*' contained +syn region hsImportList start='(' skip='([^)]\{-})' end=')' keepend contained contains=ConId,VarId,hsDelimiter,hsBlockComment,hsTypedef,@NoSpell + +syn keyword hsImportMod contained as qualified hiding +syn keyword hsInfix infix infixl infixr +syn keyword hsStructure class data deriving instance default where +syn keyword hsTypedef type +syn keyword hsNewtypedef newtype +syn keyword hsTypeFam family +syn keyword hsStatement mdo do case of let in +syn keyword hsConditional if then else + +" Not real keywords, but close. +if exists("hs_highlight_boolean") + " Boolean constants from the standard prelude. + syn keyword hsBoolean True False +endif +if exists("hs_highlight_types") + " Primitive types from the standard prelude and libraries. + syn keyword hsType Int Integer Char Bool Float Double IO Void Addr Array String +endif +if exists("hs_highlight_more_types") + " Types from the standard prelude libraries. + syn keyword hsType Maybe Either Ratio Complex Ordering IOError IOResult ExitCode + syn keyword hsMaybe Nothing + syn keyword hsExitCode ExitSuccess + syn keyword hsOrdering GT LT EQ +endif +if exists("hs_highlight_debug") + " Debugging functions from the standard prelude. + syn keyword hsDebug undefined error trace +endif + + +" Comments +syn match hsLineComment "---*\([^-!#$%&\*\+./<=>\?@\\^|~].*\)\?$" contains=@Spell +syn region hsBlockComment start="{-" end="-}" contains=hsBlockComment,@Spell +syn region hsPragma start="{-#" end="#-}" + +syn keyword hsTodo contained FIXME TODO XXX NOTE + +" C Preprocessor directives. Shamelessly ripped from c.vim and trimmed +" First, see whether to flag directive-like lines or not +if (!exists("hs_allow_hash_operator")) + syn match cError display "^\s*\(%:\|#\).*$" +endif +" Accept %: for # (C99) +syn region cPreCondit start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCommentError +syn match cPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>" +syn region cCppOut start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2 +syn region cCppOut2 contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cCppSkip +syn region cCppSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cCppSkip +syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match cIncluded display contained "<[^>]*>" +syn match cInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded +syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cCppOut,cCppOut2,cCppSkip,cCommentStartError +syn region cDefine matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" +syn region cPreProc matchgroup=cPreCondit start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend + +syn region cComment matchgroup=cCommentStart start="/\*" end="\*/" contains=cCommentStartError,cSpaceError contained +syntax match cCommentError display "\*/" contained +syntax match cCommentStartError display "/\*"me=e-1 contained +syn region cCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link hsModule hsStructure +hi def link hsImport Include +hi def link hsImportMod hsImport +hi def link hsInfix PreProc +hi def link hsStructure Structure +hi def link hsStatement Statement +hi def link hsConditional Conditional +hi def link hsSpecialChar SpecialChar +hi def link hsTypedef Typedef +hi def link hsNewtypedef Typedef +hi def link hsVarSym hsOperator +hi def link hsConSym hsOperator +hi def link hsOperator Operator +hi def link hsTypeFam Structure +if exists("hs_highlight_delimiters") +" Some people find this highlighting distracting. +hi def link hsDelimiter Delimiter +endif +hi def link hsSpecialCharError Error +hi def link hsString String +hi def link hsCharacter Character +hi def link hsNumber Number +hi def link hsFloat Float +hi def link hsConditional Conditional +hi def link hsLiterateComment hsComment +hi def link hsBlockComment hsComment +hi def link hsLineComment hsComment +hi def link hsComment Comment +hi def link hsPragma SpecialComment +hi def link hsBoolean Boolean +hi def link hsType Type +hi def link hsMaybe hsEnumConst +hi def link hsOrdering hsEnumConst +hi def link hsEnumConst Constant +hi def link hsDebug Debug +hi def link hsLabel Special + +hi def link cCppString hsString +hi def link cCommentStart hsComment +hi def link cCommentError hsError +hi def link cCommentStartError hsError +hi def link cInclude Include +hi def link cPreProc PreProc +hi def link cDefine Macro +hi def link cIncluded hsString +hi def link cError Error +hi def link cPreCondit PreCondit +hi def link cComment Comment +hi def link cCppSkip cCppOut +hi def link cCppOut2 cCppOut +hi def link cCppOut Comment + +let b:current_syntax = "haskell" + +" Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim diff --git a/runtime/syntax/haste.vim b/runtime/syntax/haste.vim new file mode 100644 index 0000000..79e9f5e --- /dev/null +++ b/runtime/syntax/haste.vim @@ -0,0 +1,142 @@ +" Vim syntax file +" Language: HASTE - a language for VLSI IC programming +" Maintainer: M. Tranchero - maurizio.tranchero?gmail.com +" Credits: some parts have been taken from vhdl, verilog, and C syntax +" files +" Version: 0.9 +" Last Change: 0.9 improvement of haste numbers detection +" Change: 0.8 error matching for wrong hierarchical connections +" Change: 0.7 added more rules to highlight pre-processor directives + +" HASTE +if exists("b:current_syntax") + finish +endif +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" case is significant +syn case match + +" HASTE keywords +syn keyword hasteStatement act alias arb array begin bitvec +syn keyword hasteStatement bitwidth boolvec broad case +syn keyword hasteStatement cast chan const dataprobe do edge +syn keyword hasteStatement else end export false ff fi file +syn keyword hasteStatement fit for forever func if import +syn keyword hasteStatement inprobe is les main narb narrow +syn keyword hasteStatement negedge od of or outprobe pas +syn keyword hasteStatement posedge probe proc ram ramreg +syn keyword hasteStatement repeat rom romreg sample sel si +syn keyword hasteStatement sign sizeof skip stop then true +syn keyword hasteStatement type until var wait wire +syn keyword hasteFutureExt Z ffe partial +syn keyword hasteVerilog buf reg while + +" Special match for "if", "or", and "else" since "else if" +" and other "else+if" combination shouldn't be highlighted. +" The right keyword is "or" +syn match hasteStatement "\<\(if\|then\|else\|fi\)\>" +syn match hasteNone "\$" +syn match hasteNone "\\s" +syn match hasteNone "\\s" +syn match hasteNone "\\s" +syn match hasteStatement "\<\(case\|is\|si\)\>" +syn match hasteStatement "\<\(repeat\|until\)\>" +syn match hasteStatement "\<\(forever\|do\|od\)\>" +syn match hasteStatement "\<\(for\|do\|od\)\>" +syn match hasteStatement "\<\(do\|or\|od\)\>" +syn match hasteStatement "\<\(sel\|les\)\>" +syn match hasteError "\<\d\+[_a-zA-Z]\+\>" +syn match hasteError "\(\([[:alnum:]]\+\s*(\s\+\|)\s*,\)\)\s*\([[:alnum:]]\+\s*(\)" + +" Predifined Haste types +syn keyword hasteType bool + +" Values for standard Haste types +" syn match hasteVector "\'[0L1HXWZU\-\?]\'" + +syn match hasteVector "0b\"[01_]\+\"" +syn match hasteVector "0x\"[0-9a-f_]\+\"" +syn match hasteCharacter "'.'" +" syn region hasteString start=+"+ end=+"+ +syn match hasteIncluded display contained "<[^>]*>" +syn match hasteIncluded display contained "<[^"]*>" +syn region hasteInclude start="^\s*#include\>\s*" end="$" contains=hasteIncluded,hasteString + +" integer numbers +syn match hasteNumber "\d\+\^[[:alnum:]]*[-+]\{0,1\}[[:alnum:]]*" +syn match hasteNumber "-\=\<\d\+\(\^[+\-]\=\d\+\)\>" +syn match hasteNumber "-\=\<\d\+\>" +" syn match hasteNumber "0*2#[01_]\+#\(\^[+\-]\=\d\+\)\=" +" syn match hasteNumber "0*16#[0-9a-f_]\+#\(\^[+\-]\=\d\+\)\=" +" operators +syn keyword hasteSeparators & , . \| +syn keyword hasteExecution \|\| ; @ +syn keyword hasteOperator := ? ! : +syn keyword hasteTypeConstr "[" << >> .. "]" ~ +syn keyword hasteExprOp < <= >= > = # <> + - * == ## +syn keyword hasteMisc ( ) 0x 0b +" +syn match hasteSeparators "[&:\|,.]" +syn match hasteOperator ":=" +syn match hasteOperator ":" +syn match hasteOperator "?" +syn match hasteOperator "!" +syn match hasteExecution "||" +syn match hasteExecution ";" +syn match hasteExecution "@" +syn match hasteType "\[\[" +syn match hasteType "\]\]" +syn match hasteType "<<" +syn match hasteType ">>" +syn match hasteExprOp "<" +syn match hasteExprOp "<=" +syn match hasteExprOp ">=" +syn match hasteExprOp ">" +syn match hasteExprOp "<>" +syn match hasteExprOp "=" +syn match hasteExprOp "==" +syn match hasteExprOp "##" +" syn match hasteExprOp "#" +syn match hasteExprOp "*" +syn match hasteExprOp "+" + +syn region hasteComment start="/\*" end="\*/" contains=@Spell +syn region hasteComment start="{" end="}" contains=@Spell +syn match hasteComment "//.*" contains=@Spell + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link hasteSpecial Special +hi def link hasteStatement Statement +hi def link hasteCharacter String +hi def link hasteString String +hi def link hasteVector String +hi def link hasteBoolean String +hi def link hasteComment Comment +hi def link hasteNumber String +hi def link hasteTime String +hi def link hasteType Type +hi def link hasteGlobal Error +hi def link hasteError Error +hi def link hasteAttribute Type +" +hi def link hasteSeparators Special +hi def link hasteExecution Special +hi def link hasteTypeConstr Special +hi def link hasteOperator Type +hi def link hasteExprOp Type +hi def link hasteMisc String +hi def link hasteFutureExt Error +hi def link hasteVerilog Error +hi def link hasteDefine Macro +hi def link hasteInclude Include +" hi def link hastePreProc Preproc +" hi def link hastePreProcVar Special + +let b:current_syntax = "haste" + +" vim: ts=8 diff --git a/runtime/syntax/hastepreproc.vim b/runtime/syntax/hastepreproc.vim new file mode 100644 index 0000000..f08bf3f --- /dev/null +++ b/runtime/syntax/hastepreproc.vim @@ -0,0 +1,38 @@ +" Vim syntax file +" Language: Haste preprocessor files +" Maintainer: M. Tranchero - maurizio.tranchero@gmail.com +" Credits: some parts have been taken from vhdl, verilog, and C syntax +" files +" Version: 0.5 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +" Read the haste syntax to start with +runtime! syntax/haste.vim +unlet b:current_syntax + +" case is significant +syn case match + +" C pre-processor directives +syn match hastepreprocVar display "\$[[:alnum:]_]*" +syn region hastepreprocVar start="\${" end="}" contains=hastepreprocVar +" +"syn region hastepreproc start="#\[\s*tg[:alnum:]*" end="]#" contains=hastepreprocVar,hastepreproc,hastepreprocError,@Spell +syn region hastepreproc start="#\[\s*\(\|tgfor\|tgif\)" end="$" contains=hastepreprocVar,hastepreproc,@Spell +syn region hastepreproc start="}\s\(else\)\s{" end="$" contains=hastepreprocVar,hastepreproc,@Spell +syn region hastepreproc start="^\s*#\s*\(ifndef\|ifdef\|else\|endif\)\>" end="$" contains=@hastepreprocGroup,@Spell +syn region hastepreproc start="\s*##\s*\(define\|undef\)\>" end="$" contains=@hastepreprocGroup,@Spell +syn match hastepreproc "}\{0,1}\s*]#" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link hastepreproc Preproc +hi def link hastepreprocVar Special +hi def link hastepreprocError Error + +let b:current_syntax = "hastepreproc" + +" vim: ts=8 diff --git a/runtime/syntax/hb.vim b/runtime/syntax/hb.vim new file mode 100644 index 0000000..7bff1df --- /dev/null +++ b/runtime/syntax/hb.vim @@ -0,0 +1,89 @@ +" Vim syntax file +" Language: Hyper Builder +" Maintainer: Alejandro Forero Cuervo +" URL: http://bachue.com/hb/vim/syntax/hb.vim +" Last Change: 2012 Jan 08 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Read the HTML syntax to start with +"syn include @HTMLStuff :p:h/htmlhb.vim + +"this would be nice but we are supposed not to do it +"set mps=<:> + +"syn region HBhtmlString contained start=+"+ end=+"+ contains=htmlSpecialChar +"syn region HBhtmlString contained start=+'+ end=+'+ contains=htmlSpecialChar + +"syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*" + +syn match htmlSpecialChar "&[^;]*;" contained + +syn match HBhtmlTagSk contained "[A-Za-z]*" + +syn match HBhtmlTagS contained "<\s*\(hb\s*\.\s*\(sec\|min\|hour\|day\|mon\|year\|input\|html\|time\|getcookie\|streql\|url-enc\)\|wall\s*\.\s*\(show\|info\|id\|new\|rm\|count\)\|auth\s*\.\s*\(chk\|add\|find\|user\)\|math\s*\.\s*exp\)\s*\([^.A-Za-z0-9]\|$\)" contains=HBhtmlTagSk transparent + +syn match HBhtmlTagN contained "[A-Za-z0-9\/\-]\+" + +syn match HBhtmlTagB contained "<\s*[A-Za-z0-9\/\-]\+\(\s*\.\s*[A-Za-z0-9\/\-]\+\)*" contains=HBhtmlTagS,HBhtmlTagN + +syn region HBhtmlTag contained start=+<+ end=+>+ contains=HBhtmlTagB,HBDirectiveError + +syn match HBFileName ".*" contained + +syn match HBDirectiveKeyword ":\s*\(include\|lib\|set\|out\)\s\+" contained + +syn match HBDirectiveError "^:.*$" contained + +"syn match HBDirectiveBlockEnd "^:\s*$" contained + +"syn match HBDirectiveOutHead "^:\s*out\s\+\S\+.*" contained contains=HBDirectiveKeyword,HBFileName + +"syn match HBDirectiveSetHead "^:\s*set\s\+\S\+.*" contained contains=HBDirectiveKeyword,HBFileName + +syn match HBInvalidLine "^.*$" + +syn match HBDirectiveInclude "^:\s*include\s\+\S\+.*$" contains=HBFileName,HBDirectiveKeyword + +syn match HBDirectiveLib "^:\s*lib\s\+\S\+.*$" contains=HBFileName,HBDirectiveKeyword + +syn region HBText matchgroup=HBDirectiveKeyword start=/^:\(set\|out\)\s*\S\+.*$/ end=/^:\s*$/ contains=HBDirectiveError,htmlSpecialChar,HBhtmlTag keepend + +"syn match HBLine "^:.*$" contains=HBDirectiveInclude,HBDirectiveLib,HBDirectiveError,HBDirectiveSet,HBDirectiveOut + +syn match HBComment "^#.*$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link HBhtmlString String +hi def link HBhtmlTagN Function +hi def link htmlSpecialChar String + +hi def link HBInvalidLine Error +hi def link HBFoobar Comment +hi HBFileName guibg=lightgray guifg=black +hi def link HBDirectiveError Error +hi def link HBDirectiveBlockEnd HBDirectiveKeyword +hi HBDirectiveKeyword guibg=lightgray guifg=darkgreen +hi def link HBComment Comment +hi def link HBhtmlTagSk Statement + + +syn sync match Normal grouphere NONE "^:\s*$" +syn sync match Normal grouphere NONE "^:\s*lib\s\+[^ \t]\+$" +syn sync match Normal grouphere NONE "^:\s*include\s\+[^ \t]\+$" +"syn sync match Block grouphere HBDirectiveSet "^#:\s*set\s\+[^ \t]\+" +"syn sync match Block grouphere HBDirectiveOut "^#:\s*out\s\+[^ \t]\+" + +let b:current_syntax = "hb" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim new file mode 100644 index 0000000..2024d38 --- /dev/null +++ b/runtime/syntax/help.vim @@ -0,0 +1,237 @@ +" Vim syntax file +" Language: Vim help file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match helpHeadline "^[A-Z.][-A-Z0-9 .,()_']*?\=\ze\(\s\+\*\|$\)" +syn match helpSectionDelim "^===.*===$" +syn match helpSectionDelim "^---.*--$" +if has("conceal") + syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<" concealends +else + syn region helpExample matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<" +endif +if has("ebcdic") + syn match helpHyperTextJump "\\\@" +syn match helpSpecial "\"ms=s+1 + +syn match helpSpecial "\[N]" +" avoid highlighting N N in help.txt +syn match helpSpecial "N N"he=s+1 +syn match helpSpecial "Nth"me=e-2 +syn match helpSpecial "N-1"me=e-2 +syn match helpSpecial "{[-a-zA-Z0-9'"*+/:%#=[\]<>.,]\+}" +syn match helpSpecial "\s\[[-a-z^A-Z0-9_]\{2,}]"ms=s+1 +syn match helpSpecial "<[-a-zA-Z0-9_]\+>" +syn match helpSpecial "<[SCM]-.>" +syn match helpNormal "<---*>" +syn match helpSpecial "\[range]" +syn match helpSpecial "\[line]" +syn match helpSpecial "\[count]" +syn match helpSpecial "\[offset]" +syn match helpSpecial "\[cmd]" +syn match helpNormal "vim9\[cmd]" +syn match helpSpecial "\[num]" +syn match helpSpecial "\[+num]" +syn match helpSpecial "\[-num]" +syn match helpSpecial "\[+cmd]" +syn match helpSpecial "\[++opt]" +syn match helpSpecial "\[arg]" +syn match helpSpecial "\[arguments]" +syn match helpSpecial "\[ident]" +syn match helpSpecial "\[addr]" +syn match helpSpecial "\[group]" +" Don't highlight [converted] and others that do not have a tag +syn match helpNormal "\[\(readonly\|fifo\|socket\|converted\|crypted\)]" + +syn match helpSpecial "CTRL-." +syn match helpSpecial "CTRL-SHIFT-." +syn match helpSpecial "CTRL-Break" +syn match helpSpecial "CTRL-PageUp" +syn match helpSpecial "CTRL-PageDown" +syn match helpSpecial "CTRL-Insert" +syn match helpSpecial "CTRL-Del" +syn match helpSpecial "CTRL-{char}" +syn region helpNotVi start="{Vi[: ]" start="{not" start="{only" end="}" contains=helpLeadBlank,helpHyperTextJump +syn match helpLeadBlank "^\s\+" contained + +" Highlight group items in their own color. +syn match helpComment "\t[* ]Comment\t\+[a-z].*" +syn match helpConstant "\t[* ]Constant\t\+[a-z].*" +syn match helpString "\t[* ]String\t\+[a-z].*" +syn match helpCharacter "\t[* ]Character\t\+[a-z].*" +syn match helpNumber "\t[* ]Number\t\+[a-z].*" +syn match helpBoolean "\t[* ]Boolean\t\+[a-z].*" +syn match helpFloat "\t[* ]Float\t\+[a-z].*" +syn match helpIdentifier "\t[* ]Identifier\t\+[a-z].*" +syn match helpFunction "\t[* ]Function\t\+[a-z].*" +syn match helpStatement "\t[* ]Statement\t\+[a-z].*" +syn match helpConditional "\t[* ]Conditional\t\+[a-z].*" +syn match helpRepeat "\t[* ]Repeat\t\+[a-z].*" +syn match helpLabel "\t[* ]Label\t\+[a-z].*" +syn match helpOperator "\t[* ]Operator\t\+["a-z].*" +syn match helpKeyword "\t[* ]Keyword\t\+[a-z].*" +syn match helpException "\t[* ]Exception\t\+[a-z].*" +syn match helpPreProc "\t[* ]PreProc\t\+[a-z].*" +syn match helpInclude "\t[* ]Include\t\+[a-z].*" +syn match helpDefine "\t[* ]Define\t\+[a-z].*" +syn match helpMacro "\t[* ]Macro\t\+[a-z].*" +syn match helpPreCondit "\t[* ]PreCondit\t\+[a-z].*" +syn match helpType "\t[* ]Type\t\+[a-z].*" +syn match helpStorageClass "\t[* ]StorageClass\t\+[a-z].*" +syn match helpStructure "\t[* ]Structure\t\+[a-z].*" +syn match helpTypedef "\t[* ]Typedef\t\+[Aa-z].*" +syn match helpSpecial "\t[* ]Special\t\+[a-z].*" +syn match helpSpecialChar "\t[* ]SpecialChar\t\+[a-z].*" +syn match helpTag "\t[* ]Tag\t\+[a-z].*" +syn match helpDelimiter "\t[* ]Delimiter\t\+[a-z].*" +syn match helpSpecialComment "\t[* ]SpecialComment\t\+[a-z].*" +syn match helpDebug "\t[* ]Debug\t\+[a-z].*" +syn match helpUnderlined "\t[* ]Underlined\t\+[a-z].*" +syn match helpError "\t[* ]Error\t\+[a-z].*" +syn match helpTodo "\t[* ]Todo\t\+[a-z].*" + +syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-zA-Z0-9/]` + +syn match helpDiffAdded "\t[* ]Added\t\+[a-z].*" +syn match helpDiffChanged "\t[* ]Changed\t\+[a-z].*" +syn match helpDiffRemoved "\t[* ]Removed\t\+[a-z].*" + +" Additionally load a language-specific syntax file "help_ab.vim". +let s:i = match(expand("%"), '\.\a\ax$') +if s:i > 0 + exe "runtime syntax/help_" . strpart(expand("%"), s:i + 1, 2) . ".vim" +endif + +" Italian +if v:lang =~ '\' || v:lang =~ '_IT\>' || v:lang =~? "italian" + syn keyword helpNote nota Nota NOTA nota: Nota: NOTA: notare Notare NOTARE notare: Notare: NOTARE: + syn match helpSpecial "Nma"me=e-2 + syn match helpSpecial "Nme"me=e-2 + syn match helpSpecial "Nmi"me=e-2 + syn match helpSpecial "Nmo"me=e-2 + syn match helpSpecial "\[interv.]" + syn region helpNotVi start="{non" start="{solo" start="{disponibile" end="}" contains=helpLeadBlank,helpHyperTextJump +endif + +syn sync minlines=40 + + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link helpIgnore Ignore +hi def link helpHyperTextJump Identifier +hi def link helpBar Ignore +hi def link helpBacktick Ignore +hi def link helpStar Ignore +hi def link helpHyperTextEntry String +hi def link helpHeadline Statement +hi def link helpHeader PreProc +hi def link helpSectionDelim PreProc +hi def link helpVim Identifier +hi def link helpCommand Comment +hi def link helpExample Comment +hi def link helpOption Type +hi def link helpNotVi Special +hi def link helpSpecial Special +hi def link helpNote Todo +hi def link helpWarning Todo +hi def link helpDeprecated Todo + +hi def link helpComment Comment +hi def link helpConstant Constant +hi def link helpString String +hi def link helpCharacter Character +hi def link helpNumber Number +hi def link helpBoolean Boolean +hi def link helpFloat Float +hi def link helpIdentifier Identifier +hi def link helpFunction Function +hi def link helpStatement Statement +hi def link helpConditional Conditional +hi def link helpRepeat Repeat +hi def link helpLabel Label +hi def link helpOperator Operator +hi def link helpKeyword Keyword +hi def link helpException Exception +hi def link helpPreProc PreProc +hi def link helpInclude Include +hi def link helpDefine Define +hi def link helpMacro Macro +hi def link helpPreCondit PreCondit +hi def link helpType Type +hi def link helpStorageClass StorageClass +hi def link helpStructure Structure +hi def link helpTypedef Typedef +hi def link helpSpecialChar SpecialChar +hi def link helpTag Tag +hi def link helpDelimiter Delimiter +hi def link helpSpecialComment SpecialComment +hi def link helpDebug Debug +hi def link helpUnderlined Underlined +hi def link helpError Error +hi def link helpTodo Todo +hi def link helpURL String +hi def link helpDiffAdded Added +hi def link helpDiffChanged Changed +hi def link helpDiffRemoved Removed + +if has('textprop') && expand('%:p') =~ '[/\\]doc[/\\]syntax.txt' + " highlight groups with their respective color + import 'dist/vimhelp.vim' + call vimhelp.HighlightGroups() +endif + +let b:current_syntax = "help" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 sw=2 diff --git a/runtime/syntax/help_ru.vim b/runtime/syntax/help_ru.vim new file mode 100644 index 0000000..67df7e1 --- /dev/null +++ b/runtime/syntax/help_ru.vim @@ -0,0 +1,65 @@ +" Vim syntax file +" Language: Russian Vim program help files *.rux +" Maintainer: Restorer (restorers@users.sourceforge.net DEFUNCT) +" Last Change: 04 Aprl 2017 +" + +" Проверяем язык локали и установки опции 'helplang' +" Если не русский, то выходим из скрипта. +if (v:lang !~? 'ru' || v:lang !~? 'russian') && &helplang !~? 'ru' + finish +endif + +" Подсветка русских гиперссылок +syntax match helpHyperTextJump "\\\@" +"старый заголовок +syntax match helpVim "\<СПРАВОЧНИК ПО .*" +" новый заголовок +"syntax match helpVim "\<РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ РЕДАКТОРОМ VIM\>" +"syntax match helpVim "\<автор\%[ы:] .*$" +"старый заголовок +syntax match helpVim "\<РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ .*" +" Подсветка примечаний в тексте, начала примеров и т.п. +syntax keyword helpNote Примечание. Совет. Пример. Примеры: +syntax keyword helpWarning Внимание! +" в старой версии документации +syntax keyword helpNote Замечание: +" в старой версии документации +syntax keyword helpWarning ВНИМАНИЕ! Предупреждение: +" Подсветка Ex-команд в документации Vim +syntax match helpCommand "\":[A-Za-z!]\+\""hs=s+1,he=e-1 +" Подсветка специальных обозначений +syntax match helpSpecial "{[-а-яёА-ЯЁ0-9'":%#=[\]<>.,]\+}" +syntax match helpSpecial "{[-а-яёА-ЯЁ0-9'"*+/:%#=[\]<>.,]\+}" +syntax match helpSpecial "\s\[[-а-яё^А-ЯЁ0-9_]\{2,}]"ms=s+1 +syntax match helpSpecial "<[-а-яёА-ЯЁ0-9_]\+>" +syntax match helpSpecial "\[диапазон]" +syntax match helpSpecial "\[счётчик]" +syntax match helpSpecial "\[число]" +syntax match helpSpecial "\[+число]" +syntax match helpSpecial "\[-число]" +syntax match helpSpecial "\[кол-во]" +syntax match helpSpecial "\[строка]" +syntax match helpSpecial "\[смещение]" +syntax match helpSpecial "\[параметр]" +syntax match helpSpecial "\[параметры]" +syntax match helpSpecial "CTRL-{символ}" +syntax region helpNotVi start="{Доступно только" start="{В редкторе Vim" start="{В редакторе Vi" end="}" contains=helpLeadBlank,helpHyperTextJump +" Подсветка примечаний переводчика +syntax region helpTrnsNote start="\[Прим. перевод." end="]" contains=helpComment +" Определение группы подсветки Ex-команд в документации Vim +"hi def link helpCommand vimCommand +" Определение группы подсветки примечаний переводчика +hi def link helpTrnsNote Comment +" hi def link helpTrnsNote Comment +" +" vim: ts=8 sw=2 diff --git a/runtime/syntax/hercules.vim b/runtime/syntax/hercules.vim new file mode 100644 index 0000000..d305707 --- /dev/null +++ b/runtime/syntax/hercules.vim @@ -0,0 +1,119 @@ +" Vim syntax file +" Language: Hercules +" Maintainer: Dana Edwards +" Extensions: *.vc,*.ev,*.rs +" Last change: Nov. 9, 2001 +" Comment: Hercules physical IC design verification software ensures +" that an IC's physical design matches its logical design and +" satisfies manufacturing rules. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Ignore case +syn case ignore + +" Hercules runset sections +syn keyword herculesType header assign_property alias assign +syn keyword herculesType options preprocess_options +syn keyword herculesType explode_options technology_options +syn keyword herculesType drc_options database_options +syn keyword herculesType text_options lpe_options evaccess_options +syn keyword herculesType check_point compare_group environment +syn keyword herculesType grid_check include layer_stats load_group +syn keyword herculesType restart run_only self_intersect set snap +syn keyword herculesType system variable waiver + +" Hercules commands +syn keyword herculesStatement attach_property boolean cell_extent +syn keyword herculesStatement common_hierarchy connection_points +syn keyword herculesStatement copy data_filter alternate delete +syn keyword herculesStatement explode explode_all fill_pattern find_net +syn keyword herculesStatement flatten +syn keyword herculesStatement level negate polygon_features push +syn keyword herculesStatement rectangles relocate remove_overlap reverse select +syn keyword herculesStatement select_cell select_contains select_edge select_net size +syn keyword herculesStatement text_polygon text_property vertex area cut +syn keyword herculesStatement density enclose external inside_edge +syn keyword herculesStatement internal notch vectorize center_to_center +syn keyword herculesStatement length mask_align moscheck rescheck +syn keyword herculesStatement analysis buildsub init_lpe_db capacitor +syn keyword herculesStatement device gendev nmos pmos diode npn pnp +syn keyword herculesStatement resistor set_param save_property +syn keyword herculesStatement connect disconnect text text_boolean +syn keyword herculesStatement replace_text create_ports label graphics +syn keyword herculesStatement save_netlist_database lpe_stats netlist +syn keyword herculesStatement spice graphics_property graphics_netlist +syn keyword herculesStatement write_milkyway multi_rule_enclose +syn keyword herculesStatement if error_property equate compare +syn keyword herculesStatement antenna_fix c_thru dev_connect_check +syn keyword herculesStatement dev_net_count device_count net_filter +syn keyword herculesStatement net_path_check ratio process_text_opens + +" Hercules keywords +syn keyword herculesStatement black_box_file block compare_dir equivalence +syn keyword herculesStatement format gdsin_dir group_dir group_dir_usage +syn keyword herculesStatement inlib layout_path outlib output_format +syn keyword herculesStatement output_layout_path schematic schematic_format +syn keyword herculesStatement scheme_file output_block else +syn keyword herculesStatement and or not xor andoverlap inside outside by to +syn keyword herculesStatement with connected connected_all texted_with texted +syn keyword herculesStatement by_property cutting edge_touch enclosing inside +syn keyword herculesStatement inside_hole interact touching vertex + +" Hercules comments +syn region herculesComment start="/\*" skip="/\*" end="\*/" contains=herculesTodo +syn match herculesComment "//.*" contains=herculesTodo + +" Preprocessor directives +syn match herculesPreProc "^#.*" +syn match herculesPreProc "^@.*" +syn match herculesPreProc "macros" + +" Hercules COMMENT option +syn match herculesCmdCmnt "comment.*=.*" + +" Spacings, Resolutions, Ranges, Ratios, etc. +syn match herculesNumber "-\=\<[0-9]\+L\=\>\|0[xX][0-9]\+\>" + +" Parenthesis sanity checker +syn region herculesZone matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesCurlyError +syn region herculesZone matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,herculesError,herculesBraceError,herculesParenError +syn region herculesZone matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,herculesError,herculesCurlyError,herculesParenError +syn match herculesError "[)\]}]" +syn match herculesBraceError "[)}]" contained +syn match herculesCurlyError "[)\]]" contained +syn match herculesParenError "[\]}]" contained + +" Hercules output format +"syn match herculesOutput "([0-9].*)" +"syn match herculesOutput "([0-9].*\;.*)" +syn match herculesOutput "perm\s*=.*(.*)" +syn match herculesOutput "temp\s*=\s*" +syn match herculesOutput "error\s*=\s*(.*)" + +"Modify the following as needed. The trade-off is performance versus functionality. +syn sync lines=100 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link herculesStatement Statement +hi def link herculesType Type +hi def link herculesComment Comment +hi def link herculesPreProc PreProc +hi def link herculesTodo Todo +hi def link herculesOutput Include +hi def link herculesCmdCmnt Identifier +hi def link herculesNumber Number +hi def link herculesBraceError herculesError +hi def link herculesCurlyError herculesError +hi def link herculesParenError herculesError +hi def link herculesError Error + + +let b:current_syntax = "hercules" + +" vim: ts=8 diff --git a/runtime/syntax/hex.vim b/runtime/syntax/hex.vim new file mode 100644 index 0000000..35edf08 --- /dev/null +++ b/runtime/syntax/hex.vim @@ -0,0 +1,89 @@ +" Vim syntax file +" Language: Intel HEX +" Maintainer: Markus Heidelberg +" Previous version: Sams Ricahrd +" Last Change: 2015 Feb 24 + +" Each record (line) is built as follows: +" +" field digits states +" +" +----------+ +" | start | 1 (':') hexRecStart +" +----------+ +" | count | 2 hexDataByteCount +" +----------+ +" | address | 4 hexNoAddress, hexDataAddress, (hexAddressFieldUnknown) +" +----------+ +" | type | 2 hexRecType, (hexRecTypeUnknown) +" +----------+ +" | data | 0..510 hexDataOdd, hexDataEven, hexExtendedAddress, hexStartAddress, (hexDataFieldUnknown, hexDataUnexpected) +" +----------+ +" | checksum | 2 hexChecksum +" +----------+ +" +" States in parentheses in the upper format description indicate that they +" should not appear in a valid file. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match hexRecStart "^:" + +syn match hexDataByteCount "^:[0-9a-fA-F]\{2}" contains=hexRecStart nextgroup=hexAddress + +syn match hexAddress "[0-9a-fA-F]\{4}" transparent contained nextgroup=hexRecTypeUnknown,hexRecType +" The address field groups include the record type field in the last 2 +" characters, the proper match for highlighting follows below. +syn match hexAddressFieldUnknown "^:[0-9a-fA-F]\{8}" contains=hexDataByteCount nextgroup=hexDataFieldUnknown,hexChecksum +syn match hexDataAddress "^:[0-9a-fA-F]\{6}00" contains=hexDataByteCount nextgroup=hexDataOdd,hexChecksum +syn match hexNoAddress "^:[0-9a-fA-F]\{6}01" contains=hexDataByteCount nextgroup=hexDataUnexpected,hexChecksum +syn match hexNoAddress "^:[0-9a-fA-F]\{6}0[24]" contains=hexDataByteCount nextgroup=hexExtendedAddress +syn match hexNoAddress "^:[0-9a-fA-F]\{6}0[35]" contains=hexDataByteCount nextgroup=hexStartAddress + +syn match hexRecTypeUnknown "[0-9a-fA-F]\{2}" contained +syn match hexRecType "0[0-5]" contained + +syn match hexDataFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=hexDataFieldUnknown,hexChecksum +" alternating highlight per byte for easier reading +syn match hexDataOdd "[0-9a-fA-F]\{2}" contained nextgroup=hexDataEven,hexChecksum +syn match hexDataEven "[0-9a-fA-F]\{2}" contained nextgroup=hexDataOdd,hexChecksum +" data bytes which should not exist +syn match hexDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=hexDataUnexpected,hexChecksum +" Data digit pair regex usage also results in only highlighting the checksum +" if the number of data characters is even. + +" special data fields +syn match hexExtendedAddress "[0-9a-fA-F]\{4}" contained nextgroup=hexDataUnexpected,hexChecksum +syn match hexStartAddress "[0-9a-fA-F]\{8}" contained nextgroup=hexDataUnexpected,hexChecksum + +syn match hexChecksum "[0-9a-fA-F]\{2}$" contained + +" Folding Data Records below an Extended Segment/Linear Address Record +syn region hexExtAdrBlock start="^:[0-9a-fA-F]\{7}[24]" skip="^:[0-9a-fA-F]\{7}0" end="^:"me=s-1 fold transparent + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link hexRecStart hexRecType +hi def link hexDataByteCount Constant +hi def hexAddressFieldUnknown term=italic cterm=italic gui=italic +hi def link hexDataAddress Comment +hi def link hexNoAddress DiffAdd +hi def link hexRecTypeUnknown hexRecType +hi def link hexRecType WarningMsg +hi def hexDataFieldUnknown term=italic cterm=italic gui=italic +hi def hexDataOdd term=bold cterm=bold gui=bold +hi def hexDataEven term=NONE cterm=NONE gui=NONE +hi def link hexDataUnexpected Error +hi def link hexExtendedAddress hexDataAddress +hi def link hexStartAddress hexDataAddress +hi def link hexChecksum DiffChange + + +let b:current_syntax = "hex" + +" vim: ts=8 diff --git a/runtime/syntax/hgcommit.vim b/runtime/syntax/hgcommit.vim new file mode 100644 index 0000000..e9f31be --- /dev/null +++ b/runtime/syntax/hgcommit.vim @@ -0,0 +1,30 @@ +" Vim syntax file +" Language: hg/sl (Mercurial / Sapling) commit file +" Maintainer: Ken Takata +" Max Coplan +" Last Change: 2022-12-08 +" License: VIM License +" URL: https://github.com/k-takata/hg-vim + +if exists("b:current_syntax") + finish +endif + +syn match hgcommitComment "^\%(SL\|HG\): .*$" contains=@NoSpell +syn match hgcommitUser "^\%(SL\|HG\): user: \zs.*$" contains=@NoSpell contained containedin=hgcommitComment +syn match hgcommitBranch "^\%(SL\|HG\): branch \zs.*$" contains=@NoSpell contained containedin=hgcommitComment +syn match hgcommitAdded "^\%(SL\|HG\): \zsadded .*$" contains=@NoSpell contained containedin=hgcommitComment +syn match hgcommitChanged "^\%(SL\|HG\): \zschanged .*$" contains=@NoSpell contained containedin=hgcommitComment +syn match hgcommitRemoved "^\%(SL\|HG\): \zsremoved .*$" contains=@NoSpell contained containedin=hgcommitComment + +syn region hgcommitDiff start=/\%(^\(SL\|HG\): diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@hgcommitDiff +syn include @hgcommitDiff syntax/shared/hgcommitDiff.vim + +hi def link hgcommitComment Comment +hi def link hgcommitUser String +hi def link hgcommitBranch String +hi def link hgcommitAdded Identifier +hi def link hgcommitChanged Special +hi def link hgcommitRemoved Constant + +let b:current_syntax = "hgcommit" diff --git a/runtime/syntax/hitest.vim b/runtime/syntax/hitest.vim new file mode 100644 index 0000000..27b8eab --- /dev/null +++ b/runtime/syntax/hitest.vim @@ -0,0 +1,10 @@ +" Vim syntax file +" Language: none; used to see highlighting +" Maintainer: github user lacygoill +" Last Change: 2023 Mar 08 + +" To see your current highlight settings, do +" :so $VIMRUNTIME/syntax/hitest.vim + +import 'dist/vimhighlight.vim' +call vimhighlight.HighlightTest() diff --git a/runtime/syntax/hlsplaylist.vim b/runtime/syntax/hlsplaylist.vim new file mode 100644 index 0000000..245eee2 --- /dev/null +++ b/runtime/syntax/hlsplaylist.vim @@ -0,0 +1,120 @@ +" Vim syntax file +" Language: HLS Playlist +" Maintainer: Benoît Ryder +" Latest Revision: 2022-09-23 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Comment line +syn match hlsplaylistComment "^#\(EXT\)\@!.*$" +" Segment URL +syn match hlsplaylistUrl "^[^#].*$" + +" Unknown tags, assume an attribute list or nothing +syn match hlsplaylistTagUnknown "^#EXT[^:]*$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagUnknown start="^#EXT[^:]*\ze:" end="$" keepend contains=hlsplaylistAttributeList + +" Basic Tags +syn match hlsplaylistTagHeader "^#EXTM3U$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-VERSION\ze:" end="$" keepend contains=hlsplaylistValueInt + +" Media or Multivariant Playlist Tags +syn match hlsplaylistTagHeader "^#EXT-X-INDEPENDENT-SEGMENTS$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagDelimiter start="^#EXT-X-START\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-DEFINE\ze:" end="$" keepend contains=hlsplaylistAttributeList + +" Media Playlist Tags +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-TARGETDURATION\ze:" end="$" keepend contains=hlsplaylistValueFloat +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-MEDIA-SEQUENCE\ze:" end="$" keepend contains=hlsplaylistValueInt +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-DISCONTINUITY-SEQUENCE\ze:" end="$" keepend contains=hlsplaylistValueInt +syn match hlsplaylistTagDelimiter "^#EXT-X-ENDLIST$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-PLAYLIST-TYPE\ze:" end="$" keepend contains=hlsplaylistAttributeEnum +syn match hlsplaylistTagStandard "^#EXT-X-I-FRAME-ONLY$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-PART-INF\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagHeader start="^#EXT-X-SERVER-CONTROL\ze:" end="$" keepend contains=hlsplaylistAttributeList + +" Media Segment Tags +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement start="^#EXTINF\ze:" end="$" keepend contains=hlsplaylistValueFloat,hlsplaylistExtInfDesc +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-BYTERANGE\ze:" end="$" keepend contains=hlsplaylistValueInt +syn match hlsplaylistTagDelimiter "^#EXT-X-DISCONTINUITY$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-KEY\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-MAP\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-PROGRAM-DATE-TIME\ze:" end="$" keepend contains=hlsplaylistValueDateTime +syn match hlsplaylistTagDelimiter "^#EXT-X-GAP$" +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-BITRATE\ze:" end="$" keepend contains=hlsplaylistValueFloat +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement start="^#EXT-X-PART\ze:" end="$" keepend contains=hlsplaylistAttributeList + +" Media Metadata Tags +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-DATERANGE\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-SKIP\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement start="^#EXT-X-PRELOAD-HINT\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement start="^#EXT-X-RENDITION-REPORT\ze:" end="$" keepend contains=hlsplaylistAttributeList + +" Multivariant Playlist Tags +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-MEDIA\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement start="^#EXT-X-STREAM-INF\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStatement start="^#EXT-X-I-FRAME-STREAM-INF\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-SESSION-DATA\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-SESSION-KEY\ze:" end="$" keepend contains=hlsplaylistAttributeList +syn region hlsplaylistTagLine matchgroup=hlsplaylistTagStandard start="^#EXT-X-CONTENT-STEERING\ze:" end="$" keepend contains=hlsplaylistAttributeList + +" Attributes +syn region hlsplaylistAttributeList start=":" end="$" keepend contained + \ contains=hlsplaylistAttributeName,hlsplaylistAttributeInt,hlsplaylistAttributeHex,hlsplaylistAttributeFloat,hlsplaylistAttributeString,hlsplaylistAttributeEnum,hlsplaylistAttributeResolution,hlsplaylistAttributeUri +" Common attributes +syn match hlsplaylistAttributeName "[A-Za-z-]\+\ze=" contained +syn match hlsplaylistAttributeEnum "=\zs[A-Za-z][A-Za-z0-9-_]*" contained +syn match hlsplaylistAttributeString +=\zs"[^"]*"+ contained +syn match hlsplaylistAttributeInt "=\zs\d\+" contained +syn match hlsplaylistAttributeFloat "=\zs-\?\d*\.\d*" contained +syn match hlsplaylistAttributeHex "=\zs0[xX]\d*" contained +syn match hlsplaylistAttributeResolution "=\zs\d\+x\d\+" contained +" Allow different highligting for URI attributes +syn region hlsplaylistAttributeUri matchgroup=hlsplaylistAttributeName start="\zsURI\ze" end="\(,\|$\)" contained contains=hlsplaylistUriQuotes +syn region hlsplaylistUriQuotes matchgroup=hlsplaylistAttributeString start=+"+ end=+"+ keepend contained contains=hlsplaylistUriValue +syn match hlsplaylistUriValue /[^" ]\+/ contained +" Individual values +syn match hlsplaylistValueInt "[0-9]\+" contained +syn match hlsplaylistValueFloat "\(\d\+\|\d*\.\d*\)" contained +syn match hlsplaylistExtInfDesc ",\zs.*$" contained +syn match hlsplaylistValueDateTime "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d\(\.\d*\)\?\(Z\|\d\d:\?\d\d\)$" contained + + +" Define default highlighting + +hi def link hlsplaylistComment Comment +hi def link hlsplaylistUrl NONE + +hi def link hlsplaylistTagHeader Special +hi def link hlsplaylistTagStandard Define +hi def link hlsplaylistTagDelimiter Delimiter +hi def link hlsplaylistTagStatement Statement +hi def link hlsplaylistTagUnknown Special + +hi def link hlsplaylistUriQuotes String +hi def link hlsplaylistUriValue Underlined +hi def link hlsplaylistAttributeQuotes String +hi def link hlsplaylistAttributeName Identifier +hi def link hlsplaylistAttributeInt Number +hi def link hlsplaylistAttributeHex Number +hi def link hlsplaylistAttributeFloat Float +hi def link hlsplaylistAttributeString String +hi def link hlsplaylistAttributeEnum Constant +hi def link hlsplaylistAttributeResolution Constant +hi def link hlsplaylistValueInt Number +hi def link hlsplaylistValueFloat Float +hi def link hlsplaylistExtInfDesc String +hi def link hlsplaylistValueDateTime Constant + + +let b:current_syntax = "hlsplaylist" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: sts=2 sw=2 et diff --git a/runtime/syntax/hog.vim b/runtime/syntax/hog.vim new file mode 100644 index 0000000..24aa203 --- /dev/null +++ b/runtime/syntax/hog.vim @@ -0,0 +1,208 @@ +" Vim syntax file +" Language: hog (Snort.conf + .rules) +" Maintainer: Victor Roemer, . +" Last Change: 2019 Sep 22 +" 2012 Oct 24 -> Originalish release +" 2019 Sep 22 -> included PR 3069 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword-=: +setlocal iskeyword+=- +syn case ignore + +" Hog ruletype crap +syn keyword HogRuleType ruletype nextgroup=HogRuleTypeName skipwhite +syn match HogRuleTypeName "[[:alnum:]_]\+" contained nextgroup=HogRuleTypeBody skipwhite +syn region HogRuleTypeBody start="{" end="}" contained contains=HogRuleTypeType,HogOutput fold +syn keyword HogRuleTypeType type contained + +" Hog Configurables +syn keyword HogPreproc preprocessor nextgroup=HogConfigName skipwhite +syn keyword HogConfig config nextgroup=HogConfigName skipwhite +syn keyword HogOutput output nextgroup=HogConfigName skipwhite +syn match HogConfigName "[[:alnum:]_-]\+" contained nextgroup=HogConfigOpts skipwhite +syn region HogConfigOpts start=":" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold keepend contained contains=HogSpecial,HogNumber,HogIPAddr,HogVar,HogComment + +" Event filter's and threshold's +syn region HogEvFilter start="event_filter\|threshold" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold transparent keepend contains=HogEvFilterKeyword,HogEvFilterOptions,HogComment +syn keyword HogEvFilterKeyword skipwhite event_filter threshold +syn keyword HogEvFilterOptions skipwhite type nextgroup=HogEvFilterTypes +syn keyword HogEvFilterTypes skipwhite limit threshold both contained +syn keyword HogEvFilterOptions skipwhite track nextgroup=HogEvFilterTrack +syn keyword HogEvFilterTrack skipwhite by_src by_dst contained +syn keyword HogEvFilterOptions skipwhite gen_id sig_id count seconds nextgroup=HogNumber + +" Suppressions +syn region HogEvFilter start="suppress" skip="\\.\{-}$\|^\s*#.\{-}$\|^\s*$" end="$" fold transparent keepend contains=HogSuppressKeyword,HogComment +syn keyword HogSuppressKeyword skipwhite suppress +syn keyword HogSuppressOptions skipwhite gen_id sig_id nextgroup=HogNumber +syn keyword HogSuppressOptions skipwhite track nextgroup=HogEvFilterTrack +syn keyword HogSuppressOptions skipwhite ip nextgroup=HogIPAddr + +" Attribute table +syn keyword HogAttribute attribute_table nextgroup=HogAttributeFile +syn match HogAttributeFile contained ".*$" contains=HogVar,HogAttributeType,HogComment +syn keyword HogAttributeType filename + +" Hog includes +syn keyword HogInclude include nextgroup=HogIncludeFile skipwhite +syn match HogIncludeFile ".*$" contained contains=HogVar,HogComment + +" Hog dynamic libraries +syn keyword HogDylib dynamicpreprocessor dynamicengine dynamicdetection nextgroup=HogDylibFile skipwhite +syn match HogDylibFile "\s.*$" contained contains=HogVar,HogDylibType,HogComment +syn keyword HogDylibType directory file contained + +" Variable dereferenced with '$' +syn match HogVar "\$[[:alnum:]_]\+" + +", Variables declared with 'var' +syn keyword HogVarType var nextgroup=HogVarSet skipwhite +syn match HogVarSet "[[:alnum:]_]\+" display contained nextgroup=HogVarValue skipwhite +syn match HogVarValue ".*$" contained contains=HogString,HogNumber,HogVar,HogComment + +" Variables declared with 'ipvar' +syn keyword HogIPVarType ipvar nextgroup=HogIPVarSet skipwhite +syn match HogIPVarSet "[[:alnum:]_]\+" display contained nextgroup=HogIPVarList,HogSpecial skipwhite +syn region HogIPVarList start="\[" end="]" contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot + +" Variables declared with 'portvar' +syn keyword HogPortVarType portvar nextgroup=HogPortVarSet skipwhite +syn match HogPortVarSet "[[:alnum:]_]\+" display contained nextgroup=HogPortVarList,HogPort,HogOpRange,HogOpNot,HogSpecial skipwhite +syn region HogPortVarList start="\[" end="]" contains=HogPortVarList,HogVar,HogOpNot,HogPort,HogOpRange,HogOpNot +syn match HogPort "\<\%(\d\+\|any\)\>" display contains=HogOpRange nextgroup=HogOpRange + +" Generic stuff +syn match HogIPAddr contained "\<\%(\d\{1,3}\(\.\d\{1,3}\)\{3}\|any\)\>" nextgroup=HogIPCidr +syn match HogIPAddr contained "\<\d\{1,3}\(\.\d\{1,3}\)\{3}\>" nextgroup=HogIPCidr +syn match HogIPCidr contained "\/\([0-2][0-9]\=\|3[0-2]\=\)" +syn region HogHexEsc contained start='|' end='|' oneline +syn region HogString contained start='"' end='"' extend oneline contains=HogHexEsc +syn match HogNumber contained display "\<\d\+\>" +syn match HogNumber contained display "\<\d\+\>" +syn match HogNumber contained display "0x\x\+\>" +syn keyword HogSpecial contained true false yes no default all any +syn keyword HogSpecialAny contained any +syn match HogOpNot "!" contained +syn match HogOpRange ":" contained + +" Rules +syn keyword HogRuleAction activate alert drop block dynamic log pass reject sdrop sblock skipwhite nextgroup=HogRuleProto,HogRuleBlock +syn keyword HogRuleProto ip tcp tcp-pkt tcp-stream udp icmp http ftp tls smb dns dcerpc ssh smtp imap msn modbus dnp3 enip nfs ikev2 ntp skipwhite contained nextgroup=HogRuleSrcIP +syn match HogRuleSrcIP "\S\+" transparent skipwhite contained contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot nextgroup=HogRuleSrcPort +syn match HogRuleSrcPort "\S\+" transparent skipwhite contained contains=HogPortVarList,HogVar,HogPort,HogOpRange,HogOpNot nextgroup=HogRuleDir +syn match HogRuleDir "->\|<>" skipwhite contained nextgroup=HogRuleDstIP +syn match HogRuleDstIP "\S\+" transparent skipwhite contained contains=HogIPVarList,HogIPAddr,HogVar,HogOpNot nextgroup=HogRuleDstPort +syn match HogRuleDstPort "\S\+" transparent skipwhite contained contains=HogPortVarList,HogVar,HogPort,HogOpRange,HogOpNot nextgroup=HogRuleBlock +syn region HogRuleBlock start="(" end=")" transparent skipwhite contained contains=HogRuleOption,HogComment fold +",HogString,HogComment,HogVar,HogOptNot +"syn region HogRuleOption start="\" end="\ze;" skipwhite contained contains=HogNumber +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP msg gid sid rev classtype priority metadata target content nocase rawbytes +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP depth startswith offset distance within http_client_body http_cookie http_raw_cookie http_header +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP http_raw_header http_request_line http_method http_uri http_raw_uri http_protocol http_response_line http_stat_code http_stat_msg +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP http_user_agent http_accept http_accept_enc http_accept_lang http_connection http_content_type http_content_len +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP http_referer http_start http_header_names http_server_body http_host http_raw_host +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP filename fileext filemagic filestore filemd5 filesha1 filesha256 filesize +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP dns_query tls_cert_subject tls_cert_issuer tls_cert_serial tls_cert_fingerprint +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP tls_sni tls_cert_notbefore tls_cert_notafter tls_cert_expired tls_cert_valid +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP tls.version tls.subject tls.issuerdn tls.fingerprint tls.store ja3_hash ja3_string +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP modbus dnp3_func dnp3_ind dnp3_obj dnp3_data enip_command cip_service +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP app-layer-protocol app-layer-event xbits iprep lua luajit +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP fast_pattern prefilter uricontent urilen isdataat pcre pkt_data file_data base64_decode base64_data +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP byte_test byte_jump byte_extract ftpdata_command ftpbounce asn1 cvs dce_iface dce_opnum dce_stub_data +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP sip_method sip_stat_code sip_header sip_body gtp_type gtp_info gtp_version ssl_version +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP ssl_state fragoffset ttl tos id ipopts geoip fragbits dsize flags flow flowbits flowint seq ack window +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP itype icode icmp_id icmp_seq rpc ip_proto sameip stream_reassemble stream_size +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP logto session resp react tag activates activated_by count replace detection_filter +syn keyword HogRuleOption skipwhite contained nextgroup=HogRuleSROP threshold reference sd_pattern file_type file_group + +syn region HogRuleSROP start=':' end=";" transparent keepend contained contains=HogRuleChars,HogString,HogNumber +syn match HogRuleChars "\%(\k\|\.\|?\|=\|/\|%\|&\)\+" contained +syn match HogURLChars "\%(\.\|?\|=\)\+" contained + +" Hog File Type Rules +syn match HogFileType /^\s*file.*$/ transparent contains=HogFileTypeOpt,HogFileFROP +syn keyword HogFileTypeOpt skipwhite contained nextgroup=HogRuleFROP file type ver category id rev content offset msg group +syn region HogFileFROP start=':' end=";" transparent keepend contained contains=NotASemicoln +syn match NotASemiColn ".*$" contained + + +" Comments +syn keyword HogTodo XXX TODO NOTE contained +syn match HogTodo "Step\s\+#\=\d\+" contained +syn region HogComment start="#" end="$" contains=HogTodo,@Spell + +syn case match + +if !exists("hog_minlines") + let hog_minlines = 100 +endif +exec "syn sync minlines=" . hog_minlines + +hi link HogRuleType Statement +hi link HogRuleTypeName Type +hi link HogRuleTypeType Keyword + +hi link HogPreproc Statement +hi link HogConfig Statement +hi link HogOutput Statement +hi link HogConfigName Type + +"hi link HogEvFilter +hi link HogEvFilterKeyword Statement +hi link HogSuppressKeyword Statement +hi link HogEvFilterTypes Constant +hi link HogEvFilterTrack Constant + +hi link HogAttribute Statement +hi link HogAttributeFile String +hi link HogAttributeType Statement + +hi link HogInclude Statement +hi link HogIncludeFile String + +hi link HogDylib Statement +hi link HogDylibType Statement +hi link HogDylibFile String + +" Variables +" var +hi link HogVar Identifier +hi link HogVarType Keyword +hi link HogVarSet Identifier +hi link HogVarValue String +" ipvar +hi link HogIPVarType Keyword +hi link HogIPVarSet Identifier +" portvar +hi link HogPortVarType Keyword +hi link HogPortVarSet Identifier +hi link HogPort Constant + +hi link HogTodo Todo +hi link HogComment Comment +hi link HogString String +hi link HogHexEsc PreProc +hi link HogNumber Number +hi link HogSpecial Constant +hi link HogSpecialAny Constant +hi link HogIPAddr Constant +hi link HogIPCidr Constant +hi link HogOpNot Operator +hi link HogOpRange Operator + +hi link HogRuleAction Statement +hi link HogRuleProto Identifier +hi link HogRuleDir Operator +hi link HogRuleOption Keyword +hi link HogRuleChars String + +hi link HogFileType HogRuleAction +hi link HogFileTypeOpt HogRuleOption +hi link NotASemiColn HogRuleChars + +let b:current_syntax = "hog" diff --git a/runtime/syntax/hollywood.vim b/runtime/syntax/hollywood.vim new file mode 100644 index 0000000..7846d52 --- /dev/null +++ b/runtime/syntax/hollywood.vim @@ -0,0 +1,180 @@ +" Vim syntax file +" Language: Hollywood 10.0 +" Maintainer: Ola Sder +" First Author: Tom Crecelius +" Last Change: 2023 Mar 22 +" Highlighting Issues: +" Depending on your colour schema, Strings or Comments might be highlighted in +" a way, you don't like. If so, try one of the following settings after +" opening a hollywood script: +" +" :hi link hwString MoreMsg +" :hi link hwString NonText +" :hi link hwString String +" +" and for comments: +" +" :hi link hwComment MoreMsg +" :hi link hwComment NonText +" :hi link hwComment Comment +" +" Remember the setting you like and change the corresponding definition at +" the bottom of this file. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +if !exists("hw_version") + let hw_version = 9 + let hw_subversion = 0 +elseif !exists("hw_subversion") + let hw_subversion = 0 +endif + +syn case match + +" syncing method +syn sync minlines=100 + +" catch errors caused by wrong parenthesis and wrong curly brackets or +" keywords placed outside their respective blocks +syn region hwParen transparent start='(' end=')' contains=ALLBUT,hwParenError,hwTodo,hwSpecial,hwIfEndIf,hwElseIf,hwElse,hwBlock,hwLoopBlock,hwIn,hwStatement,hwStep,hwFallThrough,hwLineStatement +syn region hwTableBlock transparent matchgroup=hwTable start="{" end="}" contains=ALLBUT,hwBraceError,hwTodo,hwSpecial,hwIfEndIf,hwElseIf,hwElse,hwBlock,hwLoopBlock,hwIn,hwStatement,hwStep,hwFallThrough,hwLineStatement + +syn match hwParenError ")" +syn match hwBraceError "}" +syn match hwError "\<\%(If\|End\|Else\|ElseIf\|Then\|Until\|In\|EndIf\|EndSwitch\|FallThrough\|Case\|Default\|Wend\|Until\|Forever\)\>" + +" Function ... End +syn region hwFunctionBlock transparent matchgroup=hwFunction start="\" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwFallThrough,hwLineStatement + +" If .. Then +syn region hwIfThen transparent matchgroup=hwCond start="\" end="\\{-}"me=e-4 skipwhite skipempty +" Then ... Else +syn region hwThenElse transparent matchgroup=hwCond start="\" end="$" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwIn,hwStep,hwLineStatement,hwIfEndIf,hwElseEndif,hwIfThen,hwThenElse skipwhite skipempty + +" If .. EndIf +syn region hwIfEndIf transparent matchgroup=hwCond start="\\(\(.\{-}Then.\{-}\)\@!\)" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwIn,hwStep,hwLineStatement skipwhite skipempty +" Else ... EndIf +syn region hwElseEndIf contained transparent matchgroup=hwCond start="\" end="\"me=e-5 contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElseEndIf,hwIn,hwStep,hwFallThrough,hwLineStatement + +" Then +"syn keyword hwLineStatement Then contained +" Forever +syn keyword hwLineStatement Forever contained +" Do +syn keyword hwLineStatement Do contained +" ElseIf +syn keyword hwElseIf ElseIf contained + + +" Switch ... EndSwitch +syn region hwSwitchEnd transparent matchgroup=hwCond start="\" end="\" contains=hwCase,hwDefCase skipwhite skipempty + +" Case ... : +syn region hwCase transparent matchgroup=hwCond start="\" end="\"me=e-9 end="\:"me=e-8 end="\"me=e-4 contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElseEndIf,hwLineStatement,hwIn,hwStep skipwhite skipempty +" Default: +syn region hwDefCase transparent matchgroup=hwCond start="\" end="\"me=e-9 contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElseEndIf,hwIn,hwStep,hwCase,hwDefCase,hwFallThrough,hwLineStatement skipwhite skipempty + +syn keyword hwFallThrough contained FallThrough + +" Block ... EndBlock +syn region hwBlock transparent matchgroup=hwStatement start="\" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwLineStatement + +" Repeat ... Until/Forever +syn region hwLoopBlock transparent matchgroup=hwRepeat start="\" end="\" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwLineStatement + +" While ... Wend/Do +syn region hwLoopBlock transparent matchgroup=hwRepeat start="\" end="\" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwStep,hwLineStatement skipwhite skipempty + +" For .. To +syn region hwForTo transparent matchgroup=hwRepeat start="\" end="\"me=e-2 skipwhite skipempty nextgroup=hwToNext + +" To .. Next +syn region hwToNext transparent matchgroup=hwRepeat start="\" end="\" contains=ALLBUT,hwTodo,hwSpecial,hwElseIf,hwElse,hwIn,hwLineStatement skipwhite skipempty + +syn keyword hwStep contained Step +syn keyword hwIn contained In + +" other keywords +syn keyword hwStatement Return Break Continue +syn keyword hwStatement Goto Gosub Dim DimStr Const Local Global +syn match hwLabel "::\I\i*::" +syn match hwOperator "\%(&\|\*\|+\|-\|\.\||\|//\|/\|:\|<\|=\|>\|<>\|<=\|=>\|\^\|\~\|\\\|\\|\\|\\|\\)" +syn keyword hwConstant Nil +syn keyword hwConstant True False +" predefined preprocessing commands +syn match hwPreProcessor "@\<\%(ANIM\|APPAUTHOR\|APPCOPYRIGHT\|APPDESCRIPTION\|APPICON\|APPIDENTIFIER\|APPTITLE\|APPVERSION\|BACKFILL\|BGPIC\|BRUSH\|CATALOG\|DIRECTORY\|DISPLAY\|ELSE\|ELSEIF\|ENDIF\|ERROR\|FILE\|FONT\|ICON\|IF\|INCLUDE\|LINKER\|MENU\|MUSIC\|OPTIONS\|PALETTE\|REQUIRE\|SAMPLE\|SCREEN\|SPRITE\|VERSION\|VIDEO\|WARNING\)\>"ms=s+1 +" predefined constants +syn match hwConstant "#\<\%(ACTIVEWINDOW\|ADF_ANIM\|ADF_FX\|ADF_MOVEOBJECT\|ALL\|ALPHABETICAL\|ALPHACHANNEL\|ALPHANUMERICAL\|AMIGAICON_DEVICE\|AMIGAICON_DISK\|AMIGAICON_DRAWER\|AMIGAICON_GARBAGE\|AMIGAICON_HIDE\|AMIGAICON_KICKSTART\|AMIGAICON_NONE\|AMIGAICON_PROJECT\|AMIGAICON_SETPOSITION\|AMIGAICON_SETTITLE\|AMIGAICON_SHOW\|AMIGAICON_TOOL\|ANIM\|ANIMSTREAM\|ANIMTYPE_RASTER\|ANIMTYPE_VECTOR\|ANMFMT_GIF\|ANMFMT_IFF\|ANMFMT_MJPEG\|ANTIALIAS\|AQUA\|ARC\|ASYNCDRAW\|ASYNCOBJ\|ATTRACTIVE\|ATTRADAPTER\|ATTRALPHAINTENSITY\|ATTRBGPIC\|ATTRBITRATE\|ATTRBORDERBOTTOM\|ATTRBORDERLEFT\|ATTRBORDERLESS\|ATTRBORDERPEN\|ATTRBORDERRIGHT\|ATTRBORDERTOP\|ATTRBULLETPEN\|ATTRCANSEEK\|ATTRCLIPREGION\|ATTRCOUNT\|ATTRCURFRAME\|ATTRCURSORX\|ATTRCURSORY\|ATTRCURSUBSONG\|ATTRCYCLE\|ATTRDENSITY\|ATTRDEPTH\|ATTRDISPLAY\|ATTRDITHERMODE\|ATTRDOUBLEBUFFER\|ATTRDRIVER\|ATTRDURATION\|ATTRELAPSE\|ATTRENCODING\|ATTRFIXED\|ATTRFONTAA\|ATTRFONTASCENDER\|ATTRFONTCHARMAP\|ATTRFONTDEPTH\|ATTRFONTDESCENDER\|ATTRFONTENGINE\|ATTRFONTNAME\|ATTRFONTPALETTE\|ATTRFONTSCALABLE\|ATTRFONTSIZE\|ATTRFONTTRANSPARENTPEN\|ATTRFONTTYPE\|ATTRFORMAT\|ATTRFRAMEDELAY\|ATTRFUNCTION\|ATTRGROUP\|ATTRHARDWARE\|ATTRHASALPHA\|ATTRHASMASK\|ATTRHEIGHT\|ATTRHOSTDEPTH\|ATTRHOSTHEIGHT\|ATTRHOSTMONITORS\|ATTRHOSTSCALE\|ATTRHOSTSCALEX\|ATTRHOSTSCALEY\|ATTRHOSTTASKBAR\|ATTRHOSTTITLEBARHEIGHT\|ATTRHOSTWIDTH\|ATTRID\|ATTRIMMERSIVEMODE\|ATTRINTERPOLATE\|ATTRKEYBOARD\|ATTRLAYERID\|ATTRLAYERS\|ATTRLAYERSON\|ATTRLOADER\|ATTRMARGINLEFT\|ATTRMARGINRIGHT\|ATTRMASKMODE\|ATTRMAXHEIGHT\|ATTRMAXIMIZED\|ATTRMAXWIDTH\|ATTRMENU\|ATTRMODE\|ATTRMONITOR\|ATTRNOCLOSE\|ATTRNOHIDE\|ATTRNOMODESWITCH\|ATTRNUMENTRIES\|ATTRNUMFRAMES\|ATTRNUMSUBSONGS\|ATTRONSCREEN\|ATTRORIENTATION\|ATTROUTPUTDEVICE\|ATTRPALETTE\|ATTRPALETTEMODE\|ATTRPAUSED\|ATTRPEN\|ATTRPITCH\|ATTRPLAYING\|ATTRPOINTER\|ATTRPOSITION\|ATTRPUBSCREEN\|ATTRRAWHEIGHT\|ATTRRAWWIDTH\|ATTRRAWXPOS\|ATTRRAWYPOS\|ATTRSCALEHEIGHT\|ATTRSCALEMODE\|ATTRSCALESWITCH\|ATTRSCALEWIDTH\|ATTRSHADOWPEN\|ATTRSIZE\|ATTRSIZEABLE\|ATTRSPRITES\|ATTRSTANDARD\|ATTRSTATE\|ATTRSYSTEMBARS\|ATTRTEXT\|ATTRTITLE\|ATTRTRANSPARENTCOLOR\|ATTRTRANSPARENTPEN\|ATTRTYPE\|ATTRUSERDATA\|ATTRVISIBLE\|ATTRWIDTH\|ATTRXDPI\|ATTRXPOS\|ATTRXSERVER\|ATTRYDPI\|ATTRYPOS\|ATTRZPOS\|BARS\|BAUD_115200\|BAUD_1200\|BAUD_19200\|BAUD_2400\|BAUD_300\|BAUD_38400\|BAUD_460800\|BAUD_4800\|BAUD_57600\|BAUD_600\|BAUD_9600\|BEEPERROR\|BEEPINFORMATION\|BEEPQUESTION\|BEEPSYSTEM\|BEEPWARNING\|BGPIC\|BGPICPART\|BIGENDIAN\|BIGSINE\|BITMAP_DEFAULT\|BLACK\|BLEND\|BLUE\|BOLD\|BOOLEAN\|BORDER\|BOTTOM\|BOTTOMOUT\|BOUNCE\|BOX\|BRUSH\|BRUSH_VS_BOX\|BRUSHPART\|BULLET_ARROW\|BULLET_BOX\|BULLET_CHECKMARK\|BULLET_CIRCLE\|BULLET_CROSS\|BULLET_DASH\|BULLET_DIAMOND\|BULLET_LALPHA\|BULLET_LALPHADOUBLE\|BULLET_LALPHASINGLE\|BULLET_LROMAN\|BULLET_LROMANDOUBLE\|BULLET_LROMANSINGLE\|BULLET_NONE\|BULLET_NUMERIC\|BULLET_NUMERICDOUBLE\|BULLET_NUMERICSINGLE\|BULLET_UALPHA\|BULLET_UALPHADOUBLE\|BULLET_UALPHASINGLE\|BULLET_UROMAN\|BULLET_UROMANDOUBLE\|BULLET_UROMANSINGLE\|BYTE\|CAPBUTT\|CAPROUND\|CAPSQUARE\|CARDBOTTOM\|CARDTOP\|CENTER\|CHARMAP_ADOBECUSTOM\|CHARMAP_ADOBEEXPERT\|CHARMAP_ADOBELATIN1\|CHARMAP_ADOBESTANDARD\|CHARMAP_APPLEROMAN\|CHARMAP_BIG5\|CHARMAP_DEFAULT\|CHARMAP_JOHAB\|CHARMAP_MSSYMBOL\|CHARMAP_OLDLATIN2\|CHARMAP_SJIS\|CHARMAP_UNICODE\|CHARMAP_WANSUNG\|CHIPMEMORY\|CIRCLE\|CLIENT\|CLIPBOARD_EMPTY\|CLIPBOARD_IMAGE\|CLIPBOARD_SOUND\|CLIPBOARD_TEXT\|CLIPBOARD_UNKNOWN\|CLIPREGION\|CLOCKWIPE\|CLOSEWINDOW\|CONICAL\|COPYFILE_FAILED\|COPYFILE_OVERWRITE\|COPYFILE_STATUS\|COPYFILE_UNPROTECT\|COUNTBOTH\|COUNTDIRECTORIES\|COUNTFILES\|COUNTRY_AFGHANISTAN\|COUNTRY_ALANDISLANDS\|COUNTRY_ALBANIA\|COUNTRY_ALGERIA\|COUNTRY_AMERICANSAMOA\|COUNTRY_ANDORRA\|COUNTRY_ANGOLA\|COUNTRY_ANGUILLA\|COUNTRY_ANTARCTICA\|COUNTRY_ANTIGUAANDBARBUDA\|COUNTRY_ARGENTINA\|COUNTRY_ARMENIA\|COUNTRY_ARUBA\|COUNTRY_AUSTRALIA\|COUNTRY_AUSTRIA\|COUNTRY_AZERBAIJAN\|COUNTRY_BAHAMAS\|COUNTRY_BAHRAIN\|COUNTRY_BANGLADESH\|COUNTRY_BARBADOS\|COUNTRY_BELARUS\|COUNTRY_BELGIUM\|COUNTRY_BELIZE\|COUNTRY_BENIN\|COUNTRY_BERMUDA\|COUNTRY_BESISLANDS\|COUNTRY_BHUTAN\|COUNTRY_BOLIVIA\|COUNTRY_BOSNIAANDHERZEGOVINA\|COUNTRY_BOTSWANA\|COUNTRY_BOUVETISLAND\|COUNTRY_BRAZIL\|COUNTRY_BRUNEI\|COUNTRY_BULGARIA\|COUNTRY_BURKINAFASO\|COUNTRY_BURUNDI\|COUNTRY_CAMBODIA\|COUNTRY_CAMEROON\|COUNTRY_CANADA\|COUNTRY_CAPEVERDE\|COUNTRY_CAYMANISLANDS\|COUNTRY_CENTRALAFRICANREPUBLIC\|COUNTRY_CHAD\|COUNTRY_CHILE\|COUNTRY_CHINA\|COUNTRY_CHRISTMASISLAND\|COUNTRY_COCOSISLANDS\|COUNTRY_COLOMBIA\|COUNTRY_COMOROS\|COUNTRY_CONGO\|COUNTRY_COOKISLANDS\|COUNTRY_COSTARICA\|COUNTRY_CROATIA\|COUNTRY_CUBA\|COUNTRY_CURACAO\|COUNTRY_CYPRUS\|COUNTRY_CZECHREPUBLIC\|COUNTRY_DENMARK\|COUNTRY_DJIBOUTI\|COUNTRY_DOMINICA\|COUNTRY_DOMINICANREPUBLIC\|COUNTRY_DRCONGO\|COUNTRY_ECUADOR\|COUNTRY_EGYPT\|COUNTRY_ELSALVADOR\|COUNTRY_EQUATORIALGUINEA\|COUNTRY_ERITREA\|COUNTRY_ESTONIA\|COUNTRY_ETHIOPIA\|COUNTRY_FALKLANDISLANDS\|COUNTRY_FAROEISLANDS\|COUNTRY_FIJI\|COUNTRY_FINLAND\|COUNTRY_FRANCE\|COUNTRY_FRENCHGUIANA\|COUNTRY_FRENCHPOLYNESIA\|COUNTRY_GABON\|COUNTRY_GAMBIA\|COUNTRY_GEORGIA\|COUNTRY_GERMANY\|COUNTRY_GHANA\|COUNTRY_GIBRALTAR\|COUNTRY_GREECE\|COUNTRY_GREENLAND\|COUNTRY_GRENADA\|COUNTRY_GUADELOUPE\|COUNTRY_GUAM\|COUNTRY_GUATEMALA\|COUNTRY_GUERNSEY\|COUNTRY_GUINEA\|COUNTRY_GUINEABISSAU\|COUNTRY_GUYANA\|COUNTRY_HAITI\|COUNTRY_HOLYSEE\|COUNTRY_HONDURAS\|COUNTRY_HONGKONG\|COUNTRY_HUNGARY\|COUNTRY_ICELAND\|COUNTRY_INDIA\|COUNTRY_INDONESIA\|COUNTRY_IRAN\|COUNTRY_IRAQ\|COUNTRY_IRELAND\|COUNTRY_ISLEOFMAN\|COUNTRY_ISRAEL\|COUNTRY_ITALY\|COUNTRY_IVORYCOAST\|COUNTRY_JAMAICA\|COUNTRY_JAPAN\|COUNTRY_JERSEY\|COUNTRY_JORDAN\|COUNTRY_KAZAKHSTAN\|COUNTRY_KENYA\|COUNTRY_KIRIBATI\|COUNTRY_KUWAIT\|COUNTRY_KYRGYZSTAN\|COUNTRY_LAOS\|COUNTRY_LATVIA\|COUNTRY_LEBANON\|COUNTRY_LESOTHO\|COUNTRY_LIBERIA\|COUNTRY_LIBYA\|COUNTRY_LIECHTENSTEIN\|COUNTRY_LITHUANIA\|COUNTRY_LUXEMBOURG\|COUNTRY_MACAO\|COUNTRY_MACEDONIA\|COUNTRY_MADAGASCAR\|COUNTRY_MALAWI\|COUNTRY_MALAYSIA\|COUNTRY_MALDIVES\|COUNTRY_MALI\|COUNTRY_MALTA\|COUNTRY_MARSHALLISLANDS\|COUNTRY_MARTINIQUE\|COUNTRY_MAURITANIA\|COUNTRY_MAURITIUS\|COUNTRY_MAYOTTE\|COUNTRY_MEXICO\|COUNTRY_MICRONESIA\|COUNTRY_MOLDOVA\|COUNTRY_MONACO\|COUNTRY_MONGOLIA\|COUNTRY_MONTENEGRO\|COUNTRY_MONTSERRAT\|COUNTRY_MOROCCO\|COUNTRY_MOZAMBIQUE\|COUNTRY_MYANMAR\|COUNTRY_NAMIBIA\|COUNTRY_NAURU\|COUNTRY_NEPAL\|COUNTRY_NETHERLANDS\|COUNTRY_NEWCALEDONIA\|COUNTRY_NEWZEALAND\|COUNTRY_NICARAGUA\|COUNTRY_NIGER\|COUNTRY_NIGERIA\|COUNTRY_NIUE\|COUNTRY_NORFOLKISLAND\|COUNTRY_NORTHKOREA\|COUNTRY_NORWAY\|COUNTRY_OMAN\|COUNTRY_PAKISTAN\|COUNTRY_PALAU\|COUNTRY_PALESTINE\|COUNTRY_PANAMA\|COUNTRY_PAPUANEWGUINEA\|COUNTRY_PARAGUAY\|COUNTRY_PERU\|COUNTRY_PHILIPPINES\|COUNTRY_PITCAIRN\|COUNTRY_POLAND\|COUNTRY_PORTUGAL\|COUNTRY_PUERTORICO\|COUNTRY_QATAR\|COUNTRY_REUNION\|COUNTRY_ROMANIA\|COUNTRY_RUSSIA\|COUNTRY_RWANDA\|COUNTRY_SAINTBARTHELEMY\|COUNTRY_SAINTHELENA\|COUNTRY_SAINTKITTSANDNEVIS\|COUNTRY_SAINTLUCIA\|COUNTRY_SAINTVINCENT\|COUNTRY_SAMOA\|COUNTRY_SANMARINO\|COUNTRY_SAOTOMEANDPRINCIPE\|COUNTRY_SAUDIARABIA\|COUNTRY_SENEGAL\|COUNTRY_SERBIA\|COUNTRY_SEYCHELLES\|COUNTRY_SIERRALEONE\|COUNTRY_SINGAPORE\|COUNTRY_SLOVAKIA\|COUNTRY_SLOVENIA\|COUNTRY_SOLOMONISLANDS\|COUNTRY_SOMALIA\|COUNTRY_SOUTHAFRICA\|COUNTRY_SOUTHKOREA\|COUNTRY_SOUTHSUDAN\|COUNTRY_SPAIN\|COUNTRY_SRILANKA\|COUNTRY_SUDAN\|COUNTRY_SURINAME\|COUNTRY_SWAZILAND\|COUNTRY_SWEDEN\|COUNTRY_SWITZERLAND\|COUNTRY_SYRIA\|COUNTRY_TAIWAN\|COUNTRY_TAJIKISTAN\|COUNTRY_TANZANIA\|COUNTRY_THAILAND\|COUNTRY_TIMOR\|COUNTRY_TOGO\|COUNTRY_TONGA\|COUNTRY_TRINIDADANDTOBAGO\|COUNTRY_TUNISIA\|COUNTRY_TURKEY\|COUNTRY_TURKMENISTAN\|COUNTRY_TUVALU\|COUNTRY_UAE\|COUNTRY_UGANDA\|COUNTRY_UK\|COUNTRY_UKRAINE\|COUNTRY_UNKNOWN\|COUNTRY_URUGUAY\|COUNTRY_USA\|COUNTRY_UZBEKISTAN\|COUNTRY_VANUATU\|COUNTRY_VENEZUELA\|COUNTRY_VIETNAM\|COUNTRY_YEMEN\|COUNTRY_ZAMBIA\|COUNTSEPARATE\|CR_DEAD\|CR_RUNNING\|CR_SUSPENDED\|CROSSFADE\|CRUSHBOTTOM\|CRUSHLEFT\|CRUSHRIGHT\|CRUSHTOP\|DAMPED\|DATA_5\|DATA_6\|DATA_7\|DATA_8\|DATEDAY\|DATELOCAL\|DATELOCALNATIVE\|DATEMONTH\|DATETIME\|DATEUTC\|DATEYEAR\|DEFAULTICON\|DEFAULTSPEED\|DEINTERLACE_DEFAULT\|DEINTERLACE_DOUBLE\|DELETEFILE_FAILED\|DELETEFILE_STATUS\|DELETEFILE_UNPROTECT\|DENSITY_HIGH\|DENSITY_LOW\|DENSITY_MEDIUM\|DENSITY_NONE\|DIAGONAL\|DIRECTORY\|DIRMONITOR_ADD\|DIRMONITOR_CHANGE\|DIRMONITOR_REMOVE\|DISPLAY\|DISPMODE_ASK\|DISPMODE_FAKEFULLSCREEN\|DISPMODE_FULLSCREEN\|DISPMODE_FULLSCREENSCALE\|DISPMODE_MODEREQUESTER\|DISPMODE_MODESWITCH\|DISPMODE_SYSTEMSCALE\|DISPMODE_WINDOWED\|DISPSTATE_CLOSED\|DISPSTATE_MINIMIZED\|DISPSTATE_OPEN\|DISSOLVE\|DITHERMODE_FLOYDSTEINBERG\|DITHERMODE_NONE\|DOSTYPE_DIRECTORY\|DOSTYPE_FILE\|DOUBLE\|DOUBLEBUFFER\|DOWNLOADFILE_STATUS\|DTR_OFF\|DTR_ON\|DURATION_LONG\|DURATION_SHORT\|EDGE\|ELLIPSE\|ENCODING_AMIGA\|ENCODING_ISO8859_1\|ENCODING_RAW\|ENCODING_UTF8\|EOF\|ERR_8OR16BITONLY\|ERR_ACCELERATOR\|ERR_ADDAPPICON\|ERR_ADDAPPWIN\|ERR_ADDSYSEVENT\|ERR_ADDTASK\|ERR_ADFFREEDISP\|ERR_ADFWRONGDISP\|ERR_AFILEPROP\|ERR_AHI\|ERR_ALLOCALPHA\|ERR_ALLOCCHANNEL\|ERR_ALLOCCHUNKY\|ERR_ALLOCMASK\|ERR_ALRDYDECLRD\|ERR_ALREADYASYNC\|ERR_ALSAPCM\|ERR_AMIGAGUIDE\|ERR_ANIMDISK\|ERR_ANIMFRAME\|ERR_ANTIALIAS\|ERR_APPLET\|ERR_APPLETVERSION\|ERR_APPLICATION\|ERR_ARGS\|ERR_ARRAYDECLA\|ERR_ASSERTFAILED\|ERR_ATSUI\|ERR_AUDIOCONVERTER\|ERR_BACKFILL\|ERR_BAD8SVX\|ERR_BADBASE64\|ERR_BADBYTECODE\|ERR_BADCALLBACKRET\|ERR_BADCONSTANT\|ERR_BADDIMENSIONS\|ERR_BADENCODING\|ERR_BADINTEGER\|ERR_BADIP\|ERR_BADLAYERTYPE\|ERR_BADPLATFORM\|ERR_BADSIGNATURE\|ERR_BADUPVALUES\|ERR_BADURL\|ERR_BADWAVE\|ERR_BADYIELD\|ERR_BEGINREFRESH\|ERR_BGPICBUTTON\|ERR_BGPICPALETTE\|ERR_BGPICTYPE\|ERR_BITMAP\|ERR_BLKWOENDBLK\|ERR_BRACECLOSE\|ERR_BRACEOPEN\|ERR_BRACKETCLOSE\|ERR_BRACKETOPEN\|ERR_BRUSHLINK\|ERR_BRUSHSIZE\|ERR_BRUSHTYPE\|ERR_CACHEERROR\|ERR_CASECST\|ERR_CHANGEDIR\|ERR_CHANNELRANGE\|ERR_CHRCSTEMPTY\|ERR_CHRCSTLEN\|ERR_CLIPFORMAT\|ERR_CLIPOPEN\|ERR_CLIPREAD\|ERR_CLIPWRITE\|ERR_CLOSEDDISPLAY\|ERR_CLOSEFILE\|ERR_CMDASVAR\|ERR_CMPUNSUPPORTED\|ERR_COLORSPACE\|ERR_COMMENTSTRUCT\|ERR_COMMODITY\|ERR_COMPLEXEXPR\|ERR_COMPLEXPATTERN\|ERR_COMPLEXWHILE\|ERR_CONCAT\|ERR_CONFIG\|ERR_CONFIG2\|ERR_CONITEMS\|ERR_CONSOLEARG\|ERR_CONTEXTMENU\|ERR_COORDSRANGE\|ERR_COREFOUNDATION\|ERR_CORETEXT\|ERR_CREATEDIR\|ERR_CREATEDOCKY\|ERR_CREATEEVENT\|ERR_CREATEGC\|ERR_CREATEICON\|ERR_CREATEMENU\|ERR_CREATEPORT\|ERR_CREATESHORTCUT\|ERR_CSTDOUBLEDEF\|ERR_CTRLSTRUCT\|ERR_CYIELD\|ERR_DATATYPEALPHA\|ERR_DATATYPESAVE\|ERR_DATATYPESAVE2\|ERR_DBLENCODING\|ERR_DBPALETTE\|ERR_DBTRANSWIN\|ERR_DBVIDEOLAYER\|ERR_DDAUTOSCALE\|ERR_DDMOBILE\|ERR_DDRECVIDEO\|ERR_DEADRESUME\|ERR_DEFFONT\|ERR_DELETEFILE\|ERR_DEMO\|ERR_DEMO2\|ERR_DEMO3\|ERR_DEPTHMISMATCH\|ERR_DEPTHRANGE\|ERR_DESERIALIZE\|ERR_DIFFDEPTH\|ERR_DIFFENCODING\|ERR_DINPUT\|ERR_DIRECTSHOW\|ERR_DIRLOCK\|ERR_DISPLAYADAPTERSUPPORT\|ERR_DISPLAYDESKTOP\|ERR_DISPLAYDESKTOPPAL\|ERR_DISPLAYSIZE\|ERR_DISPMINIMIZED\|ERR_DLOPEN\|ERR_DOUBLEDECLA\|ERR_DOUBLEMENU\|ERR_DRAWPATH\|ERR_DSOUNDNOTIFY\|ERR_DSOUNDNOTIPOS\|ERR_DSOUNDPLAY\|ERR_ELSEIFAFTERELSE\|ERR_ELSETWICE\|ERR_ELSEWOIF\|ERR_EMPTYMENUTREE\|ERR_EMPTYOBJ\|ERR_EMPTYPATH\|ERR_EMPTYSCRIPT\|ERR_EMPTYTABLE\|ERR_ENDBLKWOBLK\|ERR_ENDDOUBLEBUFFER\|ERR_ENDFUNCWOFUNC\|ERR_ENDIFWOIF\|ERR_ENDSWCHWOSWCH\|ERR_ENDWITHWOWITH\|ERR_EQUALEXPECTED\|ERR_ERRORCALLED\|ERR_ESCREPLACE\|ERR_EVNTEXPCTED\|ERR_EXAMINE\|ERR_EXECUTE\|ERR_EXETYPE\|ERR_FGRABVIDSTATE\|ERR_FIELDINIT\|ERR_FILEEXIST\|ERR_FILEFORMAT\|ERR_FILENOTFOUND\|ERR_FILESIZE\|ERR_FINDACTIVITY\|ERR_FINDANIM\|ERR_FINDANIMSTREAM\|ERR_FINDAPPLICATION\|ERR_FINDARRAY\|ERR_FINDASYNCDRAW\|ERR_FINDASYNCOBJ\|ERR_FINDBGPIC\|ERR_FINDBRUSH\|ERR_FINDBUTTON\|ERR_FINDCLIENT\|ERR_FINDCLIPREGION\|ERR_FINDCST\|ERR_FINDDIR\|ERR_FINDDISPLAY\|ERR_FINDFILE\|ERR_FINDFONT\|ERR_FINDFONT2\|ERR_FINDICON\|ERR_FINDINTERVAL\|ERR_FINDLAYER\|ERR_FINDLAYERDATA\|ERR_FINDMEMBLK\|ERR_FINDMENU\|ERR_FINDMENUITEM\|ERR_FINDMONITOR\|ERR_FINDMOVE\|ERR_FINDMUSIC\|ERR_FINDOBJECTDATA\|ERR_FINDPALETTE\|ERR_FINDPATH\|ERR_FINDPLUGIN\|ERR_FINDPOINTER\|ERR_FINDPORT\|ERR_FINDSAMPLE\|ERR_FINDSELECTOR\|ERR_FINDSERIAL\|ERR_FINDSERVER\|ERR_FINDSPRITE\|ERR_FINDTEXTOBJECT\|ERR_FINDTIMEOUT\|ERR_FINDTIMER\|ERR_FINDUDPOBJECT\|ERR_FINDVIDEO\|ERR_FIRSTPREPROC\|ERR_FONTFORMAT\|ERR_FONTPATH\|ERR_FONTPATH2\|ERR_FORBIDMODAL\|ERR_FOREVERWOREPEAT\|ERR_FORWONEXT\|ERR_FRAMEGRABBER\|ERR_FREEABGPIC\|ERR_FREEADISPLAY\|ERR_FREECURPOINTER\|ERR_FT2\|ERR_FTPAUTH\|ERR_FTPERROR\|ERR_FULLSCREEN\|ERR_FUNCARGS\|ERR_FUNCDECLA\|ERR_FUNCEXPECTED\|ERR_FUNCJMP\|ERR_FUNCREMOVED\|ERR_FUNCTABLEARG\|ERR_FUNCWOENDFUNC\|ERR_GETDISKOBJ\|ERR_GETIFADDRS\|ERR_GETMONITORINFO\|ERR_GETSHORTCUT\|ERR_GRABSCREEN\|ERR_GROUPNAMEUSED\|ERR_GTK\|ERR_GUIGFX\|ERR_HEXPOINT\|ERR_HOSTNAME\|ERR_HTTPERROR\|ERR_HTTPTE\|ERR_HWBMCLOSEDISP\|ERR_HWBRUSH\|ERR_HWBRUSHFUNC\|ERR_HWDBFREEDISP\|ERR_ICONDIMS\|ERR_ICONENTRY\|ERR_ICONPARMS\|ERR_ICONSIZE\|ERR_ICONSTANDARD\|ERR_ICONVECTOR\|ERR_IFWOENDIF\|ERR_IMAGEERROR\|ERR_INCOMPATBRUSH\|ERR_INISYNTAX\|ERR_INITSERIAL\|ERR_INTERNAL\|ERR_INTERNAL1\|ERR_INTEXPECTED\|ERR_INVALIDDATE\|ERR_INVALIDUTF8\|ERR_INVALIDUTF8ARG\|ERR_INVCAPIDX\|ERR_INVINSERT\|ERR_INVNEXTKEY\|ERR_INVPATCAP\|ERR_INVREPLACE\|ERR_JAVA\|ERR_JAVAMETHOD\|ERR_JOYSTICK\|ERR_KEYFILE\|ERR_KEYNOTFOUND\|ERR_KEYWORD\|ERR_KICKSTART\|ERR_LABELDECLA\|ERR_LABELDOUBLE\|ERR_LABINFOR\|ERR_LABINFUNC\|ERR_LABINIF\|ERR_LABINWHILE\|ERR_LABMAINBLK\|ERR_LAYERRANGE\|ERR_LAYERSOFF\|ERR_LAYERSON\|ERR_LAYERSUPPORT\|ERR_LAYERSUPPORT2\|ERR_LAYERSWITCH\|ERR_LEGACYPTMOD\|ERR_LFSYNTAX\|ERR_LINKFONT\|ERR_LINKPLUGIN\|ERR_LOADFRAME\|ERR_LOADICON\|ERR_LOADPICTURE\|ERR_LOADPICTURE2\|ERR_LOADPLUGIN\|ERR_LOADSOUND\|ERR_LOADVIDEO\|ERR_LOCK\|ERR_LOCK2\|ERR_LOCKBMAP\|ERR_LOCKEDOBJ\|ERR_LOOPRANGE\|ERR_LOWFREQ\|ERR_MAGICKEY\|ERR_MALFORMPAT1\|ERR_MALFORMPAT2\|ERR_MASKNALPHA\|ERR_MAXLINES\|ERR_MAXLOCALS\|ERR_MAXPARAMS\|ERR_MAXUPVALS\|ERR_MEDIAFOUNDATION\|ERR_MEM\|ERR_MEMCODE\|ERR_MEMCST\|ERR_MEMRANGE\|ERR_MENUATTACHED\|ERR_MENUCOMPLEXITY\|ERR_MISSINGBRACKET\|ERR_MISSINGFIELD\|ERR_MISSINGOPBRACK\|ERR_MISSINGPARAMTR\|ERR_MISSINGSEPARTR\|ERR_MIXMUSMOD\|ERR_MOBILE\|ERR_MODIFYAANIM\|ERR_MODIFYABG\|ERR_MODIFYABGPIC\|ERR_MODIFYABR\|ERR_MODIFYPSMP\|ERR_MODIFYSPRITE\|ERR_MODIFYSPRITE2\|ERR_MONITORDIR\|ERR_MONITORFULLSCREEN\|ERR_MONITORRANGE\|ERR_MOVEFILE\|ERR_MSGPORT\|ERR_MULDISMOBILE\|ERR_MULTIBGPIC\|ERR_MULTIDISPLAYS\|ERR_MUSFMTSUPPORT\|ERR_MUSNOTPAUSED\|ERR_MUSNOTPLYNG\|ERR_MUSNOTPLYNG2\|ERR_MUSPAUSED\|ERR_MUSPLAYING\|ERR_NAMETOOLONG\|ERR_NAMEUSED\|ERR_NEEDAPPLICATION\|ERR_NEEDCOMPOSITE\|ERR_NEEDMORPHOS2\|ERR_NEEDOS41\|ERR_NEEDPALETTEIMAGE\|ERR_NEGCOORDS\|ERR_NEWHWPLUGIN\|ERR_NEXTWOFOR\|ERR_NOABSPATH\|ERR_NOACCESS\|ERR_NOALPHA\|ERR_NOANMLAYER\|ERR_NOAPPLET\|ERR_NOARGBVISUAL\|ERR_NOBLOCKBREAK\|ERR_NOCALLBACK\|ERR_NOCHANNEL\|ERR_NOCHAR\|ERR_NOCLIPREG\|ERR_NOCOLON\|ERR_NOCOMMA\|ERR_NOCOMPRESS\|ERR_NOCONSTANTS\|ERR_NOCONTEXTMENU\|ERR_NOCOORDCST\|ERR_NODIRPATTERN\|ERR_NODISLAYERS\|ERR_NODISPMODES\|ERR_NODOUBLEBUFFER\|ERR_NOFALLTHROUGH\|ERR_NOFILTERNAME\|ERR_NOFMBHANDLER\|ERR_NOFUNCTION\|ERR_NOHWFUNC\|ERR_NOJOYATPORT\|ERR_NOKEYWORDS\|ERR_NOLAYERS\|ERR_NOLOOP\|ERR_NOLOOPCONT\|ERR_NOMASKBRUSH\|ERR_NOMENU\|ERR_NOMIMEVIEWER\|ERR_NOMUSICCB\|ERR_NONE\|ERR_NONSUSPENDEDRESUME\|ERR_NOPALETTE\|ERR_NOPALETTEIMAGE\|ERR_NOPALETTEMODE\|ERR_NORETVAL\|ERR_NOREXX\|ERR_NOSPRITES\|ERR_NOTADIR\|ERR_NOTENOUGHPIXELS\|ERR_NOTIGER\|ERR_NOTPROTRACKER\|ERR_NOTRANSPARENCY\|ERR_NOTXTLAYER\|ERR_NUMBEREXPECTED\|ERR_NUMCALLBACK\|ERR_NUMCONCAT\|ERR_NUMEXPECTED\|ERR_NUMSTRCMP\|ERR_NUMTABLEARG\|ERR_OLDAPPLET\|ERR_OPENANIM\|ERR_OPENANIM2\|ERR_OPENAUDIO\|ERR_OPENFONT\|ERR_OPENLIB\|ERR_OPENSERIAL\|ERR_OPENSOCKET\|ERR_OPENSOUND\|ERR_OPENSOUND2\|ERR_OUTOFRANGE\|ERR_PAKFORMAT\|ERR_PALETTEFILL\|ERR_PALETTEMODE\|ERR_PALSCREEN\|ERR_PEERNAME\|ERR_PENRANGE\|ERR_PERCENTFORMAT\|ERR_PERCENTFORMATSTR\|ERR_PIPE\|ERR_PIXELFORMAT\|ERR_PIXELRANGE\|ERR_PLAYERCOMP\|ERR_PLAYVIDEO\|ERR_PLUGINARCH\|ERR_PLUGINDOUBLET\|ERR_PLUGINSUPPORT\|ERR_PLUGINSYMBOL\|ERR_PLUGINTYPE\|ERR_PLUGINVER\|ERR_POINTERFORMAT\|ERR_POINTERIMG\|ERR_PORTNOTAVAIL\|ERR_PREPROCSYM\|ERR_PROTMETATABLE\|ERR_PUBSCREEN\|ERR_QUICKTIME\|ERR_RADIOTOGGLEMENU\|ERR_RANDOMIZE\|ERR_READ\|ERR_READFILE\|ERR_READFUNC\|ERR_READONLY\|ERR_READRANGE\|ERR_READTABLE\|ERR_READVIDEOPIXELS\|ERR_RECVCLOSED\|ERR_RECVTIMEOUT\|ERR_RECVUNKNOWN\|ERR_REGCLASS\|ERR_REGISTRYREAD\|ERR_REGISTRYWRITE\|ERR_REMADLAYER\|ERR_RENAME\|ERR_RENDER\|ERR_RENDERADLAYER\|ERR_RENDERCALLBACK\|ERR_RENDERER\|ERR_REPEATWOUNTIL\|ERR_REQAUTH\|ERR_REQUIREFIELD\|ERR_REQUIREPLUGIN\|ERR_REQUIRETAGFMT\|ERR_RETWOGOSUB\|ERR_REVDWORD\|ERR_REWINDDIR\|ERR_REXXERR\|ERR_SATELLITE\|ERR_SATFREEDISP\|ERR_SAVEANIM\|ERR_SAVEICON\|ERR_SAVEIMAGE\|ERR_SAVEPNG\|ERR_SAVERALPHA\|ERR_SAVESAMPLE\|ERR_SCALEBGPIC\|ERR_SCREEN\|ERR_SCREENMODE\|ERR_SCREENSIZE\|ERR_SCRPIXFMT\|ERR_SEEK\|ERR_SEEKFILE\|ERR_SEEKFORMAT\|ERR_SEEKRANGE\|ERR_SELECTALPHACHANNEL\|ERR_SELECTANIM\|ERR_SELECTBG\|ERR_SELECTBGPIC\|ERR_SELECTBGPIC2\|ERR_SELECTBRUSH\|ERR_SELECTMASK\|ERR_SEMAPHORE\|ERR_SENDDATA\|ERR_SENDMESSAGE\|ERR_SENDTIMEOUT\|ERR_SENDUNKNOWN\|ERR_SERIALIO\|ERR_SERIALIZE\|ERR_SERIALIZETYPE\|ERR_SETADAPTER\|ERR_SETENV\|ERR_SETFILEATTR\|ERR_SETFILECOMMENT\|ERR_SETFILEDATE\|ERR_SETMENU\|ERR_SHORTIF\|ERR_SIGNAL\|ERR_SMODEALPHA\|ERR_SMPRANGE\|ERR_SOCKET\|ERR_SOCKNAME\|ERR_SOCKOPT\|ERR_SORTFUNC\|ERR_SPRITELINK\|ERR_SPRITEONSCREEN\|ERR_SPRITEONSCREEN2\|ERR_SQBRACKETCLOSE\|ERR_SQBRACKETOPEN\|ERR_STACK\|ERR_STAT\|ERR_STRCALLBACK\|ERR_STREAMASSAMPLE\|ERR_STREXPECTED\|ERR_STRINGCST\|ERR_STRINGEXPECTED\|ERR_STRORNUM\|ERR_STRTABLEARG\|ERR_STRTOOSHORT\|ERR_SURFACE\|ERR_SWCHWOENDSWCH\|ERR_SYNTAXERROR\|ERR_SYNTAXLEVELS\|ERR_SYSBUTTON\|ERR_SYSIMAGE\|ERR_SYSTOOOLD\|ERR_TABCALLBACK\|ERR_TABEXPECTED\|ERR_TABEXPECTED2\|ERR_TABEXPECTED3\|ERR_TABLEDECLA\|ERR_TABLEINDEX\|ERR_TABLEORNIL\|ERR_TABLEOVERFLOW\|ERR_TAGEXPECTED\|ERR_TASKSETUP\|ERR_TEXTARG\|ERR_TEXTCONVERT\|ERR_TEXTCONVERT2\|ERR_TEXTSYNTAX\|ERR_TEXTURE\|ERR_TFIMAGE\|ERR_TFVANIM\|ERR_TFVBGPICBRUSH\|ERR_TFVBRUSH\|ERR_TFVBRUSHBGPIC\|ERR_THREAD\|ERR_THREADEXPECTED\|ERR_TIMER\|ERR_TOKENEXPECTED\|ERR_TOOMANYARGS\|ERR_TOOMANYCAPTURES\|ERR_TOOSMALL2\|ERR_TRANSBGMOBILE\|ERR_TRANSBRUSH\|ERR_TRAYICON\|ERR_TRIALCOMPILE\|ERR_TRIALINCLUDE\|ERR_TRIALLIMIT\|ERR_TRIALSAVEVID\|ERR_UDEXPECTED\|ERR_UNBALANCEDPAT\|ERR_UNEXPECTEDEOF\|ERR_UNEXPECTEDSYM\|ERR_UNFINISHEDCAPTURE\|ERR_UNIMPLCMD\|ERR_UNKNOWN\|ERR_UNKNOWNANMOUT\|ERR_UNKNOWNATTR\|ERR_UNKNOWNCMD\|ERR_UNKNOWNCOND\|ERR_UNKNOWNFILTER\|ERR_UNKNOWNICNOUT\|ERR_UNKNOWNIMGOUT\|ERR_UNKNOWNMIMETYPE\|ERR_UNKNOWNMUSFMT\|ERR_UNKNOWNPALETTE\|ERR_UNKNOWNSEC\|ERR_UNKNOWNSEQ\|ERR_UNKNOWNSMPOUT\|ERR_UNKNOWNTAG\|ERR_UNKNUMFMT\|ERR_UNKPROTOCOL\|ERR_UNKTEXTFMT\|ERR_UNMPARENTHESES\|ERR_UNSETENV\|ERR_UNSUPPORTEDFEAT\|ERR_UNTERMINTDSTR\|ERR_UNTILWOREPEAT\|ERR_UPDATEICON\|ERR_UPLOADFORBIDDEN\|ERR_USERABORT\|ERR_VALUEEXPECTED\|ERR_VAREXPECTED\|ERR_VARLENGTH\|ERR_VARSYNTAX\|ERR_VECGFXPLUGIN\|ERR_VECTORANIM\|ERR_VECTORBRUSH\|ERR_VERSION\|ERR_VFONT\|ERR_VFONTTYPE\|ERR_VIDATTACHED\|ERR_VIDEOFRAME\|ERR_VIDEOINIT\|ERR_VIDEOLAYER\|ERR_VIDEOLAYERDRV\|ERR_VIDEOSTRATEGY\|ERR_VIDEOTRANS\|ERR_VIDLAYERFUNC\|ERR_VIDNOTPAUSED\|ERR_VIDNOTPLAYING\|ERR_VIDPAUSED\|ERR_VIDPLAYING\|ERR_VIDRECMULTI\|ERR_VIDRECTRANS\|ERR_VIDSTOPPED\|ERR_VISUALINFO\|ERR_VMMISMATCH\|ERR_WARPOS\|ERR_WENDWOWHILE\|ERR_WHILEWOWEND\|ERR_WINDOW\|ERR_WITHWOENDWITH\|ERR_WRITE\|ERR_WRITEFILE\|ERR_WRITEJPEG\|ERR_WRITEONLY\|ERR_WRONGCLIPREG\|ERR_WRONGCMDRECVIDEO\|ERR_WRONGDTYPE\|ERR_WRONGFLOAT\|ERR_WRONGHEX\|ERR_WRONGID\|ERR_WRONGOP\|ERR_WRONGOPCST\|ERR_WRONGSPRITESIZE\|ERR_WRONGUSAGE\|ERR_WRONGVSTRATEGY\|ERR_XCURSOR\|ERR_XDISPLAY\|ERR_XF86VIDMODEEXT\|ERR_XFIXES\|ERR_YIELD\|ERR_ZERODIVISION\|ERR_ZLIBDATA\|ERR_ZLIBIO\|ERR_ZLIBSTREAM\|ERR_ZLIBVERSION\|EVENTHANDLER\|FADE\|FASTMEMORY\|FASTSPEED\|FILE\|FILEATTR_ARCHIVE\|FILEATTR_DELETE_USR\|FILEATTR_EXECUTE_GRP\|FILEATTR_EXECUTE_OTH\|FILEATTR_EXECUTE_USR\|FILEATTR_HIDDEN\|FILEATTR_NORMAL\|FILEATTR_PURE\|FILEATTR_READ_GRP\|FILEATTR_READ_OTH\|FILEATTR_READ_USR\|FILEATTR_READONLY\|FILEATTR_SCRIPT\|FILEATTR_SYSTEM\|FILEATTR_WRITE_GRP\|FILEATTR_WRITE_OTH\|FILEATTR_WRITE_USR\|FILETYPE_ANIM\|FILETYPE_ICON\|FILETYPE_IMAGE\|FILETYPE_SOUND\|FILETYPE_VIDEO\|FILETYPEFLAGS_ALPHA\|FILETYPEFLAGS_FPS\|FILETYPEFLAGS_QUALITY\|FILETYPEFLAGS_SAVE\|FILLCOLOR\|FILLGRADIENT\|FILLNONE\|FILLRULEEVENODD\|FILLRULEWINDING\|FILLTEXTURE\|FLOAT\|FLOW_HARDWARE\|FLOW_OFF\|FLOW_XON_XOFF\|FONT\|FONTENGINE_INBUILT\|FONTENGINE_NATIVE\|FONTSLANT_ITALIC\|FONTSLANT_OBLIQUE\|FONTSLANT_ROMAN\|FONTTYPE_BITMAP\|FONTTYPE_COLOR\|FONTTYPE_VECTOR\|FONTWEIGHT_BLACK\|FONTWEIGHT_BOLD\|FONTWEIGHT_BOOK\|FONTWEIGHT_DEMIBOLD\|FONTWEIGHT_EXTRABLACK\|FONTWEIGHT_EXTRABOLD\|FONTWEIGHT_EXTRALIGHT\|FONTWEIGHT_HEAVY\|FONTWEIGHT_LIGHT\|FONTWEIGHT_MEDIUM\|FONTWEIGHT_NORMAL\|FONTWEIGHT_REGULAR\|FONTWEIGHT_SEMIBOLD\|FONTWEIGHT_THIN\|FONTWEIGHT_ULTRABLACK\|FONTWEIGHT_ULTRABOLD\|FONTWEIGHT_ULTRALIGHT\|FRAMEMODE_FULL\|FRAMEMODE_SINGLE\|FREESPACE\|FTPASCII\|FTPBINARY\|FUCHSIA\|FUNCTION\|GRAY\|GREEN\|HBLINDS128\|HBLINDS16\|HBLINDS32\|HBLINDS64\|HBLINDS8\|HCLOSECURTAIN\|HCLOSEGATE\|HEXNUMERICAL\|HFLIPCOIN\|HFLOWBOTTOM\|HFLOWTOP\|HIDEBRUSH\|HIDELAYER\|HKEY_CLASSES_ROOT\|HKEY_CURRENT_CONFIG\|HKEY_CURRENT_USER\|HKEY_LOCAL_MACHINE\|HKEY_USERS\|HLINES\|HLINES2\|HLOWFLIPCOIN\|HOLLYWOOD\|HOPENCURTAIN\|HOPENGATE\|HSPLIT\|HSTRANGEPUSH\|HSTRETCHCENTER\|HSTRIPES\|HSTRIPES16\|HSTRIPES2\|HSTRIPES32\|HSTRIPES4\|HSTRIPES64\|HSTRIPES8\|HW_64BIT\|HW_AMIGA\|HW_AMIGAOS3\|HW_AMIGAOS4\|HW_ANDROID\|HW_AROS\|HW_IOS\|HW_LINUX\|HW_LITTLE_ENDIAN\|HW_MACOS\|HW_MORPHOS\|HW_REVISION\|HW_VERSION\|HW_WARPOS\|HW_WINDOWS\|ICNFMT_HOLLYWOOD\|ICON\|IMAGETYPE_RASTER\|IMAGETYPE_VECTOR\|IMGFMT_BMP\|IMGFMT_GIF\|IMGFMT_ILBM\|IMGFMT_JPEG\|IMGFMT_NATIVE\|IMGFMT_PLUGIN\|IMGFMT_PNG\|IMGFMT_TIFF\|IMGFMT_UNKNOWN\|IMMERSIVE_LEANBACK\|IMMERSIVE_NONE\|IMMERSIVE_NORMAL\|IMMERSIVE_STICKY\|INACTIVEWINDOW\|INF\|INSERTBRUSH\|INTEGER\|INTERVAL\|IO_BUFFERED\|IO_FAKE64\|IO_LITTLEENDIAN\|IO_SIGNED\|IO_UNBUFFERED\|IO_UNSIGNED\|IPAUTO\|IPUNKNOWN\|IPV4\|IPV6\|ITALIC\|JOINBEVEL\|JOINMITER\|JOINROUND\|JOYDOWN\|JOYDOWNLEFT\|JOYDOWNRIGHT\|JOYLEFT\|JOYNODIR\|JOYRIGHT\|JOYUP\|JOYUPLEFT\|JOYUPRIGHT\|JUSTIFIED\|KEEPASPRAT\|KEEPPOSITION\|LANGUAGE_ABKHAZIAN\|LANGUAGE_AFAR\|LANGUAGE_AFRIKAANS\|LANGUAGE_AKAN\|LANGUAGE_ALBANIAN\|LANGUAGE_AMHARIC\|LANGUAGE_ARABIC\|LANGUAGE_ARAGONESE\|LANGUAGE_ARMENIAN\|LANGUAGE_ASSAMESE\|LANGUAGE_AVARIC\|LANGUAGE_AVESTAN\|LANGUAGE_AYMARA\|LANGUAGE_AZERBAIJANI\|LANGUAGE_BAMBARA\|LANGUAGE_BASHKIR\|LANGUAGE_BASQUE\|LANGUAGE_BELARUSIAN\|LANGUAGE_BENGALI\|LANGUAGE_BIHARI\|LANGUAGE_BISLAMA\|LANGUAGE_BOSNIAN\|LANGUAGE_BRETON\|LANGUAGE_BULGARIAN\|LANGUAGE_BURMESE\|LANGUAGE_CATALAN\|LANGUAGE_CENTRALKHMER\|LANGUAGE_CHAMORRO\|LANGUAGE_CHECHEN\|LANGUAGE_CHICHEWA\|LANGUAGE_CHINESE\|LANGUAGE_CHURCHSLAVIC\|LANGUAGE_CHUVASH\|LANGUAGE_CORNISH\|LANGUAGE_CORSICAN\|LANGUAGE_CREE\|LANGUAGE_CROATIAN\|LANGUAGE_CZECH\|LANGUAGE_DANISH\|LANGUAGE_DIVEHI\|LANGUAGE_DUTCH\|LANGUAGE_DZONGKHA\|LANGUAGE_ENGLISH\|LANGUAGE_ESPERANTO\|LANGUAGE_ESTONIAN\|LANGUAGE_EWE\|LANGUAGE_FAROESE\|LANGUAGE_FIJIAN\|LANGUAGE_FINNISH\|LANGUAGE_FRENCH\|LANGUAGE_FULAH\|LANGUAGE_GAELIC\|LANGUAGE_GALICIAN\|LANGUAGE_GANDA\|LANGUAGE_GEORGIAN\|LANGUAGE_GERMAN\|LANGUAGE_GREEK\|LANGUAGE_GREENLANDIC\|LANGUAGE_GUARANI\|LANGUAGE_GUJARATI\|LANGUAGE_HAITIAN\|LANGUAGE_HAUSA\|LANGUAGE_HEBREW\|LANGUAGE_HERERO\|LANGUAGE_HINDI\|LANGUAGE_HIRIMOTU\|LANGUAGE_HUNGARIAN\|LANGUAGE_ICELANDIC\|LANGUAGE_IDO\|LANGUAGE_IGBO\|LANGUAGE_INDONESIAN\|LANGUAGE_INTERLINGUA\|LANGUAGE_INTERLINGUE\|LANGUAGE_INUKTITUT\|LANGUAGE_INUPIAQ\|LANGUAGE_IRISH\|LANGUAGE_ITALIAN\|LANGUAGE_JAPANESE\|LANGUAGE_JAVANESE\|LANGUAGE_KANNADA\|LANGUAGE_KANURI\|LANGUAGE_KASHMIRI\|LANGUAGE_KAZAKH\|LANGUAGE_KIKUYU\|LANGUAGE_KINYARWANDA\|LANGUAGE_KIRGHIZ\|LANGUAGE_KOMI\|LANGUAGE_KONGO\|LANGUAGE_KOREAN\|LANGUAGE_KUANYAMA\|LANGUAGE_KURDISH\|LANGUAGE_LAO\|LANGUAGE_LATIN\|LANGUAGE_LATVIAN\|LANGUAGE_LIMBURGAN\|LANGUAGE_LINGALA\|LANGUAGE_LITHUANIAN\|LANGUAGE_LUBAKATANGA\|LANGUAGE_LUXEMBOURGISH\|LANGUAGE_MACEDONIAN\|LANGUAGE_MALAGASY\|LANGUAGE_MALAY\|LANGUAGE_MALAYALAM\|LANGUAGE_MALTESE\|LANGUAGE_MANX\|LANGUAGE_MAORI\|LANGUAGE_MARATHI\|LANGUAGE_MARSHALLESE\|LANGUAGE_MONGOLIAN\|LANGUAGE_NAURU\|LANGUAGE_NAVAJO\|LANGUAGE_NDONGA\|LANGUAGE_NEPALI\|LANGUAGE_NORTHERNSAMI\|LANGUAGE_NORTHNDEBELE\|LANGUAGE_NORWEGIAN\|LANGUAGE_NORWEGIANBOKMAL\|LANGUAGE_NORWEGIANNYNORSK\|LANGUAGE_OCCITAN\|LANGUAGE_OJIBWA\|LANGUAGE_ORIYA\|LANGUAGE_OROMO\|LANGUAGE_OSSETIAN\|LANGUAGE_PALI\|LANGUAGE_PANJABI\|LANGUAGE_PASHTO\|LANGUAGE_PERSIAN\|LANGUAGE_POLISH\|LANGUAGE_PORTUGUESE\|LANGUAGE_QUECHUA\|LANGUAGE_ROMANIAN\|LANGUAGE_ROMANSH\|LANGUAGE_RUNDI\|LANGUAGE_RUSSIAN\|LANGUAGE_SAMOAN\|LANGUAGE_SANGO\|LANGUAGE_SANSKRIT\|LANGUAGE_SARDINIAN\|LANGUAGE_SERBIAN\|LANGUAGE_SHONA\|LANGUAGE_SICHUANYI\|LANGUAGE_SINDHI\|LANGUAGE_SINHALA\|LANGUAGE_SLOVAK\|LANGUAGE_SLOVENIAN\|LANGUAGE_SOMALI\|LANGUAGE_SOUTHERNSOTHO\|LANGUAGE_SOUTHNDEBELE\|LANGUAGE_SPANISH\|LANGUAGE_SUNDANESE\|LANGUAGE_SWAHILI\|LANGUAGE_SWATI\|LANGUAGE_SWEDISH\|LANGUAGE_TAGALOG\|LANGUAGE_TAHITIAN\|LANGUAGE_TAJIK\|LANGUAGE_TAMIL\|LANGUAGE_TATAR\|LANGUAGE_TELUGU\|LANGUAGE_THAI\|LANGUAGE_TIBETAN\|LANGUAGE_TIGRINYA\|LANGUAGE_TONGA\|LANGUAGE_TSONGA\|LANGUAGE_TSWANA\|LANGUAGE_TURKISH\|LANGUAGE_TURKMEN\|LANGUAGE_TWI\|LANGUAGE_UIGHUR\|LANGUAGE_UKRAINIAN\|LANGUAGE_UNKNOWN\|LANGUAGE_URDU\|LANGUAGE_UZBEK\|LANGUAGE_VENDA\|LANGUAGE_VIETNAMESE\|LANGUAGE_WALLOON\|LANGUAGE_WELSH\|LANGUAGE_WESTERNFRISIAN\|LANGUAGE_WOLOF\|LANGUAGE_XHOSA\|LANGUAGE_YIDDISH\|LANGUAGE_YORUBA\|LANGUAGE_ZHUANG\|LANGUAGE_ZULU\|LAYER\|LAYER_VS_BOX\|LAYERBUTTON\|LEFT\|LEFTOUT\|LIGHTUSERDATA\|LIME\|LINE\|LINEAR\|LITTLEENDIAN\|LONG\|LOWERCURVE\|MAROON\|MASK\|MASKAND\|MASKINVISIBLE\|MASKOR\|MASKVANILLACOPY\|MASKVISIBLE\|MASKXOR\|MEMORY\|MENU\|MENUITEM_DISABLED\|MENUITEM_RADIO\|MENUITEM_SELECTED\|MENUITEM_TOGGLE\|MILLISECONDS\|MODE_READ\|MODE_READWRITE\|MODE_WRITE\|MODLALT\|MODLCOMMAND\|MODLCONTROL\|MODLSHIFT\|MODRALT\|MODRCOMMAND\|MODRCONTROL\|MODRSHIFT\|MONO16\|MONO8\|MONOSPACE\|MOVEFILE_COPY\|MOVEFILE_COPYFAILED\|MOVEFILE_DELETE\|MOVEFILE_DELETEFAILED\|MOVEFILE_UNPROTECT\|MOVELIST\|MOVEWINDOW\|MUSIC\|NAN\|NATIVE\|NATIVEENDIAN\|NAVY\|NETWORKCONNECTION\|NETWORKSERVER\|NETWORKUDP\|NEXTFRAME\|NEXTFRAME2\|NIL\|NOCOLOR\|NONE\|NOPEN\|NORMAL\|NORMALSPEED\|NOTRANSPARENCY\|NUMBER\|NUMERICAL\|OLIVE\|ONBUTTONCLICK\|ONBUTTONCLICKALL\|ONBUTTONOVER\|ONBUTTONOVERALL\|ONBUTTONRIGHTCLICK\|ONBUTTONRIGHTCLICKALL\|ONKEYDOWN\|ONKEYDOWNALL\|ORIENTATION_LANDSCAPE\|ORIENTATION_LANDSCAPEREV\|ORIENTATION_NONE\|ORIENTATION_PORTRAIT\|ORIENTATION_PORTRAITREV\|PALETTE\|PALETTE_AGA\|PALETTE_CGA\|PALETTE_DEFAULT\|PALETTE_EGA\|PALETTE_GRAY128\|PALETTE_GRAY16\|PALETTE_GRAY256\|PALETTE_GRAY32\|PALETTE_GRAY4\|PALETTE_GRAY64\|PALETTE_GRAY8\|PALETTE_MACINTOSH\|PALETTE_MONOCHROME\|PALETTE_OCS\|PALETTE_WINDOWS\|PALETTE_WORKBENCH\|PALETTEMODE_PEN\|PALETTEMODE_REMAP\|PARITY_EVEN\|PARITY_NONE\|PARITY_ODD\|PERMREQ_READEXTERNAL\|PERMREQ_WRITEEXTERNAL\|PI\|PIXELZOOM1\|PIXELZOOM2\|PLOT\|PLUGINCAPS_ANIM\|PLUGINCAPS_AUDIOADAPTER\|PLUGINCAPS_CONVERT\|PLUGINCAPS_DIRADAPTER\|PLUGINCAPS_DISPLAYADAPTER\|PLUGINCAPS_EXTENSION\|PLUGINCAPS_FILEADAPTER\|PLUGINCAPS_ICON\|PLUGINCAPS_IMAGE\|PLUGINCAPS_IPCADAPTER\|PLUGINCAPS_LIBRARY\|PLUGINCAPS_NETWORKADAPTER\|PLUGINCAPS_REQUESTERADAPTER\|PLUGINCAPS_REQUIRE\|PLUGINCAPS_SAVEANIM\|PLUGINCAPS_SAVEICON\|PLUGINCAPS_SAVEIMAGE\|PLUGINCAPS_SAVESAMPLE\|PLUGINCAPS_SERIALIZE\|PLUGINCAPS_SOUND\|PLUGINCAPS_TIMERADAPTER\|PLUGINCAPS_VECTOR\|PLUGINCAPS_VIDEO\|POINTER\|POLYGON\|PRGTYPE_APPLET\|PRGTYPE_PROGRAM\|PRGTYPE_SCRIPT\|PRINT\|PURPLE\|PUSHBOTTOM\|PUSHLEFT\|PUSHRIGHT\|PUSHTOP\|PUZZLE\|QUADRECT\|QUARTERS\|RADIAL\|RANDOMEFFECT\|RANDOMPARAMETER\|RECEIVEALL\|RECEIVEBYTES\|RECEIVEDATA_PACKET\|RECEIVELINE\|RECTBACKCENTER\|RECTBACKEAST\|RECTBACKNORTH\|RECTBACKNORTHEAST\|RECTBACKNORTHWEST\|RECTBACKSOUTH\|RECTBACKSOUTHEAST\|RECTBACKSOUTHWEST\|RECTBACKWEST\|RECTCENTER\|RECTEAST\|RECTNORTH\|RECTNORTHEAST\|RECTNORTHWEST\|RECTSOUTH\|RECTSOUTHEAST\|RECTSOUTHWEST\|RECTWEST\|RED\|REMOVELAYER\|REQ_CAMERA\|REQ_GALLERY\|REQ_HIDEICONS\|REQ_MULTISELECT\|REQ_NORMAL\|REQ_SAVEMODE\|REQICON_ERROR\|REQICON_INFORMATION\|REQICON_NONE\|REQICON_QUESTION\|REQICON_WARNING\|REVEALBOTTOM\|REVEALLEFT\|REVEALRIGHT\|REVEALTOP\|RIGHT\|RIGHTOUT\|ROLLLEFT\|ROLLTOP\|RTS_OFF\|RTS_ON\|SAMPLE\|SANS\|SCALEMODE_AUTO\|SCALEMODE_LAYER\|SCALEMODE_NONE\|SCROLLBOTTOM\|SCROLLEAST\|SCROLLLEFT\|SCROLLNORTH\|SCROLLNORTHEAST\|SCROLLNORTHWEST\|SCROLLRIGHT\|SCROLLSOUTH\|SCROLLSOUTHEAST\|SCROLLSOUTHWEST\|SCROLLTOP\|SCROLLWEST\|SECONDS\|SEEK_BEGINNING\|SEEK_CURRENT\|SEEK_END\|SELMODE_COMBO\|SELMODE_LAYERS\|SELMODE_NORMAL\|SERIAL\|SERIF\|SERVER\|SHADOW\|SHAPE\|SHDWEAST\|SHDWNORTH\|SHDWNORTHEAST\|SHDWNORTHWEST\|SHDWSOUTH\|SHDWSOUTHEAST\|SHDWSOUTHWEST\|SHDWWEST\|SHORT\|SILVER\|SIMPLEBUTTON\|SINE\|SIZEWINDOW\|SLIDEBOTTOM\|SLIDELEFT\|SLIDERIGHT\|SLIDETOP\|SLOWSPEED\|SMOOTHOUT\|SMPFMT_WAVE\|SNAPDESKTOP\|SNAPDISPLAY\|SNAPWINDOW\|SPIRAL\|SPRITE\|SPRITE_VS_BOX\|SPRITE_VS_BRUSH\|STAR\|STDERR\|STDIN\|STDOUT\|STDPTR_BUSY\|STDPTR_CUSTOM\|STDPTR_SYSTEM\|STEREO16\|STEREO8\|STOP_1\|STOP_2\|STRETCHBOTTOM\|STRETCHLEFT\|STRETCHRIGHT\|STRETCHTOP\|STRING\|STRUDEL\|SUN\|SWISS\|TABLE\|TEAL\|TEXTOBJECT\|TEXTOUT\|THREAD\|TICKS\|TIMEOUT\|TIMER\|TOP\|TOPOUT\|TRUETYPE_DEFAULT\|TURNDOWNBOTTOM\|TURNDOWNLEFT\|TURNDOWNRIGHT\|TURNDOWNTOP\|UDPCLIENT\|UDPNONE\|UDPOBJECT\|UDPSERVER\|UNDERLINED\|UNDO\|UPLOADFILE_RESPONSE\|UPLOADFILE_STATUS\|UPNDOWN\|UPPERCURVE\|USEDSPACE\|USELAYERPOSITION\|USERDATA\|VANILLACOPY\|VBLINDS128\|VBLINDS16\|VBLINDS32\|VBLINDS64\|VBLINDS8\|VCLOSECURTAIN\|VCLOSEGATE\|VECTORPATH\|VFLIPCOIN\|VFLOWLEFT\|VFLOWRIGHT\|VIDDRV_HOLLYWOOD\|VIDDRV_OS\|VIDEO\|VIEWMODE_DATE\|VIEWMODE_ICONS\|VIEWMODE_NAME\|VIEWMODE_NONE\|VIEWMODE_SIZE\|VIEWMODE_TYPE\|VLINES\|VLINES2\|VLOWFLIPCOIN\|VOID\|VOPENCURTAIN\|VOPENGATE\|VSPLIT\|VSTRANGEPUSH\|VSTRETCHCENTER\|VSTRIPES\|VSTRIPES16\|VSTRIPES2\|VSTRIPES32\|VSTRIPES4\|VSTRIPES64\|VSTRIPES8\|WALLPAPERLEFT\|WALLPAPERTOP\|WATER1\|WATER2\|WATER3\|WATER4\|WHITE\|WORD\|YELLOW\|ZOOMCENTER\|ZOOMEAST\|ZOOMIN\|ZOOMNORTH\|ZOOMNORTHEAST\|ZOOMNORTHWEST\|ZOOMOUT\|ZOOMSOUTH\|ZOOMSOUTHEAST\|ZOOMSOUTHWEST\|ZOOMWEST\)\>" +" Hollywood Functions +syn keyword hwFunction Abs ACos ActivateDisplay Add AddArcToPath AddBoxToPath AddCircleToPath AddEllipseToPath AddFontPath AddIconImage AddMove AddStr AddTab AddTextToPath AllocConsoleColor AllocMem AllocMemFromPointer AllocMemFromVirtualFile AppendPath ApplyPatch Arc ArcDistortBrush ARGB ArrayToStr Asc ASin Assert AsyncDrawFrame ATan ATan2 BarrelDistortBrush Base64Str Beep BeepConsole BeginAnimStream BeginDoubleBuffer BeginRefresh BGPicToBrush BinStr BitClear BitComplement BitSet BitTest BitXor Blue BlurBrush Box BreakEventHandler BreakWhileMouseOn BrushToBGPic BrushToGray BrushToMonochrome BrushToPenArray BrushToRGBArray ByteAsc ByteChr ByteLen ByteOffset ByteStrStr ByteVal CallJavaMethod CancelAsyncDraw CancelAsyncOperation CanonizePath Cast Ceil ChangeApplicationIcon ChangeBrushTransparency ChangeDirectory ChangeDisplayMode ChangeDisplaySize ChangeInterval CharcoalBrush CharOffset CharWidth CheckEvent CheckEvents Chr Circle ClearClipboard ClearConsole ClearConsoleStyle ClearEvents ClearInterval ClearMove ClearObjectData ClearPath ClearScreen ClearSerialQueue ClearTimeout CloseAmigaGuide CloseAnim CloseAudio CloseCatalog CloseConnection CloseConsole CloseDirectory CloseDisplay CloseFile CloseFont CloseMusic ClosePath CloseResourceMonitor CloseSerialPort CloseServer CloseUDPObject CloseVideo Cls CollectGarbage Collision ColorRequest CompareDates CompareStr CompressFile Concat ConfigureJoystick ConsolePrint ConsolePrintChr ConsolePrintNR ConsolePrompt ContinueAsyncOperation ContrastBrush ContrastPalette ConvertStr ConvertToBrush CopyAnim CopyBGPic CopyBrush CopyConsoleWindow CopyFile CopyLayer CopyMem CopyObjectData CopyPalette CopyPath CopyPens CopySample CopySprite CopyTable CopyTextObject Cos CountDirectoryEntries CountJoysticks CountStr CRC32 CRC32Str CreateAnim CreateBGPic CreateBorderBrush CreateBrush CreateButton CreateClipRegion CreateConsoleWindow CreateCoroutine CreateDisplay CreateFont CreateGradientBGPic CreateGradientBrush CreateIcon CreateKeyDown CreateLayer CreateList CreateMenu CreateMusic CreatePalette CreatePointer CreatePort CreateRainbowBGPic CreateRexxPort CreateSample CreateServer CreateShadowBrush CreateShortcut CreateSprite CreateTextObject CreateTexturedBGPic CreateTexturedBrush CreateUDPObject CropBrush CtrlCQuit CurveTo CyclePalette DateToTimestamp DateToUTC DebugOutput DebugPrint DebugPrintNR DebugPrompt DebugStr DebugVal DecomposeConsoleChr DecompressFile DecreasePointer DefineVirtualFile DefineVirtualFileFromString Deg DeleteAlphaChannel DeleteButton DeleteConsoleChr DeleteConsoleLine DeleteFile DeleteMask DeletePrefs DeselectMenuItem DeserializeTable DirectoryItems DisableAdvancedConsole DisableButton DisableEvent DisableEventHandler DisableLayers DisableLineHook DisableMenuItem DisablePlugin DisablePrecalculation DisableVWait DisplayAnimFrame DisplayBGPic DisplayBGPicPart DisplayBGPicPartFX DisplayBrush DisplayBrushFX DisplayBrushPart DisplaySprite DisplayTextObject DisplayTextObjectFX DisplayTransitionFX DisplayVideoFrame Div DoMove DownloadFile DrawConsoleBorder DrawConsoleBox DrawConsoleHLine DrawConsoleVLine DrawPath DumpButtons DumpLayers DumpMem DumpVideo DumpVideoTime EdgeBrush Ellipse EmbossBrush EmptyStr EnableAdvancedConsole EnableButton EnableEvent EnableEventHandler EnableLayers EnableLineHook EnableMenuItem EnablePlugin EnablePrecalculation EnableVWait End EndDoubleBuffer EndianSwap EndRefresh EndSelect EndsWith Eof EraseConsole Error EscapeQuit Eval Execute Exists ExitOnError Exp ExtendBrush ExtractPalette FileAttributes FileLength FileLines FilePart FilePos FileRequest FileSize FileToString FillMem FillMusicBuffer FindStr FinishAnimStream FinishAsyncDraw FlashConsole Flip FlipBrush FlipSprite FloodFill Floor FlushFile FlushMusicBuffer FlushSerialPort FontRequest ForcePathUse ForceSound ForceVideoDriver ForceVideoMode ForEach ForEachI FormatConsoleLine FormatDate FormatNumber FormatStr Frac FreeAnim FreeBGPic FreeBrush FreeClipRegion FreeConsoleColor FreeConsoleWindow FreeDisplay FreeEventCache FreeGlyphCache FreeIcon FreeLayers FreeMem FreeMenu FreeModule FreePalette FreePath FreePointer FreeSample FreeSprite FreeTextObject FrExp FullPath GammaBrush GammaPalette GCInfo GetAllocConsoleColor GetAnimFrame GetApplicationInfo GetApplicationList GetAsset GetAttribute GetAvailableFonts GetBaudRate GetBestPen GetBrushLink GetBrushPen GetBulletColor GetCatalogString GetChannels GetCharMaps GetClipboard GetCommandLine GetConnectionIP GetConnectionPort GetConnectionProtocol GetConsoleBackground GetConsoleChr GetConsoleColor GetConsoleControlChr GetConsoleCursor GetConsoleOrigin GetConsoleSize GetConsoleStr GetConsoleStyle GetConsoleWindow GetConstant GetCoroutineStatus GetCountryInfo GetCurrentDirectory GetCurrentPoint GetDash GetDataBits GetDate GetDateNum GetDefaultAdapter GetDefaultEncoding GetDefaultLoader GetDirectoryEntry GetDisplayModes GetDTR GetEnv GetErrorName GetEventCode GetFileArgument GetFileAttributes GetFillRule GetFillStyle GetFlowControl GetFontColor GetFontStyle GetFormStyle GetFPSLimit GetFreePen GetFrontScreen GetHostName GetIconProperties GetItem GetKerningPair GetLanguageInfo GetLastError GetLayerAtPos GetLayerGroupMembers GetLayerGroups GetLayerPen GetLayerStyle GetLineCap GetLineJoin GetLineWidth GetLocaleInfo GetLocalInterfaces GetLocalIP GetLocalPort GetLocalProtocol GetMACAddress GetMemoryInfo GetMemPointer GetMemString GetMetaTable GetMiterLimit GetMonitors GetObjectData GetObjects GetObjectType GetPalettePen GetParity GetPathExtents GetPatternPosition GetPen GetPlugins GetProgramDirectory GetProgramInfo GetPubScreens GetRandomColor GetRandomFX GetRawArguments GetRealColor GetRTS GetSampleData GetSerializeMode GetShortcutPath GetSongPosition GetStartDirectory GetStopBits GetSystemCountry GetSystemInfo GetSystemLanguage GetTempFileName GetTime GetTimer GetTimestamp GetTimeZone GetType GetVersion GetVideoFrame GetVolumeInfo GetVolumeName GetWeekday Gosub Goto GrabDesktop Green GroupLayer HasItem HaveConsole HaveFreeChannel HaveItem HaveObject HaveObjectData HavePlugin HaveVolume HexStr HideConsoleCursor HideDisplay HideKeyboard HideLayer HideLayerFX HidePointer HideScreen Hypot IgnoreCase IIf ImageRequest IncreasePointer InitConsoleColor InKeyStr InsertConsoleChr InsertConsoleLine InsertConsoleStr InsertItem InsertLayer InsertSample InsertStr InstallEventHandler Int Intersection InvertAlphaChannel InvertBrush InvertMask InvertPalette IPairs IsAbsolutePath IsAlNum IsAlpha IsAnim IsAnimPlaying IsBrushEmpty IsChannelPlaying IsCntrl IsDigit IsDirectory IsFinite IsGraph IsInf IsKeyDown IsLeftMouse IsLower IsMenuItemDisabled IsMenuItemSelected IsMidMouse IsModule IsMusic IsMusicPlaying IsNan IsNil IsOnline IsPathEmpty IsPicture IsPrint IsPunct IsRightMouse IsSample IsSamplePlaying IsSound IsSpace IsTableEmpty IsUnicode IsUpper IsVideo IsVideoPlaying IsXDigit JoyAxisX JoyAxisY JoyAxisZ JoyButton JoyDir JoyFire Label JoyHat LayerExists LayerGroupExists LayerToBack LayerToFront Ld LdExp LeftMouseQuit LeftStr LegacyControl Limit Line LineTo ListItems ListRequest Ln LoadAnim LoadAnimFrame LoadBGPic LoadBrush LoadIcon LoadModule LoadPalette LoadPlugin LoadPrefs LoadSample LoadSprite Locate Log LowerStr MakeButton MakeConsoleChr MakeDate MakeDirectory MakeHostPath MatchPattern Matrix2D Max MD5 MD5Str MemToTable MergeLayers MidStr Min MixBrush MixRGB MixSample Mod ModifyAnimFrames ModifyButton ModifyKeyDown ModifyLayerFrames ModulateBrush ModulatePalette MonitorDirectory MouseX MouseY MoveAnim MoveBrush MoveConsoleWindow MoveDisplay MoveFile MoveLayer MovePointer MoveSprite MoveTextObject MoveTo Mul NearlyEqual NextDirectoryEntry NextFrame NextItem NormalizePath NPrint OilPaintBrush OpenAmigaGuide OpenAnim OpenAudio OpenCatalog OpenConnection OpenConsole OpenDirectory OpenDisplay OpenFile OpenFont OpenMusic OpenResourceMonitor OpenSerialPort OpenURL OpenVideo Pack PadNum Pairs PaletteToGray ParseDate PathItems PathPart PathRequest PathToBrush PatternFindStr PatternFindStrDirect PatternFindStrShort PatternReplaceStr PauseLayer PauseModule PauseMusic PauseTimer PauseVideo Peek PeekClipboard PenArrayToBrush PerformSelector PermissionRequest PerspectiveDistortBrush Pi PixelateBrush PlayAnim PlayAnimDisk PlayLayer PlayModule PlayMusic PlaySample PlaySubsong PlayVideo Plot Poke PolarDistortBrush PollSerialQueue Polygon PopupMenu Pow Print QuantizeBrush Rad RaiseOnError RasterizeBrush RawDiv RawEqual RawGet RawSet ReadBrushPixel ReadByte ReadBytes ReadChr ReadConsoleKey ReadConsoleStr ReadDirectory ReadFloat ReadFunction ReadInt ReadLine ReadMem ReadPen ReadPixel ReadRegistryKey ReadSerialData ReadShort ReadString ReadTable ReceiveData ReceiveUDPData Red ReduceAlphaChannel RefreshConsole RefreshDisplay RefreshLayer RelCurveTo RelLineTo RelMoveTo RemapBrush RemoveBrushPalette RemoveButton RemoveIconImage RemoveItem RemoveKeyDown RemoveLayer RemoveLayerFX RemoveLayers RemoveSprite RemoveSprites Rename RenderLayer RepeatStr ReplaceColors ReplaceStr ResetKeyStates ResetTabs ResetTimer ResolveHostName ResumeCoroutine ResumeLayer ResumeModule ResumeMusic ResumeTimer ResumeVideo ReverseFindStr ReverseStr RewindDirectory RGB RGBArrayToBrush RightStr Rnd RndF RndStrong Rol Ror RotateBrush RotateLayer RotateTextObject Round Rt Run RunCallback RunRexxScript Sar SaveAnim SaveBrush SaveIcon SavePalette SavePrefs SaveSample SaveSnapshot ScaleAnim ScaleBGPic ScaleBrush ScaleLayer ScaleSprite ScaleTextObject ScrollConsole Seek SeekLayer SeekMusic SeekVideo SelectAlphaChannel SelectAnim SelectBGPic SelectBrush SelectConsoleWindow SelectDisplay SelectLayer SelectMask SelectMenuItem SelectPalette SendApplicationMessage SendData SendMessage SendRexxCommand SendUDPData SepiaToneBrush SerializeTable SetAllocConsoleColor SetAlphaIntensity SetAnimFrameDelay SetAttribute SetBaudRate SetBorderPen SetBrushDepth SetBrushPalette SetBrushPen SetBrushTransparency SetBrushTransparentPen SetBulletColor SetBulletPen SetChannelVolume SetClipboard SetClipRegion SetConsoleBackground SetConsoleColor SetConsoleCursor SetConsoleOptions SetConsoleStyle SetConsoleTitle SetCycleTable SetDash SetDataBits SetDefaultAdapter SetDefaultEncoding SetDefaultLoader SetDepth SetDisplayAttributes SetDitherMode SetDrawPen SetDrawTagsDefault SetDTR SetEnv SetEventTimeout SetFileAttributes SetFileEncoding SetFillRule SetFillStyle SetFlowControl SetFont SetFontColor SetFontStyle SetFormStyle SetFPSLimit SetGradientPalette SetIconProperties SetInterval SetIOMode SetLayerAnchor SetLayerBorder SetLayerDepth SetLayerFilter SetLayerLight SetLayerName SetLayerPalette SetLayerPen SetLayerShadow SetLayerStyle SetLayerTint SetLayerTransparency SetLayerTransparentPen SetLayerVolume SetLayerZPos SetLineCap SetLineJoin SetLineWidth SetListItems SetMargins SetMaskMode SetMasterVolume SetMetaTable SetMiterLimit SetMusicVolume SetNetworkProtocol SetNetworkTimeout SetObjectData SetPalette SetPaletteDepth SetPaletteMode SetPalettePen SetPaletteTransparentPen SetPanning SetParity SetPen SetPitch SetPointer SetRTS SetScreenTitle SetSerializeMode SetSerializeOptions SetShadowPen SetSpriteZPos SetStandardIconImage SetStandardPalette SetStopBits SetSubtitle SetTimeout SetTimerElapse SetTitle SetTransparentPen SetTransparentThreshold SetTrayIcon SetVarType SetVectorEngine SetVideoPosition SetVideoSize SetVideoVolume SetVolume SetWBIcon Sgn SharpenBrush Shl ShowConsoleCursor ShowDisplay ShowKeyboard ShowLayer ShowLayerFX ShowNotification ShowPointer ShowRinghioMessage ShowScreen ShowToast Shr Sin Sleep SolarizeBrush SolarizePalette Sort SplitStr Sqrt StartConsoleColorMode StartPath StartSubPath StartsWith StartTimer StopAnim StopChannel StopLayer StopModule StopMusic StopSample StopTimer StopVideo StringRequest StringToFile StripStr StrLen StrStr StrToArray Sub SwapLayers SwirlBrush SystemRequest TableItems TableToMem Tan TextExtent TextHeight TextOut TextWidth TimerElapsed TimestampToDate TintBrush TintPalette ToHostName ToIP ToNumber ToString TouchConsoleWindow ToUserData TransformBox TransformBrush TransformLayer TransformPoint TransformTextObject TranslateLayer TranslatePath TrimBrush TrimStr UndefineVirtualStringFile Undo UndoFX UngroupLayer UnleftStr UnmidStr Unpack UnrightStr UnsetEnv UploadFile UpperStr Usage UseCarriageReturn UseFont UTCToDate Val ValidateDate ValidateStr Vibrate VWait Wait WaitAnimEnd WaitEvent WaitKeyDown WaitLeftMouse WaitMidMouse WaitMusicEnd WaitPatternPosition WaitRightMouse WaitSampleEnd WaitSongPosition WaitTimer WaterRippleBrush WhileKeyDown WhileMouseDown WhileMouseOn WhileRightMouseDown Wrap WriteAnimFrame WriteBrushPixel WriteByte WriteBytes WriteChr WriteFloat WriteFunction WriteInt WriteLine WriteMem WritePen WriteRegistryKey WriteSerialData WriteShort WriteString WriteTable YieldCoroutine + +" user-defined constants +syn match hwUserConstant "#\<\u\+\>" +" user-defined functions +syn match hwUserFunction "\("me=e-1 + +" Comments +syn keyword hwTodo contained TODO FIXME XXX +syn match hwComment ";.*$" contains=hwTodo,@Spell +syn region hwComment matchgroup=hwComment start="/\*" end="\*/" contains=hwTodo,@Spell + + +" Strings +syn match hwSpecial contained #\\[\\abfnrtvz'"]\|\\x[[:xdigit:]]\{2}\|\\[[:digit:]]\{,3}# +syn region hwString start=+'+hs=s+1 end=+'+he=e-1 skip=+\\\\\|\\'+ contains=hwSpecial,@Spell +syn region hwString start=+"+hs=s+1 end=+"+he=e-1 skip=+\\\\\|\\"+ contains=hwSpecial,@Spell + +" integer number +syn match hwNumber "\<\d\+\>" +" floating point number, with dot, optional exponent +syn match hwNumber "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=\>" +" floating point number, starting with a dot, optional exponent +syn match hwNumber "\.\d\+\%([eE][-+]\=\d\+\)\=\>" +" floating point number, without dot, with exponent +syn match hwNumber "\<\d\+[eE][-+]\=\d\+\>" + +" hex numbers +syn match hwNumber "\<0[xX]\x\+\>" +syn match hwNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link hwPreProcessor PreProc +hi def link hwStatement Statement +hi def link hwFallThrough Statement +hi def link hwRepeat Repeat +hi def link hwFor Repeat +hi def link hwString PmenuSel +hi def link hwNumber Number +hi def link hwOperator Operator +hi def link hwStep Operator +hi def link hwIn Operator +hi def link hwUserConstant Constant +hi def link hwConstant Constant +hi def link hwLineStatement Conditional +hi def link hwCond Conditional +hi def link hwElseIf Conditional +hi def link hwFunction Function +hi def link hwUserFunction Function +hi def link hwComment MoreMsg +hi def link hwTodo Todo +hi def link hwTable Structure +hi def link hwError Error +hi def link hwParenError Error +hi def link hwBraceError Error +hi def link hwSpecial SpecialChar +hi def link hwLabel Label + + +let b:current_syntax = "hollywood" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: et ts=8 sw=2 diff --git a/runtime/syntax/hostconf.vim b/runtime/syntax/hostconf.vim new file mode 100644 index 0000000..593ed72 --- /dev/null +++ b/runtime/syntax/hostconf.vim @@ -0,0 +1,147 @@ +" Vim syntax file +" Language: host.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-25 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword hostconfTodo + \ contained + \ TODO + \ FIXME + \ XXX + \ NOTE + +syn match hostconfComment + \ display + \ contained + \ '\s*#.*' + \ contains=hostconfTodo, + \ @Spell + +syn match hostconfBegin + \ display + \ '^' + \ nextgroup=hostconfComment,hostconfKeyword + \ skipwhite + +syn keyword hostconfKeyword + \ contained + \ order + \ nextgroup=hostconfLookupOrder + \ skipwhite + +let s:orders = ['bind', 'hosts', 'nis'] + +function s:permute_suffixes(list) + if empty(a:list) + return [] + elseif len(a:list) == 1 + return a:list[0] + else + let i = 0 + let n = len(a:list) + let sub_permutations = [] + while i < n + let list_copy = copy(a:list) + let removed = list_copy[i] + call remove(list_copy, i) + call add(sub_permutations, [removed, s:permute_suffixes(list_copy)]) + let i += 1 + endwhile + return sub_permutations + endif +endfunction + +function s:generate_suffix_groups(list_of_order_of_orders, context, trailing_context) + for order_of_orders in a:list_of_order_of_orders + let order = order_of_orders[0] + let trailing_context = a:trailing_context . toupper(order[0]) . order[1:] + let nextgroup = 'hostconfLookupOrder' . trailing_context + let nextgroup_delimiter = nextgroup . 'Delimiter' + let group = 'hostconfLookupOrder' . a:context + execute 'syn keyword' group 'contained' order 'nextgroup=' . nextgroup_delimiter 'skipwhite' + execute 'syn match' nextgroup_delimiter 'contained display "," nextgroup=' . nextgroup 'skipwhite' + if a:context != "" + execute 'hi def link' group 'hostconfLookupOrder' + endif + execute 'hi def link' nextgroup_delimiter 'hostconfLookupOrderDelimiter' + let context = trailing_context + if type(order_of_orders[1]) == type([]) + call s:generate_suffix_groups(order_of_orders[1], context, trailing_context) + else + execute 'syn keyword hostconfLookupOrder' . context 'contained' order_of_orders[-1] + execute 'hi def link hostconfLookupOrder' . context 'hostconfLookupOrder' + endif + endfor +endfunction + +call s:generate_suffix_groups(s:permute_suffixes(s:orders), "", "") + +delfunction s:generate_suffix_groups +delfunction s:permute_suffixes + +syn keyword hostconfKeyword + \ contained + \ trim + \ nextgroup=hostconfDomain + \ skipwhite + +syn match hostconfDomain + \ contained + \ '\.[^:;,[:space:]]\+' + \ nextgroup=hostconfDomainDelimiter + \ skipwhite + +syn match hostconfDomainDelimiter + \ contained + \ display + \ '[:;,]' + \ nextgroup=hostconfDomain + \ skipwhite + +syn keyword hostconfKeyword + \ contained + \ multi + \ nospoof + \ spoofalert + \ reorder + \ nextgroup=hostconfBoolean + \ skipwhite + +syn keyword hostconfBoolean + \ contained + \ on + \ off + +syn keyword hostconfKeyword + \ contained + \ spoof + \ nextgroup=hostconfSpoofValue + \ skipwhite + +syn keyword hostconfSpoofValue + \ contained + \ off + \ nowarn + \ warn + +hi def link hostconfTodo Todo +hi def link hostconfComment Comment +hi def link hostconfKeyword Keyword +hi def link hostconfLookupOrder Identifier +hi def link hostconfLookupOrderDelimiter Delimiter +hi def link hostconfDomain String +hi def link hostconfDomainDelimiter Delimiter +hi def link hostconfBoolean Boolean +hi def link hostconfSpoofValue hostconfBoolean + +let b:current_syntax = "hostconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/hostsaccess.vim b/runtime/syntax/hostsaccess.vim new file mode 100644 index 0000000..7201816 --- /dev/null +++ b/runtime/syntax/hostsaccess.vim @@ -0,0 +1,23 @@ +" Vim syntax file +" Language: hosts.deny, hosts.allow configuration files +" Maintainer: Thilo Six +" Last Change: 2011 May 01 +" Derived From: conf.vim +" Credits: Bram Moolenaar +" +" This file is there to get at least a minimal highlighting. +" A later version may be improved. + + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" For a starter we just use conf.vim for highlighting +runtime! syntax/conf.vim +unlet b:current_syntax + + +let b:current_syntax = "hostsaccess" +" vim: ts=8 sw=2 diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim new file mode 100644 index 0000000..c975ae8 --- /dev/null +++ b/runtime/syntax/html.vim @@ -0,0 +1,411 @@ +" Vim syntax file +" Language: HTML +" Maintainer: Doug Kearns +" Previous Maintainers: Jorge Maldonado Ventura +" Claudio Fleiner +" Last Change: 2023 Nov 28 + +" See :help html.vim for some comments and a description of the options + +" quit when a syntax file was already loaded +if !exists("main_syntax") + if exists("b:current_syntax") + finish + endif + let main_syntax = 'html' +endif + +let s:cpo_save = &cpo +set cpo&vim + +syntax spell toplevel + +syn include @htmlXml syntax/xml.vim +unlet b:current_syntax + +syn case ignore + +" mark illegal characters +syn match htmlError "[<>&]" + +" tags +syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc +syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc +syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc +syn region htmlEndTag start=++ contains=htmlTagN,htmlTagError +syn region htmlTag start=+<[^/]+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster +syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster +syn match htmlTagN contained +]<"ms=s+1 + +" tag names +syn keyword htmlTagName contained address applet area a base basefont +syn keyword htmlTagName contained big blockquote br caption center +syn keyword htmlTagName contained cite code dd dfn dir div dl dt font +syn keyword htmlTagName contained form hr html img +syn keyword htmlTagName contained input isindex kbd li link map menu +syn keyword htmlTagName contained meta ol option param pre p samp span +syn keyword htmlTagName contained select small strike sub sup +syn keyword htmlTagName contained table td textarea th tr tt ul var xmp +syn match htmlTagName contained "\<\%(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>" + +" new html 4.0 tags +syn keyword htmlTagName contained abbr acronym bdo button col colgroup +syn keyword htmlTagName contained del fieldset iframe ins label legend +syn keyword htmlTagName contained object optgroup q s tbody tfoot thead + +" new html 5 tags +syn keyword htmlTagName contained article aside audio bdi canvas data +syn keyword htmlTagName contained datalist details dialog embed figcaption +syn keyword htmlTagName contained figure footer header hgroup keygen main +syn keyword htmlTagName contained mark menuitem meter nav output picture +syn keyword htmlTagName contained progress rb rp rt rtc ruby search section +syn keyword htmlTagName contained slot source summary template time track +syn keyword htmlTagName contained video wbr + +" svg and math tags +syn keyword htmlMathTagName contained math +syn keyword htmlSvgTagName contained svg + +syn region htmlMath start="" end="" contains=@htmlXml transparent keepend +syn region htmlSvg start="" end="" contains=@htmlXml transparent keepend + +syn cluster xmlTagHook add=htmlMathTagName,htmlSvgTagName + +" legal arg names +syn keyword htmlArg contained action +syn keyword htmlArg contained align alink alt archive background bgcolor +syn keyword htmlArg contained border bordercolor cellpadding +syn keyword htmlArg contained cellspacing checked class clear code codebase color +syn keyword htmlArg contained cols colspan content coords enctype face +syn keyword htmlArg contained gutter height hspace id +syn keyword htmlArg contained link lowsrc marginheight +syn keyword htmlArg contained marginwidth maxlength method name prompt +syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape +syn keyword htmlArg contained size src start target text type url +syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap +syn match htmlArg contained "\<\%(http-equiv\|href\|title\)="me=e-1 + +syn keyword htmlArg contained role + +" ARIA attributes {{{1 +let s:aria =<< trim END + activedescendant + atomic + autocomplete + braillelabel + brailleroledescription + busy + checked + colcount + colindex + colindextext + colspan + controls + current + describedby + description + details + disabled + errormessage + expanded + flowto + haspopup + hidden + invalid + keyshortcuts + label + labelledby + level + live + modal + multiline + multiselectable + orientation + owns + placeholder + posinset + pressed + readonly + relevant + required + roledescription + rowcount + rowindex + rowindextext + rowspan + selected + setsize + sort + valuemax + valuemin + valuenow + valuetext +END +let s:aria_deprecated =<< trim END + dropeffect + grabbed +END + +call extend(s:aria, s:aria_deprecated) +exe 'syn match htmlArg contained "\%#=1\join('\|') .. '\)\>"' +unlet s:aria s:aria_deprecated +" }}} + +" Netscape extensions +syn keyword htmlTagName contained frame noframes frameset nobr blink +syn keyword htmlTagName contained layer ilayer nolayer spacer +syn keyword htmlArg contained frameborder noresize pagex pagey above below +syn keyword htmlArg contained left top visibility clip id noshade +syn match htmlArg contained "\" + +" Microsoft extensions +syn keyword htmlTagName contained marquee + +" html 4.0 arg names +syn match htmlArg contained "\<\%(accept-charset\|label\)\>" +syn keyword htmlArg contained abbr accept accesskey axis char charoff charset +syn keyword htmlArg contained cite classid codetype compact data datetime +syn keyword htmlArg contained declare defer dir disabled for frame +syn keyword htmlArg contained headers hreflang lang language longdesc +syn keyword htmlArg contained multiple nohref nowrap object profile readonly +syn keyword htmlArg contained rules scheme scope span standby style +syn keyword htmlArg contained summary tabindex valuetype version + +" html 5 arg names +syn keyword htmlArg contained allow autocapitalize as blocking decoding +syn keyword htmlArg contained enterkeyhint imagesizes imagesrcset inert +syn keyword htmlArg contained integrity is itemid itemprop itemref itemscope +syn keyword htmlArg contained itemtype loading nomodule ping playsinline +syn keyword htmlArg contained referrerpolicy slot allowfullscreen async +syn keyword htmlArg contained autocomplete autofocus autoplay challenge +syn keyword htmlArg contained contenteditable contextmenu controls crossorigin +syn keyword htmlArg contained default dirname download draggable dropzone form +syn keyword htmlArg contained formaction formenctype formmethod formnovalidate +syn keyword htmlArg contained formtarget hidden high icon inputmode keytype +syn keyword htmlArg contained kind list loop low max min minlength muted nonce +syn keyword htmlArg contained novalidate open optimum pattern placeholder +syn keyword htmlArg contained poster preload radiogroup required reversed +syn keyword htmlArg contained sandbox spellcheck sizes srcset srcdoc srclang +syn keyword htmlArg contained step title translate typemustmatch +syn match htmlArg contained "\+ contains=@Spell +else + " The HTML 5.2 syntax 8.2.4.41: bogus comment is parser error; browser skips until next > + syn region htmlComment start=++ contains=htmlCommentError keepend + " Idem 8.2.4.42,51: Comment starts with + " Idem 8.2.4.43,44: Except and are parser errors + " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment + syn region htmlComment matchgroup=htmlComment start=+ is all right + syn match htmlCommentNested contained "\@!" + syn match htmlCommentError contained "[^>+ keepend + +" server-parsed commands +syn region htmlPreProc start=++ contains=htmlPreStmt,htmlPreError,htmlPreAttr +syn match htmlPreStmt contained "\)" + syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc + hi def link htmlStyleArg htmlString +endif + +if main_syntax == "html" + " synchronizing (does not always work if a comment includes legal + " html tags, but doing it right would mean to always start + " at the first line, which is too slow) + syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]" + syn sync match htmlHighlight groupthere javaScript "\%(\n\s*" +syn match logtalkOperator "->" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\<\(uninstantiation\|type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze(" + + +" Term unification + +syn match logtalkOperator "\(0'\)\@" +syn match logtalkOperator "@>=" + + +" Term creation and decomposition + +syn match logtalkKeyword "\" + + +" Arithmetic evaluation + +syn match logtalkOperator "\" + + +" Arithmetic comparison + +syn match logtalkOperator "=:=" +syn match logtalkOperator "=\\=" +syn match logtalkOperator "\(0'\)\@" +syn match logtalkOperator ">=" + + +" Stream selection and control + +syn match logtalkKeyword "\<\(curren\|se\)t_\(in\|out\)put\ze(" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\" + + +" Term input/output + +syn match logtalkKeyword "\" + + +" Atomic term processing + +syn match logtalkKeyword "\" + + +" Sorting + +syn match logtalkKeyword "\<\(key\)\?sort\ze(" + + +" Evaluable functors + +syn match logtalkOperator "\(0'\)\@" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\" +syn match logtalkKeyword "\>" +syn match logtalkOperator "<<" +syn match logtalkOperator "/\\" +syn match logtalkOperator "\\/" +syn match logtalkOperator "0'\@" +syn match logtalkNumber "\<\d\+\.\d\+\>" +syn match logtalkNumber "\<\d\+[eE][-+]\=\d\+\>" +syn match logtalkNumber "\<\d\+\.\d\+[eE][-+]\=\d\+\>" +syn match logtalkNumber "0'[\\]\?." +syn match logtalkNumber "\<0b[0-1]\+\>" +syn match logtalkNumber "\<0o\o\+\>" +syn match logtalkNumber "\<0x\x\+\>" + + +" Logtalk end-of-clause + +syn match logtalkOperator "\(0'\)\@ +" Last Change: Wed Aug 19 1998 +" URL: http://lotos.csi.uottawa.ca/~damyot/vim/lotos.vim +" This file is an adaptation of pascal.vim by Mario Eusebio +" I'm not sure I understand all of the syntax highlight language, +" but this file seems to do the job for standard LOTOS. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +"Comments in LOTOS are between (* and *) +syn region lotosComment start="(\*" end="\*)" contains=lotosTodo + +"Operators [], [...], >>, ->, |||, |[...]|, ||, ;, !, ?, :, =, ,, := +syn match lotosDelimiter "[][]" +syn match lotosDelimiter ">>" +syn match lotosDelimiter "->" +syn match lotosDelimiter "\[>" +syn match lotosDelimiter "[|;!?:=,]" + +"Regular keywords +syn keyword lotosStatement specification endspec process endproc +syn keyword lotosStatement where behaviour behavior +syn keyword lotosStatement any let par accept choice hide of in +syn keyword lotosStatement i stop exit noexit + +"Operators from the Abstract Data Types in IS8807 +syn keyword lotosOperator eq ne succ and or xor implies iff +syn keyword lotosOperator not true false +syn keyword lotosOperator Insert Remove IsIn NotIn Union Ints +syn keyword lotosOperator Minus Includes IsSubsetOf +syn keyword lotosOperator lt le ge gt 0 + +"Sorts in IS8807 +syn keyword lotosSort Boolean Bool FBoolean FBool Element +syn keyword lotosSort Set String NaturalNumber Nat HexString +syn keyword lotosSort HexDigit DecString DecDigit +syn keyword lotosSort OctString OctDigit BitString Bit +syn keyword lotosSort Octet OctetString + +"Keywords for ADTs +syn keyword lotosType type endtype library endlib sorts formalsorts +syn keyword lotosType eqns formaleqns opns formalopns forall ofsort is +syn keyword lotosType for renamedby actualizedby sortnames opnnames +syn keyword lotosType using + +syn sync lines=250 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link lotosStatement Statement +hi def link lotosProcess Label +hi def link lotosOperator Operator +hi def link lotosSort Function +hi def link lotosType Type +hi def link lotosComment Comment +hi def link lotosDelimiter String + + +let b:current_syntax = "lotos" + +" vim: ts=8 diff --git a/runtime/syntax/lout.vim b/runtime/syntax/lout.vim new file mode 100644 index 0000000..b26a7bc --- /dev/null +++ b/runtime/syntax/lout.vim @@ -0,0 +1,135 @@ +" Vim syntax file +" Language: Lout +" Maintainer: Christian V. J. Brüssow +" Last Change: So 12 Feb 2012 15:15:03 CET +" Filenames: *.lout,*.lt +" URL: http://www.cvjb.de/comp/vim/lout.vim + +" $Id: lout.vim,v 1.4 2012/02/12 15:16:17 bruessow Exp $ +" +" Lout: Basser Lout document formatting system. + +" Many Thanks to... +" +" 2012-02-12: +" Thilo Six send a patch for cpoptions. +" See the discussion at http://thread.gmane.org/gmane.editors.vim.devel/32151 + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save=&cpo +set cpo&vim + +" Lout is case sensitive +syn case match + +" Synchronization, I know it is a huge number, but normal texts can be +" _very_ long ;-) +syn sync lines=1000 + +" Characters allowed in keywords +" I don't know if 128-255 are allowed in ANS-FORHT +setlocal iskeyword=@,48-57,.,@-@,_,192-255 + +" Some special keywords +syn keyword loutTodo contained TODO lout Lout LOUT +syn keyword loutDefine def macro + +" Some big structures +syn keyword loutKeyword @Begin @End @Figure @Tab +syn keyword loutKeyword @Book @Doc @Document @Report +syn keyword loutKeyword @Introduction @Abstract @Appendix +syn keyword loutKeyword @Chapter @Section @BeginSections @EndSections + +" All kind of Lout keywords +syn match loutFunction '\<@[^ \t{}]\+\>' + +" Braces -- Don`t edit these lines! +syn match loutMBraces '[{}]' +syn match loutIBraces '[{}]' +syn match loutBBrace '[{}]' +syn match loutBIBraces '[{}]' +syn match loutHeads '[{}]' + +" Unmatched braces. +syn match loutBraceError '}' + +" End of multi-line definitions, like @Document, @Report and @Book. +syn match loutEOmlDef '^//$' + +" Grouping of parameters and objects. +syn region loutObject transparent matchgroup=Delimiter start='{' matchgroup=Delimiter end='}' contains=ALLBUT,loutBraceError + +" The NULL object has a special meaning +syn keyword loutNULL {} + +" Comments +syn region loutComment start='\#' end='$' contains=loutTodo + +" Double quotes +syn region loutSpecial start=+"+ skip=+\\\\\|\\"+ end=+"+ + +" ISO-LATIN-1 characters created with @Char, or Adobe symbols +" created with @Sym +syn match loutSymbols '@\(\(Char\)\|\(Sym\)\)\s\+[A-Za-z]\+' + +" Include files +syn match loutInclude '@IncludeGraphic\s\+\k\+' +syn region loutInclude start='@\(\(SysInclude\)\|\(IncludeGraphic\)\|\(Include\)\)\s*{' end='}' + +" Tags +syn match loutTag '@\(\(Tag\)\|\(PageMark\)\|\(PageOf\)\|\(NumberOf\)\)\s\+\k\+' +syn region loutTag start='@Tag\s*{' end='}' + +" Equations +syn match loutMath '@Eq\s\+\k\+' +syn region loutMath matchgroup=loutMBraces start='@Eq\s*{' matchgroup=loutMBraces end='}' contains=ALLBUT,loutBraceError +" +" Fonts +syn match loutItalic '@I\s\+\k\+' +syn region loutItalic matchgroup=loutIBraces start='@I\s*{' matchgroup=loutIBraces end='}' contains=ALLBUT,loutBraceError +syn match loutBold '@B\s\+\k\+' +syn region loutBold matchgroup=loutBBraces start='@B\s*{' matchgroup=loutBBraces end='}' contains=ALLBUT,loutBraceError +syn match loutBoldItalic '@BI\s\+\k\+' +syn region loutBoldItalic matchgroup=loutBIBraces start='@BI\s*{' matchgroup=loutBIBraces end='}' contains=ALLBUT,loutBraceError +syn region loutHeadings matchgroup=loutHeads start='@\(\(Title\)\|\(Caption\)\)\s*{' matchgroup=loutHeads end='}' contains=ALLBUT,loutBraceError + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overrriden later. +hi def link loutTodo Todo +hi def link loutDefine Define +hi def link loutEOmlDef Define +hi def link loutFunction Function +hi def link loutBraceError Error +hi def link loutNULL Special +hi def link loutComment Comment +hi def link loutSpecial Special +hi def link loutSymbols Character +hi def link loutInclude Include +hi def link loutKeyword Keyword +hi def link loutTag Tag +hi def link loutMath Number + +hi def link loutMBraces loutMath +hi loutItalic term=italic cterm=italic gui=italic +hi def link loutIBraces loutItalic +hi loutBold term=bold cterm=bold gui=bold +hi def link loutBBraces loutBold +hi loutBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic +hi def link loutBIBraces loutBoldItalic +hi loutHeadings term=bold cterm=bold guifg=indianred +hi def link loutHeads loutHeadings + + +let b:current_syntax = "lout" + +let &cpo=s:cpo_save +unlet s:cpo_save + +" vim:ts=8:sw=4:nocindent:smartindent: diff --git a/runtime/syntax/lpc.vim b/runtime/syntax/lpc.vim new file mode 100644 index 0000000..7d85fce --- /dev/null +++ b/runtime/syntax/lpc.vim @@ -0,0 +1,447 @@ +" Vim syntax file +" Language: LPC +" Maintainer: Shizhu Pan +" URL: http://poet.tomud.com/pub/lpc.vim.bz2 +" Last Change: 2016 Aug 31 +" Comments: If you are using Vim 6.2 or later, see :h lpc.vim for +" file type recognizing, if not, you had to use modeline. + + +" Nodule: This is the start nodule. {{{1 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Nodule: Keywords {{{1 + +" LPC keywords +" keywords should always be highlighted so "contained" is not used. +syn cluster lpcKeywdGrp contains=lpcConditional,lpcLabel,lpcOperator,lpcRepeat,lpcStatement,lpcModifier,lpcReserved + +syn keyword lpcConditional if else switch +syn keyword lpcLabel case default +syn keyword lpcOperator catch efun in inherit +syn keyword lpcRepeat do for foreach while +syn keyword lpcStatement break continue return + +syn match lpcEfunError /efun[^:]/ display + +" Illegal to use keyword as function +" It's not working, maybe in the next version. +syn keyword lpcKeywdError contained if for foreach return switch while + +" These are keywords only because they take lvalue or type as parameter, +" so these keywords should only be used as function but cannot be names of +" user-defined functions. +syn keyword lpcKeywdFunc new parse_command sscanf time_expression + +" Nodule: Type and modifiers {{{1 + +" Type names list. + +" Special types +syn keyword lpcType void mixed unknown +" Scalar/Value types. +syn keyword lpcType int float string +" Pointer types. +syn keyword lpcType array buffer class function mapping object +" Other types. +if exists("lpc_compat_32") + syn keyword lpcType closure status funcall +else + syn keyword lpcError closure status + syn keyword lpcType multiset +endif + +" Type modifier. +syn keyword lpcModifier nomask private public +syn keyword lpcModifier varargs virtual + +" sensible modifiers +if exists("lpc_pre_v22") + syn keyword lpcReserved nosave protected ref + syn keyword lpcModifier static +else + syn keyword lpcError static + syn keyword lpcModifier nosave protected ref +endif + +" Nodule: Applies {{{1 + +" Match a function declaration or function pointer +syn match lpcApplyDecl excludenl /->\h\w*(/me=e-1 contains=lpcApplies transparent display + +" We should note that in func_spec.c the efun definition syntax is so +" complicated that I use such a long regular expression to describe. +syn match lpcLongDecl excludenl /\(\s\|\*\)\h\+\s\h\+(/me=e-1 contains=@lpcEfunGroup,lpcType,@lpcKeywdGrp transparent display + +" this is form for all functions +" ->foo() form had been excluded +syn match lpcFuncDecl excludenl /\h\w*(/me=e-1 contains=lpcApplies,@lpcEfunGroup,lpcKeywdError transparent display + +" The (: :) parenthesis or $() forms a function pointer +syn match lpcFuncName /(:\s*\h\+\s*:)/me=e-1 contains=lpcApplies,@lpcEfunGroup transparent display contained +syn match lpcFuncName /(:\s*\h\+,/ contains=lpcApplies,@lpcEfunGroup transparent display contained +syn match lpcFuncName /\$(\h\+)/ contains=lpcApplies,@lpcEfunGroup transparent display contained + +" Applies list. +" system applies +syn keyword lpcApplies contained __INIT clean_up create destructor heart_beat id init move_or_destruct reset +" interactive +syn keyword lpcApplies contained catch_tell logon net_dead process_input receive_message receive_snoop telnet_suboption terminal_type window_size write_prompt +" master applies +syn keyword lpcApplies contained author_file compile_object connect crash creator_file domain_file epilog error_handler flag get_bb_uid get_root_uid get_save_file_name log_error make_path_absolute object_name preload privs_file retrieve_ed_setup save_ed_setup slow_shutdown +syn keyword lpcApplies contained valid_asm valid_bind valid_compile_to_c valid_database valid_hide valid_link valid_object valid_override valid_read valid_save_binary valid_seteuid valid_shadow valid_socket valid_write +" parsing +syn keyword lpcApplies contained inventory_accessible inventory_visible is_living parse_command_adjectiv_id_list parse_command_adjective_id_list parse_command_all_word parse_command_id_list parse_command_plural_id_list parse_command_prepos_list parse_command_users parse_get_environment parse_get_first_inventory parse_get_next_inventory parser_error_message + + +" Nodule: Efuns {{{1 + +syn cluster lpcEfunGroup contains=lpc_efuns,lpcOldEfuns,lpcNewEfuns,lpcKeywdFunc + +" Compat32 efuns +if exists("lpc_compat_32") + syn keyword lpc_efuns contained closurep heart_beat_info m_delete m_values m_indices query_once_interactive strstr +else + syn match lpcErrFunc /#`\h\w*/ + " Shell compatible first line comment. + syn region lpcCommentFunc start=/^#!/ end=/$/ +endif + +" pre-v22 efuns which are removed in newer versions. +syn keyword lpcOldEfuns contained tail dump_socket_status + +" new efuns after v22 should be added here! +syn keyword lpcNewEfuns contained socket_status + +" LPC efuns list. +" DEBUG efuns Not included. +" New efuns should NOT be added to this list, see v22 efuns above. +" Efuns list {{{2 +syn keyword lpc_efuns contained acos add_action all_inventory all_previous_objects allocate allocate_buffer allocate_mapping apply arrayp asin atan author_stats +syn keyword lpc_efuns contained bind break_string bufferp +syn keyword lpc_efuns contained cache_stats call_other call_out call_out_info call_stack capitalize catch ceil check_memory children classp clear_bit clone_object clonep command commands copy cos cp crc32 crypt ctime +syn keyword lpc_efuns contained db_close db_commit db_connect db_exec db_fetch db_rollback db_status debug_info debugmalloc debug_message deep_inherit_list deep_inventory destruct disable_commands disable_wizard domain_stats dumpallobj dump_file_descriptors dump_prog +syn keyword lpc_efuns contained each ed ed_cmd ed_start enable_commands enable_wizard environment error errorp eval_cost evaluate exec exp explode export_uid external_start +syn keyword lpc_efuns contained fetch_variable file_length file_name file_size filter filter_array filter_mapping find_call_out find_living find_object find_player first_inventory floatp floor flush_messages function_exists function_owner function_profile functionp functions +syn keyword lpc_efuns contained generate_source get_char get_config get_dir geteuid getuid +syn keyword lpc_efuns contained heart_beats +syn keyword lpc_efuns contained id_matrix implode in_edit in_input inherit_list inherits input_to interactive intp +syn keyword lpc_efuns contained keys +syn keyword lpc_efuns contained link living livings load_object localtime log log10 lookat_rotate lower_case lpc_info +syn keyword lpc_efuns contained malloc_check malloc_debug malloc_status map map_array map_delete map_mapping mapp master match_path max_eval_cost member_array memory_info memory_summary message mkdir moncontrol move_object mud_status +syn keyword lpc_efuns contained named_livings network_stats next_bit next_inventory notify_fail nullp +syn keyword lpc_efuns contained objectp objects oldcrypt opcprof origin +syn keyword lpc_efuns contained parse_add_rule parse_add_synonym parse_command parse_dump parse_init parse_my_rules parse_refresh parse_remove parse_sentence pluralize pointerp pow present previous_object printf process_string process_value program_info +syn keyword lpc_efuns contained query_ed_mode query_heart_beat query_host_name query_idle query_ip_name query_ip_number query_ip_port query_load_average query_notify_fail query_privs query_replaced_program query_shadowing query_snoop query_snooping query_verb +syn keyword lpc_efuns contained random read_buffer read_bytes read_file receive reclaim_objects refs regexp reg_assoc reload_object remove_action remove_call_out remove_interactive remove_shadow rename repeat_string replace_program replace_string replaceable reset_eval_cost resolve restore_object restore_variable rm rmdir rotate_x rotate_y rotate_z rusage +syn keyword lpc_efuns contained save_object save_variable say scale set_author set_bit set_eval_limit set_heart_beat set_hide set_light set_living_name set_malloc_mask set_privs set_reset set_this_player set_this_user seteuid shadow shallow_inherit_list shout shutdown sin sizeof snoop socket_accept socket_acquire socket_address socket_bind socket_close socket_connect socket_create socket_error socket_listen socket_release socket_write sort_array sprintf sqrt stat store_variable strcmp stringp strlen strsrch +syn keyword lpc_efuns contained tan tell_object tell_room terminal_colour test_bit this_interactive this_object this_player this_user throw time to_float to_int trace traceprefix translate typeof +syn keyword lpc_efuns contained undefinedp unique_array unique_mapping upper_case uptime userp users +syn keyword lpc_efuns contained values variables virtualp +syn keyword lpc_efuns contained wizardp write write_buffer write_bytes write_file + +" Nodule: Constants {{{1 + +" LPC Constants. +" like keywords, constants are always highlighted, be careful to choose only +" the constants we used to add to this list. +syn keyword lpcConstant __ARCH__ __COMPILER__ __DIR__ __FILE__ __OPTIMIZATION__ __PORT__ __VERSION__ +" Defines in options.h are all predefined in LPC sources surrounding by +" two underscores. Do we need to include all of that? +syn keyword lpcConstant __SAVE_EXTENSION__ __HEARTBEAT_INTERVAL__ +" from the documentation we know that these constants remains only for +" backward compatibility and should not be used any more. +syn keyword lpcConstant HAS_ED HAS_PRINTF HAS_RUSAGE HAS_DEBUG_LEVEL +syn keyword lpcConstant MUD_NAME F__THIS_OBJECT + +" Nodule: Todo for this file. {{{1 + +" TODO : need to check for LPC4 syntax and other series of LPC besides +" v22, b21 and l32, if you had a good idea, contact me at poet@mudbuilder.net +" and I will be appreciated about that. + +" Notes about some FAQ: +" +" About variables : We adopts the same behavior for C because almost all the +" LPC programmers are also C programmers, so we don't need separate settings +" for C and LPC. That is the reason why I don't change variables like +" "c_no_utf"s to "lpc_no_utf"s. +" +" Copy : Some of the following seems to be copied from c.vim but not quite +" the same in details because the syntax for C and LPC is different. +" +" Color scheme : this syntax file had been thouroughly tested to work well +" for all of the dark-backgrounded color schemes Vim has provided officially, +" and it should be quite Ok for all of the bright-backgrounded color schemes, +" of course it works best for the color scheme that I am using, download it +" from http://poet.tomud.com/pub/ps_color.vim.bz2 if you want to try it. +" + +" Nodule: String and Character {{{1 + + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match lpcSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" +if !exists("c_no_utf") + syn match lpcSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)" +endif + +" LPC version of sprintf() format, +syn match lpcFormat display "%\(\d\+\)\=[-+ |=#@:.]*\(\d\+\)\=\('\I\+'\|'\I*\\'\I*'\)\=[OsdicoxXf]" contained +syn match lpcFormat display "%%" contained +syn region lpcString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lpcSpecial,lpcFormat +" lpcCppString: same as lpcString, but ends at end of line +syn region lpcCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=lpcSpecial,lpcFormat + +" LPC preprocessor for the text formatting short cuts +" Thanks to Dr. Charles E. Campbell +" he suggests the best way to do this. +syn region lpcTextString start=/@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial +syn region lpcArrayString start=/@@\z(\h\w*\)$/ end=/^\z1/ contains=lpcSpecial + +" Character +syn match lpcCharacter "L\='[^\\]'" +syn match lpcCharacter "L'[^']*'" contains=lpcSpecial +syn match lpcSpecialError "L\='\\[^'\"?\\abefnrtv]'" +syn match lpcSpecialCharacter "L\='\\['\"?\\abefnrtv]'" +syn match lpcSpecialCharacter display "L\='\\\o\{1,3}'" +syn match lpcSpecialCharacter display "'\\x\x\{1,2}'" +syn match lpcSpecialCharacter display "L'\\x\x\+'" + +" Nodule: White space {{{1 + +" when wanted, highlight trailing white space +if exists("c_space_errors") + if !exists("c_no_trail_space_error") + syn match lpcSpaceError display excludenl "\s\+$" + endif + if !exists("c_no_tab_space_error") + syn match lpcSpaceError display " \+\t"me=e-1 + endif +endif + +" Nodule: Parenthesis and brackets {{{1 + +" catch errors caused by wrong parenthesis and brackets +syn cluster lpcParenGroup contains=lpcParenError,lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcCommentSkip,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom +syn region lpcParen transparent start='(' end=')' contains=ALLBUT,@lpcParenGroup,lpcCppParen,lpcErrInBracket,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcKeywdError +" lpcCppParen: same as lpcParen but ends at end-of-line; used in lpcDefine +syn region lpcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInBracket,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcKeywdError +syn match lpcParenError display ")" +syn match lpcParenError display "\]" +" for LPC: +" Here we should consider the array ({ }) parenthesis and mapping ([ ]) +" parenthesis and multiset (< >) parenthesis. +syn match lpcErrInParen display contained "[^^]{"ms=s+1 +syn match lpcErrInParen display contained "\(}\|\]\)[^)]"me=e-1 +syn region lpcBracket transparent start='\[' end=']' contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcCppParen,lpcCppBracket,lpcCppString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError +" lpcCppBracket: same as lpcParen but ends at end-of-line; used in lpcDefine +syn region lpcCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@lpcParenGroup,lpcErrInParen,lpcParen,lpcBracket,lpcString,@lpcEfunGroup,lpcApplies,lpcFuncName,lpcKeywdError +syn match lpcErrInBracket display contained "[);{}]" + +" Nodule: Numbers {{{1 + +" integer number, or floating point number without a dot and with "f". +syn case ignore +syn match lpcNumbers display transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctalError,lpcOctal +" Same, but without octal error (for comments) +syn match lpcNumbersCom display contained transparent "\<\d\|\.\d" contains=lpcNumber,lpcFloat,lpcOctal +syn match lpcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +" hex number +syn match lpcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match lpcOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=lpcOctalZero +syn match lpcOctalZero display contained "\<0" +syn match lpcFloat display contained "\d\+f" +" floating point number, with dot, optional exponent +syn match lpcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +" floating point number, starting with a dot, optional exponent +syn match lpcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +" floating point number, without dot, with exponent +syn match lpcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" +" flag an octal number with wrong digits +syn match lpcOctalError display contained "0\o*[89]\d*" +syn case match + +" Nodule: Comment string {{{1 + +" lpcCommentGroup allows adding matches for special things in comments +syn keyword lpcTodo contained TODO FIXME XXX +syn cluster lpcCommentGroup contains=lpcTodo + +if exists("c_comment_strings") + " A comment can contain lpcString, lpcCharacter and lpcNumber. + syntax match lpcCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region lpcCommentString contained start=+L\=\\\@" skip="\\$" end="$" end="//"me=s-1 contains=lpcComment,lpcCppString,lpcCharacter,lpcCppParen,lpcParenError,lpcNumbers,lpcCommentError,lpcSpaceError +syn match lpcPreCondit display "^\s*#\s*\(else\|endif\)\>" +if !exists("c_no_if0") + syn region lpcCppOut start="^\s*#\s*if\s\+0\+\>" end=".\|$" contains=lpcCppOut2 + syn region lpcCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=lpcSpaceError,lpcCppSkip + syn region lpcCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=lpcSpaceError,lpcCppSkip +endif +syn region lpcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match lpcIncluded display contained "<[^>]*>" +syn match lpcInclude display "^\s*#\s*include\>\s*["<]" contains=lpcIncluded +syn match lpcLineSkip "\\$" +syn cluster lpcPreProcGroup contains=lpcPreCondit,lpcIncluded,lpcInclude,lpcDefine,lpcErrInParen,lpcErrInBracket,lpcUserLabel,lpcSpecial,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcString,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcParen,lpcBracket,lpcMulti,lpcKeywdError +syn region lpcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@lpcPreProcGroup + +if exists("lpc_pre_v22") + syn region lpcPreProc start="^\s*#\s*\(pragma\>\|echo\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup +else + syn region lpcPreProc start="^\s*#\s*\(pragma\>\|echo\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@lpcPreProcGroup +endif + +" Nodule: User labels {{{1 + +" Highlight Labels +" User labels in LPC is not allowed, only "case x" and "default" is supported +syn cluster lpcMultiGroup contains=lpcIncluded,lpcSpecial,lpcCommentSkip,lpcCommentString,lpcComment2String,@lpcCommentGroup,lpcCommentStartError,lpcUserCont,lpcUserLabel,lpcBitField,lpcOctalZero,lpcCppOut,lpcCppOut2,lpcCppSkip,lpcFormat,lpcNumber,lpcFloat,lpcOctal,lpcOctalError,lpcNumbersCom,lpcCppParen,lpcCppBracket,lpcCppString,lpcKeywdError +syn region lpcMulti transparent start='\(case\|default\|public\|protected\|private\)' skip='::' end=':' contains=ALLBUT,@lpcMultiGroup + +syn cluster lpcLabelGroup contains=lpcUserLabel +syn match lpcUserCont display "^\s*lpc:$" contains=@lpcLabelGroup + +" Don't want to match anything +syn match lpcUserLabel display "lpc" contained + +" Nodule: Initializations {{{1 + +if exists("c_minlines") + let b:c_minlines = c_minlines +else + if !exists("c_no_if0") + let b:c_minlines = 50 " #if 0 constructs can be long + else + let b:c_minlines = 15 " mostly for () constructs + endif +endif +exec "syn sync ccomment lpcComment minlines=" . b:c_minlines + +" Make sure these options take place since we no longer depend on file type +" plugin for C +setlocal cindent +setlocal fo-=t fo+=croql +setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:// + +" Win32 can filter files in the browse dialog +if has("gui_win32") && !exists("b:browsefilter") + let b:browsefilter = "LPC Source Files (*.c *.d *.h)\t*.c;*.d;*.h\n" . + \ "LPC Data Files (*.scr *.o *.dat)\t*.scr;*.o;*.dat\n" . + \ "Text Documentation (*.txt)\t*.txt\n" . + \ "All Files (*.*)\t*.*\n" +endif + +" Nodule: Highlight links {{{1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link lpcModifier lpcStorageClass + +hi def link lpcQuotedFmt lpcFormat +hi def link lpcFormat lpcSpecial +hi def link lpcCppString lpcString " Cpp means + " C Pre-Processor +hi def link lpcCommentL lpcComment +hi def link lpcCommentStart lpcComment +hi def link lpcUserLabel lpcLabel +hi def link lpcSpecialCharacter lpcSpecial +hi def link lpcOctal lpcPreProc +hi def link lpcOctalZero lpcSpecial " LPC will treat octal numbers + " as decimals, programmers should + " be aware of that. +hi def link lpcEfunError lpcError +hi def link lpcKeywdError lpcError +hi def link lpcOctalError lpcError +hi def link lpcParenError lpcError +hi def link lpcErrInParen lpcError +hi def link lpcErrInBracket lpcError +hi def link lpcCommentError lpcError +hi def link lpcCommentStartError lpcError +hi def link lpcSpaceError lpcError +hi def link lpcSpecialError lpcError +hi def link lpcErrFunc lpcError + +if exists("lpc_pre_v22") + hi def link lpcOldEfuns lpc_efuns + hi def link lpcNewEfuns lpcError +else + hi def link lpcOldEfuns lpcReserved + hi def link lpcNewEfuns lpc_efuns +endif +hi def link lpc_efuns lpcFunction + +hi def link lpcReserved lpcPreProc +hi def link lpcTextString lpcString " This should be preprocessors, but +hi def link lpcArrayString lpcPreProc " let's make some difference + " between text and array + +hi def link lpcIncluded lpcString +hi def link lpcCommentString lpcString +hi def link lpcComment2String lpcString +hi def link lpcCommentSkip lpcComment +hi def link lpcCommentFunc lpcComment + +hi def link lpcCppSkip lpcCppOut +hi def link lpcCppOut2 lpcCppOut +hi def link lpcCppOut lpcComment + +" Standard type below +hi def link lpcApplies Special +hi def link lpcCharacter Character +hi def link lpcComment Comment +hi def link lpcConditional Conditional +hi def link lpcConstant Constant +hi def link lpcDefine Macro +hi def link lpcError Error +hi def link lpcFloat Float +hi def link lpcFunction Function +hi def link lpcIdentifier Identifier +hi def link lpcInclude Include +hi def link lpcLabel Label +hi def link lpcNumber Number +hi def link lpcOperator Operator +hi def link lpcPreCondit PreCondit +hi def link lpcPreProc PreProc +hi def link lpcRepeat Repeat +hi def link lpcStatement Statement +hi def link lpcStorageClass StorageClass +hi def link lpcString String +hi def link lpcStructure Structure +hi def link lpcSpecial LineNr +hi def link lpcTodo Todo +hi def link lpcType Type + + +" Nodule: This is the end nodule. {{{1 + +let b:current_syntax = "lpc" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:ts=8:nosta:sw=2:ai:si: +" vim600:set fdm=marker: }}}1 diff --git a/runtime/syntax/lprolog.vim b/runtime/syntax/lprolog.vim new file mode 100644 index 0000000..85c3537 --- /dev/null +++ b/runtime/syntax/lprolog.vim @@ -0,0 +1,124 @@ +" Vim syntax file +" Language: LambdaProlog (Teyjus) +" Filenames: *.mod *.sig +" Maintainer: Markus Mottl +" URL: http://www.ocaml.info/vim/syntax/lprolog.vim +" Last Change: 2006 Feb 05 +" 2001 Apr 26 - Upgraded for new Vim version +" 2000 Jun 5 - Initial release + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Lambda Prolog is case sensitive. +syn case match + +syn match lprologBrackErr "\]" +syn match lprologParenErr ")" + +syn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName + +" Enclosing delimiters +syn region lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr +syn region lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr + +" General identifiers +syn match lprologIdentifier "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>" +syn match lprologVariable "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>" + +syn match lprologOperator "/" + +" Comments +syn region lprologComment start="/\*" end="\*/" contains=lprologComment,lprologTodo +syn region lprologComment start="%" end="$" contains=lprologTodo +syn keyword lprologTodo contained TODO FIXME XXX + +syn match lprologInteger "\<\d\+\>" +syn match lprologReal "\<\(\d\+\)\=\.\d+\>" +syn region lprologString start=+"+ skip=+\\\\\|\\"+ end=+"+ + +" Clause definitions +syn region lprologClause start="^\w\+" end=":-\|\." + +" Modules +syn region lprologModule matchgroup=lprologKeyword start="^\" matchgroup=lprologKeyword end="\." + +" Types +syn match lprologKeyword "^\" skipwhite nextgroup=lprologTypeNames +syn region lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator +syn match lprologTypeName "\<\w\+\>" contained + +" Keywords +syn keyword lprologKeyword end import accumulate accum_sig +syn keyword lprologKeyword local localkind closed sig +syn keyword lprologKeyword kind exportdef useonly +syn keyword lprologKeyword infixl infixr infix prefix +syn keyword lprologKeyword prefixr postfix postfixl + +syn keyword lprologSpecial pi sigma is true fail halt stop not + +" Operators +syn match lprologSpecial ":-" +syn match lprologSpecial "->" +syn match lprologSpecial "=>" +syn match lprologSpecial "\\" +syn match lprologSpecial "!" + +syn match lprologSpecial "," +syn match lprologSpecial ";" +syn match lprologSpecial "&" + +syn match lprologOperator "+" +syn match lprologOperator "-" +syn match lprologOperator "*" +syn match lprologOperator "\~" +syn match lprologOperator "\^" +syn match lprologOperator "<" +syn match lprologOperator ">" +syn match lprologOperator "=<" +syn match lprologOperator ">=" +syn match lprologOperator "::" +syn match lprologOperator "=" + +syn match lprologOperator "\." +syn match lprologOperator ":" +syn match lprologOperator "|" + +syn match lprologCommentErr "\*/" + +syn sync minlines=50 +syn sync maxlines=500 + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link lprologComment Comment +hi def link lprologTodo Todo + +hi def link lprologKeyword Keyword +hi def link lprologSpecial Special +hi def link lprologOperator Operator +hi def link lprologIdentifier Normal + +hi def link lprologInteger Number +hi def link lprologReal Number +hi def link lprologString String + +hi def link lprologCommentErr Error +hi def link lprologBrackErr Error +hi def link lprologParenErr Error + +hi def link lprologModuleName Special +hi def link lprologTypeName Identifier + +hi def link lprologVariable Keyword +hi def link lprologAtom Normal +hi def link lprologClause Type + + +let b:current_syntax = "lprolog" + +" vim: ts=8 diff --git a/runtime/syntax/lscript.vim b/runtime/syntax/lscript.vim new file mode 100644 index 0000000..3c4a0ff --- /dev/null +++ b/runtime/syntax/lscript.vim @@ -0,0 +1,200 @@ +" Vim syntax file +" Language: LotusScript +" Maintainer: Taryn East (taryneast@hotmail.com) +" Last Change: 2003 May 11 + +" This is a rough amalgamation of the visual basic syntax file, and the UltraEdit +" and Textpad syntax highlighters. +" It's not too brilliant given that a) I've never written a syntax.vim file before +" and b) I'm not so crash hot at LotusScript either. If you see any problems +" feel free to email me with them. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" LotusScript is case insensitive +syn case ignore + +" These are Notes thingies that had an equivalent in the vb highlighter +" or I was already familiar with them +syn keyword lscriptStatement ActivateApp As And Base Beep Call Case ChDir ChDrive Class +syn keyword lscriptStatement Const Dim Declare DefCur DefDbl DefInt DefLng DefSng DefStr +syn keyword lscriptStatement DefVar Do Else %Else ElseIf %ElseIf End %End Erase Event Exit +syn keyword lscriptStatement Explicit FileCopy FALSE For ForAll Function Get GoTo GoSub +syn keyword lscriptStatement If %If In Is Kill Let List Lock Loop MkDir +syn keyword lscriptStatement Name Next New NoCase NoPitch Not Nothing NULL +syn keyword lscriptStatement On Option Or PI Pitch Preserve Private Public +syn keyword lscriptStatement Property Public Put +syn keyword lscriptStatement Randomize ReDim Reset Resume Return RmDir +syn keyword lscriptStatement Select SendKeys SetFileAttr Set Static Sub Then To TRUE +syn keyword lscriptStatement Type Unlock Until While WEnd With Write XOr + +syn keyword lscriptDatatype Array Currency Double Integer Long Single String String$ Variant + +syn keyword lscriptNotesType Field Button Navigator +syn keyword lscriptNotesType NotesACL NotesACLEntry NotesAgent NotesDatabase NotesDateRange +syn keyword lscriptNotesType NotesDateTime NotesDbDirectory NotesDocument +syn keyword lscriptNotesType NotesDocumentCollection NotesEmbeddedObject NotesForm +syn keyword lscriptNotesType NotesInternational NotesItem NotesLog NotesName NotesNewsLetter +syn keyword lscriptNotesType NotesMIMEEntry NotesOutline NotesOutlineEntry NotesRegistration +syn keyword lscriptNotesType NotesReplication NotesRichTextItem NotesRichTextParagraphStyle +syn keyword lscriptNotesType NotesRichTextStyle NotesRichTextTab +syn keyword lscriptNotesType NotesSession NotesTimer NotesView NotesViewColumn NotesViewEntry +syn keyword lscriptNotesType NotesViewEntryCollection NotesViewNavigator NotesUIDatabase +syn keyword lscriptNotesType NotesUIDocument NotesUIView NotesUIWorkspace + +syn keyword lscriptNotesConst ACLLEVEL_AUTHOR ACLLEVEL_DEPOSITOR ACLLEVEL_DESIGNER +syn keyword lscriptNotesConst ACLLEVEL_EDITOR ACLLEVEL_MANAGER ACLLEVEL_NOACCESS +syn keyword lscriptNotesConst ACLLEVEL_READER ACLTYPE_MIXED_GROUP ACLTYPE_PERSON +syn keyword lscriptNotesConst ACLTYPE_PERSON_GROUP ACLTYPE_SERVER ACLTYPE_SERVER_GROUP +syn keyword lscriptNotesConst ACLTYPE_UNSPECIFIED ACTIONCD ALIGN_CENTER +syn keyword lscriptNotesConst ALIGN_FULL ALIGN_LEFT ALIGN_NOWRAP ALIGN_RIGHT +syn keyword lscriptNotesConst ASSISTANTINFO ATTACHMENT AUTHORS COLOR_BLACK +syn keyword lscriptNotesConst COLOR_BLUE COLOR_CYAN COLOR_DARK_BLUE COLOR_DARK_CYAN +syn keyword lscriptNotesConst COLOR_DARK_GREEN COLOR_DARK_MAGENTA COLOR_DARK_RED +syn keyword lscriptNotesConst COLOR_DARK_YELLOW COLOR_GRAY COLOR_GREEN COLOR_LIGHT_GRAY +syn keyword lscriptNotesConst COLOR_MAGENTA COLOR_RED COLOR_WHITE COLOR_YELLOW +syn keyword lscriptNotesConst DATABASE DATETIMES DB_REPLICATION_PRIORITY_HIGH +syn keyword lscriptNotesConst DB_REPLICATION_PRIORITY_LOW DB_REPLICATION_PRIORITY_MED +syn keyword lscriptNotesConst DB_REPLICATION_PRIORITY_NOTSET EFFECTS_EMBOSS +syn keyword lscriptNotesConst EFFECTS_EXTRUDE EFFECTS_NONE EFFECTS_SHADOW +syn keyword lscriptNotesConst EFFECTS_SUBSCRIPT EFFECTS_SUPERSCRIPT EMBED_ATTACHMENT +syn keyword lscriptNotesConst EMBED_OBJECT EMBED_OBJECTLINK EMBEDDEDOBJECT ERRORITEM +syn keyword lscriptNotesConst EV_ALARM EV_COMM EV_MAIL EV_MISC EV_REPLICA EV_RESOURCE +syn keyword lscriptNotesConst EV_SECURITY EV_SERVER EV_UNKNOWN EV_UPDATE FONT_COURIER +syn keyword lscriptNotesConst FONT_HELV FONT_ROMAN FORMULA FT_DATABASE FT_DATE_ASC +syn keyword lscriptNotesConst FT_DATE_DES FT_FILESYSTEM FT_FUZZY FT_SCORES FT_STEMS +syn keyword lscriptNotesConst FT_THESAURUS HTML ICON ID_CERTIFIER ID_FLAT +syn keyword lscriptNotesConst ID_HIERARCHICAL LSOBJECT MIME_PART NAMES NOTESLINKS +syn keyword lscriptNotesConst NOTEREFS NOTES_DESKTOP_CLIENT NOTES_FULL_CLIENT +syn keyword lscriptNotesConst NOTES_LIMITED_CLIENT NUMBERS OTHEROBJECT +syn keyword lscriptNotesConst OUTLINE_CLASS_DATABASE OUTLINE_CLASS_DOCUMENT +syn keyword lscriptNotesConst OUTLINE_CLASS_FOLDER OUTLINE_CLASS_FORM +syn keyword lscriptNotesConst OUTLINE_CLASS_FRAMESET OUTLINE_CLASS_NAVIGATOR +syn keyword lscriptNotesConst OUTLINE_CLASS_PAGE OUTLINE_CLASS_UNKNOWN +syn keyword lscriptNotesConst OUTLINE_CLASS_VIEW OUTLINE_OTHER_FOLDERS_TYPE +syn keyword lscriptNotesConst OUTLINE_OTHER_UNKNOWN_TYPE OUTLINE_OTHER_VIEWS_TYPE +syn keyword lscriptNotesConst OUTLINE_TYPE_ACTION OUTLINE_TYPE_NAMEDELEMENT +syn keyword lscriptNotesConst OUTLINE_TYPE_NOTELINK OUTLINE_TYPE_URL PAGINATE_BEFORE +syn keyword lscriptNotesConst PAGINATE_DEFAULT PAGINATE_KEEP_TOGETHER +syn keyword lscriptNotesConst PAGINATE_KEEP_WITH_NEXT PICKLIST_CUSTOM PICKLIST_NAMES +syn keyword lscriptNotesConst PICKLIST_RESOURCES PICKLIST_ROOMS PROMPT_OK PROMPT_OKCANCELCOMBO +syn keyword lscriptNotesConst PROMPT_OKCANCELEDIT PROMPT_OKCANCELEDITCOMBO PROMPT_OKCANCELLIST +syn keyword lscriptNotesConst PROMPT_OKCANCELLISTMULT PROMPT_PASSWORD PROMPT_YESNO +syn keyword lscriptNotesConst PROMPT_YESNOCANCEL QUERYCD READERS REPLICA_CANDIDATE +syn keyword lscriptNotesConst RICHTEXT RULER_ONE_CENTIMETER RULER_ONE_INCH SEV_FAILURE +syn keyword lscriptNotesConst SEV_FATAL SEV_NORMAL SEV_WARNING1 SEV_WARNING2 +syn keyword lscriptNotesConst SIGNATURE SPACING_DOUBLE SPACING_ONE_POINT_50 +syn keyword lscriptNotesConst SPACING_SINGLE STYLE_NO_CHANGE TAB_CENTER TAB_DECIMAL +syn keyword lscriptNotesConst TAB_LEFT TAB_RIGHT TARGET_ALL_DOCS TARGET_ALL_DOCS_IN_VIEW +syn keyword lscriptNotesConst TARGET_NEW_DOCS TARGET_NEW_OR_MODIFIED_DOCS TARGET_NONE +syn keyword lscriptNotesConst TARGET_RUN_ONCE TARGET_SELECTED_DOCS TARGET_UNREAD_DOCS_IN_VIEW +syn keyword lscriptNotesConst TEMPLATE TEMPLATE_CANDIDATE TEXT TRIGGER_AFTER_MAIL_DELIVERY +syn keyword lscriptNotesConst TRIGGER_BEFORE_MAIL_DELIVERY TRIGGER_DOC_PASTED +syn keyword lscriptNotesConst TRIGGER_DOC_UPDATE TRIGGER_MANUAL TRIGGER_NONE +syn keyword lscriptNotesConst TRIGGER_SCHEDULED UNAVAILABLE UNKNOWN USERDATA +syn keyword lscriptNotesConst USERID VC_ALIGN_CENTER VC_ALIGN_LEFT VC_ALIGN_RIGHT +syn keyword lscriptNotesConst VC_ATTR_PARENS VC_ATTR_PUNCTUATED VC_ATTR_PERCENT +syn keyword lscriptNotesConst VC_FMT_ALWAYS VC_FMT_CURRENCY VC_FMT_DATE VC_FMT_DATETIME +syn keyword lscriptNotesConst VC_FMT_FIXED VC_FMT_GENERAL VC_FMT_HM VC_FMT_HMS +syn keyword lscriptNotesConst VC_FMT_MD VC_FMT_NEVER VC_FMT_SCIENTIFIC +syn keyword lscriptNotesConst VC_FMT_SOMETIMES VC_FMT_TIME VC_FMT_TODAYTIME VC_FMT_YM +syn keyword lscriptNotesConst VC_FMT_YMD VC_FMT_Y4M VC_FONT_BOLD VC_FONT_ITALIC +syn keyword lscriptNotesConst VC_FONT_STRIKEOUT VC_FONT_UNDERLINE VC_SEP_COMMA +syn keyword lscriptNotesConst VC_SEP_NEWLINE VC_SEP_SEMICOLON VC_SEP_SPACE +syn keyword lscriptNotesConst VIEWMAPDATA VIEWMAPLAYOUT VW_SPACING_DOUBLE +syn keyword lscriptNotesConst VW_SPACING_ONE_POINT_25 VW_SPACING_ONE_POINT_50 +syn keyword lscriptNotesConst VW_SPACING_ONE_POINT_75 VW_SPACING_SINGLE + +syn keyword lscriptFunction Abs Asc Atn Atn2 ACos ASin +syn keyword lscriptFunction CCur CDat CDbl Chr Chr$ CInt CLng Command Command$ +syn keyword lscriptFunction Cos CSng CStr +syn keyword lscriptFunction CurDir CurDir$ CVar Date Date$ DateNumber DateSerial DateValue +syn keyword lscriptFunction Day Dir Dir$ Environ$ Environ EOF Error Error$ Evaluate Exp +syn keyword lscriptFunction FileAttr FileDateTime FileLen Fix Format Format$ FreeFile +syn keyword lscriptFunction GetFileAttr GetThreadInfo Hex Hex$ Hour +syn keyword lscriptFunction IMESetMode IMEStatus Input Input$ InputB InputB$ +syn keyword lscriptFunction InputBP InputBP$ InputBox InputBox$ InStr InStrB InStrBP InstrC +syn keyword lscriptFunction IsA IsArray IsDate IsElement IsList IsNumeric +syn keyword lscriptFunction IsObject IsResponse IsScalar IsUnknown LCase LCase$ +syn keyword lscriptFunction Left Left$ LeftB LeftB$ LeftC +syn keyword lscriptFunction LeftBP LeftBP$ Len LenB LenBP LenC Loc LOF Log +syn keyword lscriptFunction LSet LTrim LTrim$ MessageBox Mid Mid$ MidB MidB$ MidC +syn keyword lscriptFunction Minute Month Now Oct Oct$ Responses Right Right$ +syn keyword lscriptFunction RightB RightB$ RightBP RightBP$ RightC Round Rnd RSet RTrim RTrim$ +syn keyword lscriptFunction Second Seek Sgn Shell Sin Sleep Space Space$ Spc Sqr Str Str$ +syn keyword lscriptFunction StrConv StrLeft StrleftBack StrRight StrRightBack +syn keyword lscriptFunction StrCompare Tab Tan Time Time$ TimeNumber Timer +syn keyword lscriptFunction TimeValue Trim Trim$ Today TypeName UCase UCase$ +syn keyword lscriptFunction UniversalID Val Weekday Year + +syn keyword lscriptMethods AppendToTextList ArrayAppend ArrayReplace ArrayGetIndex +syn keyword lscriptMethods Append Bind Close +"syn keyword lscriptMethods Contains +syn keyword lscriptMethods CopyToDatabase CopyAllItems Count CurrentDatabase Delete Execute +syn keyword lscriptMethods GetAllDocumentsByKey GetDatabase GetDocumentByKey +syn keyword lscriptMethods GetDocumentByUNID GetFirstDocument GetFirstItem +syn keyword lscriptMethods GetItems GetItemValue GetNthDocument GetView +syn keyword lscriptMethods IsEmpty IsNull %Include Items +syn keyword lscriptMethods Line LBound LoadMsgText Open Print +syn keyword lscriptMethods RaiseEvent ReplaceItemValue Remove RemoveItem Responses +syn keyword lscriptMethods Save Stop UBound UnprocessedDocuments Write + +syn keyword lscriptEvents Compare OnError + +"************************************************************************************* +"These are Notes thingies that I'm not sure how to classify as they had no vb equivalent +" At a wild guess I'd put them as Functions... +" if anyone sees something really out of place... tell me! + +syn keyword lscriptFunction Access Alias Any Bin Bin$ Binary ByVal +syn keyword lscriptFunction CodeLock CodeLockCheck CodeUnlock CreateLock +syn keyword lscriptFunction CurDrive CurDrive$ DataType DestroyLock Eqv +syn keyword lscriptFunction Erl Err Fraction From FromFunction FullTrim +syn keyword lscriptFunction Imp Int Lib Like ListTag LMBCS LSServer Me +syn keyword lscriptFunction Mod MsgDescription MsgText Output Published +syn keyword lscriptFunction Random Read Shared Step UChr UChr$ Uni Unicode +syn keyword lscriptFunction Until Use UseLSX UString UString$ Width Yield + + +syn keyword lscriptTodo contained TODO + +"integer number, or floating point number without a dot. +syn match lscriptNumber "\<\d\+\>" +"floating point number, with dot +syn match lscriptNumber "\<\d\+\.\d*\>" +"floating point number, starting with a dot +syn match lscriptNumber "\.\d\+\>" + +" String and Character constants +syn region lscriptString start=+"+ end=+"+ +syn region lscriptComment start="REM" end="$" contains=lscriptTodo +syn region lscriptComment start="'" end="$" contains=lscriptTodo +syn region lscriptLineNumber start="^\d" end="\s" +syn match lscriptTypeSpecifier "[a-zA-Z0-9][\$%&!#]"ms=s+1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi lscriptNotesType term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold + +hi def link lscriptNotesConst lscriptNotesType +hi def link lscriptLineNumber Comment +hi def link lscriptDatatype Type +hi def link lscriptNumber Number +hi def link lscriptError Error +hi def link lscriptStatement Statement +hi def link lscriptString String +hi def link lscriptComment Comment +hi def link lscriptTodo Todo +hi def link lscriptFunction Identifier +hi def link lscriptMethods PreProc +hi def link lscriptEvents Special +hi def link lscriptTypeSpecifier Type + + +let b:current_syntax = "lscript" + +" vim: ts=8 diff --git a/runtime/syntax/lsl.vim b/runtime/syntax/lsl.vim new file mode 100644 index 0000000..3b2baa0 --- /dev/null +++ b/runtime/syntax/lsl.vim @@ -0,0 +1,277 @@ +" Vim syntax file +" Language: Linden Scripting Language +" Maintainer: Timo Frenay +" Last Change: 2012 Apr 30 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +" Initializations +syn case match + +" Keywords +syn keyword lslKeyword default do else for if jump return state while + +" Types +syn keyword lslType float integer key list quaternion rotation string vector + +" Labels +syn match lslLabel +@\h\w*+ display + +" Constants +syn keyword lslConstant +\ ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY +\ AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT +\ AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON +\ ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_HEAD +\ ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT +\ ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER +\ ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LFOOT +\ ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LPEC +\ ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE +\ ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP +\ ATTACH_RLARM ATTACH_RLLEG ATTACH_RPEC ATTACH_RSHOULDER ATTACH_RUARM +\ ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG +\ CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED +\ CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION +\ CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD +\ CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK +\ CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT +\ CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN +\ CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT +\ CLICK_ACTION_TOUCH CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON +\ CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT +\ CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO +\ DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL +\ DEG_TO_RAD EOF FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD +\ HTTP_MIMETYPE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION +\ INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK +\ INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT +\ INVENTORY_SOUND INVENTORY_TEXTURE LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER +\ LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH +\ LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS +\ LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN +\ LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV +\ LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP MASK_BASE MASK_EVERYONE MASK_GROUP +\ MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP +\ OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL +\ OBJECT_VELOCITY PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER +\ PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA +\ PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_NAME +\ PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY +\ PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS +\ PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY +\ PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS +\ PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS +\ PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY +\ PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP +\ PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST +\ PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT +\ PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC +\ PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET +\ PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE +\ PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE +\ PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE +\ PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE +\ PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERM_ALL PERM_COPY +\ PERM_MODIFY PERM_MOVE PERM_TRANSFER PERMISSION_ATTACH PERMISSION_CHANGE_LINKS +\ PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_TAKE_CONTROLS +\ PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PI PI_BY_TWO PING_PONG +\ PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT +\ PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS +\ PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY +\ PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION +\ PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_CAST_SHADOWS PRIM_COLOR +\ PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT +\ PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_MATERIAL PRIM_MATERIAL_FLESH +\ PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL +\ PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE +\ PRIM_MATERIAL_WOOD PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION +\ PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_PLANE +\ PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW +\ PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN +\ PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX +\ PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_CYLINDER PRIM_TYPE_LEGACY +\ PRIM_TYPE_PRISM PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT +\ PRIM_TYPE_SPHERE PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TORUS +\ PRIM_TYPE_TUBE PRIM_TYPE_TUBE PSYS_PART_BEAM_MASK PSYS_PART_BOUNCE_MASK +\ PSYS_PART_DEAD_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA +\ PSYS_PART_END_COLOR PSYS_PART_END_SCALE PSYS_PART_FLAGS +\ PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK +\ PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE +\ PSYS_PART_RANDOM_ACCEL_MASK PSYS_PART_RANDOM_VEL_MASK PSYS_PART_START_ALPHA +\ PSYS_PART_START_COLOR PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK +\ PSYS_PART_TARGET_POS_MASK PSYS_PART_TRAIL_MASK PSYS_PART_WIND_MASK +\ PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END +\ PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE +\ PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE +\ PSYS_SRC_MAX_AGE PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN +\ PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE +\ PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP +\ PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL +\ RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT +\ REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM +\ REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS +\ REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX +\ REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE +\ SCRIPTED SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE +\ STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X +\ STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STRING_TRIM STRING_TRIM_HEAD +\ STRING_TRIM_TAIL TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY +\ TYPE_ROTATION TYPE_STRING TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY +\ VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE +\ VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION +\ VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX +\ VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED +\ VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY +\ VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY +\ VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY +\ VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER +\ VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT +\ VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY +\ VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE +\ VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_TIMESCALE +\ VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET +\ VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON +\ VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED +\ VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE +\ ZERO_ROTATION ZERO_VECTOR + +" Events +syn keyword lslEvent +\ attach at_rot_target at_target changed collision collision_end collision_start +\ control dataserver email http_response land_collision land_collision_end +\ land_collision_start link_message listen money moving_end moving_start +\ not_at_rot_target no_sensor object_rez on_rez remote_data run_time_permissions +\ sensor state_entry state_exit timer touch touch_end touch_start not_at_target + +" Functions +syn keyword lslFunction +\ llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume +\ llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse +\ llAsin llAtan2 llAttachToAvatar llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot +\ llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCSV2List +\ llCeil llClearCameraParams llCloseRemoteDataChannel llCloud llCollisionFilter +\ llCollisionSound llCollisionSprite llCos llCreateLink llDeleteSubList +\ llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup +\ llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner +\ llDetectedPos llDetectedRot llDetectedType llDetectedVel llDialog llDie +\ llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL +\ llEuler2Rot llFabs llFloor llForceMouselook llFrand llGetAccel llGetAgentInfo +\ llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList +\ llGetAttached llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass +\ llGetColor llGetCreator llGetDate llGetEnergy llGetForce llGetFreeMemory +\ llGetGMTclock llGetGeometricCenter llGetInventoryCreator llGetInventoryKey +\ llGetInventoryName llGetInventoryNumber llGetInventoryPermMask +\ llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkName +\ llGetLinkNumber llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot +\ llGetMass llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines +\ llGetNumberOfPrims llGetNumberOfSides llGetObjectDesc llGetObjectDetails +\ llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount +\ llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags +\ llGetParcelMaxPrims llGetParcelPrimCount llGetParcelPrimOwners +\ llGetPermissions llGetPermissionsKey llGetPos llGetPrimitiveParams +\ llGetRegionCorner llGetRegionFPS llGetRegionFlags llGetRegionName +\ llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot +\ llGetScale llGetScriptName llGetScriptState llGetSimulatorHostname +\ llGetStartParameter llGetStatus llGetSubString llGetSunDirection llGetTexture +\ llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay +\ llGetTimestamp llGetTorque llGetUnixTime llGetVel llGetWallclock +\ llGiveInventory llGiveInventoryList llGiveMoney llGodLikeRezObject llGround +\ llGroundContour llGroundNormal llGroundRepel llGroundSlope llHTTPRequest +\ llInsertString llInstantMessage llIntegerToBase64 llKey2Name llList2CSV +\ llList2Float llList2Integer llList2Key llList2List llList2ListStrided +\ llList2Rot llList2String llList2Vector llListFindList llListInsertList +\ llListRandomize llListReplaceList llListSort llListStatistics llListen +\ llListenControl llListenRemove llLoadURL llLog llLog10 llLookAt llLoopSound +\ llLoopSoundMaster llLoopSoundSlave llMD5String llMakeExplosion llMakeFire +\ llMakeFountain llMakeSmoke llMapDestination llMessageLinked llMinEventDelay +\ llModPow llModifyLand llMoveToTarget llOffsetTexture llOpenRemoteDataChannel +\ llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery +\ llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions +\ llPassTouches llPlaySound llPlaySoundSlave llPointAt llPow llPreloadSound +\ llPushObject llRefreshPrimURL llRegionSay llReleaseCamera llReleaseControls +\ llRemoteDataReply llRemoteDataSetRegion llRemoteLoadScript +\ llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList +\ llRemoveInventory llRemoveVehicleFlags llRequestAgentData +\ llRequestInventoryData llRequestPermissions llRequestSimulatorData +\ llResetLandBanList llResetLandPassList llResetOtherScript llResetScript +\ llResetTime llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler +\ llRot2Fwd llRot2Left llRot2Up llRotBetween llRotLookAt llRotTarget +\ llRotTargetRemove llRotateTexture llRound llSameGroup llSay llScaleTexture +\ llScriptDanger llSendRemoteData llSensor llSensorRemove llSensorRepeat +\ llSetAlpha llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset +\ llSetCameraParams llSetClickAction llSetColor llSetDamage llSetForce +\ llSetForceAndTorque llSetHoverHeight llSetInventoryPermMask llSetLinkAlpha +\ llSetLinkColor llSetLinkPrimitiveParams llSetLinkTexture llSetLocalRot +\ llSetObjectDesc llSetObjectName llSetObjectPermMask llSetParcelMusicURL +\ llSetPayPrice llSetPos llSetPrimURL llSetPrimitiveParams +\ llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText +\ llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture +\ llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags +\ llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType +\ llSetVehicleVectorParam llShout llSin llSitTarget llSleep llSound +\ llSoundPreload llSqrt llStartAnimation llStopAnimation llStopHover +\ llStopLookAt llStopMoveToTarget llStopPointAt llStopSound llStringLength +\ llStringToBase64 llStringTrim llSubStringIndex llTakeCamera llTakeControls +\ llTan llTarget llTargetOmega llTargetRemove llTeleportAgentHome llToLower +\ llToUpper llTriggerSound llTriggerSoundLimited llUnSit llUnescapeURL llVecDist +\ llVecMag llVecNorm llVolumeDetect llWater llWhisper llWind llXorBase64Strings +\ llXorBase64StringsCorrect + +" Operators +syn match lslOperator +[-!%&*+/<=>^|~]+ display + +" Numbers +syn match lslNumber +-\=\%(\<\d\+\|\%(\<\d\+\)\=\.\d\+\)\%([Ee][-+]\=\d\+\)\=\>\|\<0x\x\+\>+ display + +" Vectors and rotations +syn match lslVectorRot +<[-\t +.0-9A-Za-z_]\+\%(,[-\t +.0-9A-Za-z_]\+\)\{2,3}>+ contains=lslNumber display + +" Vector and rotation properties +syn match lslProperty +\.\@<=[sxyz]\>+ display + +" Strings +syn region lslString start=+"+ skip=+\\.+ end=+"+ contains=lslSpecialChar,@Spell +syn match lslSpecialChar +\\.+ contained display + +" Keys +syn match lslKey +"\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}"+ display + +" Parentheses, braces and brackets +syn match lslBlock +[][(){}]+ display + +" Typecast operators +syn match lslTypecast +(\%(float\|integer\|key\|list\|quaternion\|rotation\|string\|vector\))+ contains=lslType display + +" Comments +syn match lslComment +//.*+ contains=@Spell + +" Define the default highlighting. +hi def link lslKeyword Keyword +hi def link lslType Type +hi def link lslLabel Label +hi def link lslConstant Constant +hi def link lslEvent PreProc +hi def link lslFunction Function +hi def link lslOperator Operator +hi def link lslNumber Number +hi def link lslVectorRot Special +hi def link lslProperty Identifier +hi def link lslString String +hi def link lslSpecialChar SpecialChar +hi def link lslKey Special +hi def link lslBlock Special +hi def link lslTypecast Operator +hi def link lslComment Comment + +let b:current_syntax = "lsl" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: ts=8 diff --git a/runtime/syntax/lss.vim b/runtime/syntax/lss.vim new file mode 100644 index 0000000..eceaf75 --- /dev/null +++ b/runtime/syntax/lss.vim @@ -0,0 +1,123 @@ +" Vim syntax file +" Language: Lynx 2.7.1 style file +" Maintainer: Scott Bigham +" Last Change: 2004 Oct 06 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" This setup is probably atypical for a syntax highlighting file, because +" most of it is not really intended to be overridable. Instead, the +" highlighting is supposed to correspond to the highlighting specified by +" the .lss file entries themselves; ie. the "bold" keyword should be bold, +" the "red" keyword should be red, and so forth. The exceptions to this +" are comments, of course, and the initial keyword identifying the affected +" element, which will inherit the usual Identifier highlighting. + +syn match lssElement "^[^:]\+" nextgroup=lssMono + +syn match lssMono ":[^:]\+" contained nextgroup=lssFgColor contains=lssReverse,lssUnderline,lssBold,lssStandout + +syn keyword lssBold bold contained +syn keyword lssReverse reverse contained +syn keyword lssUnderline underline contained +syn keyword lssStandout standout contained + +syn match lssFgColor ":[^:]\+" contained nextgroup=lssBgColor contains=lssRedFg,lssBlueFg,lssGreenFg,lssBrownFg,lssMagentaFg,lssCyanFg,lssLightgrayFg,lssGrayFg,lssBrightredFg,lssBrightgreenFg,lssYellowFg,lssBrightblueFg,lssBrightmagentaFg,lssBrightcyanFg + +syn case ignore +syn keyword lssRedFg red contained +syn keyword lssBlueFg blue contained +syn keyword lssGreenFg green contained +syn keyword lssBrownFg brown contained +syn keyword lssMagentaFg magenta contained +syn keyword lssCyanFg cyan contained +syn keyword lssLightgrayFg lightgray contained +syn keyword lssGrayFg gray contained +syn keyword lssBrightredFg brightred contained +syn keyword lssBrightgreenFg brightgreen contained +syn keyword lssYellowFg yellow contained +syn keyword lssBrightblueFg brightblue contained +syn keyword lssBrightmagentaFg brightmagenta contained +syn keyword lssBrightcyanFg brightcyan contained +syn case match + +syn match lssBgColor ":[^:]\+" contained contains=lssRedBg,lssBlueBg,lssGreenBg,lssBrownBg,lssMagentaBg,lssCyanBg,lssLightgrayBg,lssGrayBg,lssBrightredBg,lssBrightgreenBg,lssYellowBg,lssBrightblueBg,lssBrightmagentaBg,lssBrightcyanBg,lssWhiteBg + +syn case ignore +syn keyword lssRedBg red contained +syn keyword lssBlueBg blue contained +syn keyword lssGreenBg green contained +syn keyword lssBrownBg brown contained +syn keyword lssMagentaBg magenta contained +syn keyword lssCyanBg cyan contained +syn keyword lssLightgrayBg lightgray contained +syn keyword lssGrayBg gray contained +syn keyword lssBrightredBg brightred contained +syn keyword lssBrightgreenBg brightgreen contained +syn keyword lssYellowBg yellow contained +syn keyword lssBrightblueBg brightblue contained +syn keyword lssBrightmagentaBg brightmagenta contained +syn keyword lssBrightcyanBg brightcyan contained +syn keyword lssWhiteBg white contained +syn case match + +syn match lssComment "#.*$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link lssComment Comment +hi def link lssElement Identifier + +hi def lssBold term=bold cterm=bold +hi def lssReverse term=reverse cterm=reverse +hi def lssUnderline term=underline cterm=underline +hi def lssStandout term=standout cterm=standout + +hi def lssRedFg ctermfg=red +hi def lssBlueFg ctermfg=blue +hi def lssGreenFg ctermfg=green +hi def lssBrownFg ctermfg=brown +hi def lssMagentaFg ctermfg=magenta +hi def lssCyanFg ctermfg=cyan +hi def lssGrayFg ctermfg=gray +if $COLORTERM == "rxvt" + " On rxvt's, bright colors are activated by setting the bold attribute. + hi def lssLightgrayFg ctermfg=gray cterm=bold + hi def lssBrightredFg ctermfg=red cterm=bold + hi def lssBrightgreenFg ctermfg=green cterm=bold + hi def lssYellowFg ctermfg=yellow cterm=bold + hi def lssBrightblueFg ctermfg=blue cterm=bold + hi def lssBrightmagentaFg ctermfg=magenta cterm=bold + hi def lssBrightcyanFg ctermfg=cyan cterm=bold +else + hi def lssLightgrayFg ctermfg=lightgray + hi def lssBrightredFg ctermfg=lightred + hi def lssBrightgreenFg ctermfg=lightgreen + hi def lssYellowFg ctermfg=yellow + hi def lssBrightblueFg ctermfg=lightblue + hi def lssBrightmagentaFg ctermfg=lightmagenta + hi def lssBrightcyanFg ctermfg=lightcyan +endif + +hi def lssRedBg ctermbg=red +hi def lssBlueBg ctermbg=blue +hi def lssGreenBg ctermbg=green +hi def lssBrownBg ctermbg=brown +hi def lssMagentaBg ctermbg=magenta +hi def lssCyanBg ctermbg=cyan +hi def lssLightgrayBg ctermbg=lightgray +hi def lssGrayBg ctermbg=gray +hi def lssBrightredBg ctermbg=lightred +hi def lssBrightgreenBg ctermbg=lightgreen +hi def lssYellowBg ctermbg=yellow +hi def lssBrightblueBg ctermbg=lightblue +hi def lssBrightmagentaBg ctermbg=lightmagenta +hi def lssBrightcyanBg ctermbg=lightcyan +hi def lssWhiteBg ctermbg=white ctermfg=black + +let b:current_syntax = "lss" + +" vim: ts=8 diff --git a/runtime/syntax/lua.vim b/runtime/syntax/lua.vim new file mode 100644 index 0000000..9c5a490 --- /dev/null +++ b/runtime/syntax/lua.vim @@ -0,0 +1,442 @@ +" Vim syntax file +" Language: Lua 4.0, Lua 5.0, Lua 5.1, Lua 5.2 and Lua 5.3 +" Maintainer: Marcus Aurelius Farias +" First Author: Carlos Augusto Teixeira Mendes +" Last Change: 2022 Sep 07 +" Options: lua_version = 4 or 5 +" lua_subversion = 0 (for 4.0 or 5.0) +" or 1, 2, 3 (for 5.1, 5.2 or 5.3) +" the default is 5.3 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +if !exists("lua_version") + " Default is lua 5.3 + let lua_version = 5 + let lua_subversion = 3 +elseif !exists("lua_subversion") + " lua_version exists, but lua_subversion doesn't. In this case set it to 0 + let lua_subversion = 0 +endif + +syn case match + +" syncing method +syn sync minlines=1000 + +if lua_version >= 5 + syn keyword luaMetaMethod __add __sub __mul __div __pow __unm __concat + syn keyword luaMetaMethod __eq __lt __le + syn keyword luaMetaMethod __index __newindex __call + syn keyword luaMetaMethod __metatable __mode __gc __tostring +endif + +if lua_version > 5 || (lua_version == 5 && lua_subversion >= 1) + syn keyword luaMetaMethod __mod __len +endif + +if lua_version > 5 || (lua_version == 5 && lua_subversion >= 2) + syn keyword luaMetaMethod __pairs +endif + +if lua_version > 5 || (lua_version == 5 && lua_subversion >= 3) + syn keyword luaMetaMethod __idiv __name + syn keyword luaMetaMethod __band __bor __bxor __bnot __shl __shr +endif + +if lua_version > 5 || (lua_version == 5 && lua_subversion >= 4) + syn keyword luaMetaMethod __close +endif + +" catch errors caused by wrong parenthesis and wrong curly brackets or +" keywords placed outside their respective blocks + +syn region luaParen transparent start='(' end=')' contains=TOP,luaParenError +syn match luaParenError ")" +syn match luaError "}" +syn match luaError "\<\%(end\|else\|elseif\|then\|until\|in\)\>" + +" Function declaration +syn region luaFunctionBlock transparent matchgroup=luaFunction start="\" end="\" contains=TOP + +" else +syn keyword luaCondElse matchgroup=luaCond contained containedin=luaCondEnd else + +" then ... end +syn region luaCondEnd contained transparent matchgroup=luaCond start="\" end="\" contains=TOP + +" elseif ... then +syn region luaCondElseif contained containedin=luaCondEnd transparent matchgroup=luaCond start="\" end="\" contains=TOP + +" if ... then +syn region luaCondStart transparent matchgroup=luaCond start="\" end="\"me=e-4 contains=TOP nextgroup=luaCondEnd skipwhite skipempty + +" do ... end +syn region luaBlock transparent matchgroup=luaStatement start="\" end="\" contains=TOP +" repeat ... until +syn region luaRepeatBlock transparent matchgroup=luaRepeat start="\" end="\" contains=TOP + +" while ... do +syn region luaWhile transparent matchgroup=luaRepeat start="\" end="\"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty + +" for ... do and for ... in ... do +syn region luaFor transparent matchgroup=luaRepeat start="\" end="\"me=e-2 contains=TOP nextgroup=luaBlock skipwhite skipempty + +syn keyword luaFor contained containedin=luaFor in + +" other keywords +syn keyword luaStatement return local break +if lua_version > 5 || (lua_version == 5 && lua_subversion >= 2) + syn keyword luaStatement goto + syn match luaLabel "::\I\i*::" +endif + +" operators +syn keyword luaOperator and or not + +if (lua_version == 5 && lua_subversion >= 3) || lua_version > 5 + syn match luaSymbolOperator "[#<>=~^&|*/%+-]\|\.\{2,3}" +elseif lua_version == 5 && (lua_subversion == 1 || lua_subversion == 2) + syn match luaSymbolOperator "[#<>=~^*/%+-]\|\.\{2,3}" +else + syn match luaSymbolOperator "[<>=~^*/+-]\|\.\{2,3}" +endif + +" comments +syn keyword luaTodo contained TODO FIXME XXX +syn match luaComment "--.*$" contains=luaTodo,@Spell +if lua_version == 5 && lua_subversion == 0 + syn region luaComment matchgroup=luaCommentDelimiter start="--\[\[" end="\]\]" contains=luaTodo,luaInnerComment,@Spell + syn region luaInnerComment contained transparent start="\[\[" end="\]\]" +elseif lua_version > 5 || (lua_version == 5 && lua_subversion >= 1) + " Comments in Lua 5.1: --[[ ... ]], [=[ ... ]=], [===[ ... ]===], etc. + syn region luaComment matchgroup=luaCommentDelimiter start="--\[\z(=*\)\[" end="\]\z1\]" contains=luaTodo,@Spell +endif + +" first line may start with #! +syn match luaComment "\%^#!.*" + +syn keyword luaConstant nil +if lua_version > 4 + syn keyword luaConstant true false +endif + +" strings +syn match luaSpecial contained #\\[\\abfnrtv'"[\]]\|\\[[:digit:]]\{,3}# +if lua_version == 5 + if lua_subversion == 0 + syn region luaString2 matchgroup=luaStringDelimiter start=+\[\[+ end=+\]\]+ contains=luaString2,@Spell + else + if lua_subversion >= 2 + syn match luaSpecial contained #\\z\|\\x[[:xdigit:]]\{2}# + endif + if lua_subversion >= 3 + syn match luaSpecial contained #\\u{[[:xdigit:]]\+}# + endif + syn region luaString2 matchgroup=luaStringDelimiter start="\[\z(=*\)\[" end="\]\z1\]" contains=@Spell + endif +endif +syn region luaString matchgroup=luaStringDelimiter start=+'+ end=+'+ skip=+\\\\\|\\'+ contains=luaSpecial,@Spell +syn region luaString matchgroup=luaStringDelimiter start=+"+ end=+"+ skip=+\\\\\|\\"+ contains=luaSpecial,@Spell + +" integer number +syn match luaNumber "\<\d\+\>" +" floating point number, with dot, optional exponent +syn match luaNumber "\<\d\+\.\d*\%([eE][-+]\=\d\+\)\=" +" floating point number, starting with a dot, optional exponent +syn match luaNumber "\.\d\+\%([eE][-+]\=\d\+\)\=\>" +" floating point number, without dot, with exponent +syn match luaNumber "\<\d\+[eE][-+]\=\d\+\>" + +" hex numbers +if lua_version >= 5 + if lua_subversion == 1 + syn match luaNumber "\<0[xX]\x\+\>" + elseif lua_subversion >= 2 + syn match luaNumber "\<0[xX][[:xdigit:].]\+\%([pP][-+]\=\d\+\)\=\>" + endif +endif + +" tables +syn region luaTableBlock transparent matchgroup=luaTable start="{" end="}" contains=TOP,luaStatement + +" methods +syntax match luaFunc ":\@<=\k\+" + +" built-in functions +syn keyword luaFunc assert collectgarbage dofile error next +syn keyword luaFunc print rawget rawset self tonumber tostring type _VERSION + +if lua_version == 4 + syn keyword luaFunc _ALERT _ERRORMESSAGE gcinfo + syn keyword luaFunc call copytagmethods dostring + syn keyword luaFunc foreach foreachi getglobal getn + syn keyword luaFunc gettagmethod globals newtag + syn keyword luaFunc setglobal settag settagmethod sort + syn keyword luaFunc tag tinsert tremove + syn keyword luaFunc _INPUT _OUTPUT _STDIN _STDOUT _STDERR + syn keyword luaFunc openfile closefile flush seek + syn keyword luaFunc setlocale execute remove rename tmpname + syn keyword luaFunc getenv date clock exit + syn keyword luaFunc readfrom writeto appendto read write + syn keyword luaFunc PI abs sin cos tan asin + syn keyword luaFunc acos atan atan2 ceil floor + syn keyword luaFunc mod frexp ldexp sqrt min max log + syn keyword luaFunc log10 exp deg rad random + syn keyword luaFunc randomseed strlen strsub strlower strupper + syn keyword luaFunc strchar strrep ascii strbyte + syn keyword luaFunc format strfind gsub + syn keyword luaFunc getinfo getlocal setlocal setcallhook setlinehook +elseif lua_version == 5 + syn keyword luaFunc getmetatable setmetatable + syn keyword luaFunc ipairs pairs + syn keyword luaFunc pcall xpcall + syn keyword luaFunc _G loadfile rawequal require + if lua_subversion == 0 + syn keyword luaFunc getfenv setfenv + syn keyword luaFunc loadstring unpack + syn keyword luaFunc gcinfo loadlib LUA_PATH _LOADED _REQUIREDNAME + else + syn keyword luaFunc load select + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion == 1 + syn keyword luaFunc getfenv setfenv + syn keyword luaFunc loadstring module unpack + syn match luaFunc /\/ + syn match luaFunc /\/ + elseif lua_subversion >= 2 + syn keyword luaFunc _ENV rawlen + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + + if lua_subversion >= 3 + syn match luaFunc /\/ + endif + if lua_subversion >= 4 + syn keyword luaFunc warn + syn match luaFunc /\/ + endif + syn match luaFunc /\/ + endif + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion == 0 + syn match luaFunc /\/ + else + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + if lua_subversion >= 3 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + + if lua_subversion == 0 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + elseif lua_subversion == 1 + syn match luaFunc /\/ + elseif lua_subversion >= 2 + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion >= 3 + syn match luaFunc /\/ + endif + endif + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + + if lua_subversion == 2 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion < 3 + syn match luaFunc /\/ + endif + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion == 0 + syn match luaFunc /\/ + syn match luaFunc /\/ + elseif lua_subversion == 1 + syn match luaFunc /\/ + endif + if lua_subversion >= 1 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion == 1 || lua_subversion == 2 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + endif + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion < 3 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + else + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion == 1 + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + if lua_subversion >= 1 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + if lua_subversion >= 2 + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + syn match luaFunc /\/ + endif + if lua_subversion >= 4 + syn match luaFunc /\/ + endif + endif +endif + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link luaStatement Statement +hi def link luaRepeat Repeat +hi def link luaFor Repeat +hi def link luaString String +hi def link luaString2 String +hi def link luaStringDelimiter luaString +hi def link luaNumber Number +hi def link luaOperator Operator +hi def link luaSymbolOperator luaOperator +hi def link luaConstant Constant +hi def link luaCond Conditional +hi def link luaCondElse Conditional +hi def link luaFunction Function +hi def link luaMetaMethod Function +hi def link luaComment Comment +hi def link luaCommentDelimiter luaComment +hi def link luaTodo Todo +hi def link luaTable Structure +hi def link luaError Error +hi def link luaParenError Error +hi def link luaSpecial SpecialChar +hi def link luaFunc Identifier +hi def link luaLabel Label + + +let b:current_syntax = "lua" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: et ts=8 sw=2 diff --git a/runtime/syntax/luau.vim b/runtime/syntax/luau.vim new file mode 100644 index 0000000..59eccac --- /dev/null +++ b/runtime/syntax/luau.vim @@ -0,0 +1,15 @@ +" Vim syntax file +" Language: Luau +" Maintainer: None yet +" Last Change: 2023 Apr 30 + +if exists("b:current_syntax") + finish +endif + +" Luau is a superset of lua +runtime! syntax/lua.vim + +let b:current_syntax = "luau" + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/lynx.vim b/runtime/syntax/lynx.vim new file mode 100644 index 0000000..fcaf923 --- /dev/null +++ b/runtime/syntax/lynx.vim @@ -0,0 +1,151 @@ +" Vim syntax file +" Language: Lynx Web Browser Configuration (lynx.cfg) +" Maintainer: Doug Kearns +" Last Change: 2023 Nov 09 + +" Lynx 2.8.9 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match lynxStart "^" skipwhite nextgroup=lynxOption + +syn match lynxComment "\%(^\|\s\+\)#.*" contains=lynxTodo + +syn keyword lynxTodo TODO NOTE FIXME XXX contained + +syn match lynxDelimiter ":" skipwhite nextgroup=lynxBoolean,lynxHttpProtocol,lynxNumber,lynxNone,lynxRCOption + +syn case ignore +syn keyword lynxBoolean TRUE FALSE ON OFF contained +syn keyword lynxNone NONE contained +syn case match + +syn match lynxNumber "-\=\<\d\+\>" contained +syn match lynxHttpProtocol "\<1\.[01]\>" contained + +"{{{ Options +syn case ignore +syn keyword lynxOption ACCEPT_ALL_COOKIES ALERTSECS + \ ALWAYS_RESUBMIT_POSTS ALWAYS_TRUSTED_EXEC ANONFTP_PASSWORD + \ ASSUMED_COLOR ASSUMED_DOC_CHARSET_CHOICE ASSUME_CHARSET + \ ASSUME_LOCAL_CHARSET ASSUME_UNREC_CHARSET AUTO_SESSION + \ AUTO_UNCACHE_DIRLISTS BAD_HTML BIBP_BIBHOST BIBP_GLOBAL_SERVER + \ BLOCK_MULTI_BOOKMARKS BOLD_H1 BOLD_HEADERS BOLD_NAME_ANCHORS + \ BOOKMARK_FILE BROKEN_FTP_EPSV BROKEN_FTP_RETR BZIP2_PATH + \ CASE_SENSITIVE_ALWAYS_ON CASE_SENSITIVE_SEARCHING CHARACTER_SET + \ CHARSETS_DIRECTORY CHARSET_SWITCH_RULES CHECKMAIL CHMOD_PATH + \ COLLAPSE_BR_TAGS COLOR COLOR_STYLE COMPRESS_PATH CONNECT_TIMEOUT + \ COOKIE_ACCEPT_DOMAINS COOKIE_FILE COOKIE_LOOSE_INVALID_DOMAINS + \ COOKIE_QUERY_INVALID_DOMAINS COOKIE_REJECT_DOMAINS COOKIE_SAVE_FILE + \ COOKIE_STRICT_INVALID_DOMAINS COPY_PATH CSO_PROXY CSWING_PATH + \ DEBUGSECS DEFAULT_BOOKMARK_FILE DEFAULT_CACHE_SIZE DEFAULT_COLORS + \ DEFAULT_EDITOR DEFAULT_INDEX_FILE DEFAULT_KEYPAD_MODE + \ DEFAULT_KEYPAD_MODE_IS_NUMBERS_AS_ARROWS DEFAULT_USER_MODE + \ DEFAULT_VIRTUAL_MEMORY_SIZE DELAYSECS DIRED_MENU DIR_LIST_ORDER + \ DIR_LIST_STYLE DISPLAY DISPLAY_CHARSET_CHOICE DOWNLOADER EMACS_KEYS + \ EMACS_KEYS_ALWAYS_ON ENABLE_LYNXRC ENABLE_SCROLLBACK EXTERNAL + \ FILE_EDITOR FILE_SORTING_METHOD FINGER_PROXY FOCUS_WINDOW + \ FORCE_8BIT_TOUPPER FORCE_COOKIE_PROMPT FORCE_EMPTY_HREFLESS_A + \ FORCE_SSL_COOKIES_SECURE FORCE_SSL_PROMPT FORMS_OPTIONS FTP_FORMAT + \ FTP_PASSIVE FTP_PROXY GLOBAL_EXTENSION_MAP GLOBAL_MAILCAP + \ GOPHER_PROXY GOTOBUFFER GZIP_PATH HELPFILE HIDDEN_LINK_MARKER + \ HISTORICAL_COMMENTS HTMLSRC_ATTRNAME_XFORM HTMLSRC_TAGNAME_XFORM + \ HTTPS_PROXY HTTP_PROXY INCLUDE INFLATE_PATH INFOSECS INSTALL_PATH + \ JUMPBUFFER JUMPFILE JUMP_PROMPT JUSTIFY JUSTIFY_MAX_VOID_PERCENT + \ KBLAYOUT KEYBOARD_LAYOUT KEYMAP KEYPAD_MODE + \ LEFTARROW_IN_TEXTFIELD_PROMPT LINEEDIT_MODE LIST_FORMAT + \ LIST_NEWS_DATES LIST_NEWS_NUMBERS LOCALE_CHARSET LOCALHOST_ALIAS + \ LOCAL_DOMAIN LOCAL_EXECUTION_LINKS_ALWAYS_ON + \ LOCAL_EXECUTION_LINKS_ON_BUT_NOT_REMOTE LYNXCGI_DOCUMENT_ROOT + \ LYNXCGI_ENVIRONMENT LYNX_HOST_NAME LYNX_SIG_FILE MAIL_ADRS + \ MAIL_SYSTEM_ERROR_LOGGING MAKE_LINKS_FOR_ALL_IMAGES + \ MAKE_PSEUDO_ALTS_FOR_INLINES MAX_COOKIES_BUFFER MAX_COOKIES_DOMAIN + \ MAX_COOKIES_GLOBAL MESSAGESECS MINIMAL_COMMENTS MKDIR_PATH + \ MULTI_BOOKMARK MULTI_BOOKMARK_SUPPORT MV_PATH NCR_IN_BOOKMARKS + \ NESTED_TABLES NEWSPOST_PROXY NEWSREPLY_PROXY NEWS_CHUNK_SIZE + \ NEWS_MAX_CHUNK NEWS_POSTING NEWS_PROXY NNTPSERVER NNTP_PROXY + \ NONRESTARTING_SIGWINCH NO_DOT_FILES NO_FILE_REFERER + \ NO_FORCED_CORE_DUMP NO_FROM_HEADER NO_ISMAP_IF_USEMAP NO_MARGINS + \ NO_PAUSE NO_PROXY NO_REFERER_HEADER NO_TABLE_CENTER NO_TITLE + \ NUMBER_FIELDS_ON_LEFT NUMBER_LINKS_ON_LEFT OUTGOING_MAIL_CHARSET + \ PARTIAL PARTIAL_THRES PERSISTENT_COOKIES PERSONAL_EXTENSION_MAP + \ PERSONAL_MAILCAP PERSONAL_MAIL_ADDRESS POSITIONABLE_EDITOR + \ PREFERRED_CHARSET PREFERRED_ENCODING PREFERRED_LANGUAGE + \ PREFERRED_MEDIA_TYPES PREPEND_BASE_TO_SOURCE + \ PREPEND_CHARSET_TO_SOURCE PRETTYSRC PRETTYSRC_SPEC + \ PRETTYSRC_VIEW_NO_ANCHOR_NUMBERING PRINTER QUIT_DEFAULT_YES RAW_MODE + \ READ_TIMEOUT REFERER_WITH_QUERY REPLAYSECS REUSE_TEMPFILES + \ RLOGIN_PATH RM_PATH RMDIR_PATH RULE RULESFILE + \ RUN_ALL_EXECUTION_LINKS RUN_EXECUTION_LINKS_LOCAL SAVE_SPACE + \ SCAN_FOR_BURIED_NEWS_REFS SCREEN_SIZE SCROLLBAR SCROLLBAR_ARROW + \ SEEK_FRAG_AREA_IN_CUR SEEK_FRAG_MAP_IN_CUR SELECT_POPUPS + \ SEND_USERAGENT SESSION_FILE SESSION_LIMIT SET_COOKIES SETFONT_PATH + \ SHOW_COLOR SHOW_CURSOR SHOW_DOTFILES SHOW_KB_NAME SHOW_KB_RATE + \ SNEWSPOST_PROXY SNEWSREPLY_PROXY SNEWS_PROXY SOFT_DQUOTES + \ SOURCE_CACHE SOURCE_CACHE_FOR_ABORTED SSL_CERT_FILE STARTFILE + \ STATUS_BUFFER_SIZE STRIP_DOTDOT_URLS SUBSTITUTE_UNDERSCORES + \ SUB_BOOKMARKS SUFFIX SUFFIX_ORDER SYSLOG_REQUESTED_URLS SYSLOG_TEXT + \ SYSTEM_EDITOR SYSTEM_MAIL SYSTEM_MAIL_FLAGS TAGSOUP TAR_PATH + \ TELNET_PATH TEXTFIELDS_NEED_ACTIVATION TIMEOUT TN3270_PATH + \ TOUCH_PATH TRIM_INPUT_FIELDS TRUSTED_EXEC TRUSTED_LYNXCGI + \ UNCOMPRESS_PATH UNDERLINE_LINKS UNZIP_PATH UPLOADER + \ URL_DOMAIN_PREFIXES URL_DOMAIN_SUFFIXES USERAGENT USER_MODE + \ USE_FIXED_RECORDS USE_MOUSE USE_SELECT_POPUPS UUDECODE_PATH + \ VERBOSE_IMAGES VIEWER VISITED_LINKS VI_KEYS VI_KEYS_ALWAYS_ON + \ WAIS_PROXY XHTML_PARSING XLOADIMAGE_COMMAND ZCAT_PATH ZIP_PATH + \ TRIM_BLANK_LINES GUESS_SCHEME HTTP_PROTOCOL HTML5_CHARSETS + \ TRIM_BLANK_LINES PREFERRED_CONTENT_TYPE SSL_CLIENT_CERT_FILE + \ SSL_CLIENT_KEY_FILE MAX_URI_SIZE UNIQUE_URLS MESSAGE_LANGUAGE + \ CONV_JISX0201KANA WAIT_VIEWER_TERMINATION BLAT_MAIL ALT_BLAT_MAIL + \ DONT_WRAP_PRE TRACK_INTERNAL_LINKS FORCE_HTML HIDDENLINKS SHORT_URL + \ LISTONLY LIST_INLINE LOCALHOST WITH_BACKSPACES + \ contained nextgroup=lynxDelimiter +syn keyword lynxRCOption accept_all_cookies assume_charset auto_session + \ bookmark_file case_sensitive_searching character_set + \ collapse_br_tags cookie_accept_domains cookie_file + \ cookie_loose_invalid_domains cookie_query_invalid_domains + \ cookie_reject_domains cookie_strict_invalid_domain + \ cookie_strict_invalid_domains dir_list_style display emacs_keys + \ file_editor file_sorting_method force_cookie_prompt force_ssl_prompt + \ ftp_passive html5_charsets http_protocol kblayout keypad_mode + \ lineedit_mode locale_charset make_links_for_all_images + \ make_pseudo_alts_for_inlines multi_bookmark no_pause + \ personal_mail_address preferred_charset preferred_encoding + \ preferred_language preferred_media_types raw_mode + \ run_all_execution_links run_execution_links_local + \ run_execution_links_on_local_files scrollbar select_popups + \ send_useragent session_file set_cookies show_color show_cursor + \ show_dotfiles show_kb_rate sub_bookmarks tagsoup underline_links + \ useragent user_mode verbose_images vi_keys visited_links + \ contained nextgroup=lynxDelimiter +syn case match +" }}} + +" cfg2html.pl formatting directives +syn match lynxFormatDir "^\.h\d\s.*$" +syn match lynxFormatDir "^\.\%(ex\|nf\)\%(\s\+\d\+\)\=$" +syn match lynxFormatDir "^\.fi$" +syn match lynxFormatDir "^\.url\>" + +hi def link lynxBoolean Boolean +hi def link lynxComment Comment +hi def link lynxDelimiter Special +hi def link lynxFormatDir Special +hi def link lynxHttpProtocol Constant +hi def link lynxNone Constant +hi def link lynxNumber Number +hi def link lynxOption Identifier +hi def link lynxRCOption lynxOption +hi def link lynxTodo Todo + +let b:current_syntax = "lynx" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/lyrics.vim b/runtime/syntax/lyrics.vim new file mode 100644 index 0000000..42a288b --- /dev/null +++ b/runtime/syntax/lyrics.vim @@ -0,0 +1,43 @@ +" Vim syntax file +" Language: LyRiCs +" Maintainer: ObserverOfTime +" Filenames: *.lrc +" Last Change: 2022 Sep 18 + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +syn case ignore + +" Errors +syn match lrcError /^.\+$/ + +" ID tags +syn match lrcTag /^\s*\[\a\+:.\+\]\s*$/ contains=lrcTagName,lrcTagValue +syn match lrcTagName contained nextgroup=lrcTagValue + \ /\[\zs\(al\|ar\|au\|by\|encoding\|la\|id\|length\|offset\|re\|ti\|ve\)\ze:/ +syn match lrcTagValue /:\zs.\+\ze\]/ contained + +" Lyrics +syn match lrcLyricTime /^\s*\[\d\d:\d\d\.\d\d\]/ + \ contains=lrcNumber nextgroup=lrcLyricLine +syn match lrcLyricLine /.*$/ contained contains=lrcWordTime,@Spell +syn match lrcWordTime /<\d\d:\d\d\.\d\d>/ contained contains=lrcNumber,@NoSpell +syn match lrcNumber /[+-]\=\d\+/ contained + +hi def link lrcLyricTime Label +hi def link lrcNumber Number +hi def link lrcTag PreProc +hi def link lrcTagName Identifier +hi def link lrcTagValue String +hi def link lrcWordTime Special +hi def link lrcError Error + +let b:current_syntax = 'lyrics' + +let &cpoptions = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/m3build.vim b/runtime/syntax/m3build.vim new file mode 100644 index 0000000..1a378e8 --- /dev/null +++ b/runtime/syntax/m3build.vim @@ -0,0 +1,177 @@ +" Vim syntax file +" Language: Modula-3 Makefile +" Maintainer: Doug Kearns +" Last Change: 2021 April 15 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/m3quake.vim + +" Identifiers +syn match m3buildPredefinedVariable "\<\%(TARGET\|OS_TYPE\|BUILD_DIR\|PKG_USE\|WDROOT\)\>" + +" Build Procedures {{{1 +" Generated from cm3/m3-sys/cm3/src/M3Build.m3 +syn keyword m3buildProcedure HasCBackend + +" (* packages & locations *) +syn keyword m3buildProcedure Pkg +syn keyword m3buildProcedure override +syn keyword m3buildProcedure path_of +syn keyword m3buildProcedure pkg_subdir + +" (* names *) +syn keyword m3buildProcedure program_name +syn keyword m3buildProcedure library_name + +" (* calls in the generated .M3EXPORT files *) +syn keyword m3buildProcedure _define_lib +syn keyword m3buildProcedure _define_pgm +syn keyword m3buildProcedure _import_template +syn keyword m3buildProcedure _import_m3lib +syn keyword m3buildProcedure _import_otherlib +syn keyword m3buildProcedure _map_add_interface +syn keyword m3buildProcedure _map_add_generic_interface +syn keyword m3buildProcedure _map_add_module +syn keyword m3buildProcedure _map_add_generic_module +syn keyword m3buildProcedure _map_add_c +syn keyword m3buildProcedure _map_add_h +syn keyword m3buildProcedure _map_add_s + +" (* compiler options *) +syn keyword m3buildProcedure m3_debug +syn keyword m3buildProcedure m3_optimize +syn keyword m3buildProcedure build_shared +syn keyword m3buildProcedure build_standalone + +" (* derived files *) +syn keyword m3buildProcedure m3_compile_only +syn keyword m3buildProcedure m3_finish_up + +" (* predefined system libraries *) +syn keyword m3buildProcedure import_sys_lib + +" (* options *) +syn keyword m3buildProcedure m3_option +syn keyword m3buildProcedure remove_m3_option + +" (* deleting *) +syn keyword m3buildProcedure deriveds + +" (* imports *) +syn keyword m3buildProcedure include_dir +syn keyword m3buildProcedure include_pkg +syn keyword m3buildProcedure import +syn keyword m3buildProcedure import_version +syn keyword m3buildProcedure import_obj +syn keyword m3buildProcedure import_lib + +" (* objects *) +syn keyword m3buildProcedure pgm_object + +" (* sources *) +syn keyword m3buildProcedure source +syn keyword m3buildProcedure pgm_source +syn keyword m3buildProcedure interface +syn keyword m3buildProcedure Interface +syn keyword m3buildProcedure implementation +syn keyword m3buildProcedure module +syn keyword m3buildProcedure Module +syn keyword m3buildProcedure h_source +syn keyword m3buildProcedure c_source +syn keyword m3buildProcedure s_source +syn keyword m3buildProcedure ship_source + +" (* generics *) +syn keyword m3buildProcedure generic_interface +syn keyword m3buildProcedure Generic_interface +syn keyword m3buildProcedure generic_implementation +syn keyword m3buildProcedure Generic_implementation +syn keyword m3buildProcedure generic_module +syn keyword m3buildProcedure Generic_module +syn keyword m3buildProcedure build_generic_intf +syn keyword m3buildProcedure build_generic_impl + +" (* derived sources *) +syn keyword m3buildProcedure derived_interface +syn keyword m3buildProcedure derived_implementation +syn keyword m3buildProcedure derived_c +syn keyword m3buildProcedure derived_h + +" (* hiding/exporting *) +syn keyword m3buildProcedure hide_interface +syn keyword m3buildProcedure hide_generic_interface +syn keyword m3buildProcedure hide_generic_implementation +syn keyword m3buildProcedure export_interface +syn keyword m3buildProcedure export_generic_interface +syn keyword m3buildProcedure export_generic_implementation + +" (* templates *) +syn keyword m3buildProcedure template + +" (* library building *) +syn keyword m3buildProcedure library +syn keyword m3buildProcedure Library + +" (* program building *) +syn keyword m3buildProcedure program +syn keyword m3buildProcedure Program +syn keyword m3buildProcedure c_program +syn keyword m3buildProcedure C_program + +" (* man pages *) +syn keyword m3buildProcedure manPage +syn keyword m3buildProcedure ManPage + +" (* emacs *) +syn keyword m3buildProcedure Gnuemacs +syn keyword m3buildProcedure CompiledGnuemacs + +" (* "-find" support *) +syn keyword m3buildProcedure find_unit +syn keyword m3buildProcedure enum_units + +" (* export functions *) +syn keyword m3buildProcedure install_sources +syn keyword m3buildProcedure install_derived +syn keyword m3buildProcedure install_derived_link +syn keyword m3buildProcedure install_derived_symbolic_link +syn keyword m3buildProcedure install_derived_hard_link +syn keyword m3buildProcedure install_link_to_derived +syn keyword m3buildProcedure install_symbolic_link_to_derived +syn keyword m3buildProcedure install_hard_link_to_derived +syn keyword m3buildProcedure install_symbolic_link +syn keyword m3buildProcedure install_file + +" (* installation functions *) +syn keyword m3buildProcedure BindExport +syn keyword m3buildProcedure BinExport +syn keyword m3buildProcedure LibdExport +syn keyword m3buildProcedure LibExport +syn keyword m3buildProcedure EmacsdExport +syn keyword m3buildProcedure EmacsExport +syn keyword m3buildProcedure DocdExport +syn keyword m3buildProcedure DocExport +syn keyword m3buildProcedure MandExport +syn keyword m3buildProcedure ManExport +syn keyword m3buildProcedure HtmlExport +syn keyword m3buildProcedure RootExport +syn keyword m3buildProcedure RootdExport + +" (* misc *) +syn keyword m3buildProcedure gen_m3exports +syn keyword m3buildProcedure generate_tfile +syn keyword m3buildProcedure delete_file +syn keyword m3buildProcedure link_file +syn keyword m3buildProcedure symbolic_link_file +syn keyword m3buildProcedure hard_link_file +" }}} + +hi def link m3buildPredefinedVariable Identifier +hi def link m3buildProcedure Function + +let b:current_syntax = "m3build" + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/m3quake.vim b/runtime/syntax/m3quake.vim new file mode 100644 index 0000000..c202d90 --- /dev/null +++ b/runtime/syntax/m3quake.vim @@ -0,0 +1,74 @@ +" Vim syntax file +" Language: Modula-3 Quake +" Maintainer: Doug Kearns +" Last Change: 2021 April 15 + +if exists("b:current_syntax") + finish +endif + +" Keywords +syn keyword m3quakeKeyword else end foreach if in is local or proc readonly +syn keyword m3quakeKeyword return + +" Builtin procedures {{{ +" Generated from m3-sys/m3quake/src/QMachine.m3 +syn keyword m3quakeProcedure arglist cp_if defined empty equal error escape +syn keyword m3quakeProcedure exec cm3_exec file format include make_dir +syn keyword m3quakeProcedure normalize path stale try_exec try_cm3_exec +syn keyword m3quakeProcedure unlink_file write datetime date datestamp +syn keyword m3quakeProcedure TRACE_INSTR eval_func hostname + +syn keyword m3quakeProcedure pushd popd cd getwd + +syn keyword m3quakeProcedure quake + +syn keyword m3quakeProcedure q_exec q_exec_put q_exec_get + +syn keyword m3quakeProcedure fs_exists fs_readable fs_writable fs_executable +syn keyword m3quakeProcedure fs_isdir fs_isfile fs_contents fs_putfile +syn keyword m3quakeProcedure fs_mkdir fs_touch fs_lsdirs fs_lsfiles fs_rmdir +syn keyword m3quakeProcedure fs_rmfile fs_rmrec fs_cp + +syn keyword m3quakeProcedure pn_valid pn_decompose pn_compose pn_absolute +syn keyword m3quakeProcedure pn_prefix pn_last pn_base pn_lastbase pn_lastext +syn keyword m3quakeProcedure pn_join pn_join2 pn_replace_ext pn_parent +syn keyword m3quakeProcedure pn_current + +syn keyword m3quakeProcedure len + +syn keyword m3quakeProcedure split sub skipl skipr squeeze compress pos +syn keyword m3quakeProcedure tcontains bool encode decode subst_chars +syn keyword m3quakeProcedure del_chars subst subst_env add_prefix add_suffix +" }}} + +" Identifiers +syn match m3quakeEnvVariable "$\h\w\+" + +" Operators +syn match m3quakeOperator "&" +syn match m3quakeOperator "\<\%(contains\|not\|and\|or\)\>" + +" Strings +syn match m3quakeEscape "\\[\\nrtbf"]" contained display +syn region m3quakeString start=+"+ end=+"+ contains=m3quakeEscape + +" Comments +syn keyword m3quakeTodo TODO FIXME XXX contained +syn region m3quakeComment start="%" end="$" contains=m3quakeTodo,@Spell +syn region m3quakeComment start="/\*" end="\*/" contains=m3quakeTodo,@Spell + +" Default highlighting +hi def link m3quakeCommand Statement +hi def link m3quakeComment Comment +hi def link m3quakeEnvVariable Identifier +hi def link m3quakeEscape Special +hi def link m3quakeKeyword Keyword +hi def link m3quakeOperator Operator +hi def link m3quakeProcedure Function +hi def link m3quakeString String +hi def link m3quakeTodo Todo + +let b:current_syntax = "m3quake" + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/m4.vim b/runtime/syntax/m4.vim new file mode 100644 index 0000000..f90197a --- /dev/null +++ b/runtime/syntax/m4.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: M4 +" Maintainer: Claudio Fleiner (claudio@fleiner.com) +" URL: http://www.fleiner.com/vim/syntax/m4.vim +" (outdated) +" Last Change: 2022 Jun 12 + +" This file will highlight user function calls if they use only +" capital letters and have at least one argument (i.e. the '(' +" must be there). Let me know if this is a problem. + +" quit when a syntax file was already loaded +if !exists("main_syntax") + if exists("b:current_syntax") + finish + endif + " we define it here so that included files can test for it + let main_syntax='m4' +endif + +" define the m4 syntax +syn match m4Variable contained "\$\d\+" +syn match m4Special contained "$[@*#]" +syn match m4Comment "\<\(m4_\)\=dnl\>.*" contains=SpellErrors +syn match m4Comment "#.*" contains=SpellErrors +syn match m4Constants "\<\(m4_\)\=__file__" +syn match m4Constants "\<\(m4_\)\=__line__" +syn keyword m4Constants divnum sysval m4_divnum m4_sysval +syn region m4Paren matchgroup=m4Delimiter start="(" end=")" contained contains=@m4Top +syn region m4Command matchgroup=m4Function start="\<\(m4_\)\=\(define\|defn\|pushdef\)(" end=")" contains=@m4Top +syn region m4Command matchgroup=m4Preproc start="\<\(m4_\)\=\(include\|sinclude\)("he=e-1 end=")" contains=@m4Top +syn region m4Command matchgroup=m4Statement start="\<\(m4_\)\=\(syscmd\|esyscmd\|ifdef\|ifelse\|indir\|builtin\|shift\|errprint\|m4exit\|changecom\|changequote\|changeword\|m4wrap\|debugfile\|divert\|undivert\)("he=e-1 end=")" contains=@m4Top +syn region m4Command matchgroup=m4builtin start="\<\(m4_\)\=\(len\|index\|regexp\|substr\|translit\|patsubst\|format\|incr\|decr\|eval\|maketemp\)("he=e-1 end=")" contains=@m4Top +syn keyword m4Statement divert undivert +syn region m4Command matchgroup=m4Type start="\<\(m4_\)\=\(undefine\|popdef\)("he=e-1 end=")" contains=@m4Top +syn region m4Function matchgroup=m4Type start="\<[_A-Z][_A-Z0-9]*("he=e-1 end=")" contains=@m4Top +syn region m4String start="`" end="'" contains=SpellErrors +syn cluster m4Top contains=m4Comment,m4Constants,m4Special,m4Variable,m4String,m4Paren,m4Command,m4Statement,m4Function + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link m4Delimiter Delimiter +hi def link m4Comment Comment +hi def link m4Function Function +hi def link m4Keyword Keyword +hi def link m4Special Special +hi def link m4String String +hi def link m4Statement Statement +hi def link m4Preproc PreProc +hi def link m4Type Type +hi def link m4Special Special +hi def link m4Variable Special +hi def link m4Constants Constant +hi def link m4Builtin Statement + +let b:current_syntax = "m4" + +if main_syntax == 'm4' + unlet main_syntax +endif + +" vim: ts=4 diff --git a/runtime/syntax/mail.vim b/runtime/syntax/mail.vim new file mode 100644 index 0000000..0cd48fc --- /dev/null +++ b/runtime/syntax/mail.vim @@ -0,0 +1,112 @@ +" Vim syntax file +" Language: Mail file +" Previous Maintainer: Felix von Leitner +" Maintainer: GI , where a='gi1242+vim', b='gmail', c='com' +" Last Change: Wed 14 Aug 2013 08:24:52 AM PDT + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" The mail header is recognized starting with a "keyword:" line and ending +" with an empty line or other line that can't be in the header. All lines of +" the header are highlighted. Headers of quoted messages (quoted with >) are +" also highlighted. + +" Syntax clusters +syn cluster mailHeaderFields contains=mailHeaderKey,mailSubject,mailHeaderEmail,@mailLinks +syn cluster mailLinks contains=mailURL,mailEmail +syn cluster mailQuoteExps contains=mailQuoteExp1,mailQuoteExp2,mailQuoteExp3,mailQuoteExp4,mailQuoteExp5,mailQuoteExp6 + +syn case match +" For "From " matching case is required. The "From " is not matched in quoted +" emails +" According to RFC 2822 any printable ASCII character can appear in a field +" name, except ':'. +syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold +syn match mailHeaderKey contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$" + +" Nothing else depends on case. +syn case ignore + +" Headers in properly quoted (with "> " or ">") emails are matched +syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold + +" Usenet headers +syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$" + + +syn region mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$" +syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold +syn match mailHeaderKey contained contains=@NoSpell "\v(^(\> ?)*)@<=date:" +syn match mailSubject contained "\v^subject:.*$" fold +syn match mailSubject contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$" + +" Anything in the header between < and > is an email address +syn match mailHeaderEmail contained contains=@NoSpell "<.\{-}>" + +" Mail Signatures. (Begin with "-- ", end with change in quote level) +syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold +syn region mailSignature keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold + +" Treat verbatim Text special. +syn region mailVerbatim contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold +syn region mailVerbatim contains=@mailQuoteExps,@NoSpell keepend start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold + +" URLs start with a known protocol or www,web,w3. +syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-z0-9/]` +syn match mailEmail contains=@NoSpell "\v[_=a-z\./+0-9-]+\@[a-z0-9._-]+\a{2}" + +" Make sure quote markers in regions (header / signature) have correct color +syn match mailQuoteExp1 contained "\v^(\> ?)" +syn match mailQuoteExp2 contained "\v^(\> ?){2}" +syn match mailQuoteExp3 contained "\v^(\> ?){3}" +syn match mailQuoteExp4 contained "\v^(\> ?){4}" +syn match mailQuoteExp5 contained "\v^(\> ?){5}" +syn match mailQuoteExp6 contained "\v^(\> ?){6}" + +" Even and odd quoted lines. Order is important here! +syn region mailQuoted6 keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted5 keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted4 keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted3 keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted2 keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold +syn region mailQuoted1 keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold + +" Need to sync on the header. Assume we can do that within 100 lines +if exists("mail_minlines") + exec "syn sync minlines=" . mail_minlines +else + syn sync minlines=100 +endif + +" Define the default highlighting. +hi def link mailVerbatim Special +hi def link mailHeader Statement +hi def link mailHeaderKey Type +hi def link mailSignature PreProc +hi def link mailHeaderEmail mailEmail +hi def link mailEmail Special +hi def link mailURL String +hi def link mailSubject Title +hi def link mailQuoted1 Comment +hi def link mailQuoted3 mailQuoted1 +hi def link mailQuoted5 mailQuoted1 +hi def link mailQuoted2 Identifier +hi def link mailQuoted4 mailQuoted2 +hi def link mailQuoted6 mailQuoted2 +hi def link mailQuoteExp1 mailQuoted1 +hi def link mailQuoteExp2 mailQuoted2 +hi def link mailQuoteExp3 mailQuoted3 +hi def link mailQuoteExp4 mailQuoted4 +hi def link mailQuoteExp5 mailQuoted5 +hi def link mailQuoteExp6 mailQuoted6 + +let b:current_syntax = "mail" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/mailaliases.vim b/runtime/syntax/mailaliases.vim new file mode 100644 index 0000000..a5282aa --- /dev/null +++ b/runtime/syntax/mailaliases.vim @@ -0,0 +1,71 @@ +" Vim syntax file +" Language: aliases(5) local alias database file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2008-04-14 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword mailaliasesTodo contained TODO FIXME XXX NOTE + +syn region mailaliasesComment display oneline start='^\s*#' end='$' + \ contains=mailaliasesTodo,@Spell + +syn match mailaliasesBegin display '^' + \ nextgroup=mailaliasesName, + \ mailaliasesComment + +syn match mailaliasesName contained '[[:alnum:]\._-]\+' + \ nextgroup=mailaliasesColon + +syn region mailaliasesName contained oneline start=+"+ + \ skip=+\\\\\|\\"+ end=+"+ + \ nextgroup=mailaliasesColon + +syn match mailaliasesColon contained ':' + \ nextgroup=@mailaliasesValue + \ skipwhite skipnl + +syn cluster mailaliasesValue contains=mailaliasesValueAddress, + \ mailaliasesValueFile, + \ mailaliasesValueCommand, + \ mailaliasesValueInclude + +syn match mailaliasesValueAddress contained '[^ \t/|,]\+' + \ nextgroup=mailaliasesValueSep + \ skipwhite skipnl + +syn match mailaliasesValueFile contained '/[^,]*' + \ nextgroup=mailaliasesValueSep + \ skipwhite skipnl + +syn match mailaliasesValueCommand contained '|[^,]*' + \ nextgroup=mailaliasesValueSep + \ skipwhite skipnl + +syn match mailaliasesValueInclude contained ':include:[^,]*' + \ nextgroup=mailaliasesValueSep + \ skipwhite skipnl + +syn match mailaliasesValueSep contained ',' + \ nextgroup=@mailaliasesValue + \ skipwhite skipnl + +hi def link mailaliasesTodo Todo +hi def link mailaliasesComment Comment +hi def link mailaliasesName Identifier +hi def link mailaliasesColon Delimiter +hi def link mailaliasesValueAddress String +hi def link mailaliasesValueFile String +hi def link mailaliasesValueCommand String +hi def link mailaliasesValueInclude PreProc +hi def link mailaliasesValueSep Delimiter + +let b:current_syntax = "mailaliases" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/mailcap.vim b/runtime/syntax/mailcap.vim new file mode 100644 index 0000000..bd23040 --- /dev/null +++ b/runtime/syntax/mailcap.vim @@ -0,0 +1,35 @@ +" Vim syntax file +" Language: Mailcap configuration file +" Maintainer: Doug Kearns +" Last Change: 2013 Jun 01 + +if exists("b:current_syntax") + finish +endif + +syn match mailcapComment "^#.*" + +syn region mailcapString start=+"+ end=+"+ contains=mailcapSpecial oneline + +syn match mailcapDelimiter "\\\@" +syn match mailcapFieldname "\<\(compose\|composetyped\|print\|edit\|test\|x11-bitmap\|nametemplate\|textualnewlines\|description\|x-\w+\)\>\ze\s*=" +syn match mailcapTypeField "^\(text\|image\|audio\|video\|application\|message\|multipart\|model\|x-[[:graph:]]\+\)\(/\(\*\|[[:graph:]]\+\)\)\=\ze\s*;" +syn case match + +hi def link mailcapComment Comment +hi def link mailcapDelimiter Delimiter +hi def link mailcapFlag Statement +hi def link mailcapFieldname Statement +hi def link mailcapSpecial Identifier +hi def link mailcapTypeField Type +hi def link mailcapString String + +let b:current_syntax = "mailcap" + +" vim: ts=8 diff --git a/runtime/syntax/make.vim b/runtime/syntax/make.vim new file mode 100644 index 0000000..b457304 --- /dev/null +++ b/runtime/syntax/make.vim @@ -0,0 +1,144 @@ +" Vim syntax file +" Language: Makefile +" Maintainer: Roland Hieber , +" Previous Maintainer: Claudio Fleiner +" URL: https://github.com/vim/vim/blob/master/runtime/syntax/make.vim +" Last Change: 2022 Nov 06 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" some special characters +syn match makeSpecial "^\s*[@+-]\+" +syn match makeNextLine "\\\n\s*" + +" catch unmatched define/endef keywords. endef only matches it is by itself on a line, possibly followed by a commend +syn region makeDefine start="^\s*define\s" end="^\s*endef\s*\(#.*\)\?$" + \ contains=makeStatement,makeIdent,makePreCondit,makeDefine + +" Microsoft Makefile specials +syn case ignore +syn match makeInclude "^!\s*include\s.*$" +syn match makePreCondit "^!\s*\(cmdswitches\|error\|message\|include\|if\|ifdef\|ifndef\|else\|else\s*if\|else\s*ifdef\|else\s*ifndef\|endif\|undef\)\>" +syn case match + +" identifiers +syn region makeIdent start="\$(" skip="\\)\|\\\\" end=")" contains=makeStatement,makeIdent +syn region makeIdent start="\${" skip="\\}\|\\\\" end="}" contains=makeStatement,makeIdent +syn match makeIdent "\$\$\w*" +syn match makeIdent "\$[^({]" +syn match makeIdent "^ *[^:#= \t]*\s*[:+?!*]="me=e-2 +syn match makeIdent "^ *[^:#= \t]*\s*::="me=e-3 +syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1 +syn match makeIdent "%" + +" Makefile.in variables +syn match makeConfig "@[A-Za-z0-9_]\+@" + +" make targets +syn match makeImplicit "^\.[A-Za-z0-9_./\t -]\+\s*:$"me=e-1 +syn match makeImplicit "^\.[A-Za-z0-9_./\t -]\+\s*:[^=]"me=e-2 + +syn region makeTarget transparent matchgroup=makeTarget + \ start="^[~A-Za-z0-9_./$(){}%-][A-Za-z0-9_./\t ${}()%-]*&\?:\?:\{1,2}[^:=]"rs=e-1 + \ end="[^\\]$" + \ keepend contains=makeIdent,makeSpecTarget,makeNextLine,makeComment,makeDString + \ skipnl nextGroup=makeCommands +syn match makeTarget "^[~A-Za-z0-9_./$(){}%*@-][A-Za-z0-9_./\t $(){}%*@-]*&\?::\=\s*$" + \ contains=makeIdent,makeSpecTarget,makeComment + \ skipnl nextgroup=makeCommands,makeCommandError + +syn region makeSpecTarget transparent matchgroup=makeSpecTarget + \ start="^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\|ONESHELL\)\>\s*:\{1,2}[^:=]"rs=e-1 + \ end="[^\\]$" keepend + \ contains=makeIdent,makeSpecTarget,makeNextLine,makeComment skipnl nextGroup=makeCommands +syn match makeSpecTarget "^\.\(SUFFIXES\|PHONY\|DEFAULT\|PRECIOUS\|IGNORE\|SILENT\|EXPORT_ALL_VARIABLES\|KEEP_STATE\|LIBPATTERNS\|NOTPARALLEL\|DELETE_ON_ERROR\|INTERMEDIATE\|POSIX\|SECONDARY\|ONESHELL\)\>\s*::\=\s*$" + \ contains=makeIdent,makeComment + \ skipnl nextgroup=makeCommands,makeCommandError + +syn match makeCommandError "^\s\+\S.*" contained +syn region makeCommands contained start=";"hs=s+1 start="^\t" + \ end="^[^\t#]"me=e-1,re=e-1 end="^$" + \ contains=makeCmdNextLine,makeSpecial,makeComment,makeIdent,makePreCondit,makeDefine,makeDString,makeSString + \ nextgroup=makeCommandError +syn match makeCmdNextLine "\\\n."he=e-1 contained + +" some directives +syn match makePreCondit "^ *\(ifn\=\(eq\|def\)\>\|else\(\s\+ifn\=\(eq\|def\)\)\=\>\|endif\>\)" +syn match makeInclude "^ *[-s]\=include\s.*$" +syn match makeStatement "^ *vpath" +syn match makeExport "^ *\(export\|unexport\)\>" +syn match makeOverride "^ *override\>" +" Statements / Functions (GNU make) +syn match makeStatement contained "(\(abspath\|addprefix\|addsuffix\|and\|basename\|call\|dir\|error\|eval\|file\|filter-out\|filter\|findstring\|firstword\|flavor\|foreach\|guile\|if\|info\|join\|lastword\|notdir\|or\|origin\|patsubst\|realpath\|shell\|sort\|strip\|subst\|suffix\|value\|warning\|wildcard\|word\|wordlist\|words\)\>"ms=s+1 + +" Comment +if exists("make_microsoft") + syn match makeComment "#.*" contains=@Spell,makeTodo +elseif !exists("make_no_comments") + syn region makeComment start="#" end="^$" end="[^\\]$" keepend contains=@Spell,makeTodo + syn match makeComment "#$" contains=@Spell +endif +syn keyword makeTodo TODO FIXME XXX contained + +" match escaped quotes and any other escaped character +" except for $, as a backslash in front of a $ does +" not make it a standard character, but instead it will +" still act as the beginning of a variable +" The escaped char is not highlightet currently +syn match makeEscapedChar "\\[^$]" + + +syn region makeDString start=+\(\\\)\@ +" URL: https://github.com/jhradilek/vim-syntax +" Last Change: 11 February 2013 +" Description: A syntax file for the Mallard markup language according to +" Mallard 1.0 DRAFT as of 2013-02-11. + +if exists("b:current_syntax") + finish +endif + +do Syntax xml +syn cluster xmlTagHook add=mallardTagName +syn spell toplevel +syn case match + +syn keyword mallardTagName app cite cmd code col colgroup comment contained +syn keyword mallardTagName credit desc em email example figure contained +syn keyword mallardTagName file gui guiseq info input item key contained +syn keyword mallardTagName keyseq license link links list listing contained +syn keyword mallardTagName media name note output p page quote contained +syn keyword mallardTagName revision screen section span steps contained +syn keyword mallardTagName subtitle synopsis sys table tbody td contained +syn keyword mallardTagName terms tfoot thead title tr tree var contained +syn keyword mallardTagName years contained + +syn region mallardComment start="" end=""me=e-10 contains=xmlTag,xmlNamespace,xmlTagName,xmlEndTag,xmlRegion,xmlEntity,@Spell keepend +syn region mallardEmphasis start="" end=""me=e-5 contains=xmlTag,xmlNamespace,xmlTagName,xmlEndTag,xmlRegion,xmlEntity,@Spell keepend +syn region mallardTitle start="" end=""me=e-8 contains=xmlTag,xmlNamespace,xmlTagName,xmlEndTag,xmlRegion,xmlEntity,@Spell keepend + +hi def link mallardComment Comment +hi def link mallardTagName Statement +hi def link mallardTitle Title +hi def mallardEmphasis term=italic cterm=italic gui=italic + +let b:current_syntax = "mallard" diff --git a/runtime/syntax/man.vim b/runtime/syntax/man.vim new file mode 100644 index 0000000..dfbb35a --- /dev/null +++ b/runtime/syntax/man.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: Man page +" Maintainer: Jason Franklin +" Previous Maintainer: SungHyun Nam +" Previous Maintainer: Gautam H. Mudunuri +" Version Info: +" Last Change: 2020 Sep 19 + +" Additional highlighting by Johannes Tanzler : +" * manSubHeading +" * manSynopsis (only for sections 2 and 3) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Get the CTRL-H syntax to handle backspaced text +runtime! syntax/ctrlh.vim + +syn case ignore + +" See notes about hyphenation in s:ParseIntoPageAndSection of +" autoload/dist/man.vim. +syn match manReference "\%(\f\+[\u2010-]\%(\n\|\r\n\=\)\s\+\)\=\f\+([1-9]\l*)" +syn match manSectionHeading "^\a.*$" +syn match manSubHeading "^\s\{3\}\a.*$" +syn match manOptionDesc "^\s*[+-][a-z0-9]\S*" +syn match manLongOptionDesc "^\s*--[a-z0-9-]\S*" +" syn match manHistory "^[a-z].*last change.*$" + +syn match manHeader '\%1l.*' +exe 'syn match manFooter ''\%' . line('$') . 'l.*''' + +if getline(1) =~ '^[a-zA-Z_]\+([23])' + syntax include @cCode :p:h/c.vim + syn match manCFuncDefinition display "\<\h\w*\>\s*("me=e-1 contained + syn region manSynopsis start="^SYNOPSIS"hs=s+8 end="^\u\+\s*$"me=e-12 keepend contains=manSectionHeading,@cCode,manCFuncDefinition +endif + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link manHeader Title +hi def link manFooter PreProc + +hi def link manSectionHeading Statement +hi def link manOptionDesc Constant +hi def link manLongOptionDesc Constant +hi def link manReference PreProc +hi def link manSubHeading Function +hi def link manCFuncDefinition Function + + +let b:current_syntax = "man" + +" vim:ts=8 sts=2 sw=2: diff --git a/runtime/syntax/manconf.vim b/runtime/syntax/manconf.vim new file mode 100644 index 0000000..2c17568 --- /dev/null +++ b/runtime/syntax/manconf.vim @@ -0,0 +1,117 @@ +" Vim syntax file +" Language: man.conf(5) - man configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword manconfTodo contained TODO FIXME XXX NOTE + +syn region manconfComment display oneline start='^#' end='$' + \ contains=manconfTodo,@Spell + +if !has("win32") && $OSTYPE =~ 'bsd' + syn match manconfBegin display '^' + \ nextgroup=manconfKeyword,manconfSection, + \ manconfComment skipwhite + + syn keyword manconfKeyword contained _build _crunch + \ nextgroup=manconfExtCmd skipwhite + + syn keyword manconfKeyword contained _suffix + \ nextgroup=manconfExt skipwhite + + syn keyword manconfKeyword contained _crunch + + syn keyword manconfKeyword contained _subdir _version _whatdb + \ nextgroup=manconfPaths skipwhite + + syn match manconfExtCmd contained display '\.\S\+' + \ nextgroup=manconfPaths skipwhite + + syn match manconfSection contained '[^#_ \t]\S*' + \ nextgroup=manconfPaths skipwhite + + syn keyword manconfSection contained _default + \ nextgroup=manconfPaths skipwhite + + syn match manconfPaths contained display '\S\+' + \ nextgroup=manconfPaths skipwhite + + syn match manconfExt contained display '\.\S\+' + + hi def link manconfExtCmd Type + hi def link manconfSection Identifier + hi def link manconfPaths String +else + syn match manconfBegin display '^' + \ nextgroup=manconfBoolean,manconfKeyword, + \ manconfDecompress,manconfComment skipwhite + + syn keyword manconfBoolean contained FSSTND FHS NOAUTOPATH NOCACHE + + syn keyword manconfKeyword contained MANBIN + \ nextgroup=manconfPath skipwhite + + syn keyword manconfKeyword contained MANPATH MANPATH_MAP + \ nextgroup=manconfFirstPath skipwhite + + syn keyword manconfKeyword contained APROPOS WHATIS TROFF NROFF JNROFF EQN + \ NEQN JNEQN TBL COL REFER PIC VGRIND GRAP + \ PAGER BROWSER HTMLPAGER CMP CAT COMPRESS + \ DECOMPRESS MANDEFOPTIONS + \ nextgroup=manconfCommand skipwhite + + syn keyword manconfKeyword contained COMPRESS_EXT + \ nextgroup=manconfExt skipwhite + + syn keyword manconfKeyword contained MANSECT + \ nextgroup=manconfManSect skipwhite + + syn match manconfPath contained display '\S\+' + + syn match manconfFirstPath contained display '\S\+' + \ nextgroup=manconfSecondPath skipwhite + + syn match manconfSecondPath contained display '\S\+' + + syn match manconfCommand contained display '\%(/[^/ \t]\+\)\+' + \ nextgroup=manconfCommandOpt skipwhite + + syn match manconfCommandOpt contained display '\S\+' + \ nextgroup=manconfCommandOpt skipwhite + + syn match manconfExt contained display '\.\S\+' + + syn match manconfManSect contained '[^:]\+' nextgroup=manconfManSectSep + + syn match manconfManSectSep contained ':' nextgroup=manconfManSect + + syn match manconfDecompress contained '\.\S\+' + \ nextgroup=manconfCommand skipwhite + + hi def link manconfBoolean Boolean + hi def link manconfPath String + hi def link manconfFirstPath manconfPath + hi def link manconfSecondPath manconfPath + hi def link manconfCommand String + hi def link manconfCommandOpt Special + hi def link manconfManSect Identifier + hi def link manconfManSectSep Delimiter + hi def link manconfDecompress Type +endif + +hi def link manconfTodo Todo +hi def link manconfComment Comment +hi def link manconfKeyword Keyword +hi def link manconfExt Type + +let b:current_syntax = "manconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/manual.vim b/runtime/syntax/manual.vim new file mode 100644 index 0000000..8388336 --- /dev/null +++ b/runtime/syntax/manual.vim @@ -0,0 +1,30 @@ +" Vim syntax support file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" This file is used for ":syntax manual". +" It installs the Syntax autocommands, but no the FileType autocommands. + +if !has("syntax") + finish +endif + +" Load the Syntax autocommands and set the default methods for highlighting. +if !exists("syntax_on") + so :p:h/synload.vim +endif + +let syntax_manual = 1 + +" Overrule the connection between FileType and Syntax autocommands. This sets +" the syntax when the file type is detected, without changing the value. +augroup syntaxset + au! FileType * exe "set syntax=" . &syntax +augroup END + +" If the GUI is already running, may still need to install the FileType menu. +" Don't do it when the 'M' flag is included in 'guioptions'. +if has("menu") && has("gui_running") && !exists("did_install_syntax_menu") && &guioptions !~# 'M' + source $VIMRUNTIME/menu.vim +endif diff --git a/runtime/syntax/maple.vim b/runtime/syntax/maple.vim new file mode 100644 index 0000000..78f2b4e --- /dev/null +++ b/runtime/syntax/maple.vim @@ -0,0 +1,622 @@ +" Vim syntax file +" Language: Maple V (based on release 4) +" Maintainer: Charles E. Campbell +" Last Change: Mar 26, 2019 +" Version: 17 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_MAPLE +" +" Package Function Selection: {{{1 +" Because there are a lot of packages, and because of the potential for namespace +" clashes, this version of needs the user to select which, if any, +" package functions should be highlighted. Select your packages and put into your +" <.vimrc> none or more of the lines following let ...=1 lines: +" +" if exists("mvpkg_all") +" ... +" endif +" +" *OR* let mvpkg_all=1 + +" This syntax file contains all the keywords and top-level packages of Maple 9.5 +" but only the contents of packages of Maple V Release 4, and the top-level +" routines of Release 4. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Iskeyword Effects: {{{1 +if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704 + syn iskeyword $,48-57,_,a-z,@-Z +else + setl isk=$,48-57,_,a-z,@-Z +endif + +" Package Selection: {{{1 +" allow user to simply select all packages for highlighting +if exists("mvpkg_all") + let mv_DEtools = 1 + let mv_Galois = 1 + let mv_GaussInt = 1 + let mv_LREtools = 1 + let mv_combinat = 1 + let mv_combstruct = 1 + let mv_difforms = 1 + let mv_finance = 1 + let mv_genfunc = 1 + let mv_geometry = 1 + let mv_grobner = 1 + let mv_group = 1 + let mv_inttrans = 1 + let mv_liesymm = 1 + let mv_linalg = 1 + let mv_logic = 1 + let mv_networks = 1 + let mv_numapprox = 1 + let mv_numtheory = 1 + let mv_orthopoly = 1 + let mv_padic = 1 + let mv_plots = 1 + let mv_plottools = 1 + let mv_powseries = 1 + let mv_process = 1 + let mv_simplex = 1 + let mv_stats = 1 + let mv_student = 1 + let mv_sumtools = 1 + let mv_tensor = 1 + let mv_totorder = 1 +endif + +" Parenthesis/curly/brace sanity checker: {{{1 +syn case match + +" parenthesis/curly/brace sanity checker +syn region mvZone matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,mvError,mvBraceError,mvCurlyError +syn region mvZone matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,mvError,mvBraceError,mvParenError +syn region mvZone matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,mvError,mvCurlyError,mvParenError +syn match mvError "[)\]}]" +syn match mvBraceError "[)}]" contained +syn match mvCurlyError "[)\]]" contained +syn match mvParenError "[\]}]" contained +syn match mvComma "[,;:]" +syn match mvSemiError "[;:]" contained +syn match mvDcolon "::" + +" Maple Packages, updated for Maple 9.5 +syn keyword mvPackage algcurves ArrayTools Cache codegen +syn keyword mvPackage CodeGeneration CodeTools combinat combstruct +syn keyword mvPackage ContextMenu CurveFitting DEtools diffalg +syn keyword mvPackage difforms DiscreteTransforms Domains ExternalCalling +syn keyword mvPackage FileTools finance GaussInt genfunc +syn keyword mvPackage geom3d geometry gfun Groebner +syn keyword mvPackage group hashmset IntegerRelations inttrans +syn keyword mvPackage LargeExpressions LibraryTools liesymm linalg +syn keyword mvPackage LinearAlgebra LinearFunctionalSystems LinearOperators +syn keyword mvPackage ListTools Logic LREtools Maplets +syn keyword mvPackage MathematicalFunctions MathML Matlab +syn keyword mvPackage MatrixPolynomialAlgebra MmaTranslator networks +syn keyword mvPackage numapprox numtheory Optimization OreTools +syn keyword mvPackage Ore_algebra OrthogonalSeries orthopoly padic +syn keyword mvPackage PDEtools plots plottools PolynomialIdeals +syn keyword mvPackage PolynomialTools powseries process QDifferenceEquations +syn keyword mvPackage RandomTools RationalNormalForms RealDomain RootFinding +syn keyword mvPackage ScientificConstants ScientificErrorAnalysis simplex +syn keyword mvPackage Slode SNAP Sockets SoftwareMetrics +syn keyword mvPackage SolveTools Spread stats StringTools +syn keyword mvPackage Student student sumtools SumTools +syn keyword mvPackage tensor TypeTools Units VariationalCalculus +syn keyword mvPackage VectorCalculus Worksheet XMLTools + +" Language Support: {{{1 +syn keyword mvTodo contained COMBAK FIXME TODO XXX +if exists("g:mapleversion") && g:mapleversion < 9 + syn region mvString start=+`+ skip=+``+ end=+`+ keepend contains=mvTodo,@Spell + syn region mvString start=+"+ skip=+""+ end=+"+ keepend contains=@Spell + syn region mvDelayEval start=+'+ end=+'+ keepend contains=ALLBUT,mvError,mvBraceError,mvCurlyError,mvParenError,mvSemiError + syn match mvVarAssign "[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:=" contains=mvAssign + syn match mvAssign ":=" contained +else + syn region mvName start=+`+ skip=+``+ end=+`+ keepend contains=mvTodo + syn region mvString start=+"+ skip=+""+ end=+"+ keepend contains=@Spell + syn region mvDelayEval start=+'+ end=+'+ keepend contains=ALLBUT,mvError,mvBraceError,mvCurlyError,mvParenError + syn match mvDelim "[;:]" display + syn match mvAssign ":=" +endif + +" Lower-Priority Operators: {{{1 +syn match mvOper "\." + +" Number handling: {{{1 +syn match mvNumber "\<\d\+" " integer + syn match mvNumber "[-+]\=\.\d\+" " . integer +syn match mvNumber "\<\d\+\.\d\+" " integer . integer +syn match mvNumber "\<\d\+\." " integer . +syn match mvNumber "\<\d\+\.\." contains=mvRange " integer .. + +syn match mvNumber "\<\d\+e[-+]\=\d\+" " integer e [-+] integer +syn match mvNumber "[-+]\=\.\d\+e[-+]\=\d\+" " . integer e [-+] integer +syn match mvNumber "\<\d\+\.\d*e[-+]\=\d\+" " integer . [integer] e [-+] integer + +syn match mvNumber "[-+]\d\+" " integer +syn match mvNumber "[-+]\d\+\.\d\+" " integer . integer +syn match mvNumber "[-+]\d\+\." " integer . +syn match mvNumber "[-+]\d\+\.\." contains=mvRange " integer .. + +syn match mvNumber "[-+]\d\+e[-+]\=\d\+" " integer e [-+] integer +syn match mvNumber "[-+]\d\+\.\d*e[-+]\=\d\+" " integer . [integer] e [-+] integer + +syn match mvRange "\.\." + +" Operators: {{{1 +syn keyword mvOper and not or xor implies union intersect subset minus mod +syn match mvOper "<>\|[<>]=\|[<>]\|=" +syn match mvOper "&+\|&-\|&\*\|&\/\|&" +syn match mvError "\.\.\." + +" MapleV Statements: ? statement {{{1 + +" MapleV Statements: ? statement +" Split into booleans, conditionals, operators, repeat-logic, etc +syn keyword mvBool true false FAIL +syn keyword mvCond elif else fi if then +syn match mvCond "end\s\+if" + +syn keyword mvRepeat by for in to +syn keyword mvRepeat do from od while +syn match mvRepeat "end\s\+do" + +syn keyword mvSpecial NULL +syn match mvSpecial "\[\]\|{}" + +if exists("g:mapleversion") && g:mapleversion < 9 + syn keyword mvStatement Order fail options read save + syn keyword mvStatement break local point remember stop + syn keyword mvStatement done mod proc restart with + syn keyword mvStatement end mods quit return + syn keyword mvStatement error next +else + syn keyword mvStatement option options read save + syn keyword mvStatement break local remember stop + syn keyword mvStatement done mod proc restart + syn keyword mvStatement end mods quit return + syn keyword mvStatement error next try catch + syn keyword mvStatement finally assuming global export + syn keyword mvStatement module description use +endif + +" Builtin Constants: ? constants {{{1 +syn keyword mvConstant Catalan I gamma infinity +syn keyword mvConstant Pi + +" Comments: DEBUG, if in a comment, is specially highlighted. {{{1 +syn keyword mvDebug contained DEBUG +syn cluster mvCommentGroup contains=mvTodo,mvDebug,@Spell +syn match mvComment "#.*$" contains=@mvCommentGroup + +" Basic Library Functions: ? index[function] +syn keyword mvLibrary $ @ @@ ERROR +syn keyword mvLibrary AFactor KelvinHer arctan factor log rhs +syn keyword mvLibrary AFactors KelvinKei arctanh factors log10 root +syn keyword mvLibrary AiryAi KelvinKer argument fclose lprint roots +syn keyword mvLibrary AiryBi LambertW array feof map round +syn keyword mvLibrary AngerJ Lcm assign fflush map2 rsolve +syn keyword mvLibrary Berlekamp LegendreE assigned filepos match savelib +syn keyword mvLibrary BesselI LegendreEc asspar fixdiv matrix scanf +syn keyword mvLibrary BesselJ LegendreEc1 assume float max searchtext +syn keyword mvLibrary BesselK LegendreF asubs floor maximize sec +syn keyword mvLibrary BesselY LegendreKc asympt fnormal maxnorm sech +syn keyword mvLibrary Beta LegendreKc1 attribute fopen maxorder select +syn keyword mvLibrary C LegendrePi bernstein forget member seq +syn keyword mvLibrary Chi LegendrePic branches fortran min series +syn keyword mvLibrary Ci LegendrePic1 bspline fprintf minimize setattribute +syn keyword mvLibrary CompSeq Li cat frac minpoly shake +syn keyword mvLibrary Content Linsolve ceil freeze modp showprofile +syn keyword mvLibrary D MOLS chrem fremove modp1 showtime +syn keyword mvLibrary DESol Maple_floats close frontend modp2 sign +syn keyword mvLibrary Det MeijerG close fscanf modpol signum +syn keyword mvLibrary Diff Norm coeff fsolve mods simplify +syn keyword mvLibrary Dirac Normal coeffs galois msolve sin +syn keyword mvLibrary DistDeg Nullspace coeftayl gc mtaylor singular +syn keyword mvLibrary Divide Power collect gcd mul sinh +syn keyword mvLibrary Ei Powmod combine gcdex nextprime sinterp +syn keyword mvLibrary Eigenvals Prem commutat genpoly nops solve +syn keyword mvLibrary EllipticCE Primfield comparray harmonic norm sort +syn keyword mvLibrary EllipticCK Primitive compoly has normal sparse +syn keyword mvLibrary EllipticCPi Primpart conjugate hasfun numboccur spline +syn keyword mvLibrary EllipticE ProbSplit content hasoption numer split +syn keyword mvLibrary EllipticF Product convergs hastype op splits +syn keyword mvLibrary EllipticK Psi convert heap open sprem +syn keyword mvLibrary EllipticModulus Quo coords history optimize sprintf +syn keyword mvLibrary EllipticNome RESol copy hypergeom order sqrfree +syn keyword mvLibrary EllipticPi Randpoly cos iFFT parse sqrt +syn keyword mvLibrary Eval Randprime cosh icontent pclose sscanf +syn keyword mvLibrary Expand Ratrecon cost identity pclose ssystem +syn keyword mvLibrary FFT Re cot igcd pdesolve stack +syn keyword mvLibrary Factor Rem coth igcdex piecewise sturm +syn keyword mvLibrary Factors Resultant csc ilcm plot sturmseq +syn keyword mvLibrary FresnelC RootOf csch ilog plot3d subs +syn keyword mvLibrary FresnelS Roots csgn ilog10 plotsetup subsop +syn keyword mvLibrary Fresnelf SPrem dawson implicitdiff pochhammer substring +syn keyword mvLibrary Fresnelg Searchtext define indets pointto sum +syn keyword mvLibrary Frobenius Shi degree index poisson surd +syn keyword mvLibrary GAMMA Si denom indexed polar symmdiff +syn keyword mvLibrary GaussAGM Smith depends indices polylog symmetric +syn keyword mvLibrary Gaussejord Sqrfree diagonal inifcn polynom system +syn keyword mvLibrary Gausselim Ssi diff ininame powmod table +syn keyword mvLibrary Gcd StruveH dilog initialize prem tan +syn keyword mvLibrary Gcdex StruveL dinterp insert prevprime tanh +syn keyword mvLibrary HankelH1 Sum disassemble int primpart testeq +syn keyword mvLibrary HankelH2 Svd discont interface print testfloat +syn keyword mvLibrary Heaviside TEXT discrim interp printf thaw +syn keyword mvLibrary Hermite Trace dismantle invfunc procbody thiele +syn keyword mvLibrary Im WeberE divide invztrans procmake time +syn keyword mvLibrary Indep WeierstrassP dsolve iostatus product translate +syn keyword mvLibrary Interp WeierstrassPPrime eliminate iperfpow proot traperror +syn keyword mvLibrary Inverse WeierstrassSigma ellipsoid iquo property trigsubs +syn keyword mvLibrary Irreduc WeierstrassZeta entries iratrecon protect trunc +syn keyword mvLibrary Issimilar Zeta eqn irem psqrt type +syn keyword mvLibrary JacobiAM abs erf iroot quo typematch +syn keyword mvLibrary JacobiCD add erfc irreduc radnormal unames +syn keyword mvLibrary JacobiCN addcoords eulermac iscont radsimp unapply +syn keyword mvLibrary JacobiCS addressof eval isdifferentiable rand unassign +syn keyword mvLibrary JacobiDC algebraic evala isolate randomize unload +syn keyword mvLibrary JacobiDN algsubs evalapply ispoly randpoly unprotect +syn keyword mvLibrary JacobiDS alias evalb isqrfree range updatesR4 +syn keyword mvLibrary JacobiNC allvalues evalc isqrt rationalize userinfo +syn keyword mvLibrary JacobiND anames evalf issqr ratrecon value +syn keyword mvLibrary JacobiNS antisymm evalfint latex readbytes vector +syn keyword mvLibrary JacobiSC applyop evalgf lattice readdata verify +syn keyword mvLibrary JacobiSD arccos evalhf lcm readlib whattype +syn keyword mvLibrary JacobiSN arccosh evalm lcoeff readline with +syn keyword mvLibrary JacobiTheta1 arccot evaln leadterm readstat writebytes +syn keyword mvLibrary JacobiTheta2 arccoth evalr length realroot writedata +syn keyword mvLibrary JacobiTheta3 arccsc exp lexorder recipoly writeline +syn keyword mvLibrary JacobiTheta4 arccsch expand lhs rem writestat +syn keyword mvLibrary JacobiZeta arcsec expandoff limit remove writeto +syn keyword mvLibrary KelvinBei arcsech expandon ln residue zip +syn keyword mvLibrary KelvinBer arcsin extract lnGAMMA resultant ztrans +syn keyword mvLibrary KelvinHei arcsinh + + +" == PACKAGES ======================================================= {{{1 +" Note: highlighting of package functions is now user-selectable by package. + +" Package: DEtools differential equations tools {{{2 +if exists("mv_DEtools") + syn keyword mvPkg_DEtools DEnormal Dchangevar autonomous dfieldplot reduceOrder untranslate + syn keyword mvPkg_DEtools DEplot PDEchangecoords convertAlg indicialeq regularsp varparam + syn keyword mvPkg_DEtools DEplot3d PDEplot convertsys phaseportrait translate +endif + +" Package: Domains: create domains of computation {{{2 +if exists("mv_Domains") +endif + +" Package: GF: Galois Fields {{{2 +if exists("mv_GF") + syn keyword mvPkg_Galois galois +endif + +" Package: GaussInt: Gaussian Integers {{{2 +if exists("mv_GaussInt") + syn keyword mvPkg_GaussInt GIbasis GIfactor GIissqr GInorm GIquadres GIsmith + syn keyword mvPkg_GaussInt GIchrem GIfactors GIlcm GInormal GIquo GIsqrfree + syn keyword mvPkg_GaussInt GIdivisor GIgcd GImcmbine GIorder GIrem GIsqrt + syn keyword mvPkg_GaussInt GIfacpoly GIgcdex GInearest GIphi GIroots GIunitnormal + syn keyword mvPkg_GaussInt GIfacset GIhermite GInodiv GIprime GIsieve +endif + +" Package: LREtools: manipulate linear recurrence relations {{{2 +if exists("mv_LREtools") + syn keyword mvPkg_LREtools REcontent REprimpart REtodelta delta hypergeomsols ratpolysols + syn keyword mvPkg_LREtools REcreate REreduceorder REtoproc dispersion polysols shift + syn keyword mvPkg_LREtools REplot REtoDE constcoeffsol +endif + +" Package: combinat: combinatorial functions {{{2 +if exists("mv_combinat") + syn keyword mvPkg_combinat Chi composition graycode numbcomb permute randperm + syn keyword mvPkg_combinat bell conjpart inttovec numbcomp powerset stirling1 + syn keyword mvPkg_combinat binomial decodepart lastpart numbpart prevpart stirling2 + syn keyword mvPkg_combinat cartprod encodepart multinomial numbperm randcomb subsets + syn keyword mvPkg_combinat character fibonacci nextpart partition randpart vectoint + syn keyword mvPkg_combinat choose firstpart +endif + +" Package: combstruct: combinatorial structures {{{2 +if exists("mv_combstruct") + syn keyword mvPkg_combstruct allstructs draw iterstructs options specification structures + syn keyword mvPkg_combstruct count finished nextstruct +endif + +" Package: difforms: differential forms {{{2 +if exists("mv_difforms") + syn keyword mvPkg_difforms const defform formpart parity scalarpart wdegree + syn keyword mvPkg_difforms d form mixpar scalar simpform wedge +endif + +" Package: finance: financial mathematics {{{2 +if exists("mv_finance") + syn keyword mvPkg_finance amortization cashflows futurevalue growingperpetuity mv_finance presentvalue + syn keyword mvPkg_finance annuity effectiverate growingannuity levelcoupon perpetuity yieldtomaturity + syn keyword mvPkg_finance blackscholes +endif + +" Package: genfunc: rational generating functions {{{2 +if exists("mv_genfunc") + syn keyword mvPkg_genfunc rgf_charseq rgf_expand rgf_hybrid rgf_pfrac rgf_sequence rgf_term + syn keyword mvPkg_genfunc rgf_encode rgf_findrecur rgf_norm rgf_relate rgf_simp termscale +endif + +" Package: geometry: Euclidean geometry {{{2 +if exists("mv_geometry") + syn keyword mvPkg_geometry circle dsegment hyperbola parabola segment triangle + syn keyword mvPkg_geometry conic ellipse line point square +endif + +" Package: grobner: Grobner bases {{{2 +if exists("mv_grobner") + syn keyword mvPkg_grobner finduni gbasis leadmon normalf solvable spoly + syn keyword mvPkg_grobner finite gsolve +endif + +" Package: group: permutation and finitely-presented groups {{{2 +if exists("mv_group") + syn keyword mvPkg_group DerivedS areconjugate cosets grouporder issubgroup permrep + syn keyword mvPkg_group LCS center cosrep inter mulperms pres + syn keyword mvPkg_group NormalClosure centralizer derived invperm normalizer subgrel + syn keyword mvPkg_group RandElement convert grelgroup isabelian orbit type + syn keyword mvPkg_group Sylow core groupmember isnormal permgroup +endif + +" Package: inttrans: integral transforms {{{2 +if exists("mv_inttrans") + syn keyword mvPkg_inttrans addtable fouriercos hankel invfourier invlaplace mellin + syn keyword mvPkg_inttrans fourier fouriersin hilbert invhilbert laplace +endif + +" Package: liesymm: Lie symmetries {{{2 +if exists("mv_liesymm") + syn keyword mvPkg_liesymm &^ TD depvars getform mixpar vfix + syn keyword mvPkg_liesymm &mod annul determine hasclosure prolong wcollect + syn keyword mvPkg_liesymm Eta autosimp dvalue hook reduce wdegree + syn keyword mvPkg_liesymm Lie close extvars indepvars setup wedgeset + syn keyword mvPkg_liesymm Lrank d getcoeff makeforms translate wsubs +endif + +" Package: linalg: Linear algebra {{{2 +if exists("mv_linalg") + syn keyword mvPkg_linalg GramSchmidt coldim equal indexfunc mulcol singval + syn keyword mvPkg_linalg JordanBlock colspace exponential innerprod multiply smith + syn keyword mvPkg_linalg LUdecomp colspan extend intbasis norm stack + syn keyword mvPkg_linalg QRdecomp companion ffgausselim inverse normalize submatrix + syn keyword mvPkg_linalg addcol cond fibonacci ismith orthog subvector + syn keyword mvPkg_linalg addrow copyinto forwardsub issimilar permanent sumbasis + syn keyword mvPkg_linalg adjoint crossprod frobenius iszero pivot swapcol + syn keyword mvPkg_linalg angle curl gausselim jacobian potential swaprow + syn keyword mvPkg_linalg augment definite gaussjord jordan randmatrix sylvester + syn keyword mvPkg_linalg backsub delcols geneqns kernel randvector toeplitz + syn keyword mvPkg_linalg band delrows genmatrix laplacian rank trace + syn keyword mvPkg_linalg basis det grad leastsqrs references transpose + syn keyword mvPkg_linalg bezout diag hadamard linsolve row vandermonde + syn keyword mvPkg_linalg blockmatrix diverge hermite matadd rowdim vecpotent + syn keyword mvPkg_linalg charmat dotprod hessian matrix rowspace vectdim + syn keyword mvPkg_linalg charpoly eigenval hilbert minor rowspan vector + syn keyword mvPkg_linalg cholesky eigenvect htranspose minpoly scalarmul wronskian + syn keyword mvPkg_linalg col entermatrix ihermite +endif + +" Package: logic: Boolean logic {{{2 +if exists("mv_logic") + syn keyword mvPkg_logic MOD2 bsimp distrib environ randbool tautology + syn keyword mvPkg_logic bequal canon dual frominert satisfy toinert +endif + +" Package: networks: graph networks {{{2 +if exists("mv_networks") + syn keyword mvPkg_networks acycpoly connect dinic graph mincut show + syn keyword mvPkg_networks addedge connectivity djspantree graphical mindegree shrink + syn keyword mvPkg_networks addvertex contract dodecahedron gsimp neighbors span + syn keyword mvPkg_networks adjacency countcuts draw gunion new spanpoly + syn keyword mvPkg_networks allpairs counttrees duplicate head octahedron spantree + syn keyword mvPkg_networks ancestor cube edges icosahedron outdegree tail + syn keyword mvPkg_networks arrivals cycle ends incidence path tetrahedron + syn keyword mvPkg_networks bicomponents cyclebase eweight incident petersen tuttepoly + syn keyword mvPkg_networks charpoly daughter flow indegree random vdegree + syn keyword mvPkg_networks chrompoly degreeseq flowpoly induce rank vertices + syn keyword mvPkg_networks complement delete fundcyc isplanar rankpoly void + syn keyword mvPkg_networks complete departures getlabel maxdegree shortpathtree vweight + syn keyword mvPkg_networks components diameter girth +endif + +" Package: numapprox: numerical approximation {{{2 +if exists("mv_numapprox") + syn keyword mvPkg_numapprox chebdeg chebsort fnorm laurent minimax remez + syn keyword mvPkg_numapprox chebmult chebyshev hornerform laurent pade taylor + syn keyword mvPkg_numapprox chebpade confracform infnorm minimax +endif + +" Package: numtheory: number theory {{{2 +if exists("mv_numtheory") + syn keyword mvPkg_numtheory B cyclotomic invcfrac mcombine nthconver primroot + syn keyword mvPkg_numtheory F divisors invphi mersenne nthdenom quadres + syn keyword mvPkg_numtheory GIgcd euler isolve minkowski nthnumer rootsunity + syn keyword mvPkg_numtheory J factorEQ isprime mipolys nthpow safeprime + syn keyword mvPkg_numtheory L factorset issqrfree mlog order sigma + syn keyword mvPkg_numtheory M fermat ithprime mobius pdexpand sq2factor + syn keyword mvPkg_numtheory bernoulli ifactor jacobi mroot phi sum2sqr + syn keyword mvPkg_numtheory bigomega ifactors kronecker msqrt pprimroot tau + syn keyword mvPkg_numtheory cfrac imagunit lambda nearestp prevprime thue + syn keyword mvPkg_numtheory cfracpol index legendre nextprime +endif + +" Package: orthopoly: orthogonal polynomials {{{2 +if exists("mv_orthopoly") + syn keyword mvPkg_orthopoly G H L P T U +endif + +" Package: padic: p-adic numbers {{{2 +if exists("mv_padic") + syn keyword mvPkg_padic evalp function orderp ratvaluep rootp valuep + syn keyword mvPkg_padic expansion lcoeffp ordp +endif + +" Package: plots: graphics package {{{2 +if exists("mv_plots") + syn keyword mvPkg_plots animate coordplot3d gradplot3d listplot3d polarplot setoptions3d + syn keyword mvPkg_plots animate3d cylinderplot implicitplot loglogplot polygonplot spacecurve + syn keyword mvPkg_plots changecoords densityplot implicitplot3d logplot polygonplot3d sparsematrixplot + syn keyword mvPkg_plots complexplot display inequal matrixplot polyhedraplot sphereplot + syn keyword mvPkg_plots complexplot3d display3d listcontplot odeplot replot surfdata + syn keyword mvPkg_plots conformal fieldplot listcontplot3d pareto rootlocus textplot + syn keyword mvPkg_plots contourplot fieldplot3d listdensityplot pointplot semilogplot textplot3d + syn keyword mvPkg_plots contourplot3d gradplot listplot pointplot3d setoptions tubeplot + syn keyword mvPkg_plots coordplot +endif + +" Package: plottools: basic graphical objects {{{2 +if exists("mv_plottools") + syn keyword mvPkg_plottools arc curve dodecahedron hyperbola pieslice semitorus + syn keyword mvPkg_plottools arrow cutin ellipse icosahedron point sphere + syn keyword mvPkg_plottools circle cutout ellipticArc line polygon tetrahedron + syn keyword mvPkg_plottools cone cylinder hemisphere octahedron rectangle torus + syn keyword mvPkg_plottools cuboid disk hexahedron +endif + +" Package: powseries: formal power series {{{2 +if exists("mv_powseries") + syn keyword mvPkg_powseries compose multiply powcreate powlog powsolve reversion + syn keyword mvPkg_powseries evalpow negative powdiff powpoly powsqrt subtract + syn keyword mvPkg_powseries inverse powadd powexp powseries quotient tpsform + syn keyword mvPkg_powseries multconst powcos powint powsin +endif + +" Package: process: (Unix)-multi-processing {{{2 +if exists("mv_process") + syn keyword mvPkg_process block fork pclose pipe popen wait + syn keyword mvPkg_process exec kill +endif + +" Package: simplex: linear optimization {{{2 +if exists("mv_simplex") + syn keyword mvPkg_simplex NONNEGATIVE cterm dual maximize pivoteqn setup + syn keyword mvPkg_simplex basis define_zero equality minimize pivotvar standardize + syn keyword mvPkg_simplex convexhull display feasible pivot ratio +endif + +" Package: stats: statistics {{{2 +if exists("mv_stats") + syn keyword mvPkg_stats anova describe fit random statevalf statplots +endif + +" Package: student: student calculus {{{2 +if exists("mv_student") + syn keyword mvPkg_student D Product distance isolate middlesum rightsum + syn keyword mvPkg_student Diff Sum equate leftbox midpoint showtangent + syn keyword mvPkg_student Doubleint Tripleint extrema leftsum minimize simpson + syn keyword mvPkg_student Int changevar integrand makeproc minimize slope + syn keyword mvPkg_student Limit combine intercept maximize powsubs trapezoid + syn keyword mvPkg_student Lineint completesquare intparts middlebox rightbox value + syn keyword mvPkg_student Point +endif + +" Package: sumtools: indefinite and definite sums {{{2 +if exists("mv_sumtools") + syn keyword mvPkg_sumtools Hypersum extended_gosper hyperrecursion hyperterm sumrecursion sumtohyper + syn keyword mvPkg_sumtools Sumtohyper gosper hypersum simpcomb +endif + +" Package: tensor: tensor computations and General Relativity {{{2 +if exists("mv_tensor") + syn keyword mvPkg_tensor Christoffel1 Riemann connexF display_allGR get_compts partial_diff + syn keyword mvPkg_tensor Christoffel2 RiemannF contract dual get_rank permute_indices + syn keyword mvPkg_tensor Einstein Weyl convertNP entermetric invars petrov + syn keyword mvPkg_tensor Jacobian act cov_diff exterior_diff invert prod + syn keyword mvPkg_tensor Killing_eqns antisymmetrize create exterior_prod lin_com raise + syn keyword mvPkg_tensor Levi_Civita change_basis d1metric frame lower symmetrize + syn keyword mvPkg_tensor Lie_diff commutator d2metric geodesic_eqns npcurve tensorsGR + syn keyword mvPkg_tensor Ricci compare directional_diff get_char npspin transform + syn keyword mvPkg_tensor Ricciscalar conj displayGR +endif + +" Package: totorder: total orders on names {{{2 +if exists("mv_totorder") + syn keyword mvPkg_totorder forget init ordering tassume tis +endif +" ===================================================================== + +" Highlighting: Define the default highlighting. {{{1 +" Only when an item doesn't have highlighting yet +if !exists("skip_maplev_syntax_inits") + + " Maple->Maple Links {{{2 + hi def link mvBraceError mvError + hi def link mvCurlyError mvError + hi def link mvDebug mvTodo + hi def link mvParenError mvError + hi def link mvPkg_DEtools mvPkgFunc + hi def link mvPkg_Galois mvPkgFunc + hi def link mvPkg_GaussInt mvPkgFunc + hi def link mvPkg_LREtools mvPkgFunc + hi def link mvPkg_combinat mvPkgFunc + hi def link mvPkg_combstruct mvPkgFunc + hi def link mvPkg_difforms mvPkgFunc + hi def link mvPkg_finance mvPkgFunc + hi def link mvPkg_genfunc mvPkgFunc + hi def link mvPkg_geometry mvPkgFunc + hi def link mvPkg_grobner mvPkgFunc + hi def link mvPkg_group mvPkgFunc + hi def link mvPkg_inttrans mvPkgFunc + hi def link mvPkg_liesymm mvPkgFunc + hi def link mvPkg_linalg mvPkgFunc + hi def link mvPkg_logic mvPkgFunc + hi def link mvPkg_networks mvPkgFunc + hi def link mvPkg_numapprox mvPkgFunc + hi def link mvPkg_numtheory mvPkgFunc + hi def link mvPkg_orthopoly mvPkgFunc + hi def link mvPkg_padic mvPkgFunc + hi def link mvPkg_plots mvPkgFunc + hi def link mvPkg_plottools mvPkgFunc + hi def link mvPkg_powseries mvPkgFunc + hi def link mvPkg_process mvPkgFunc + hi def link mvPkg_simplex mvPkgFunc + hi def link mvPkg_stats mvPkgFunc + hi def link mvPkg_student mvPkgFunc + hi def link mvPkg_sumtools mvPkgFunc + hi def link mvPkg_tensor mvPkgFunc + hi def link mvPkg_totorder mvPkgFunc + hi def link mvRange mvOper + hi def link mvSemiError mvError + hi def link mvDelim Delimiter + + " Maple->Standard Links {{{2 + hi def link mvAssign Delimiter + hi def link mvBool Boolean + hi def link mvComma Delimiter + hi def link mvComment Comment + hi def link mvCond Conditional + hi def link mvConstant Number + hi def link mvDelayEval Label + hi def link mvDcolon Delimiter + hi def link mvError Error + hi def link mvLibrary Statement + hi def link mvNumber Number + hi def link mvOper Operator + hi def link mvAssign Delimiter + hi def link mvPackage Type + hi def link mvPkgFunc Function + hi def link mvPktOption Special + hi def link mvRepeat Repeat + hi def link mvSpecial Special + hi def link mvStatement Statement + hi def link mvName String + hi def link mvString String + hi def link mvTodo Todo + +endif + +" Current Syntax: {{{1 +let b:current_syntax = "maple" +" vim: ts=20 fdm=marker diff --git a/runtime/syntax/markdown.vim b/runtime/syntax/markdown.vim new file mode 100644 index 0000000..44187ff --- /dev/null +++ b/runtime/syntax/markdown.vim @@ -0,0 +1,200 @@ +" Vim syntax file +" Language: Markdown +" Maintainer: Tim Pope +" Filenames: *.markdown +" Last Change: 2022 Oct 13 + +if exists("b:current_syntax") + finish +endif + +if !exists('main_syntax') + let main_syntax = 'markdown' +endif + +if has('folding') + let s:foldmethod = &l:foldmethod + let s:foldtext = &l:foldtext +endif +let s:iskeyword = &l:iskeyword + +runtime! syntax/html.vim +unlet! b:current_syntax + +if !exists('g:markdown_fenced_languages') + let g:markdown_fenced_languages = [] +endif +let s:done_include = {} +for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")') + if has_key(s:done_include, matchstr(s:type,'[^.]*')) + continue + endif + if s:type =~ '\.' + let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*') + endif + syn case match + exe 'syn include @markdownHighlight_'.tr(s:type,'.','_').' syntax/'.matchstr(s:type,'[^.]*').'.vim' + unlet! b:current_syntax + let s:done_include[matchstr(s:type,'[^.]*')] = 1 +endfor +unlet! s:type +unlet! s:done_include + +syn spell toplevel +if exists('s:foldmethod') && s:foldmethod !=# &l:foldmethod + let &l:foldmethod = s:foldmethod + unlet s:foldmethod +endif +if exists('s:foldtext') && s:foldtext !=# &l:foldtext + let &l:foldtext = s:foldtext + unlet s:foldtext +endif +if s:iskeyword !=# &l:iskeyword + let &l:iskeyword = s:iskeyword +endif +unlet s:iskeyword + +if !exists('g:markdown_minlines') + let g:markdown_minlines = 50 +endif +execute 'syn sync minlines=' . g:markdown_minlines +syn sync linebreaks=1 +syn case ignore + +syn match markdownValid '[<>]\c[a-z/$!]\@!' transparent contains=NONE +syn match markdownValid '&\%(#\=\w*;\)\@!' transparent contains=NONE + +syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock,htmlSpecialChar + +syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule +syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop,markdownError,markdownValid + +syn match markdownH1 "^.\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink +syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink + +syn match markdownHeadingRule "^[=-]\+$" contained + +syn region markdownH1 matchgroup=markdownH1Delimiter start=" \{,3}#\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained +syn region markdownH2 matchgroup=markdownH2Delimiter start=" \{,3}##\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained +syn region markdownH3 matchgroup=markdownH3Delimiter start=" \{,3}###\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained +syn region markdownH4 matchgroup=markdownH4Delimiter start=" \{,3}####\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained +syn region markdownH5 matchgroup=markdownH5Delimiter start=" \{,3}#####\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained +syn region markdownH6 matchgroup=markdownH6Delimiter start=" \{,3}######\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained + +syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock + +syn region markdownCodeBlock start="^\n\( \{4,}\|\t\)" end="^\ze \{,3}\S.*$" keepend + +" TODO: real nesting +syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained +syn match markdownOrderedListMarker "\%(\t\| \{0,4}\)\<\d\+\.\%(\s\+\S\)\@=" contained + +syn match markdownRule "\* *\* *\*[ *]*$" contained +syn match markdownRule "- *- *-[ -]*$" contained + +syn match markdownLineBreak " \{2,\}$" + +syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite +syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained +syn region markdownUrl matchgroup=markdownUrlDelimiter start="<" end=">" oneline keepend nextgroup=markdownUrlTitle skipwhite contained +syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+"+ keepend contained +syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained +syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained + +syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^][]*\%(\[\_[^][]*\]\_[^][]*\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart +syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained +syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained +syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline + +let s:concealends = '' +if has('conceal') && get(g:, 'markdown_syntax_conceal', 1) == 1 + let s:concealends = ' concealends' +endif +exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\*\S\@=" end="\S\@<=\*\|^$" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends +exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@#+.!-]" +syn match markdownError "\w\@<=_\w\@=" + +hi def link markdownH1 htmlH1 +hi def link markdownH2 htmlH2 +hi def link markdownH3 htmlH3 +hi def link markdownH4 htmlH4 +hi def link markdownH5 htmlH5 +hi def link markdownH6 htmlH6 +hi def link markdownHeadingRule markdownRule +hi def link markdownH1Delimiter markdownHeadingDelimiter +hi def link markdownH2Delimiter markdownHeadingDelimiter +hi def link markdownH3Delimiter markdownHeadingDelimiter +hi def link markdownH4Delimiter markdownHeadingDelimiter +hi def link markdownH5Delimiter markdownHeadingDelimiter +hi def link markdownH6Delimiter markdownHeadingDelimiter +hi def link markdownHeadingDelimiter Delimiter +hi def link markdownOrderedListMarker markdownListMarker +hi def link markdownListMarker htmlTagName +hi def link markdownBlockquote Comment +hi def link markdownRule PreProc + +hi def link markdownFootnote Typedef +hi def link markdownFootnoteDefinition Typedef + +hi def link markdownLinkText htmlLink +hi def link markdownIdDeclaration Typedef +hi def link markdownId Type +hi def link markdownAutomaticLink markdownUrl +hi def link markdownUrl Float +hi def link markdownUrlTitle String +hi def link markdownIdDelimiter markdownLinkDelimiter +hi def link markdownUrlDelimiter htmlTag +hi def link markdownUrlTitleDelimiter Delimiter + +hi def link markdownItalic htmlItalic +hi def link markdownItalicDelimiter markdownItalic +hi def link markdownBold htmlBold +hi def link markdownBoldDelimiter markdownBold +hi def link markdownBoldItalic htmlBoldItalic +hi def link markdownBoldItalicDelimiter markdownBoldItalic +hi def link markdownStrike htmlStrike +hi def link markdownStrikeDelimiter markdownStrike +hi def link markdownCodeDelimiter Delimiter + +hi def link markdownEscape Special +hi def link markdownError Error + +let b:current_syntax = "markdown" +if main_syntax ==# 'markdown' + unlet main_syntax +endif + +" vim:set sw=2: diff --git a/runtime/syntax/masm.vim b/runtime/syntax/masm.vim new file mode 100644 index 0000000..dc9a292 --- /dev/null +++ b/runtime/syntax/masm.vim @@ -0,0 +1,560 @@ +" Vim syntax file +" Language: Microsoft Macro Assembler (80x86) +" Orig Author: Rob Brady +" Maintainer: Wu Yongwei +" Last Change: 2023-12-20 10:20:04 +0800 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn iskeyword @,48-57,_,36,60,62,63,@-@ + +syn case ignore + + +syn match masmIdentifier "[@a-z_$?][@a-z0-9_$?<>]*" +syn match masmLabel "^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-1 + +syn match masmDecimal "[-+]\?\d\+[dt]\?" +syn match masmBinary "[-+]\?[0-1]\+[by]" "put this before hex or 0bfh dies! +syn match masmOctal "[-+]\?[0-7]\+[oq]" +syn match masmHexadecimal "[-+]\?[0-9]\x*h" +syn match masmFloatRaw "[-+]\?[0-9]\x*r" +syn match masmFloat "[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?" + +syn match masmComment ";.*" contains=@Spell +syn region masmComment start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell +syn region masmString start=+'+ end=+'+ oneline contains=@Spell +syn region masmString start=+"+ end=+"+ oneline contains=@Spell + +syn region masmTitleArea start=+\" +syn match masmOperator "CARRY?" +syn match masmOperator "OVERFLOW?" +syn match masmOperator "PARITY?" +syn match masmOperator "SIGN?" +syn match masmOperator "ZERO?" +syn keyword masmDirective ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT +syn keyword masmDirective DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB +syn keyword masmDirective ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE +syn keyword masmDirective ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END +syn keyword masmDirective ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN +syn keyword masmDirective EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF2 +syn keyword masmDirective IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB +syn keyword masmDirective IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP +syn keyword masmDirective IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE +syn keyword masmDirective POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT +syn keyword masmDirective RECORD REPEAT REPT SEGMENT SIZESTR STRUC +syn keyword masmDirective STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE +syn keyword masmDirective TYPEDEF UNION WHILE +syn match masmDirective "\.8086\>" +syn match masmDirective "\.8087\>" +syn match masmDirective "\.NO87\>" +syn match masmDirective "\.186\>" +syn match masmDirective "\.286\>" +syn match masmDirective "\.286C\>" +syn match masmDirective "\.286P\>" +syn match masmDirective "\.287\>" +syn match masmDirective "\.386\>" +syn match masmDirective "\.386C\>" +syn match masmDirective "\.386P\>" +syn match masmDirective "\.387\>" +syn match masmDirective "\.486\>" +syn match masmDirective "\.486P\>" +syn match masmDirective "\.586\>" +syn match masmDirective "\.586P\>" +syn match masmDirective "\.686\>" +syn match masmDirective "\.686P\>" +syn match masmDirective "\.K3D\>" +syn match masmDirective "\.MMX\>" +syn match masmDirective "\.XMM\>" +syn match masmDirective "\.ALPHA\>" +syn match masmDirective "\.DOSSEG\>" +syn match masmDirective "\.SEQ\>" +syn match masmDirective "\.CODE\>" +syn match masmDirective "\.CONST\>" +syn match masmDirective "\.DATA\>" +syn match masmDirective "\.DATA?" +syn match masmDirective "\.EXIT\>" +syn match masmDirective "\.FARDATA\>" +syn match masmDirective "\.FARDATA?" +syn match masmDirective "\.MODEL\>" +syn match masmDirective "\.STACK\>" +syn match masmDirective "\.STARTUP\>" +syn match masmDirective "\.IF\>" +syn match masmDirective "\.ELSE\>" +syn match masmDirective "\.ELSEIF\>" +syn match masmDirective "\.ENDIF\>" +syn match masmDirective "\.REPEAT\>" +syn match masmDirective "\.UNTIL\>" +syn match masmDirective "\.UNTILCXZ\>" +syn match masmDirective "\.WHILE\>" +syn match masmDirective "\.ENDW\>" +syn match masmDirective "\.BREAK\>" +syn match masmDirective "\.CONTINUE\>" +syn match masmDirective "\.ERR\>" +syn match masmDirective "\.ERR1\>" +syn match masmDirective "\.ERR2\>" +syn match masmDirective "\.ERRB\>" +syn match masmDirective "\.ERRDEF\>" +syn match masmDirective "\.ERRDIF\>" +syn match masmDirective "\.ERRDIFI\>" +syn match masmDirective "\.ERRE\>" +syn match masmDirective "\.ERRIDN\>" +syn match masmDirective "\.ERRIDNI\>" +syn match masmDirective "\.ERRNB\>" +syn match masmDirective "\.ERRNDEF\>" +syn match masmDirective "\.ERRNZ\>" +syn match masmDirective "\.LALL\>" +syn match masmDirective "\.SALL\>" +syn match masmDirective "\.XALL\>" +syn match masmDirective "\.LFCOND\>" +syn match masmDirective "\.SFCOND\>" +syn match masmDirective "\.TFCOND\>" +syn match masmDirective "\.CREF\>" +syn match masmDirective "\.NOCREF\>" +syn match masmDirective "\.XCREF\>" +syn match masmDirective "\.LIST\>" +syn match masmDirective "\.NOLIST\>" +syn match masmDirective "\.XLIST\>" +syn match masmDirective "\.LISTALL\>" +syn match masmDirective "\.LISTIF\>" +syn match masmDirective "\.NOLISTIF\>" +syn match masmDirective "\.LISTMACRO\>" +syn match masmDirective "\.NOLISTMACRO\>" +syn match masmDirective "\.LISTMACROALL\>" +syn match masmDirective "\.FPO\>" +syn match masmDirective "\.RADIX\>" +syn match masmDirective "\.SAFESEH\>" +syn match masmDirective "%OUT\>" +syn match masmDirective "ALIGN\>" +syn match masmOption "ALIGN([0-9]\+)" + +syn keyword masmRegister AX BX CX DX SI DI BP SP +syn keyword masmRegister CS DS SS ES FS GS +syn keyword masmRegister AH BH CH DH AL BL CL DL +syn keyword masmRegister EAX EBX ECX EDX ESI EDI EBP ESP +syn keyword masmRegister CR0 CR2 CR3 CR4 +syn keyword masmRegister DR0 DR1 DR2 DR3 DR6 DR7 +syn keyword masmRegister TR3 TR4 TR5 TR6 TR7 +syn match masmRegister "ST([0-7])" + +" x86-64 registers +syn keyword masmRegister RAX RBX RCX RDX RSI RDI RBP RSP +syn keyword masmRegister R8 R9 R10 R11 R12 R13 R14 R15 +syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D +syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W +syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B + +" SSE/AVX registers +syn match masmRegister "\(X\|Y\|Z\)MM[12]\?[0-9]\>" +syn match masmRegister "\(X\|Y\|Z\)MM3[01]\>" + +" Instruction prefixes +syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ + +" 8086/8088 opcodes +syn keyword masmOpcode AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD +syn keyword masmOpcode CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC +syn keyword masmOpcode DIV ESC HLT IDIV IMUL IN INC INT INTO IRET +syn keyword masmOpcode JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW +syn keyword masmOpcode LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ +syn keyword masmOpcode LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB +syn keyword masmOpcode MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH +syn keyword masmOpcode PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL +syn keyword masmOpcode SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI +syn keyword masmOpcode STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB +syn keyword masmOpcode XOR +syn match masmOpcode "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" + +" 80186 opcodes +syn keyword masmOpcode BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB +syn keyword masmOpcode OUTSW POPA PUSHA PUSHW + +" 80286 opcodes +syn keyword masmOpcode ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW + +" 80286/80386 privileged opcodes +syn keyword masmOpcode CLTS LGDT LIDT LLDT LMSW LTR + +" 80386 opcodes +syn keyword masmOpcode BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD +syn keyword masmOpcode IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD +syn keyword masmOpcode LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX +syn keyword masmOpcode MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD +syn keyword masmOpcode SCASD SHLD SHRD STOSD +syn match masmOpcode "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" + +" 80486 opcodes +syn keyword masmOpcode BSWAP CMPXCHG INVD INVLPG WBINVD XADD + +" Floating-point opcodes as of 487 +syn keyword masmOpFloat F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX +syn keyword masmOpFloat FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI +syn keyword masmOpFloat FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI +syn keyword masmOpFloat FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD +syn keyword masmOpFloat FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB +syn keyword masmOpFloat FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E +syn keyword masmOpFloat FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN +syn keyword masmOpFloat FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE +syn keyword masmOpFloat FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW +syn keyword masmOpFloat FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB +syn keyword masmOpFloat FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP +syn keyword masmOpFloat FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1 + +" Floating-point opcodes in Pentium and later processors +syn keyword masmOpFloat FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE +syn keyword masmOpFloat FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP +syn keyword masmOpFloat FXSAVE FXRSTOR + +" MMX opcodes (Pentium w/ MMX, Pentium II, and later) +syn keyword masmOpcode MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB +syn keyword masmOpcode PUNPCKHBW PUNPCKHWD PUNPCKHDQ +syn keyword masmOpcode PUNPCKLBW PUNPCKLWD PUNPCKLDQ +syn keyword masmOpcode PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW +syn keyword masmOpcode PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW +syn keyword masmOpcode PMULHW PMULLW PMADDWD +syn keyword masmOpcode PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD +syn keyword masmOpcode PAND PANDN POR PXOR +syn keyword masmOpcode PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD +syn keyword masmOpcode EMMS + +" SSE opcodes (Pentium III and later) +syn keyword masmOpcode MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS +syn keyword masmOpcode MOVMSKPS MOVSS +syn keyword masmOpcode ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS +syn keyword masmOpcode RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS +syn keyword masmOpcode MAXPS MAXSS MINPS MINSS +syn keyword masmOpcode CMPPS CMPSS COMISS UCOMISS +syn keyword masmOpcode ANDPS ANDNPS ORPS XORPS +syn keyword masmOpcode SHUFPS UNPCKHPS UNPCKLPS +syn keyword masmOpcode CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI +syn keyword masmOpcode CVTSS2SI CVTTSS2SI +syn keyword masmOpcode LDMXCSR STMXCSR +syn keyword masmOpcode PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW +syn keyword masmOpcode PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW +syn keyword masmOpcode MASKMOVQ MOVNTQ MOVNTPS SFENCE +syn keyword masmOpcode PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA + +" SSE2 opcodes (Pentium 4 and later) +syn keyword masmOpcode MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD +syn keyword masmOpcode ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD +syn keyword masmOpcode SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD +syn keyword masmOpcode ANDPD ANDNPD ORPD XORPD +syn keyword masmOpcode CMPPD CMPSD COMISD UCOMISD +syn keyword masmOpcode SHUFPD UNPCKHPD UNPCKLPD +syn keyword masmOpcode CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ +syn keyword masmOpcode CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS +syn keyword masmOpcode CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD +syn keyword masmOpcode CVTDQ2PS CVTPS2DQ CVTTPS2DQ +syn keyword masmOpcode MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ +syn keyword masmOpcode PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD +syn keyword masmOpcode PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ +syn keyword masmOpcode CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU +syn keyword masmOpcode MOVNTPD MOVNTDQ MOVNTI + +" SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later) +syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD +syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD +syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT + +" SSSE3 opcodes (Core and later) +syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD +syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW +syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW + +" SSE 4.1 opcodes (Penryn and later) +syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD +syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD +syn keyword masmOpcode PBLENDVB PBLENDW +syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD +syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD +syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD +syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ +syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ +syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD +syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD +syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ +syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA + +" SSE 4.2 opcodes (Nehalem and later) +syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ +syn keyword masmOpcode CRC32 POPCNT LZCNT + +" AES-NI (Westmere (2010) and later) +syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST +syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ + +" AVX (Sandy Bridge (2011) and later) +syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128 +syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD +syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128 +syn keyword masmOpcode VZEROALL VZEROUPPER + +" AVX-2 (Haswell and later) +syn keyword masmOpcode VPBROADCASTB VPBROADCASTW VPBROADCASTD +syn keyword masmOpcode VPBROADCASTQ VBROADCASTI128 +syn keyword masmOpcode VINSERTI128 VEXTRACTI128 +syn keyword masmOpcode VGATHERDPD VGATHERQPD VGATHERDPS VGATHERQPS +syn keyword masmOpcode VPGATHERDD VPGATHERDQ VPGATHERQD VPGATHERQQ +syn keyword masmOpcode VPMASKMOVD VPMASKMOVQ +syn keyword masmOpcode PERMPS VPERMD VPERMPD VPERMQ VPERM2I128 +syn keyword masmOpcode VPBLENDD VPSLLVD VPSLLVQ VPSRLVD VPSRLVQ +syn keyword masmOpcode VPSRAVD + +" AVX-512 (Knights Landing/Skylake-X and later) +syn keyword masmOpcode KAND KANDN KMOV KUNPCK KNOT KOR KORTEST +syn keyword masmOpcode KSHIFTL KSHIFTR KXNOR KXOR KADD KTEST +syn keyword masmOpcode VBLENDMPD VBLENDMPS +syn keyword masmOpcode VPBLENDMD VPBLENDMQ VPBLENDMB VPBLENDMW +syn keyword masmOpcode VPCMPD VPCMPUD VPCMPQ VPCMPUQ +syn keyword masmOpcode VPCMPB VPCMPUB VPCMPW VPCMPUW +syn keyword masmOpcode VPTESTMD VPTESTMQ VPTESTNMD VPTESTNMQ +syn keyword masmOpcode VPTESTMB VPTESTMW VPTESTNMB VPTESTNMW +syn keyword masmOpcode VCOMPRESSPD VCOMPRESSPS VPCOMPRESSD VPCOMPRESSQ +syn keyword masmOpcode VEXPANDPD VEXPANDPS VPEXPANDD VPEXPANDQ +syn keyword masmOpcode VPERMB VPERMW VPERMT2B VPERMT2W VPERMI2PD +syn keyword masmOpcode VPERMI2PS VPERMI2D VPERMI2Q VPERMI2B VPERMI2W +syn keyword masmOpcode VPERMT2PS VPERMT2PD VPERMT2D VPERMT2Q +syn keyword masmOpcode VSHUFF32x4 VSHUFF64x2 VSHUFI32x4 VSHUFI64x2 +syn keyword masmOpcode VPMULTISHIFTQB VPTERNLOGD VPTERNLOGQ +syn keyword masmOpcode VPMOVQD VPMOVSQD VPMOVUSQD VPMOVQW VPMOVSQW +syn keyword masmOpcode VPMOVUSQW VPMOVQB VPMOVSQB VPMOVUSQB VPMOVDW +syn keyword masmOpcode VPMOVSDW VPMOVUSDW VPMOVDB VPMOVSDB VPMOVUSDB +syn keyword masmOpcode VPMOVWB VPMOVSWB VPMOVUSWB +syn keyword masmOpcode VCVTPS2UDQ VCVTPD2UDQ VCVTTPS2UDQ VCVTTPD2UDQ +syn keyword masmOpcode VCVTSS2USI VCVTSD2USI VCVTTSS2USI VCVTTSD2USI +syn keyword masmOpcode VCVTPS2QQ VCVTPD2QQ VCVTPS2UQQ VCVTPD2UQQ +syn keyword masmOpcode VCVTTPS2QQ VCVTTPD2QQ VCVTTPS2UQQ VCVTTPD2UQQ +syn keyword masmOpcode VCVTUDQ2PS VCVTUDQ2PD VCVTUSI2PS VCVTUSI2PD +syn keyword masmOpcode VCVTUSI2SD VCVTUSI2SS VCVTUQQ2PS VCVTUQQ2PD +syn keyword masmOpcode VCVTQQ2PD VCVTQQ2PS VGETEXPPD +syn keyword masmOpcode VGETEXPPS VGETEXPSD VGETEXPSS +syn keyword masmOpcode VGETMANTPD VGETMANTPS VGETMANTSD VGETMANTSS +syn keyword masmOpcode VFIXUPIMMPD VFIXUPIMMPS VFIXUPIMMSD VFIXUPIMMSS +syn keyword masmOpcode VRCP14PD VRCP14PS VRCP14SD VRCP14SS +syn keyword masmOpcode VRNDSCALEPS VRNDSCALEPD VRNDSCALESS VRNDSCALESD +syn keyword masmOpcode VRSQRT14PD VRSQRT14PS VRSQRT14SD VRSQRT14SS +syn keyword masmOpcode VSCALEFPS VSCALEFPD VSCALEFSS VSCALEFSD +syn keyword masmOpcode VBROADCASTI32X2 VBROADCASTI32X4 VBROADCASTI32X8 +syn keyword masmOpcode VBROADCASTI64X2 VBROADCASTI64X4 +syn keyword masmOpcode VALIGND VALIGNQ VDBPSADBW VPABSQ VPMAXSQ +syn keyword masmOpcode VPMAXUQ VPMINSQ VPMINUQ VPROLD VPROLVD VPROLQ +syn keyword masmOpcode VPROLVQ VPRORD VPRORVD VPRORQ VPRORVQ +syn keyword masmOpcode VPSCATTERDD VPSCATTERDQ VPSCATTERQD VPSCATTERQQ +syn keyword masmOpcode VSCATTERDPS VSCATTERDPD VSCATTERQPS VSCATTERQPD +syn keyword masmOpcode VPCONFLICTD VPCONFLICTQ VPLZCNTD VPLZCNTQ +syn keyword masmOpcode VPBROADCASTMB2Q VPBROADCASTMW2D +syn keyword masmOpcode VEXP2PD VEXP2PS +syn keyword masmOpcode VRCP28PD VRCP28PS VRCP28SD VRCP28SS +syn keyword masmOpcode VRSQRT28PD VRSQRT28PS VRSQRT28SD VRSQRT28SS +syn keyword masmOpcode VGATHERPF0DPS VGATHERPF0QPS VGATHERPF0DPD +syn keyword masmOpcode VGATHERPF0QPD VGATHERPF1DPS VGATHERPF1QPS +syn keyword masmOpcode VGATHERPF1DPD VGATHERPF1QPD VSCATTERPF0DPS +syn keyword masmOpcode VSCATTERPF0QPS VSCATTERPF0DPD VSCATTERPF0QPD +syn keyword masmOpcode VSCATTERPF1DPS VSCATTERPF1QPS VSCATTERPF1DPD +syn keyword masmOpcode VSCATTERPF1QPD +syn keyword masmOpcode V4FMADDPS V4FMADDSS V4FNMADDPS V4FNMADDSS +syn keyword masmOpcode VP4DPWSSD VP4DPWSSDS +syn keyword masmOpcode VFPCLASSPS VFPCLASSPD VFPCLASSSS VFPCLASSSD +syn keyword masmOpcode VRANGEPS VRANGEPD VRANGESS VRANGESD +syn keyword masmOpcode VREDUCEPS VREDUCEPD VREDUCESS VREDUCESD +syn keyword masmOpcode VPMOVM2D VPMOVM2Q VPMOVM2B VPMOVM2W VPMOVD2M +syn keyword masmOpcode VPMOVQ2M VPMOVB2M VPMOVW2M VPMULLQ +syn keyword masmOpcode VPCOMPRESSB VPCOMPRESSW VPEXPANDB VPEXPANDW +syn keyword masmOpcode VPSHLD VPSHLDV VPSHRD VPSHRDV +syn keyword masmOpcode VPDPBUSD VPDPBUSDS VPDPWSSD VPDPWSSDS +syn keyword masmOpcode VPMADD52LUQ VPMADD52HUQ +syn keyword masmOpcode VPOPCNTD VPOPCNTQ VPOPCNTB VPOPCNTW +syn keyword masmOpcode VPSHUFBITQMB VP2INTERSECTD VP2INTERSECTQ +syn keyword masmOpcode VGF2P8AFFINEINVQB VGF2P8AFFINEQB +syn keyword masmOpcode VGF2P8MULB VPCLMULQDQ +syn keyword masmOpcode VAESDEC VAESDECLAST VAESENC VAESENCLAST +syn keyword masmOpcode VCVTNE2PS2BF16 VCVTNEPS2BF16 VDPBF16PS +syn keyword masmOpcode VADDPH VADDSH VSUBPH VSUBSH VMULPH VMULSH +syn keyword masmOpcode VDIVPH VDIVSH VSQRTPH VSQRTSH +syn keyword masmOpcode VFMADD132PH VFMADD213PH VFMADD231PH +syn keyword masmOpcode VFMADD132SH VFMADD213SH VFMADD231SH +syn keyword masmOpcode VFNMADD132PH VFNMADD213PH VFNMADD231PH +syn keyword masmOpcode VFNMADD132SH VFNMADD213SH VFNMADD231SH +syn keyword masmOpcode VFMSUB132PH VFMSUB213PH VFMSUB231PH +syn keyword masmOpcode VFMSUB132SH VFMSUB213SH VFMSUB231SH +syn keyword masmOpcode VFNMSUB132PH VFNMSUB213PH VFNMSUB231PH +syn keyword masmOpcode VFNMSUB132SH VFNMSUB213SH VFNMSUB231SH +syn keyword masmOpcode VFMADDSUB132PH VFMADDSUB213PH VFMADDSUB231PH +syn keyword masmOpcode VFMSUBADD132PH VFMSUBADD213PH VFMSUBADD231PH +syn keyword masmOpcode VREDUCEPH VREDUCESH VRNDSCALEPH VRNDSCALESH +syn keyword masmOpcode VSCALEFPH VSCALEFSH VFMULCPH VFMULCSH VFCMULCPH +syn keyword masmOpcode VFCMULCSH VFMADDCPH VFMADDCSH VFCMADDCPH +syn keyword masmOpcode VFCMADDCSH VRCPPH VRCPSH VRSQRTPH VRSQRTSH +syn keyword masmOpcode VCMPPH VCMPSH VCOMISH VUCOMISH VMAXPH VMAXSH +syn keyword masmOpcode VMINPH VMINSH VFPCLASSPH VFPCLASSSH +syn keyword masmOpcode VCVTW2PH VCVTUW2PH VCVTDQ2PH VCVTUDQ2PH +syn keyword masmOpcode VCVTQQ2PH VCVTUQQ2PH VCVTPS2PHX VCVTPD2PH +syn keyword masmOpcode VCVTSI2SH VCVTUSI2SH VCVTSS2SH VCVTSD2SH +syn keyword masmOpcode VCVTPH2W VCVTTPH2W VCVTPH2UW VCVTTPH2UW +syn keyword masmOpcode VCVTPH2DQ VCVTTPH2DQ VCVTPH2UDQ VCVTTPH2UDQ +syn keyword masmOpcode VCVTPH2QQ VCVTTPH2QQ VCVTPH2UQQ VCVTTPH2UQQ +syn keyword masmOpcode VCVTPH2PSX VCVTPH2PD VCVTSH2SI VCVTTSH2SI +syn keyword masmOpcode VCVTSH2USI VCVTTSH2USI VCVTSH2SS VCVTSH2SD +syn keyword masmOpcode VGETEXPPH VGETEXPSH VGETMANTPH VGETMANTSH +syn keyword masmOpcode VMOVSH VMOVW VADDPD VADDPS VADDSD VADDSS +syn keyword masmOpcode VANDPD VANDPS VANDNPD VANDNPS +syn keyword masmOpcode VCMPPD VCMPPS VCMPSD VCMPSS +syn keyword masmOpcode VCOMISD VCOMISS VDIVPD VDIVPS VDIVSD VDIVSS +syn keyword masmOpcode VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2PS +syn keyword masmOpcode VCVTPH2PS VCVTPS2PH VCVTPS2DQ VCVTPS2PD +syn keyword masmOpcode VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS +syn keyword masmOpcode VCVTSS2SD VCVTSS2SI VCVTTPD2DQ VCVTTPS2DQ +syn keyword masmOpcode VCVTTSD2SI VCVTTSS2SI VMAXPD VMAXPS +syn keyword masmOpcode VMAXSD VMAXSS VMINPD VMINPS VMINSD VMINSS +syn keyword masmOpcode VMOVAPD VMOVAPS VMOVD VMOVQ VMOVDDUP +syn keyword masmOpcode VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS VMOVLPD +syn keyword masmOpcode VMOVLPS VMOVNTDQA VMOVNTDQ VMOVNTPD VMOVNTPS +syn keyword masmOpcode VMOVSD VMOVSHDUP VMOVSLDUP VMOVSS VMOVUPD +syn keyword masmOpcode VMOVUPS VMOVDQA VMOVDQA32 VMOVDQA64 +syn keyword masmOpcode VMOVDQU VMOVDQU8 VMOVDQU16 VMOVDQU32 VMOVDQU64 +syn keyword masmOpcode VMULPD VMULPS +syn keyword masmOpcode VMULSD VMULSS VORPD VORPS VSQRTPD VSQRTPS +syn keyword masmOpcode VSQRTSD VSQRTSS VSUBPD VSUBPS VSUBSD VSUBSS +syn keyword masmOpcode VUCOMISD VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD +syn keyword masmOpcode VUNPCKLPS VXORPD VXORPS VEXTRACTPS VINSERTPS +syn keyword masmOpcode VPEXTRB VPEXTRW VPEXTRD VPEXTRQ VPINSRB VPINSRW +syn keyword masmOpcode VPINSRD VPINSRQ VPACKSSWB VPACKSSDW VPACKUSDW +syn keyword masmOpcode VPACKUSWB VPADDB VPADDW VPADDD VPADDQ VPADDSB +syn keyword masmOpcode VPADDSW VPADDUSB VPADDUSW VPAND VPANDD VPANDQ +syn keyword masmOpcode VPANDND VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW +syn keyword masmOpcode VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD +syn keyword masmOpcode VPCMPGTQ VPMAXSB VPMAXSW VPMAXSD VPMAXSQ +syn keyword masmOpcode VPMAXUB VPMAXUW VPMAXUD VPMAXUQ VPMINSB VPMINSW +syn keyword masmOpcode VPMINSD VPMINSQ VPMINUB VPMINUW VPMINUD VPMINUQ +syn keyword masmOpcode VPMOVSXBW VPMOVSXBD VPMOVSXBQ VPMOVSXWD +syn keyword masmOpcode VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD +syn keyword masmOpcode VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULDQ +syn keyword masmOpcode VPMULUDQ VPMULHRSW VPMULHUW VPMULHW VPMULLD +syn keyword masmOpcode VPMULLQ VPMULLW VPORD VPORQ VPSUBB VPSUBW +syn keyword masmOpcode VPSUBD VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW +syn keyword masmOpcode VPUNPCKHBW VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ +syn keyword masmOpcode VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ VPUNPCKLQDQ +syn keyword masmOpcode VPXOR VPXORD VPXORQ +syn keyword masmOpcode VPSADBW VPSHUFB VPSHUFHW VPSHUFLW +syn keyword masmOpcode VPSHUFD VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW +syn keyword masmOpcode VPSRAD VPSRAQ VPSRLDQ VPSRLW VPSRLD VPSRLQ +syn keyword masmOpcode VPSLLVW VPSRLVW VPSHUFPD VPSHUFPS VEXTRACTF32X4 +syn keyword masmOpcode VEXTRACTF64X2 VEXTRACTF32X8 VEXTRACTF64X4 +syn keyword masmOpcode VEXTRACTI32X4 VEXTRACTI64X2 VEXTRACTI32X8 +syn keyword masmOpcode VEXTRACTI64X4 VINSERTF32x4 VINSERTF64X2 +syn keyword masmOpcode VINSERTF32X8 VINSERTF64x4 VINSERTI32X4 +syn keyword masmOpcode VINSERTI64X2 VINSERTI32X8 VINSERTI64X4 +syn keyword masmOpcode VPABSB VPABSW VPABSD VPABSQ VPALIGNR +syn keyword masmOpcode VPMADDUBSW VPMADDWD +syn keyword masmOpcode VFMADD132PD VFMADD213PD VFMADD231PD +syn keyword masmOpcode VFMADD132PS VFMADD213PS VFMADD231PS +syn keyword masmOpcode VFMADD132SD VFMADD213SD VFMADD231SD +syn keyword masmOpcode VFMADD132SS VFMADD213SS VFMADD231SS +syn keyword masmOpcode VFMADDSUB132PD VFMADDSUB213PD VFMADDSUB231PD +syn keyword masmOpcode VFMADDSUB132PS VFMADDSUB213PS VFMADDSUB231PS +syn keyword masmOpcode VFMSUBADD132PD VFMSUBADD213PD VFMSUBADD231PD +syn keyword masmOpcode VFMSUBADD132PS VFMSUBADD213PS VFMSUBADD231PS +syn keyword masmOpcode VFMSUB132PD VFMSUB213PD VFMSUB231PD +syn keyword masmOpcode VFMSUB132PS VFMSUB213PS VFMSUB231PS +syn keyword masmOpcode VFMSUB132SD VFMSUB213SD VFMSUB231SD +syn keyword masmOpcode VFMSUB132SS VFMSUB213SS VFMSUB231SS +syn keyword masmOpcode VFNMADD132PD VFNMADD213PD VFNMADD231PD +syn keyword masmOpcode VFNMADD132PS VFNMADD213PS VFNMADD231PS +syn keyword masmOpcode VFNMADD132SD VFNMADD213SD VFNMADD231SD +syn keyword masmOpcode VFNMADD132SS VFNMADD213SS VFNMADD231SS +syn keyword masmOpcode VFNMSUB132PD VFNMSUB213PD VFNMSUB231PD +syn keyword masmOpcode VFNMSUB132PS VFNMSUB213PS VFNMSUB231PS +syn keyword masmOpcode VFNMSUB132SD VFNMSUB213SD VFNMSUB231SD +syn keyword masmOpcode VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS +syn keyword masmOpcode VPSRAVW VPSRAVQ + +" Other opcodes in Pentium and later processors +syn keyword masmOpcode CMPXCHG8B CPUID UD2 MOVSXD +syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT +syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" + +" Not really used by MASM, but useful for viewing GCC-generated assembly code +" in Intel syntax +syn match masmHexadecimal "[-+]\?0[Xx]\x*" +syn keyword masmOpcode MOVABS + +" The default highlighting +hi def link masmLabel PreProc +hi def link masmComment Comment +hi def link masmDirective Statement +hi def link masmType Type +hi def link masmOperator Type +hi def link masmOption Special +hi def link masmRegister Special +hi def link masmString String +hi def link masmText String +hi def link masmTitle Title +hi def link masmOpcode Statement +hi def link masmOpFloat Statement + +hi def link masmHexadecimal Number +hi def link masmDecimal Number +hi def link masmOctal Number +hi def link masmBinary Number +hi def link masmFloatRaw Number +hi def link masmFloat Number + +hi def link masmIdentifier Identifier + +syntax sync minlines=50 + +let b:current_syntax = "masm" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/mason.vim b/runtime/syntax/mason.vim new file mode 100644 index 0000000..e1638ec --- /dev/null +++ b/runtime/syntax/mason.vim @@ -0,0 +1,85 @@ +" Vim syntax file +" Language: Mason (Perl embedded in HTML) +" Maintainer: vim-perl +" Homepage: https://github.com/vim-perl/vim-perl +" Bugs/requests: https://github.com/vim-perl/vim-perl/issues +" License: Vim License (see :help license) +" Last Change: 2021 Oct 10 +" Contributors: Hinrik Örn Sigurðsson +" Andrew Smith +" +" TODO: +" - Fix <%text> blocks to show HTML tags but ignore Mason tags. +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" The HTML syntax file included below uses this variable. +" +if !exists("main_syntax") + let main_syntax = 'mason' +endif + +" First pull in the HTML syntax. +" +runtime! syntax/html.vim +unlet b:current_syntax + +syn cluster htmlPreproc add=@masonTop + +" Now pull in the Perl syntax. +" +syn include @perlTop syntax/perl.vim +unlet b:current_syntax +syn include @podTop syntax/pod.vim + +" It's hard to reduce down to the correct sub-set of Perl to highlight in some +" of these cases so I've taken the safe option of just using perlTop in all of +" them. If you have any suggestions, please let me know. +" +syn region masonPod start="^=[a-z]" end="^=cut" keepend contained contains=@podTop +syn cluster perlTop remove=perlBraces +syn region masonLine matchgroup=Delimiter start="^%" end="$" keepend contains=@perlTop +syn region masonPerlComment start="#" end="\%(%>\)\@=\|$" contained contains=perlTodo,@Spell +syn region masonExpr matchgroup=Delimiter start="<%" end="%>" contains=@perlTop,masonPerlComment +syn region masonPerl matchgroup=Delimiter start="<%perl>" end="" contains=masonPod,@perlTop +syn region masonComp keepend matchgroup=Delimiter start="<&\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop +syn region masonComp keepend matchgroup=Delimiter skipnl start="<&|\s*\%([-._/[:alnum:]]\+:\)\?[-._/[:alnum:]]*" end="&>" contains=@perlTop nextgroup=masonCompContent +syn region masonCompContent matchgroup=Delimiter start="" end="" contained contains=@masonTop + +syn region masonArgs matchgroup=Delimiter start="<%args>" end="" contains=masonPod,@perlTop + +syn region masonInit matchgroup=Delimiter start="<%init>" end="" contains=masonPod,@perlTop +syn region masonCleanup matchgroup=Delimiter start="<%cleanup>" end="" contains=masonPod,@perlTop +syn region masonOnce matchgroup=Delimiter start="<%once>" end="" contains=masonPod,@perlTop +syn region masonClass matchgroup=Delimiter start="<%class>" end="" contains=masonPod,@perlTop +syn region masonShared matchgroup=Delimiter start="<%shared>" end="" contains=masonPod,@perlTop + +syn region masonDef matchgroup=Delimiter start="<%def\s*[-._/[:alnum:]]\+\s*>" end="" contains=@htmlTop +syn region masonMethod matchgroup=Delimiter start="<%method\s*[-._/[:alnum:]]\+\s*>" end="" contains=@htmlTop + +syn region masonFlags matchgroup=Delimiter start="<%flags>" end="" contains=masonPod,@perlTop +syn region masonAttr matchgroup=Delimiter start="<%attr>" end="" contains=masonPod,@perlTop + +syn region masonFilter matchgroup=Delimiter start="<%filter>" end="" contains=masonPod,@perlTop + +syn region masonDoc matchgroup=Delimiter start="<%doc>" end="" +syn region masonText matchgroup=Delimiter start="<%text>" end="" + +syn cluster masonTop contains=masonLine,masonExpr,masonPerl,masonComp,masonArgs,masonInit,masonCleanup,masonOnce,masonShared,masonDef,masonMethod,masonFlags,masonAttr,masonFilter,masonDoc,masonText + +" Set up default highlighting. Almost all of this is done in the included +" syntax files. +hi def link masonDoc Comment +hi def link masonPod Comment +hi def link podOrdinary masonPod +hi def link masonPerlComment perlComment + +let b:current_syntax = "mason" + +if main_syntax == 'mason' + unlet main_syntax +endif diff --git a/runtime/syntax/master.vim b/runtime/syntax/master.vim new file mode 100644 index 0000000..f89c5b2 --- /dev/null +++ b/runtime/syntax/master.vim @@ -0,0 +1,37 @@ +" Vim syntax file +" Language: Focus Master File +" Maintainer: Rob Brady +" Last Change: $Date: 2004/06/13 15:54:03 $ +" URL: http://www.datatone.com/~robb/vim/syntax/master.vim +" $Revision: 1.1 $ + +" this is a very simple syntax file - I will be improving it +" add entire DEFINE syntax + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +" A bunch of useful keywords +syn keyword masterKeyword FILENAME SUFFIX SEGNAME SEGTYPE PARENT FIELDNAME +syn keyword masterKeyword FIELD ALIAS USAGE INDEX MISSING ON +syn keyword masterKeyword FORMAT CRFILE CRKEY +syn keyword masterDefine DEFINE DECODE EDIT +syn region masterString start=+"+ end=+"+ +syn region masterString start=+'+ end=+'+ +syn match masterComment "\$.*" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link masterKeyword Keyword +hi def link masterComment Comment +hi def link masterString String + + +let b:current_syntax = "master" + +" vim: ts=8 diff --git a/runtime/syntax/matlab.vim b/runtime/syntax/matlab.vim new file mode 100644 index 0000000..5202809 --- /dev/null +++ b/runtime/syntax/matlab.vim @@ -0,0 +1,119 @@ +" Vim syntax file +" Language: Matlab +" Maintainer: Alex Burka +" Credits: Preben 'Peppe' Guldberg +" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com +" Original author: Mario Eusebio +" Last Change: June 10 2019 +" added highlight rule for double-quoted string literals +" Change History: +" - double-quoted string literals added +" - now highlights cell-mode separator comments +" - 'global' and 'persistent' keyword are now recognized + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword matlabStatement return +syn keyword matlabLabel case switch +syn keyword matlabConditional else elseif end if otherwise +syn keyword matlabRepeat do for while +" MT_ADDON - added exception-specific keywords +syn keyword matlabExceptions try catch +syn keyword matlabOO classdef properties events methods + +syn keyword matlabTodo contained TODO +syn keyword matlabScope global persistent + +" If you do not want these operators lit, uncommment them and the "hi link" below +syn match matlabArithmeticOperator "[-+]" +syn match matlabArithmeticOperator "\.\=[*/\\^]" +syn match matlabRelationalOperator "[=~]=" +syn match matlabRelationalOperator "[<>]=\=" +syn match matlabLogicalOperator "[&|~]" + +syn match matlabLineContinuation "\.\{3}" + +"syn match matlabIdentifier "\<\a\w*\>" + +" String +" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence +syn region matlabString start=+'+ end=+'+ oneline skip=+''+ +syn region matlabStringArray start=+"+ end=+"+ oneline skip=+""+ + +" If you don't like tabs +syn match matlabTab "\t" + +" Standard numbers +syn match matlabNumber "\<\d\+[ij]\=\>" +" floating point number, with dot, optional exponent +syn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>" +" floating point number, starting with a dot, optional exponent +syn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>" + +" Transpose character and delimiters: Either use just [...] or (...) aswell +syn match matlabDelimiter "[][]" +"syn match matlabDelimiter "[][()]" +syn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1 + +syn match matlabSemicolon ";" + +syn match matlabComment "%.*$" contains=matlabTodo,matlabTab +" MT_ADDON - correctly highlights words after '...' as comments +syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab +syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab +syn match matlabCellComment "^%%.*$" + +syn keyword matlabOperator break zeros default margin round ones rand +syn keyword matlabOperator ceil floor size clear zeros eye mean std cov + +syn keyword matlabFunction error eval function + +syn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum +syn keyword matlabImplicit log10 max min sign sin sinh sqrt tan reshape + +syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]" +syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link matlabTransposeOperator matlabOperator +hi def link matlabOperator Operator +hi def link matlabLineContinuation Special +hi def link matlabLabel Label +hi def link matlabConditional Conditional +hi def link matlabExceptions Conditional +hi def link matlabRepeat Repeat +hi def link matlabTodo Todo +hi def link matlabString String +hi def link matlabStringArray String +hi def link matlabDelimiter Identifier +hi def link matlabTransposeOther Identifier +hi def link matlabNumber Number +hi def link matlabFloat Float +hi def link matlabFunction Function +hi def link matlabError Error +hi def link matlabImplicit matlabStatement +hi def link matlabStatement Statement +hi def link matlabOO Statement +hi def link matlabSemicolon SpecialChar +hi def link matlabComment Comment +hi def link matlabMultilineComment Comment +hi def link matlabCellComment Todo +hi def link matlabScope Type + +hi def link matlabArithmeticOperator matlabOperator +hi def link matlabRelationalOperator matlabOperator +hi def link matlabLogicalOperator matlabOperator + +"optional highlighting +"hi def link matlabIdentifier Identifier +"hi def link matlabTab Error + + +let b:current_syntax = "matlab" + +"EOF vim: ts=8 noet tw=100 sw=8 sts=0 diff --git a/runtime/syntax/maxima.vim b/runtime/syntax/maxima.vim new file mode 100644 index 0000000..46e1e4f --- /dev/null +++ b/runtime/syntax/maxima.vim @@ -0,0 +1,261 @@ +" Vim syntax file +" Language: Maxima (symbolic algebra program) +" Maintainer: Robert Dodier (robert.dodier@gmail.com) +" Last Change: April 6, 2006 +" Version: 1 +" Adapted mostly from xmath.vim +" Number formats adapted from r.vim +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn sync lines=1000 + +" parenthesis sanity checker +syn region maximaZone matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaCurlyError +syn region maximaZone matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaParenError +syn region maximaZone matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,maximaError,maximaCurlyError,maximaParenError +syn match maximaError "[)\]}]" +syn match maximaBraceError "[)}]" contained +syn match maximaCurlyError "[)\]]" contained +syn match maximaParenError "[\]}]" contained +syn match maximaComma "[\[\](),;]" +syn match maximaComma "\.\.\.$" + +" A bunch of useful maxima keywords +syn keyword maximaConditional if then else elseif and or not +syn keyword maximaRepeat do for thru + +" ---------------------- BEGIN LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS) ---------------------- +syn keyword maximaFunc abasep abs absboxchar absint acos acosh acot acoth acsc +syn keyword maximaFunc acsch activate activecontexts addcol additive addrow adim +syn keyword maximaFunc adjoint af aform airy algebraic algepsilon algexact algsys +syn keyword maximaFunc alg_type alias aliases allbut all_dotsimp_denoms allroots allsym +syn keyword maximaFunc alphabetic antid antidiff antisymmetric append appendfile +syn keyword maximaFunc apply apply1 apply2 applyb1 apropos args array arrayapply +syn keyword maximaFunc arrayinfo arraymake arrays asec asech asin asinh askexp +syn keyword maximaFunc askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume +syn keyword maximaFunc assume_pos assume_pos_pred assumescalar asymbol asympa at atan +syn keyword maximaFunc atan2 atanh atensimp atom atomgrad atrig1 atvalue augcoefmatrix +syn keyword maximaFunc av backsubst backtrace bashindices batch batchload bc2 bdvac +syn keyword maximaFunc berlefact bern bernpoly bessel besselexpand bessel_i bessel_j +syn keyword maximaFunc bessel_k bessel_y beta bezout bffac bfhzeta bfloat bfloatp +syn keyword maximaFunc bfpsi bfpsi0 bftorat bftrunc bfzeta bimetric binomial block +syn keyword maximaFunc bothcoef box boxchar break breakup bug_report build_info buildq +syn keyword maximaFunc burn cabs canform canten carg cartan catch cauchysum cbffac +syn keyword maximaFunc cdisplay cf cfdisrep cfexpand cflength cframe_flag cgeodesic +syn keyword maximaFunc changename changevar charpoly checkdiv check_overlaps christof +syn keyword maximaFunc clear_rules closefile closeps cmetric cnonmet_flag coeff +syn keyword maximaFunc coefmatrix cograd col collapse columnvector combine commutative +syn keyword maximaFunc comp2pui compfile compile compile_file components concan concat +syn keyword maximaFunc conj conjugate conmetderiv cons constant constantp cont2part +syn keyword maximaFunc content context contexts contortion contract contragrad coord +syn keyword maximaFunc copylist copymatrix cos cosh cosnpiflag cot coth covdiff +syn keyword maximaFunc covect create_list csc csch csetup ctaylor ctaypov ctaypt +syn keyword maximaFunc ctayswitch ctayvar ct_coords ct_coordsys ctorsion_flag ctransform +syn keyword maximaFunc ctrgsimp current_let_rule_package dblint deactivate debugmode +syn keyword maximaFunc declare declare_translated declare_weight decsym +syn keyword maximaFunc default_let_rule_package defcon define define_variable defint +syn keyword maximaFunc defmatch defrule deftaylor del delete deleten delta demo +syn keyword maximaFunc demoivre denom dependencies depends derivabbrev derivdegree +syn keyword maximaFunc derivlist derivsubst describe desolve determinant detout +syn keyword maximaFunc diagmatrix diagmatrixp diagmetric diff dim dimension direct +syn keyword maximaFunc disolate disp dispcon dispflag dispform dispfun display +syn keyword maximaFunc display2d display_format_internal disprule dispterms distrib +syn keyword maximaFunc divide divsum doallmxops domain domxexpt domxmxops domxnctimes +syn keyword maximaFunc dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp +syn keyword maximaFunc dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules +syn keyword maximaFunc dotsimp dpart dscalar %e echelon %edispflag eigenvalues +syn keyword maximaFunc eigenvectors eighth einstein eivals eivects ele2comp +syn keyword maximaFunc ele2polynome ele2pui elem eliminate elliptic_e elliptic_ec +syn keyword maximaFunc elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix %emode +syn keyword maximaFunc endcons entermatrix entertensor entier %enumer equal equalp erf +syn keyword maximaFunc erfflag errcatch error errormsg error_size error_syms +syn keyword maximaFunc %e_to_numlog euler ev eval evenp every evflag evfun evundiff +syn keyword maximaFunc example exp expand expandwrt expandwrt_denom expandwrt_factored +syn keyword maximaFunc explose expon exponentialize expop express expt exptdispflag +syn keyword maximaFunc exptisolate exptsubst extdiff extract_linear_equations ezgcd +syn keyword maximaFunc facexpand factcomb factlim factor factorflag factorial factorout +syn keyword maximaFunc factorsum facts false fast_central_elements fast_linsolve +syn keyword maximaFunc fasttimes fb feature featurep features fft fib fibtophi fifth +syn keyword maximaFunc filename_merge file_search file_search_demo file_search_lisp +syn keyword maximaFunc file_search_maxima file_type fillarray findde first fix flatten +syn keyword maximaFunc flipflag float float2bf floatnump flush flush1deriv flushd +syn keyword maximaFunc flushnd forget fortindent fortran fortspaces fourcos fourexpand +syn keyword maximaFunc fourier fourint fourintcos fourintsin foursimp foursin fourth +syn keyword maximaFunc fpprec fpprintprec frame_bracket freeof fullmap fullmapl +syn keyword maximaFunc fullratsimp fullratsubst funcsolve functions fundef funmake funp +syn keyword maximaFunc gamma %gamma gammalim gauss gcd gcdex gcfactor gdet genfact +syn keyword maximaFunc genindex genmatrix gensumnum get getchar gfactor gfactorsum +syn keyword maximaFunc globalsolve go gradef gradefs gramschmidt grind grobner_basis +syn keyword maximaFunc gschmit hach halfangles hermite hipow hodge horner i0 i1 +syn keyword maximaFunc *read-base* ic1 ic2 icc1 icc2 ic_convert ichr1 ichr2 icounter +syn keyword maximaFunc icurvature ident idiff idim idummy idummyx ieqn ieqnprint ifb +syn keyword maximaFunc ifc1 ifc2 ifg ifgi ifr iframe_bracket_form iframes ifri ift +syn keyword maximaFunc igeodesic_coords igeowedge_flag ikt1 ikt2 ilt imagpart imetric +syn keyword maximaFunc inchar indexed_tensor indices inf %inf infeval infinity infix +syn keyword maximaFunc inflag infolists init_atensor init_ctensor inm inmc1 inmc2 +syn keyword maximaFunc innerproduct in_netmath inpart inprod inrt integerp integrate +syn keyword maximaFunc integrate_use_rootsof integration_constant_counter interpolate +syn keyword maximaFunc intfaclim intopois intosum intpolabs intpolerror intpolrel +syn keyword maximaFunc invariant1 invariant2 inverse_jacobi_cd inverse_jacobi_cn +syn keyword maximaFunc inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn +syn keyword maximaFunc inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd +syn keyword maximaFunc inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd +syn keyword maximaFunc inverse_jacobi_sn invert is ishow isolate isolate_wrt_times +syn keyword maximaFunc isqrt itr j0 j1 jacobi jacobi_cd jacobi_cn jacobi_cs jacobi_dc +syn keyword maximaFunc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_sc +syn keyword maximaFunc jacobi_sd jacobi_sn jn kdels kdelta keepfloat kill killcontext +syn keyword maximaFunc kinvariant kostka kt labels lambda laplace lassociative last +syn keyword maximaFunc lc2kdt lc_l lcm lc_u ldefint ldisp ldisplay leinstein length +syn keyword maximaFunc let letrat let_rule_packages letrules letsimp levi_civita lfg +syn keyword maximaFunc lfreeof lg lgtreillis lhospitallim lhs liediff limit limsubst +syn keyword maximaFunc linear linechar linel linenum linsolve linsolve_params +syn keyword maximaFunc linsolvewarn listarith listarray listconstvars listdummyvars +syn keyword maximaFunc list_nc_monomials listoftens listofvars listp lmxchar load +syn keyword maximaFunc loadfile loadprint local log logabs logarc logconcoeffp +syn keyword maximaFunc logcontract logexpand lognegint lognumer logsimp lopow +syn keyword maximaFunc lorentz_gauge lpart lratsubst lriem lriemann lsum ltreillis +syn keyword maximaFunc m1pbranch macroexpansion mainvar make_array makebox makefact +syn keyword maximaFunc makegamma makelist make_random_state make_transform map mapatom +syn keyword maximaFunc maperror maplist matchdeclare matchfix matrix matrix_element_add +syn keyword maximaFunc matrix_element_mult matrix_element_transpose matrixmap matrixp +syn keyword maximaFunc mattrace max maxapplydepth maxapplyheight maxnegex maxposex +syn keyword maximaFunc maxtayorder member min %minf minfactorial minor mod +syn keyword maximaFunc mode_check_errorp mode_checkp mode_check_warnp mode_declare +syn keyword maximaFunc mode_identity modulus mon2schur mono monomial_dimensions +syn keyword maximaFunc multi_elem multinomial multi_orbit multiplicative multiplicities +syn keyword maximaFunc multi_pui multsym multthru myoptions nc_degree ncexpt ncharpoly +syn keyword maximaFunc negdistrib negsumdispflag newcontext newdet newton niceindices +syn keyword maximaFunc niceindicespref ninth nm nmc noeval nolabels nonmetricity +syn keyword maximaFunc nonscalar nonscalarp noun noundisp nounify nouns np npi +syn keyword maximaFunc nptetrad nroots nterms ntermst nthroot ntrig num numberp numer +syn keyword maximaFunc numerval numfactor nusum obase oddp ode2 op openplot_curves +syn keyword maximaFunc operatorp opproperties opsubst optimize optimprefix optionset +syn keyword maximaFunc orbit ordergreat ordergreatp orderless orderlessp outative +syn keyword maximaFunc outchar outermap outofpois packagefile pade part part2cont +syn keyword maximaFunc partfrac partition partpol partswitch permanent permut petrov +syn keyword maximaFunc pfeformat pi pickapart piece playback plog plot2d plot2d_ps +syn keyword maximaFunc plot3d plot_options poisdiff poisexpt poisint poislim poismap +syn keyword maximaFunc poisplus poissimp poisson poissubst poistimes poistrim polarform +syn keyword maximaFunc polartorect polynome2ele posfun potential powerdisp powers +syn keyword maximaFunc powerseries pred prederror primep print printpois printprops +syn keyword maximaFunc prodhack prodrac product programmode prompt properties props +syn keyword maximaFunc propvars pscom psdraw_curve psexpand psi pui pui2comp pui2ele +syn keyword maximaFunc pui2polynome pui_direct puireduc put qput qq quad_qag quad_qagi +syn keyword maximaFunc quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quanc8 quit +syn keyword maximaFunc qunit quotient radcan radexpand radsubstflag random rank +syn keyword maximaFunc rassociative rat ratalgdenom ratchristof ratcoef ratdenom +syn keyword maximaFunc ratdenomdivide ratdiff ratdisrep rateinstein ratepsilon ratexpand +syn keyword maximaFunc ratfac ratmx ratnumer ratnump ratp ratprint ratriemann ratsimp +syn keyword maximaFunc ratsimpexpons ratsubst ratvars ratweight ratweights ratweyl +syn keyword maximaFunc ratwtlvl read readonly realonly realpart realroots rearray +syn keyword maximaFunc rectform recttopolar rediff refcheck rem remainder remarray +syn keyword maximaFunc rembox remcomps remcon remcoord remfun remfunction remlet +syn keyword maximaFunc remove remrule remsym remvalue rename reset residue resolvante +syn keyword maximaFunc resolvante_alternee1 resolvante_bipartite resolvante_diedrale +syn keyword maximaFunc resolvante_klein resolvante_klein3 resolvante_produit_sym +syn keyword maximaFunc resolvante_unitaire resolvante_vierer rest resultant return +syn keyword maximaFunc reveal reverse revert revert2 rhs ric ricci riem riemann +syn keyword maximaFunc rinvariant risch rmxchar rncombine %rnum_list romberg rombergabs +syn keyword maximaFunc rombergit rombergmin rombergtol room rootsconmode rootscontract +syn keyword maximaFunc rootsepsilon round row run_testsuite save savedef savefactors +syn keyword maximaFunc scalarmatrixp scalarp scalefactors scanmap schur2comp sconcat +syn keyword maximaFunc scsimp scurvature sec sech second setcheck setcheckbreak +syn keyword maximaFunc setelmx set_plot_option set_random_state setup_autoload +syn keyword maximaFunc set_up_dot_simplifications setval seventh sf show showcomps +syn keyword maximaFunc showratvars showtime sign signum similaritytransform simpsum +syn keyword maximaFunc simtran sin sinh sinnpiflag sixth solve solvedecomposes +syn keyword maximaFunc solveexplicit solvefactors solve_inconsistent_error solvenullwarn +syn keyword maximaFunc solveradcan solvetrigwarn somrac sort sparse spherical_bessel_j +syn keyword maximaFunc spherical_bessel_y spherical_hankel1 spherical_hankel2 +syn keyword maximaFunc spherical_harmonic splice sqfr sqrt sqrtdispflag sstatus +syn keyword maximaFunc stardisp status string stringout sublis sublis_apply_lambda +syn keyword maximaFunc sublist submatrix subst substinpart substpart subvarp sum +syn keyword maximaFunc sumcontract sumexpand sumhack sumsplitfact supcontext symbolp +syn keyword maximaFunc symmetric symmetricp system tan tanh taylor taylordepth +syn keyword maximaFunc taylorinfo taylor_logexpand taylor_order_coefficients taylorp +syn keyword maximaFunc taylor_simplifier taylor_truncate_polynomials taytorat tcl_output +syn keyword maximaFunc tcontract tellrat tellsimp tellsimpafter tensorkill tentex tenth +syn keyword maximaFunc tex %th third throw time timer timer_devalue timer_info +syn keyword maximaFunc tldefint tlimit tlimswitch todd_coxeter to_lisp totaldisrep +syn keyword maximaFunc totalfourier totient tpartpol tr trace trace_options +syn keyword maximaFunc transcompile translate translate_file transpose transrun +syn keyword maximaFunc tr_array_as_ref tr_bound_function_applyp treillis treinat +syn keyword maximaFunc tr_file_tty_messagesp tr_float_can_branch_complex +syn keyword maximaFunc tr_function_call_default triangularize trigexpand trigexpandplus +syn keyword maximaFunc trigexpandtimes triginverses trigrat trigreduce trigsign trigsimp +syn keyword maximaFunc tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars true +syn keyword maximaFunc trunc truncate tr_warn_bad_function_calls tr_warn_fexpr +syn keyword maximaFunc tr_warnings_get tr_warn_meval tr_warn_mode tr_warn_undeclared +syn keyword maximaFunc tr_warn_undefined_variable tr_windy ttyoff ueivects ufg ug +syn keyword maximaFunc ultraspherical undiff uniteigenvectors unitvector unknown unorder +syn keyword maximaFunc unsum untellrat untimer untrace uric uricci uriem uriemann +syn keyword maximaFunc use_fast_arrays uvect values vect_cross vectorpotential +syn keyword maximaFunc vectorsimp verb verbify verbose weyl with_stdout writefile +syn keyword maximaFunc xgraph_curves xthru zerobern zeroequiv zeromatrix zeta zeta%pi +syn match maximaOp "[\*\/\+\-\#\!\~\^\=\:\<\>\@]" +" ---------------------- END LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS) ---------------------- + + +syn case match + +" Labels (supports maxima's goto) +syn match maximaLabel "^\s*<[a-zA-Z_][a-zA-Z0-9%_]*>" + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match maximaSpecial contained "\\\d\d\d\|\\." +syn region maximaString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=maximaSpecial +syn match maximaCharacter "'[^\\]'" +syn match maximaSpecialChar "'\\.'" + +" number with no fractional part or exponent +syn match maximaNumber /\<\d\+\>/ +" floating point number with integer and fractional parts and optional exponent +syn match maximaFloat /\<\d\+\.\d*\([BbDdEeSs][-+]\=\d\+\)\=\>/ +" floating point number with no integer part and optional exponent +syn match maximaFloat /\<\.\d\+\([BbDdEeSs][-+]\=\d\+\)\=\>/ +" floating point number with no fractional part and optional exponent +syn match maximaFloat /\<\d\+[BbDdEeSs][-+]\=\d\+\>/ + +" Comments: +" maxima supports /* ... */ (like C) +syn keyword maximaTodo contained TODO Todo DEBUG +syn region maximaCommentBlock start="/\*" end="\*/" contains=maximaString,maximaTodo,maximaCommentBlock + +" synchronizing +syn sync match maximaSyncComment grouphere maximaCommentBlock "/*" +syn sync match maximaSyncComment groupthere NONE "*/" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link maximaBraceError maximaError +hi def link maximaCmd maximaStatement +hi def link maximaCurlyError maximaError +hi def link maximaFuncCmd maximaStatement +hi def link maximaParenError maximaError + +" The default methods for highlighting. Can be overridden later +hi def link maximaCharacter Character +hi def link maximaComma Function +hi def link maximaCommentBlock Comment +hi def link maximaConditional Conditional +hi def link maximaError Error +hi def link maximaFunc Delimiter +hi def link maximaOp Delimiter +hi def link maximaLabel PreProc +hi def link maximaNumber Number +hi def link maximaFloat Float +hi def link maximaRepeat Repeat +hi def link maximaSpecial Type +hi def link maximaSpecialChar SpecialChar +hi def link maximaStatement Statement +hi def link maximaString String +hi def link maximaTodo Todo + + +let b:current_syntax = "maxima" diff --git a/runtime/syntax/mel.vim b/runtime/syntax/mel.vim new file mode 100644 index 0000000..f0f1bca --- /dev/null +++ b/runtime/syntax/mel.vim @@ -0,0 +1,108 @@ +" Vim syntax file +" Language: MEL (Maya Extension Language) +" Maintainer: Robert Minsk +" Last Change: May 27 1999 +" Based on: Bram Moolenaar C syntax file + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" when wanted, highlight trailing white space and spaces before tabs +if exists("mel_space_errors") + sy match melSpaceError "\s\+$" + sy match melSpaceError " \+\t"me=e-1 +endif + +" A bunch of usefull MEL keyworks +sy keyword melBoolean true false yes no on off + +sy keyword melFunction proc +sy match melIdentifier "\$\(\a\|_\)\w*" + +sy keyword melStatement break continue return +sy keyword melConditional if else switch +sy keyword melRepeat while for do in +sy keyword melLabel case default +sy keyword melOperator size eval env exists whatIs +sy keyword melKeyword alias +sy keyword melException catch error warning + +sy keyword melInclude source + +sy keyword melType int float string vector matrix +sy keyword melStorageClass global + +sy keyword melDebug trace + +sy keyword melTodo contained TODO FIXME XXX + +" MEL data types +sy match melCharSpecial contained "\\[ntr\\"]" +sy match melCharError contained "\\[^ntr\\"]" + +sy region melString start=+"+ skip=+\\"+ end=+"+ contains=melCharSpecial,melCharError + +sy case ignore +sy match melInteger "\<\d\+\(e[-+]\=\d\+\)\=\>" +sy match melFloat "\<\d\+\(e[-+]\=\d\+\)\=f\>" +sy match melFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=f\=\>" +sy match melFloat "\.\d\+\(e[-+]\=\d\+\)\=f\=\>" +sy case match + +sy match melCommaSemi contained "[,;]" +sy region melMatrixVector start=/<>/ contains=melInteger,melFloat,melIdentifier,melCommaSemi + +sy cluster melGroup contains=melFunction,melStatement,melConditional,melLabel,melKeyword,melStorageClass,melTODO,melCharSpecial,melCharError,melCommaSemi + +" catch errors caused by wrong parenthesis +sy region melParen transparent start='(' end=')' contains=ALLBUT,@melGroup,melParenError,melInParen +sy match melParenError ")" +sy match melInParen contained "[{}]" + +" comments +sy region melComment start="/\*" end="\*/" contains=melTodo,melSpaceError +sy match melComment "//.*" contains=melTodo,melSpaceError +sy match melCommentError "\*/" + +sy region melQuestionColon matchgroup=melConditional transparent start='?' end=':' contains=ALLBUT,@melGroup + +if !exists("mel_minlines") + let mel_minlines=15 +endif +exec "sy sync ccomment melComment minlines=" . mel_minlines + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link melBoolean Boolean +hi def link melFunction Function +hi def link melIdentifier Identifier +hi def link melStatement Statement +hi def link melConditional Conditional +hi def link melRepeat Repeat +hi def link melLabel Label +hi def link melOperator Operator +hi def link melKeyword Keyword +hi def link melException Exception +hi def link melInclude Include +hi def link melType Type +hi def link melStorageClass StorageClass +hi def link melDebug Debug +hi def link melTodo Todo +hi def link melCharSpecial SpecialChar +hi def link melString String +hi def link melInteger Number +hi def link melFloat Float +hi def link melMatrixVector Float +hi def link melComment Comment +hi def link melError Error +hi def link melSpaceError melError +hi def link melCharError melError +hi def link melParenError melError +hi def link melInParen melError +hi def link melCommentError melError + + +let b:current_syntax = "mel" diff --git a/runtime/syntax/mermaid.vim b/runtime/syntax/mermaid.vim new file mode 100644 index 0000000..5a9a217 --- /dev/null +++ b/runtime/syntax/mermaid.vim @@ -0,0 +1,131 @@ +" Vim syntax file +" Language: Mermaid +" Maintainer: Craig MacEahern +" Filenames: *.mmd +" Last Change: 2023 Dec 26 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syntax iskeyword @,48-57,192-255,$,_,-,: +syntax keyword mermaidKeyword + \ _blank + \ _self + \ _parent + \ _top + \ ::icon + \ accDescr + \ accTitle + \ actor + \ activate + \ alt + \ and + \ as + \ autonumber + \ branch + \ break + \ callback + \ checkout + \ class + \ classDef + \ classDiagram + \ click + \ commit + \ commitgitGraph + \ critical + \ dataFormat + \ dateFormat + \ deactivate + \ direction + \ element + \ else + \ end + \ erDiagram + \ flowchart + \ gantt + \ gitGraph + \ graph + \ journey + \ link + \ LR + \ TD + \ TB + \ RL + \ loop + \ merge + \ mindmap root + \ Note + \ Note right of + \ Note left of + \ Note over + \ note + \ note right of + \ note left of + \ note over + \ opt + \ option + \ par + \ participant + \ pie + \ rect + \ requirement + \ rgb + \ section + \ sequenceDiagram + \ state + \ stateDiagram + \ stateDiagram-v2 + \ style + \ subgraph + \ title +highlight link mermaidKeyword Keyword + +syntax match mermaidStatement "|" +syntax match mermaidStatement "\~\~\~" +syntax match mermaidStatement "--" +syntax match mermaidStatement "\%(<|\|[<*o]\)\?\%(--\|\.\.\)\%(|>\|[>*o]\)\?" +syntax match mermaidStatement "-\{2,4}[>ox-]" +syntax match mermaidStatement "\.-[>ox]" +syntax match mermaidStatement "-\." +syntax match mermaidStatement "-\.\{1,3}-" +syntax match mermaidStatement "==" +syntax match mermaidStatement "=\{2,4}[>ox=]" +syntax match mermaidStatement "&" +syntax match mermaidStatement "--\?[>x)]>\?[+-]\?" +syntax match mermaidStatement "x--x" +syntax match mermaidStatement "o--o\?" +syntax match mermaidStatement "<-->\?" +syntax match mermaidStatement ":::" +syntax match mermaidStatement "||--o{" +highlight link mermaidStatement Statement + +" FIXME: This unexpectedly matches flow chart node `id1(text)` or others. +"syntax match mermaidIdentifier "[\+-]\?\w\+(.*)[\$\*]\?" +"highlight link mermaidIdentifier Identifier + +syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(unsigned\s\+\)\?\%(int\|u\?int\%(8\|16\|32\|64\)_t\|char\|long\|long\s\+long\)\>\%(\s\+const\|\s*[\*&]\)*" +syntax match mermaidType "[\+-\#\~]\?\c\%(const\s\+\|\*\s*\)*\%(double\|float\|String\|bool\)\>\%(\s\+const\|\s*[\*&]\)*" +syntax match mermaidType "[\+-\#\~]\?\cBigDecimal\>" +syntax match mermaidType "[\+-\#\~]\?\cList\~.\+\~" +syntax match mermaidType "<<\w\+>>" +highlight link mermaidType Type + +syntax match mermaidComment "%%.*$" +highlight link mermaidComment Comment + +syntax region mermaidDirective start="%%{" end="\}%%" +highlight link mermaidDirective PreProc + +syntax region mermaidString start=/"/ skip=/\\"/ end=/"/ +highlight link mermaidString String + +let b:current_syntax = "mermaid" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2: diff --git a/runtime/syntax/meson.vim b/runtime/syntax/meson.vim new file mode 100644 index 0000000..4eaf696 --- /dev/null +++ b/runtime/syntax/meson.vim @@ -0,0 +1,162 @@ +" Vim syntax file +" Language: Meson +" License: VIM License +" Maintainer: Nirbheek Chauhan +" Liam Beguin +" Last Change: 2023 May 27 +" Credits: Zvezdan Petkovic +" Neil Schemenauer +" Dmitry Vasiliev +" +" This version is copied and edited from python.vim +" It's very basic, and doesn't do many things I'd like it to +" For instance, it should show errors for syntax that is valid in +" Python but not in Meson. +" +" Optional highlighting can be controlled using these variables. +" +" let meson_space_error_highlight = 1 +" + +if exists("b:current_syntax") + finish +endif + +" We need nocompatible mode in order to continue lines with backslashes. +" Original setting will be restored. +let s:cpo_save = &cpo +set cpo&vim + +" http://mesonbuild.com/Syntax.html +syn keyword mesonConditional elif else if endif +syn keyword mesonRepeat foreach endforeach +syn keyword mesonOperator and not or in +syn keyword mesonStatement continue break + +syn match mesonComment "#.*$" contains=mesonTodo,@Spell +syn keyword mesonTodo FIXME NOTE NOTES TODO XXX contained + +" Strings can either be single quoted or triple counted across multiple lines, +" but always with a ' +syn region mesonString + \ start="\z('\)" end="\z1" skip="\\\\\|\\\z1" + \ contains=mesonEscape,@Spell +syn region mesonString + \ start="\z('''\)" end="\z1" keepend + \ contains=mesonEscape,mesonSpaceError,@Spell + +syn match mesonEscape "\\[abfnrtv'\\]" contained +syn match mesonEscape "\\\o\{1,3}" contained +syn match mesonEscape "\\x\x\{2}" contained +syn match mesonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained +" Meson allows case-insensitive Unicode IDs: http://www.unicode.org/charts/ +syn match mesonEscape "\\N{\a\+\%(\s\a\+\)*}" contained +syn match mesonEscape "\\$" + +" Meson only supports integer numbers +" http://mesonbuild.com/Syntax.html#numbers +syn match mesonNumber "\<\d\+\>" +syn match mesonNumber "\<0x\x\+\>" +syn match mesonNumber "\<0o\o\+\>" + +" booleans +syn keyword mesonBoolean false true + +" Built-in functions +syn keyword mesonBuiltin + \ add_global_arguments + \ add_global_link_arguments + \ add_languages + \ add_project_arguments + \ add_project_dependencies + \ add_project_link_arguments + \ add_test_setup + \ alias_target + \ assert + \ benchmark + \ both_libraries + \ build_machine + \ build_target + \ configuration_data + \ configure_file + \ custom_target + \ declare_dependency + \ dependency + \ disabler + \ environment + \ error + \ executable + \ files + \ find_library + \ find_program + \ generator + \ get_option + \ get_variable + \ gettext + \ host_machine + \ import + \ include_directories + \ install_data + \ install_headers + \ install_man + \ install_subdir + \ install_symlink + \ install_emptydir + \ is_disabler + \ is_variable + \ jar + \ join_paths + \ library + \ meson + \ message + \ option + \ project + \ run_command + \ run_target + \ set_variable + \ shared_library + \ shared_module + \ static_library + \ structured_sources + \ subdir + \ subdir_done + \ subproject + \ summary + \ target_machine + \ test + \ unset_variable + \ vcs_tag + \ warning + \ range + \ debug + +if exists("meson_space_error_highlight") + " trailing whitespace + syn match mesonSpaceError display excludenl "\s\+$" + " mixed tabs and spaces + syn match mesonSpaceError display " \+\t" + syn match mesonSpaceError display "\t\+ " +endif + +" The default highlight links. Can be overridden later. +hi def link mesonStatement Statement +hi def link mesonConditional Conditional +hi def link mesonRepeat Repeat +hi def link mesonOperator Operator +hi def link mesonComment Comment +hi def link mesonTodo Todo +hi def link mesonString String +hi def link mesonEscape Special +hi def link mesonNumber Number +hi def link mesonBuiltin Function +hi def link mesonBoolean Boolean +if exists("meson_space_error_highlight") + hi def link mesonSpaceError Error +endif + +let b:current_syntax = "meson" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/messages.vim b/runtime/syntax/messages.vim new file mode 100644 index 0000000..8b970aa --- /dev/null +++ b/runtime/syntax/messages.vim @@ -0,0 +1,74 @@ +" Vim syntax file +" Language: /var/log/messages file +" Maintainer: Yakov Lerner +" Latest Revision: 2008-06-29 +" Changes: 2008-06-29 support for RFC3339 tuimestamps James Vega +" 2016 Jan 19: messagesDate changed by Bram +" 2021 Jan 27: messagesHourRFC3339 changed from #946 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match messagesBegin display '^' nextgroup=messagesDate,messagesDateRFC3339 + +syn match messagesDate contained display '[[:lower:][:upper:]][[:lower:][:upper:]][[:lower:][:upper:]] [ 0-9]\d *' + \ nextgroup=messagesHour + +syn match messagesHour contained display '\d\d:\d\d:\d\d\s*' + \ nextgroup=messagesHost + +syn match messagesDateRFC3339 contained display '\d\{4}-\d\d-\d\d' + \ nextgroup=messagesRFC3339T + +syn match messagesRFC3339T contained display '\cT' + \ nextgroup=messagesHourRFC3339 + +syn match messagesHourRFC3339 contained display '\c\d\d:\d\d:\d\d\(\.\d\+\)\=\([+-]\d\d:\d\d\|Z\)\s*' + \ nextgroup=messagesHost + +syn match messagesHost contained display '\S*\s*' + \ nextgroup=messagesLabel + +syn match messagesLabel contained display '\s*[^:]*:\s*' + \ nextgroup=messagesText contains=messagesKernel,messagesPID + +syn match messagesPID contained display '\[\zs\d\+\ze\]' + +syn match messagesKernel contained display 'kernel:' + + +syn match messagesIP '\d\+\.\d\+\.\d\+\.\d\+' + +syn match messagesURL '\w\+://\S\+' + +syn match messagesText contained display '.*' + \ contains=messagesNumber,messagesIP,messagesURL,messagesError + +syn match messagesNumber contained '0x[0-9a-fA-F]*\|\[<[0-9a-f]\+>\]\|\<\d[0-9a-fA-F]*' + +syn match messagesError contained '\c.*\<\(FATAL\|ERROR\|ERRORS\|FAILED\|FAILURE\).*' + + +hi def link messagesDate Constant +hi def link messagesHour Type +hi def link messagesDateRFC3339 Constant +hi def link messagesHourRFC3339 Type +hi def link messagesRFC3339T Normal +hi def link messagesHost Identifier +hi def link messagesLabel Operator +hi def link messagesPID Constant +hi def link messagesKernel Special +hi def link messagesError ErrorMsg +hi def link messagesIP Constant +hi def link messagesURL Underlined +hi def link messagesText Normal +hi def link messagesNumber Number + +let b:current_syntax = "messages" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/mf.vim b/runtime/syntax/mf.vim new file mode 100644 index 0000000..d1faa19 --- /dev/null +++ b/runtime/syntax/mf.vim @@ -0,0 +1,308 @@ +vim9script + +# Vim syntax file +# Language: METAFONT +# Maintainer: Nicola Vitacolonna +# Former Maintainers: Andreas Scherer +# Latest Revision: 2022 Aug 12 + +if exists("b:current_syntax") + finish +endif + +# Deprecation warnings: to be removed eventually +if exists("g:plain_mf_macros") + echomsg "[mf] g:plain_mf_macros is deprecated: use g:mf_plain_macros instead." +endif +if exists("g:plain_mf_modes") + echomsg "[mf] g:plain_mf_modes is deprecated: use g:mf_plain_modes instead." +endif +if exists("g:other_mf_macros") + echomsg "[mf] g:other_mf_macros is deprecated: use g:mf_other_macros instead." +endif + +syn iskeyword @,_ + +# METAFONT 'primitives' as defined in chapter 25 of 'The METAFONTbook' +# Page 210: 'boolean expressions' +syn keyword mfBoolExp and charexists false known not odd or true unknown + +# Page 210: 'numeric expression' +syn keyword mfNumExp ASCII angle cosd directiontime floor hex length +syn keyword mfNumExp mexp mlog normaldeviate oct sind sqrt totalweight +syn keyword mfNumExp turningnumber uniformdeviate xpart xxpart xypart +syn keyword mfNumExp ypart yxpart yypart + +# Page 211: 'internal quantities' +syn keyword mfInternal autorounding boundarychar charcode chardp chardx +syn keyword mfInternal chardy charext charht charic charwd day designsize +syn keyword mfInternal fillin fontmaking granularity hppp jobname month +syn keyword mfInternal pausing proofing showstopping smoothing time +syn keyword mfInternal tracingcapsules tracingchoices tracingcommands +syn keyword mfInternal tracingedges tracingequations tracingmacros +syn keyword mfInternal tracingonline tracingoutput tracingpens +syn keyword mfInternal tracingrestores tracingspecs tracingstats +syn keyword mfInternal tracingtitles turningcheck vppp warningcheck +syn keyword mfInternal xoffset year yoffset + +# Page 212: 'pair expressions' +syn keyword mfPairExp of penoffset point postcontrol precontrol rotated +syn keyword mfPairExp scaled shifted slanted transformed xscaled yscaled +syn keyword mfPairExp zscaled + +# Page 213: 'path expressions' +syn keyword mfPathExp atleast controls curl cycle makepath reverse +syn keyword mfPathExp subpath tension + +# Page 214: 'pen expressions' +syn keyword mfPenExp makepen nullpen pencircle + +# Page 214: 'picture expressions' +syn keyword mfPicExp nullpicture + +# Page 214: 'string expressions' +syn keyword mfStringExp char decimal readstring str substring + +# Page 217: 'commands and statements' +syn keyword mfCommand addto also at batchmode contour cull delimiters +syn keyword mfCommand display doublepath dropping dump end errhelp +syn keyword mfCommand errmessage errorstopmode everyjob from interim +syn keyword mfCommand inwindow keeping let message newinternal +syn keyword mfCommand nonstopmode numspecial openwindow outer randomseed +syn keyword mfCommand save scrollmode shipout show showdependencies +syn keyword mfCommand showstats showtoken showvariable special to withpen +syn keyword mfCommand withweight + +# Page 56: 'types' +syn keyword mfType boolean numeric pair path pen picture string +syn keyword mfType transform + +# Page 155: 'grouping' +syn keyword mfStatement begingroup endgroup + +# Page 165: 'definitions' +syn keyword mfDefinition def enddef expr primary primarydef secondary +syn keyword mfDefinition secondarydef suffix tertiary tertiarydef text +syn keyword mfDefinition vardef + +# Page 169: 'conditions and loops' +syn keyword mfCondition else elseif endfor exitif fi for forever +syn keyword mfCondition forsuffixes if step until + +# Other primitives listed in the index +syn keyword mfPrimitive charlist endinput expandafter extensible fontdimen +syn keyword mfPrimitive headerbyte inner input intersectiontimes kern +syn keyword mfPrimitive ligtable quote scantokens skipto + +# Implicit suffix parameters +syn match mfSuffixParam "@#\|#@\|@" + +# These are just tags, but given their special status, we +# highlight them as variables +syn keyword mfVariable x y + +# Keywords defined by plain.mf (defined on pp.262-278) +if get(g:, "mf_plain_macros", get(g:, "plain_mf_macros", 1)) + syn keyword mfDef addto_currentpicture beginchar capsule_def + syn keyword mfDef change_width clear_pen_memory clearit clearpen + syn keyword mfDef clearxy culldraw cullit cutdraw + syn keyword mfDef define_blacker_pixels define_corrected_pixels + syn keyword mfDef define_good_x_pixels define_good_y_pixels + syn keyword mfDef define_horizontal_corrected_pixels define_pixels + syn keyword mfDef define_whole_blacker_pixels define_whole_pixels + syn keyword mfDef define_whole_vertical_blacker_pixels + syn keyword mfDef define_whole_vertical_pixels downto draw drawdot + syn keyword mfDef endchar erase exitunless fill filldraw fix_units + syn keyword mfDef flex font_coding_scheme font_extra_space + syn keyword mfDef font_identifier font_normal_shrink + syn keyword mfDef font_normal_space font_normal_stretch font_quad + syn keyword mfDef font_size font_slant font_x_height gfcorners gobble + syn keyword mfDef hide imagerules interact italcorr killtext + syn keyword mfDef loggingall lowres_fix makebox makegrid maketicks + syn keyword mfDef mode_def mode_setup nodisplays notransforms numtok + syn keyword mfDef openit penrazor pensquare penstroke pickup + syn keyword mfDef proofoffset proofrule range reflectedabout + syn keyword mfDef rotatedaround screenchars screenrule screenstrokes + syn keyword mfDef shipit showit smode stop superellipse takepower + syn keyword mfDef tracingall tracingnone undraw undrawdot unfill + syn keyword mfDef unfilldraw upto z + syn match mfDef "???" + syn keyword mfVardef bot byte ceiling counterclockwise cutoff decr dir + syn keyword mfVardef direction directionpoint grayfont hround incr + syn keyword mfVardef interpath inverse labelfont labels lft magstep + # Note: nodot is not a vardef, it is used as in makelabel.lft.nodot("5",z5) + # (METAFONT only) + syn keyword mfVardef makelabel max min nodot penlabels penpos + syn keyword mfVardef proofrulethickness round rt savepen slantfont solve + syn keyword mfVardef tensepath titlefont top unitvector vround whatever + syn match mpVardef "\" + syn keyword mfPrimaryDef div dotprod gobbled mod + syn keyword mfSecondaryDef intersectionpoint + syn keyword mfTertiaryDef softjoin thru + syn keyword mfNewInternal blacker currentwindow displaying eps epsilon + syn keyword mfNewInternal infinity join_radius number_of_modes o_correction + syn keyword mfNewInternal pen_bot pen_lft pen_rt pen_top pixels_per_inch + syn keyword mfNewInternal screen_cols screen_rows tolerance + # Predefined constants + syn keyword mfConstant base_name base_version blankpicture ditto down + syn keyword mfConstant fullcircle halfcircle identity left lowres origin + syn keyword mfConstant penspeck proof quartercircle right rulepen smoke + syn keyword mfConstant unitpixel unitsquare up + # Other predefined variables + syn keyword mfVariable aspect_ratio currentpen extra_beginchar + syn keyword mfVariable extra_endchar currentpen_path currentpicture + syn keyword mfVariable currenttransform d extra_setup h localfont mag mode + syn keyword mfVariable mode_name w + # let statements: + syn keyword mfnumExp abs + syn keyword mfPairExp rotatedabout + syn keyword mfCommand bye relax +endif + +# By default, METAFONT loads modes.mf, too +if get(g:, "plain_mf_modes", get(g:, "mf_plain_modes", 1)) + syn keyword mfConstant APSSixMed AgfaFourZeroZero AgfaThreeFourZeroZero + syn keyword mfConstant AtariNineFive AtariNineSix AtariSLMEightZeroFour + syn keyword mfConstant AtariSMOneTwoFour CItohEightFiveOneZero + syn keyword mfConstant CItohThreeOneZero CanonBJCSixZeroZero CanonCX + syn keyword mfConstant CanonEX CanonLBPLX CanonLBPTen CanonSX ChelgraphIBX + syn keyword mfConstant CompugraphicEightSixZeroZero + syn keyword mfConstant CompugraphicNineSixZeroZero DD DEClarge DECsmall + syn keyword mfConstant DataDiscNew EightThree EpsonAction + syn keyword mfConstant EpsonLQFiveZeroZeroLo EpsonLQFiveZeroZeroMed + syn keyword mfConstant EpsonMXFX EpsonSQEightSevenZero EpsonStylusPro + syn keyword mfConstant EpsonStylusProHigh EpsonStylusProLow + syn keyword mfConstant EpsonStylusProMed FourFour GThreefax HPDeskJet + syn keyword mfConstant HPLaserJetIIISi IBMFourTwoFiveZero IBMFourTwoOneSix + syn keyword mfConstant IBMFourTwoThreeZero IBMFourZeroOneNine + syn keyword mfConstant IBMFourZeroThreeNine IBMFourZeroTwoNine + syn keyword mfConstant IBMProPrinter IBMSixOneFiveFour IBMSixSixSevenZero + syn keyword mfConstant IBMThreeEightOneTwo IBMThreeEightTwoZero + syn keyword mfConstant IBMThreeOneNineThree IBMThreeOneSevenNine + syn keyword mfConstant IBMUlfHolleberg LASevenFive LNOthreR LNOthree + syn keyword mfConstant LNZeroOne LNZeroThree LPSFourZero LPSTwoZero + syn keyword mfConstant LexmarkFourZeroThreeNine LexmarkOptraR + syn keyword mfConstant LexmarkOptraS LinotypeLThreeThreeZero + syn keyword mfConstant LinotypeOneZeroZero LinotypeOneZeroZeroLo + syn keyword mfConstant LinotypeThreeZeroZeroHi MacTrueSize NeXTprinter + syn keyword mfConstant NeXTscreen NecTwoZeroOne Newgen NineOne + syn keyword mfConstant OCESixSevenFiveZeroPS OneTwoZero OneZeroZero + syn keyword mfConstant PrintwareSevenTwoZeroIQ Prism QMSOneSevenTwoFive + syn keyword mfConstant QMSOneSevenZeroZero QMSTwoFourTwoFive RicohA + syn keyword mfConstant RicohFortyEighty RicohFourZeroEightZero RicohLP + syn keyword mfConstant SparcPrinter StarNLOneZero VAXstation VTSix + syn keyword mfConstant VarityperFiveZeroSixZeroW + syn keyword mfConstant VarityperFourThreeZeroZeroHi + syn keyword mfConstant VarityperFourThreeZeroZeroLo + syn keyword mfConstant VarityperFourTwoZeroZero VarityperSixZeroZero + syn keyword mfConstant XeroxDocutech XeroxEightSevenNineZero + syn keyword mfConstant XeroxFourZeroFiveZero XeroxNineSevenZeroZero + syn keyword mfConstant XeroxPhaserSixTwoZeroZeroDP XeroxThreeSevenZeroZero + syn keyword mfConstant Xerox_world agfafzz agfatfzz amiga aps apssixhi + syn keyword mfConstant aselect atariezf atarinf atarins atariotf bitgraph + syn keyword mfConstant bjtenex bjtzzex bjtzzl bjtzzs boise canonbjc + syn keyword mfConstant canonex canonlbp cg cgl cgnszz citohtoz corona crs + syn keyword mfConstant cthreeten cx datadisc declarge decsmall deskjet + syn keyword mfConstant docutech dover dp dpdfezzz eighthre elvira epscszz + syn keyword mfConstant epsdraft epsdrft epsdrftl epsfast epsfastl epshi + syn keyword mfConstant epslo epsmed epsmedl epson epsonact epsonfx epsonl + syn keyword mfConstant epsonlo epsonlol epsonlq epsonsq epstylus epstylwr + syn keyword mfConstant epstyplo epstypmd epstypml epstypro epswlo epswlol + syn keyword mfConstant esphi fourfour gpx gtfax gtfaxhi gtfaxl gtfaxlo + syn keyword mfConstant gtfaxlol help hifax highfax hplaser hprugged ibm_a + syn keyword mfConstant ibmd ibmega ibmegal ibmfzon ibmfztn ibmpp ibmppl + syn keyword mfConstant ibmsoff ibmteot ibmtetz ibmtont ibmtosn ibmtosnl + syn keyword mfConstant ibmvga ibx imagen imagewriter itoh itohl itohtoz + syn keyword mfConstant itohtozl iw jetiiisi kyocera laserjet laserjetfive + syn keyword mfConstant laserjetfivemp laserjetfour laserjetfourthousand + syn keyword mfConstant laserjetfourzerozerozero laserjethi laserjetlo + syn keyword mfConstant laserjettwoonezerozero + syn keyword mfConstant laserjettwoonezerozerofastres lasermaster + syn keyword mfConstant laserwriter lasf lexmarkr lexmarks lexmarku + syn keyword mfConstant linohalf linohi linolo linolttz linoone linosuper + syn keyword mfConstant linothree linothreelo linotzzh ljfive ljfivemp + syn keyword mfConstant ljfour ljfzzz ljfzzzfr ljlo ljtozz ljtozzfr lmaster + syn keyword mfConstant lnotr lnzo lps lpstz lqhires lqlores lqmed lqmedl + syn keyword mfConstant lqmedres lview lviewl lwpro macmag mactrue modes_mf + syn keyword mfConstant ncd nec nechi neclm nectzo newdd newddl nexthi + syn keyword mfConstant nextscreen nextscrn nineone nullmode ocessfz + syn keyword mfConstant okidata okidatal okifourten okifte okihi onetz + syn keyword mfConstant onezz pcprevw pcscreen phaser phaserfs phasertf + syn keyword mfConstant phasertfl phasertl pixpt printware prntware + syn keyword mfConstant proprinter qms qmsesz qmsostf qmsoszz qmstftf ricoh + syn keyword mfConstant ricoha ricohlp ricohsp sherpa sparcptr starnlt + syn keyword mfConstant starnltl styletwo stylewr stylewri stylewriter sun + syn keyword mfConstant supre swtwo toshiba ultre varityper vs vtftzz + syn keyword mfConstant vtftzzhi vtftzzlo vtfzszw vtszz xpstzz xpstzzl + syn keyword mfConstant xrxesnz xrxfzfz xrxnszz xrxtszz + syn keyword mfDef BCPL_string coding_scheme font_face_byte + syn keyword mfDef font_family landscape + syn keyword mfDef mode_extra_info mode_help mode_param + syn keyword mfNewInternal blacker_min +endif + +# Some other basic macro names, e.g., from cmbase, logo, etc. +if get(g:, "mf_other_macros", get(g:, "other_mf_macros", 1)) + syn keyword mfDef beginlogochar + syn keyword mfDef font_setup + syn keyword mfPrimitive generate +endif + +# Numeric tokens +syn match mfNumeric "[-]\=\d\+" +syn match mfNumeric "[-]\=\.\d\+" +syn match mfNumeric "[-]\=\d\+\.\d\+" + +# METAFONT lengths +syn match mfLength "\<\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\>" +syn match mfLength "[-]\=\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=" +syn match mfLength "[-]\=\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=" +syn match mfLength "[-]\=\d\+\.\d\+\(bp\|cc\|cm\|dd\|in\|mm\|pc\|pt\)\#\=" + +# String constants +syn match mfOpenString /"[^"]*/ +syn region mfString oneline keepend start=+"+ end=+"+ + +# Comments: +syn keyword mfTodoComment contained TODO FIXME XXX DEBUG NOTE +syn match mfComment "%.*$" contains=mfTodoComment,@Spell + +# synchronizing +syn sync maxlines=100 + +# Define the default highlighting +hi def link mfBoolExp Statement +hi def link mfNumExp Statement +hi def link mfPairExp Statement +hi def link mfPathExp Statement +hi def link mfPenExp Statement +hi def link mfPicExp Statement +hi def link mfStringExp Statement +hi def link mfInternal Identifier +hi def link mfCommand Statement +hi def link mfType Type +hi def link mfStatement Statement +hi def link mfDefinition Statement +hi def link mfCondition Conditional +hi def link mfPrimitive Statement +hi def link mfDef Function +hi def link mfVardef mfDef +hi def link mfPrimaryDef mfDef +hi def link mfSecondaryDef mfDef +hi def link mfTertiaryDef mfDef +hi def link mfCoord Identifier +hi def link mfPoint Identifier +hi def link mfNumeric Number +hi def link mfLength Number +hi def link mfComment Comment +hi def link mfString String +hi def link mfOpenString Todo +hi def link mfSuffixParam Label +hi def link mfNewInternal mfInternal +hi def link mfVariable Identifier +hi def link mfConstant Constant +hi def link mfTodoComment Todo + +b:current_syntax = "mf" + +# vim: sw=2 fdm=marker diff --git a/runtime/syntax/mgl.vim b/runtime/syntax/mgl.vim new file mode 100644 index 0000000..f7bc617 --- /dev/null +++ b/runtime/syntax/mgl.vim @@ -0,0 +1,117 @@ +" Vim syntax file +" Language: MGL +" Version: 1.0 +" Last Change: 2006 Feb 21 +" Maintainer: Gero Kuhlmann +" +" $Id: mgl.vim,v 1.1 2006/02/21 22:08:20 vimboss Exp $ +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +syn sync lines=250 + +syn keyword mglBoolean true false +syn keyword mglConditional if else then +syn keyword mglConstant nil +syn keyword mglPredefined maxint +syn keyword mglLabel case goto label +syn keyword mglOperator to downto in of with +syn keyword mglOperator and not or xor div mod +syn keyword mglRepeat do for repeat while to until +syn keyword mglStatement procedure function break continue return restart +syn keyword mglStatement program begin end const var type +syn keyword mglStruct record +syn keyword mglType integer string char boolean char ipaddr array + + +" String +if !exists("mgl_one_line_string") + syn region mglString matchgroup=mglString start=+'+ end=+'+ contains=mglStringEscape + syn region mglString matchgroup=mglString start=+"+ end=+"+ contains=mglStringEscapeGPC +else + "wrong strings + syn region mglStringError matchgroup=mglStringError start=+'+ end=+'+ end=+$+ contains=mglStringEscape + syn region mglStringError matchgroup=mglStringError start=+"+ end=+"+ end=+$+ contains=mglStringEscapeGPC + "right strings + syn region mglString matchgroup=mglString start=+'+ end=+'+ oneline contains=mglStringEscape + syn region mglString matchgroup=mglString start=+"+ end=+"+ oneline contains=mglStringEscapeGPC +end +syn match mglStringEscape contained "''" +syn match mglStringEscapeGPC contained '""' + + +if exists("mgl_symbol_operator") + syn match mglSymbolOperator "[+\-/*=\%]" + syn match mglSymbolOperator "[<>]=\=" + syn match mglSymbolOperator "<>" + syn match mglSymbolOperator ":=" + syn match mglSymbolOperator "[()]" + syn match mglSymbolOperator "\.\." + syn match mglMatrixDelimiter "(." + syn match mglMatrixDelimiter ".)" + syn match mglMatrixDelimiter "[][]" +endif + +syn match mglNumber "-\=\<\d\+\>" +syn match mglHexNumber "\$[0-9a-fA-F]\+\>" +syn match mglCharacter "\#[0-9]\+\>" +syn match mglIpAddr "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\>" + +syn region mglComment start="(\*" end="\*)" +syn region mglComment start="{" end="}" +syn region mglComment start="//" end="$" + +if !exists("mgl_no_functions") + syn keyword mglFunction dispose new + syn keyword mglFunction get load print select + syn keyword mglFunction odd pred succ + syn keyword mglFunction chr ord abs sqr + syn keyword mglFunction exit + syn keyword mglOperator at timeout +endif + + +syn region mglPreProc start="(\*\$" end="\*)" +syn region mglPreProc start="{\$" end="}" + +syn keyword mglException try except raise +syn keyword mglPredefined exception + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link mglBoolean Boolean +hi def link mglComment Comment +hi def link mglConditional Conditional +hi def link mglConstant Constant +hi def link mglException Exception +hi def link mglFunction Function +hi def link mglLabel Label +hi def link mglMatrixDelimiter Identifier +hi def link mglNumber Number +hi def link mglHexNumber Number +hi def link mglCharacter Number +hi def link mglIpAddr Number +hi def link mglOperator Operator +hi def link mglPredefined mglFunction +hi def link mglPreProc PreProc +hi def link mglRepeat Repeat +hi def link mglStatement Statement +hi def link mglString String +hi def link mglStringEscape Special +hi def link mglStringEscapeGPC Special +hi def link mglStringError Error +hi def link mglStruct mglStatement +hi def link mglSymbolOperator mglOperator +hi def link mglType Type + + + +let b:current_syntax = "mgl" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/mgp.vim b/runtime/syntax/mgp.vim new file mode 100644 index 0000000..7227804 --- /dev/null +++ b/runtime/syntax/mgp.vim @@ -0,0 +1,69 @@ +" Vim syntax file +" Language: mgp - MaGic Point +" Maintainer: Gerfried Fuchs +" Filenames: *.mgp +" Last Change: 25 Apr 2001 +" URL: http://alfie.ist.org/vim/syntax/mgp.vim +" +" Comments are very welcome - but please make sure that you are commenting on +" the latest version of this file. +" SPAM is _NOT_ welcome - be ready to be reported! + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +syn match mgpLineSkip "\\$" + +" all the commands that are currently recognized +syn keyword mgpCommand contained size fore back bgrad left leftfill center +syn keyword mgpCommand contained right shrink lcutin rcutin cont xfont vfont +syn keyword mgpCommand contained tfont tmfont tfont0 bar image newimage +syn keyword mgpCommand contained prefix icon bimage default tab vgap hgap +syn keyword mgpCommand contained pause mark again system filter endfilter +syn keyword mgpCommand contained vfcap tfdir deffont font embed endembed +syn keyword mgpCommand contained noop pcache include + +" charset is not yet supported :-) +" syn keyword mgpCommand contained charset + +syn region mgpFile contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match mgpValue contained "\d\+" +syn match mgpSize contained "\d\+x\d\+" +syn match mgpLine +^%.*$+ contains=mgpCommand,mgpFile,mgpSize,mgpValue + +" Comments +syn match mgpPercent +^%%.*$+ +syn match mgpHash +^#.*$+ + +" these only work alone +syn match mgpPage +^%page$+ +syn match mgpNoDefault +^%nodefault$+ + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link mgpLineSkip Special + +hi def link mgpHash mgpComment +hi def link mgpPercent mgpComment +hi def link mgpComment Comment + +hi def link mgpCommand Identifier + +hi def link mgpLine Type + +hi def link mgpFile String +hi def link mgpSize Number +hi def link mgpValue Number + +hi def link mgpPage mgpDefine +hi def link mgpNoDefault mgpDefine +hi def link mgpDefine Define + + +let b:current_syntax = "mgp" diff --git a/runtime/syntax/mib.vim b/runtime/syntax/mib.vim new file mode 100644 index 0000000..6062d50 --- /dev/null +++ b/runtime/syntax/mib.vim @@ -0,0 +1,57 @@ +" Vim syntax file +" Language: Vim syntax file for SNMPv1 and SNMPv2 MIB and SMI files +" Maintainer: Martin Smat +" Original Author: David Pascoe +" Written: Wed Jan 28 14:37:23 GMT--8:00 1998 +" Last Changed: Mon Mar 23 2010 + +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,128-167,224-235,- + +syn keyword mibImplicit ACCESS ANY AUGMENTS BEGIN BIT BITS BOOLEAN CHOICE +syn keyword mibImplicit COMPONENTS CONTACT-INFO DEFINITIONS DEFVAL +syn keyword mibImplicit DESCRIPTION DISPLAY-HINT END ENTERPRISE EXTERNAL FALSE +syn keyword mibImplicit FROM GROUP IMPLICIT IMPLIED IMPORTS INDEX +syn keyword mibImplicit LAST-UPDATED MANDATORY-GROUPS MAX-ACCESS +syn keyword mibImplicit MIN-ACCESS MODULE MODULE-COMPLIANCE MODULE-IDENTITY +syn keyword mibImplicit NOTIFICATION-GROUP NOTIFICATION-TYPE NOTIFICATIONS +syn keyword mibImplicit NULL OBJECT-GROUP OBJECT-IDENTITY OBJECT-TYPE +syn keyword mibImplicit OBJECTS OF OPTIONAL ORGANIZATION REFERENCE +syn keyword mibImplicit REVISION SEQUENCE SET SIZE STATUS SYNTAX +syn keyword mibImplicit TEXTUAL-CONVENTION TRAP-TYPE TRUE UNITS VARIABLES +syn keyword mibImplicit WRITE-SYNTAX +syn keyword mibValue accessible-for-notify current DisplayString +syn keyword mibValue deprecated mandatory not-accessible obsolete optional +syn keyword mibValue read-create read-only read-write write-only INTEGER +syn keyword mibValue Counter Gauge IpAddress OCTET STRING experimental mib-2 +syn keyword mibValue TimeTicks RowStatus TruthValue UInteger32 snmpModules +syn keyword mibValue Integer32 Counter32 TestAndIncr TimeStamp InstancePointer +syn keyword mibValue OBJECT IDENTIFIER Gauge32 AutonomousType Counter64 +syn keyword mibValue PhysAddress TimeInterval MacAddress StorageType RowPointer +syn keyword mibValue TDomain TAddress ifIndex + +" Epilogue SMI extensions +syn keyword mibEpilogue FORCE-INCLUDE EXCLUDE cookie get-function set-function +syn keyword mibEpilogue test-function get-function-async set-function-async +syn keyword mibEpilogue test-function-async next-function next-function-async +syn keyword mibEpilogue leaf-name +syn keyword mibEpilogue DEFAULT contained + +syn match mibOperator "::=" +syn match mibComment "\ *--.\{-}\(--\|$\)" +syn match mibNumber "\<['0-9a-fA-FhH]*\>" +syn region mibDescription start="\"" end="\"" contains=DEFAULT + +hi def link mibImplicit Statement +hi def link mibOperator Statement +hi def link mibComment Comment +hi def link mibConstants String +hi def link mibNumber Number +hi def link mibDescription Identifier +hi def link mibEpilogue SpecialChar +hi def link mibValue Structure + +let b:current_syntax = "mib" diff --git a/runtime/syntax/mix.vim b/runtime/syntax/mix.vim new file mode 100644 index 0000000..564d344 --- /dev/null +++ b/runtime/syntax/mix.vim @@ -0,0 +1,84 @@ +" Vim syntax file +" Language: MIX (Donald Knuth's assembly language used in TAOCP) +" Maintainer: Wu Yongwei +" Filenames: *.mixal *.mix +" Last Change: 2017-11-26 15:21:36 +0800 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +" Special processing of ALF directive: implementations vary whether quotation +" marks are needed +syn match mixAlfParam #\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixString nextgroup=mixEndComment contained + +" Region for parameters +syn match mixParam #[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained + +" Comment at the line end +syn match mixEndComment ".*" contains=mixRegister contained + +" Identifier; must go before literals +syn match mixIdentifier "[a-z0-9_]\+" contained + +" Literals +syn match mixSpecial "[-+*/:=]" contained +syn match mixNumber "[0-9]\+\>" contained +syn region mixString start=+"+ skip=+\\"+ end=+"+ contained + +" Labels +syn match mixLabel "^[a-z0-9_]\{,10\}\s\+" nextgroup=mixAlfSpecial,mixOpcode,mixDirective +syn match mixLabel "[0-9][BF]" contained + +" Comments +syn match mixComment "^\*.*" contains=mixRegister + +" Directives +syn keyword mixDirective ORIG EQU CON END nextgroup=mixParam contained skipwhite +syn keyword mixDirective ALF nextgroup=mixAlfParam contained + +" Opcodes +syn keyword mixOpcode NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained +syn keyword mixOpcode FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite +syn keyword mixOpcode SLB SRB JAE JAO JXE JXO nextgroup=mixParam contained skipwhite + +syn match mixOpcode "LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite +syn match mixOpcode "ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite +syn match mixOpcode "EN[TN][AX1-6]\>" nextgroup=mixParam contained skipwhite +syn match mixOpcode "INC[AX1-6]\>" nextgroup=mixParam contained skipwhite +syn match mixOpcode "DEC[AX1-6]\>" nextgroup=mixParam contained skipwhite +syn match mixOpcode "CMP[AX1-6]\>" nextgroup=mixParam contained skipwhite +syn match mixOpcode "J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite + +" Switch back to being case sensitive +syn case match + +" Registers (only to be used in comments now) +syn keyword mixRegister rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained + +" The default highlighting +hi def link mixRegister Special +hi def link mixLabel Define +hi def link mixComment Comment +hi def link mixEndComment Comment +hi def link mixDirective Keyword +hi def link mixOpcode Keyword + +hi def link mixSpecial Special +hi def link mixNumber Number +hi def link mixString String +hi def link mixAlfParam String +hi def link mixIdentifier Identifier + +let b:current_syntax = "mix" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/mma.vim b/runtime/syntax/mma.vim new file mode 100644 index 0000000..d2f22e9 --- /dev/null +++ b/runtime/syntax/mma.vim @@ -0,0 +1,321 @@ +" Vim syntax file +" Language: Mathematica +" Maintainer: steve layland +" Last Change: 2012 Feb 03 by Thilo Six +" Source: http://members.wri.com/layland/vim/syntax/mma.vim +" http://vim.sourceforge.net/scripts/script.php?script_id=1273 +" Id: $Id: mma.vim,v 1.4 2006/04/14 20:40:38 vimboss Exp $ +" NOTE: +" +" Empty .m files will automatically be presumed as Matlab files +" unless you have the following in your .vimrc: +" +" let filetype_m="mma" +" +" I also recommend setting the default 'Comment' highlighting to something +" other than the color used for 'Function', since both are plentiful in +" most mathematica files, and they are often the same color (when using +" background=dark). +" +" Credits: +" o Original Mathematica syntax version written by +" Wolfgang Waltenberger +" o Some ideas like the CommentStar,CommentTitle were adapted +" from the Java vim syntax file by Claudio Fleiner. Thanks! +" o Everything else written by steve +" +" Bugs: +" o Vim 6.1 didn't really have support for character classes +" of other named character classes. For example, [\a\d] +" didn't work. Therefore, a lot of this code uses explicit +" character classes instead: [0-9a-zA-Z] +" +" TODO: +" folding +" fix nesting +" finish populating popular symbols + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Group Definitions: +syntax cluster mmaNotes contains=mmaTodo,mmaFixme +syntax cluster mmaComments contains=mmaComment,mmaFunctionComment,mmaItem,mmaFunctionTitle,mmaCommentStar +syntax cluster mmaCommentStrings contains=mmaLooseQuote,mmaCommentString,mmaUnicode +syntax cluster mmaStrings contains=@mmaCommentStrings,mmaString +syntax cluster mmaTop contains=mmaOperator,mmaGenericFunction,mmaPureFunction,mmaVariable + +" Predefined Constants: +" to list all predefined Symbols would be too insane... +" it's probably smarter to define a select few, and get the rest from +" context if absolutely necessary. +" TODO - populate this with other often used Symbols + +" standard fixed symbols: +syntax keyword mmaVariable True False None Automatic All Null C General + +" mathematical constants: +syntax keyword mmaVariable Pi I E Infinity ComplexInfinity Indeterminate GoldenRatio EulerGamma Degree Catalan Khinchin Glaisher + +" stream data / atomic heads: +syntax keyword mmaVariable Byte Character Expression Number Real String Word EndOfFile Integer Symbol + +" sets: +syntax keyword mmaVariable Integers Complexes Reals Booleans Rationals + +" character classes: +syntax keyword mmaPattern DigitCharacter LetterCharacter WhitespaceCharacter WordCharacter EndOfString StartOfString EndOfLine StartOfLine WordBoundary + +" SelectionMove directions/units: +syntax keyword mmaVariable Next Previous After Before Character Word Expression TextLine CellContents Cell CellGroup EvaluationCell ButtonCell GeneratedCell Notebook +syntax keyword mmaVariable CellTags CellStyle CellLabel + +" TableForm positions: +syntax keyword mmaVariable Above Below Left Right + +" colors: +syntax keyword mmaVariable Black Blue Brown Cyan Gray Green Magenta Orange Pink Purple Red White Yellow + +" function attributes +syntax keyword mmaVariable Protected Listable OneIdentity Orderless Flat Constant NumericFunction Locked ReadProtected HoldFirst HoldRest HoldAll HoldAllComplete SequenceHold NHoldFirst NHoldRest NHoldAll Temporary Stub + +" Comment Sections: +" this: +" :that: +syntax match mmaItem "\%(^[( |*\t]*\)\@<=\%(:\+\|\w\)\w\+\%( \w\+\)\{0,3}:" contained contains=@mmaNotes + +" Comment Keywords: +syntax keyword mmaTodo TODO NOTE HEY contained +syntax match mmaTodo "X\{3,}" contained +syntax keyword mmaFixme FIX[ME] FIXTHIS BROKEN contained +syntax match mmaFixme "BUG\%( *\#\=[0-9]\+\)\=" contained +" yay pirates... +syntax match mmaFixme "\%(Y\=A\+R\+G\+\|GRR\+\|CR\+A\+P\+\)\%(!\+\)\=" contained + +" EmPHAsis: +" this unnecessary, but whatever :) +syntax match mmaemPHAsis "\%(^\|\s\)\([_/]\)[a-zA-Z0-9]\+\%([- \t':]\+[a-zA-Z0-9]\+\)*\1\%(\s\|$\)" contained contains=mmaemPHAsis +syntax match mmaemPHAsis "\%(^\|\s\)(\@]\@!" contains=mmaOperator +"pattern default: +syntax match mmaPattern ": *[^ ,]\+[\], ]\@=" contains=@mmaCommentStrings,@mmaTop,mmaOperator +"pattern head/test: +syntax match mmaPattern "[A-Za-z0-9`]*_\+\%(\a\+\)\=\%(?([^)]\+)\|?[^\]},]\+\)\=" contains=@mmaTop,@mmaCommentStrings,mmaPatternError + +" Operators: +" /: ^= ^:= UpValue +" /; Conditional +" := = DownValue +" == === || +" != =!= && Logic +" >= <= < > +" += -= *= +" /= ++ -- Math +" ^* +" -> :> Rules +" @@ @@@ Apply +" /@ //@ Map +" /. //. Replace +" // @ Function application +" <> ~~ String/Pattern join +" ~ infix operator +" . : Pattern operators +syntax match mmaOperator "\%(@\{1,3}\|//[.@]\=\)" +syntax match mmaOperator "\%(/[;:@.]\=\|\^\=:\==\)" +syntax match mmaOperator "\%([-:=]\=>\|<=\=\)" +"syntax match mmaOperator "\%(++\=\|--\=\|[/+-*]=\|[^*]\)" +syntax match mmaOperator "[*+=^.:?-]" +syntax match mmaOperator "\%(\~\~\=\)" +syntax match mmaOperator "\%(=\{2,3}\|=\=!=\|||\=\|&&\|!\)" contains=ALLBUT,mmaPureFunction + +" Symbol Tags: +" "SymbolName::item" +"syntax match mmaSymbol "`\=[a-zA-Z$]\+[0-9a-zA-Z$]*\%(`\%([a-zA-Z$]\+[0-9a-zA-Z$]*\)\=\)*" contained +syntax match mmaMessage "`\=\([a-zA-Z$]\+[0-9a-zA-Z$]*\)\%(`\%([a-zA-Z$]\+[0-9a-zA-Z$]*\)\=\)*::\a\+" contains=mmaMessageType +syntax match mmaMessageType "::\a\+"hs=s+2 contained + +" Pure Functions: +syntax match mmaPureFunction "#\%(#\|\d\+\)\=" +syntax match mmaPureFunction "&" + +" Named Functions: +" Since everything is pretty much a function, get this straight +" from context +syntax match mmaGenericFunction "[A-Za-z0-9`]\+\s*\%([@[]\|/:\|/\=/@\)\@=" contains=mmaOperator +syntax match mmaGenericFunction "\~\s*[^~]\+\s*\~"hs=s+1,he=e-1 contains=mmaOperator,mmaBoring +syntax match mmaGenericFunction "//\s*[A-Za-z0-9`]\+"hs=s+2 contains=mmaOperator + +" Numbers: +syntax match mmaNumber "\<\%(\d\+\.\=\d*\|\d*\.\=\d\+\)\>" +syntax match mmaNumber "`\d\+\%(\d\@!\.\|\>\)" + +" Special Characters: +" \[Name] named character +" \ooo octal +" \.xx 2 digit hex +" \:xxxx 4 digit hex (multibyte unicode) +syntax match mmaUnicode "\\\[\w\+\d*\]" +syntax match mmaUnicode "\\\%(\x\{3}\|\.\x\{2}\|:\x\{4}\)" + +" Syntax Errors: +syntax match mmaError "\*)" containedin=ALLBUT,@mmaComments,@mmaStrings +syntax match mmaError "\%([/]{3,}\|[&:|+*?~-]\{3,}\|[.=]\{4,}\|_\@<=\.\{2,}\|`\{2,}\)" containedin=ALLBUT,@mmaComments,@mmaStrings + +" Punctuation: +" things that shouldn't really be highlighted, or highlighted +" in they're own group if you _really_ want. :) +" ( ) { } +" TODO - use Delimiter group? +syntax match mmaBoring "[(){}]" contained + +" ------------------------------------ +" future explorations... +" ------------------------------------ +" Function Arguments: +" anything between brackets [] +" (fold) +"syntax region mmaArgument start="\[" end="\]" containedin=ALLBUT,@mmaComments,@mmaStrings transparent fold + +" Lists: +" (fold) +"syntax region mmaLists start="{" end="}" containedin=ALLBUT,@mmaComments,@mmaStrings transparent fold + +" Regions: +" (fold) +"syntax region mmaRegion start="(\*\+[^<]* \*)" containedin=ALLBUT,@mmaStrings transparent fold keepend + +" show fold text +set commentstring='(*%s*)' +"set foldtext=MmaFoldText() + +"function MmaFoldText() +" let line = getline(v:foldstart) +" +" let lines = v:foldend-v:foldstart+1 +" +" let sub = substitute(line, '(\*\+|\*\+)|[-*_]\+', '', 'g') +" +" if match(line, '(\*') != -1 +" let lines = lines.' line comment' +" else +" let lines = lines.' lines' +" endif +" +" return v:folddashes.' '.lines.' '.sub +"endf + +"this is slow for computing folds, but it does so accurately +syntax sync fromstart + +" but this seems to do alright for non fold syntax coloring. +" for folding, however, it doesn't get the nesting right. +" TODO - find sync group for multiline modules? ick... + +" sync multi line comments +"syntax sync match syncComments groupthere NONE "\*)" +"syntax sync match syncComments groupthere mmaComment "(\*" + +"set foldmethod=syntax +"set foldnestmax=1 +"set foldminlines=15 + + +" NOTE - the following links are not guaranteed to +" look good under all colorschemes. You might need to +" :so $VIMRUNTIME/syntax/hitest.vim and tweak these to +" look good in yours + + +hi def link mmaComment Comment +hi def link mmaCommentStar Comment +hi def link mmaFunctionComment Comment +hi def link mmaLooseQuote Comment +hi def link mmaGenericFunction Function +hi def link mmaVariable Identifier +" hi def link mmaSymbol Identifier +hi def link mmaOperator Operator +hi def link mmaPatternOp Operator +hi def link mmaPureFunction Operator +hi def link mmaString String +hi def link mmaCommentString String +hi def link mmaUnicode String +hi def link mmaMessage Type +hi def link mmaNumber Type +hi def link mmaPattern Type +hi def link mmaError Error +hi def link mmaFixme Error +hi def link mmaPatternError Error +hi def link mmaTodo Todo +hi def link mmaemPHAsis Special +hi def link mmaFunctionTitle Special +hi def link mmaMessageType Special +hi def link mmaItem Preproc + + +let b:current_syntax = "mma" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/mmix.vim b/runtime/syntax/mmix.vim new file mode 100644 index 0000000..0590767 --- /dev/null +++ b/runtime/syntax/mmix.vim @@ -0,0 +1,152 @@ +" Vim syntax file +" Language: MMIX +" Maintainer: Dirk Hüsken, +" Last Change: 2012 Jun 01 +" (Dominique Pelle added @Spell) +" Filenames: *.mms +" URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim + +" Limitations: Comments must start with either % or // +" (preferably %, Knuth-Style) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" MMIX data types +syn keyword mmixType byte wyde tetra octa + +" different literals... +syn match decNumber "[0-9]*" +syn match octNumber "0[0-7][0-7]\+" +syn match hexNumber "#[0-9a-fA-F]\+" +syn region mmixString start=+"+ skip=+\\"+ end=+"+ contains=@Spell +syn match mmixChar "'.'" + +" ...and more special MMIX stuff +syn match mmixAt "@" +syn keyword mmixSegments Data_Segment Pool_Segment Stack_Segment + +syn match mmixIdentifier "[a-z_][a-z0-9_]*" + +" labels (for branches etc) +syn match mmixLabel "^[a-z0-9_:][a-z0-9_]*" +syn match mmixLabel "[0-9][HBF]" + +" pseudo-operations +syn keyword mmixPseudo is loc greg + +" comments +syn match mmixComment "%.*" contains=@Spell +syn match mmixComment "//.*" contains=@Spell +syn match mmixComment "^\*.*" contains=@Spell + + +syn keyword mmixOpcode trap fcmp fun feql fadd fix fsub fixu +syn keyword mmixOpcode fmul fcmpe fune feqle fdiv fsqrt frem fint + +syn keyword mmixOpcode floti flotui sfloti sflotui i +syn keyword mmixOpcode muli mului divi divui +syn keyword mmixOpcode addi addui subi subui +syn keyword mmixOpcode 2addui 4addui 8addui 16addui +syn keyword mmixOpcode cmpi cmpui negi negui +syn keyword mmixOpcode sli slui sri srui +syn keyword mmixOpcode bnb bzb bpb bodb +syn keyword mmixOpcode bnnb bnzb bnpb bevb +syn keyword mmixOpcode pbnb pbzb pbpb pbodb +syn keyword mmixOpcode pbnnb pbnzb pbnpb pbevb +syn keyword mmixOpcode csni cszi cspi csodi +syn keyword mmixOpcode csnni csnzi csnpi csevi +syn keyword mmixOpcode zsni zszi zspi zsodi +syn keyword mmixOpcode zsnni zsnzi zsnpi zsevi +syn keyword mmixOpcode ldbi ldbui ldwi ldwui +syn keyword mmixOpcode ldti ldtui ldoi ldoui +syn keyword mmixOpcode ldsfi ldhti cswapi ldunci +syn keyword mmixOpcode ldvtsi preldi pregoi goi +syn keyword mmixOpcode stbi stbui stwi stwui +syn keyword mmixOpcode stti sttui stoi stoui +syn keyword mmixOpcode stsfi sthti stcoi stunci +syn keyword mmixOpcode syncdi presti syncidi pushgoi +syn keyword mmixOpcode ori orni nori xori +syn keyword mmixOpcode andi andni nandi nxori +syn keyword mmixOpcode bdifi wdifi tdifi odifi +syn keyword mmixOpcode muxi saddi mori mxori +syn keyword mmixOpcode muli mului divi divui + +syn keyword mmixOpcode flot flotu sflot sflotu +syn keyword mmixOpcode mul mulu div divu +syn keyword mmixOpcode add addu sub subu +syn keyword mmixOpcode 2addu 4addu 8addu 16addu +syn keyword mmixOpcode cmp cmpu neg negu +syn keyword mmixOpcode sl slu sr sru +syn keyword mmixOpcode bn bz bp bod +syn keyword mmixOpcode bnn bnz bnp bev +syn keyword mmixOpcode pbn pbz pbp pbod +syn keyword mmixOpcode pbnn pbnz pbnp pbev +syn keyword mmixOpcode csn csz csp csod +syn keyword mmixOpcode csnn csnz csnp csev +syn keyword mmixOpcode zsn zsz zsp zsod +syn keyword mmixOpcode zsnn zsnz zsnp zsev +syn keyword mmixOpcode ldb ldbu ldw ldwu +syn keyword mmixOpcode ldt ldtu ldo ldou +syn keyword mmixOpcode ldsf ldht cswap ldunc +syn keyword mmixOpcode ldvts preld prego go +syn keyword mmixOpcode stb stbu stw stwu +syn keyword mmixOpcode stt sttu sto stou +syn keyword mmixOpcode stsf stht stco stunc +syn keyword mmixOpcode syncd prest syncid pushgo +syn keyword mmixOpcode or orn nor xor +syn keyword mmixOpcode and andn nand nxor +syn keyword mmixOpcode bdif wdif tdif odif +syn keyword mmixOpcode mux sadd mor mxor + +syn keyword mmixOpcode seth setmh setml setl inch incmh incml incl +syn keyword mmixOpcode orh ormh orml orl andh andmh andml andnl +syn keyword mmixOpcode jmp pushj geta put +syn keyword mmixOpcode pop resume save unsave sync swym get trip +syn keyword mmixOpcode set lda + +" switch back to being case sensitive +syn case match + +" general-purpose and special-purpose registers +syn match mmixRegister "$[0-9]*" +syn match mmixRegister "r[A-Z]" +syn keyword mmixRegister rBB rTT rWW rXX rYY rZZ + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link mmixAt Type +hi def link mmixPseudo Type +hi def link mmixRegister Special +hi def link mmixSegments Type + +hi def link mmixLabel Special +hi def link mmixComment Comment +hi def link mmixOpcode Keyword + +hi def link hexNumber Number +hi def link decNumber Number +hi def link octNumber Number + +hi def link mmixString String +hi def link mmixChar String + +hi def link mmixType Type +hi def link mmixIdentifier Normal +hi def link mmixSpecialComment Comment + +" My default color overrides: +" hi mmixSpecialComment ctermfg=red +"hi mmixLabel ctermfg=lightcyan +" hi mmixType ctermbg=black ctermfg=brown + + +let b:current_syntax = "mmix" + +" vim: ts=8 diff --git a/runtime/syntax/mmp.vim b/runtime/syntax/mmp.vim new file mode 100644 index 0000000..d0b9f7c --- /dev/null +++ b/runtime/syntax/mmp.vim @@ -0,0 +1,49 @@ +" Vim syntax file +" Language: Symbian meta-makefile definition (MMP) +" Maintainer: Ron Aaron +" Last Change: 2007/11/07 +" URL: http://ronware.org/wiki/vim/mmp +" Filetypes: *.mmp + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn match mmpComment "//.*" +syn region mmpComment start="/\*" end="\*\/" + +syn keyword mmpKeyword aif asspabi assplibrary aaspexports baseaddress +syn keyword mmpKeyword debuglibrary deffile document epocheapsize +syn keyword mmpKeyword epocprocesspriority epocstacksize exportunfrozen +syn keyword mmpStorage lang library linkas macro nostrictdef option +syn keyword mmpStorage resource source sourcepath srcdbg startbitmap +syn keyword mmpStorage start end staticlibrary strictdepend systeminclude +syn keyword mmpStorage systemresource target targettype targetpath uid +syn keyword mmpStorage userinclude win32_library + +syn match mmpIfdef "\#\(include\|ifdef\|ifndef\|if\|endif\|else\|elif\)" + +syn match mmpNumber "\d+" +syn match mmpNumber "0x\x\+" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +if !exists("did_mmp_syntax_inits") + let did_mmp_syntax_inits=1 + + hi def link mmpComment Comment + hi def link mmpKeyword Keyword + hi def link mmpStorage StorageClass + hi def link mmpString String + hi def link mmpNumber Number + hi def link mmpOrdinal Operator + hi def link mmpIfdef PreCondit +endif + +let b:current_syntax = "mmp" + +" vim: ts=8 diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim new file mode 100644 index 0000000..76b36ed --- /dev/null +++ b/runtime/syntax/modconf.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: modules.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-10-25 + +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword+=- + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword modconfTodo FIXME TODO XXX NOTE + +syn region modconfComment start='#' skip='\\$' end='$' + \ contains=modconfTodo,@Spell + +syn keyword modconfConditional if else elseif endif + +syn keyword modconfPreProc alias define include keep prune + \ post-install post-remove pre-install + \ pre-remove persistdir blacklist + +syn keyword modconfKeyword add above below install options probe probeall + \ remove + +syn keyword modconfIdentifier depfile insmod_opt path generic_stringfile + \ pcimapfile isapnpmapfile usbmapfile + \ parportmapfile ieee1394mapfile pnpbiosmapfile +syn match modconfIdentifier 'path\[[^]]\+\]' + +hi def link modconfTodo Todo +hi def link modconfComment Comment +hi def link modconfConditional Conditional +hi def link modconfPreProc PreProc +hi def link modconfKeyword Keyword +hi def link modconfIdentifier Identifier + +let b:current_syntax = "modconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/model.vim b/runtime/syntax/model.vim new file mode 100644 index 0000000..2df380c --- /dev/null +++ b/runtime/syntax/model.vim @@ -0,0 +1,45 @@ +" Vim syntax file +" Language: Model +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" very basic things only (based on the vgrindefs file). +" If you use this language, please improve it, and send patches! + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" A bunch of keywords +syn keyword modelKeyword abs and array boolean by case cdnl char copied dispose +syn keyword modelKeyword div do dynamic else elsif end entry external FALSE false +syn keyword modelKeyword fi file for formal fortran global if iff ift in integer include +syn keyword modelKeyword inline is lbnd max min mod new NIL nil noresult not notin od of +syn keyword modelKeyword or procedure public read readln readonly record recursive rem rep +syn keyword modelKeyword repeat res result return set space string subscript such then TRUE +syn keyword modelKeyword true type ubnd union until varies while width + +" Special keywords +syn keyword modelBlock beginproc endproc + +" Comments +syn region modelComment start="\$" end="\$" end="$" + +" Strings +syn region modelString start=+"+ end=+"+ + +" Character constant (is this right?) +syn match modelString "'." + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link modelKeyword Statement +hi def link modelBlock PreProc +hi def link modelComment Comment +hi def link modelString String + +let b:current_syntax = "model" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/modsim3.vim b/runtime/syntax/modsim3.vim new file mode 100644 index 0000000..ce35033 --- /dev/null +++ b/runtime/syntax/modsim3.vim @@ -0,0 +1,97 @@ +" Vim syntax file +" Language: Modsim III, by compuware corporation (www.compuware.com) +" Maintainer: Philipp Jocham +" Extension: *.mod +" Last Change: 2001 May 10 +" +" 2001 March 24: +" - Modsim III is a registered trademark from compuware corporation +" - made compatible with Vim 6.0 +" +" 1999 Apr 22 : Changed modsim3Literal from region to match +" +" very basic things only (based on the modula2 and c files). + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +" syn case match " case sensitiv match is default + +" A bunch of keywords +syn keyword modsim3Keyword ACTID ALL AND AS ASK +syn keyword modsim3Keyword BY CALL CASE CLASS CONST DIV +syn keyword modsim3Keyword DOWNTO DURATION ELSE ELSIF EXIT FALSE FIXED FOR +syn keyword modsim3Keyword FOREACH FORWARD IF IN INHERITED INOUT +syn keyword modsim3Keyword INTERRUPT LOOP +syn keyword modsim3Keyword MOD MONITOR NEWVALUE +syn keyword modsim3Keyword NONMODSIM NOT OBJECT OF ON OR ORIGINAL OTHERWISE OUT +syn keyword modsim3Keyword OVERRIDE PRIVATE PROTO REPEAT +syn keyword modsim3Keyword RETURN REVERSED SELF STRERR TELL +syn keyword modsim3Keyword TERMINATE THISMETHOD TO TRUE TYPE UNTIL VALUE VAR +syn keyword modsim3Keyword WAIT WAITFOR WHEN WHILE WITH + +" Builtin functions and procedures +syn keyword modsim3Builtin ABS ACTIVATE ADDMONITOR CAP CHARTOSTR CHR CLONE +syn keyword modsim3Builtin DEACTIVATE DEC DISPOSE FLOAT GETMONITOR HIGH INC +syn keyword modsim3Builtin INPUT INSERT INTTOSTR ISANCESTOR LOW LOWER MAX MAXOF +syn keyword modsim3Builtin MIN MINOF NEW OBJTYPEID OBJTYPENAME OBJVARID ODD +syn keyword modsim3Builtin ONERROR ONEXIT ORD OUTPUT POSITION PRINT REALTOSTR +syn keyword modsim3Builtin REPLACE REMOVEMONITOR ROUND SCHAR SIZEOF SPRINT +syn keyword modsim3Builtin STRLEN STRTOCHAR STRTOINT STRTOREAL SUBSTR TRUNC +syn keyword modsim3Builtin UPDATEVALUE UPPER VAL + +syn keyword modsim3BuiltinNoParen HALT TRACE + +" Special keywords +syn keyword modsim3Block PROCEDURE METHOD MODULE MAIN DEFINITION IMPLEMENTATION +syn keyword modsim3Block BEGIN END + +syn keyword modsim3Include IMPORT FROM + +syn keyword modsim3Type ANYARRAY ANYOBJ ANYREC ARRAY BOOLEAN CHAR INTEGER +syn keyword modsim3Type LMONITORED LRMONITORED NILARRAY NILOBJ NILREC REAL +syn keyword modsim3Type RECORD RMONITOR RMONITORED STRING + +" catch errros cause by wrong parenthesis +" slight problem with "( *)" or "(* )". Hints? +syn region modsim3Paren transparent start='(' end=')' contains=ALLBUT,modsim3ParenError +syn match modsim3ParenError ")" + +" Comments +syn region modsim3Comment1 start="{" end="}" contains=modsim3Comment1,modsim3Comment2 +syn region modsim3Comment2 start="(\*" end="\*)" contains=modsim3Comment1,modsim3Comment2 +" highlighting is wrong for constructs like "{ (* } *)", +" which are allowed in Modsim III, but +" I think something like that shouldn't be used anyway. + +" Strings +syn region modsim3String start=+"+ end=+"+ + +" Literals +"syn region modsim3Literal start=+'+ end=+'+ +syn match modsim3Literal "'[^']'\|''''" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link modsim3Keyword Statement +hi def link modsim3Block Statement +hi def link modsim3Comment1 Comment +hi def link modsim3Comment2 Comment +hi def link modsim3String String +hi def link modsim3Literal Character +hi def link modsim3Include Statement +hi def link modsim3Type Type +hi def link modsim3ParenError Error +hi def link modsim3Builtin Function +hi def link modsim3BuiltinNoParen Function + + +let b:current_syntax = "modsim3" + +" vim: ts=8 sw=2 + diff --git a/runtime/syntax/modula2.vim b/runtime/syntax/modula2.vim new file mode 100644 index 0000000..6a9f4af --- /dev/null +++ b/runtime/syntax/modula2.vim @@ -0,0 +1,16 @@ +" Vim syntax file +" Language: Modula-2 +" Maintainer: Doug Kearns +" Previous Maintainer: pf@artcom0.north.de (Peter Funk) +" Last Change: 2024 Jan 04 + +if exists("b:current_syntax") + finish +endif + +let dialect = modula2#GetDialect() +exe "runtime! syntax/modula2/opt/" .. dialect .. ".vim" + +let b:current_syntax = "modula2" + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/modula2/opt/iso.vim b/runtime/syntax/modula2/opt/iso.vim new file mode 100644 index 0000000..5bd24f6 --- /dev/null +++ b/runtime/syntax/modula2/opt/iso.vim @@ -0,0 +1,380 @@ +" Vim syntax file +" Language: Modula-2 (ISO) +" Maintainer: B.Kowarsch +" Last Change: 2016 August 22 + +" ---------------------------------------------------- +" THIS FILE IS LICENSED UNDER THE VIM LICENSE +" see https://github.com/vim/vim/blob/master/LICENSE +" ---------------------------------------------------- + +" Remarks: +" Vim Syntax files are available for the following Modula-2 dialects: +" * for the PIM dialect : m2pim.vim +" * for the ISO dialect : m2iso.vim (this file) +" * for the R10 dialect : m2r10.vim + +" ----------------------------------------------------------------------------- +" This syntax description follows ISO standard IS-10514 (aka ISO Modula-2) +" with the addition of the following language extensions: +" * non-standard types LONGCARD and LONGBITSET +" * non-nesting code disabling tags ?< and >? at the start of a line +" ----------------------------------------------------------------------------- + +" Parameters: +" +" Vim's filetype script recognises Modula-2 dialect tags within the first 200 +" lines of Modula-2 .def and .mod input files. The script sets filetype and +" dialect automatically when a valid dialect tag is found in the input file. +" The dialect tag for the ISO dialect is (*!m2iso*). It is recommended to put +" the tag immediately after the module header in the Modula-2 input file. +" +" Example: +" DEFINITION MODULE Foolib; (*!m2iso*) +" +" Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +" dialect cannot be determined from the contents of the Modula-2 input file: +" if defined and set to 'm2iso', the default dialect is ISO. +" +" Variable g:modula2_iso_allow_lowline controls support for lowline in identifiers: +" if defined and set to a non-zero value, they are recognised, otherwise not +" +" Variable g:modula2_iso_disallow_octals controls the rendering of octal literals: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variable g:modula2_iso_disallow_synonyms controls the rendering of @, & and ~: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variables may be defined in Vim startup file .vimrc +" +" Examples: +" let g:modula2_default_dialect = 'm2iso' +" let g:modula2_iso_allow_lowline = 1 +" let g:modula2_iso_disallow_octals = 1 +" let g:modula2_iso_disallow_synonyms = 1 + + +if exists("b:current_syntax") + finish +endif + +" Modula-2 is case sensitive +syn case match + + +" ----------------------------------------------------------------------------- +" Reserved Words +" ----------------------------------------------------------------------------- +syn keyword modula2Resword AND ARRAY BEGIN BY CASE CONST DEFINITION DIV DO ELSE +syn keyword modula2Resword ELSIF EXCEPT EXIT EXPORT FINALLY FOR FORWARD FROM IF +syn keyword modula2Resword IMPLEMENTATION IMPORT IN LOOP MOD NOT OF OR PACKEDSET +syn keyword modula2Resword POINTER QUALIFIED RECORD REPEAT REM RETRY RETURN SET +syn keyword modula2Resword THEN TO TYPE UNTIL VAR WHILE WITH + + +" ----------------------------------------------------------------------------- +" Builtin Constant Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ConstIdent FALSE NIL TRUE INTERRUPTIBLE UNINTERRUPTIBLE + + +" ----------------------------------------------------------------------------- +" Builtin Type Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2TypeIdent BITSET BOOLEAN CHAR PROC +syn keyword modula2TypeIdent CARDINAL INTEGER LONGINT REAL LONGREAL +syn keyword modula2TypeIdent COMPLEX LONGCOMPLEX PROTECTION + + +" ----------------------------------------------------------------------------- +" Builtin Procedure and Function Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ProcIdent CAP DEC EXCL HALT INC INCL +syn keyword modula2FuncIdent ABS CHR CMPLX FLOAT HIGH IM INT LENGTH LFLOAT MAX MIN +syn keyword modula2FuncIdent ODD ORD RE SIZE TRUNC VAL + + +" ----------------------------------------------------------------------------- +" Wirthian Macro Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2MacroIdent NEW DISPOSE + + +" ----------------------------------------------------------------------------- +" Unsafe Facilities via Pseudo-Module SYSTEM +" ----------------------------------------------------------------------------- +syn keyword modula2UnsafeIdent ADDRESS BYTE LOC WORD +syn keyword modula2UnsafeIdent ADR CAST TSIZE SYSTEM +syn keyword modula2UnsafeIdent MAKEADR ADDADR SUBADR DIFADR ROTATE SHIFT + + +" ----------------------------------------------------------------------------- +" Non-Portable Language Extensions +" ----------------------------------------------------------------------------- +syn keyword modula2NonPortableIdent LONGCARD LONGBITSET + + +" ----------------------------------------------------------------------------- +" User Defined Identifiers +" ----------------------------------------------------------------------------- +syn match modula2Ident "[a-zA-Z][a-zA-Z0-9]*\(_\)\@!" +syn match modula2LowLineIdent "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" + + +" ----------------------------------------------------------------------------- +" String Literals +" ----------------------------------------------------------------------------- +syn region modula2String start=/"/ end=/"/ oneline +syn region modula2String start=/'/ end=/'/ oneline + + +" ----------------------------------------------------------------------------- +" Numeric Literals +" ----------------------------------------------------------------------------- +syn match modula2Num + \ "\(\([0-7]\+\)[BC]\@!\|[89]\)[0-9]*\(\.[0-9]\+\([eE][+-]\?[0-9]\+\)\?\)\?" +syn match modula2Num "[0-9A-F]\+H" +syn match modula2Octal "[0-7]\+[BC]" + + +" ----------------------------------------------------------------------------- +" Punctuation +" ----------------------------------------------------------------------------- +syn match modula2Punctuation + \ "\.\|[,:;]\|\*\|[/+-]\|\#\|[=<>]\|\^\|\[\|\]\|(\(\*\)\@!\|[){}]" +syn match modula2Synonym "[@&~]" + + +" ----------------------------------------------------------------------------- +" Pragmas +" ----------------------------------------------------------------------------- +syn region modula2Pragma start="<\*" end="\*>" +syn match modula2DialectTag "(\*!m2iso\(+[a-z0-9]\+\)\?\*)" + +" ----------------------------------------------------------------------------- +" Block Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment start="(\*\(!m2iso\(+[a-z0-9]\+\)\?\*)\)\@!" end="\*)" + \ contains = modula2Comment, modula2CommentKey, modula2TechDebtMarker +syn match modula2CommentKey "[Aa]uthor[s]\?\|[Cc]opyright\|[Ll]icense\|[Ss]ynopsis" +syn match modula2CommentKey "\([Pp]re\|[Pp]ost\|[Ee]rror\)\-condition[s]\?:" + + +" ----------------------------------------------------------------------------- +" Technical Debt Markers +" ----------------------------------------------------------------------------- +syn keyword modula2TechDebtMarker contained DEPRECATED FIXME +syn match modula2TechDebtMarker "TODO[:]\?" contained + +" ----------------------------------------------------------------------------- +" Disabled Code Sections +" ----------------------------------------------------------------------------- +syn region modula2DisabledCode start="^?<" end="^>?" + + +" ----------------------------------------------------------------------------- +" Headers +" ----------------------------------------------------------------------------- +" !!! this section must be second last !!! + +" new module header +syn match modula2ModuleHeader + \ "MODULE\( [A-Z][a-zA-Z0-9]*\)\?" + \ contains = modula2ReswordModule, modula2ModuleIdent + +syn match modula2ModuleIdent + \ "[A-Z][a-zA-Z0-9]*" contained + +syn match modula2ModuleTail + \ "END [A-Z][a-zA-Z0-9]*\.$" + \ contains = modula2ReswordEnd, modula2ModuleIdent, modula2Punctuation + +" new procedure header +syn match modula2ProcedureHeader + \ "PROCEDURE\( [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)\?" + \ contains = modula2ReswordProcedure, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +syn match modula2ProcedureIdent + \ "\([a-zA-Z]\)\([a-zA-Z0-9]*\)" contained + +syn match modula2ProcedureLowlineIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" contained + +syn match modula2ProcedureTail + \ "END\( \([a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)[.;]$\)\?" + \ contains = modula2ReswordEnd, + \ modula2ProcedureIdent, modula2ProcedureLowLineIdent, + \ modula2Punctuation, modula2IllegalChar, modula2IllegalIdent + +syn keyword modula2ReswordModule contained MODULE +syn keyword modula2ReswordProcedure contained PROCEDURE +syn keyword modula2ReswordEnd contained END + + +" ----------------------------------------------------------------------------- +" Illegal Symbols +" ----------------------------------------------------------------------------- +" !!! this section must be last !!! + +" any '`' '!' '$' '%' or '\' +syn match modula2IllegalChar "[`!$%\\]" + +" any solitary sequence of '_' +syn match modula2IllegalChar "\<_\+\>" + +" any '?' at start of line if not followed by '<' +syn match modula2IllegalChar "^?\(<\)\@!" + +" any '?' not following '>' at start of line +syn match modula2IllegalChar "\(\(^>\)\|\(^\)\)\@" + + +" ----------------------------------------------------------------------------- +" Define Rendering Styles +" ----------------------------------------------------------------------------- + +" highlight default link modula2PredefIdentStyle Keyword +" highlight default link modula2ConstIdentStyle modula2PredefIdentStyle +" highlight default link modula2TypeIdentStyle modula2PredefIdentStyle +" highlight default link modula2ProcIdentStyle modula2PredefIdentStyle +" highlight default link modula2FuncIdentStyle modula2PredefIdentStyle +" highlight default link modula2MacroIdentStyle modula2PredefIdentStyle + +highlight default link modula2ConstIdentStyle Constant +highlight default link modula2TypeIdentStyle Type +highlight default link modula2ProcIdentStyle Function +highlight default link modula2FuncIdentStyle Function +highlight default link modula2MacroIdentStyle Function +highlight default link modula2UnsafeIdentStyle Question +highlight default link modula2NonPortableIdentStyle Question +highlight default link modula2StringLiteralStyle String +highlight default link modula2CommentStyle Comment +highlight default link modula2PragmaStyle PreProc +highlight default link modula2DialectTagStyle SpecialComment +highlight default link modula2TechDebtMarkerStyle SpecialComment +highlight default link modula2ReswordStyle Keyword +highlight default link modula2HeaderIdentStyle Function +highlight default link modula2UserDefIdentStyle Normal +highlight default link modula2NumericLiteralStyle Number +highlight default link modula2PunctuationStyle Delimiter +highlight default link modula2CommentKeyStyle SpecialComment +highlight default link modula2DisabledCodeStyle NonText + +" ----------------------------------------------------------------------------- +" Assign Rendering Styles +" ----------------------------------------------------------------------------- + +" headers +highlight default link modula2ModuleIdent modula2HeaderIdentStyle +highlight default link modula2ProcedureIdent modula2HeaderIdentStyle +highlight default link modula2ModuleHeader Normal +highlight default link modula2ModuleTail Normal +highlight default link modula2ProcedureHeader Normal +highlight default link modula2ProcedureTail Normal + +" lowline identifiers are rendered as errors if g:modula2_iso_allow_lowline is unset +if exists("g:modula2_iso_allow_lowline") + if g:modula2_iso_allow_lowline != 0 + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle + else + highlight default link modula2ProcedureLowlineIdent Error + endif +else + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle +endif + +" reserved words +highlight default link modula2Resword modula2ReswordStyle +highlight default link modula2ReswordModule modula2ReswordStyle +highlight default link modula2ReswordProcedure modula2ReswordStyle +highlight default link modula2ReswordEnd modula2ReswordStyle + +" predefined identifiers +highlight default link modula2ConstIdent modula2ConstIdentStyle +highlight default link modula2TypeIdent modula2TypeIdentStyle +highlight default link modula2ProcIdent modula2ProcIdentStyle +highlight default link modula2FuncIdent modula2FuncIdentStyle +highlight default link modula2MacroIdent modula2MacroIdentStyle + +" unsafe and non-portable identifiers +highlight default link modula2UnsafeIdent modula2UnsafeIdentStyle +highlight default link modula2NonPortableIdent modula2NonPortableIdentStyle + +" user defined identifiers +highlight default link modula2Ident modula2UserDefIdentStyle + +" lowline identifiers are rendered as errors if g:modula2_iso_allow_lowline is unset +if exists("g:modula2_iso_allow_lowline") + if g:modula2_iso_allow_lowline != 0 + highlight default link modula2LowLineIdent modula2UserDefIdentStyle + else + highlight default link modula2LowLineIdent Error + endif +else + highlight default link modula2LowLineIdent modula2UserDefIdentStyle +endif + +" literals +highlight default link modula2String modula2StringLiteralStyle +highlight default link modula2Num modula2NumericLiteralStyle + +" octal literals are rendered as errors if g:modula2_iso_disallow_octals is set +if exists("g:modula2_iso_disallow_octals") + if g:modula2_iso_disallow_octals != 0 + highlight default link modula2Octal Error + else + highlight default link modula2Octal modula2NumericLiteralStyle + endif +else + highlight default link modula2Octal modula2NumericLiteralStyle +endif + +" punctuation +highlight default link modula2Punctuation modula2PunctuationStyle + +" synonyms & and ~ are rendered as errors if g:modula2_iso_disallow_synonyms is set +if exists("g:modula2_iso_disallow_synonyms") + if g:modula2_iso_disallow_synonyms != 0 + highlight default link modula2Synonym Error + else + highlight default link modula2Synonym modula2PunctuationStyle + endif +else + highlight default link modula2Synonym modula2PunctuationStyle +endif + +" pragmas +highlight default link modula2Pragma modula2PragmaStyle +highlight default link modula2DialectTag modula2DialectTagStyle + +" comments +highlight default link modula2Comment modula2CommentStyle +highlight default link modula2CommentKey modula2CommentKeyStyle + +" technical debt markers +highlight default link modula2TechDebtMarker modula2TechDebtMarkerStyle + +" disabled code +highlight default link modula2DisabledCode modula2DisabledCodeStyle + +" illegal symbols +highlight default link modula2IllegalChar Error +highlight default link modula2IllegalIdent Error + + +let b:current_syntax = "modula2" + +" vim: ts=4 + +" END OF FILE diff --git a/runtime/syntax/modula2/opt/pim.vim b/runtime/syntax/modula2/opt/pim.vim new file mode 100644 index 0000000..1626db9 --- /dev/null +++ b/runtime/syntax/modula2/opt/pim.vim @@ -0,0 +1,377 @@ +" Vim syntax file +" Language: Modula-2 (PIM) +" Maintainer: B.Kowarsch +" Last Change: 2016 August 22 + +" ---------------------------------------------------- +" THIS FILE IS LICENSED UNDER THE VIM LICENSE +" see https://github.com/vim/vim/blob/master/LICENSE +" ---------------------------------------------------- + +" Remarks: +" Vim Syntax files are available for the following Modula-2 dialects: +" * for the PIM dialect : m2pim.vim (this file) +" * for the ISO dialect : m2iso.vim +" * for the R10 dialect : m2r10.vim + +" ----------------------------------------------------------------------------- +" This syntax description follows the 3rd and 4th editions of N.Wirth's Book +" Programming in Modula-2 (aka PIM) plus the following language extensions: +" * non-leading, non-trailing, non-consecutive lowlines _ in identifiers +" * widely supported non-standard types BYTE, LONGCARD and LONGBITSET +" * non-nesting code disabling tags ?< and >? at the start of a line +" ----------------------------------------------------------------------------- + +" Parameters: +" +" Vim's filetype script recognises Modula-2 dialect tags within the first 200 +" lines of Modula-2 .def and .mod input files. The script sets filetype and +" dialect automatically when a valid dialect tag is found in the input file. +" The dialect tag for the PIM dialect is (*!m2pim*). It is recommended to put +" the tag immediately after the module header in the Modula-2 input file. +" +" Example: +" DEFINITION MODULE Foolib; (*!m2pim*) +" +" Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +" dialect cannot be determined from the contents of the Modula-2 input file: +" if defined and set to 'm2pim', the default dialect is PIM. +" +" Variable g:modula2_pim_allow_lowline controls support for lowline in identifiers: +" if defined and set to a non-zero value, they are recognised, otherwise not +" +" Variable g:modula2_pim_disallow_octals controls the rendering of octal literals: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variable g:modula2_pim_disallow_synonyms controls the rendering of & and ~: +" if defined and set to a non-zero value, they are rendered as errors. +" +" Variables may be defined in Vim startup file .vimrc +" +" Examples: +" let g:modula2_default_dialect = 'm2pim' +" let g:modula2_pim_allow_lowline = 1 +" let g:modula2_pim_disallow_octals = 1 +" let g:modula2_pim_disallow_synonyms = 1 + + +if exists("b:current_syntax") + finish +endif + +" Modula-2 is case sensitive +syn case match + + +" ----------------------------------------------------------------------------- +" Reserved Words +" ----------------------------------------------------------------------------- +syn keyword modula2Resword AND ARRAY BEGIN BY CASE CONST DEFINITION DIV DO ELSE +syn keyword modula2Resword ELSIF EXIT EXPORT FOR FROM IF IMPLEMENTATION IMPORT +syn keyword modula2Resword IN LOOP MOD NOT OF OR POINTER QUALIFIED RECORD REPEAT +syn keyword modula2Resword RETURN SET THEN TO TYPE UNTIL VAR WHILE WITH + + +" ----------------------------------------------------------------------------- +" Builtin Constant Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ConstIdent FALSE NIL TRUE + + +" ----------------------------------------------------------------------------- +" Builtin Type Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2TypeIdent BITSET BOOLEAN CHAR PROC +syn keyword modula2TypeIdent CARDINAL INTEGER LONGINT REAL LONGREAL + + +" ----------------------------------------------------------------------------- +" Builtin Procedure and Function Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ProcIdent CAP DEC EXCL HALT INC INCL +syn keyword modula2FuncIdent ABS CHR FLOAT HIGH MAX MIN ODD ORD SIZE TRUNC VAL + + +" ----------------------------------------------------------------------------- +" Wirthian Macro Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2MacroIdent NEW DISPOSE + + +" ----------------------------------------------------------------------------- +" Unsafe Facilities via Pseudo-Module SYSTEM +" ----------------------------------------------------------------------------- +syn keyword modula2UnsafeIdent ADDRESS PROCESS WORD +syn keyword modula2UnsafeIdent ADR TSIZE NEWPROCESS TRANSFER SYSTEM + + +" ----------------------------------------------------------------------------- +" Non-Portable Language Extensions +" ----------------------------------------------------------------------------- +syn keyword modula2NonPortableIdent BYTE LONGCARD LONGBITSET + + +" ----------------------------------------------------------------------------- +" User Defined Identifiers +" ----------------------------------------------------------------------------- +syn match modula2Ident "[a-zA-Z][a-zA-Z0-9]*\(_\)\@!" +syn match modula2LowLineIdent "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" + + +" ----------------------------------------------------------------------------- +" String Literals +" ----------------------------------------------------------------------------- +syn region modula2String start=/"/ end=/"/ oneline +syn region modula2String start=/'/ end=/'/ oneline + + +" ----------------------------------------------------------------------------- +" Numeric Literals +" ----------------------------------------------------------------------------- +syn match modula2Num + \ "\(\([0-7]\+\)[BC]\@!\|[89]\)[0-9]*\(\.[0-9]\+\([eE][+-]\?[0-9]\+\)\?\)\?" +syn match modula2Num "[0-9A-F]\+H" +syn match modula2Octal "[0-7]\+[BC]" + + +" ----------------------------------------------------------------------------- +" Punctuation +" ----------------------------------------------------------------------------- +syn match modula2Punctuation + \ "\.\|[,:;]\|\*\|[/+-]\|\#\|[=<>]\|\^\|\[\|\]\|(\(\*\)\@!\|[){}]" +syn match modula2Synonym "[&~]" + + +" ----------------------------------------------------------------------------- +" Pragmas +" ----------------------------------------------------------------------------- +syn region modula2Pragma start="(\*\$" end="\*)" +syn match modula2DialectTag "(\*!m2pim\(+[a-z0-9]\+\)\?\*)" + +" ----------------------------------------------------------------------------- +" Block Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment start="(\*\(\$\|!m2pim\(+[a-z0-9]\+\)\?\*)\)\@!" end="\*)" + \ contains = modula2Comment, modula2CommentKey, modula2TechDebtMarker +syn match modula2CommentKey "[Aa]uthor[s]\?\|[Cc]opyright\|[Ll]icense\|[Ss]ynopsis" +syn match modula2CommentKey "\([Pp]re\|[Pp]ost\|[Ee]rror\)\-condition[s]\?:" + + +" ----------------------------------------------------------------------------- +" Technical Debt Markers +" ----------------------------------------------------------------------------- +syn keyword modula2TechDebtMarker contained DEPRECATED FIXME +syn match modula2TechDebtMarker "TODO[:]\?" contained + +" ----------------------------------------------------------------------------- +" Disabled Code Sections +" ----------------------------------------------------------------------------- +syn region modula2DisabledCode start="^?<" end="^>?" + + +" ----------------------------------------------------------------------------- +" Headers +" ----------------------------------------------------------------------------- +" !!! this section must be second last !!! + +" new module header +syn match modula2ModuleHeader + \ "MODULE\( [A-Z][a-zA-Z0-9]*\)\?" + \ contains = modula2ReswordModule, modula2ModuleIdent + +syn match modula2ModuleIdent + \ "[A-Z][a-zA-Z0-9]*" contained + +syn match modula2ModuleTail + \ "END [A-Z][a-zA-Z0-9]*\.$" + \ contains = modula2ReswordEnd, modula2ModuleIdent, modula2Punctuation + +" new procedure header +syn match modula2ProcedureHeader + \ "PROCEDURE\( [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)\?" + \ contains = modula2ReswordProcedure, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +syn match modula2ProcedureIdent + \ "\([a-zA-Z]\)\([a-zA-Z0-9]*\)" contained + +syn match modula2ProcedureLowlineIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" contained + +syn match modula2ProcedureTail + \ "END\( \([a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*\)[.;]$\)\?" + \ contains = modula2ReswordEnd, + \ modula2ProcedureIdent, modula2ProcedureLowLineIdent, + \ modula2Punctuation, modula2IllegalChar, modula2IllegalIdent + +syn keyword modula2ReswordModule contained MODULE +syn keyword modula2ReswordProcedure contained PROCEDURE +syn keyword modula2ReswordEnd contained END + + +" ----------------------------------------------------------------------------- +" Illegal Symbols +" ----------------------------------------------------------------------------- +" !!! this section must be last !!! + +" any '`' '!' '@ ''$' '%' or '\' +syn match modula2IllegalChar "[`!@$%\\]" + +" any solitary sequence of '_' +syn match modula2IllegalChar "\<_\+\>" + +" any '?' at start of line if not followed by '<' +syn match modula2IllegalChar "^?\(<\)\@!" + +" any '?' not following '>' at start of line +syn match modula2IllegalChar "\(\(^>\)\|\(^\)\)\@" + + +" ----------------------------------------------------------------------------- +" Define Rendering Styles +" ----------------------------------------------------------------------------- + +" highlight default link modula2PredefIdentStyle Keyword +" highlight default link modula2ConstIdentStyle modula2PredefIdentStyle +" highlight default link modula2TypeIdentStyle modula2PredefIdentStyle +" highlight default link modula2ProcIdentStyle modula2PredefIdentStyle +" highlight default link modula2FuncIdentStyle modula2PredefIdentStyle +" highlight default link modula2MacroIdentStyle modula2PredefIdentStyle + +highlight default link modula2ConstIdentStyle Constant +highlight default link modula2TypeIdentStyle Type +highlight default link modula2ProcIdentStyle Function +highlight default link modula2FuncIdentStyle Function +highlight default link modula2MacroIdentStyle Function +highlight default link modula2UnsafeIdentStyle Question +highlight default link modula2NonPortableIdentStyle Question +highlight default link modula2StringLiteralStyle String +highlight default link modula2CommentStyle Comment +highlight default link modula2PragmaStyle PreProc +highlight default link modula2DialectTagStyle SpecialComment +highlight default link modula2TechDebtMarkerStyle SpecialComment +highlight default link modula2ReswordStyle Keyword +highlight default link modula2HeaderIdentStyle Function +highlight default link modula2UserDefIdentStyle Normal +highlight default link modula2NumericLiteralStyle Number +highlight default link modula2PunctuationStyle Delimiter +highlight default link modula2CommentKeyStyle SpecialComment +highlight default link modula2DisabledCodeStyle NonText + +" ----------------------------------------------------------------------------- +" Assign Rendering Styles +" ----------------------------------------------------------------------------- + +" headers +highlight default link modula2ModuleIdent modula2HeaderIdentStyle +highlight default link modula2ProcedureIdent modula2HeaderIdentStyle +highlight default link modula2ModuleHeader Normal +highlight default link modula2ModuleTail Normal +highlight default link modula2ProcedureHeader Normal +highlight default link modula2ProcedureTail Normal + +" lowline identifiers are rendered as errors if g:modula2_pim_allow_lowline is unset +if exists("g:modula2_pim_allow_lowline") + if g:modula2_pim_allow_lowline != 0 + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle + else + highlight default link modula2ProcedureLowlineIdent Error + endif +else + highlight default link modula2ProcedureLowlineIdent Error +endif + +" reserved words +highlight default link modula2Resword modula2ReswordStyle +highlight default link modula2ReswordModule modula2ReswordStyle +highlight default link modula2ReswordProcedure modula2ReswordStyle +highlight default link modula2ReswordEnd modula2ReswordStyle + +" predefined identifiers +highlight default link modula2ConstIdent modula2ConstIdentStyle +highlight default link modula2TypeIdent modula2TypeIdentStyle +highlight default link modula2ProcIdent modula2ProcIdentStyle +highlight default link modula2FuncIdent modula2FuncIdentStyle +highlight default link modula2MacroIdent modula2MacroIdentStyle + +" unsafe and non-portable identifiers +highlight default link modula2UnsafeIdent modula2UnsafeIdentStyle +highlight default link modula2NonPortableIdent modula2NonPortableIdentStyle + +" user defined identifiers +highlight default link modula2Ident modula2UserDefIdentStyle + +" lowline identifiers are rendered as errors if g:modula2_pim_allow_lowline is unset +if exists("g:modula2_pim_allow_lowline") + if g:modula2_pim_allow_lowline != 0 + highlight default link modula2LowLineIdent modula2UserDefIdentStyle + else + highlight default link modula2LowLineIdent Error + endif +else + highlight default link modula2LowLineIdent Error +endif + +" literals +highlight default link modula2String modula2StringLiteralStyle +highlight default link modula2Num modula2NumericLiteralStyle + +" octal literals are rendered as errors if g:modula2_pim_disallow_octals is set +if exists("g:modula2_pim_disallow_octals") + if g:modula2_pim_disallow_octals != 0 + highlight default link modula2Octal Error + else + highlight default link modula2Octal modula2NumericLiteralStyle + endif +else + highlight default link modula2Octal modula2NumericLiteralStyle +endif + +" punctuation +highlight default link modula2Punctuation modula2PunctuationStyle + +" synonyms & and ~ are rendered as errors if g:modula2_pim_disallow_synonyms is set +if exists("g:modula2_pim_disallow_synonyms") + if g:modula2_pim_disallow_synonyms != 0 + highlight default link modula2Synonym Error + else + highlight default link modula2Synonym modula2PunctuationStyle + endif +else + highlight default link modula2Synonym modula2PunctuationStyle +endif + +" pragmas +highlight default link modula2Pragma modula2PragmaStyle +highlight default link modula2DialectTag modula2DialectTagStyle + +" comments +highlight default link modula2Comment modula2CommentStyle +highlight default link modula2CommentKey modula2CommentKeyStyle + +" technical debt markers +highlight default link modula2TechDebtMarker modula2TechDebtMarkerStyle + +" disabled code +highlight default link modula2DisabledCode modula2DisabledCodeStyle + +" illegal symbols +highlight default link modula2IllegalChar Error +highlight default link modula2IllegalIdent Error + + +let b:current_syntax = "modula2" + +" vim: ts=4 + +" END OF FILE diff --git a/runtime/syntax/modula2/opt/r10.vim b/runtime/syntax/modula2/opt/r10.vim new file mode 100644 index 0000000..775f498 --- /dev/null +++ b/runtime/syntax/modula2/opt/r10.vim @@ -0,0 +1,452 @@ +" Vim syntax file +" Language: Modula-2 (R10) +" Maintainer: B.Kowarsch +" Last Change: 2020 June 18 (moved repository from bb to github) + +" ---------------------------------------------------- +" THIS FILE IS LICENSED UNDER THE VIM LICENSE +" see https://github.com/vim/vim/blob/master/LICENSE +" ---------------------------------------------------- + +" Remarks: +" Vim Syntax files are available for the following Modula-2 dialects: +" * for the PIM dialect : m2pim.vim +" * for the ISO dialect : m2iso.vim +" * for the R10 dialect : m2r10.vim (this file) + +" ----------------------------------------------------------------------------- +" This syntax description follows the Modula-2 Revision 2010 language report +" (Kowarsch and Sutcliffe, 2015) available at http://modula-2.info/m2r10. +" ----------------------------------------------------------------------------- + +" Parameters: +" +" Vim's filetype script recognises Modula-2 dialect tags within the first 200 +" lines of Modula-2 .def and .mod input files. The script sets filetype and +" dialect automatically when a valid dialect tag is found in the input file. +" The dialect tag for the R10 dialect is (*!m2r10*). It is recommended to put +" the tag immediately after the module header in the Modula-2 input file. +" +" Example: +" DEFINITION MODULE Foolib; (*!m2r10*) +" +" Variable g:modula2_default_dialect sets the default Modula-2 dialect when the +" dialect cannot be determined from the contents of the Modula-2 input file: +" if defined and set to 'm2r10', the default dialect is R10. +" +" Variable g:modula2_r10_allow_lowline controls support for lowline in identifiers: +" if defined and set to a non-zero value, they are recognised, otherwise not +" +" Variables may be defined in Vim startup file .vimrc +" +" Examples: +" let g:modula2_default_dialect = 'm2r10' +" let g:modula2_r10_allow_lowline = 1 + + +if exists("b:current_syntax") + finish +endif + +" Modula-2 is case sensitive +syn case match + + +" ----------------------------------------------------------------------------- +" Reserved Words +" ----------------------------------------------------------------------------- +" Note: MODULE, PROCEDURE and END are defined separately further below +syn keyword modula2Resword ALIAS AND ARGLIST ARRAY BEGIN CASE CONST COPY DEFINITION +syn keyword modula2Resword DIV DO ELSE ELSIF EXIT FOR FROM GENLIB IF IMPLEMENTATION +syn keyword modula2Resword IMPORT IN LOOP MOD NEW NOT OF OPAQUE OR POINTER READ +syn keyword modula2Resword RECORD RELEASE REPEAT RETAIN RETURN SET THEN TO TYPE +syn keyword modula2Resword UNTIL VAR WHILE WRITE YIELD + + +" ----------------------------------------------------------------------------- +" Schroedinger's Tokens +" ----------------------------------------------------------------------------- +syn keyword modula2SchroedToken CAPACITY COROUTINE LITERAL + + +" ----------------------------------------------------------------------------- +" Builtin Constant Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ConstIdent NIL FALSE TRUE + + +" ----------------------------------------------------------------------------- +" Builtin Type Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2TypeIdent BOOLEAN CHAR UNICHAR OCTET +syn keyword modula2TypeIdent CARDINAL LONGCARD INTEGER LONGINT REAL LONGREAL + + +" ----------------------------------------------------------------------------- +" Builtin Procedure and Function Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2ProcIdent APPEND INSERT REMOVE SORT SORTNEW +syn keyword modula2FuncIdent CHR ORD ODD ABS SGN MIN MAX LOG2 POW2 ENTIER +syn keyword modula2FuncIdent PRED SUCC PTR COUNT LENGTH + + +" ----------------------------------------------------------------------------- +" Builtin Macro Identifiers +" ----------------------------------------------------------------------------- +syn keyword modula2MacroIdent NOP TMIN TMAX TSIZE TLIMIT + + +" ----------------------------------------------------------------------------- +" Builtin Primitives +" ----------------------------------------------------------------------------- +syn keyword modula2PrimitiveIdent SXF VAL STORE VALUE SEEK SUBSET + + +" ----------------------------------------------------------------------------- +" Unsafe Facilities via Pseudo-Module UNSAFE +" ----------------------------------------------------------------------------- +syn keyword modula2UnsafeIdent UNSAFE BYTE WORD LONGWORD OCTETSEQ +syn keyword modula2UnsafeIdent ADD SUB INC DEC SETBIT HALT +syn keyword modula2UnsafeIdent ADR CAST BIT SHL SHR BWNOT BWAND BWOR + + +" ----------------------------------------------------------------------------- +" Non-Portable Language Extensions +" ----------------------------------------------------------------------------- +syn keyword modula2NonPortableIdent ASSEMBLER ASM REG + + +" ----------------------------------------------------------------------------- +" User Defined Identifiers +" ----------------------------------------------------------------------------- +syn match modula2Ident "[a-zA-Z][a-zA-Z0-9]*\(_\)\@!" +syn match modula2LowLineIdent "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" + +syn match modula2ReswordDo "\(TO\)\@&#,]\|\[\)\@<='" end=/'/ oneline + + +" ----------------------------------------------------------------------------- +" Numeric Literals +" ----------------------------------------------------------------------------- +syn match modula2Base2Num "0b[01]\+\('[01]\+\)*" +syn match modula2Base16Num "0[ux][0-9A-F]\+\('[0-9A-F]\+\)*" + +"| *** VMSCRIPT BUG ALERT *** +"| The regular expression below causes errors when split into separate strings +"| +"| syn match modula2Base10Num +"| \ "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)" . +"| \ "\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" +"| +"| E475: Invalid argument: modula2Base10Num "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)" +"| . "\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" +"| +"| However, the same regular expression works just fine as a sole string. +"| +"| As a consequence, we have no choice but to put it all into a single line +"| which greatly diminishes readability and thereby increases the opportunity +"| for error during maintenance. Ideally, regular expressions should be split +"| into small human readable pieces with interleaved comments that explain +"| precisely what each piece is doing. Vimscript imposes poor design. :-( + +syn match modula2Base10Num + \ "\(\(0[bux]\@!\|[1-9]\)[0-9]*\('[0-9]\+\)*\)\(\.[0-9]\+\('[0-9]\+\)*\(e[+-]\?[0-9]\+\('[0-9]\+\)*\)\?\)\?" + + +" ----------------------------------------------------------------------------- +" Punctuation +" ----------------------------------------------------------------------------- +syn match modula2Punctuation + \ "\.\|[,:;]\|\*\|[/+-]\|\#\|[=<>&]\|\^\|\[\|\]\|(\(\*\)\@!\|[){}]" + + +" ----------------------------------------------------------------------------- +" Pragmas +" ----------------------------------------------------------------------------- +syn region modula2Pragma start="<\*" end="\*>" + \ contains = modula2PragmaKey, modula2TechDebtPragma +syn keyword modula2PragmaKey contained MSG IF ELSIF ELSE END INLINE NOINLINE OUT +syn keyword modula2PragmaKey contained GENERATED ENCODING ALIGN PADBITS NORETURN +syn keyword modula2PragmaKey contained PURITY SINGLEASSIGN LOWLATENCY VOLATILE +syn keyword modula2PragmaKey contained FORWARD ADDR FFI FFIDENT + +syn match modula2DialectTag "(\*!m2r10\(+[a-z0-9]\+\)\?\*)" + + +" ----------------------------------------------------------------------------- +" Line Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment start=/^!/ end=/$/ oneline + + +" ----------------------------------------------------------------------------- +" Block Comments +" ----------------------------------------------------------------------------- +syn region modula2Comment + \ start="\(END\s\)\@?" + + +" ----------------------------------------------------------------------------- +" Headers +" ----------------------------------------------------------------------------- +" !!! this section must be second last !!! + +" module header +syn match modula2ModuleHeader + \ "\(MODULE\|BLUEPRINT\)\( [A-Z][a-zA-Z0-9]*\)\?" + \ contains = modula2ReswordModule, modula2ReswordBlueprint, modula2ModuleIdent + +syn match modula2ModuleIdent + \ "[A-Z][a-zA-Z0-9]*" contained + +syn match modula2ModuleTail + \ "END [A-Z][a-zA-Z0-9]*\.$" + \ contains = modula2ReswordEnd, modula2ModuleIdent, modula2Punctuation + +" procedure, sole occurrence +syn match modula2ProcedureHeader + \ "PROCEDURE\(\s\[\|\s[a-zA-Z]\)\@!" contains = modula2ReswordProcedure + +" procedure header +syn match modula2ProcedureHeader + \ "PROCEDURE [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*" + \ contains = modula2ReswordProcedure, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +" procedure binding to operator +syn match modula2ProcedureHeader + \ "PROCEDURE \[[+-\*/\\=<>]\] [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*" + \ contains = modula2ReswordProcedure, modula2Punctuation, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +" procedure binding to builtin +syn match modula2ProcedureHeader + \ "PROCEDURE \[[A-Z]\+\(:\([#\*,]\|++\|--\)\?\)\?\] [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*" + \ contains = modula2ReswordProcedure, + \ modula2Punctuation, modula2Resword, modula2SchroedToken, + \ modula2ProcIdent, modula2FuncIdent, modula2PrimitiveIdent, + \ modula2ProcedureIdent, modula2ProcedureLowlineIdent, modula2IllegalChar, modula2IllegalIdent + +syn match modula2ProcedureIdent + \ "\([a-zA-Z]\)\([a-zA-Z0-9]*\)" contained + +syn match modula2ProcedureLowlineIdent + \ "[a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)\+" contained + +syn match modula2ProcedureTail + \ "END [a-zA-Z][a-zA-Z0-9]*\(_[a-zA-Z0-9]\+\)*;$" + \ contains = modula2ReswordEnd, + \ modula2ProcedureIdent, modula2ProcedureLowLineIdent, + \ modula2Punctuation, modula2IllegalChar, modula2IllegalIdent + +syn keyword modula2ReswordModule contained MODULE +syn keyword modula2ReswordBlueprint contained BLUEPRINT +syn keyword modula2ReswordProcedure contained PROCEDURE +syn keyword modula2ReswordEnd contained END + + +" ----------------------------------------------------------------------------- +" Illegal Symbols +" ----------------------------------------------------------------------------- +" !!! this section must be last !!! + +" any '`' '~' '@' '$' '%' +syn match modula2IllegalChar "[`~@$%]" + +" any solitary sequence of '_' +syn match modula2IllegalChar "\<_\+\>" + +" any '?' at start of line if not followed by '<' +syn match modula2IllegalChar "^?\(<\)\@!" + +" any '?' not following '>' at start of line +syn match modula2IllegalChar "\(\(^>\)\|\(^\)\)\@" + + +" ----------------------------------------------------------------------------- +" Define Rendering Styles +" ----------------------------------------------------------------------------- + +" highlight default link modula2PredefIdentStyle Keyword +" highlight default link modula2ConstIdentStyle modula2PredefIdentStyle +" highlight default link modula2TypeIdentStyle modula2PredefIdentStyle +" highlight default link modula2ProcIdentStyle modula2PredefIdentStyle +" highlight default link modula2FuncIdentStyle modula2PredefIdentStyle +" highlight default link modula2MacroIdentStyle modula2PredefIdentStyle + +highlight default link modula2ConstIdentStyle Constant +highlight default link modula2TypeIdentStyle Type +highlight default link modula2ProcIdentStyle Function +highlight default link modula2FuncIdentStyle Function +highlight default link modula2MacroIdentStyle Function +highlight default link modula2PrimitiveIdentStyle Function +highlight default link modula2UnsafeIdentStyle Question +highlight default link modula2NonPortableIdentStyle Question +highlight default link modula2StringLiteralStyle String +highlight default link modula2CommentStyle Comment +highlight default link modula2PragmaStyle PreProc +highlight default link modula2PragmaKeyStyle PreProc +highlight default link modula2DialectTagStyle SpecialComment +highlight default link modula2TechDebtMarkerStyle SpecialComment +highlight default link modula2ReswordStyle Keyword +highlight default link modula2HeaderIdentStyle Function +highlight default link modula2UserDefIdentStyle Normal +highlight default link modula2NumericLiteralStyle Number +highlight default link modula2PunctuationStyle Delimiter +highlight default link modula2CommentKeyStyle SpecialComment +highlight default link modula2DisabledCodeStyle NonText + + +" ----------------------------------------------------------------------------- +" Assign Rendering Styles +" ----------------------------------------------------------------------------- + +" headers +highlight default link modula2ModuleIdent modula2HeaderIdentStyle +highlight default link modula2ProcedureIdent modula2HeaderIdentStyle +highlight default link modula2ModuleHeader modula2HeaderIdentStyle +highlight default link modula2ModuleTail Normal +highlight default link modula2ProcedureHeader Normal +highlight default link modula2ProcedureTail Normal + +" lowline identifiers are rendered as errors if g:modula2_r10_allow_lowline is unset +if exists("g:modula2_r10_allow_lowline") + if g:modula2_r10_allow_lowline != 0 + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle + else + highlight default link modula2ProcedureLowlineIdent Error + endif +else + highlight default link modula2ProcedureLowlineIdent modula2HeaderIdentStyle +endif + +" reserved words +highlight default link modula2Resword modula2ReswordStyle +highlight default link modula2ReswordModule modula2ReswordStyle +highlight default link modula2ReswordProcedure modula2ReswordStyle +highlight default link modula2ReswordEnd modula2ReswordStyle +highlight default link modula2ReswordDo modula2ReswordStyle +highlight default link modula2ReswordTo modula2ReswordStyle +highlight default link modula2SchroedToken modula2ReswordStyle + +" predefined identifiers +highlight default link modula2ConstIdent modula2ConstIdentStyle +highlight default link modula2TypeIdent modula2TypeIdentStyle +highlight default link modula2ProcIdent modula2ProcIdentStyle +highlight default link modula2FuncIdent modula2FuncIdentStyle +highlight default link modula2MacroIdent modula2MacroIdentStyle +highlight default link modula2PrimitiveIdent modula2PrimitiveIdentStyle + +" unsafe and non-portable identifiers +highlight default link modula2UnsafeIdent modula2UnsafeIdentStyle +highlight default link modula2NonPortableIdent modula2NonPortableIdentStyle + +" user defined identifiers +highlight default link modula2Ident modula2UserDefIdentStyle + +" lowline identifiers are rendered as errors if g:modula2_r10_allow_lowline is unset +if exists("g:modula2_r10_allow_lowline") + if g:modula2_r10_allow_lowline != 0 + highlight default link modula2LowLineIdent modula2UserDefIdentStyle + else + highlight default link modula2LowLineIdent Error + endif +else + highlight default link modula2LowLineIdent modula2UserDefIdentStyle +endif + +" literals +highlight default link modula2String modula2StringLiteralStyle +highlight default link modula2Base2Num modula2NumericLiteralStyle +highlight default link modula2Base10Num modula2NumericLiteralStyle +highlight default link modula2Base16Num modula2NumericLiteralStyle + +" punctuation +highlight default link modula2Punctuation modula2PunctuationStyle + +" pragmas +highlight default link modula2Pragma modula2PragmaStyle +highlight default link modula2PragmaKey modula2PragmaKeyStyle +highlight default link modula2DialectTag modula2DialectTagStyle + +" comments +highlight default link modula2Comment modula2CommentStyle +highlight default link modula2CommentKey modula2CommentKeyStyle +highlight default link modula2ToDoTailComment modula2CommentStyle +highlight default link modula2StmtTailComment modula2CommentStyle + +" technical debt markers +highlight default link modula2ToDoHeader modula2TechDebtMarkerStyle +highlight default link modula2ToDoTail modula2TechDebtMarkerStyle +highlight default link modula2TechDebtPragma modula2TechDebtMarkerStyle + +" disabled code +highlight default link modula2DisabledCode modula2DisabledCodeStyle + +" illegal symbols +highlight default link modula2IllegalChar Error +highlight default link modula2IllegalIdent Error + + +let b:current_syntax = "modula2" + +" vim: ts=4 + +" END OF FILE diff --git a/runtime/syntax/modula3.vim b/runtime/syntax/modula3.vim new file mode 100644 index 0000000..67243db --- /dev/null +++ b/runtime/syntax/modula3.vim @@ -0,0 +1,145 @@ +" Vim syntax file +" Language: Modula-3 +" Maintainer: Doug Kearns +" Previous Maintainer: Timo Pedersen +" Last Change: 2022 Oct 31 + +if exists("b:current_syntax") + finish +endif + +" Whitespace errors {{{1 +if exists("modula3_space_errors") + if !exists("modula3_no_trail_space_error") + syn match modula3SpaceError display excludenl "\s\+$" + endif + if !exists("modula3_no_tab_space_error") + syn match modula3SpaceError display " \+\t"me=e-1 + endif +endif + +" Keywords {{{1 +syn keyword modula3Keyword ANY ARRAY AS BITS BRANDED BY CASE CONST +syn keyword modula3Keyword DEFINITION EVAL EXIT EXCEPT EXCEPTION EXIT +syn keyword modula3Keyword EXPORTS FINALLY FROM GENERIC IMPORT LOCK METHOD +syn keyword modula3Keyword OF RAISE RAISES READONLY RECORD REF +syn keyword modula3Keyword RETURN SET TRY TYPE TYPECASE UNSAFE +syn keyword modula3Keyword VALUE VAR WITH + +syn match modula3keyword "\" + +" Special keywords, block delimiters etc +syn keyword modula3Block PROCEDURE FUNCTION MODULE INTERFACE REPEAT THEN +syn keyword modula3Block BEGIN END OBJECT METHODS OVERRIDES RECORD REVEAL +syn keyword modula3Block WHILE UNTIL DO TO IF FOR ELSIF ELSE LOOP + +" Reserved identifiers {{{1 +syn keyword modula3Identifier ABS ADR ADRSIZE BITSIZE BYTESIZE CEILING DEC +syn keyword modula3Identifier DISPOSE FIRST FLOAT FLOOR INC ISTYPE LAST +syn keyword modula3Identifier LOOPHOLE MAX MIN NARROW NEW NUMBER ORD ROUND +syn keyword modula3Identifier SUBARRAY TRUNC TYPECODE VAL + +" Predefined types {{{1 +syn keyword modula3Type ADDRESS BOOLEAN CARDINAL CHAR EXTENDED INTEGER +syn keyword modula3Type LONGCARD LONGINT LONGREAL MUTEX NULL REAL REFANY TEXT +syn keyword modula3Type WIDECHAR + +syn match modula3Type "\<\%(UNTRACED\s\+\)\=ROOT\>" + +" Operators {{{1 +syn keyword modula3Operator DIV MOD +syn keyword modula3Operator IN +syn keyword modula3Operator NOT AND OR + +" TODO: exclude = from declarations +if exists("modula3_operators") + syn match modula3Operator "\^" + syn match modula3Operator "[-+/*]" + syn match modula3Operator "&" + syn match modula3Operator "<=\|<:\@!\|>=\|>" + syn match modula3Operator ":\@" + + if exists("modula3_number_errors") + syn match modula3IntegerError "\<\d\d\=_\x\+L\=\>" + endif + + let s:digits = "0123456789ABCDEF" + for s:radix in range(2, 16) + exe $'syn match modula3Integer "\<{s:radix}_[{s:digits[:s:radix - 1]}]\+L\=\>"' + endfor + unlet s:digits s:radix + + " Reals + syn match modula3Real "\<\d\+\.\d\+\%([EDX][+-]\=\d\+\)\=\>" + +syn case match + +" Strings and characters {{{2 + +" String escape sequences +syn match modula3Escape "\\['"ntrf]" contained display +" TODO: limit to <= 377 (255) +syn match modula3Escape "\\\o\{3}" contained display +syn match modula3Escape "\\\\" contained display + +" Characters +syn match modula3Character "'\%([^']\|\\.\|\\\o\{3}\)'" contains=modula3Escape + +" Strings +syn region modula3String start=+"+ end=+"+ contains=modula3Escape + +" Pragmas {{{1 +" EXTERNAL INLINE ASSERT TRACE FATAL UNUSED OBSOLETE CALLBACK EXPORTED PRAGMA NOWARN LINE LL LL.sup SPEC +" Documented: INLINE ASSERT TRACE FATAL UNUSED OBSOLETE NOWARN +syn region modula3Pragma start="<\*" end="\*>" + +" Comments {{{1 +if !exists("modula3_no_comment_fold") + syn region modula3Comment start="(\*" end="\*)" contains=modula3Comment,@Spell fold + syn region modula3LineCommentBlock start="^\s*(\*.*\*)\s*\n\%(^\s*(\*.*\*)\s*$\)\@=" end="^\s*(\*.*\*)\s*\n\%(^\s*(\*.*\*)\s*$\)\@!" contains=modula3Comment transparent fold keepend +else + syn region modula3Comment start="(\*" end="\*)" contains=modula3Comment,@Spell +endif + +" Syncing "{{{1 +syn sync minlines=100 + +" Default highlighting {{{1 +hi def link modula3Block Statement +hi def link modula3Boolean Boolean +hi def link modula3Character Character +hi def link modula3Comment Comment +hi def link modula3Escape Special +hi def link modula3Identifier Keyword +hi def link modula3Integer Number +hi def link modula3Keyword Statement +hi def link modula3Nil Constant +hi def link modula3IntegerError Error +hi def link modula3Operator Operator +hi def link modula3Pragma PreProc +hi def link modula3Real Float +hi def link modula3String String +hi def link modula3Type Type "}}} + +let b:current_syntax = "modula3" + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/mojo.vim b/runtime/syntax/mojo.vim new file mode 100644 index 0000000..b7dae24 --- /dev/null +++ b/runtime/syntax/mojo.vim @@ -0,0 +1,316 @@ +" Vim syntax file +" Language: Mojo +" Maintainer: Mahmoud Abduljawad +" Last Change: 2023 Sep 09 +" Credits: Mahmoud Abduljawad +" Neil Schemenauer +" Dmitry Vasiliev +" +" This is based on Vim Python highlighting +" +" - introduced highlighting of doctests +" - updated keywords, built-ins, and exceptions +" - corrected regular expressions for +" +" * functions +" * decorators +" * strings +" * escapes +" * numbers +" * space error +" +" - corrected synchronization +" - more highlighting is ON by default, except +" - space error highlighting is OFF by default +" +" Optional highlighting can be controlled using these variables. +" +" let mojo_no_builtin_highlight = 1 +" let mojo_no_doctest_code_highlight = 1 +" let mojo_no_doctest_highlight = 1 +" let mojo_no_exception_highlight = 1 +" let mojo_no_number_highlight = 1 +" let mojo_space_error_highlight = 1 +" +" All the options above can be switched on together. +" +" let mojo_highlight_all = 1 +" +" The use of Python 2 compatible syntax highlighting can be enforced. +" The straddling code (Python 2 and 3 compatible), up to Python 3.5, +" will be also supported. +" +" let mojo_use_python2_syntax = 1 +" +" This option will exclude all modern Python 3.6 or higher features. +" + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +" We need nocompatible mode in order to continue lines with backslashes. +" Original setting will be restored. +let s:cpo_save = &cpo +set cpo&vim + +if exists("mojo_no_doctest_highlight") + let mojo_no_doctest_code_highlight = 1 +endif + +if exists("mojo_highlight_all") + if exists("mojo_no_builtin_highlight") + unlet mojo_no_builtin_highlight + endif + if exists("mojo_no_doctest_code_highlight") + unlet mojo_no_doctest_code_highlight + endif + if exists("mojo_no_doctest_highlight") + unlet mojo_no_doctest_highlight + endif + if exists("mojo_no_exception_highlight") + unlet mojo_no_exception_highlight + endif + if exists("mojo_no_number_highlight") + unlet mojo_no_number_highlight + endif + let mojo_space_error_highlight = 1 +endif + +" These keywords are based on Python syntax highlight, and adds to it struct, +" fn, alias, var, let +" +syn keyword mojoStatement False None True +syn keyword mojoStatement as assert break continue del global +syn keyword mojoStatement lambda nonlocal pass return with yield +syn keyword mojoStatement class def nextgroup=mojoFunction skipwhite +syn keyword mojoStatement struct fn nextgroup=mojoFunction skipwhite +syn keyword mojoStatement alias var let +syn keyword mojoConditional elif else if +syn keyword mojoRepeat for while +syn keyword mojoOperator and in is not or +syn keyword mojoException except finally raise try +syn keyword mojoInclude from import +syn keyword mojoAsync async await + +" Soft keywords +" These keywords do not mean anything unless used in the right context. +" See https://docs.python.org/3/reference/lexical_analysis.html#soft-keywords +" for more on this. +syn match mojoConditional "^\s*\zscase\%(\s\+.*:.*$\)\@=" +syn match mojoConditional "^\s*\zsmatch\%(\s\+.*:\s*\%(#.*\)\=$\)\@=" + +" Decorators +" A dot must be allowed because of @MyClass.myfunc decorators. +syn match mojoDecorator "@" display contained +syn match mojoDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator + +" Python 3.5 introduced the use of the same symbol for matrix multiplication: +" https://www.python.org/dev/peps/pep-0465/. We now have to exclude the +" symbol from highlighting when used in that context. +" Single line multiplication. +syn match mojoMatrixMultiply + \ "\%(\w\|[])]\)\s*@" + \ contains=ALLBUT,mojoDecoratorName,mojoDecorator,mojoFunction,mojoDoctestValue + \ transparent +" Multiplication continued on the next line after backslash. +syn match mojoMatrixMultiply + \ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@" + \ contains=ALLBUT,mojoDecoratorName,mojoDecorator,mojoFunction,mojoDoctestValue + \ transparent +" Multiplication in a parenthesized expression over multiple lines with @ at +" the start of each continued line; very similar to decorators and complex. +syn match mojoMatrixMultiply + \ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*" + \ contains=ALLBUT,mojoDecoratorName,mojoDecorator,mojoFunction,mojoDoctestValue + \ transparent + +syn match mojoFunction "\h\w*" display contained + +syn match mojoComment "#.*$" contains=mojoTodo,@Spell +syn keyword mojoTodo FIXME NOTE NOTES TODO XXX contained + +" Triple-quoted strings can contain doctests. +syn region mojoString matchgroup=mojoQuotes + \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=mojoEscape,@Spell +syn region mojoString matchgroup=mojoTripleQuotes + \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend + \ contains=mojoEscape,mojoSpaceError,mojoDoctest,@Spell +syn region mojoRawString matchgroup=mojoQuotes + \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=@Spell +syn region mojoRawString matchgroup=pythonTripleQuotes + \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend + \ contains=pythonSpaceError,mojoDoctest,@Spell + +syn match mojoEscape +\\[abfnrtv'"\\]+ contained +syn match mojoEscape "\\\o\{1,3}" contained +syn match mojoEscape "\\x\x\{2}" contained +syn match mojoEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained +" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/ +syn match mojoEscape "\\N{\a\+\%(\s\a\+\)*}" contained +syn match mojoEscape "\\$" + +" It is very important to understand all details before changing the +" regular expressions below or their order. +" The word boundaries are *not* the floating-point number boundaries +" because of a possible leading or trailing decimal point. +" The expressions below ensure that all valid number literals are +" highlighted, and invalid number literals are not. For example, +" +" - a decimal point in '4.' at the end of a line is highlighted, +" - a second dot in 1.0.0 is not highlighted, +" - 08 is not highlighted, +" - 08e0 or 08j are highlighted, +" +" and so on, as specified in the 'Python Language Reference'. +" https://docs.python.org/reference/lexical_analysis.html#numeric-literals +if !exists("mojo_no_number_highlight") + " numbers (including complex) + syn match mojoNumber "\<0[oO]\%(_\=\o\)\+\>" + syn match mojoNumber "\<0[xX]\%(_\=\x\)\+\>" + syn match mojoNumber "\<0[bB]\%(_\=[01]\)\+\>" + syn match mojoNumber "\<\%([1-9]\%(_\=\d\)*\|0\+\%(_\=0\)*\)\>" + syn match mojoNumber "\<\d\%(_\=\d\)*[jJ]\>" + syn match mojoNumber "\<\d\%(_\=\d\)*[eE][+-]\=\d\%(_\=\d\)*[jJ]\=\>" + syn match mojoNumber + \ "\<\d\%(_\=\d\)*\.\%([eE][+-]\=\d\%(_\=\d\)*\)\=[jJ]\=\%(\W\|$\)\@=" + syn match mojoNumber + \ "\%(^\|\W\)\zs\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%([eE][+-]\=\d\%(_\=\d\)*\)\=[jJ]\=\>" +endif + +" The built-ins are added in the same order of appearance in Mojo stdlib docs +" https://docs.modular.com/mojo/lib.html +" +if !exists("mojo_no_builtin_highlight") + " Built-in functions + syn keyword mojoBuiltin slice constrained debug_assert put_new_line print + syn keyword mojoBuiltin print_no_newline len range rebind element_type + syn keyword mojoBuiltin ord chr atol isdigit index address string + " Built-in types + syn keyword mojoType Byte ListLiteral CoroutineContext Coroutine DType + syn keyword mojoType dtype type invalid bool int8 si8 unit8 ui8 int16 + syn keyword mojoType si16 unit16 ui16 int32 si32 uint32 ui32 int64 + syn keyword mojoType si64 uint64 ui64 bfloat16 bf16 float16 f16 float32 + syn keyword mojoType f32 float64 f64 Error FloatLiteral Int Attr SIMD + syn keyword mojoType Int8 UInt8 Int16 UInt16 Int32 UInt32 Int64 UInt64 + syn keyword mojoType Float16 Float32 Float64 element_type _65x13_type + syn keyword mojoType String StringLiteral StringRef Tuple AnyType + syn keyword mojoType NoneType None Lifetime + " avoid highlighting attributes as builtins + syn match mojoAttribute /\.\h\w*/hs=s+1 + \ contains=ALLBUT,mojoBuiltin,mojoFunction,mojoAsync + \ transparent +endif + +" From the 'Python Library Reference' class hierarchy at the bottom. +" http://docs.python.org/library/exceptions.html +if !exists("mojo_no_exception_highlight") + " builtin base exceptions (used mostly as base classes for other exceptions) + syn keyword mojoExceptions BaseException Exception + syn keyword mojoExceptions ArithmeticError BufferError LookupError + " builtin exceptions (actually raised) + syn keyword mojoExceptions AssertionError AttributeError EOFError + syn keyword mojoExceptions FloatingPointError GeneratorExit ImportError + syn keyword mojoExceptions IndentationError IndexError KeyError + syn keyword mojoExceptions KeyboardInterrupt MemoryError + syn keyword mojoExceptions ModuleNotFoundError NameError + syn keyword mojoExceptions NotImplementedError OSError OverflowError + syn keyword mojoExceptions RecursionError ReferenceError RuntimeError + syn keyword mojoExceptions StopAsyncIteration StopIteration SyntaxError + syn keyword mojoExceptions SystemError SystemExit TabError TypeError + syn keyword mojoExceptions UnboundLocalError UnicodeDecodeError + syn keyword mojoExceptions UnicodeEncodeError UnicodeError + syn keyword mojoExceptions UnicodeTranslateError ValueError + syn keyword mojoExceptions ZeroDivisionError + " builtin exception aliases for OSError + syn keyword mojoExceptions EnvironmentError IOError WindowsError + " builtin OS exceptions in Python 3 + syn keyword mojoExceptions BlockingIOError BrokenPipeError + syn keyword mojoExceptions ChildProcessError ConnectionAbortedError + syn keyword mojoExceptions ConnectionError ConnectionRefusedError + syn keyword mojoExceptions ConnectionResetError FileExistsError + syn keyword mojoExceptions FileNotFoundError InterruptedError + syn keyword mojoExceptions IsADirectoryError NotADirectoryError + syn keyword mojoExceptions PermissionError ProcessLookupError TimeoutError + " builtin warnings + syn keyword mojoExceptions BytesWarning DeprecationWarning FutureWarning + syn keyword mojoExceptions ImportWarning PendingDeprecationWarning + syn keyword mojoExceptions ResourceWarning RuntimeWarning + syn keyword mojoExceptions SyntaxWarning UnicodeWarning + syn keyword mojoExceptions UserWarning Warning +endif + +if exists("mojo_space_error_highlight") + " trailing whitespace + syn match mojoSpaceError display excludenl "\s\+$" + " mixed tabs and spaces + syn match mojoSpaceError display " \+\t" + syn match mojoSpaceError display "\t\+ " +endif + +" Do not spell doctests inside strings. +" Notice that the end of a string, either ''', or """, will end the contained +" doctest too. Thus, we do *not* need to have it as an end pattern. +if !exists("mojo_no_doctest_highlight") + if !exists("mojo_no_doctest_code_highlight") + syn region mojoDoctest + \ start="^\s*>>>\s" end="^\s*$" + \ contained contains=ALLBUT,mojoDoctest,mojoFunction,@Spell + syn region mojoDoctestValue + \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$" + \ contained + else + syn region mojoDoctest + \ start="^\s*>>>" end="^\s*$" + \ contained contains=@NoSpell + endif +endif + +" Sync at the beginning of class, function, or method definition. +syn sync match mojoSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]" + +" The default highlight links. Can be overridden later. +hi def link mojoStatement Statement +hi def link mojoConditional Conditional +hi def link mojoRepeat Repeat +hi def link mojoOperator Operator +hi def link mojoException Exception +hi def link mojoInclude Include +hi def link mojoAsync Statement +hi def link mojoDecorator Define +hi def link mojoDecoratorName Function +hi def link mojoFunction Function +hi def link mojoComment Comment +hi def link mojoTodo Todo +hi def link mojoString String +hi def link mojoRawString String +hi def link mojoQuotes String +hi def link mojoTripleQuotes mojoQuotes +hi def link mojoEscape Special +if !exists("mojo_no_number_highlight") + hi def link mojoNumber Number +endif +if !exists("mojo_no_builtin_highlight") + hi def link mojoBuiltin Function + hi def link mojoType Type +endif +if !exists("mojo_no_exception_highlight") + hi def link mojoExceptions Structure +endif +if exists("mojo_space_error_highlight") + hi def link mojoSpaceError Error +endif +if !exists("mojo_no_doctest_highlight") + hi def link mojoDoctest Special + hi def link mojoDoctestValue Define +endif + +let b:current_syntax = "mojo" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/monk.vim b/runtime/syntax/monk.vim new file mode 100644 index 0000000..3af8101 --- /dev/null +++ b/runtime/syntax/monk.vim @@ -0,0 +1,217 @@ +" Vim syntax file +" Language: Monk (See-Beyond Technologies) +" Maintainer: Mike Litherland +" Last Change: 2012 Feb 03 by Thilo Six + +" This syntax file is good enough for my needs, but others +" may desire more features. Suggestions and bug reports +" are solicited by the author (above). + +" Originally based on the Scheme syntax file by: + +" Maintainer: Dirk van Deun +" Last Change: April 30, 1998 + +" In fact it's almost identical. :) + +" The original author's notes: +" This script incorrectly recognizes some junk input as numerals: +" parsing the complete system of Scheme numerals using the pattern +" language is practically impossible: I did a lax approximation. + +" Initializing: + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +" Fascist highlighting: everything that doesn't fit the rules is an error... + +syn match monkError oneline ![^ \t()";]*! +syn match monkError oneline ")" + +" Quoted and backquoted stuff + +syn region monkQuoted matchgroup=Delimiter start="['`]" end=![ \t()";]!me=e-1 contains=ALLBUT,monkStruc,monkSyntax,monkFunc + +syn region monkQuoted matchgroup=Delimiter start="['`](" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc +syn region monkQuoted matchgroup=Delimiter start="['`]#(" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc + +syn region monkStrucRestricted matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc +syn region monkStrucRestricted matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc + +syn region monkUnquote matchgroup=Delimiter start="," end=![ \t()";]!me=e-1 contains=ALLBUT,monkStruc,monkSyntax,monkFunc +syn region monkUnquote matchgroup=Delimiter start=",@" end=![ \t()";]!me=e-1 contains=ALLBUT,monkStruc,monkSyntax,monkFunc + +syn region monkUnquote matchgroup=Delimiter start=",(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc +syn region monkUnquote matchgroup=Delimiter start=",@(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc + +syn region monkUnquote matchgroup=Delimiter start=",#(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc +syn region monkUnquote matchgroup=Delimiter start=",@#(" end=")" contains=ALLBUT,monkStruc,monkSyntax,monkFunc + +" R5RS Scheme Functions and Syntax: + +setlocal iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_ + +syn keyword monkSyntax lambda and or if cond case define let let* letrec +syn keyword monkSyntax begin do delay set! else => +syn keyword monkSyntax quote quasiquote unquote unquote-splicing +syn keyword monkSyntax define-syntax let-syntax letrec-syntax syntax-rules + +syn keyword monkFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car! +syn keyword monkFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr +syn keyword monkFunc cdaar cdadr cddar cdddr caaaar caaadr caadar caaddr +syn keyword monkFunc cadaar cadadr caddar cadddr cdaaar cdaadr cdadar cdaddr +syn keyword monkFunc cddaar cddadr cdddar cddddr null? list? list length +syn keyword monkFunc append reverse list-ref memq memv member assq assv assoc +syn keyword monkFunc symbol? symbol->string string->symbol number? complex? +syn keyword monkFunc real? rational? integer? exact? inexact? = < > <= >= +syn keyword monkFunc zero? positive? negative? odd? even? max min + * - / abs +syn keyword monkFunc quotient remainder modulo gcd lcm numerator denominator +syn keyword monkFunc floor ceiling truncate round rationalize exp log sin cos +syn keyword monkFunc tan asin acos atan sqrt expt make-rectangular make-polar +syn keyword monkFunc real-part imag-part magnitude angle exact->inexact +syn keyword monkFunc inexact->exact number->string string->number char=? +syn keyword monkFunc char-ci=? char? char-ci>? char<=? +syn keyword monkFunc char-ci<=? char>=? char-ci>=? char-alphabetic? char? +syn keyword monkFunc char-numeric? char-whitespace? char-upper-case? +syn keyword monkFunc char-lower-case? +syn keyword monkFunc char->integer integer->char char-upcase char-downcase +syn keyword monkFunc string? make-string string string-length string-ref +syn keyword monkFunc string-set! string=? string-ci=? string? string-ci>? string<=? string-ci<=? string>=? +syn keyword monkFunc string-ci>=? substring string-append vector? make-vector +syn keyword monkFunc vector vector-length vector-ref vector-set! procedure? +syn keyword monkFunc apply map for-each call-with-current-continuation +syn keyword monkFunc call-with-input-file call-with-output-file input-port? +syn keyword monkFunc output-port? current-input-port current-output-port +syn keyword monkFunc open-input-file open-output-file close-input-port +syn keyword monkFunc close-output-port eof-object? read read-char peek-char +syn keyword monkFunc write display newline write-char call/cc +syn keyword monkFunc list-tail string->list list->string string-copy +syn keyword monkFunc string-fill! vector->list list->vector vector-fill! +syn keyword monkFunc force with-input-from-file with-output-to-file +syn keyword monkFunc char-ready? load transcript-on transcript-off eval +syn keyword monkFunc dynamic-wind port? values call-with-values +syn keyword monkFunc monk-report-environment null-environment +syn keyword monkFunc interaction-environment + +" Keywords specific to STC's implementation + +syn keyword monkFunc $event-clear $event-parse $event->string $make-event-map +syn keyword monkFunc $resolve-event-definition change-pattern copy copy-strip +syn keyword monkFunc count-data-children count-map-children count-rep data-map +syn keyword monkFunc duplicate duplicate-strip file-check file-lookup get +syn keyword monkFunc insert list-lookup node-has-data? not-verify path? +syn keyword monkFunc path-defined-as-repeating? path-nodeclear path-nodedepth +syn keyword monkFunc path-nodename path-nodeparentname path->string path-valid? +syn keyword monkFunc regex string->path timestamp uniqueid verify + +" Keywords from the Monk function library (from e*Gate 4.1 programmers ref) +syn keyword monkFunc allcap? capitalize char-punctuation? char-substitute +syn keyword monkFunc char-to-char conv count-used-children degc->degf +syn keyword monkFunc diff-two-dates display-error empty-string? fail_id +syn keyword monkFunc fail_id_if fail_translation fail_translation_if +syn keyword monkFunc find-get-after find-get-before get-timestamp julian-date? +syn keyword monkFunc julian->standard leap-year? map-string not-empty-string? +syn keyword monkFunc standard-date? standard->julian string-begins-with? +syn keyword monkFunc string-contains? string-ends-with? string-search-from-left +syn keyword monkFunc string-search-from-right string->ssn strip-punct +syn keyword monkFunc strip-string substring=? symbol-table-get symbol-table-put +syn keyword monkFunc trim-string-left trim-string-right valid-decimal? +syn keyword monkFunc valid-integer? verify-type + +" Writing out the complete description of Scheme numerals without +" using variables is a day's work for a trained secretary... +" This is a useful lax approximation: + +syn match monkNumber oneline "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*" +syn match monkError oneline ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t()";][^ \t()";]*! + +syn match monkOther oneline ![+-][ \t()";]!me=e-1 +syn match monkOther oneline ![+-]$! +" ... so that a single + or -, inside a quoted context, would not be +" interpreted as a number (outside such contexts, it's a monkFunc) + +syn match monkDelimiter oneline !\.[ \t()";]!me=e-1 +syn match monkDelimiter oneline !\.$! +" ... and a single dot is not a number but a delimiter + +" Simple literals: + +syn match monkBoolean oneline "#[tf]" +syn match monkError oneline !#[tf][^ \t()";]\+! + +syn match monkChar oneline "#\\" +syn match monkChar oneline "#\\." +syn match monkError oneline !#\\.[^ \t()";]\+! +syn match monkChar oneline "#\\space" +syn match monkError oneline !#\\space[^ \t()";]\+! +syn match monkChar oneline "#\\newline" +syn match monkError oneline !#\\newline[^ \t()";]\+! + +" This keeps all other stuff unhighlighted, except *stuff* and : + +syn match monkOther oneline ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*, +syn match monkError oneline ,[a-z!$%&*/:<=>?^_~][-a-z!$%&*/:<=>?^_~0-9+.@]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, + +syn match monkOther oneline "\.\.\." +syn match monkError oneline !\.\.\.[^ \t()";]\+! +" ... a special identifier + +syn match monkConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t()";],me=e-1 +syn match monkConstant oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$, +syn match monkError oneline ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, + +syn match monkConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t()";],me=e-1 +syn match monkConstant oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$, +syn match monkError oneline ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t()";]\+[^ \t()";]*, + +" Monk input and output structures +syn match monkSyntax oneline "\(\~input\|\[I\]->\)[^ \t]*" +syn match monkFunc oneline "\(\~output\|\[O\]->\)[^ \t]*" + +" Non-quoted lists, and strings: + +syn region monkStruc matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALL +syn region monkStruc matchgroup=Delimiter start="#(" matchgroup=Delimiter end=")" contains=ALL + +syn region monkString start=+"+ skip=+\\[\\"]+ end=+"+ + +" Comments: + +syn match monkComment ";.*$" + +" Synchronization and the wrapping up... + +syn sync match matchPlace grouphere NONE "^[^ \t]" +" ... i.e. synchronize on a line that starts at the left margin + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link monkSyntax Statement +hi def link monkFunc Function + +hi def link monkString String +hi def link monkChar Character +hi def link monkNumber Number +hi def link monkBoolean Boolean + +hi def link monkDelimiter Delimiter +hi def link monkConstant Constant + +hi def link monkComment Comment +hi def link monkError Error + + +let b:current_syntax = "monk" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/moo.vim b/runtime/syntax/moo.vim new file mode 100644 index 0000000..6f2dd59 --- /dev/null +++ b/runtime/syntax/moo.vim @@ -0,0 +1,173 @@ +" Vim syntax file +" Language: MOO +" Maintainer: Timo Frenay +" Last Change: 2020 Oct 19 +" Note: Requires Vim 6.0 or above + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Initializations +syn case ignore + +" C-style comments +syn match mooUncommentedError display ~\*/~ +syn match mooCStyleCommentError display ~/\ze\*~ contained +syn region mooCStyleComment matchgroup=mooComment start=~/\*~ end=~\*/~ contains=mooCStyleCommentError + +" Statements +if exists("moo_extended_cstyle_comments") + syn match mooIdentifier display ~\%(\%(/\*.\{-}\*/\s*\)*\)\@>\<\h\w*\>~ contained transparent contains=mooCStyleComment,@mooKeyword,mooType,mooVariable +else + syn match mooIdentifier display ~\<\h\w*\>~ contained transparent contains=@mooKeyword,mooType,mooVariable +endif +syn keyword mooStatement break continue else elseif endfor endfork endif endtry endwhile finally for if try +syn keyword mooStatement except fork while nextgroup=mooIdentifier skipwhite +syn keyword mooStatement return nextgroup=mooString skipwhite + +" Operators +syn keyword mooOperatorIn in + +" Error constants +syn keyword mooAny ANY +syn keyword mooErrorConstant E_ARGS E_INVARG E_DIV E_FLOAT E_INVIND E_MAXREC E_NACC E_NONE E_PERM E_PROPNF E_QUOTA E_RANGE E_RECMOVE E_TYPE E_VARNF E_VERBNF + +" Builtin variables +syn match mooType display ~\<\%(ERR\|FLOAT\|INT\|LIST\|NUM\|OBJ\|STR\)\>~ +syn match mooVariable display ~\<\%(args\%(tr\)\=\|caller\|dobj\%(str\)\=\|iobj\%(str\)\=\|player\|prepstr\|this\|verb\)\>~ + +" Strings +syn match mooStringError display ~[^\t -[\]-~]~ contained +syn match mooStringSpecialChar display ~\\["\\]~ contained +if !exists("moo_no_regexp") + " Regular expressions + syn match mooRegexp display ~%%~ contained containedin=mooString,mooRegexpParentheses transparent contains=NONE + syn region mooRegexpParentheses display matchgroup=mooRegexpOr start=~%(~ skip=~%%~ end=~%)~ contained containedin=mooString,mooRegexpParentheses transparent oneline + syn match mooRegexpOr display ~%|~ contained containedin=mooString,mooRegexpParentheses +endif +if !exists("moo_no_pronoun_sub") + " Pronoun substitutions + syn match mooPronounSub display ~%%~ contained containedin=mooString transparent contains=NONE + syn match mooPronounSub display ~%[#dilnopqrst]~ contained containedin=mooString + syn match mooPronounSub display ~%\[#[dilnt]\]~ contained containedin=mooString + syn match mooPronounSub display ~%(\h\w*)~ contained containedin=mooString + syn match mooPronounSub display ~%\[[dilnt]\h\w*\]~ contained containedin=mooString + syn match mooPronounSub display ~%<\%([dilnt]:\)\=\a\+>~ contained containedin=mooString +endif +if exists("moo_unmatched_quotes") + syn region mooString matchgroup=mooStringError start=~"~ end=~$~ contains=@mooStringContents keepend + syn region mooString start=~"~ skip=~\\.~ end=~"~ contains=@mooStringContents oneline keepend +else + syn region mooString start=~"~ skip=~\\.~ end=~"\|$~ contains=@mooStringContents keepend +endif + +" Numbers and object numbers +syn match mooNumber display ~\%(\%(\<\d\+\)\=\.\d\+\|\<\d\+\)\%(e[+\-]\=\d\+\)\=\>~ +syn match mooObject display ~#-\=\d\+\>~ + +" Properties and verbs +if exists("moo_builtin_properties") + "Builtin properties + syn keyword mooBuiltinProperty contents f location name owner programmer r w wizard contained containedin=mooPropRef +endif +if exists("moo_extended_cstyle_comments") + syn match mooPropRef display ~\.\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\h\w*\>~ transparent contains=mooCStyleComment,@mooKeyword + syn match mooVerbRef display ~:\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\h\w*\>~ transparent contains=mooCStyleComment,@mooKeyword +else + syn match mooPropRef display ~\.\s*\h\w*\>~ transparent contains=@mooKeyword + syn match mooVerbRef display ~:\s*\h\w*\>~ transparent contains=@mooKeyword +endif + +" Builtin functions, core properties and core verbs +if exists("moo_extended_cstyle_comments") + syn match mooBuiltinFunction display ~\<\h\w*\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\ze(~ contains=mooCStyleComment + syn match mooCorePropOrVerb display ~\$\s*\%(\%(/\*.\{-}\*/\s*\)*\)\@>\%(in\>\)\@!\h\w*\>~ contains=mooCStyleComment,@mooKeyword +else + syn match mooBuiltinFunction display ~\<\h\w*\s*\ze(~ contains=NONE + syn match mooCorePropOrVerb display ~\$\s*\%(in\>\)\@!\h\w*\>~ contains=@mooKeyword +endif +if exists("moo_unknown_builtin_functions") + syn match mooUnknownBuiltinFunction ~\<\h\w*\>~ contained containedin=mooBuiltinFunction contains=mooKnownBuiltinFunction + " Known builtin functions as of version 1.8.1 of the server + " Add your own extensions to this group if you like + syn keyword mooKnownBuiltinFunction abs acos add_property add_verb asin atan binary_hash boot_player buffered_output_length callers caller_perms call_function ceil children chparent clear_property connected_players connected_seconds connection_name connection_option connection_options cos cosh create crypt ctime db_disk_size decode_binary delete_property delete_verb disassemble dump_database encode_binary equal eval exp floatstr floor flush_input force_input function_info idle_seconds index is_clear_property is_member is_player kill_task length listappend listdelete listen listeners listinsert listset log log10 match max max_object memory_usage min move notify object_bytes open_network_connection output_delimiters parent pass players properties property_info queued_tasks queue_info raise random read recycle renumber reset_max_object resume rindex rmatch seconds_left server_log server_version setadd setremove set_connection_option set_player_flag set_property_info set_task_perms set_verb_args set_verb_code set_verb_info shutdown sin sinh sqrt strcmp string_hash strsub substitute suspend tan tanh task_id task_stack ticks_left time tofloat toint toliteral tonum toobj tostr trunc typeof unlisten valid value_bytes value_hash verbs verb_args verb_code verb_info contained +endif + +" Enclosed expressions +syn match mooUnenclosedError display ~[')\]|}]~ +syn match mooParenthesesError display ~[';\]|}]~ contained +syn region mooParentheses start=~(~ end=~)~ transparent contains=@mooEnclosedContents,mooParenthesesError +syn match mooBracketsError display ~[');|}]~ contained +syn region mooBrackets start=~\[~ end=~\]~ transparent contains=@mooEnclosedContents,mooBracketsError +syn match mooBracesError display ~[');\]|]~ contained +syn region mooBraces start=~{~ end=~}~ transparent contains=@mooEnclosedContents,mooBracesError +syn match mooQuestionError display ~[');\]}]~ contained +syn region mooQuestion start=~?~ end=~|~ transparent contains=@mooEnclosedContents,mooQuestionError +syn match mooCatchError display ~[);\]|}]~ contained +syn region mooCatch matchgroup=mooExclamation start=~`~ end=~'~ transparent contains=@mooEnclosedContents,mooCatchError,mooExclamation +if exists("moo_extended_cstyle_comments") + syn match mooExclamation display ~[\t !%&(*+,\-/<=>?@[^`{|]\@!=\@!~ contained contains=mooCStyleComment +else + syn match mooExclamation display ~[\t !%&(*+,\-/<=>?@[^`{|]\@?@^|]\@?~ transparent contains=mooCStyleComment +else + syn match mooScattering ~[,{]\@<=\s*?~ transparent contains=NONE +endif + +" Clusters +syn cluster mooKeyword contains=mooStatement,mooOperatorIn,mooAny,mooErrorConstant +syn cluster mooStringContents contains=mooStringError,mooStringSpecialChar +syn cluster mooEnclosedContents contains=TOP,mooUnenclosedError,mooComment,mooNonCode + +" Define the default highlighting. +hi def link mooUncommentedError Error +hi def link mooCStyleCommentError Error +hi def link mooCStyleComment Comment +hi def link mooStatement Statement +hi def link mooOperatorIn Operator +hi def link mooAny Constant " link this to Keyword if you want +hi def link mooErrorConstant Constant +hi def link mooType Type +hi def link mooVariable Type +hi def link mooStringError Error +hi def link mooStringSpecialChar SpecialChar +hi def link mooRegexpOr SpecialChar +hi def link mooPronounSub SpecialChar +hi def link mooString String +hi def link mooNumber Number +hi def link mooObject Number +hi def link mooBuiltinProperty Type +hi def link mooBuiltinFunction Function +hi def link mooUnknownBuiltinFunction Error +hi def link mooKnownBuiltinFunction Function +hi def link mooCorePropOrVerb Identifier +hi def link mooUnenclosedError Error +hi def link mooParenthesesError Error +hi def link mooBracketsError Error +hi def link mooBracesError Error +hi def link mooQuestionError Error +hi def link mooCatchError Error +hi def link mooExclamation Exception +hi def link mooComment Comment +hi def link mooNonCode PreProc + +let b:current_syntax = "moo" + +" vim: ts=8 diff --git a/runtime/syntax/mp.vim b/runtime/syntax/mp.vim new file mode 100644 index 0000000..36c07e6 --- /dev/null +++ b/runtime/syntax/mp.vim @@ -0,0 +1,273 @@ +vim9script + +# Vim syntax file +# Language: MetaPost +# Maintainer: Nicola Vitacolonna +# Former Maintainers: Andreas Scherer +# Latest Revision: 2022 Aug 12 + +if exists("b:current_syntax") + finish +endif + +# Deprecation warnings: to be removed eventually +if exists("g:plain_mp_macros") + echomsg "[mp] g:plain_mp_macros is deprecated: use g:mp_plain_macros instead." +endif +if exists("mfplain_mp_macros") + echomsg "[mp] g:mfplain_mp_macros is deprecated: use g:mp_mfplain_macros instead." +endif +if exists("other_mp_macros") + echomsg "[mp] g:other_mp_macros is deprecated: use g:mp_other_macros instead." +endif + +# Store the current values of METAFONT global options +const mf_plain_macros = get(g:, "mf_plain_macros", get(g:, "plain_mf_macros", -1)) +const mf_plain_modes = get(g:, "mf_plain_modes", get(g:, "plain_mf_modes", -1)) +const mf_other_macros = get(g:, "mf_other_macros", get(g:, "other_mf_macros", -1)) + +g:mf_plain_macros = 0 # plain.mf has no special meaning for MetaPost +g:mf_plain_modes = 0 # No METAFONT modes +g:mf_other_macros = 0 # cmbase.mf, logo.mf, ... neither + +# Read the METAFONT syntax to start with +runtime! syntax/mf.vim +unlet b:current_syntax # Necessary for syn include below + +# Restore the value of existing global variables +if mf_plain_macros == -1 + unlet g:mf_plain_macros +else + g:plain_mf_macros = mf_plain_macros +endif +if mf_plain_modes == -1 + unlet g:mf_plain_modes +else + g:mf_plain_modes = mf_plain_modes +endif +if mf_other_macros == -1 + unlet g:mf_other_macros +else + g:mf_other_macros = mf_other_macros +endif + +# Use TeX highlighting inside verbatimtex/btex... etex +syn include @MPTeX syntax/tex.vim +unlet b:current_syntax +# These are defined as keywords rather than using matchgroup +# in order to make them available to syntaxcomplete. +syn keyword mpTeXdelim btex etex verbatimtex contained +syn region mpTeXinsert matchgroup=mpTeXdelim start=/\\|\/ end=/\/ keepend contains=@MPTeX,mpTeXdelim + +# iskeyword must be set after the syn include above, because tex.vim sets `syn +# iskeyword`. Note that keywords do not contain numbers (numbers are +# subscripts) +syntax iskeyword @,_ + +# MetaPost primitives not found in METAFONT +syn keyword mpBoolExp bounded clipped filled stroked textual arclength +syn keyword mpNumExp arctime blackpart bluepart colormodel cyanpart +syn keyword mpNumExp fontsize greenpart greypart magentapart redpart +syn keyword mpPairExp yellowpart llcorner lrcorner ulcorner urcorner +syn keyword mpPathExp envelope pathpart +syn keyword mpPenExp penpart +syn keyword mpPicExp dashpart glyph infont +syn keyword mpStringExp fontpart readfrom textpart +syn keyword mpType cmykcolor color rgbcolor +# Other MetaPost primitives listed in the manual +syn keyword mpPrimitive mpxbreak within +# Internal quantities not found in METAFONT +# (Table 6 in MetaPost: A User's Manual) +syn keyword mpInternal defaultcolormodel hour minute linecap linejoin +syn keyword mpInternal miterlimit mpprocset mpversion numberprecision +syn keyword mpInternal numbersystem outputfilename outputformat +syn keyword mpInternal outputformatoptions outputtemplate prologues +syn keyword mpInternal restoreclipcolor tracinglostchars troffmode +syn keyword mpInternal truecorners +# List of commands not found in METAFONT (from MetaPost: A User's Manual) +syn keyword mpCommand clip closefrom dashed filenametemplate fontmapfile +syn keyword mpCommand fontmapline setbounds withcmykcolor withcolor +syn keyword mpCommand withgreyscale withoutcolor withpostscript +syn keyword mpCommand withprescript withrgbcolor write +# METAFONT internal variables not found in MetaPost +syn keyword notDefined autorounding chardx chardy fillin granularity +syn keyword notDefined proofing smoothing tracingedges tracingpens +syn keyword notDefined turningcheck xoffset yoffset +# Suffix defined only in METAFONT: +syn keyword notDefined nodot +# Other not implemented primitives (see MetaPost: A User's Manual, §C.1) +syn keyword notDefined cull display openwindow numspecial totalweight +syn keyword notDefined withweight + +# Keywords defined by plain.mp +if get(g:, "mp_plain_macros", get(g:, "plain_mp_macros", 1)) || get(b:, "mp_metafun", get(g:, "mp_metafun", 0)) + syn keyword mpDef beginfig clear_pen_memory clearit clearpen clearpen + syn keyword mpDef clearxy colorpart cutdraw downto draw drawarrow + syn keyword mpDef drawdblarrow drawdot drawoptions endfig erase + syn keyword mpDef exitunless fill filldraw flex gobble hide interact + syn keyword mpDef label loggingall makelabel numtok penstroke pickup + syn keyword mpDef range reflectedabout rotatedaround shipit + syn keyword mpDef stop superellipse takepower tracingall tracingnone + syn keyword mpDef undraw undrawdot unfill unfilldraw upto + syn match mpDef "???" + syn keyword mpVardef arrowhead bbox bot buildcycle byte ceiling center + syn keyword mpVardef counterclockwise decr dir direction directionpoint + syn keyword mpVardef dotlabel dotlabels image incr interpath inverse + syn keyword mpVardef labels lft magstep max min penlabels penpos round + syn keyword mpVardef rt savepen solve tensepath thelabel top unitvector + syn keyword mpVardef whatever z + syn keyword mpPrimaryDef div dotprod gobbled mod + syn keyword mpSecondaryDef intersectionpoint + syn keyword mpTertiaryDef cutafter cutbefore softjoin thru + syn keyword mpNewInternal ahangle ahlength bboxmargin beveled butt defaultpen + syn keyword mpNewInternal defaultscale dotlabeldiam eps epsilon infinity + syn keyword mpNewInternal join_radius labeloffset mitered pen_bot pen_lft + syn keyword mpNewInternal pen_rt pen_top rounded squared tolerance + # Predefined constants + syn keyword mpConstant EOF background base_name base_version black + syn keyword mpConstant blankpicture blue ditto down evenly fullcircle + syn keyword mpConstant green halfcircle identity left origin penrazor + syn keyword mpConstant penspeck pensquare quartercircle red right + syn keyword mpConstant unitsquare up white withdots + # Other predefined variables + syn keyword mpVariable currentpen currentpen_path currentpicture cuttings + syn keyword mpVariable defaultfont extra_beginfig extra_endfig + syn keyword mpVariable laboff labxf labyf laboff labxf labyf + syn match mpVariable /\.\%(lft\|rt\|bot\|top\|ulft\|urt\|llft\|lrt\)\>/ + # let statements: + syn keyword mpnumExp abs + syn keyword mpDef rotatedabout + syn keyword mpCommand bye relax + # on and off are not technically keywords, but it is nice to highlight them + # inside dashpattern(). + syn keyword mpOnOff off on contained + syn keyword mpDash dashpattern contained + syn region mpDashPattern start="dashpattern\s*" end=")"he=e-1 contains=mfNumeric,mfLength,mpOnOff,mpDash +endif + +# Keywords defined by mfplain.mp +if get(g:, "mp_mfplain_macros", get(g:, "mfplain_mp_macros", 0)) + syn keyword mpDef beginchar capsule_def change_width + syn keyword mpDef define_blacker_pixels define_corrected_pixels + syn keyword mpDef define_good_x_pixels define_good_y_pixels + syn keyword mpDef define_horizontal_corrected_pixels define_pixels + syn keyword mpDef define_whole_blacker_pixels define_whole_pixels + syn keyword mpDef define_whole_vertical_blacker_pixels + syn keyword mpDef define_whole_vertical_pixels endchar + syn keyword mpDef font_coding_scheme font_extra_space font_identifier + syn keyword mpDef font_normal_shrink font_normal_space + syn keyword mpDef font_normal_stretch font_quad font_size font_slant + syn keyword mpDef font_x_height italcorr labelfont lowres_fix makebox + syn keyword mpDef makegrid maketicks mode_def mode_setup proofrule + syn keyword mpDef smode + syn keyword mpVardef hround proofrulethickness vround + syn keyword mpNewInternal blacker o_correction + syn keyword mpVariable extra_beginchar extra_endchar extra_setup rulepen + # plus some no-ops, also from mfplain.mp + syn keyword mpDef cull cullit gfcorners imagerules nodisplays + syn keyword mpDef notransforms openit proofoffset screenchars + syn keyword mpDef screenrule screenstrokes showit + syn keyword mpVardef grayfont slantfont titlefont + syn keyword mpVariable currenttransform + syn keyword mpConstant unitpixel + # These are not listed in the MetaPost manual, and some are ignored by + # MetaPost, but are nonetheless defined in mfplain.mp + syn keyword mpDef killtext + syn match mpVardef "\" + syn keyword mpVariable aspect_ratio localfont mag mode mode_name + syn keyword mpVariable proofcolor + syn keyword mpConstant lowres proof smoke + syn keyword mpNewInternal autorounding bp_per_pixel granularity + syn keyword mpNewInternal number_of_modes proofing smoothing turningcheck +endif + +# Keywords defined by all base macro packages: +# - (r)boxes.mp +# - format.mp +# - graph.mp +# - marith.mp +# - sarith.mp +# - string.mp +# - TEX.mp +if get(g:, "mp_other_macros", get(g:, "other_mp_macros", 1)) + # boxes and rboxes + syn keyword mpDef boxjoin drawboxed drawboxes drawunboxed + syn keyword mpNewInternal circmargin defaultdx defaultdy rbox_radius + syn keyword mpVardef boxit bpath circleit fixpos fixsize generic_declare + syn keyword mpVardef generic_redeclare generisize pic rboxit str_prefix + # format + syn keyword mpVardef Mformat format init_numbers roundd + syn keyword mpVariable Fe_base Fe_plus + syn keyword mpConstant Ten_to + # graph + syn keyword mpDef Gfor Gxyscale OUT auto begingraph endgraph gdata + syn keyword mpDef gdraw gdrawarrow gdrawdblarrow gfill plot + syn keyword mpVardef augment autogrid frame gdotlabel glabel grid itick + syn keyword mpVardef otick + syn keyword mpVardef Mreadpath setcoords setrange + syn keyword mpNewInternal Gmarks Gminlog Gpaths linear log + syn keyword mpVariable Autoform Gemarks Glmarks Gumarks + syn keyword mpConstant Gtemplate + syn match mpVariable /Gmargin\.\%(low\|high\)/ + # marith + syn keyword mpVardef Mabs Meform Mexp Mexp_str Mlog Mlog_Str Mlog_str + syn keyword mpPrimaryDef Mdiv Mmul + syn keyword mpSecondaryDef Madd Msub + syn keyword mpTertiaryDef Mleq + syn keyword mpNewInternal Mten Mzero + # sarith + syn keyword mpVardef Sabs Scvnum + syn keyword mpPrimaryDef Sdiv Smul + syn keyword mpSecondaryDef Sadd Ssub + syn keyword mpTertiaryDef Sleq Sneq + # string + syn keyword mpVardef cspan isdigit loptok + # TEX + syn keyword mpVardef TEX TEXPOST TEXPRE +endif + +if get(b:, "mp_metafun", get(g:, "mp_metafun", 0)) + # MetaFun additions to MetaPost base file + syn keyword mpConstant cyan magenta yellow + syn keyword mpConstant penspec + syn keyword mpNumExp graypart greycolor graycolor + + # Highlight TeX keywords (for MetaPost embedded in ConTeXt documents) + syn match mpTeXKeyword '\\[a-zA-Z@]\+' + + syn keyword mpPrimitive runscript + + runtime! syntax/shared/context-data-metafun.vim + + hi def link metafunCommands Statement + hi def link metafunInternals Identifier +endif + +# Define the default highlighting +hi def link mpTeXdelim mpPrimitive +hi def link mpBoolExp mfBoolExp +hi def link mpNumExp mfNumExp +hi def link mpPairExp mfPairExp +hi def link mpPathExp mfPathExp +hi def link mpPenExp mfPenExp +hi def link mpPicExp mfPicExp +hi def link mpStringExp mfStringExp +hi def link mpInternal mfInternal +hi def link mpCommand mfCommand +hi def link mpType mfType +hi def link mpPrimitive mfPrimitive +hi def link mpDef mfDef +hi def link mpVardef mpDef +hi def link mpPrimaryDef mpDef +hi def link mpSecondaryDef mpDef +hi def link mpTertiaryDef mpDef +hi def link mpNewInternal mpInternal +hi def link mpVariable mfVariable +hi def link mpConstant mfConstant +hi def link mpOnOff mpPrimitive +hi def link mpDash mpPrimitive +hi def link mpTeXKeyword Identifier + +b:current_syntax = "mp" + +# vim: sw=2 fdm=marker diff --git a/runtime/syntax/mplayerconf.vim b/runtime/syntax/mplayerconf.vim new file mode 100644 index 0000000..84ad2da --- /dev/null +++ b/runtime/syntax/mplayerconf.vim @@ -0,0 +1,128 @@ +" Vim syntax file +" Language: mplayer(1) configuration file +" Maintainer: Dmitri Vereshchagin +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2015-01-24 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=- + +syn keyword mplayerconfTodo contained TODO FIXME XXX NOTE + +syn region mplayerconfComment display oneline start='#' end='$' + \ contains=mplayerconfTodo,@Spell + +syn keyword mplayerconfPreProc include + +syn keyword mplayerconfBoolean yes no true false + +syn match mplayerconfNumber '\<\d\+\>' + +syn keyword mplayerconfOption hardframedrop nomouseinput bandwidth dumpstream + \ rtsp-stream-over-tcp tv overlapsub + \ sub-bg-alpha subfont-outline unicode format + \ vo edl cookies fps zrfd af-adv nosound + \ audio-density passlogfile vobsuboutindex autoq + \ autosync benchmark colorkey nocolorkey edlout + \ enqueue fixed-vo framedrop h identify input + \ lircconf list-options loop menu menu-cfg + \ menu-root nojoystick nolirc nortc playlist + \ quiet really-quiet shuffle skin slave + \ softsleep speed sstep use-stdin aid alang + \ audio-demuxer audiofile audiofile-cache + \ cdrom-device cache cdda channels chapter + \ cookies-file demuxer dumpaudio dumpfile + \ dumpvideo dvbin dvd-device dvdangle forceidx + \ frames hr-mp3-seek idx ipv4-only-proxy + \ loadidx mc mf ni nobps noextbased + \ passwd prefer-ipv4 prefer-ipv6 rawaudio + \ rawvideo saveidx sb srate ss tskeepbroken + \ tsprog tsprobe user user-agent vid vivo + \ dumpjacosub dumpmicrodvdsub dumpmpsub dumpsami + \ dumpsrtsub dumpsub ffactor flip-hebrew font + \ forcedsubsonly fribidi-charset ifo noautosub + \ osdlevel sid slang spuaa spualign spugauss + \ sub sub-bg-color sub-demuxer sub-fuzziness + \ sub-no-text-pp subalign subcc subcp subdelay + \ subfile subfont-autoscale subfont-blur + \ subfont-encoding subfont-osd-scale + \ subfont-text-scale subfps subpos subwidth + \ utf8 vobsub vobsubid abs ao aofile aop delay + \ mixer nowaveheader aa bpp brightness contrast + \ dfbopts display double dr dxr2 fb fbmode + \ fbmodeconfig forcexv fs fsmode-dontuse fstype + \ geometry guiwid hue jpeg monitor-dotclock + \ monitor-hfreq monitor-vfreq monitoraspect + \ nograbpointer nokeepaspect noxv ontop panscan + \ rootwin saturation screenw stop-xscreensaver + \ vm vsync wid xineramascreen z zrbw zrcrop + \ zrdev zrhelp zrnorm zrquality zrvdec zrxdoff + \ ac af afm aspect flip lavdopts noaspect + \ noslices novideo oldpp pp pphelp ssf stereo + \ sws vc vfm x xvidopts xy y zoom vf vop + \ audio-delay audio-preload endpos ffourcc + \ include info noautoexpand noskip o oac of + \ ofps ovc skiplimit v vobsubout vobsuboutid + \ lameopts lavcopts nuvopts xvidencopts a52drc + \ adapter af-add af-clr af-del af-pre + \ allow-dangerous-playlist-parsing ass + \ ass-border-color ass-bottom-margin ass-color + \ ass-font-scale ass-force-style ass-hinting + \ ass-line-spacing ass-styles ass-top-margin + \ ass-use-margins ausid bluray-angle + \ bluray-device border border-pos-x border-pos-y + \ cache-min cache-seek-min capture codecpath + \ codecs-file correct-pts crash-debug + \ doubleclick-time dvd-speed edl-backward-delay + \ edl-start-pts embeddedfonts fafmttag + \ field-dominance fontconfig force-avi-aspect + \ force-key-frames frameno-file fullscreen gamma + \ gui gui-include gui-wid heartbeat-cmd + \ heartbeat-interval hr-edl-seek + \ http-header-fields idle ignore-start + \ key-fifo-size list-properties menu-chroot + \ menu-keepdir menu-startup mixer-channel + \ monitor-orientation monitorpixelaspect + \ mouse-movements msgcharset msgcolor msglevel + \ msgmodule name noar nocache noconfig + \ noconsolecontrols nocorrect-pts nodouble + \ noedl-start-pts noencodedups + \ noflip-hebrew-commas nogui noidx noodml + \ nostop-xscreensaver nosub noterm-osd + \ osd-duration osd-fractions panscanrange + \ pausing playing-msg priority profile + \ progbar-align psprobe pvr radio referrer + \ refreshrate reuse-socket rtc rtc-device + \ rtsp-destination rtsp-port + \ rtsp-stream-over-http screenh show-profile + \ softvol softvol-max sub-paths subfont + \ term-osd-esc title tvscan udp-ip udp-master + \ udp-port udp-seek-threshold udp-slave + \ unrarexec use-filedir-conf use-filename-title + \ vf-add vf-clr vf-del vf-pre volstep volume + \ zrhdec zrydoff + +syn region mplayerconfString display oneline start=+"+ end=+"+ +syn region mplayerconfString display oneline start=+'+ end=+'+ + +syn region mplayerconfProfile display oneline start='^\s*\[' end='\]' + +hi def link mplayerconfTodo Todo +hi def link mplayerconfComment Comment +hi def link mplayerconfPreProc PreProc +hi def link mplayerconfBoolean Boolean +hi def link mplayerconfNumber Number +hi def link mplayerconfOption Keyword +hi def link mplayerconfString String +hi def link mplayerconfProfile Special + +let b:current_syntax = "mplayerconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/mrxvtrc.vim b/runtime/syntax/mrxvtrc.vim new file mode 100644 index 0000000..2ef434d --- /dev/null +++ b/runtime/syntax/mrxvtrc.vim @@ -0,0 +1,282 @@ +" Description : Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up) +" Created : Wed 26 Apr 2006 01:20:53 AM CDT +" Modified : Thu 02 Feb 2012 08:37:45 PM EST +" Maintainer : GI , where a='gi1242+vim', b='gmail', c='com' + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case match + +" Errors +syn match mrxvtrcError contained '\v\S+' + +" Comments +syn match mrxvtrcComment contains=@Spell '^\s*[!#].*$' +syn match mrxvtrcComment '\v^\s*[#!]\s*\w+[.*]\w+.*:.*' + +" +" Options. +" +syn match mrxvtrcClass '\v^\s*\w+[.*]' + \ nextgroup=mrxvtrcOptions,mrxvtrcProfile,@mrxvtrcPOpts,mrxvtrcError + +" Boolean options +syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError + \ highlightTabOnBell syncTabTitle hideTabbar + \ autohideTabbar bottomTabbar hideButtons + \ syncTabIcon veryBoldFont maximized + \ fullscreen reverseVideo loginShell + \ jumpScroll scrollBar scrollbarRight + \ scrollbarFloating scrollTtyOutputInhibit + \ scrollTtyKeypress transparentForce + \ transparentScrollbar transparentMenubar + \ transparentTabbar tabUsePixmap utmpInhibit + \ visualBell mapAlert meta8 + \ mouseWheelScrollPage multibyte_cursor + \ tripleclickwords showMenu xft xftNomFont + \ xftSlowOutput xftAntialias xftHinting + \ xftAutoHint xftGlobalAdvance cmdAllTabs + \ protectSecondary thai borderLess + \ overrideRedirect broadcast smartResize + \ pointerBlank cursorBlink noSysConfig + \ disableMacros linuxHomeEndKey sessionMgt + \ boldColors smoothResize useFifo veryBright +syn match mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError + \ '\v' +syn match mrxvtrcBColon contained skipwhite + \ nextgroup=mrxvtrcBoolVal,mrxvtrcError ':' +syn case ignore +syn keyword mrxvtrcBoolVal contained skipwhite nextgroup=mrxvtrcError + \ 0 1 yes no on off true false +syn case match + +" Color options +syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcCColon,mrxvtrcError + \ ufBackground textShadow tabForeground + \ itabForeground tabBackground itabBackground + \ scrollColor troughColor highlightColor + \ cursorColor cursorColor2 pointerColor + \ borderColor tintColor +syn match mrxvtrcOptions contained nextgroup=mrxvtrcCColon,mrxvtrcError + \ '\v' +syn match mrxvtrcCColon contained skipwhite + \ nextgroup=mrxvtrcColorVal ':' +syn match mrxvtrcColorVal contained skipwhite nextgroup=mrxvtrcError + \ '\v#[0-9a-fA-F]{6}' + +" Numeric options +syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcNColon,mrxvtrcError + \ maxTabWidth minVisibleTabs + \ scrollbarThickness xftmSize xftSize desktop + \ externalBorder internalBorder lineSpace + \ pointerBlankDelay cursorBlinkInterval + \ shading backgroundFade bgRefreshInterval + \ fading opacity opacityDegree xftPSize +syn match mrxvtrcNColon contained skipwhite + \ nextgroup=mrxvtrcNumVal,mrxvtrcError ':' +syn match mrxvtrcNumVal contained skipwhite nextgroup=mrxvtrcError + \ '\v[+-]?<(0[0-7]+|\d+|0x[0-9a-f]+)>' + +" String options +syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcSColon,mrxvtrcError + \ tabTitle termName title clientName iconName + \ bellCommand backspaceKey deleteKey + \ printPipe cutChars answerbackString + \ smClientID geometry path boldFont xftFont + \ xftmFont xftPFont inputMethod + \ greektoggle_key menu menubarPixmap + \ scrollbarPixmap tabbarPixmap appIcon + \ multichar_encoding initProfileList +syn match mrxvtrcOptions contained nextgroup=mrxvtrcSColon,mrxvtrcError + \ '\v' +syn match mrxvtrcSColon contained skipwhite nextgroup=mrxvtrcStrVal ':' +syn match mrxvtrcStrVal contained '\v\S.*' + +" Profile options +syn cluster mrxvtrcPOpts contains=mrxvtrcPSOpts,mrxvtrcPCOpts,mrxvtrcPNOpts +syn match mrxvtrcProfile contained nextgroup=@mrxvtrcPOpts,mrxvtrcError + \ '\vprofile\d+\.' +syn keyword mrxvtrcPSOpts contained nextgroup=mrxvtrcSColon,mrxvtrcError + \ tabTitle command holdExitText holdExitTitle + \ Pixmap workingDirectory titleFormat + \ winTitleFormat +syn keyword mrxvtrcPCOpts contained nextgroup=mrxvtrcCColon,mrxvtrcError + \ background foreground +syn keyword mrxvtrcPNOpts contained nextgroup=mrxvtrcNColon,mrxvtrcError + \ holdExit saveLines + +" scrollbarStyle +syn match mrxvtrcOptions contained skipwhite + \ nextgroup=mrxvtrcSBstyle,mrxvtrcError + \ '\v' + +" +" Highlighting groups +" +hi def link mrxvtrcError Error +hi def link mrxvtrcComment Comment + +hi def link mrxvtrcClass Statement +hi def link mrxvtrcOptions mrxvtrcClass +hi def link mrxvtrcBColon mrxvtrcClass +hi def link mrxvtrcCColon mrxvtrcClass +hi def link mrxvtrcNColon mrxvtrcClass +hi def link mrxvtrcSColon mrxvtrcClass +hi def link mrxvtrcProfile mrxvtrcClass +hi def link mrxvtrcPSOpts mrxvtrcClass +hi def link mrxvtrcPCOpts mrxvtrcClass +hi def link mrxvtrcPNOpts mrxvtrcClass + +hi def link mrxvtrcBoolVal Boolean +hi def link mrxvtrcStrVal String +hi def link mrxvtrcColorVal Constant +hi def link mrxvtrcNumVal Number + +hi def link mrxvtrcSBstyle mrxvtrcStrVal +hi def link mrxvtrcSBalign mrxvtrcStrVal +hi def link mrxvtrcTSmode mrxvtrcStrVal +hi def link mrxvtrcGrkKbd mrxvtrcStrVal +hi def link mrxvtrcXftWt mrxvtrcStrVal +hi def link mrxvtrcXftSl mrxvtrcStrVal +hi def link mrxvtrcXftWd mrxvtrcStrVal +hi def link mrxvtrcXftHt mrxvtrcStrVal +hi def link mrxvtrcPedit mrxvtrcStrVal +hi def link mrxvtrcMod mrxvtrcStrVal +hi def link mrxvtrcSelSty mrxvtrcStrVal + +hi def link mrxvtrcMacro Identifier +hi def link mrxvtrcKey mrxvtrcClass +hi def link mrxvtrcTitle mrxvtrcStrVal +hi def link mrxvtrcShell Special +hi def link mrxvtrcCmd PreProc +hi def link mrxvtrcSubwin mrxvtrcStrVal + +let b:current_syntax = "mrxvtrc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/msidl.vim b/runtime/syntax/msidl.vim new file mode 100644 index 0000000..57eaeca --- /dev/null +++ b/runtime/syntax/msidl.vim @@ -0,0 +1,84 @@ +" Vim syntax file +" Language: MS IDL (Microsoft dialect of Interface Description Language) +" Maintainer: Vadim Zeitlin +" Last Change: 2012 Feb 12 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Misc basic +syn match msidlId "[a-zA-Z][a-zA-Z0-9_]*" +syn match msidlUUID "{\?[[:xdigit:]]\{8}-\([[:xdigit:]]\{4}-\)\{3}[[:xdigit:]]\{12}}\?" +syn region msidlString start=/"/ skip=/\\\(\\\\\)*"/ end=/"/ +syn match msidlLiteral "\d\+\(\.\d*\)\=" +syn match msidlLiteral "\.\d\+" +syn match msidlSpecial contained "[]\[{}:]" + +" Comments +syn keyword msidlTodo contained TODO FIXME XXX +syn region msidlComment start="/\*" end="\*/" contains=msidlTodo +syn match msidlComment "//.*" contains=msidlTodo +syn match msidlCommentError "\*/" + +" C style Preprocessor +syn region msidlIncluded contained start=+"+ skip=+\\\(\\\\\)*"+ end=+"+ +syn match msidlIncluded contained "<[^>]*>" +syn match msidlInclude "^[ \t]*#[ \t]*include\>[ \t]*["<]" contains=msidlIncluded,msidlString +syn region msidlPreCondit start="^[ \t]*#[ \t]*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=msidlComment,msidlCommentError +syn region msidlDefine start="^[ \t]*#[ \t]*\(define\>\|undef\>\)" skip="\\$" end="$" contains=msidlLiteral, msidlString + +" Attributes +syn keyword msidlAttribute contained in out propget propput propputref retval +syn keyword msidlAttribute contained aggregatable appobject binadable coclass control custom default defaultbind defaultcollelem defaultvalue defaultvtable dispinterface displaybind dual entry helpcontext helpfile helpstring helpstringdll hidden id immediatebind lcid library licensed nonbrowsable noncreatable nonextensible oleautomation optional object public readonly requestedit restricted source string uidefault usesgetlasterror vararg version +syn match msidlAttribute /uuid(.*)/he=s+4 contains=msidlUUID +syn match msidlAttribute /helpstring(.*)/he=s+10 contains=msidlString +syn region msidlAttributes start="\[" end="]" keepend contains=msidlSpecial,msidlString,msidlAttribute,msidlComment,msidlCommentError + +" Keywords +syn keyword msidlEnum enum +syn keyword msidlImport import importlib +syn keyword msidlStruct interface library coclass +syn keyword msidlTypedef typedef + +" Types +syn keyword msidlStandardType byte char double float hyper int long short void wchar_t +syn keyword msidlStandardType BOOL BSTR HRESULT VARIANT VARIANT_BOOL +syn region msidlSafeArray start="SAFEARRAY(" end=")" contains=msidlStandardType + +syn sync lines=50 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link msidlInclude Include +hi def link msidlPreProc PreProc +hi def link msidlPreCondit PreCondit +hi def link msidlDefine Macro +hi def link msidlIncluded String +hi def link msidlString String +hi def link msidlComment Comment +hi def link msidlTodo Todo +hi def link msidlSpecial SpecialChar +hi def link msidlLiteral Number +hi def link msidlUUID Number + +hi def link msidlImport Include +hi def link msidlEnum StorageClass +hi def link msidlStruct Structure +hi def link msidlTypedef Typedef +hi def link msidlAttribute StorageClass + +hi def link msidlStandardType Type +hi def link msidlSafeArray Type + + +let b:current_syntax = "msidl" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vi: set ts=8 sw=4: diff --git a/runtime/syntax/msmessages.vim b/runtime/syntax/msmessages.vim new file mode 100644 index 0000000..5faee97 --- /dev/null +++ b/runtime/syntax/msmessages.vim @@ -0,0 +1,132 @@ +" Vim syntax file +" Language: MS Message Text files (*.mc) +" Maintainer: Kevin Locke +" Last Change: 2008 April 09 +" Location: http://kevinlocke.name/programs/vim/syntax/msmessages.vim + +" See format description at +" This file is based on the rc.vim and c.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Common MS Messages keywords +syn case ignore +syn keyword msmessagesIdentifier MessageIdTypedef +syn keyword msmessagesIdentifier SeverityNames +syn keyword msmessagesIdentifier FacilityNames +syn keyword msmessagesIdentifier LanguageNames +syn keyword msmessagesIdentifier OutputBase + +syn keyword msmessagesIdentifier MessageId +syn keyword msmessagesIdentifier Severity +syn keyword msmessagesIdentifier Facility +syn keyword msmessagesIdentifier OutputBase + +syn match msmessagesIdentifier /\/ nextgroup=msmessagesIdentEq skipwhite +syn match msmessagesIdentEq transparent /=/ nextgroup=msmessagesIdentDef skipwhite contained +syn match msmessagesIdentDef display /\w\+/ contained +" Note: The Language keyword is highlighted as part of an msmessagesLangEntry + +" Set value +syn case match +syn region msmessagesSet start="(" end=")" transparent fold contains=msmessagesName keepend +syn match msmessagesName /\w\+/ nextgroup=msmessagesSetEquals skipwhite contained +syn match msmessagesSetEquals /=/ display transparent nextgroup=msmessagesNumVal skipwhite contained +syn match msmessagesNumVal display transparent "\<\d\|\.\d" contains=msmessagesNumber,msmessagesFloat,msmessagesOctalError,msmessagesOctal nextgroup=msmessagesValSep +syn match msmessagesValSep /:/ display nextgroup=msmessagesNameDef contained +syn match msmessagesNameDef /\w\+/ display contained + + +" Comments are converted to C source (by removing leading ;) +" So we highlight the comments as C +syn include @msmessagesC syntax/c.vim +unlet b:current_syntax +syn region msmessagesCComment matchgroup=msmessagesComment start=/;/ end=/$/ contains=@msmessagesC keepend + +" String and Character constants +" Highlight special characters (those which have a escape) differently +syn case ignore +syn region msmessagesLangEntry start=/\\s*=\s*\S\+\s*$/hs=e+1 end=/^\./ contains=msmessagesFormat,msmessagesLangEntryEnd,msmessagesLanguage keepend +syn match msmessagesLanguage /\" +"hex number +syn match msmessagesNumber display contained "\<0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match msmessagesOctal display contained "\<0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=msmessagesOctalZero +syn match msmessagesOctalZero display contained "\<0" +" flag an octal number with wrong digits +syn match msmessagesOctalError display contained "\<0\o*[89]\d*" +syn match msmessagesFloat display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match msmessagesFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match msmessagesFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match msmessagesFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" +"hexadecimal floating point number, optional leading digits, with dot, with exponent +syn match msmessagesFloat display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>" +"hexadecimal floating point number, with leading digits, optional dot, with exponent +syn match msmessagesFloat display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>" + +" Types (used in MessageIdTypedef statement) +syn case match +syn keyword msmessagesType int long short char +syn keyword msmessagesType signed unsigned +syn keyword msmessagesType size_t ssize_t sig_atomic_t +syn keyword msmessagesType int8_t int16_t int32_t int64_t +syn keyword msmessagesType uint8_t uint16_t uint32_t uint64_t +syn keyword msmessagesType int_least8_t int_least16_t int_least32_t int_least64_t +syn keyword msmessagesType uint_least8_t uint_least16_t uint_least32_t uint_least64_t +syn keyword msmessagesType int_fast8_t int_fast16_t int_fast32_t int_fast64_t +syn keyword msmessagesType uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t +syn keyword msmessagesType intptr_t uintptr_t +syn keyword msmessagesType intmax_t uintmax_t +" Add some Windows datatypes that will be common in msmessages files +syn keyword msmessagesType BYTE CHAR SHORT SIZE_T SSIZE_T TBYTE TCHAR UCHAR USHORT +syn keyword msmessagesType DWORD DWORDLONG DWORD32 DWORD64 +syn keyword msmessagesType INT INT32 INT64 UINT UINT32 UINT64 +syn keyword msmessagesType LONG LONGLONG LONG32 LONG64 +syn keyword msmessagesType ULONG ULONGLONG ULONG32 ULONG64 + +" Sync to language entries, since they should be most common +syn sync match msmessagesLangSync grouphere msmessagesLangEntry "\ +" URL: http://www.isp.de/data/msql.vim +" Email: Subject: send syntax_vim.tgz +" Last Change: 2001 May 10 +" +" Options msql_sql_query = 1 for SQL syntax highligthing inside strings +" msql_minlines = x to sync at least x lines backwards + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'msql' +endif + +runtime! syntax/html.vim +unlet b:current_syntax + +syn cluster htmlPreproc add=msqlRegion + +syn case match + +" Internal Variables +syn keyword msqlIntVar ERRMSG contained + +" Env Variables +syn keyword msqlEnvVar SERVER_SOFTWARE SERVER_NAME SERVER_URL GATEWAY_INTERFACE contained +syn keyword msqlEnvVar SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO contained +syn keyword msqlEnvVar PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST contained +syn keyword msqlEnvVar REMOTE_ADDR AUTH_TYPE REMOTE_USER CONTEN_TYPE contained +syn keyword msqlEnvVar CONTENT_LENGTH HTTPS HTTPS_KEYSIZE HTTPS_SECRETKEYSIZE contained +syn keyword msqlEnvVar HTTP_ACCECT HTTP_USER_AGENT HTTP_IF_MODIFIED_SINCE contained +syn keyword msqlEnvVar HTTP_FROM HTTP_REFERER contained + +" Inlclude lLite +syn include @msqlLite :p:h/lite.vim + +" Msql Region +syn region msqlRegion matchgroup=Delimiter start="D]" end=">" contains=@msqlLite,msql.* + +" sync +if exists("msql_minlines") + exec "syn sync minlines=" . msql_minlines +else + syn sync minlines=100 +endif + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link msqlComment Comment +hi def link msqlString String +hi def link msqlNumber Number +hi def link msqlFloat Float +hi def link msqlIdentifier Identifier +hi def link msqlGlobalIdentifier Identifier +hi def link msqlIntVar Identifier +hi def link msqlEnvVar Identifier +hi def link msqlFunctions Function +hi def link msqlRepeat Repeat +hi def link msqlConditional Conditional +hi def link msqlStatement Statement +hi def link msqlType Type +hi def link msqlInclude Include +hi def link msqlDefine Define +hi def link msqlSpecialChar SpecialChar +hi def link msqlParentError Error +hi def link msqlTodo Todo +hi def link msqlOperator Operator +hi def link msqlRelation Operator + + +let b:current_syntax = "msql" + +if main_syntax == 'msql' + unlet main_syntax +endif + +" vim: ts=8 diff --git a/runtime/syntax/mupad.vim b/runtime/syntax/mupad.vim new file mode 100644 index 0000000..df87ad1 --- /dev/null +++ b/runtime/syntax/mupad.vim @@ -0,0 +1,284 @@ +" Vim syntax file +" Language: MuPAD source +" Maintainer: Dave Silvia +" Filenames: *.mu +" Date: 6/30/2004 + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Set default highlighting to Win2k +if !exists("mupad_cmdextversion") + let mupad_cmdextversion = 2 +endif + +syn case match + +syn match mupadComment "//\p*$" +syn region mupadComment start="/\*" end="\*/" + +syn region mupadString start="\"" skip=/\\"/ end="\"" + +syn match mupadOperator "(\|)\|:=\|::\|:\|;" +" boolean +syn keyword mupadOperator and or not xor +syn match mupadOperator "==>\|\<=\>" + +" Informational +syn keyword mupadSpecial FILEPATH NOTEBOOKFILE NOTEBOOKPATH +" Set-able, e.g., DIGITS:=10 +syn keyword mupadSpecial DIGITS HISTORY LEVEL +syn keyword mupadSpecial MAXLEVEL MAXDEPTH ORDER +syn keyword mupadSpecial TEXTWIDTH +" Set-able, e.g., PRETTYPRINT:=TRUE +syn keyword mupadSpecial PRETTYPRINT +" Set-able, e.g., LIBPATH:="C:\\MuPAD Pro\\mylibdir" or LIBPATH:="/usr/MuPAD Pro/mylibdir" +syn keyword mupadSpecial LIBPATH PACKAGEPATH +syn keyword mupadSpecial READPATH TESTPATH WRITEPATH +" Symbols and Constants +syn keyword mupadDefine FAIL NIL +syn keyword mupadDefine TRUE FALSE UNKNOWN +syn keyword mupadDefine complexInfinity infinity +syn keyword mupadDefine C_ CATALAN E EULER I PI Q_ R_ +syn keyword mupadDefine RD_INF RD_NINF undefined unit universe Z_ +" print() directives +syn keyword mupadDefine Unquoted NoNL KeepOrder Typeset +" domain specifics +syn keyword mupadStatement domain begin end_domain end +syn keyword mupadIdentifier inherits category axiom info doc interface +" basic programming statements +syn keyword mupadStatement proc begin end_proc +syn keyword mupadUnderlined name local option save +syn keyword mupadConditional if then elif else end_if +syn keyword mupadConditional case of do break end_case +syn keyword mupadRepeat for do next break end_for +syn keyword mupadRepeat while do next break end_while +syn keyword mupadRepeat repeat next break until end_repeat +" domain packages/libraries +syn keyword mupadType detools import linalg numeric numlib plot polylib +syn match mupadType '\' + +"syn keyword mupadFunction contains +" Functions dealing with prime numbers +syn keyword mupadFunction phi invphi mersenne nextprime numprimedivisors +syn keyword mupadFunction pollard prevprime primedivisors +" Functions operating on Lists, Matrices, Sets, ... +syn keyword mupadFunction array _index +" Evaluation +syn keyword mupadFunction float contains +" stdlib +syn keyword mupadFunction _exprseq _invert _lazy_and _lazy_or _negate +syn keyword mupadFunction _stmtseq _invert intersect minus union +syn keyword mupadFunction Ci D Ei O Re Im RootOf Si +syn keyword mupadFunction Simplify +syn keyword mupadFunction abs airyAi airyBi alias unalias anames append +syn keyword mupadFunction arcsin arccos arctan arccsc arcsec arccot +syn keyword mupadFunction arcsinh arccosh arctanh arccsch arcsech arccoth +syn keyword mupadFunction arg args array assert assign assignElements +syn keyword mupadFunction assume assuming asympt bernoulli +syn keyword mupadFunction besselI besselJ besselK besselY beta binomial bool +syn keyword mupadFunction bytes card +syn keyword mupadFunction ceil floor round trunc +syn keyword mupadFunction coeff coerce collect combine copyClosure +syn keyword mupadFunction conjugate content context contfrac +syn keyword mupadFunction debug degree degreevec delete _delete denom +syn keyword mupadFunction densematrix diff dilog dirac discont div _div +syn keyword mupadFunction divide domtype doprint erf erfc error eval evalassign +syn keyword mupadFunction evalp exp expand export unexport expose expr +syn keyword mupadFunction expr2text external extnops extop extsubsop +syn keyword mupadFunction fact fact2 factor fclose finput fname fopen fprint +syn keyword mupadFunction fread ftextinput readbitmap readdata pathname +syn keyword mupadFunction protocol read readbytes write writebytes +syn keyword mupadFunction float frac frame _frame frandom freeze unfreeze +syn keyword mupadFunction funcenv gamma gcd gcdex genident genpoly +syn keyword mupadFunction getpid getprop ground has hastype heaviside help +syn keyword mupadFunction history hold hull hypergeom icontent id +syn keyword mupadFunction ifactor igamma igcd igcdex ilcm in _in +syn keyword mupadFunction indets indexval info input int int2text +syn keyword mupadFunction interpolate interval irreducible is +syn keyword mupadFunction isprime isqrt iszero ithprime kummerU lambertW +syn keyword mupadFunction last lasterror lcm lcoeff ldegree length +syn keyword mupadFunction level lhs rhs limit linsolve lllint +syn keyword mupadFunction lmonomial ln loadmod loadproc log lterm +syn keyword mupadFunction match map mapcoeffs maprat matrix max min +syn keyword mupadFunction mod modp mods monomials multcoeffs new +syn keyword mupadFunction newDomain _next nextprime nops +syn keyword mupadFunction norm normal nterms nthcoeff nthmonomial nthterm +syn keyword mupadFunction null numer ode op operator package +syn keyword mupadFunction pade partfrac patchlevel pdivide +syn keyword mupadFunction piecewise plot plotfunc2d plotfunc3d +syn keyword mupadFunction poly poly2list polylog powermod print +syn keyword mupadFunction product protect psi quit _quit radsimp random rationalize +syn keyword mupadFunction rec rectform register reset return revert +syn keyword mupadFunction rewrite select series setuserinfo share sign signIm +syn keyword mupadFunction simplify +syn keyword mupadFunction sin cos tan csc sec cot +syn keyword mupadFunction sinh cosh tanh csch sech coth +syn keyword mupadFunction slot solve +syn keyword mupadFunction pdesolve matlinsolve matlinsolveLU toeplitzSolve +syn keyword mupadFunction vandermondeSolve fsolve odesolve odesolve2 +syn keyword mupadFunction polyroots polysysroots odesolveGeometric +syn keyword mupadFunction realroot realroots mroots lincongruence +syn keyword mupadFunction msqrts +syn keyword mupadFunction sort split sqrt strmatch strprint +syn keyword mupadFunction subs subset subsex subsop substring sum +syn keyword mupadFunction surd sysname sysorder system table taylor tbl2text +syn keyword mupadFunction tcoeff testargs testeq testtype text2expr +syn keyword mupadFunction text2int text2list text2tbl rtime time +syn keyword mupadFunction traperror type unassume unit universe +syn keyword mupadFunction unloadmod unprotect userinfo val version +syn keyword mupadFunction warning whittakerM whittakerW zeta zip + +" graphics plot:: +syn keyword mupadFunction getDefault setDefault copy modify Arc2d Arrow2d +syn keyword mupadFunction Arrow3d Bars2d Bars3d Box Boxplot Circle2d Circle3d +syn keyword mupadFunction Cone Conformal Curve2d Curve3d Cylinder Cylindrical +syn keyword mupadFunction Density Ellipse2d Function2d Function3d Hatch +syn keyword mupadFunction Histogram2d HOrbital Implicit2d Implicit3d +syn keyword mupadFunction Inequality Iteration Line2d Line3d Lsys Matrixplot +syn keyword mupadFunction MuPADCube Ode2d Ode3d Parallelogram2d Parallelogram3d +syn keyword mupadFunction Piechart2d Piechart3d Point2d Point3d Polar +syn keyword mupadFunction Polygon2d Polygon3d Raster Rectangle Sphere +syn keyword mupadFunction Ellipsoid Spherical Sum Surface SurfaceSet +syn keyword mupadFunction SurfaceSTL Tetrahedron Hexahedron Octahedron +syn keyword mupadFunction Dodecahedron Icosahedron Text2d Text3d Tube Turtle +syn keyword mupadFunction VectorField2d XRotate ZRotate Canvas CoordinateSystem2d +syn keyword mupadFunction CoordinateSystem3d Group2d Group3d Scene2d Scene3d ClippingBox +syn keyword mupadFunction Rotate2d Rotate3d Scale2d Scale3d Transform2d +syn keyword mupadFunction Transform3d Translate2d Translate3d AmbientLight +syn keyword mupadFunction Camera DistantLight PointLight SpotLight + +" graphics Attributes +" graphics Output Attributes +syn keyword mupadIdentifier OutputFile OutputOptions +" graphics Defining Attributes +syn keyword mupadIdentifier Angle AngleRange AngleBegin AngleEnd +syn keyword mupadIdentifier Area Axis AxisX AxisY AxisZ Base Top +syn keyword mupadIdentifier BaseX TopX BaseY TopY BaseZ TopZ +syn keyword mupadIdentifier BaseRadius TopRadius Cells +syn keyword mupadIdentifier Center CenterX CenterY CenterZ +syn keyword mupadIdentifier Closed ColorData CommandList Contours CoordinateType +syn keyword mupadIdentifier Data DensityData DensityFunction From To +syn keyword mupadIdentifier FromX ToX FromY ToY FromZ ToZ +syn keyword mupadIdentifier Function FunctionX FunctionY FunctionZ +syn keyword mupadIdentifier Function1 Function2 Baseline +syn keyword mupadIdentifier Generations RotationAngle IterationRules StartRule StepLength +syn keyword mupadIdentifier TurtleRules Ground Heights Moves Inequalities +syn keyword mupadIdentifier InputFile Iterations StartingPoint +syn keyword mupadIdentifier LineColorFunction FillColorFunction +syn keyword mupadIdentifier Matrix2d Matrix3d +syn keyword mupadIdentifier MeshList MeshListType MeshListNormals +syn keyword mupadIdentifier MagneticQuantumNumber MomentumQuantumNumber PrincipalQuantumNumber +syn keyword mupadIdentifier Name Normal NormalX NormalY NormalZ +syn keyword mupadIdentifier ParameterName ParameterBegin ParameterEnd ParameterRange +syn keyword mupadIdentifier Points2d Points3d Radius RadiusFunction +syn keyword mupadIdentifier Position PositionX PositionY PositionZ +syn keyword mupadIdentifier Scale ScaleX ScaleY ScaleZ Shift ShiftX ShiftY ShiftZ +syn keyword mupadIdentifier SemiAxes SemiAxisX SemiAxisY SemiAxisZ +syn keyword mupadIdentifier Tangent1 Tangent1X Tangent1Y Tangent1Z +syn keyword mupadIdentifier Tangent2 Tangent2X Tangent2Y Tangent2Z +syn keyword mupadIdentifier Text TextOrientation TextRotation +syn keyword mupadIdentifier UName URange UMin UMax VName VRange VMin VMax +syn keyword mupadIdentifier XName XRange XMin XMax YName YRange YMin YMax +syn keyword mupadIdentifier ZName ZRange ZMin ZMax ViewingBox +syn keyword mupadIdentifier ViewingBoxXMin ViewingBoxXMax ViewingBoxXRange +syn keyword mupadIdentifier ViewingBoxYMin ViewingBoxYMax ViewingBoxYRange +syn keyword mupadIdentifier ViewingBoxZMin ViewingBoxZMax ViewingBoxZRange +syn keyword mupadIdentifier Visible +" graphics Axis Attributes +syn keyword mupadIdentifier Axes AxesInFront AxesLineColor AxesLineWidth +syn keyword mupadIdentifier AxesOrigin AxesOriginX AxesOriginY AxesOriginZ +syn keyword mupadIdentifier AxesTips AxesTitleAlignment +syn keyword mupadIdentifier AxesTitleAlignmentX AxesTitleAlignmentY AxesTitleAlignmentZ +syn keyword mupadIdentifier AxesTitles XAxisTitle YAxisTitle ZAxisTitle +syn keyword mupadIdentifier AxesVisible XAxisVisible YAxisVisible ZAxisVisible +syn keyword mupadIdentifier YAxisTitleOrientation +" graphics Tick Marks Attributes +syn keyword mupadIdentifier TicksAnchor XTicksAnchor YTicksAnchor ZTicksAnchor +syn keyword mupadIdentifier TicksAt XTicksAt YTicksAt ZTicksAt +syn keyword mupadIdentifier TicksBetween XTicksBetween YTicksBetween ZTicksBetween +syn keyword mupadIdentifier TicksDistance XTicksDistance YTicksDistance ZTicksDistance +syn keyword mupadIdentifier TicksNumber XTicksNumber YTicksNumber ZTicksNumber +syn keyword mupadIdentifier TicksVisible XTicksVisible YTicksVisible ZTicksVisible +syn keyword mupadIdentifier TicksLength TicksLabelStyle +syn keyword mupadIdentifier XTicksLabelStyle YTicksLabelStyle ZTicksLabelStyle +syn keyword mupadIdentifier TicksLabelsVisible +syn keyword mupadIdentifier XTicksLabelsVisible YTicksLabelsVisible ZTicksLabelsVisible +" graphics Grid Lines Attributes +syn keyword mupadIdentifier GridInFront GridLineColor SubgridLineColor +syn keyword mupadIdentifier GridLineStyle SubgridLineStyle GridLineWidth SubgridLineWidth +syn keyword mupadIdentifier GridVisible XGridVisible YGridVisible ZGridVisible +syn keyword mupadIdentifier SubgridVisible XSubgridVisible YSubgridVisible ZSubgridVisible +" graphics Animation Attributes +syn keyword mupadIdentifier Frames TimeRange TimeBegin TimeEnd +syn keyword mupadIdentifier VisibleAfter VisibleBefore VisibleFromTo +syn keyword mupadIdentifier VisibleAfterEnd VisibleBeforeBegin +" graphics Annotation Attributes +syn keyword mupadIdentifier Footer Header FooterAlignment HeaderAlignment +syn keyword mupadIdentifier HorizontalAlignment TitleAlignment VerticalAlignment +syn keyword mupadIdentifier Legend LegendEntry LegendText +syn keyword mupadIdentifier LegendAlignment LegendPlacement LegendVisible +syn keyword mupadIdentifier Title Titles +syn keyword mupadIdentifier TitlePosition TitlePositionX TitlePositionY TitlePositionZ +" graphics Layout Attributes +syn keyword mupadIdentifier Bottom Left Height Width Layout Rows Columns +syn keyword mupadIdentifier Margin BottomMargin TopMargin LeftMargin RightMargin +syn keyword mupadIdentifier OutputUnits Spacing +" graphics Calculation Attributes +syn keyword mupadIdentifier AdaptiveMesh DiscontinuitySearch Mesh SubMesh +syn keyword mupadIdentifier UMesh USubMesh VMesh VSubMesh +syn keyword mupadIdentifier XMesh XSubMesh YMesh YSubMesh Zmesh +" graphics Camera and Lights Attributes +syn keyword mupadIdentifier CameraCoordinates CameraDirection +syn keyword mupadIdentifier CameraDirectionX CameraDirectionY CameraDirectionZ +syn keyword mupadIdentifier FocalPoint FocalPointX FocalPointY FocalPointZ +syn keyword mupadIdentifier LightColor Lighting LightIntensity OrthogonalProjection +syn keyword mupadIdentifier SpotAngle ViewingAngle +syn keyword mupadIdentifier Target TargetX TargetY TargetZ +" graphics Presentation Style and Fonts Attributes +syn keyword mupadIdentifier ArrowLength +syn keyword mupadIdentifier AxesTitleFont FooterFont HeaderFont LegendFont +syn keyword mupadIdentifier TextFont TicksLabelFont TitleFont +syn keyword mupadIdentifier BackgroundColor BackgroundColor2 BackgroundStyle +syn keyword mupadIdentifier BackgroundTransparent Billboarding BorderColor BorderWidth +syn keyword mupadIdentifier BoxCenters BoxWidths DrawMode Gap XGap YGap +syn keyword mupadIdentifier Notched NotchWidth Scaling YXRatio ZXRatio +syn keyword mupadIdentifier VerticalAsymptotesVisible VerticalAsymptotesStyle +syn keyword mupadIdentifier VerticalAsymptotesColor VerticalAsymptotesWidth +" graphics Line Style Attributes +syn keyword mupadIdentifier LineColor LineColor2 LineColorType LineStyle +syn keyword mupadIdentifier LinesVisible ULinesVisible VLinesVisible XLinesVisible +syn keyword mupadIdentifier YLinesVisible LineWidth MeshVisible +" graphics Point Style Attributes +syn keyword mupadIdentifier PointColor PointSize PointStyle PointsVisible +" graphics Surface Style Attributes +syn keyword mupadIdentifier BarStyle Shadows Color Colors FillColor FillColor2 +syn keyword mupadIdentifier FillColorTrue FillColorFalse FillColorUnknown FillColorType +syn keyword mupadIdentifier Filled FillPattern FillPatterns FillStyle +syn keyword mupadIdentifier InterpolationStyle Shading UseNormals +" graphics Arrow Style Attributes +syn keyword mupadIdentifier TipAngle TipLength TipStyle TubeDiameter +syn keyword mupadIdentifier Tubular +" graphics meta-documentation Attributes +syn keyword mupadIdentifier objectGroupsListed + + +hi def link mupadComment Comment +hi def link mupadString String +hi def link mupadOperator Operator +hi def link mupadSpecial Special +hi def link mupadStatement Statement +hi def link mupadUnderlined Underlined +hi def link mupadConditional Conditional +hi def link mupadRepeat Repeat +hi def link mupadFunction Function +hi def link mupadType Type +hi def link mupadDefine Define +hi def link mupadIdentifier Identifier + +let b:current_syntax = 'mupad' + +" TODO More comprehensive listing. diff --git a/runtime/syntax/murphi.vim b/runtime/syntax/murphi.vim new file mode 100644 index 0000000..347e17f --- /dev/null +++ b/runtime/syntax/murphi.vim @@ -0,0 +1,126 @@ +" Vim syntax file +" Language: Murphi model checking language +" Maintainer: Matthew Fernandez +" Last Change: 2019 Aug 27 +" Version: 2 +" Remark: Originally authored by Diego Ongaro + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Keywords are case insensitive. +" Keep these in alphabetical order. +syntax case ignore +syn keyword murphiKeyword alias +syn keyword murphiStructure array +syn keyword murphiKeyword assert +syn keyword murphiKeyword begin +syn keyword murphiType boolean +syn keyword murphiKeyword by +syn keyword murphiLabel case +syn keyword murphiKeyword clear +syn keyword murphiLabel const +syn keyword murphiRepeat do +syn keyword murphiConditional else +syn keyword murphiConditional elsif +syn keyword murphiKeyword end +syn keyword murphiKeyword endalias +syn keyword murphiRepeat endexists +syn keyword murphiRepeat endfor +syn keyword murphiRepeat endforall +syn keyword murphiKeyword endfunction +syn keyword murphiConditional endif +syn keyword murphiKeyword endprocedure +syn keyword murphiStructure endrecord +syn keyword murphiKeyword endrule +syn keyword murphiKeyword endruleset +syn keyword murphiKeyword endstartstate +syn keyword murphiConditional endswitch +syn keyword murphiRepeat endwhile +syn keyword murphiStructure enum +syn keyword murphiKeyword error +syn keyword murphiRepeat exists +syn keyword murphiBoolean false +syn keyword murphiRepeat for +syn keyword murphiRepeat forall +syn keyword murphiKeyword function +syn keyword murphiConditional if +syn keyword murphiKeyword in +syn keyword murphiKeyword interleaved +syn keyword murphiLabel invariant +syn keyword murphiFunction ismember +syn keyword murphiFunction isundefined +syn keyword murphiKeyword log +syn keyword murphiStructure of +syn keyword murphiType multiset +syn keyword murphiFunction multisetadd +syn keyword murphiFunction multisetcount +syn keyword murphiFunction multisetremove +syn keyword murphiFunction multisetremovepred +syn keyword murphiKeyword procedure +syn keyword murphiKeyword program +syn keyword murphiKeyword put +syn keyword murphiStructure record +syn keyword murphiKeyword return +syn keyword murphiLabel rule +syn keyword murphiLabel ruleset +syn keyword murphiType scalarset +syn keyword murphiLabel startstate +syn keyword murphiConditional switch +syn keyword murphiConditional then +syn keyword murphiRepeat to +syn keyword murphiKeyword traceuntil +syn keyword murphiBoolean true +syn keyword murphiLabel type +syn keyword murphiKeyword undefine +syn keyword murphiStructure union +syn keyword murphiLabel var +syn keyword murphiRepeat while + +syn keyword murphiTodo contained todo xxx fixme +syntax case match + +" Integers. +syn match murphiNumber "\<\d\+\>" + +" Operators and special characters. +syn match murphiOperator "[\+\-\*\/%&|=!<>:\?]\|\." +syn match murphiDelimiter "\(:=\@!\|[;,]\)" +syn match murphiSpecial "[()\[\]]" + +" Double equal sign is a common error: use one equal sign for equality testing. +syn match murphiError "==[^>]"he=e-1 +" Double && and || are errors. +syn match murphiError "&&\|||" + +" Strings. This is defined so late so that it overrides previous matches. +syn region murphiString start=+"+ end=+"+ + +" Comments. This is defined so late so that it overrides previous matches. +syn region murphiComment start="--" end="$" contains=murphiTodo +syn region murphiComment start="/\*" end="\*/" contains=murphiTodo + +" Link the rules to some groups. +hi def link murphiComment Comment +hi def link murphiString String +hi def link murphiNumber Number +hi def link murphiBoolean Boolean +hi def link murphiIdentifier Identifier +hi def link murphiFunction Function +hi def link murphiStatement Statement +hi def link murphiConditional Conditional +hi def link murphiRepeat Repeat +hi def link murphiLabel Label +hi def link murphiOperator Operator +hi def link murphiKeyword Keyword +hi def link murphiType Type +hi def link murphiStructure Structure +hi def link murphiSpecial Special +hi def link murphiDelimiter Delimiter +hi def link murphiError Error +hi def link murphiTodo Todo + +let b:current_syntax = "murphi" diff --git a/runtime/syntax/mush.vim b/runtime/syntax/mush.vim new file mode 100644 index 0000000..efaae50 --- /dev/null +++ b/runtime/syntax/mush.vim @@ -0,0 +1,215 @@ +" MUSHcode syntax file +" Maintainer: Rick Bird +" Based on vim Syntax file by: Bek Oberin +" Last Updated: Fri Nov 04 20:28:15 2005 +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +" regular mush functions + +syntax keyword mushFunction contained @@ abs accent accname acos add after align +syntax keyword mushFunction contained allof alphamax alphamin and andflags +syntax keyword mushFunction contained andlflags andlpowers andpowers ansi aposs art +syntax keyword mushFunction contained asin atan atan2 atrlock attrcnt band baseconv +syntax keyword mushFunction contained beep before blank2tilde bnand bnot bor bound +syntax keyword mushFunction contained brackets break bxor cand cansee capstr case +syntax keyword mushFunction contained caseall cat ceil center checkpass children +syntax keyword mushFunction contained chr clone cmds cnetpost comp con config conn +syntax keyword mushFunction contained controls convsecs convtime convutcsecs cor +syntax keyword mushFunction contained cos create ctime ctu dec decrypt default +syntax keyword mushFunction contained delete die dig digest dist2d dist3d div +syntax keyword mushFunction contained division divscope doing downdiv dynhelp e +syntax keyword mushFunction contained edefault edit element elements elist elock +syntax keyword mushFunction contained emit empire empower encrypt endtag entrances +syntax keyword mushFunction contained eq escape etimefmt eval exit exp extract fdiv +syntax keyword mushFunction contained filter filterbool findable first firstof +syntax keyword mushFunction contained flags flip floor floordiv fmod fold +syntax keyword mushFunction contained folderstats followers following foreach +syntax keyword mushFunction contained fraction fullname functions get get_eval grab +syntax keyword mushFunction contained graball grep grepi gt gte hasattr hasattrp +syntax keyword mushFunction contained hasattrpval hasattrval hasdivpower hasflag +syntax keyword mushFunction contained haspower haspowergroup hastype height hidden +syntax keyword mushFunction contained home host hostname html idle idlesecs +syntax keyword mushFunction contained idle_average idle_times idle_total if ifelse +syntax keyword mushFunction contained ilev iname inc index indiv indivall insert +syntax keyword mushFunction contained inum ipaddr isdaylight isdbref isint isnum +syntax keyword mushFunction contained isword itemize items iter itext last lattr +syntax keyword mushFunction contained lcon lcstr ldelete ldivisions left lemit +syntax keyword mushFunction contained level lexits lflags link list lit ljust lmath +syntax keyword mushFunction contained ln lnum loc localize locate lock loctree log +syntax keyword mushFunction contained lparent lplayers lports lpos lsearch lsearchr +syntax keyword mushFunction contained lstats lt lte lthings lvcon lvexits lvplayers +syntax keyword mushFunction contained lvthings lwho mail maildstats mailfrom +syntax keyword mushFunction contained mailfstats mailstats mailstatus mailsubject +syntax keyword mushFunction contained mailtime map match matchall max mean median +syntax keyword mushFunction contained member merge mid min mix mod modulo modulus +syntax keyword mushFunction contained money mtime mudname mul munge mwho name nand +syntax keyword mushFunction contained nattr ncon nearby neq nexits next nor not +syntax keyword mushFunction contained nplayers nsemit nslemit nsoemit nspemit +syntax keyword mushFunction contained nsremit nszemit nthings null num nvcon +syntax keyword mushFunction contained nvexits nvplayers nvthings obj objeval objid +syntax keyword mushFunction contained objmem oemit ooref open or ord orflags +syntax keyword mushFunction contained orlflags orlpowers orpowers owner parent +syntax keyword mushFunction contained parse pcreate pemit pi pickrand playermem +syntax keyword mushFunction contained pmatch poll ports pos poss power powergroups +syntax keyword mushFunction contained powers powover program prompt pueblo quitprog +syntax keyword mushFunction contained quota r rand randword recv regedit regeditall +syntax keyword mushFunction contained regeditalli regediti regmatch regmatchi +syntax keyword mushFunction contained regrab regraball regraballi regrabi regrep +syntax keyword mushFunction contained regrepi remainder remit remove repeat replace +syntax keyword mushFunction contained rest restarts restarttime reswitch +syntax keyword mushFunction contained reswitchall reswitchalli reswitchi reverse +syntax keyword mushFunction contained revwords right rjust rloc rnum room root +syntax keyword mushFunction contained round s scan scramble search secs secure sent +syntax keyword mushFunction contained set setdiff setinter setq setr setunion sha0 +syntax keyword mushFunction contained shl shr shuffle sign signal sin sort sortby +syntax keyword mushFunction contained soundex soundlike soundslike space spellnum +syntax keyword mushFunction contained splice sql sqlescape sqrt squish ssl +syntax keyword mushFunction contained starttime stats stddev step strcat strinsert +syntax keyword mushFunction contained stripaccents stripansi strlen strmatch +syntax keyword mushFunction contained strreplace sub subj switch switchall t table +syntax keyword mushFunction contained tag tagwrap tan tel terminfo textfile +syntax keyword mushFunction contained tilde2blank time timefmt timestring tr +syntax keyword mushFunction contained trigger trim trimpenn trimtiny trunc type u +syntax keyword mushFunction contained ucstr udefault ufun uldefault ulocal updiv +syntax keyword mushFunction contained utctime v vadd val valid vcross vdim vdot +syntax keyword mushFunction contained version visible vmag vmax vmin vmul vsub +syntax keyword mushFunction contained vtattr vtcount vtcreate vtdestroy vtlcon +syntax keyword mushFunction contained vtloc vtlocate vtmaster vtname vtref vttel +syntax keyword mushFunction contained vunit wait where width wipe wordpos words +syntax keyword mushFunction contained wrap xcon xexits xget xor xplayers xthings +syntax keyword mushFunction contained xvcon xvexits xvplayers xvthings zemit zfun +syntax keyword mushFunction contained zmwho zone zwho + +" only highligh functions when they have an in-bracket immediately after +syntax match mushFunctionBrackets "\i*(" contains=mushFunction +" +" regular mush commands +syntax keyword mushAtCommandList contained @ALLHALT @ALLQUOTA @ASSERT @ATRCHOWN @ATRLOCK @ATTRIBUTE @BOOT +syntax keyword mushAtCommandList contained @BREAK @CEMIT @CHANNEL @CHAT @CHOWN @CHOWNALL @CHZONE @CHZONEALL +syntax keyword mushAtCommandList contained @CLOCK @CLONE @COBJ @COMMAND @CONFIG @CPATTR @CREATE @CRPLOG @DBCK +syntax keyword mushAtCommandList contained @DECOMPILE @DESTROY @DIG @DISABLE @DIVISION @DOING @DOLIST @DRAIN +syntax keyword mushAtCommandList contained @DUMP @EDIT @ELOCK @EMIT @EMPOWER @ENABLE @ENTRANCES @EUNLOCK @FIND +syntax keyword mushAtCommandList contained @FIRSTEXIT @FLAG @FORCE @FUNCTION @EDIT @GREP @HALT @HIDE @HOOK @KICK +syntax keyword mushAtCommandList contained @LEMIT @LEVEL @LINK @LIST @LISTMOTD @LOCK @LOG @LOGWIPE @LSET @MAIL @MALIAS +syntax keyword mushAtCommandList contained @MAP @MOTD @MVATTR @NAME @NEWPASSWORD @NOTIFY @NSCEMIT @NSEMIT @NSLEMIT +syntax keyword mushAtCommandList contained @NSOEMIT @NSPEMIT @NSPEMIT @NSREMIT @NSZEMIT @NUKE @OEMIT @OPEN @PARENT @PASSWORD +syntax keyword mushAtCommandList contained @PCREATE @PEMIT @POLL @POOR @POWERLEVEL @PROGRAM @PROMPT @PS @PURGE @QUOTA +syntax keyword mushAtCommandList contained @READCACHE @RECYCLE @REJECTMOTD @REMIT @RESTART @SCAN @SEARCH @SELECT @SET +syntax keyword mushAtCommandList contained @SHUTDOWN @SITELOCK @SNOOP @SQL @SQUOTA @STATS @SWITCH @SWEEP @SWITCH @TELEPORT +syntax keyword mushAtCommandList contained @TRIGGER @ULOCK @UNDESTROY @UNLINK @UNLOCK @UNRECYCLE @UPTIME @UUNLOCK @VERB +syntax keyword mushAtCommandList contained @VERSION @WAIT @WALL @WARNINGS @WCHECK @WHEREIS @WIPE @ZCLONE @ZEMIT +syntax match mushCommand "@\i\I*" contains=mushAtCommandList + + +syntax keyword mushCommand AHELP ANEWS ATTRIB_SET BRIEF BRIEF BUY CHANGES DESERT +syntax keyword mushCommand DISMISS DROP EMPTY ENTER EXAMINE FOLLOW GET GIVE GOTO +syntax keyword mushCommand HELP HUH_COMMAND INVENTORY INVENTORY LOOK LEAVE LOOK +syntax keyword mushCommand GOTO NEWS PAGE PAGE POSE RULES SAY SCORE SEMIPOSE +syntax keyword mushCommand SPECIALNEWS TAKE TEACH THINK UNFOLLOW USE WHISPER WHISPER +syntax keyword mushCommand WARN_ON_MISSING WHISPER WITH + +syntax match mushSpecial "\*\|!\|=\|-\|\\\|+" +syntax match mushSpecial2 contained "\*" + +syn region mushString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=mushSpecial,mushSpecial2,@Spell + + +syntax match mushIdentifier "&[^ ]\+" + +syntax match mushVariable "%r\|%t\|%cr\|%[A-Za-z0-9]\+\|%#\|##\|here" + +" numbers +syntax match mushNumber +[0-9]\++ + +" A comment line starts with a or # or " at the start of the line +" or an @@ +syntax keyword mushTodo contained TODO FIXME XXX +syntax cluster mushCommentGroup contains=mushTodo +syntax match mushComment "^\s*@@.*$" contains=mushTodo +syntax match mushComment "^#[^define|^ifdef|^else|^pragma|^ifndef|^echo|^elif|^undef|^warning].*$" contains=mushTodo +syntax match mushComment "^#$" contains=mushTodo +syntax region mushComment matchgroup=mushCommentStart start="/@@" end="@@/" contains=@mushCommentGroup,mushCommentStartError,mushCommentString,@Spell +syntax region mushCommentString contained start=+L\=\\\@" skip="\\$" end="$" end="//"me=s-1 contains=mushComment +syn match mushPreCondit display "^\s*\(%:\|#\)\s*\(else\|endif\)\>" + +syn cluster mushPreProcGroup contains=mushPreCondit,mushIncluded,mushInclude,mushDefine,mushSpecial,mushString,mushCommentSkip,mushCommentString,@mushCommentGroup,mushCommentStartError + +syn region mushIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match mushIncluded display contained "<[^>]*>" +syn match mushInclude display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=mushIncluded +syn region mushDefine start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@mushPreProcGroup,@Spell +syn region mushPreProc start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@mushPreProcGroup + + +syntax region mushFuncBoundaries start="\[" end="\]" contains=mushFunction,mushFlag,mushAttributes,mushNumber,mushCommand,mushVariable,mushSpecial2 + +" FLAGS +syntax keyword mushFlag PLAYER ABODE BUILDER CHOWN_OK DARK FLOATING +syntax keyword mushFlag GOING HAVEN INHERIT JUMP_OK KEY LINK_OK MONITOR +syntax keyword mushFlag NOSPOOF OPAQUE QUIET STICKY TRACE UNFINDABLE VISUAL +syntax keyword mushFlag WIZARD PARENT_OK ZONE AUDIBLE CONNECTED DESTROY_OK +syntax keyword mushFlag ENTER_OK HALTED IMMORTAL LIGHT MYOPIC PUPPET TERSE +syntax keyword mushFlag ROBOT SAFE TRANSPARENT VERBOSE CONTROL_OK COMMANDS + +syntax keyword mushAttribute aahear aclone aconnect adesc adfail adisconnect +syntax keyword mushAttribute adrop aefail aenter afail agfail ahear akill +syntax keyword mushAttribute aleave alfail alias amhear amove apay arfail +syntax keyword mushAttribute asucc atfail atport aufail ause away charges +syntax keyword mushAttribute cost desc dfail drop ealias efail enter fail +syntax keyword mushAttribute filter forwardlist gfail idesc idle infilter +syntax keyword mushAttribute inprefix kill lalias last lastsite leave lfail +syntax keyword mushAttribute listen move odesc odfail odrop oefail oenter +syntax keyword mushAttribute ofail ogfail okill oleave olfail omove opay +syntax keyword mushAttribute orfail osucc otfail otport oufail ouse oxenter +syntax keyword mushAttribute oxleave oxtport pay prefix reject rfail runout +syntax keyword mushAttribute semaphore sex startup succ tfail tport ufail +syntax keyword mushAttribute use va vb vc vd ve vf vg vh vi vj vk vl vm vn +syntax keyword mushAttribute vo vp vq vr vs vt vu vv vw vx vy vz + + + +" The default methods for highlighting. Can be overridden later +hi def link mushAttribute Constant +hi def link mushCommand Function +hi def link mushNumber Number +hi def link mushSetting PreProc +hi def link mushFunction Statement +hi def link mushVariable Identifier +hi def link mushSpecial Special +hi def link mushTodo Todo +hi def link mushFlag Special +hi def link mushIdentifier Identifier +hi def link mushDefine Macro +hi def link mushPreProc PreProc +hi def link mushPreProcGroup PreProc +hi def link mushPreCondit PreCondit +hi def link mushIncluded cString +hi def link mushInclude Include + + + +" Comments +hi def link mushCommentStart mushComment +hi def link mushComment Comment +hi def link mushCommentString mushString + + + +let b:current_syntax = "mush" + +" mush: ts=17 diff --git a/runtime/syntax/muttrc.vim b/runtime/syntax/muttrc.vim new file mode 100644 index 0000000..bf53a42 --- /dev/null +++ b/runtime/syntax/muttrc.vim @@ -0,0 +1,846 @@ +" Vim syntax file +" Language: Mutt setup files +" Original: Preben 'Peppe' Guldberg +" Maintainer: Luna Celeste +" Last Change: 14 Aug 2023 + +" This file covers mutt version 2.2.10 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Set the keyword characters +setlocal isk=@,48-57,_,- + +" handling optional variables +if !exists("use_mutt_sidebar") + let use_mutt_sidebar=0 +endif + +syn match muttrcComment "^# .*$" contains=@Spell +syn match muttrcComment "^#[^ ].*$" +syn match muttrcComment "^#$" +syn match muttrcComment "[^\\]#.*$"lc=1 + +" Escape sequences (back-tick and pipe goes here too) +syn match muttrcEscape +\\[#tnr"'Cc ]+ +syn match muttrcEscape +[`|]+ +syn match muttrcEscape +\\$+ + +" The variables takes the following arguments +"syn match muttrcString contained "=\s*[^ #"'`]\+"lc=1 contains=muttrcEscape +syn region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString +syn region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction +syn match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL + +syn region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand + +syn match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1 +syn match muttrcRXChars contained /[][|()][.*?+]*/ +syn match muttrcRXChars contained /['"]^/ms=s+1 +syn match muttrcRXChars contained /$['"]/me=e-1 +syn match muttrcRXChars contained /\\/ +" Why does muttrcRXString2 work with one \ when muttrcRXString requires two? +syn region muttrcRXString contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars +syn region muttrcRXString contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars +syn region muttrcRXString contained skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars +" For some reason, skip refuses to match backslashes here... +syn region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars +syn region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars +syn region muttrcRXString2 contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars +syn region muttrcRXString2 contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars + +" these must be kept synchronized with muttrcRXString, but are intended for +" muttrcRXHooks +syn region muttrcRXHookString contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syn region muttrcRXHookString contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syn region muttrcRXHookString contained keepend skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syn region muttrcRXHookString contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syn region muttrcRXHookString contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syn match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL + +" these are exclusively for args lists (e.g. -rx pat pat pat ...) +syn region muttrcRXPat contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat +syn region muttrcRXPat contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat +syn match muttrcRXPat contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat +syn match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat + +syn match muttrcSpecial +\(['"]\)!\1+ + +syn match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString +syn region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString +syn match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syn match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syn match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syn match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" Now catch some email addresses and headers (purified version from mail.vim) +syn match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+" +syn match muttrcHeader "\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\=" + +syn match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+ +syn match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName +syn region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName +syn region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName +syn match muttrcKeyName contained "\" +syn match muttrcKeyName contained "\\[trne]" +syn match muttrcKeyName contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>" +syn match muttrcKeyName contained "" + +syn keyword muttrcVarBool skipwhite contained + \ allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split + \ auto_tag autoedit auto_subscribe background_edit background_confirm_quit beep beep_new + \ bounce_delivered braille_friendly browser_abbreviate_mailboxes browser_sticky_cursor + \ change_folder_next check_mbox_size check_new collapse_unread compose_confirm_detach_first + \ confirmappend confirmcreate copy_decode_weed count_alternatives crypt_autoencrypt crypt_autopgp + \ crypt_autosign crypt_autosmime crypt_confirmhook crypt_protected_headers_read + \ crypt_protected_headers_save crypt_protected_headers_write crypt_opportunistic_encrypt + \ crypt_opportunistic_encrypt_strong_keys crypt_replyencrypt crypt_replysign + \ crypt_replysignencrypted crypt_timestamp crypt_use_gpgme crypt_use_pka cursor_overlay + \ delete_untag digest_collapse duplicate_threads edit_hdrs edit_headers encode_from + \ envelope_from fast_reply fcc_before_send fcc_clear flag_safe followup_to force_name forw_decode + \ forw_decrypt forw_quote forward_decode forward_quote hdrs header + \ header_color_partial help hidden_host hide_limited hide_missing hide_thread_subject + \ hide_top_limited hide_top_missing history_remove_dups honor_disposition idn_decode idn_encode + \ ignore_linear_white_space ignore_list_reply_to imap_check_subscribed imap_condstore imap_deflate + \ imap_list_subscribed imap_passive imap_peek imap_qresync imap_servernoise + \ implicit_autoview include_encrypted include_onlyfirst keep_flagged local_date_header + \ mail_check_recent mail_check_stats mailcap_sanitize maildir_check_cur + \ maildir_header_cache_verify maildir_trash mark_old markers menu_move_off + \ menu_scroll message_cache_clean meta_key metoo mh_purge mime_forward_decode + \ mime_type_query_first muttlisp_inline_eval narrow_tree pager_stop pgp_auto_decode + \ pgp_auto_traditional pgp_autoencrypt pgp_autoinline pgp_autosign + \ pgp_check_exit pgp_check_gpg_decrypt_status_fd pgp_create_traditional + \ pgp_ignore_subkeys pgp_long_ids pgp_replyencrypt pgp_replyinline + \ pgp_replysign pgp_replysignencrypted pgp_retainable_sigs pgp_self_encrypt + \ pgp_self_encrypt_as pgp_show_unusable pgp_strict_enc pgp_use_gpg_agent + \ pipe_decode pipe_decode_weed pipe_split pop_auth_try_all pop_last postpone_encrypt + \ postpone_encrypt_as print_decode print_decode_weed print_split prompt_after read_only + \ reflow_space_quotes reflow_text reflow_wrap reply_self resolve + \ resume_draft_files resume_edited_draft_files reverse_alias reverse_name + \ reverse_realname rfc2047_parameters save_address save_empty save_name score + \ sidebar_folder_indent sidebar_new_mail_only sidebar_next_new_wrap + \ sidebar_relative_shortpath_indent sidebar_short_path sidebar_sort sidebar_use_mailbox_shortcuts + \ sidebar_visible sig_on_top sig_dashes size_show_bytes size_show_fraction size_show_mb + \ size_units_on_left smart_wrap smime_ask_cert_label smime_decrypt_use_default_key + \ smime_is_default smime_self_encrypt smime_self_encrypt_as sort_re + \ ssl_force_tls ssl_use_sslv2 ssl_use_sslv3 ssl_use_tlsv1 ssl_use_tlsv1_3 ssl_usesystemcerts + \ ssl_verify_dates ssl_verify_host ssl_verify_partial_chains status_on_top + \ strict_mime strict_threads suspend text_flowed thorough_search + \ thread_received tilde ts_enabled tunnel_is_secure uncollapse_jump use_8bitmime use_domain + \ use_envelope_from use_from use_idn use_ipv6 uncollapse_new user_agent + \ wait_key weed wrap_search write_bcc + \ nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcVarBool skipwhite contained + \ noallow_8bit noallow_ansi noarrow_cursor noascii_chars noaskbcc noaskcc + \ noattach_split noauto_tag noautoedit noauto_subscribe nobackground_edit + \ nobackground_confirm_quit nobeep nobeep_new nobounce_delivered + \ nobraille_friendly nobrowser_abbreviate_mailboxes nobrowser_sticky_cursor nochange_folder_next + \ nocheck_mbox_size nocheck_new nocompose_confirm_detach_first nocollapse_unread noconfirmappend + \ noconfirmcreate nocopy_decode_weed nocount_alternatives nocrypt_autoencrypt nocrypt_autopgp + \ nocrypt_autosign nocrypt_autosmime nocrypt_confirmhook nocrypt_protected_headers_read + \ nocrypt_protected_headers_save nocrypt_protected_headers_write nocrypt_opportunistic_encrypt + \ nocrypt_opportunistic_encrypt_strong_keys nocrypt_replyencrypt nocrypt_replysign + \ nocrypt_replysignencrypted nocrypt_timestamp nocrypt_use_gpgme nocrypt_use_pka nocursor_overlay + \ nodelete_untag nodigest_collapse noduplicate_threads noedit_hdrs noedit_headers + \ noencode_from noenvelope_from nofast_reply nofcc_before_send nofcc_clear noflag_safe + \ nofollowup_to noforce_name noforw_decode noforw_decrypt noforw_quote + \ noforward_decode noforward_quote nohdrs noheader + \ noheader_color_partial nohelp nohidden_host nohide_limited nohide_missing + \ nohide_thread_subject nohide_top_limited nohide_top_missing + \ nohistory_remove_dups nohonor_disposition noidn_decode noidn_encode + \ noignore_linear_white_space noignore_list_reply_to noimap_check_subscribed + \ noimap_condstore noimap_deflate noimap_list_subscribed noimap_passive noimap_peek + \ noimap_qresync noimap_servernoise noimplicit_autoview noinclude_encrypted noinclude_onlyfirst + \ nokeep_flagged nolocal_date_header nomail_check_recent nomail_check_stats nomailcap_sanitize + \ nomaildir_check_cur nomaildir_header_cache_verify nomaildir_trash nomark_old + \ nomarkers nomenu_move_off nomenu_scroll nomessage_cache_clean nometa_key + \ nometoo nomh_purge nomime_forward_decode nomime_type_query_first nomuttlisp_inline_eval + \ nonarrow_tree nopager_stop nopgp_auto_decode nopgp_auto_traditional nopgp_autoencrypt + \ nopgp_autoinline nopgp_autosign nopgp_check_exit + \ nopgp_check_gpg_decrypt_status_fd nopgp_create_traditional + \ nopgp_ignore_subkeys nopgp_long_ids nopgp_replyencrypt nopgp_replyinline + \ nopgp_replysign nopgp_replysignencrypted nopgp_retainable_sigs + \ nopgp_self_encrypt nopgp_self_encrypt_as nopgp_show_unusable + \ nopgp_strict_enc nopgp_use_gpg_agent nopipe_decode nopipe_decode_weed nopipe_split + \ nopop_auth_try_all nopop_last nopostpone_encrypt nopostpone_encrypt_as + \ noprint_decode noprint_decode_weed noprint_split noprompt_after noread_only + \ noreflow_space_quotes noreflow_text noreflow_wrap noreply_self noresolve + \ noresume_draft_files noresume_edited_draft_files noreverse_alias + \ noreverse_name noreverse_realname norfc2047_parameters nosave_address + \ nosave_empty nosave_name noscore nosidebar_folder_indent + \ nosidebar_new_mail_only nosidebar_next_new_wrap nosidebar_relative_shortpath_indent + \ nosidebar_short_path nosidebar_sort nosidebar_visible nosidebar_use_mailbox_shortcuts + \ nosig_dashes nosig_on_top nosize_show_bytes nosize_show_fraction nosize_show_mb + \ nosize_units_on_left nosmart_wrap nosmime_ask_cert_label nosmime_decrypt_use_default_key + \ nosmime_is_default nosmime_self_encrypt nosmime_self_encrypt_as nosort_re nossl_force_tls + \ nossl_use_sslv2 nossl_use_sslv3 nossl_use_tlsv1 nossl_use_tlsv1_3 nossl_usesystemcerts + \ nossl_verify_dates nossl_verify_host nossl_verify_partial_chains + \ nostatus_on_top nostrict_mime nostrict_threads nosuspend notext_flowed + \ nothorough_search nothread_received notilde nots_enabled notunnel_is_secure nouncollapse_jump + \ nouse_8bitmime nouse_domain nouse_envelope_from nouse_from nouse_idn + \ nouse_ipv6 nouncollapse_new nouser_agent nowait_key noweed nowrap_search + \ nowrite_bcc + \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcVarBool skipwhite contained + \ invallow_8bit invallow_ansi invarrow_cursor invascii_chars invaskbcc + \ invaskcc invattach_split invauto_tag invautoedit invauto_subscribe nobackground_edit + \ nobackground_confirm_quit invbeep invbeep_new invbounce_delivered invbraille_friendly + \ invbrowser_abbreviate_mailboxes invbrowser_sticky_cursor invchange_folder_next + \ invcheck_mbox_size invcheck_new invcollapse_unread invcompose_confirm_detach_first + \ invconfirmappend invcopy_decode_weed invconfirmcreate invcount_alternatives invcrypt_autopgp + \ invcrypt_autoencrypt invcrypt_autosign invcrypt_autosmime invcrypt_confirmhook + \ invcrypt_protected_headers_read invcrypt_protected_headers_save invcrypt_protected_headers_write + \ invcrypt_opportunistic_encrypt invcrypt_opportunistic_encrypt_strong_keys invcrypt_replysign + \ invcrypt_replyencrypt invcrypt_replysignencrypted invcrypt_timestamp invcrypt_use_gpgme + \ invcrypt_use_pka invcursor_overlay invdelete_untag invdigest_collapse invduplicate_threads + \ invedit_hdrs invedit_headers invencode_from invenvelope_from invfast_reply + \ invfcc_before_send invfcc_clear invflag_safe invfollowup_to invforce_name invforw_decode + \ invforw_decrypt invforw_quote invforward_decode + \ invforward_quote invhdrs invheader invheader_color_partial invhelp + \ invhidden_host invhide_limited invhide_missing invhide_thread_subject + \ invhide_top_limited invhide_top_missing invhistory_remove_dups + \ invhonor_disposition invidn_decode invidn_encode + \ invignore_linear_white_space invignore_list_reply_to + \ invimap_check_subscribed invimap_condstore invimap_deflate invimap_list_subscribed + \ invimap_passive invimap_peek invimap_qresync invimap_servernoise invimplicit_autoview + \ invinclude_encrypted invinclude_onlyfirst invkeep_flagged invlocal_date_header + \ invmail_check_recent invmail_check_stats invmailcap_sanitize invmaildir_check_cur + \ invmaildir_header_cache_verify invmaildir_trash invmark_old invmarkers invmenu_move_off + \ invmenu_scroll invmessage_cache_clean invmeta_key invmetoo invmh_purge + \ invmime_forward_decode invmime_type_query_first invmuttlisp_inline_eval invnarrow_tree + \ invpager_stop invpgp_auto_decode invpgp_auto_traditional invpgp_autoencrypt + \ invpgp_autoinline invpgp_autosign invpgp_check_exit + \ invpgp_check_gpg_decrypt_status_fd invpgp_create_traditional + \ invpgp_ignore_subkeys invpgp_long_ids invpgp_replyencrypt invpgp_replyinline + \ invpgp_replysign invpgp_replysignencrypted invpgp_retainable_sigs + \ invpgp_self_encrypt invpgp_self_encrypt_as invpgp_show_unusable + \ invpgp_strict_enc invpgp_use_gpg_agent invpipe_decode invpipe_decode_weed invpipe_split + \ invpop_auth_try_all invpop_last invpostpone_encrypt invpostpone_encrypt_as + \ invprint_decode invprint_decode_weed invprint_split invprompt_after invread_only + \ invreflow_space_quotes invreflow_text invreflow_wrap invreply_self invresolve + \ invresume_draft_file sinvresume_edited_draft_files invreverse_alias + \ invreverse_name invreverse_realname invrfc2047_parameters invsave_address + \ invsave_empty invsave_name invscore invsidebar_folder_indent + \ invsidebar_new_mail_only invsidebar_next_new_wrap invsidebar_relative_shortpath_indent + \ invsidebar_short_path invsidebar_sort sidebar_use_mailbox_shortcuts invsidebar_visible + \ invsig_dashes invsig_on_top invsize_show_bytes invsize_show_fraction invsize_show_mb + \ invsize_units_on_left invsmart_wrap invsmime_ask_cert_label invsmime_decrypt_use_default_key + \ invsmime_is_default invsmime_self_encrypt invsmime_self_encrypt_as invsort_re invssl_force_tls + \ invssl_use_sslv2 invssl_use_sslv3 invssl_use_tlsv1 invssl_use_tlsv1_3 invssl_usesystemcerts + \ invssl_verify_dates invssl_verify_host invssl_verify_partial_chains + \ invstatus_on_top invstrict_mime invstrict_threads invsuspend invtext_flowed + \ invthorough_search invthread_received invtilde invts_enabled invtunnel_is_secure + \ invuncollapse_jump invuse_8bitmime invuse_domain invuse_envelope_from + \ invuse_from invuse_idn invuse_ipv6 invuncollapse_new invuser_agent + \ invwait_key invweed invwrap_search invwrite_bcc + \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcVarQuad skipwhite contained + \ abort_nosubject abort_unmodified abort_noattach bounce copy crypt_verify_sig + \ delete fcc_attach forward_attachments forward_decrypt forward_edit honor_followup_to include + \ mime_forward mime_forward_rest mime_fwd move pgp_mime_auto pgp_verify_sig pop_delete + \ pop_reconnect postpone print quit recall reply_to send_multipart_alternative ssl_starttls + \ nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcVarQuad skipwhite contained + \ noabort_nosubject noabort_unmodified noabort_noattach nobounce nocopy + \ nocrypt_verify_sig nodelete nofcc_attach noforward_attachments noforward_decrypt noforward_edit + \ nohonor_followup_to noinclude nomime_forward nomime_forward_rest nomime_fwd nomove + \ nopgp_mime_auto nopgp_verify_sig nopop_delete nopop_reconnect nopostpone + \ noprint noquit norecall noreply_to nosend_multipart_alternative nossl_starttls + \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcVarQuad skipwhite contained + \ invabort_nosubject invabort_unmodified invabort_noattach invbounce invcopy + \ invcrypt_verify_sig invdelete invfcc_attach invforward_attachments invforward_decrypt + \ invforward_edit invhonor_followup_to invinclude invmime_forward invmime_forward_rest + \ invmime_fwd invmove invpgp_mime_auto invpgp_verify_sig invpop_delete + \ invpop_reconnect invpostpone invprint invquit invrecall invreply_to + \ invsend_multipart_alternative invssl_starttls + \ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcVarNum skipwhite contained + \ connect_timeout error_history history imap_fetch_chunk_size imap_keepalive imap_pipeline_depth + \ imap_poll_timeout mail_check mail_check_stats_interval menu_context net_inc + \ pager_context pager_index_lines pager_skip_quoted_context pgp_timeout pop_checkinterval read_inc + \ save_history score_threshold_delete score_threshold_flag + \ score_threshold_read search_context sendmail_wait sidebar_width sleep_time + \ smime_timeout ssl_min_dh_prime_bits time_inc timeout wrap wrap_headers + \ wrapmargin write_inc + \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn match muttrcFormatErrors contained /%./ + +syn match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/ +syn match muttrcStrftimeEscapes contained /%E[cCxXyY]/ +syn match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/ + +syn region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcPGPGetKeysFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPGetKeysFormatEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" The following info was pulled from hdr_format_str in hdrline.c +syn match muttrcIndexFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[aAbBcCdDeEfFHilLmMnNOPsStTuvXyYZ%]/ +syn match muttrcIndexFormatEscapes contained /%[>|*]./ +syn match muttrcIndexFormatConditionals contained /%?[EFHlLMNOXyY]?/ nextgroup=muttrcFormatConditionals2 +" The following info was pulled from alias_format_str in addrbook.c +syn match muttrcAliasFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[afnrt%]/ +" The following info was pulled from query_format_str in query.c +syn match muttrcQueryFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[acent%]/ +syn match muttrcQueryFormatConditionals contained /%?[e]?/ nextgroup=muttrcFormatConditionals2 +" The following info was pulled from mutt_attach_fmt in recvattach.c +syn match muttrcAttachFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CcDdeFfImMnQstTuX%]/ +syn match muttrcAttachFormatEscapes contained /%[>|*]./ +syn match muttrcAttachFormatConditionals contained /%?[CcdDefInmMQstTuX]?/ nextgroup=muttrcFormatConditionals2 +syn match muttrcFormatConditionals2 contained /[^?]*?/ +" The following info was pulled from compose_format_str in compose.c +syn match muttrcComposeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ahlv%]/ +syn match muttrcComposeFormatEscapes contained /%[>|*]./ +" The following info was pulled from folder_format_str in browser.c +syn match muttrcFolderFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[CDdfFglNstu%]/ +syn match muttrcFolderFormatEscapes contained /%[>|*]./ +syn match muttrcFolderFormatConditionals contained /%?[N]?/ +" The following info was pulled from mix_entry_fmt in remailer.c +syn match muttrcMixFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[ncsa%]/ +syn match muttrcMixFormatConditionals contained /%?[ncsa]?/ +" The following info was pulled from crypt_entry_fmt in crypt-gpgme.c +" and pgp_entry_fmt in pgpkey.c (note that crypt_entry_fmt supports +" 'p', but pgp_entry_fmt does not). +syn match muttrcPGPFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[nkualfctp%]/ +syn match muttrcPGPFormatConditionals contained /%?[nkualfct]?/ +" The following info was pulled from _mutt_fmt_pgp_command in +" pgpinvoke.c +syn match muttrcPGPCmdFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[pfsar%]/ +syn match muttrcPGPCmdFormatConditionals contained /%?[pfsar]?/ nextgroup=muttrcFormatConditionals2 +" The following info was pulled from status_format_str in status.c +syn match muttrcStatusFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[bdfFhlLmMnopPRrsStuvV%]/ +syn match muttrcStatusFormatEscapes contained /%[>|*]./ +syn match muttrcStatusFormatConditionals contained /%?[bdFlLmMnoptuV]?/ nextgroup=muttrcFormatConditionals2 +" This matches the documentation, but directly contradicts the code +" (according to the code, this should be identical to the +" muttrcPGPCmdFormatEscapes +syn match muttrcPGPGetKeysFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[r%]/ +" The following info was pulled from _mutt_fmt_smime_command in +" smime.c +syn match muttrcSmimeFormatEscapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?[Cciskaf%]/ +syn match muttrcSmimeFormatConditionals contained /%?[Cciskaf]?/ nextgroup=muttrcFormatConditionals2 + +syn region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes +syn region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes +syn region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes +syn region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes +syn region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes + +syn keyword muttrcVarStr contained skipwhite attribution index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt +syn match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr +syn keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt +syn match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr +syn keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt +syn match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr +syn keyword muttrcVarStr contained skipwhite background_format nextgroup=muttrcVarEqualsBackgroundFormatFmt +syn match muttrcVarEqualsBackgroundFormatFmt contained skipwhite "=" nextgroup=muttrcBackgroundFormatStr +syn keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt +syn match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr +syn keyword muttrcVarStr contained skipwhite folder_format nextgroup=muttrcVarEqualsFolderFmt +syn match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr +syn keyword muttrcVarStr contained skipwhite message_id_format nextgroup=muttrcVarEqualsMessageIdFmt +syn match muttrcVarEqualsMessageIdFmt contained skipwhite "=" nextgroup=muttrcMessageIdFormatStr +syn keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt +syn match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr +syn keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt +syn match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr +syn keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt +syn match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr +syn keyword muttrcVarStr contained skipwhite pgp_decode_command pgp_verify_command pgp_decrypt_command pgp_clearsign_command pgp_sign_command pgp_encrypt_sign_command pgp_encrypt_only_command pgp_import_command pgp_export_command pgp_verify_key_command pgp_list_secring_command pgp_list_pubring_command nextgroup=muttrcVarEqualsPGPCmdFmt +syn match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr +syn keyword muttrcVarStr contained skipwhite ts_icon_format ts_status_format status_format nextgroup=muttrcVarEqualsStatusFmt +syn match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr +syn keyword muttrcVarStr contained skipwhite pgp_getkeys_command nextgroup=muttrcVarEqualsPGPGetKeysFmt +syn match muttrcVarEqualsPGPGetKeysFmt contained skipwhite "=" nextgroup=muttrcPGPGetKeysFormatStr +syn keyword muttrcVarStr contained skipwhite smime_decrypt_command smime_verify_command smime_verify_opaque_command smime_sign_command smime_sign_opaque_command smime_encrypt_command smime_pk7out_command smime_get_cert_command smime_get_signer_cert_command smime_import_cert_command smime_get_cert_email_command nextgroup=muttrcVarEqualsSmimeFmt +syn match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr +syn keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt +syn match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr + +syn match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn keyword muttrcVarStr contained skipwhite + \ abort_noattach_regexp alias_file assumed_charset attach_charset attach_save_dir attach_sep + \ attribution_locale certificate_file charset config_charset content_type + \ crypt_protected_headers_subject default_hook display_filter dotlock_program dsn_notify + \ dsn_return editor entropy_file envelope_from_address escape fcc_delimiter folder forw_format + \ forward_attribution_intro forward_attribution_trailer forward_format from gecos_mask + \ hdr_format header_cache header_cache_compress header_cache_pagesize history_file + \ hostname imap_authenticators imap_delim_chars imap_headers imap_idle imap_login + \ imap_oauth_refresh_command imap_pass imap_user indent_str indent_string ispell locale + \ mailcap_pat hmark_macro_prefix mask mbox mbox_type message_cachedir mh_seq_flagged + \ mh_seq_replied mh_seq_unseen mime_type_query_command mixmaster msg_format new_mail_command + \ pager pgp_default_key pgp_decryption_okay pgp_good_sign pgp_mime_signature_description + \ pgp_mime_signature_filename pgp_sign_as pgp_sort_keys pipe_sep pop_authenticators + \ pop_host pop_oauth_refresh_command pop_pass pop_user post_indent_str post_indent_string + \ postpone_encrypt_as postponed preconnect print_cmd print_command query_command + \ quote_regexp realname record reply_regexp send_charset send_multipart_alternative_filter + \ sendmail shell sidebar_delim + \ sidebar_delim_chars sidebar_divider_char sidebar_format sidebar_indent_string + \ sidebar_sort_method signature simple_search smileys smime_ca_location smime_certificates + \ smime_default_key smime_encrypt_with smime_keys smime_sign_as smime_sign_digest_alg + \ smtp_authenticators smtp_oauth_refresh_command smtp_pass smtp_url sort sort_alias + \ sort_aux sort_browser sort_thread_groups spam_separator spoolfile ssl_ca_certificates_file + \ ssl_ciphers ssl_client_cert ssl_verify_host_override status_chars tmpdir to_chars trash + \ ts_icon_format ts_status_format tunnel visual + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" Present in 1.4.2.1 (pgp_create_traditional was a bool then) +syn keyword muttrcVarBool contained skipwhite imap_force_ssl noimap_force_ssl invimap_force_ssl nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +"syn keyword muttrcVarQuad contained pgp_create_traditional nopgp_create_traditional invpgp_create_traditional +syn keyword muttrcVarStr contained skipwhite alternates nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +syn keyword muttrcMenu contained alias attach browser compose editor index pager postpone pgp mix query generic +syn match muttrcMenuList "\S\+" contained contains=muttrcMenu +syn match muttrcMenuCommas /,/ contained + +syn keyword muttrcHooks contained skipwhite account-hook charset-hook iconv-hook index-format-hook message-hook folder-hook mbox-hook save-hook fcc-hook fcc-save-hook send-hook send2-hook reply-hook crypt-hook + +syn keyword muttrcCommand skipwhite + \ alternative_order auto_view cd exec hdr_order iconv-hook ignore index-format-hook mailboxes + \ mailto_allow mime_lookup my_hdr pgp-hook push run score sidebar_whitelist source + \ unalternative_order unalternative_order unauto_view ungroup unhdr_order + \ unignore unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore + \ unsidebar_whitelist +syn keyword muttrcCommand skipwhite charset-hook nextgroup=muttrcRXString +syn keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks + +syn keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern +syn region muttrcSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL +syn region muttrcSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL + +syn keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern +syn region muttrcNoSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern +syn region muttrcNoSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern + +syn match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType +syn match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType +syn match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag + +syn match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)" + +syn keyword muttrcAsterisk contained * +syn keyword muttrcListsKeyword lists skipwhite nextgroup=muttrcGroupDef,muttrcComment +syn keyword muttrcListsKeyword unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment + +syn keyword muttrcSubscribeKeyword subscribe nextgroup=muttrcGroupDef,muttrcComment +syn keyword muttrcSubscribeKeyword unsubscribe nextgroup=muttrcAsterisk,muttrcComment + +syn keyword muttrcAlternateKeyword contained alternates unalternates +syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment + +" muttrcVariable includes a prefix because partial strings are considered +" valid. +syn match muttrcVariable contained "\\\@]\+" contains=muttrcEmail +syn match muttrcFunction contained "\<\%(attach\|bounce\|copy\|delete\|display\|flag\|forward\|mark\|parent\|pipe\|postpone\|print\|purge\|recall\|resend\|root\|save\|send\|tag\|undelete\)-message\>" +syn match muttrcFunction contained "\<\%(delete\|next\|previous\|read\|tag\|break\|undelete\)-thread\>" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\<\%(backward\|capitalize\|downcase\|forward\|kill\|upcase\)-word\>" +syn match muttrcFunction contained "\<\%(delete\|filter\|first\|last\|next\|pipe\|previous\|print\|save\|select\|tag\|undelete\)-entry\>" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\<\%(un\)\?setenv\>" +syn match muttrcFunction contained "\" +syn match muttrcFunction contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|check-stats\|clear-flag\|complete\%(-query\)\?\|compose-to-sender\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-action\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-headers\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>" +syn keyword muttrcFunction contained imap-logout-all +if use_mutt_sidebar == 1 + syn match muttrcFunction contained "\]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName + +syn keyword muttrcCommand set skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn keyword muttrcCommand unset skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn keyword muttrcCommand reset skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syn keyword muttrcCommand toggle skipwhite nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" First, functions that take regular expressions: +syn match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL +syn match muttrcRXHooks /\<\%(account\|folder\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL + +" Now, functions that take patterns +syn match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern +syn match muttrcPatHooks /\<\%(mbox\|crypt\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern +syn match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|\|fcc\%(-save\)\?\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern + +syn match muttrcIndexFormatHookName contained /\S\+/ skipwhite nextgroup=muttrcPattern,muttrcString +syn match muttrcIndexFormatHook /index-format-hook/ skipwhite nextgroup=muttrcIndexFormatHookName,muttrcString + +syn match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction +syn match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL +syn match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL +syn match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL +syn match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL +syn match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL +syn keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL + +syn region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s +syn region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s +syn region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s +syn match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL +syn region muttrcMacroBody contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL +syn region muttrcMacroBody matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'\|\%(\%(\\\\\)\@]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma +syn match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL +syn match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL +syn region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite +syn match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL +syn match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL +syn match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL +syn match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL +syn keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL + +syn match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL +syn match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL +syn keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL + +syn match muttrcSimplePat contained "!\?\^\?[~][ADEFgGklNOpPQRSTuUvV=$]" +syn match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)" +syn match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable +syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer +syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString +syn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString +syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat +"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString +syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+ +syn region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+ +syn region muttrcSimplePatString contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 +syn region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString +syn region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString +syn region muttrcSimplePatRXContainer contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString +syn match muttrcSimplePatMetas contained /[(|)]/ + +syn match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas +syn match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString +syn region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL +syn region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL +syn region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL +syn match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL +syn match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL +" Keep muttrcPattern and muttrcOptPattern synchronized +syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas +syn region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas +syn region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat +syn region muttrcPattern contained keepend skipwhite start=+[~][<>](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat +syn match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat +syn match muttrcPattern contained skipwhite /[.]/ +syn region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas +syn region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas + +" Colour definitions takes object, foreground and background arguments (regexps excluded). +syn match muttrcColorMatchCount contained "[0-9]\+" +syn match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL +syn region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL +syn region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL +syn keyword muttrcColorField skipwhite contained + \ attachment body bold error hdrdefault header index indicator markers message + \ normal prompt quoted search sidebar-divider sidebar-flagged sidebar-highlight + \ sidebar-indicator sidebar-new sidebar-spoolfile signature status tilde tree + \ underline +syn match muttrcColorField contained "\" +if use_mutt_sidebar == 1 + syn keyword muttrcColorField contained sidebar_new +endif +syn keyword muttrcColor contained black blue cyan default green magenta red white yellow +syn keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow +syn match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>" +" Now for the structure of the color line +syn match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL +syn match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL +syn match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL +syn match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL +syn match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL +syn match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorFG,muttrcColorFGNL +syn match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL +syn match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL +syn region muttrcColorLine keepend start=/^\s*color\s\+\%(index\|header\)\@!/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace +" Now for the structure of the color index line +syn match muttrcPatternNL contained skipnl "\s*\\$" nextgroup=muttrcPattern,muttrcPatternNL +syn match muttrcColorBGI contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcPattern,muttrcPatternNL +syn match muttrcColorBGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorBGI,muttrcColorBGNLI +syn match muttrcColorFGI contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGI,muttrcColorBGNLI +syn match muttrcColorFGNLI contained skipnl "\s*\\$" nextgroup=muttrcColorFGI,muttrcColorFGNLI +syn match muttrcColorContextI contained /\s*\/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGI,muttrcColorFGNLI +syn match muttrcColorNLI contained skipnl "\s*\\$" nextgroup=muttrcColorContextI,muttrcColorNLI +syn match muttrcColorKeywordI contained skipwhite /\/ nextgroup=muttrcColorContextI,muttrcColorNLI +syn region muttrcColorLine keepend skipwhite start=/\/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordI,muttrcComment,muttrcUnHighlightSpace +" Now for the structure of the color header line +syn match muttrcRXPatternNL contained skipnl "\s*\\$" nextgroup=muttrcRXString,muttrcRXPatternNL +syn match muttrcColorBGH contained /\s*[$]\?\w\+\s*/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcRXString,muttrcRXPatternNL +syn match muttrcColorBGNLH contained skipnl "\s*\\$" nextgroup=muttrcColorBGH,muttrcColorBGNLH +syn match muttrcColorFGH contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBGH,muttrcColorBGNLH +syn match muttrcColorFGNLH contained skipnl "\s*\\$" nextgroup=muttrcColorFGH,muttrcColorFGNLH +syn match muttrcColorContextH contained /\s*\/ contains=muttrcUnHighlightSpace nextgroup=muttrcColorFGH,muttrcColorFGNLH +syn match muttrcColorNLH contained skipnl "\s*\\$" nextgroup=muttrcColorContextH,muttrcColorNLH +syn match muttrcColorKeywordH contained skipwhite /\/ nextgroup=muttrcColorContextH,muttrcColorNLH +syn region muttrcColorLine keepend skipwhite start=/\/ skip=+\\$+ end=+$+ contains=muttrcColorKeywordH,muttrcComment,muttrcUnHighlightSpace +" And now color's brother: +syn region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syn region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syn match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syn match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syn match muttrcUnColorAll contained skipwhite /[*]/ +syn match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL +syn match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL +syn match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL +syn match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL +syn region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace + +" Mono are almost like color (ojects inherited from color) +syn keyword muttrcMonoAttrib contained bold none normal reverse standout underline +syn keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField +syn match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link muttrcComment Comment +hi def link muttrcEscape SpecialChar +hi def link muttrcRXChars SpecialChar +hi def link muttrcString String +hi def link muttrcRXString String +hi def link muttrcRXString2 String +hi def link muttrcSpecial Special +hi def link muttrcHooks Type +hi def link muttrcGroupFlag Type +hi def link muttrcGroupDef Macro +hi def link muttrcAddrDef muttrcGroupFlag +hi def link muttrcRXDef muttrcGroupFlag +hi def link muttrcRXPat String +hi def link muttrcAliasGroupName Macro +hi def link muttrcAliasKey Identifier +hi def link muttrcUnAliasKey Identifier +hi def link muttrcAliasEncEmail Identifier +hi def link muttrcAliasParens Type +hi def link muttrcSetNumAssignment Number +hi def link muttrcSetBoolAssignment Boolean +hi def link muttrcSetQuadAssignment Boolean +hi def link muttrcSetStrAssignment String +hi def link muttrcEmail Special +hi def link muttrcVariableInner Special +hi def link muttrcEscapedVariable String +hi def link muttrcHeader Type +hi def link muttrcKeySpecial SpecialChar +hi def link muttrcKey Type +hi def link muttrcKeyName SpecialChar +hi def link muttrcVarBool Identifier +hi def link muttrcVarQuad Identifier +hi def link muttrcVarNum Identifier +hi def link muttrcVarStr Identifier +hi def link muttrcMenu Identifier +hi def link muttrcCommand Keyword +hi def link muttrcMacroDescr String +hi def link muttrcAction Macro +hi def link muttrcBadAction Error +hi def link muttrcBindFunction Error +hi def link muttrcBindMenuList Error +hi def link muttrcFunction Macro +hi def link muttrcGroupKeyword muttrcCommand +hi def link muttrcGroupLine Error +hi def link muttrcSubscribeKeyword muttrcCommand +hi def link muttrcSubscribeLine Error +hi def link muttrcListsKeyword muttrcCommand +hi def link muttrcListsLine Error +hi def link muttrcAlternateKeyword muttrcCommand +hi def link muttrcAlternatesLine Error +hi def link muttrcAttachmentsLine muttrcCommand +hi def link muttrcAttachmentsFlag Type +hi def link muttrcAttachmentsMimeType String +hi def link muttrcColorLine Error +hi def link muttrcColorContext Error +hi def link muttrcColorContextI Identifier +hi def link muttrcColorContextH Identifier +hi def link muttrcColorKeyword muttrcCommand +hi def link muttrcColorKeywordI muttrcColorKeyword +hi def link muttrcColorKeywordH muttrcColorKeyword +hi def link muttrcColorField Identifier +hi def link muttrcColor Type +hi def link muttrcColorFG Error +hi def link muttrcColorFGI Error +hi def link muttrcColorFGH Error +hi def link muttrcColorBG Error +hi def link muttrcColorBGI Error +hi def link muttrcColorBGH Error +hi def link muttrcMonoAttrib muttrcColor +hi def link muttrcMono muttrcCommand +hi def link muttrcSimplePat Identifier +hi def link muttrcSimplePatString Macro +hi def link muttrcSimplePatMetas Special +hi def link muttrcPattern Error +hi def link muttrcUnColorLine Error +hi def link muttrcUnColorKeyword muttrcCommand +hi def link muttrcUnColorIndex Identifier +hi def link muttrcShellString muttrcEscape +hi def link muttrcRXHooks muttrcCommand +hi def link muttrcRXHookNot Type +hi def link muttrcPatHooks muttrcCommand +hi def link muttrcIndexFormatHookName muttrcCommand +hi def link muttrcIndexFormatHook muttrcCommand +hi def link muttrcPatHookNot Type +hi def link muttrcFormatConditionals2 Type +hi def link muttrcIndexFormatStr muttrcString +hi def link muttrcIndexFormatEscapes muttrcEscape +hi def link muttrcIndexFormatConditionals muttrcFormatConditionals2 +hi def link muttrcAliasFormatStr muttrcString +hi def link muttrcAliasFormatEscapes muttrcEscape +hi def link muttrcAttachFormatStr muttrcString +hi def link muttrcAttachFormatEscapes muttrcEscape +hi def link muttrcAttachFormatConditionals muttrcFormatConditionals2 +hi def link muttrcBackgroundFormatStr muttrcString +hi def link muttrcComposeFormatStr muttrcString +hi def link muttrcComposeFormatEscapes muttrcEscape +hi def link muttrcFolderFormatStr muttrcString +hi def link muttrcFolderFormatEscapes muttrcEscape +hi def link muttrcFolderFormatConditionals muttrcFormatConditionals2 +hi def link muttrcMessageIdFormatStr muttrcString +hi def link muttrcMixFormatStr muttrcString +hi def link muttrcMixFormatEscapes muttrcEscape +hi def link muttrcMixFormatConditionals muttrcFormatConditionals2 +hi def link muttrcPGPFormatStr muttrcString +hi def link muttrcPGPFormatEscapes muttrcEscape +hi def link muttrcPGPFormatConditionals muttrcFormatConditionals2 +hi def link muttrcPGPCmdFormatStr muttrcString +hi def link muttrcPGPCmdFormatEscapes muttrcEscape +hi def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2 +hi def link muttrcStatusFormatStr muttrcString +hi def link muttrcStatusFormatEscapes muttrcEscape +hi def link muttrcStatusFormatConditionals muttrcFormatConditionals2 +hi def link muttrcPGPGetKeysFormatStr muttrcString +hi def link muttrcPGPGetKeysFormatEscapes muttrcEscape +hi def link muttrcSmimeFormatStr muttrcString +hi def link muttrcSmimeFormatEscapes muttrcEscape +hi def link muttrcSmimeFormatConditionals muttrcFormatConditionals2 +hi def link muttrcTimeEscapes muttrcEscape +hi def link muttrcPGPTimeEscapes muttrcEscape +hi def link muttrcStrftimeEscapes Type +hi def link muttrcStrftimeFormatStr muttrcString +hi def link muttrcBindMenuListNL SpecialChar +hi def link muttrcMacroDescrNL SpecialChar +hi def link muttrcMacroBodyNL SpecialChar +hi def link muttrcMacroKeyNL SpecialChar +hi def link muttrcMacroMenuListNL SpecialChar +hi def link muttrcColorMatchCountNL SpecialChar +hi def link muttrcColorNL SpecialChar +hi def link muttrcColorRXNL SpecialChar +hi def link muttrcColorBGNL SpecialChar +hi def link muttrcColorFGNL SpecialChar +hi def link muttrcAliasNameNL SpecialChar +hi def link muttrcAliasENNL SpecialChar +hi def link muttrcAliasNL SpecialChar +hi def link muttrcUnAliasNL SpecialChar +hi def link muttrcAliasGroupDefNL SpecialChar +hi def link muttrcAliasEncEmailNL SpecialChar +hi def link muttrcPatternNL SpecialChar +hi def link muttrcUnColorPatNL SpecialChar +hi def link muttrcUnColorAPNL SpecialChar +hi def link muttrcUnColorIndexNL SpecialChar +hi def link muttrcStringNL SpecialChar + + +let b:current_syntax = "muttrc" + +let &cpo = s:cpo_save +unlet s:cpo_save +"EOF vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim new file mode 100644 index 0000000..8bd7b64 --- /dev/null +++ b/runtime/syntax/mysql.vim @@ -0,0 +1,288 @@ +" Vim syntax file +" Language: mysql +" Maintainer: Kenneth J. Pronovici +" Last Change: $LastChangedDate: 2016-04-11 10:31:04 -0500 (Mon, 11 Apr 2016) $ +" Filenames: *.mysql +" URL: ftp://cedar-solutions.com/software/mysql.vim +" Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Always ignore case +syn case ignore + +" General keywords which don't fall into other categories +syn keyword mysqlKeyword action add after aggregate all alter as asc auto_increment avg_row_length +syn keyword mysqlKeyword both by +syn keyword mysqlKeyword cascade change character check checksum column columns comment constraint create cross +syn keyword mysqlKeyword current_date current_time current_timestamp +syn keyword mysqlKeyword data database databases day day_hour day_minute day_second +syn keyword mysqlKeyword default delayed delay_key_write delete desc describe distinct distinctrow drop +syn keyword mysqlKeyword enclosed escape escaped explain +syn keyword mysqlKeyword fields file first flush for foreign from full function +syn keyword mysqlKeyword global grant grants group +syn keyword mysqlKeyword having heap high_priority hosts hour hour_minute hour_second +syn keyword mysqlKeyword identified ignore index infile inner insert insert_id into isam +syn keyword mysqlKeyword join +syn keyword mysqlKeyword key keys kill last_insert_id leading left limit lines load local lock logs long +syn keyword mysqlKeyword low_priority +syn keyword mysqlKeyword match max_rows middleint min_rows minute minute_second modify month myisam +syn keyword mysqlKeyword natural no +syn keyword mysqlKeyword on optimize option optionally order outer outfile +syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist +syn keyword mysqlKeyword read references reload rename replace restrict returns revoke right row rows +syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off +syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting +syn keyword mysqlKeyword status straight_join string +syn keyword mysqlKeyword table tables temporary terminated to trailing type +syn keyword mysqlKeyword unique unlock unsigned update usage use using +syn keyword mysqlKeyword values varbinary variables varying +syn keyword mysqlKeyword where with write +syn keyword mysqlKeyword year_month +syn keyword mysqlKeyword zerofill + +" Special values +syn keyword mysqlSpecial false null true + +" Strings (single- and double-quote) +syn region mysqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region mysqlString start=+'+ skip=+\\\\\|\\'+ end=+'+ + +" Numbers and hexidecimal values +syn match mysqlNumber "-\=\<[0-9]*\>" +syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>" +syn match mysqlNumber "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>" +syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>" +syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>" + +" User variables +syn match mysqlVariable "@\a*[A-Za-z0-9]*\([._]*[A-Za-z0-9]\)*" + +" Escaped column names +syn match mysqlEscaped "`[^`]*`" + +" Comments (c-style, mysql-style and modified sql-style) +syn region mysqlComment start="/\*" end="\*/" +syn match mysqlComment "#.*" +syn match mysqlComment "--\_s.*" +syn sync ccomment mysqlComment + +" Column types +" +" This gets a bit ugly. There are two different problems we have to +" deal with. +" +" The first problem is that some keywords like 'float' can be used +" both with and without specifiers, i.e. 'float', 'float(1)' and +" 'float(@var)' are all valid. We have to account for this and we +" also have to make sure that garbage like floatn or float_(1) is not +" highlighted. +" +" The second problem is that some of these keywords are included in +" function names. For instance, year() is part of the name of the +" dayofyear() function, and the dec keyword (no parenthesis) is part of +" the name of the decode() function. + +syn keyword mysqlType tinyint smallint mediumint int integer bigint +syn keyword mysqlType date datetime time bit bool +syn keyword mysqlType tinytext mediumtext longtext text +syn keyword mysqlType tinyblob mediumblob longblob blob +syn region mysqlType start="float\W" end="."me=s-1 +syn region mysqlType start="float$" end="."me=s-1 +syn region mysqlType start="float(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="double\W" end="."me=s-1 +syn region mysqlType start="double$" end="."me=s-1 +syn region mysqlType start="double(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="double precision\W" end="."me=s-1 +syn region mysqlType start="double precision$" end="."me=s-1 +syn region mysqlType start="double precision(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="real\W" end="."me=s-1 +syn region mysqlType start="real$" end="."me=s-1 +syn region mysqlType start="real(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="numeric(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="dec\W" end="."me=s-1 +syn region mysqlType start="dec$" end="."me=s-1 +syn region mysqlType start="dec(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="decimal\W" end="."me=s-1 +syn region mysqlType start="decimal$" end="."me=s-1 +syn region mysqlType start="decimal(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="\Wtimestamp\W" end="."me=s-1 +syn region mysqlType start="\Wtimestamp$" end="."me=s-1 +syn region mysqlType start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="^timestamp\W" end="."me=s-1 +syn region mysqlType start="^timestamp$" end="."me=s-1 +syn region mysqlType start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="^year(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="char(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="varchar(" end=")" contains=mysqlNumber,mysqlVariable +syn region mysqlType start="enum(" end=")" contains=mysqlString,mysqlVariable +syn region mysqlType start="\Wset(" end=")" contains=mysqlString,mysqlVariable +syn region mysqlType start="^set(" end=")" contains=mysqlString,mysqlVariable + +" Logical, string and numeric operators +syn keyword mysqlOperator between not and or is in like regexp rlike binary exists +syn region mysqlOperator start="isnull(" end=")" contains=ALL +syn region mysqlOperator start="coalesce(" end=")" contains=ALL +syn region mysqlOperator start="interval(" end=")" contains=ALL + +" Control flow functions +syn keyword mysqlFlow case when then else end +syn region mysqlFlow start="ifnull(" end=")" contains=ALL +syn region mysqlFlow start="nullif(" end=")" contains=ALL +syn region mysqlFlow start="if(" end=")" contains=ALL + +" General Functions +" +" I'm leery of just defining keywords for functions, since according to the MySQL manual: +" +" Function names do not clash with table or column names. For example, ABS is a +" valid column name. The only restriction is that for a function call, no spaces +" are allowed between the function name and the `(' that follows it. +" +" This means that if I want to highlight function names properly, I have to use a +" region to define them, not just a keyword. This will probably cause the syntax file +" to load more slowly, but at least it will be 'correct'. + +syn region mysqlFunction start="abs(" end=")" contains=ALL +syn region mysqlFunction start="acos(" end=")" contains=ALL +syn region mysqlFunction start="adddate(" end=")" contains=ALL +syn region mysqlFunction start="ascii(" end=")" contains=ALL +syn region mysqlFunction start="asin(" end=")" contains=ALL +syn region mysqlFunction start="atan(" end=")" contains=ALL +syn region mysqlFunction start="atan2(" end=")" contains=ALL +syn region mysqlFunction start="avg(" end=")" contains=ALL +syn region mysqlFunction start="benchmark(" end=")" contains=ALL +syn region mysqlFunction start="bin(" end=")" contains=ALL +syn region mysqlFunction start="bit_and(" end=")" contains=ALL +syn region mysqlFunction start="bit_count(" end=")" contains=ALL +syn region mysqlFunction start="bit_or(" end=")" contains=ALL +syn region mysqlFunction start="ceiling(" end=")" contains=ALL +syn region mysqlFunction start="character_length(" end=")" contains=ALL +syn region mysqlFunction start="char_length(" end=")" contains=ALL +syn region mysqlFunction start="concat(" end=")" contains=ALL +syn region mysqlFunction start="concat_ws(" end=")" contains=ALL +syn region mysqlFunction start="connection_id(" end=")" contains=ALL +syn region mysqlFunction start="conv(" end=")" contains=ALL +syn region mysqlFunction start="cos(" end=")" contains=ALL +syn region mysqlFunction start="cot(" end=")" contains=ALL +syn region mysqlFunction start="count(" end=")" contains=ALL +syn region mysqlFunction start="curdate(" end=")" contains=ALL +syn region mysqlFunction start="curtime(" end=")" contains=ALL +syn region mysqlFunction start="date_add(" end=")" contains=ALL +syn region mysqlFunction start="date_format(" end=")" contains=ALL +syn region mysqlFunction start="date_sub(" end=")" contains=ALL +syn region mysqlFunction start="dayname(" end=")" contains=ALL +syn region mysqlFunction start="dayofmonth(" end=")" contains=ALL +syn region mysqlFunction start="dayofweek(" end=")" contains=ALL +syn region mysqlFunction start="dayofyear(" end=")" contains=ALL +syn region mysqlFunction start="decode(" end=")" contains=ALL +syn region mysqlFunction start="degrees(" end=")" contains=ALL +syn region mysqlFunction start="elt(" end=")" contains=ALL +syn region mysqlFunction start="encode(" end=")" contains=ALL +syn region mysqlFunction start="encrypt(" end=")" contains=ALL +syn region mysqlFunction start="exp(" end=")" contains=ALL +syn region mysqlFunction start="export_set(" end=")" contains=ALL +syn region mysqlFunction start="extract(" end=")" contains=ALL +syn region mysqlFunction start="field(" end=")" contains=ALL +syn region mysqlFunction start="find_in_set(" end=")" contains=ALL +syn region mysqlFunction start="floor(" end=")" contains=ALL +syn region mysqlFunction start="format(" end=")" contains=ALL +syn region mysqlFunction start="from_days(" end=")" contains=ALL +syn region mysqlFunction start="from_unixtime(" end=")" contains=ALL +syn region mysqlFunction start="get_lock(" end=")" contains=ALL +syn region mysqlFunction start="greatest(" end=")" contains=ALL +syn region mysqlFunction start="group_unique_users(" end=")" contains=ALL +syn region mysqlFunction start="hex(" end=")" contains=ALL +syn region mysqlFunction start="inet_aton(" end=")" contains=ALL +syn region mysqlFunction start="inet_ntoa(" end=")" contains=ALL +syn region mysqlFunction start="instr(" end=")" contains=ALL +syn region mysqlFunction start="lcase(" end=")" contains=ALL +syn region mysqlFunction start="least(" end=")" contains=ALL +syn region mysqlFunction start="length(" end=")" contains=ALL +syn region mysqlFunction start="load_file(" end=")" contains=ALL +syn region mysqlFunction start="locate(" end=")" contains=ALL +syn region mysqlFunction start="log(" end=")" contains=ALL +syn region mysqlFunction start="log10(" end=")" contains=ALL +syn region mysqlFunction start="lower(" end=")" contains=ALL +syn region mysqlFunction start="lpad(" end=")" contains=ALL +syn region mysqlFunction start="ltrim(" end=")" contains=ALL +syn region mysqlFunction start="make_set(" end=")" contains=ALL +syn region mysqlFunction start="master_pos_wait(" end=")" contains=ALL +syn region mysqlFunction start="max(" end=")" contains=ALL +syn region mysqlFunction start="md5(" end=")" contains=ALL +syn region mysqlFunction start="mid(" end=")" contains=ALL +syn region mysqlFunction start="min(" end=")" contains=ALL +syn region mysqlFunction start="mod(" end=")" contains=ALL +syn region mysqlFunction start="monthname(" end=")" contains=ALL +syn region mysqlFunction start="now(" end=")" contains=ALL +syn region mysqlFunction start="oct(" end=")" contains=ALL +syn region mysqlFunction start="octet_length(" end=")" contains=ALL +syn region mysqlFunction start="ord(" end=")" contains=ALL +syn region mysqlFunction start="period_add(" end=")" contains=ALL +syn region mysqlFunction start="period_diff(" end=")" contains=ALL +syn region mysqlFunction start="pi(" end=")" contains=ALL +syn region mysqlFunction start="position(" end=")" contains=ALL +syn region mysqlFunction start="pow(" end=")" contains=ALL +syn region mysqlFunction start="power(" end=")" contains=ALL +syn region mysqlFunction start="quarter(" end=")" contains=ALL +syn region mysqlFunction start="radians(" end=")" contains=ALL +syn region mysqlFunction start="rand(" end=")" contains=ALL +syn region mysqlFunction start="release_lock(" end=")" contains=ALL +syn region mysqlFunction start="repeat(" end=")" contains=ALL +syn region mysqlFunction start="reverse(" end=")" contains=ALL +syn region mysqlFunction start="round(" end=")" contains=ALL +syn region mysqlFunction start="rpad(" end=")" contains=ALL +syn region mysqlFunction start="rtrim(" end=")" contains=ALL +syn region mysqlFunction start="sec_to_time(" end=")" contains=ALL +syn region mysqlFunction start="session_user(" end=")" contains=ALL +syn region mysqlFunction start="sign(" end=")" contains=ALL +syn region mysqlFunction start="sin(" end=")" contains=ALL +syn region mysqlFunction start="soundex(" end=")" contains=ALL +syn region mysqlFunction start="space(" end=")" contains=ALL +syn region mysqlFunction start="sqrt(" end=")" contains=ALL +syn region mysqlFunction start="std(" end=")" contains=ALL +syn region mysqlFunction start="stddev(" end=")" contains=ALL +syn region mysqlFunction start="strcmp(" end=")" contains=ALL +syn region mysqlFunction start="subdate(" end=")" contains=ALL +syn region mysqlFunction start="substring(" end=")" contains=ALL +syn region mysqlFunction start="substring_index(" end=")" contains=ALL +syn region mysqlFunction start="subtime(" end=")" contains=ALL +syn region mysqlFunction start="sum(" end=")" contains=ALL +syn region mysqlFunction start="sysdate(" end=")" contains=ALL +syn region mysqlFunction start="system_user(" end=")" contains=ALL +syn region mysqlFunction start="tan(" end=")" contains=ALL +syn region mysqlFunction start="time_format(" end=")" contains=ALL +syn region mysqlFunction start="time_to_sec(" end=")" contains=ALL +syn region mysqlFunction start="to_days(" end=")" contains=ALL +syn region mysqlFunction start="trim(" end=")" contains=ALL +syn region mysqlFunction start="ucase(" end=")" contains=ALL +syn region mysqlFunction start="unique_users(" end=")" contains=ALL +syn region mysqlFunction start="unix_timestamp(" end=")" contains=ALL +syn region mysqlFunction start="upper(" end=")" contains=ALL +syn region mysqlFunction start="user(" end=")" contains=ALL +syn region mysqlFunction start="version(" end=")" contains=ALL +syn region mysqlFunction start="week(" end=")" contains=ALL +syn region mysqlFunction start="weekday(" end=")" contains=ALL +syn region mysqlFunction start="yearweek(" end=")" contains=ALL + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link mysqlKeyword Statement +hi def link mysqlSpecial Special +hi def link mysqlString String +hi def link mysqlNumber Number +hi def link mysqlVariable Identifier +hi def link mysqlComment Comment +hi def link mysqlType Type +hi def link mysqlOperator Statement +hi def link mysqlFlow Statement +hi def link mysqlFunction Function + + +let b:current_syntax = "mysql" + diff --git a/runtime/syntax/n1ql.vim b/runtime/syntax/n1ql.vim new file mode 100644 index 0000000..bef65d8 --- /dev/null +++ b/runtime/syntax/n1ql.vim @@ -0,0 +1,434 @@ +" Vim syntax file +" Language: N1QL / Couchbase Server +" Maintainer: Eugene Ciurana +" Version: 1.0 +" Source: https://github.com/pr3d4t0r/n1ql-vim-syntax +" +" License: Vim is Charityware. n1ql.vim syntax is Charityware. +" (c) Copyright 2017 by Eugene Ciurana / pr3d4t0r. Licensed +" under the standard VIM LICENSE - Vim command :help uganda.txt +" for details. +" +" Questions, comments: +" https://ciurana.eu/pgp, https://keybase.io/pr3d4t0r +" +" vim: set fileencoding=utf-8: + + +if exists("b:current_syntax") + finish +endif + + +syn case ignore + +syn keyword n1qlSpecial DATASTORES +syn keyword n1qlSpecial DUAL +syn keyword n1qlSpecial FALSE +syn keyword n1qlSpecial INDEXES +syn keyword n1qlSpecial KEYSPACES +syn keyword n1qlSpecial MISSING +syn keyword n1qlSpecial NAMESPACES +syn keyword n1qlSpecial NULL +syn keyword n1qlSpecial TRUE + + +" +" *** keywords *** +" +syn keyword n1qlKeyword ALL +syn keyword n1qlKeyword ANY +syn keyword n1qlKeyword ASC +syn keyword n1qlKeyword BEGIN +syn keyword n1qlKeyword BETWEEN +syn keyword n1qlKeyword BREAK +syn keyword n1qlKeyword BUCKET +syn keyword n1qlKeyword CALL +syn keyword n1qlKeyword CASE +syn keyword n1qlKeyword CAST +syn keyword n1qlKeyword CLUSTER +syn keyword n1qlKeyword COLLATE +syn keyword n1qlKeyword COLLECTION +syn keyword n1qlKeyword CONNECT +syn keyword n1qlKeyword CONTINUE +syn keyword n1qlKeyword CORRELATE +syn keyword n1qlKeyword COVER +syn keyword n1qlKeyword DATABASE +syn keyword n1qlKeyword DATASET +syn keyword n1qlKeyword DATASTORE +syn keyword n1qlKeyword DECLARE +syn keyword n1qlKeyword DECREMENT +syn keyword n1qlKeyword DERIVED +syn keyword n1qlKeyword DESC +syn keyword n1qlKeyword DESCRIBE +syn keyword n1qlKeyword DO +syn keyword n1qlKeyword EACH +syn keyword n1qlKeyword ELEMENT +syn keyword n1qlKeyword ELSE +syn keyword n1qlKeyword END +syn keyword n1qlKeyword EVERY +syn keyword n1qlKeyword EXCLUDE +syn keyword n1qlKeyword EXISTS +syn keyword n1qlKeyword FETCH +syn keyword n1qlKeyword FIRST +syn keyword n1qlKeyword FLATTEN +syn keyword n1qlKeyword FOR +syn keyword n1qlKeyword FORCE +syn keyword n1qlKeyword FROM +syn keyword n1qlKeyword FUNCTION +syn keyword n1qlKeyword GROUP +syn keyword n1qlKeyword GSI +syn keyword n1qlKeyword HAVING +syn keyword n1qlKeyword IF +syn keyword n1qlKeyword IGNORE +syn keyword n1qlKeyword INCLUDE +syn keyword n1qlKeyword INCREMENT +syn keyword n1qlKeyword INDEX +syn keyword n1qlKeyword INITIAL +syn keyword n1qlKeyword INLINE +syn keyword n1qlKeyword INNER +syn keyword n1qlKeyword INTO +syn keyword n1qlKeyword KEY +syn keyword n1qlKeyword KEYS +syn keyword n1qlKeyword KEYSPACE +syn keyword n1qlKeyword KNOWN +syn keyword n1qlKeyword LAST +syn keyword n1qlKeyword LET +syn keyword n1qlKeyword LETTING +syn keyword n1qlKeyword LIMIT +syn keyword n1qlKeyword LOOP +syn keyword n1qlKeyword LSM +syn keyword n1qlKeyword MAP +syn keyword n1qlKeyword MAPPING +syn keyword n1qlKeyword MATCHED +syn keyword n1qlKeyword MATERIALIZED +syn keyword n1qlKeyword MERGE +syn keyword n1qlKeyword NAMESPACE +syn keyword n1qlKeyword NEST +syn keyword n1qlKeyword OPTION +syn keyword n1qlKeyword ORDER +syn keyword n1qlKeyword OUTER +syn keyword n1qlKeyword OVER +syn keyword n1qlKeyword PARSE +syn keyword n1qlKeyword PARTITION +syn keyword n1qlKeyword PASSWORD +syn keyword n1qlKeyword PATH +syn keyword n1qlKeyword POOL +syn keyword n1qlKeyword PRIMARY +syn keyword n1qlKeyword PRIVATE +syn keyword n1qlKeyword PRIVILEGE +syn keyword n1qlKeyword PROCEDURE +syn keyword n1qlKeyword PUBLIC +syn keyword n1qlKeyword REALM +syn keyword n1qlKeyword REDUCE +syn keyword n1qlKeyword RETURN +syn keyword n1qlKeyword RETURNING +syn keyword n1qlKeyword ROLE +syn keyword n1qlKeyword SATISFIES +syn keyword n1qlKeyword SCHEMA +syn keyword n1qlKeyword SELF +syn keyword n1qlKeyword SEMI +syn keyword n1qlKeyword SHOW +syn keyword n1qlKeyword START +syn keyword n1qlKeyword STATISTICS +syn keyword n1qlKeyword SYSTEM +syn keyword n1qlKeyword THEN +syn keyword n1qlKeyword TRANSACTION +syn keyword n1qlKeyword TRIGGER +syn keyword n1qlKeyword UNDER +syn keyword n1qlKeyword UNKNOWN +syn keyword n1qlKeyword UNSET +syn keyword n1qlKeyword USE +syn keyword n1qlKeyword USER +syn keyword n1qlKeyword USING +syn keyword n1qlKeyword VALIDATE +syn keyword n1qlKeyword VALUE +syn keyword n1qlKeyword VALUED +syn keyword n1qlKeyword VALUES +syn keyword n1qlKeyword VIEW +syn keyword n1qlKeyword WHEN +syn keyword n1qlKeyword WHERE +syn keyword n1qlKeyword WHILE +syn keyword n1qlKeyword WITHIN +syn keyword n1qlKeyword WORK + + +" +" *** functions *** +" +syn keyword n1qlOperator ABS +syn keyword n1qlOperator ACOS +syn keyword n1qlOperator ARRAY_AGG +syn keyword n1qlOperator ARRAY_APPEND +syn keyword n1qlOperator ARRAY_AVG +syn keyword n1qlOperator ARRAY_CONCAT +syn keyword n1qlOperator ARRAY_CONTAINS +syn keyword n1qlOperator ARRAY_COUNT +syn keyword n1qlOperator ARRAY_DISTINCT +syn keyword n1qlOperator ARRAY_FLATTEN +syn keyword n1qlOperator ARRAY_IFNULL +syn keyword n1qlOperator ARRAY_INSERT +syn keyword n1qlOperator ARRAY_INTERSECT +syn keyword n1qlOperator ARRAY_LENGTH +syn keyword n1qlOperator ARRAY_MAX +syn keyword n1qlOperator ARRAY_MIN +syn keyword n1qlOperator ARRAY_POSITION +syn keyword n1qlOperator ARRAY_PREPEND +syn keyword n1qlOperator ARRAY_PUT +syn keyword n1qlOperator ARRAY_RANGE +syn keyword n1qlOperator ARRAY_REMOVE +syn keyword n1qlOperator ARRAY_REPEAT +syn keyword n1qlOperator ARRAY_REPLACE +syn keyword n1qlOperator ARRAY_REVERSE +syn keyword n1qlOperator ARRAY_SORT +syn keyword n1qlOperator ARRAY_START +syn keyword n1qlOperator ARRAY_SUM +syn keyword n1qlOperator ARRAY_SYMDIFF +syn keyword n1qlOperator ARRAY_UNION +syn keyword n1qlOperator ASIN +syn keyword n1qlOperator ATAN +syn keyword n1qlOperator ATAN2 +syn keyword n1qlOperator AVG +syn keyword n1qlOperator BASE64 +syn keyword n1qlOperator BASE64_DECODE +syn keyword n1qlOperator BASE64_ENCODE +syn keyword n1qlOperator CEIL +syn keyword n1qlOperator CLOCK_LOCAL +syn keyword n1qlOperator CLOCK_STR +syn keyword n1qlOperator CLOCK_TZ +syn keyword n1qlOperator CLOCK_UTC +syn keyword n1qlOperator CLOCL_MILLIS +syn keyword n1qlOperator CONTAINS +syn keyword n1qlOperator COS +syn keyword n1qlOperator COUNT +syn keyword n1qlOperator DATE_ADD_MILLIS +syn keyword n1qlOperator DATE_ADD_STR +syn keyword n1qlOperator DATE_DIFF_MILLIS +syn keyword n1qlOperator DATE_DIFF_STR +syn keyword n1qlOperator DATE_FORMAT_STR +syn keyword n1qlOperator DATE_PART_MILLIS +syn keyword n1qlOperator DATE_PART_STR +syn keyword n1qlOperator DATE_RANGE_MILLIS +syn keyword n1qlOperator DATE_RANGE_STR +syn keyword n1qlOperator DATE_TRUC_STR +syn keyword n1qlOperator DATE_TRUNC_MILLIS +syn keyword n1qlOperator DECODE_JSON +syn keyword n1qlOperator DEGREES +syn keyword n1qlOperator DURATION_TO_STR +syn keyword n1qlOperator E +syn keyword n1qlOperator ENCODED_SIZE +syn keyword n1qlOperator ENCODE_JSON +syn keyword n1qlOperator EXP +syn keyword n1qlOperator FLOOR +syn keyword n1qlOperator GREATEST +syn keyword n1qlOperator IFINF +syn keyword n1qlOperator IFMISSING +syn keyword n1qlOperator IFMISSINGORNULL +syn keyword n1qlOperator IFNAN +syn keyword n1qlOperator IFNANORINF +syn keyword n1qlOperator IFNULL +syn keyword n1qlOperator INITCAP +syn keyword n1qlOperator ISARRAY +syn keyword n1qlOperator ISATOM +syn keyword n1qlOperator ISBOOLEAN +syn keyword n1qlOperator ISNUMBER +syn keyword n1qlOperator ISOBJECT +syn keyword n1qlOperator ISSTRING +syn keyword n1qlOperator LEAST +syn keyword n1qlOperator LENGTH +syn keyword n1qlOperator LN +syn keyword n1qlOperator LOG +syn keyword n1qlOperator LOWER +syn keyword n1qlOperator LTRIM +syn keyword n1qlOperator MAX +syn keyword n1qlOperator META +syn keyword n1qlOperator MILLIS +syn keyword n1qlOperator MILLIS_TO_LOCAL +syn keyword n1qlOperator MILLIS_TO_STR +syn keyword n1qlOperator MILLIS_TO_TZ +syn keyword n1qlOperator MILLIS_TO_UTC +syn keyword n1qlOperator MILLIS_TO_ZONE_NAME +syn keyword n1qlOperator MIN +syn keyword n1qlOperator MISSINGIF +syn keyword n1qlOperator NANIF +syn keyword n1qlOperator NEGINFIF +syn keyword n1qlOperator NOW_LOCAL +syn keyword n1qlOperator NOW_MILLIS +syn keyword n1qlOperator NOW_STR +syn keyword n1qlOperator NOW_TZ +syn keyword n1qlOperator NOW_UTC +syn keyword n1qlOperator NULLIF +syn keyword n1qlOperator OBJECT_ADD +syn keyword n1qlOperator OBJECT_CONCAT +syn keyword n1qlOperator OBJECT_INNER_PAIRS +syn keyword n1qlOperator OBJECT_INNER_VALUES +syn keyword n1qlOperator OBJECT_LENGTH +syn keyword n1qlOperator OBJECT_NAMES +syn keyword n1qlOperator OBJECT_PAIRS +syn keyword n1qlOperator OBJECT_PUT +syn keyword n1qlOperator OBJECT_REMOVE +syn keyword n1qlOperator OBJECT_RENAME +syn keyword n1qlOperator OBJECT_REPLACE +syn keyword n1qlOperator OBJECT_UNWRAP +syn keyword n1qlOperator OBJECT_VALUES +syn keyword n1qlOperator PI +syn keyword n1qlOperator POLY_LENGTH +syn keyword n1qlOperator POSINIF +syn keyword n1qlOperator POSITION +syn keyword n1qlOperator POWER +syn keyword n1qlOperator RADIANS +syn keyword n1qlOperator RANDOM +syn keyword n1qlOperator REGEXP_CONTAINS +syn keyword n1qlOperator REGEXP_LIKE +syn keyword n1qlOperator REGEXP_POSITION +syn keyword n1qlOperator REGEXP_REPLACE +syn keyword n1qlOperator REPEAT +syn keyword n1qlOperator REPLACE +syn keyword n1qlOperator REVERSE +syn keyword n1qlOperator ROUND +syn keyword n1qlOperator RTRIM +syn keyword n1qlOperator SIGN +syn keyword n1qlOperator SIN +syn keyword n1qlOperator SPLIT +syn keyword n1qlOperator SQRT +syn keyword n1qlOperator STR_TO_DURATION +syn keyword n1qlOperator STR_TO_MILLIS +syn keyword n1qlOperator STR_TO_TZ +syn keyword n1qlOperator STR_TO_UTC +syn keyword n1qlOperator STR_TO_ZONE_NAME +syn keyword n1qlOperator SUBSTR +syn keyword n1qlOperator SUFFIXES +syn keyword n1qlOperator SUM +syn keyword n1qlOperator TAN +syn keyword n1qlOperator TITLE +syn keyword n1qlOperator TOARRAY +syn keyword n1qlOperator TOATOM +syn keyword n1qlOperator TOBOOLEAN +syn keyword n1qlOperator TOKENS +syn keyword n1qlOperator TONUMBER +syn keyword n1qlOperator TOOBJECT +syn keyword n1qlOperator TOSTRING +syn keyword n1qlOperator TRIM +syn keyword n1qlOperator TRUNC +syn keyword n1qlOperator TYPE +syn keyword n1qlOperator UPPER +syn keyword n1qlOperator UUID +syn keyword n1qlOperator WEEKDAY_MILLIS +syn keyword n1qlOperator WEEKDAY_STR + + +" +" *** operators *** +" +syn keyword n1qlOperator AND +syn keyword n1qlOperator AS +syn keyword n1qlOperator BY +syn keyword n1qlOperator DISTINCT +syn keyword n1qlOperator EXCEPT +syn keyword n1qlOperator ILIKE +syn keyword n1qlOperator IN +syn keyword n1qlOperator INTERSECT +syn keyword n1qlOperator IS +syn keyword n1qlOperator JOIN +syn keyword n1qlOperator LEFT +syn keyword n1qlOperator LIKE +syn keyword n1qlOperator MINUS +syn keyword n1qlOperator NEST +syn keyword n1qlOperator NESTING +syn keyword n1qlOperator NOT +syn keyword n1qlOperator OFFSET +syn keyword n1qlOperator ON +syn keyword n1qlOperator OR +syn keyword n1qlOperator OUT +syn keyword n1qlOperator RIGHT +syn keyword n1qlOperator SOME +syn keyword n1qlOperator TO +syn keyword n1qlOperator UNION +syn keyword n1qlOperator UNIQUE +syn keyword n1qlOperator UNNEST +syn keyword n1qlOperator VIA +syn keyword n1qlOperator WITH +syn keyword n1qlOperator XOR + + +" +" *** statements *** +" +syn keyword n1qlStatement ALTER +syn keyword n1qlStatement ANALYZE +syn keyword n1qlStatement BUILD +syn keyword n1qlStatement COMMIT +syn keyword n1qlStatement CREATE +syn keyword n1qlStatement DELETE +syn keyword n1qlStatement DROP +syn keyword n1qlStatement EXECUTE +syn keyword n1qlStatement EXPLAIN +syn keyword n1qlStatement GRANT +syn keyword n1qlStatement INFER +syn keyword n1qlStatement INSERT +syn keyword n1qlStatement MERGE +syn keyword n1qlStatement PREPARE +syn keyword n1qlStatement RENAME +syn keyword n1qlStatement REVOKE +syn keyword n1qlStatement ROLLBACK +syn keyword n1qlStatement SELECT +syn keyword n1qlStatement SET +syn keyword n1qlStatement TRUNCATE +syn keyword n1qlStatement UPDATE +syn keyword n1qlStatement UPSERT + + +" +" *** types *** +" +syn keyword n1qlType ARRAY +syn keyword n1qlType BINARY +syn keyword n1qlType BOOLEAN +syn keyword n1qlType NUMBER +syn keyword n1qlType OBJECT +syn keyword n1qlType RAW +syn keyword n1qlType STRING + + +" +" *** strings and characters *** +" +syn region n1qlString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region n1qlString start=+'+ skip=+\\\\\|\\'+ end=+'+ +syn region n1qlBucketSpec start=+`+ skip=+\\\\\|\\'+ end=+`+ + + +" +" *** numbers *** +" +syn match n1qlNumber "-\=\<\d*\.\=[0-9_]\>" + + +" +" *** comments *** +" +syn region n1qlComment start="/\*" end="\*/" contains=n1qlTODO +syn match n1qlComment "--.*$" contains=n1qlTODO +syn sync ccomment n1qlComment + + +" +" *** TODO *** +" +syn keyword n1qlTODO contained TODO FIXME XXX DEBUG NOTE + + +" +" *** enable *** +" +hi def link n1qlBucketSpec Underlined +hi def link n1qlComment Comment +hi def link n1qlKeyword Macro +hi def link n1qlOperator Function +hi def link n1qlSpecial Special +hi def link n1qlStatement Statement +hi def link n1qlString String +hi def link n1qlTODO Todo +hi def link n1qlType Type + +let b:current_syntax = "n1ql" diff --git a/runtime/syntax/named.vim b/runtime/syntax/named.vim new file mode 100644 index 0000000..292d1b2 --- /dev/null +++ b/runtime/syntax/named.vim @@ -0,0 +1,229 @@ +" Vim syntax file +" Language: BIND configuration file +" Maintainer: Nick Hibma +" Last Change: 2019 Oct 08 +" Filenames: named.conf, rndc.conf +" Location: http://www.van-laarhoven.org/vim/syntax/named.vim +" +" Previously maintained by glory hump and updated by Marcin +" Dalecki. +" +" This file could do with a lot of improvements, so comments are welcome. +" Please submit the named.conf (segment) with any comments. +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +setlocal iskeyword=.,-,48-58,A-Z,a-z,_ + +syn sync match namedSync grouphere NONE "^(zone|controls|acl|key)" + +let s:save_cpo = &cpo +set cpo-=C + +" BIND configuration file + +syn match namedComment "//.*" +syn match namedComment "#.*" +syn region namedComment start="/\*" end="\*/" +syn region namedString start=/"/ end=/"/ contained +" --- omitted trailing semicolon +syn match namedError /[^;{#]$/ + +" --- top-level keywords + +syn keyword namedInclude include nextgroup=namedString skipwhite +syn keyword namedKeyword acl key nextgroup=namedIntIdent skipwhite +syn keyword namedKeyword server nextgroup=namedIdentifier skipwhite +syn keyword namedKeyword controls nextgroup=namedSection skipwhite +syn keyword namedKeyword trusted-keys nextgroup=namedIntSection skipwhite +syn keyword namedKeyword logging nextgroup=namedLogSection skipwhite +syn keyword namedKeyword options nextgroup=namedOptSection skipwhite +syn keyword namedKeyword zone nextgroup=namedZoneString skipwhite + +" --- Identifier: name of following { ... } Section +syn match namedIdentifier contained /\k\+/ nextgroup=namedSection skipwhite +" --- IntIdent: name of following IntSection +syn match namedIntIdent contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite + +" --- Section: { ... } clause +syn region namedSection contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword + +" --- IntSection: section that does not contain other sections +syn region namedIntSection contained start=+{+ end=+}+ contains=namedIntKeyword,namedError,namedComment + +" --- IntKeyword: keywords contained within `{ ... }' sections only +" + these keywords are contained within `key' and `acl' sections +syn keyword namedIntKeyword contained key algorithm +syn keyword namedIntKeyword contained secret nextgroup=namedString skipwhite + +" + these keywords are contained within `server' section only +syn keyword namedIntKeyword contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedIntKeyword contained transfers nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedIntKeyword contained transfer-format +syn keyword namedIntKeyword contained keys nextgroup=namedIntSection skipwhite + +" + these keywords are contained within `controls' section only +syn keyword namedIntKeyword contained inet nextgroup=namedIPaddr,namedIPerror skipwhite +syn keyword namedIntKeyword contained unix nextgroup=namedString skipwhite +syn keyword namedIntKeyword contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedIntKeyword contained allow nextgroup=namedIntSection skipwhite + +" + these keywords are contained within `update-policy' section only +syn keyword namedIntKeyword contained grant nextgroup=namedString skipwhite +syn keyword namedIntKeyword contained name self subdomain wildcard nextgroup=namedString skipwhite +syn keyword namedIntKeyword TXT A PTR NS SOA A6 CNAME MX ANY skipwhite + +" --- options +syn region namedOptSection contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError + +syn keyword namedOption contained version directory +\ nextgroup=namedString skipwhite +syn keyword namedOption contained named-xfer dump-file pid-file +\ nextgroup=namedString skipwhite +syn keyword namedOption contained mem-statistics-file statistics-file +\ nextgroup=namedString skipwhite +syn keyword namedOption contained auth-nxdomain deallocate-on-exit +\ nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedOption contained dialup fake-iquery fetch-glue +\ nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedOption contained has-old-clients host-statistics +\ nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedOption contained maintain-ixfr-base multiple-cnames +\ nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedOption contained notify recursion rfc2308-type1 +\ nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedOption contained use-id-pool treat-cr-as-space +\ nextgroup=namedBool,namedNotBool skipwhite +syn keyword namedOption contained also-notify forwarders +\ nextgroup=namedIPlist skipwhite +syn keyword namedOption contained forward check-names +syn keyword namedOption contained allow-query allow-transfer allow-recursion +\ nextgroup=namedAML skipwhite +syn keyword namedOption contained blackhole listen-on +\ nextgroup=namedIntSection skipwhite +syn keyword namedOption contained lame-ttl max-transfer-time-in +\ nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedOption contained max-ncache-ttl min-roots +\ nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedOption contained serial-queries transfers-in +\ nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedOption contained transfers-out transfers-per-ns +syn keyword namedOption contained transfer-format +syn keyword namedOption contained transfer-source +\ nextgroup=namedIPaddr,namedIPerror skipwhite +syn keyword namedOption contained max-ixfr-log-size +\ nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedOption contained coresize datasize files stacksize +syn keyword namedOption contained cleaning-interval interface-interval statistics-interval heartbeat-interval +\ nextgroup=namedNumber,namedNotNumber skipwhite +syn keyword namedOption contained topology sortlist rrset-order +\ nextgroup=namedIntSection skipwhite + +syn match namedOption contained /\/ nextgroup=namedSpareDot +syn match namedDomain contained /"\."/ms=s+1,me=e-1 +syn match namedSpareDot contained /\./ + +" --- syntax errors +syn match namedIllegalDom contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1 +syn match namedIPerror contained /\<\S*[^0-9.[:space:];]\S*/ +syn match namedEParenError contained +{+ +syn match namedParenError +}\([^;]\|$\)+ + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link namedComment Comment +hi def link namedInclude Include +hi def link namedKeyword Keyword +hi def link namedIntKeyword Keyword +hi def link namedIdentifier Identifier +hi def link namedIntIdent Identifier + +hi def link namedString String +hi def link namedBool Type +hi def link namedNotBool Error +hi def link namedNumber Number +hi def link namedNotNumber Error + +hi def link namedOption namedKeyword +hi def link namedLogOption namedKeyword +hi def link namedCNOption namedKeyword +hi def link namedQSKeywords Type +hi def link namedCNKeywords Type +hi def link namedLogCategory Type +hi def link namedIPaddr Number +hi def link namedDomain Identifier +hi def link namedZoneOpt namedKeyword +hi def link namedZoneType Type +hi def link namedParenError Error +hi def link namedEParenError Error +hi def link namedIllegalDom Error +hi def link namedIPerror Error +hi def link namedSpareDot Error +hi def link namedError Error + + +let &cpo = s:save_cpo +unlet s:save_cpo + +let b:current_syntax = "named" + +" vim: ts=17 diff --git a/runtime/syntax/nanorc.vim b/runtime/syntax/nanorc.vim new file mode 100644 index 0000000..606ac7f --- /dev/null +++ b/runtime/syntax/nanorc.vim @@ -0,0 +1,243 @@ +" Vim syntax file +" Language: nanorc(5) - GNU nano configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword nanorcTodo contained TODO FIXME XXX NOTE + +syn region nanorcComment display oneline start='^\s*#' end='$' + \ contains=nanorcTodo,@Spell + +syn match nanorcBegin display '^' + \ nextgroup=nanorcKeyword,nanorcComment + \ skipwhite + +syn keyword nanorcKeyword contained set unset + \ nextgroup=nanorcBoolOption, + \ nanorcStringOption,nanorcNumberOption + \ skipwhite + +syn keyword nanorcKeyword contained syntax + \ nextgroup=nanorcSynGroupName skipwhite + +syn keyword nanorcKeyword contained color + \ nextgroup=@nanorcFGColor skipwhite + +syn keyword nanorcBoolOption contained autoindent backup const cut + \ historylog morespace mouse multibuffer + \ noconvert nofollow nohelp nowrap preserve + \ rebinddelete regexp smarthome smooth suspend + \ tempfile view + +syn keyword nanorcStringOption contained backupdir brackets operatingdir + \ punct quotestr speller whitespace + \ nextgroup=nanorcString skipwhite + +syn keyword nanorcNumberOption contained fill tabsize + \ nextgroup=nanorcNumber skipwhite + +syn region nanorcSynGroupName contained display oneline start=+"+ + \ end=+"\ze\%([[:blank:]]\|$\)+ + \ nextgroup=nanorcRegexes skipwhite + +syn match nanorcString contained display '".*"' + +syn region nanorcRegexes contained display oneline start=+"+ + \ end=+"\ze\%([[:blank:]]\|$\)+ + \ nextgroup=nanorcRegexes skipwhite + +syn match nanorcNumber contained display '[+-]\=\<\d\+\>' + +syn cluster nanorcFGColor contains=nanorcFGWhite,nanorcFGBlack, + \ nanorcFGRed,nanorcFGBlue,nanorcFGGreen, + \ nanorcFGYellow,nanorcFGMagenta,nanorcFGCyan, + \ nanorcFGBWhite,nanorcFGBBlack,nanorcFGBRed, + \ nanorcFGBBlue,nanorcFGBGreen,nanorcFGBYellow, + \ nanorcFGBMagenta,nanorcFGBCyan + +syn keyword nanorcFGWhite contained white + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBlack contained black + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGRed contained red + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBlue contained blue + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGGreen contained green + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGYellow contained yellow + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGMagenta contained magenta + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGCyan contained cyan + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBWhite contained brightwhite + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBBlack contained brightblack + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBRed contained brightred + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBBlue contained brightblue + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBGreen contained brightgreen + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBYellow contained brightyellow + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBMagenta contained brightmagenta + \ nextgroup=@nanorcFGSpec skipwhite + +syn keyword nanorcFGBCyan contained brightcyan + \ nextgroup=@nanorcFGSpec skipwhite + +syn cluster nanorcBGColor contains=nanorcBGWhite,nanorcBGBlack, + \ nanorcBGRed,nanorcBGBlue,nanorcBGGreen, + \ nanorcBGYellow,nanorcBGMagenta,nanorcBGCyan, + \ nanorcBGBWhite,nanorcBGBBlack,nanorcBGBRed, + \ nanorcBGBBlue,nanorcBGBGreen,nanorcBGBYellow, + \ nanorcBGBMagenta,nanorcBGBCyan + +syn keyword nanorcBGWhite contained white + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBlack contained black + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGRed contained red + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBlue contained blue + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGGreen contained green + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGYellow contained yellow + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGMagenta contained magenta + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGCyan contained cyan + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBWhite contained brightwhite + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBBlack contained brightblack + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBRed contained brightred + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBBlue contained brightblue + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBGreen contained brightgreen + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBYellow contained brightyellow + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBMagenta contained brightmagenta + \ nextgroup=@nanorcBGSpec skipwhite + +syn keyword nanorcBGBCyan contained brightcyan + \ nextgroup=@nanorcBGSpec skipwhite + +syn match nanorcBGColorSep contained ',' nextgroup=@nanorcBGColor + +syn cluster nanorcFGSpec contains=nanorcBGColorSep,nanorcRegexes, + \ nanorcStartRegion + +syn cluster nanorcBGSpec contains=nanorcRegexes,nanorcStartRegion + +syn keyword nanorcStartRegion contained start nextgroup=nanorcStartRegionEq + +syn match nanorcStartRegionEq contained '=' nextgroup=nanorcRegion + +syn region nanorcRegion contained display oneline start=+"+ + \ end=+"\ze\%([[:blank:]]\|$\)+ + \ nextgroup=nanorcEndRegion skipwhite + +syn keyword nanorcEndRegion contained end nextgroup=nanorcStartRegionEq + +syn match nanorcEndRegionEq contained '=' nextgroup=nanorcRegex + +syn region nanorcRegex contained display oneline start=+"+ + \ end=+"\ze\%([[:blank:]]\|$\)+ + +hi def link nanorcTodo Todo +hi def link nanorcComment Comment +hi def link nanorcKeyword Keyword +hi def link nanorcBoolOption Identifier +hi def link nanorcStringOption Identifier +hi def link nanorcNumberOption Identifier +hi def link nanorcSynGroupName String +hi def link nanorcString String +hi def link nanorcRegexes nanorcString +hi def link nanorcNumber Number +hi def nanorcFGWhite ctermfg=Gray guifg=Gray +hi def nanorcFGBlack ctermfg=Black guifg=Black +hi def nanorcFGRed ctermfg=DarkRed guifg=DarkRed +hi def nanorcFGBlue ctermfg=DarkBlue guifg=DarkBlue +hi def nanorcFGGreen ctermfg=DarkGreen guifg=DarkGreen +hi def nanorcFGYellow ctermfg=Brown guifg=Brown +hi def nanorcFGMagenta ctermfg=DarkMagenta guifg=DarkMagenta +hi def nanorcFGCyan ctermfg=DarkCyan guifg=DarkCyan +hi def nanorcFGBWhite ctermfg=White guifg=White +hi def nanorcFGBBlack ctermfg=DarkGray guifg=DarkGray +hi def nanorcFGBRed ctermfg=Red guifg=Red +hi def nanorcFGBBlue ctermfg=Blue guifg=Blue +hi def nanorcFGBGreen ctermfg=Green guifg=Green +hi def nanorcFGBYellow ctermfg=Yellow guifg=Yellow +hi def nanorcFGBMagenta ctermfg=Magenta guifg=Magenta +hi def nanorcFGBCyan ctermfg=Cyan guifg=Cyan +hi def link nanorcBGColorSep Normal +hi def nanorcBGWhite ctermbg=Gray guibg=Gray +hi def nanorcBGBlack ctermbg=Black guibg=Black +hi def nanorcBGRed ctermbg=DarkRed guibg=DarkRed +hi def nanorcBGBlue ctermbg=DarkBlue guibg=DarkBlue +hi def nanorcBGGreen ctermbg=DarkGreen guibg=DarkGreen +hi def nanorcBGYellow ctermbg=Brown guibg=Brown +hi def nanorcBGMagenta ctermbg=DarkMagenta guibg=DarkMagenta +hi def nanorcBGCyan ctermbg=DarkCyan guibg=DarkCyan +hi def nanorcBGBWhite ctermbg=White guibg=White +hi def nanorcBGBBlack ctermbg=DarkGray guibg=DarkGray +hi def nanorcBGBRed ctermbg=Red guibg=Red +hi def nanorcBGBBlue ctermbg=Blue guibg=Blue +hi def nanorcBGBGreen ctermbg=Green guibg=Green +hi def nanorcBGBYellow ctermbg=Yellow guibg=Yellow +hi def nanorcBGBMagenta ctermbg=Magenta guibg=Magenta +hi def nanorcBGBCyan ctermbg=Cyan guibg=Cyan +hi def link nanorcStartRegion Type +hi def link nanorcStartRegionEq Operator +hi def link nanorcRegion nanorcString +hi def link nanorcEndRegion Type +hi def link nanorcEndRegionEq Operator +hi def link nanorcRegex nanoRegexes + +let b:current_syntax = "nanorc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/nasm.vim b/runtime/syntax/nasm.vim new file mode 100644 index 0000000..e1dfc1d --- /dev/null +++ b/runtime/syntax/nasm.vim @@ -0,0 +1,589 @@ +" Vim syntax file +" Language: NASM - The Netwide Assembler (v0.98) +" Maintainer: Andrii Sokolov +" Original Author: Manuel M.H. Stol +" Former Maintainer: Manuel M.H. Stol +" Contributors: +" Leonard König (C string highlighting), +" Peter Stanhope (Add missing 64-bit mode registers) +" Frédéric Hamel (F16c support, partial AVX +" support, other) +" Last Change: 2023 Sep 7 +" NASM Home: http://www.nasm.us/ + + + +" Setup Syntax: +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +" Assembler syntax is case insensetive +syn case ignore + + + +" Vim search and movement commands on identifers +" Comments at start of a line inside which to skip search for indentifiers +setlocal comments=:; +" Identifier Keyword characters (defines \k) +setlocal iskeyword=@,48-57,#,$,.,?,@-@,_,~ + + +" Comments: +syn region nasmComment start=";" keepend end="$" contains=@nasmGrpInComments +syn region nasmSpecialComment start=";\*\*\*" keepend end="$" +syn keyword nasmInCommentTodo contained TODO FIXME XXX[XXXXX] +syn cluster nasmGrpInComments contains=nasmInCommentTodo +syn cluster nasmGrpComments contains=@nasmGrpInComments,nasmComment,nasmSpecialComment + + + +" Label Identifiers: +" in NASM: 'Everything is a Label' +" Definition Label = label defined by %[i]define or %[i]assign +" Identifier Label = label defined as first non-keyword on a line or %[i]macro +syn match nasmLabelError "$\=\(\d\+\K\|[#.@]\|\$\$\k\)\k*\>" +syn match nasmLabel "\<\(\h\|[?@]\)\k*\>" +syn match nasmLabel "[\$\~]\(\h\|[?@]\)\k*\>"lc=1 +" Labels starting with one or two '.' are special +syn match nasmLocalLabel "\<\.\(\w\|[#$?@~]\)\k*\>" +syn match nasmLocalLabel "\<\$\.\(\w\|[#$?@~]\)\k*\>"ms=s+1 +if !exists("nasm_no_warn") + syn match nasmLabelWarn "\<\~\=\$\=[_.][_.\~]*\>" +endif +if exists("nasm_loose_syntax") + syn match nasmSpecialLabel "\<\.\.@\k\+\>" + syn match nasmSpecialLabel "\<\$\.\.@\k\+\>"ms=s+1 + if !exists("nasm_no_warn") + syn match nasmLabelWarn "\<\$\=\.\.@\(\d\|[#$\.~]\)\k*\>" + endif + " disallow use of nasm internal label format + syn match nasmLabelError "\<\$\=\.\.@\d\+\.\k*\>" +else + syn match nasmSpecialLabel "\<\.\.@\(\h\|[?@]\)\k*\>" + syn match nasmSpecialLabel "\<\$\.\.@\(\h\|[?@]\)\k*\>"ms=s+1 +endif +" Labels can be dereferenced with '$' to destinguish them from reserved words +syn match nasmLabelError "\<\$\K\k*\s*:" +syn match nasmLabelError "^\s*\$\K\k*\>" +syn match nasmLabelError "\<\~\s*\(\k*\s*:\|\$\=\.\k*\)" + + + +" Constants: +syn match nasmStringError +["'`]+ +" NASM is case sensitive here: eg. u-prefix allows for 4-digit, U-prefix for +" 8-digit Unicode characters +syn case match +" one-char escape-sequences +syn match nasmCStringEscape display contained "\\[’"‘\\\?abtnvfre]" +" hex and octal numbers +syn match nasmCStringEscape display contained "\\\(x\x\{2}\|\o\{1,3}\)" +" Unicode characters +syn match nasmCStringEscape display contained "\\\(u\x\{4}\|U\x\{8}\)" +" ISO C99 format strings (copied from cFormat in runtime/syntax/c.vim) +syn match nasmCStringFormat display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlLjzt]\|ll\|hh\)\=\([aAbdiuoxXDOUfFeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained +syn match nasmCStringFormat display "%%" contained +syn match nasmString +\("[^"]\{-}"\|'[^']\{-}'\)+ +" Highlight C escape- and format-sequences within ``-strings +syn match nasmCString +\(`[^`]\{-}`\)+ contains=nasmCStringEscape,nasmCStringFormat extend +syn case ignore +syn match nasmBinNumber "\<[0-1]\+b\>" +syn match nasmBinNumber "\<\~[0-1]\+b\>"lc=1 +syn match nasmOctNumber "\<\o\+q\>" +syn match nasmOctNumber "\<\~\o\+q\>"lc=1 +syn match nasmDecNumber "\<\d\+\>" +syn match nasmDecNumber "\<\~\d\+\>"lc=1 +syn match nasmHexNumber "\<\(\d\x*h\|0x\x\+\|\$\d\x*\)\>" +syn match nasmHexNumber "\<\~\(\d\x*h\|0x\x\+\|\$\d\x*\)\>"lc=1 +syn match nasmFltNumber "\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>" +syn keyword nasmFltNumber Inf Infinity Indefinite NaN SNaN QNaN +syn match nasmNumberError "\<\~\s*\d\+\.\d*\(e[+-]\=\d\+\)\=\>" + + +" Netwide Assembler Storage Directives: +" Storage types +syn keyword nasmTypeError DF EXTRN FWORD RESF TBYTE +syn keyword nasmType FAR NEAR SHORT +syn keyword nasmType BYTE WORD DWORD QWORD DQWORD HWORD DHWORD TWORD +syn keyword nasmType CDECL FASTCALL NONE PASCAL STDCALL +syn keyword nasmStorage DB DW DD DQ DDQ DT +syn keyword nasmStorage RESB RESW RESD RESQ RESDQ REST +syn keyword nasmStorage EXTERN GLOBAL COMMON +" Structured storage types +syn match nasmTypeError "\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>" +syn match nasmStructureLabel contained "\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>" +" structures cannot be nested (yet) -> use: 'keepend' and 're=' +syn cluster nasmGrpCntnStruc contains=ALLBUT,@nasmGrpInComments,nasmMacroDef,@nasmGrpInMacros,@nasmGrpInPreCondits,nasmStructureDef,@nasmGrpInStrucs +syn region nasmStructureDef transparent matchgroup=nasmStructure keepend start="^\s*STRUCT\>"hs=e-5 end="^\s*ENDSTRUCT\>"re=e-9 contains=@nasmGrpCntnStruc +syn region nasmStructureDef transparent matchgroup=nasmStructure keepend start="^\s*STRUC\>"hs=e-4 end="^\s*ENDSTRUC\>"re=e-8 contains=@nasmGrpCntnStruc +syn region nasmStructureDef transparent matchgroup=nasmStructure keepend start="\" end="\" contains=@nasmGrpCntnStruc,nasmInStructure +" union types are not part of nasm (yet) +"syn region nasmStructureDef transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnStruc +"syn region nasmStructureDef transparent matchgroup=nasmStructure keepend start="\" end="\" contains=@nasmGrpCntnStruc,nasmInStructure +syn match nasmInStructure contained "^\s*AT\>"hs=e-1 +syn cluster nasmGrpInStrucs contains=nasmStructure,nasmInStructure,nasmStructureLabel + + + +" PreProcessor Instructions: +" NAsm PreProcs start with %, but % is not a character +syn match nasmPreProcError "%{\=\(%\=\k\+\|%%\+\k*\|[+-]\=\d\+\)}\=" +if exists("nasm_loose_syntax") + syn cluster nasmGrpNxtCtx contains=nasmStructureLabel,nasmLabel,nasmLocalLabel,nasmSpecialLabel,nasmLabelError,nasmPreProcError +else + syn cluster nasmGrpNxtCtx contains=nasmStructureLabel,nasmLabel,nasmLabelError,nasmPreProcError +endif + +" Multi-line macro +syn cluster nasmGrpCntnMacro contains=ALLBUT,@nasmGrpInComments,nasmStructureDef,@nasmGrpInStrucs,nasmMacroDef,@nasmGrpPreCondits,nasmMemReference,nasmInMacPreCondit,nasmInMacStrucDef +syn region nasmMacroDef matchgroup=nasmMacro keepend start="^\s*%macro\>"hs=e-5 start="^\s*%imacro\>"hs=e-6 end="^\s*%endmacro\>"re=e-9 contains=@nasmGrpCntnMacro,nasmInMacStrucDef +if exists("nasm_loose_syntax") + syn match nasmInMacLabel contained "%\(%\k\+\>\|{%\k\+}\)" + syn match nasmInMacLabel contained "%\($\+\(\w\|[#\.?@~]\)\k*\>\|{$\+\(\w\|[#\.?@~]\)\k*}\)" + syn match nasmInMacPreProc contained "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=nasmStructureLabel,nasmLabel,nasmInMacParam,nasmLocalLabel,nasmSpecialLabel,nasmLabelError,nasmPreProcError + if !exists("nasm_no_warn") + syn match nasmInMacLblWarn contained "%\(%[$\.]\k*\>\|{%[$\.]\k*}\)" + syn match nasmInMacLblWarn contained "%\($\+\(\d\|[#\.@~]\)\k*\|{\$\+\(\d\|[#\.@~]\)\k*}\)" + hi link nasmInMacCatLabel nasmInMacLblWarn + else + hi link nasmInMacCatLabel nasmInMacLabel + endif +else + syn match nasmInMacLabel contained "%\(%\(\w\|[#?@~]\)\k*\>\|{%\(\w\|[#?@~]\)\k*}\)" + syn match nasmInMacLabel contained "%\($\+\(\h\|[?@]\)\k*\>\|{$\+\(\h\|[?@]\)\k*}\)" + hi link nasmInMacCatLabel nasmLabelError +endif +syn match nasmInMacCatLabel contained "\d\K\k*"lc=1 +syn match nasmInMacLabel contained "\d}\k\+"lc=2 +if !exists("nasm_no_warn") + syn match nasmInMacLblWarn contained "%\(\($\+\|%\)[_~][._~]*\>\|{\($\+\|%\)[_~][._~]*}\)" +endif +syn match nasmInMacPreProc contained "^\s*%pop\>"hs=e-3 +syn match nasmInMacPreProc contained "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=@nasmGrpNxtCtx +" structures cannot be nested (yet) -> use: 'keepend' and 're=' +syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*STRUCT\>"hs=e-5 end="^\s*ENDSTRUCT\>"re=e-9 contains=@nasmGrpCntnMacro +syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*STRUC\>"hs=e-4 end="^\s*ENDSTRUC\>"re=e-8 contains=@nasmGrpCntnMacro +syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="\" end="\" contains=@nasmGrpCntnMacro,nasmInStructure +" union types are not part of nasm (yet) +"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro +"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="\" end="\" contains=@nasmGrpCntnMacro,nasmInStructure +syn region nasmInMacPreConDef contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit +" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block +syn match nasmInMacPreCondit contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx +syn match nasmInMacPreCondit contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx +syn match nasmInMacPreCondit contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx +syn match nasmInMacParamNum contained "\<\d\+\.list\>"me=e-5 +syn match nasmInMacParamNum contained "\<\d\+\.nolist\>"me=e-7 +syn match nasmInMacDirective contained "\.\(no\)\=list\>" +syn match nasmInMacMacro contained transparent "macro\s"lc=5 skipwhite nextgroup=nasmStructureLabel +syn match nasmInMacMacro contained "^\s*%rotate\>"hs=e-6 +syn match nasmInMacParam contained "%\([+-]\=\d\+\|{[+-]\=\d\+}\)" +" nasm conditional macro operands/arguments +" Todo: check feasebility; add too nasmGrpInMacros, etc. +"syn match nasmInMacCond contained "\<\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P[EO]\=\)\>" +syn cluster nasmGrpInMacros contains=nasmMacro,nasmInMacMacro,nasmInMacParam,nasmInMacParamNum,nasmInMacDirective,nasmInMacLabel,nasmInMacLblWarn,nasmInMacMemRef,nasmInMacPreConDef,nasmInMacPreCondit,nasmInMacPreProc,nasmInMacStrucDef + +" Context pre-procs that are better used inside a macro +if exists("nasm_ctx_outside_macro") + syn region nasmPreConditDef transparent matchgroup=nasmCtxPreCondit start="^\s*%ifnctx\>"hs=e-6 start="^\s*%ifctx\>"hs=e-5 end="%endif\>" contains=@nasmGrpCntnPreCon + syn match nasmCtxPreProc "^\s*%pop\>"hs=e-3 + if exists("nasm_loose_syntax") + syn match nasmCtxLocLabel "%$\+\(\w\|[#.?@~]\)\k*\>" + else + syn match nasmCtxLocLabel "%$\+\(\h\|[?@]\)\k*\>" + endif + syn match nasmCtxPreProc "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=@nasmGrpNxtCtx + syn match nasmCtxPreCondit contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx + syn match nasmCtxPreCondit contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx + syn match nasmCtxPreCondit contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx + if exists("nasm_no_warn") + hi link nasmCtxPreCondit nasmPreCondit + hi link nasmCtxPreProc nasmPreProc + hi link nasmCtxLocLabel nasmLocalLabel + else + hi link nasmCtxPreCondit nasmPreProcWarn + hi link nasmCtxPreProc nasmPreProcWarn + hi link nasmCtxLocLabel nasmLabelWarn + endif +endif + +" Conditional assembly +syn cluster nasmGrpCntnPreCon contains=ALLBUT,@nasmGrpInComments,@nasmGrpInMacros,@nasmGrpInStrucs +syn region nasmPreConditDef transparent matchgroup=nasmPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnPreCon +syn match nasmInPreCondit contained "^\s*%el\(if\|se\)\>"hs=e-4 +syn match nasmInPreCondit contained "^\s*%elifid\>"hs=e-6 +syn match nasmInPreCondit contained "^\s*%elif\(def\|idn\|nid\|num\|str\)\>"hs=e-7 +syn match nasmInPreCondit contained "^\s*%elif\(n\(def\|idn\|num\|str\)\|idni\)\>"hs=e-8 +syn match nasmInPreCondit contained "^\s*%elifnidni\>"hs=e-9 +syn cluster nasmGrpInPreCondits contains=nasmPreCondit,nasmInPreCondit,nasmCtxPreCondit +syn cluster nasmGrpPreCondits contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel + +" Other pre-processor statements +syn match nasmPreProc "^\s*%\(rep\|use\)\>"hs=e-3 +syn match nasmPreProc "^\s*%line\>"hs=e-4 +syn match nasmPreProc "^\s*%\(clear\|error\|fatal\)\>"hs=e-5 +syn match nasmPreProc "^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6 +syn match nasmPreProc "^\s*%\(exitrep\|warning\)\>"hs=e-7 +syn match nasmDefine "^\s*%undef\>"hs=e-5 +syn match nasmDefine "^\s*%\(assign\|define\)\>"hs=e-6 +syn match nasmDefine "^\s*%i\(assign\|define\)\>"hs=e-7 +syn match nasmDefine "^\s*%unmacro\>"hs=e-7 +syn match nasmInclude "^\s*%include\>"hs=e-7 +" Todo: Treat the line tail after %fatal, %error, %warning as text + +" Multiple pre-processor instructions on single line detection (obsolete) +"syn match nasmPreProcError +^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+ +syn cluster nasmGrpPreProcs contains=nasmMacroDef,@nasmGrpInMacros,@nasmGrpPreCondits,nasmPreProc,nasmDefine,nasmInclude,nasmPreProcWarn,nasmPreProcError + + + +" Register Identifiers: +" Register operands: +syn match nasmGen08Register "\<[A-D][HL]\>" +syn match nasmGen16Register "\<\([A-D]X\|[DS]I\|[BS]P\)\>" +syn match nasmGen32Register "\" +syn match nasmGen64Register "\" +syn match nasmExtRegister "\<\([SB]PL\|[SD]IL\)\>" +syn match nasmSegRegister "\<[C-GS]S\>" +syn match nasmSpcRegister "\" +syn match nasmFpuRegister "\" +syn match nasmMmxRegister "\" +syn match nasmAvxRegister "\<[XYZ]MM\d\{1,2}\>" +syn match nasmCtrlRegister "\" +syn match nasmDebugRegister "\" +syn match nasmTestRegister "\" +syn match nasmRegisterError "\<\(CR[15-9]\|DR[4-58-9]\|TR[0-28-9]\)\>" +syn match nasmRegisterError "\<[XYZ]MM\(3[2-9]\|[04-9]\d\)\>" +syn match nasmRegisterError "\\)" +syn match nasmRegisterError "\" +" Memory reference operand (address): +syn match nasmMemRefError "[[\]]" +syn cluster nasmGrpCntnMemRef contains=ALLBUT,@nasmGrpComments,@nasmGrpPreProcs,@nasmGrpInStrucs,nasmMemReference,nasmMemRefError +syn match nasmInMacMemRef contained "\[[^;[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmInMacLabel,nasmInMacLblWarn,nasmInMacParam +syn match nasmMemReference "\[[^;[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmCtxLocLabel + + + +" Netwide Assembler Directives: +" Compilation constants +syn keyword nasmConstant __BITS__ __DATE__ __FILE__ __FORMAT__ __LINE__ +syn keyword nasmConstant __NASM_MAJOR__ __NASM_MINOR__ __NASM_VERSION__ +syn keyword nasmConstant __TIME__ +" Instruction modifiers +syn match nasmInstructnError "\" +syn match nasmInstrModifier "\(^\|:\)\s*[C-GS]S\>"ms=e-1 +syn keyword nasmInstrModifier A16 A32 O16 O32 +syn match nasmInstrModifier "\"lc=5,ms=e-1 +" the 'to' keyword is not allowed for fpu-pop instructions (yet) +"syn match nasmInstrModifier "\"lc=6,ms=e-1 +" NAsm directives +syn keyword nasmRepeat TIMES +syn keyword nasmDirective ALIGN[B] INCBIN EQU NOSPLIT SPLIT +syn keyword nasmDirective ABSOLUTE BITS SECTION SEGMENT DEFAULT +syn keyword nasmDirective ENDSECTION ENDSEGMENT +syn keyword nasmDirective __SECT__ +" Macro created standard directives: (requires %include) +syn case match +syn keyword nasmStdDirective ENDPROC EPILOGUE LOCALS PROC PROLOGUE USES +syn keyword nasmStdDirective ENDIF ELSE ELIF ELSIF IF +"syn keyword nasmStdDirective BREAK CASE DEFAULT ENDSWITCH SWITCH +"syn keyword nasmStdDirective CASE OF ENDCASE +syn keyword nasmStdDirective DO ENDFOR ENDWHILE FOR REPEAT UNTIL WHILE EXIT +syn case ignore +" Format specific directives: (all formats) +" (excluded: extension directives to section, global, common and extern) +syn keyword nasmFmtDirective ORG +syn keyword nasmFmtDirective EXPORT IMPORT GROUP UPPERCASE SEG WRT +syn keyword nasmFmtDirective LIBRARY +syn case match +syn keyword nasmFmtDirective _GLOBAL_OFFSET_TABLE_ __GLOBAL_OFFSET_TABLE_ +syn keyword nasmFmtDirective ..start ..got ..gotoff ..gotpc ..plt ..sym +syn case ignore + + + +" Standard Instructions: +syn match nasmInstructnError "\<\(F\=CMOV\|SET\)N\=\a\{0,2}\>" +syn keyword nasmInstructnError CMPS MOVS LCS LODS STOS XLAT +syn match nasmStdInstruction "\" +syn match nasmInstructnError "\\s*[^:]"he=e-1 +syn match nasmStdInstruction "\<\(CMOV\|J\|SET\)\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P[EO]\=\)\>" +syn match nasmStdInstruction "\" +syn keyword nasmStdInstruction AAA AAD AAM AAS ADC ADD AND +syn keyword nasmStdInstruction BOUND BSF BSR BSWAP BT[C] BTR BTS +syn keyword nasmStdInstruction CALL CBW CDQ CDQE CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ +syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E] CQO +syn keyword nasmStdInstruction DAA DAS DEC DIV ENTER +syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ +syn keyword nasmStdInstruction JCXZ JECXZ JMP +syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ +syn keyword nasmStdInstruction LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS +syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT +syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW POPFQ +syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ +syn keyword nasmStdInstruction PAUSE +syn keyword nasmStdInstruction RCL RCR RETF RET[N] ROL ROR +syn keyword nasmStdInstruction SAHF SAL SAR SBB SCASB SCASD SCASW +syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB +syn keyword nasmStdInstruction TEST XADD XCHG XLATB XOR +syn keyword nasmStdInstruction LFENCE MFENCE SFENCE + + +" System Instructions: (usually privileged) +" Verification of pointer parameters +syn keyword nasmSysInstruction ARPL LAR LSL VERR VERW +" Addressing descriptor tables +syn keyword nasmSysInstruction LLDT SLDT LGDT SGDT +" Multitasking +syn keyword nasmSysInstruction LTR STR +" Coprocessing and Multiprocessing (requires fpu and multiple cpu's resp.) +syn keyword nasmSysInstruction CLTS LOCK WAIT +" Input and Output +syn keyword nasmInstructnError INS OUTS +syn keyword nasmSysInstruction IN INSB INSW INSD OUT OUTSB OUTSB OUTSW OUTSD +" Interrupt control +syn keyword nasmSysInstruction CLI STI LIDT SIDT +" System control +syn match nasmSysInstruction "\"me=s+3 +syn keyword nasmSysInstruction HLT INVD LMSW +syn keyword nasmSseInstruction PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA +syn keyword nasmSseInstruction RSM SFENCE SMSW SYSENTER SYSEXIT UD2 WBINVD +" TLB (Translation Lookahead Buffer) testing +syn match nasmSysInstruction "\"me=s+3 +syn keyword nasmSysInstruction INVLPG + +" Debugging Instructions: (privileged) +syn match nasmDbgInstruction "\"me=s+3 +syn keyword nasmDbgInstruction INT1 INT3 RDMSR RDTSC RDPMC WRMSR + + +" Floating Point Instructions: (requires FPU) +syn match nasmFpuInstruction "\" +syn keyword nasmFpuInstruction F2XM1 FABS FADD[P] FBLD FBSTP +syn keyword nasmFpuInstruction FCHS FCLEX FCOM[IP] FCOMP[P] FCOS +syn keyword nasmFpuInstruction FDECSTP FDISI FDIV[P] FDIVR[P] FENI FFREE +syn keyword nasmFpuInstruction FIADD FICOM[P] FIDIV[R] FILD +syn keyword nasmFpuInstruction FIMUL FINCSTP FINIT FIST[P] FISUB[R] +syn keyword nasmFpuInstruction FLD[1] FLDCW FLDENV FLDL2E FLDL2T FLDLG2 +syn keyword nasmFpuInstruction FLDLN2 FLDPI FLDZ FMUL[P] +syn keyword nasmFpuInstruction FNCLEX FNDISI FNENI FNINIT FNOP FNSAVE +syn keyword nasmFpuInstruction FNSTCW FNSTENV FNSTSW FNSTSW +syn keyword nasmFpuInstruction FPATAN FPREM[1] FPTAN FRNDINT FRSTOR +syn keyword nasmFpuInstruction FSAVE FSCALE FSETPM FSIN FSINCOS FSQRT +syn keyword nasmFpuInstruction FSTCW FSTENV FST[P] FSTSW FSUB[P] FSUBR[P] +syn keyword nasmFpuInstruction FTST FUCOM[IP] FUCOMP[P] +syn keyword nasmFpuInstruction FXAM FXCH FXTRACT FYL2X FYL2XP1 + + +" Multi Media Xtension Packed Instructions: (requires MMX unit) +" Standard MMX instructions: (requires MMX1 unit) +syn match nasmInstructnError "\" +syn match nasmInstructnError "\" +syn keyword nasmMmxInstruction EMMS MOVD MOVQ +syn keyword nasmMmxInstruction PACKSSDW PACKSSWB PACKUSWB PADDB PADDD PADDW +syn keyword nasmMmxInstruction PADDSB PADDSW PADDUSB PADDUSW PAND[N] +syn keyword nasmMmxInstruction PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD PCMPGTW +syn keyword nasmMmxInstruction PMACHRIW PMADDWD PMULHW PMULLW POR +syn keyword nasmMmxInstruction PSLLD PSLLQ PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW +syn keyword nasmMmxInstruction PSUBB PSUBD PSUBW PSUBSB PSUBSW PSUBUSB PSUBUSW +syn keyword nasmMmxInstruction PUNPCKHBW PUNPCKHDQ PUNPCKHWD +syn keyword nasmMmxInstruction PUNPCKLBW PUNPCKLDQ PUNPCKLWD PXOR +" Extended MMX instructions: (requires MMX2/SSE unit) +syn keyword nasmMmxInstruction MASKMOVQ MOVNTQ +syn keyword nasmMmxInstruction PAVGB PAVGW PEXTRW PINSRW PMAXSW PMAXUB +syn keyword nasmMmxInstruction PMINSW PMINUB PMOVMSKB PMULHUW PSADBW PSHUFW + + +" Streaming SIMD Extension Packed Instructions: (requires SSE unit) +syn match nasmInstructnError "\" +syn match nasmSseInstruction "\" +syn keyword nasmSseInstruction ADDPS ADDSS ANDNPS ANDPS +syn keyword nasmSseInstruction COMISS CVTPI2PS CVTPS2PI +syn keyword nasmSseInstruction CVTSI2SS CVTSS2SI CVTTPS2PI CVTTSS2SI +syn keyword nasmSseInstruction DIVPS DIVSS FXRSTOR FXSAVE LDMXCSR +syn keyword nasmSseInstruction MAXPS MAXSS MINPS MINSS MOVAPS MOVHLPS MOVHPS +syn keyword nasmSseInstruction MOVLHPS MOVLPS MOVMSKPS MOVNTPS MOVSS MOVUPS +syn keyword nasmSseInstruction MULPS MULSS +syn keyword nasmSseInstruction ORPS RCPPS RCPSS RSQRTPS RSQRTSS +syn keyword nasmSseInstruction SHUFPS SQRTPS SQRTSS STMXCSR SUBPS SUBSS +syn keyword nasmSseInstruction UCOMISS UNPCKHPS UNPCKLPS XORPS + +" F16c Instructions +syn keyword nasmF16CInstruction VCVTPH2PS VCVTPS2PH + +" AVX Instructions +syn keyword nasmAVXInstruction VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2P VCVTPD2PS +syn keyword nasmAVXInstruction VCVTPS2DQ VCVTPS2PD +syn keyword nasmAVXInstruction VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS VCVTSS2SD VCVTSS2SI +syn keyword nasmAVXInstruction VMAXPS VMAXSS VMINPS VMINSS VMOVAPS VMOVHLPS VMOVHPS +syn keyword nasmAVXInstruction VMAXPD VMAXSD VMINPD VMINSD VMOVAPD VMOVHLPD VMOVHPD +syn keyword nasmAVXInstruction VMOVLHPS VMOVLPS VMOVMSKPS VMOVNTPS VMOVSS VMOVUPS +syn keyword nasmAVXInstruction VMULPS VMULSS VPXOR + +syn match nasmInstructnError "\" +syn match nasmAVXInstruction "\" + +syn keyword nasmAVXInstruction VORPS VPABSB VPABSD VPABSW +syn keyword nasmAVXInstruction PACKSSDW VPACKSSWB VPACKUSDW VPACKUSWB VPADDD +syn keyword nasmAVXInstruction PADDQ VPADDSB VPADDSW VPADDUSB VPADDUSW +syn keyword nasmAVXInstruction PADDW VPALIGNR VPAND VPANDN VPAVGB +syn keyword nasmAVXInstruction PAVGW VPBLENDD VPBLENDVB VPBLENDW VPBROADCASTB +syn keyword nasmAVXInstruction PBROADCASTD VPBROADCASTQ VPBROADCASTW VPCLMULQDQ VPCMOV +syn keyword nasmAVXInstruction PCMPEQB VPCMPEQD VPCMPEQQ VPCMPEQW VPCMPESTRI +syn keyword nasmAVXInstruction PCMPESTRM VPCMPGTB VPCMPGTD VPCMPGTQ VPCMPGTW +syn keyword nasmAVXInstruction PCMPISTRI VPCMPISTRM VPCOMB VPCOMD VPCOMQ +syn keyword nasmAVXInstruction PCOMUB VPCOMUD VPCOMUQ VPCOMUW VPCOMW +syn keyword nasmAVXInstruction PERM2FVPERM2IVPERMD VPERMIL2PD VPERMIL2PS VPERMILPD VPERMILPS +syn keyword nasmAVXInstruction PERMPD VPERMPS VPERMQ VPEXTRB VPEXTRD +syn keyword nasmAVXInstruction PEXTRQ VPEXTRW VPGATHERDD VPGATHERDQ VPGATHERQD +syn keyword nasmAVXInstruction PGATHERQQ VPHADDBD VPHADDBQ VPHADDBW VPHADDD +syn keyword nasmAVXInstruction PHADDDQ VPHADDSW VPHADDUBQ VPHADDUBW VPHADDUDQ +syn keyword nasmAVXInstruction PHADDUWD VPHADDUWQ VPHADDW VPHADDWD VPHADDWQ +syn keyword nasmAVXInstruction PHMINPOSUW VPHSUBBW VPHSUBD VPHSUBDQ VPHSUBSW +syn keyword nasmAVXInstruction PHSUBW VPHSUBWD VPINSRB VPINSRD VPINSRQ +syn keyword nasmAVXInstruction PINSRW VPMACSDD VPMACSDQH +syn keyword nasmAVXInstruction VPMACSDQL VPMACSSDD VPMACSSDQL VPMACSSQH VPMACSSWD +syn keyword nasmAVXInstruction VPMACSSWW VPMACSWD VPMACSWW VPMADCSSWD VPMADCSWD +syn keyword nasmAVXInstruction VPMADDUBSW VPMADDWD VPMASKMOVD VPMASKMOVQ VPMAXSB +syn keyword nasmAVXInstruction VPMAXSD VPMAXSW VPMAXUB VPMAXUD VPMAXUW +syn keyword nasmAVXInstruction VPMINSB VPMINSD VPMINSW VPMINUB VPMINUD +syn keyword nasmAVXInstruction VPMINUW VPMOVMSKB VPMOVSXBD VPMOVSXBQ VPMOVSXBW +syn keyword nasmAVXInstruction VPMOVSXDQ VPMOVSXWD VPMOVSXWQ VPMOVZXBD VPMOVZXBQ +syn keyword nasmAVXInstruction VPMOVZXBW VPMOVZXDQ VPMOVZXWD VPMOVZXWQ VPMULDQ +syn keyword nasmAVXInstruction VPMULHRSW VPMULHUW VPMULHW VPMULLD VPMULLW +syn keyword nasmAVXInstruction VPMULUDQ VPOR VPPERM VPROTB VPROTD +syn keyword nasmAVXInstruction VPROTQ VPROTW VPSADBW VPSHAB VPSHAD +syn keyword nasmAVXInstruction VPSHAQ VPSHAW VPSHLB VPSHLD VPSHLQ +syn keyword nasmAVXInstruction VPSHLW VPSHUFB VPSHUFD VPSHUFHW VPSHUFLW +syn keyword nasmAVXInstruction VPSIGNB VPSIGND VPSIGNW VPSLLD VPSLLDQ +syn keyword nasmAVXInstruction VPSLLQ VPSLLVD VPSLLVQ VPSLLW VPSRAD +syn keyword nasmAVXInstruction VPSRAVD VPSRAW VPSRLD VPSRLDQ VPSRLQ +syn keyword nasmAVXInstruction VPSRLVD VPSRLVQ VPSRLW VPSUBB VPSUBD +syn keyword nasmAVXInstruction VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW +syn keyword nasmAVXInstruction VPSUBW VPTEST VPUNPCKHBW VPUNPCKHDQ VPUNPCKHQDQ +syn keyword nasmAVXInstruction VPUNPCKHWD VPUNPCKLBW VPUNPCKLDQ VPUNPCKLQDQ VPUNPCKLWD +syn keyword nasmAVXInstruction VPXOR VRCPPS + + +" Three Dimensional Now Packed Instructions: (requires 3DNow! unit) +syn keyword nasmNowInstruction FEMMS PAVGUSB PF2ID PFACC PFADD PFCMPEQ PFCMPGE +syn keyword nasmNowInstruction PFCMPGT PFMAX PFMIN PFMUL PFRCP PFRCPIT1 +syn keyword nasmNowInstruction PFRCPIT2 PFRSQIT1 PFRSQRT PFSUB[R] PI2FD +syn keyword nasmNowInstruction PMULHRWA PREFETCH[W] + + +" Vendor Specific Instructions: +" Cyrix instructions (requires Cyrix processor) +syn keyword nasmCrxInstruction PADDSIW PAVEB PDISTIB PMAGW PMULHRW[C] PMULHRIW +syn keyword nasmCrxInstruction PMVGEZB PMVLZB PMVNZB PMVZB PSUBSIW +syn keyword nasmCrxInstruction RDSHR RSDC RSLDT SMINT SMINTOLD SVDC SVLDT SVTS +syn keyword nasmCrxInstruction WRSHR +" AMD instructions (requires AMD processor) +syn keyword nasmAmdInstruction SYSCALL SYSRET + + +" Undocumented Instructions: +syn match nasmUndInstruction "\"me=s+3 +syn keyword nasmUndInstruction CMPXCHG486 IBTS ICEBP INT01 INT03 LOADALL +syn keyword nasmUndInstruction LOADALL286 LOADALL386 SALC SMI UD1 UMOV XBTS + + + +" Synchronize Syntax: +syn sync clear +syn sync minlines=50 "for multiple region nesting +syn sync match nasmSync grouphere nasmMacroDef "^\s*%i\=macro\>"me=s-1 +syn sync match nasmSync grouphere NONE "^\s*%endmacro\>" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" Sub Links: +hi def link nasmInMacDirective nasmDirective +hi def link nasmInMacLabel nasmLocalLabel +hi def link nasmInMacLblWarn nasmLabelWarn +hi def link nasmInMacMacro nasmMacro +hi def link nasmInMacParam nasmMacro +hi def link nasmInMacParamNum nasmDecNumber +hi def link nasmInMacPreCondit nasmPreCondit +hi def link nasmInMacPreProc nasmPreProc +hi def link nasmInPreCondit nasmPreCondit +hi def link nasmInStructure nasmStructure +hi def link nasmStructureLabel nasmStructure + +" Comment Group: +hi def link nasmComment Comment +hi def link nasmSpecialComment SpecialComment +hi def link nasmInCommentTodo Todo + +" Constant Group: +hi def link nasmString String +hi def link nasmCString String +hi def link nasmStringError Error +hi def link nasmCStringEscape SpecialChar +hi def link nasmCStringFormat SpecialChar +hi def link nasmBinNumber Number +hi def link nasmOctNumber Number +hi def link nasmDecNumber Number +hi def link nasmHexNumber Number +hi def link nasmFltNumber Float +hi def link nasmNumberError Error + +" Identifier Group: +hi def link nasmLabel Identifier +hi def link nasmLocalLabel Identifier +hi def link nasmSpecialLabel Special +hi def link nasmLabelError Error +hi def link nasmLabelWarn Todo + +" PreProc Group: +hi def link nasmPreProc PreProc +hi def link nasmDefine Define +hi def link nasmInclude Include +hi def link nasmMacro Macro +hi def link nasmPreCondit PreCondit +hi def link nasmPreProcError Error +hi def link nasmPreProcWarn Todo + +" Type Group: +hi def link nasmType Type +hi def link nasmStorage StorageClass +hi def link nasmStructure Structure +hi def link nasmTypeError Error + +" Directive Group: +hi def link nasmConstant Constant +hi def link nasmInstrModifier Operator +hi def link nasmRepeat Repeat +hi def link nasmDirective Keyword +hi def link nasmStdDirective Operator +hi def link nasmFmtDirective Keyword + +" Register Group: +hi def link nasmCtrlRegister Special +hi def link nasmDebugRegister Debug +hi def link nasmTestRegister Special +hi def link nasmRegisterError Error +hi def link nasmMemRefError Error + +" Instruction Group: +hi def link nasmStdInstruction Statement +hi def link nasmSysInstruction Statement +hi def link nasmDbgInstruction Debug +hi def link nasmFpuInstruction Statement +hi def link nasmMmxInstruction Statement +hi def link nasmSseInstruction Statement +hi def link nasmF16cInstruction Statement +hi def link nasmAVXInstruction Statement +hi def link nasmNowInstruction Statement +hi def link nasmAmdInstruction Special +hi def link nasmCrxInstruction Special +hi def link nasmUndInstruction Todo +hi def link nasmInstructnError Error + +let b:current_syntax = "nasm" + +" vim:ts=8 sw=4 diff --git a/runtime/syntax/nastran.vim b/runtime/syntax/nastran.vim new file mode 100644 index 0000000..239fd6e --- /dev/null +++ b/runtime/syntax/nastran.vim @@ -0,0 +1,181 @@ +" Vim syntax file +" Language: NASTRAN input/DMAP +" Maintainer: Tom Kowalski +" Last change: April 27, 2001 +" Thanks to the authors and maintainers of fortran.vim. +" Since DMAP shares some traits with fortran, this syntax file +" is based on the fortran.vim syntax file. +"---------------------------------------------------------------------- +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +" DMAP is not case dependent +syn case ignore +" +"--------------------DMAP SYNTAX--------------------------------------- +" +" -------Executive Modules and Statements +" +syn keyword nastranDmapexecmod call dbview delete end equiv equivx exit +syn keyword nastranDmapexecmod file message purge purgex return subdmap +syn keyword nastranDmapType type +syn keyword nastranDmapLabel go to goto +syn keyword nastranDmapRepeat if else elseif endif then +syn keyword nastranDmapRepeat do while +syn region nastranDmapString start=+"+ end=+"+ oneline +syn region nastranDmapString start=+'+ end=+'+ oneline +" If you don't like initial tabs in dmap (or at all) +"syn match nastranDmapIniTab "^\t.*$" +"syn match nastranDmapTab "\t" + +" Any integer +syn match nastranDmapNumber "-\=\<[0-9]\+\>" +" floating point number, with dot, optional exponent +syn match nastranDmapFloat "\<[0-9]\+\.[0-9]*\([edED][-+]\=[0-9]\+\)\=\>" +" floating point number, starting with a dot, optional exponent +syn match nastranDmapFloat "\.[0-9]\+\([edED][-+]\=[0-9]\+\)\=\>" +" floating point number, without dot, with exponent +syn match nastranDmapFloat "\<[0-9]\+[edED][-+]\=[0-9]\+\>" + +syn match nastranDmapLogical "\(true\|false\)" + +syn match nastranDmapPreCondit "^#define\>" +syn match nastranDmapPreCondit "^#include\>" +" +" -------Comments may be contained in another line. +" +syn match nastranDmapComment "^[\$].*$" +syn match nastranDmapComment "\$.*$" +syn match nastranDmapComment "^[\$].*$" contained +syn match nastranDmapComment "\$.*$" contained +" Treat all past 72nd column as a comment. Do not work with tabs! +" Breaks down when 72-73rd column is in another match (eg number or keyword) +syn match nastranDmapComment "^.\{-72}.*$"lc=72 contained + +" +" -------Utility Modules +" +syn keyword nastranDmapUtilmod append copy dbc dbdict dbdir dmin drms1 +syn keyword nastranDmapUtilmod dtiin eltprt ifp ifp1 inputt2 inputt4 lamx +syn keyword nastranDmapUtilmod matgen matgpr matmod matpch matprn matprt +syn keyword nastranDmapUtilmod modtrl mtrxin ofp output2 output4 param +syn keyword nastranDmapUtilmod paraml paramr prtparam pvt scalar +syn keyword nastranDmapUtilmod seqp setval tabedit tabprt tabpt vec vecplot +syn keyword nastranDmapUtilmod xsort +" +" -------Matrix Modules +" +syn keyword nastranDmapMatmod add add5 cead dcmp decomp diagonal fbs merge +syn keyword nastranDmapMatmod mpyad norm read reigl smpyad solve solvit +syn keyword nastranDmapMatmod trnsp umerge umerge1 upartn dmiin partn +syn region nastranDmapMatmod start=+^ *[Dd][Mm][Ii]+ end=+[\/]+ +" +" -------Implicit Functions +" +syn keyword nastranDmapImplicit abs acos acosh andl asin asinh atan atan2 +syn keyword nastranDmapImplicit atanh atanh2 char clen clock cmplx concat1 +syn keyword nastranDmapImplicit concat2 concat3 conjg cos cosh dble diagoff +syn keyword nastranDmapImplicit diagon dim dlablank dlxblank dprod eqvl exp +syn keyword nastranDmapImplicit getdiag getsys ichar imag impl index indexstr +syn keyword nastranDmapImplicit int itol leq lge lgt lle llt lne log log10 +syn keyword nastranDmapImplicit logx ltoi mcgetsys mcputsys max min mod neqvl +syn keyword nastranDmapImplicit nint noop normal notl numeq numge numgt numle +syn keyword nastranDmapImplicit numlt numne orl pi precison putdiag putsys +syn keyword nastranDmapImplicit rand rdiagon real rtimtogo setcore sign sin +syn keyword nastranDmapImplicit sinh sngl sprod sqrt substrin tan tanh +syn keyword nastranDmapImplicit timetogo wlen xorl +" +" +"--------------------INPUT FILE SYNTAX--------------------------------------- +" +" +" -------Nastran Statement +" +syn keyword nastranNastranCard nastran +" +" -------The File Management Section (FMS) +" +syn region nastranFMSCard start=+^ *[Aa][Cc][Qq][Uu][Ii]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Aa][Ss][Ss][Ii][Gg]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Cc][oO][Nn][Nn][Ee]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Cc][Ll][Ee]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Cc]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Rr]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Ff][Ii][Xx]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Aa]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Cc]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Ss][Ee][Tt]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Nn][Ll]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Pp][Dd]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Dd][Ee][Ff][Ii][Nn]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Ee][Nn][Dd][Jj][Oo]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Ee][Xx][Pp][Aa][Nn]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Ii][Nn][Ii][Tt]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Pp][Rr][Oo][Jj]+ end=+$+ oneline +syn region nastranFMSCard start=+^ *[Rr][Ee][Ss][Tt]+ end=+$+ oneline +syn match nastranDmapUtilmod "^ *[Rr][Ee][Ss][Tt][Aa].*,.*," contains=nastranDmapComment +" +" -------Executive Control Section +" +syn region nastranECSCard start=+^ *[Aa][Ll][Tt][Ee][Rr]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Aa][Pp][Pp]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Cc][Oo][Mm][Pp][Ii]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Dd][Ii][Aa][Gg] + end=+$+ oneline +syn region nastranECSCard start=+^ *[Ee][Cc][Hh][Oo]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Ee][Nn][Dd][Aa][Ll]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Ii][Dd]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Ll][Ii][Nn][Kk]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Mm][Aa][Ll][Tt][Ee]+ end=+$+ oneline +syn region nastranECSCard start=+^ *[Ss][Oo][Ll] + end=+$+ oneline +syn region nastranECSCard start=+^ *[Tt][Ii][Mm][Ee]+ end=+$+ oneline +" +" -------Delimiters +" +syn match nastranDelimiter "[Cc][Ee][Nn][Dd]" contained +syn match nastranDelimiter "[Bb][Ee][Gg][Ii][Nn]" contained +syn match nastranDelimiter " *[Bb][Uu][Ll][Kk]" contained +syn match nastranDelimiter "[Ee][Nn][Dd] *[dD][Aa][Tt][Aa]" contained +" +" -------Case Control section +" +syn region nastranCC start=+^ *[Cc][Ee][Nn][Dd]+ end=+^ *[Bb][Ee][Gg][Ii][Nn]+ contains=nastranDelimiter,nastranBulkData,nastranDmapComment + +" +" -------Bulk Data section +" +syn region nastranBulkData start=+ *[Bb][Uu][Ll][Kk] *$+ end=+^ [Ee][Nn][Dd] *[Dd]+ contains=nastranDelimiter,nastranDmapComment +" +" -------The following cards may appear in multiple sections of the file +" +syn keyword nastranUtilCard ECHOON ECHOOFF INCLUDE PARAM + + +" The default methods for highlighting. Can be overridden later +hi def link nastranDmapexecmod Statement +hi def link nastranDmapType Type +hi def link nastranDmapPreCondit Error +hi def link nastranDmapUtilmod PreProc +hi def link nastranDmapMatmod nastranDmapUtilmod +hi def link nastranDmapString String +hi def link nastranDmapNumber Constant +hi def link nastranDmapFloat nastranDmapNumber +hi def link nastranDmapInitTab nastranDmapNumber +hi def link nastranDmapTab nastranDmapNumber +hi def link nastranDmapLogical nastranDmapExecmod +hi def link nastranDmapImplicit Identifier +hi def link nastranDmapComment Comment +hi def link nastranDmapRepeat nastranDmapexecmod +hi def link nastranNastranCard nastranDmapPreCondit +hi def link nastranECSCard nastranDmapUtilmod +hi def link nastranFMSCard nastranNastranCard +hi def link nastranCC nastranDmapexecmod +hi def link nastranDelimiter Special +hi def link nastranBulkData nastranDmapType +hi def link nastranUtilCard nastranDmapexecmod + +let b:current_syntax = "nastran" + +"EOF vim: ts=8 noet tw=120 sw=8 sts=0 diff --git a/runtime/syntax/natural.vim b/runtime/syntax/natural.vim new file mode 100644 index 0000000..be529f2 --- /dev/null +++ b/runtime/syntax/natural.vim @@ -0,0 +1,201 @@ +" Vim syntax file +" +" Language: NATURAL +" Version: 2.1.0.5 +" Maintainer: Marko von Oppen +" Last Changed: 2012-02-05 18:50:43 +" Support: http://www.von-oppen.com/ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +setlocal iskeyword+=-,*,#,+,_,/ + +let s:cpo_save = &cpo +set cpo&vim + +" NATURAL is case insensitive +syntax case ignore + +" preprocessor +syn keyword naturalInclude include nextgroup=naturalObjName skipwhite + +" define data +syn keyword naturalKeyword define data end-define +syn keyword naturalKeyword independent global parameter local redefine view +syn keyword naturalKeyword const[ant] init initial + +" loops +syn keyword naturalLoop read end-read end-work find end-find histogram end-histogram +syn keyword naturalLoop end-all sort end-sort sorted descending ascending +syn keyword naturalRepeat repeat end-repeat while until for step end-for +syn keyword naturalKeyword in file with field starting from ending at thru by isn where +syn keyword naturalError on error end-error +syn keyword naturalKeyword accept reject end-enddata number unique retain as release +syn keyword naturalKeyword start end-start break end-break physical page top sequence +syn keyword naturalKeyword end-toppage end-endpage end-endfile before processing +syn keyword naturalKeyword end-before + +" conditionals +syn keyword naturalConditional if then else end-if end-norec +syn keyword naturalConditional decide end-decide value when condition none any + +" assignment / calculation +syn keyword naturalKeyword reset assign move left right justified compress to into edited +syn keyword naturalKeyword add subtract multiply divide compute name +syn keyword naturalKeyword all giving remainder rounded leaving space numeric +syn keyword naturalKeyword examine full replace giving separate delimiter modified +syn keyword naturalKeyword suspend identical suppress + +" program flow +syn keyword naturalFlow callnat fetch return enter escape bottom top stack formatted +syn keyword naturalFlow command call +syn keyword naturalflow end-subroutine routine + +" file operations +syn keyword naturalKeyword update store get delete end transaction work once close + +" other keywords +syn keyword naturalKeyword first every of no record[s] found ignore immediate +syn keyword naturalKeyword set settime key control stop terminate + +" in-/output +syn keyword naturalKeyword write display input reinput notitle nohdr map newpage +syn keyword naturalKeyword alarm text help eject index window base size +syn keyword naturalKeyword format printer skip lines + +" functions +syn keyword naturalKeyword abs atn cos exp frac int log sgn sin sqrt tan val old +syn keyword naturalKeyword pos + +" report mode keywords +syn keyword naturalRMKeyword same loop obtain indexed do doend + +" Subroutine name +syn keyword naturalFlow perform subroutine nextgroup=naturalFunction skipwhite +syn match naturalFunction "\<[a-z][-_a-z0-9]*\>" + +syn keyword naturalFlow using nextgroup=naturalKeyword,naturalObjName skipwhite +syn match naturalObjName "\<[a-z][-_a-z0-9]\{,7}\>" + +" Labels +syn match naturalLabel "\<[+#a-z][-_#a-z0-9]*\." +syn match naturalRef "\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][*]\=[-_#a-z0-9]*\>" + +" mark keyword special handling +syn keyword naturalKeyword mark nextgroup=naturalMark skipwhite +syn match naturalMark "\<\*[a-z][-_#.a-z0-9]*\>" + +" System variables +syn match naturalSysVar "\<\*[a-z][-a-z0-9]*\>" + +"integer number, or floating point number without a dot. +syn match naturalNumber "\<-\=\d\+\>" +"floating point number, with dot +syn match naturalNumber "\<-\=\d\+\.\d\+\>" +"floating point number, starting with a dot +syn match naturalNumber "\.\d\+" + +" Formats in write statement +syn match naturalFormat "\<\d\+[TX]\>" + +" String and Character contstants +syn match naturalString "H'\x\+'" +syn region naturalString start=+"+ end=+"+ +syn region naturalString start=+'+ end=+'+ + +" Type definition +syn match naturalAttribute "\<[-a-z][a-z]=[-a-z0-9_\.,]\+\>" +syn match naturalType contained "\<[ABINP]\d\+\(,\d\+\)\=\>" +syn match naturalType contained "\<[CL]\>" + +" "TODO" / other comments +syn keyword naturalTodo contained todo test +syn match naturalCommentMark contained "[a-z][^ \t/:|]*\(\s[^ \t/:'"|]\+\)*:\s"he=e-1 + +" comments +syn region naturalComment start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark +syn region naturalComment start="^\*[ *]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark +syn region naturalComment start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark +syn match naturalComment "^\*$" +syn match naturalComment "^\d\{4} \*$"lc=5 +" /* is legal syntax in parentheses e.g. "#ident(label./*)" +syn region naturalPComment contained start="/\*\s*[^),]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark + +" operators +syn keyword naturalOperator and or not eq ne gt lt ge le mask scan modified + +" constants +syn keyword naturalBoolean true false +syn match naturalLineNo "^\d\{4}" + +" identifiers +syn match naturalIdent "\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1 +syn match naturalIdent "\<[+#a-z][-_#a-z0-9]*$" +syn match naturalLegalIdent "[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*" + +" parentheses +syn region naturalPar matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment +syn match naturalLineRef "(\d\{4})" + +" build syntax groups +syntax cluster naturalConstant contains=naturalString,naturalNumber,naturalAttribute,naturalBoolean + +" folding +if v:version >= 600 + set foldignore=* +endif + + +" The default methods for highlighting. Can be overridden later + +" Constants +hi def link naturalFormat Constant +hi def link naturalAttribute Constant +hi def link naturalNumber Number +hi def link naturalString String +hi def link naturalBoolean Boolean + +" All kinds of keywords +hi def link naturalConditional Conditional +hi def link naturalRepeat Repeat +hi def link naturalLoop Repeat +hi def link naturalFlow Keyword +hi def link naturalError Keyword +hi def link naturalKeyword Keyword +hi def link naturalOperator Operator +hi def link naturalParGui Operator + +" Labels +hi def link naturalLabel Label +hi def link naturalRefLabel Label + +" Comments +hi def link naturalPComment Comment +hi def link naturalComment Comment +hi def link naturalTodo Todo +hi def link naturalCommentMark PreProc + +hi def link naturalInclude Include +hi def link naturalSysVar Identifier +hi def link naturalLineNo LineNr +hi def link naturalLineRef Error +hi def link naturalSpecial Special +hi def link naturalComKey Todo + +" illegal things +hi def link naturalRMKeyword Error +hi def link naturalLegalIdent Error + +hi def link naturalType Type +hi def link naturalFunction Function +hi def link naturalObjName PreProc + + +let b:current_syntax = "natural" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set ts=8 sw=8 noet ft=vim list: diff --git a/runtime/syntax/ncf.vim b/runtime/syntax/ncf.vim new file mode 100644 index 0000000..0027fd4 --- /dev/null +++ b/runtime/syntax/ncf.vim @@ -0,0 +1,247 @@ +" Vim syntax file +" Language: Novell "NCF" Batch File +" Maintainer: Jonathan J. Miner +" Last Change: Tue, 04 Sep 2001 16:20:33 CDT +" $Id: ncf.vim,v 1.1 2004/06/13 16:31:58 vimboss Exp $ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn keyword ncfCommands mount load unload +syn keyword ncfBoolean on off +syn keyword ncfCommands set nextgroup=ncfSetCommands +syn keyword ncfTimeTypes Reference Primary Secondary Single +syn match ncfLoad "\(unl\|l\)oad .*"lc=4 contains=ALLBUT,Error +syn match ncfMount "mount .*"lc=5 contains=ALLBUT,Error + +syn match ncfComment "^\ *rem.*$" +syn match ncfComment "^\ *;.*$" +syn match ncfComment "^\ *#.*$" + +syn match ncfSearchPath "search \(add\|del\) " nextgroup=ncfPath +syn match ncfPath "\<[^: ]\+:\([A-Za-z0-9._]\|\\\)*\>" +syn match ncfServerName "^file server name .*$" +syn match ncfIPXNet "^ipx internal net" + +" String +syn region ncfString start=+"+ end=+"+ +syn match ncfContString "= \(\(\.\{0,1}\(OU=\|O=\)\{0,1}[A-Z_]\+\)\+;\{0,1}\)\+"lc=2 + +syn match ncfHexNumber "\<\d\(\d\+\|[A-F]\+\)*\>" +syn match ncfNumber "\<\d\+\.\{0,1}\d*\>" +syn match ncfIPAddr "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" +syn match ncfTime "\(+|=\)\{0,1}\d\{1,2}:\d\{1,2}:\d\{1,2}" +syn match ncfDSTTime "([^ ]\+ [^ ]\+ \(FIRST\|LAST\)\s*\d\{1,2}:\d\{1,2}:\d\{1,2} \(AM\|PM\))" +syn match ncfTimeZone "[A-Z]\{3}\d[A-Z]\{3}" + +syn match ncfLogins "^\([Dd]is\|[Ee]n\)able login[s]*" +syn match ncfScript "[^ ]*\.ncf" + +" SET Commands that take a Number following +syn match ncfSetCommandsNum "\(Alert Message Nodes\)\s*=" +syn match ncfSetCommandsNum "\(Auto Restart After Abend\)\s*=" +syn match ncfSetCommandsNum "\(Auto Restart After Abend Delay Time\)\s*=" +syn match ncfSetCommandsNum "\(Compression Daily Check Starting Hour\)\s*=" +syn match ncfSetCommandsNum "\(Compression Daily Check Stop Hour\)\s*=" +syn match ncfSetCommandsNum "\(Concurrent Remirror Requests\)\s*=" +syn match ncfSetCommandsNum "\(Convert Compressed to Uncompressed Option\)\s*=" +syn match ncfSetCommandsNum "\(Days Untouched Before Compression\)\s*=" +syn match ncfSetCommandsNum "\(Decompress Free Space Warning Interval\)\s*=" +syn match ncfSetCommandsNum "\(Decompress Percent Disk Space Free to Allow Commit\)\s*=" +syn match ncfSetCommandsNum "\(Deleted Files Compression Option\)\s*=" +syn match ncfSetCommandsNum "\(Directory Cache Allocation Wait Time\)\s*=" +syn match ncfSetCommandsNum "\(Enable IPX Checksums\)\s*=" +syn match ncfSetCommandsNum "\(Garbage Collection Interval\)\s*=" +syn match ncfSetCommandsNum "\(IPX NetBIOS Replication Option\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Concurrent Compressions\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Concurrent Directory Cache Writes\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Concurrent Disk Cache Writes\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Directory Cache Buffers\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Extended Attributes per File or Path\)\s*=" +syn match ncfSetCommandsNum "\(Maximum File Locks\)\s*=" +syn match ncfSetCommandsNum "\(Maximum File Locks Per Connection\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Interrupt Events\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Number of Directory Handles\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Number of Internal Directory Handles\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Outstanding NCP Searches\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Packet Receive Buffers\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Physical Receive Packet Size\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Record Locks\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Record Locks Per Connection\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Service Processes\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Subdirectory Tree Depth\)\s*=" +syn match ncfSetCommandsNum "\(Maximum Transactions\)\s*=" +syn match ncfSetCommandsNum "\(Minimum Compression Percentage Gain\)\s*=" +syn match ncfSetCommandsNum "\(Minimum Directory Cache Buffers\)\s*=" +syn match ncfSetCommandsNum "\(Minimum File Cache Buffers\)\s*=" +syn match ncfSetCommandsNum "\(Minimum File Cache Report Threshold\)\s*=" +syn match ncfSetCommandsNum "\(Minimum Free Memory for Garbage Collection\)\s*=" +syn match ncfSetCommandsNum "\(Minimum Packet Receive Buffers\)\s*=" +syn match ncfSetCommandsNum "\(Minimum Service Processes\)\s*=" +syn match ncfSetCommandsNum "\(NCP Packet Signature Option\)\s*=" +syn match ncfSetCommandsNum "\(NDS Backlink Interval\)\s*=" +syn match ncfSetCommandsNum "\(NDS Client NCP Retries\)\s*=" +syn match ncfSetCommandsNum "\(NDS External Reference Life Span\)\s*=" +syn match ncfSetCommandsNum "\(NDS Inactivity Synchronization Interval\)\s*=" +syn match ncfSetCommandsNum "\(NDS Janitor Interval\)\s*=" +syn match ncfSetCommandsNum "\(New Service Process Wait Time\)\s*=" +syn match ncfSetCommandsNum "\(Number of Frees for Garbage Collection\)\s*=" +syn match ncfSetCommandsNum "\(Number of Watchdog Packets\)\s*=" +syn match ncfSetCommandsNum "\(Pseudo Preemption Count\)\s*=" +syn match ncfSetCommandsNum "\(Read Ahead LRU Sitting Time Threshold\)\s*=" +syn match ncfSetCommandsNum "\(Remirror Block Size\)\s*=" +syn match ncfSetCommandsNum "\(Reserved Buffers Below 16 Meg\)\s*=" +syn match ncfSetCommandsNum "\(Server Log File Overflow Size\)\s*=" +syn match ncfSetCommandsNum "\(Server Log File State\)\s*=" +syn match ncfSetCommandsNum "\(SMP Polling Count\)\s*=" +syn match ncfSetCommandsNum "\(SMP Stack Size\)\s*=" +syn match ncfSetCommandsNum "\(TIMESYNC Polling Count\)\s*=" +syn match ncfSetCommandsNum "\(TIMESYNC Polling Interval\)\s*=" +syn match ncfSetCommandsNum "\(TIMESYNC Synchronization Radius\)\s*=" +syn match ncfSetCommandsNum "\(TIMESYNC Write Value\)\s*=" +syn match ncfSetCommandsNum "\(Volume Log File Overflow Size\)\s*=" +syn match ncfSetCommandsNum "\(Volume Log File State\)\s*=" +syn match ncfSetCommandsNum "\(Volume Low Warning Reset Threshold\)\s*=" +syn match ncfSetCommandsNum "\(Volume Low Warning Threshold\)\s*=" +syn match ncfSetCommandsNum "\(Volume TTS Log File Overflow Size\)\s*=" +syn match ncfSetCommandsNum "\(Volume TTS Log File State\)\s*=" +syn match ncfSetCommandsNum "\(Worker Thread Execute In a Row Count\)\s*=" + +" SET Commands that take a Boolean (ON/OFF) + +syn match ncfSetCommandsBool "\(Alloc Memory Check Flag\)\s*=" +syn match ncfSetCommandsBool "\(Allow Audit Passwords\)\s*=" +syn match ncfSetCommandsBool "\(Allow Change to Client Rights\)\s*=" +syn match ncfSetCommandsBool "\(Allow Deletion of Active Directories\)\s*=" +syn match ncfSetCommandsBool "\(Allow Invalid Pointers\)\s*=" +syn match ncfSetCommandsBool "\(Allow LIP\)\s*=" +syn match ncfSetCommandsBool "\(Allow Unencrypted Passwords\)\s*=" +syn match ncfSetCommandsBool "\(Allow Unowned Files To Be Extended\)\s*=" +syn match ncfSetCommandsBool "\(Auto Register Memory Above 16 Megabytes\)\s*=" +syn match ncfSetCommandsBool "\(Auto TTS Backout Flag\)\s*=" +syn match ncfSetCommandsBool "\(Automatically Repair Bad Volumes\)\s*=" +syn match ncfSetCommandsBool "\(Check Equivalent to Me\)\s*=" +syn match ncfSetCommandsBool "\(Command Line Prompt Default Choice\)\s*=" +syn match ncfSetCommandsBool "\(Console Display Watchdog Logouts\)\s*=" +syn match ncfSetCommandsBool "\(Daylight Savings Time Status\)\s*=" +syn match ncfSetCommandsBool "\(Developer Option\)\s*=" +syn match ncfSetCommandsBool "\(Display Incomplete IPX Packet Alerts\)\s*=" +syn match ncfSetCommandsBool "\(Display Lost Interrupt Alerts\)\s*=" +syn match ncfSetCommandsBool "\(Display NCP Bad Component Warnings\)\s*=" +syn match ncfSetCommandsBool "\(Display NCP Bad Length Warnings\)\s*=" +syn match ncfSetCommandsBool "\(Display Old API Names\)\s*=" +syn match ncfSetCommandsBool "\(Display Relinquish Control Alerts\)\s*=" +syn match ncfSetCommandsBool "\(Display Spurious Interrupt Alerts\)\s*=" +syn match ncfSetCommandsBool "\(Enable Deadlock Detection\)\s*=" +syn match ncfSetCommandsBool "\(Enable Disk Read After Write Verify\)\s*=" +syn match ncfSetCommandsBool "\(Enable File Compression\)\s*=" +syn match ncfSetCommandsBool "\(Enable IO Handicap Attribute\)\s*=" +syn match ncfSetCommandsBool "\(Enable SECURE.NCF\)\s*=" +syn match ncfSetCommandsBool "\(Fast Volume Mounts\)\s*=" +syn match ncfSetCommandsBool "\(Global Pseudo Preemption\)\s*=" +syn match ncfSetCommandsBool "\(Halt System on Invalid Parameters\)\s*=" +syn match ncfSetCommandsBool "\(Ignore Disk Geometry\)\s*=" +syn match ncfSetCommandsBool "\(Immediate Purge of Deleted Files\)\s*=" +syn match ncfSetCommandsBool "\(NCP File Commit\)\s*=" +syn match ncfSetCommandsBool "\(NDS Trace File Length to Zero\)\s*=" +syn match ncfSetCommandsBool "\(NDS Trace to File\)\s*=" +syn match ncfSetCommandsBool "\(NDS Trace to Screen\)\s*=" +syn match ncfSetCommandsBool "\(New Time With Daylight Savings Time Status\)\s*=" +syn match ncfSetCommandsBool "\(Read Ahead Enabled\)\s*=" +syn match ncfSetCommandsBool "\(Read Fault Emulation\)\s*=" +syn match ncfSetCommandsBool "\(Read Fault Notification\)\s*=" +syn match ncfSetCommandsBool "\(Reject NCP Packets with Bad Components\)\s*=" +syn match ncfSetCommandsBool "\(Reject NCP Packets with Bad Lengths\)\s*=" +syn match ncfSetCommandsBool "\(Replace Console Prompt with Server Name\)\s*=" +syn match ncfSetCommandsBool "\(Reply to Get Nearest Server\)\s*=" +syn match ncfSetCommandsBool "\(SMP Developer Option\)\s*=" +syn match ncfSetCommandsBool "\(SMP Flush Processor Cache\)\s*=" +syn match ncfSetCommandsBool "\(SMP Intrusive Abend Mode\)\s*=" +syn match ncfSetCommandsBool "\(SMP Memory Protection\)\s*=" +syn match ncfSetCommandsBool "\(Sound Bell for Alerts\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC Configured Sources\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC Directory Tree Mode\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC Hardware Clock\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC RESET\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC Restart Flag\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC Service Advertising\)\s*=" +syn match ncfSetCommandsBool "\(TIMESYNC Write Parameters\)\s*=" +syn match ncfSetCommandsBool "\(TTS Abort Dump Flag\)\s*=" +syn match ncfSetCommandsBool "\(Upgrade Low Priority Threads\)\s*=" +syn match ncfSetCommandsBool "\(Volume Low Warn All Users\)\s*=" +syn match ncfSetCommandsBool "\(Write Fault Emulation\)\s*=" +syn match ncfSetCommandsBool "\(Write Fault Notification\)\s*=" + +" Set Commands that take a "string" -- NOT QUOTED + +syn match ncfSetCommandsStr "\(Default Time Server Type\)\s*=" +syn match ncfSetCommandsStr "\(SMP NetWare Kernel Mode\)\s*=" +syn match ncfSetCommandsStr "\(Time Zone\)\s*=" +syn match ncfSetCommandsStr "\(TIMESYNC ADD Time Source\)\s*=" +syn match ncfSetCommandsStr "\(TIMESYNC REMOVE Time Source\)\s*=" +syn match ncfSetCommandsStr "\(TIMESYNC Time Source\)\s*=" +syn match ncfSetCommandsStr "\(TIMESYNC Type\)\s*=" + +" SET Commands that take a "Time" + +syn match ncfSetCommandsTime "\(Command Line Prompt Time Out\)\s*=" +syn match ncfSetCommandsTime "\(Delay Before First Watchdog Packet\)\s*=" +syn match ncfSetCommandsTime "\(Delay Between Watchdog Packets\)\s*=" +syn match ncfSetCommandsTime "\(Directory Cache Buffer NonReferenced Delay\)\s*=" +syn match ncfSetCommandsTime "\(Dirty Directory Cache Delay Time\)\s*=" +syn match ncfSetCommandsTime "\(Dirty Disk Cache Delay Time\)\s*=" +syn match ncfSetCommandsTime "\(File Delete Wait Time\)\s*=" +syn match ncfSetCommandsTime "\(Minimum File Delete Wait Time\)\s*=" +syn match ncfSetCommandsTime "\(Mirrored Devices Are Out of Sync Message Frequency\)\s*=" +syn match ncfSetCommandsTime "\(New Packet Receive Buffer Wait Time\)\s*=" +syn match ncfSetCommandsTime "\(TTS Backout File Truncation Wait Time\)\s*=" +syn match ncfSetCommandsTime "\(TTS UnWritten Cache Wait Time\)\s*=" +syn match ncfSetCommandsTime "\(Turbo FAT Re-Use Wait Time\)\s*=" +syn match ncfSetCommandsTime "\(Daylight Savings Time Offset\)\s*=" + +syn match ncfSetCommandsTimeDate "\(End of Daylight Savings Time\)\s*=" +syn match ncfSetCommandsTimeDate "\(Start of Daylight Savings Time\)\s*=" + +syn match ncfSetCommandsBindCon "\(Bindery Context\)\s*=" nextgroup=ncfContString + +syn cluster ncfSetCommands contains=ncfSetCommandsNum,ncfSetCommandsBool,ncfSetCommandsStr,ncfSetCommandsTime,ncfSetCommandsTimeDate,ncfSetCommandsBindCon + + +if exists("ncf_highlight_unknowns") + syn match Error "[^ \t]*" contains=ALL +endif + + +" The default methods for highlighting. Can be overridden later +hi def link ncfCommands Statement +hi def link ncfSetCommands ncfCommands +hi def link ncfLogins ncfCommands +hi def link ncfString String +hi def link ncfContString ncfString +hi def link ncfComment Comment +hi def link ncfImplicit Type +hi def link ncfBoolean Boolean +hi def link ncfScript Identifier +hi def link ncfNumber Number +hi def link ncfIPAddr ncfNumber +hi def link ncfHexNumber ncfNumber +hi def link ncfTime ncfNumber +hi def link ncfDSTTime ncfNumber +hi def link ncfPath Constant +hi def link ncfServerName Special +hi def link ncfIPXNet ncfServerName +hi def link ncfTimeTypes Constant +hi def link ncfSetCommandsNum ncfSetCommands +hi def link ncfSetCommandsBool ncfSetCommands +hi def link ncfSetCommandsStr ncfSetCommands +hi def link ncfSetCommandsTime ncfSetCommands +hi def link ncfSetCommandsTimeDate ncfSetCommands +hi def link ncfSetCommandsBindCon ncfSetCommands + + + +let b:current_syntax = "ncf" diff --git a/runtime/syntax/neomuttrc.vim b/runtime/syntax/neomuttrc.vim new file mode 100644 index 0000000..421b11f --- /dev/null +++ b/runtime/syntax/neomuttrc.vim @@ -0,0 +1,880 @@ +" Vim syntax file +" Language: NeoMutt setup files +" Maintainer: Richard Russon +" Previous Maintainer: Guillaume Brogi +" Last Change: 2022-04-08 +" Original version based on syntax/muttrc.vim + +" This file covers NeoMutt 2022-04-08 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Set the keyword characters +setlocal isk=@,48-57,_,- + +" handling optional variables +syntax match muttrcComment "^# .*$" contains=@Spell +syntax match muttrcComment "^#[^ ].*$" +syntax match muttrcComment "^#$" +syntax match muttrcComment "[^\\]#.*$"lc=1 + +" Escape sequences (back-tick and pipe goes here too) +syntax match muttrcEscape +\\[#tnr"'Cc ]+ +syntax match muttrcEscape +[`|]+ +syntax match muttrcEscape +\\$+ + +" The variables takes the following arguments +syntax region muttrcString contained keepend start=+"+ms=e skip=+\\"+ end=+"+ contains=muttrcEscape,muttrcCommand,muttrcAction,muttrcShellString +syntax region muttrcString contained keepend start=+'+ms=e skip=+\\'+ end=+'+ contains=muttrcEscape,muttrcCommand,muttrcAction +syntax match muttrcStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcString,muttrcStringNL + +syntax region muttrcShellString matchgroup=muttrcEscape keepend start=+`+ skip=+\\`+ end=+`+ contains=muttrcVarStr,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcCommand + +syntax match muttrcRXChars contained /[^\\][][.*?+]\+/hs=s+1 +syntax match muttrcRXChars contained /[][|()][.*?+]*/ +syntax match muttrcRXChars contained /['"]^/ms=s+1 +syntax match muttrcRXChars contained /$['"]/me=e-1 +syntax match muttrcRXChars contained /\\/ +" Why does muttrcRXString2 work with one \ when muttrcRXString requires two? +syntax region muttrcRXString contained skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXChars +syntax region muttrcRXString contained skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXChars +syntax region muttrcRXString contained skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXChars +" For some reason, skip refuses to match backslashes here... +syntax region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXChars +syntax region muttrcRXString contained matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXChars +syntax region muttrcRXString2 contained skipwhite start=+'+ skip=+\'+ end=+'+ contains=muttrcRXChars +syntax region muttrcRXString2 contained skipwhite start=+"+ skip=+\"+ end=+"+ contains=muttrcRXChars + +" these must be kept synchronized with muttrcRXString, but are intended for muttrcRXHooks +syntax region muttrcRXHookString contained keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syntax region muttrcRXHookString contained keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syntax region muttrcRXHookString contained keepend skipwhite start=+[^ "'^]+ skip=+\\\s+ end=+\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syntax region muttrcRXHookString contained keepend skipwhite start=+\^+ end=+[^\\]\s+re=e-1 contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syntax region muttrcRXHookString contained keepend matchgroup=muttrcRXChars skipwhite start=+\^+ end=+$\s+ contains=muttrcRXString nextgroup=muttrcString,muttrcStringNL +syntax match muttrcRXHookStringNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcRXHookString,muttrcRXHookStringNL + +" these are exclusively for args lists (e.g. -rx pat pat pat ...) +syntax region muttrcRXPat contained keepend skipwhite start=+'+ skip=+\\'+ end=+'\s*+ contains=muttrcRXString nextgroup=muttrcRXPat +syntax region muttrcRXPat contained keepend skipwhite start=+"+ skip=+\\"+ end=+"\s*+ contains=muttrcRXString nextgroup=muttrcRXPat +syntax match muttrcRXPat contained /[^-'"#!]\S\+/ skipwhite contains=muttrcRXChars nextgroup=muttrcRXPat +syntax match muttrcRXDef contained "-rx\s\+" skipwhite nextgroup=muttrcRXPat + +syntax match muttrcSpecial +\(['"]\)!\1+ + +syntax match muttrcSetStrAssignment contained skipwhite /=\s*\%(\\\?\$\)\?[0-9A-Za-z_-]\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*"+hs=s+1 end=+"+ skip=+\\"+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString +syntax region muttrcSetStrAssignment contained skipwhite keepend start=+=\s*'+hs=s+1 end=+'+ skip=+\\'+ nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcString +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*"\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetBoolAssignment contained skipwhite /=\s*'\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*\%(ask-\)\?\%(yes\|no\)/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*"\%(ask-\)\?\%(yes\|no\)"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetQuadAssignment contained skipwhite /=\s*'\%(ask-\)\?\%(yes\|no\)'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetNumAssignment contained skipwhite /=\s*\\\?\$\w\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr contains=muttrcVariable,muttrcEscapedVariable +syntax match muttrcSetNumAssignment contained skipwhite /=\s*\d\+/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetNumAssignment contained skipwhite /=\s*"\d\+"/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax match muttrcSetNumAssignment contained skipwhite /=\s*'\d\+'/hs=s+1 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" Now catch some email addresses and headers (purified version from mail.vim) +syntax match muttrcEmail "[a-zA-Z0-9._-]\+@[a-zA-Z0-9./-]\+" +syntax match muttrcHeader "\<\c\%(From\|To\|C[Cc]\|B[Cc][Cc]\|Reply-To\|Subject\|Return-Path\|Received\|Date\|Replied\|Attach\)\>:\=" + +syntax match muttrcKeySpecial contained +\%(\\[Cc'"]\|\^\|\\[01]\d\{2}\)+ +syntax match muttrcKey contained "\S\+" contains=muttrcKeySpecial,muttrcKeyName +syntax region muttrcKey contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=muttrcKeySpecial,muttrcKeyName +syntax region muttrcKey contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=muttrcKeySpecial,muttrcKeyName +syntax match muttrcKeyName contained "\\[trne]" +syntax match muttrcKeyName contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|Next\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>" +syntax match muttrcKeyName contained "\c" + +syntax match muttrcFormatErrors contained /%./ + +syntax match muttrcStrftimeEscapes contained /%[AaBbCcDdeFGgHhIjklMmnpRrSsTtUuVvWwXxYyZz+%]/ +syntax match muttrcStrftimeEscapes contained /%E[cCxXyY]/ +syntax match muttrcStrftimeEscapes contained /%O[BdeHImMSuUVwWy]/ + +syntax region muttrcAliasFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcAliasFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAliasFormatEscapes,muttrcAliasFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcAttachFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcAttachFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcAttachFormatEscapes,muttrcAttachFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcComposeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcComposeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcComposeFormatEscapes,muttrcComposeFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcFolderFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcFolderFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcFolderFormatEscapes,muttrcFolderFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcGroupIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcGroupIndexFormatEscapes,muttrcGroupIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcIndexFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcIndexFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcIndexFormatEscapes,muttrcIndexFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcMixFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcMixFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcMixFormatEscapes,muttrcMixFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcPatternFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcPatternFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPatternFormatEscapes,muttrcPatternFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcPGPCmdFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPCmdFormatEscapes,muttrcPGPCmdFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcPGPFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcPGPFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPGPFormatEscapes,muttrcPGPFormatConditionals,muttrcFormatErrors,muttrcPGPTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcQueryFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcQueryFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcQueryFormatEscapes,muttrcQueryFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcSidebarFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSidebarFormatEscapes,muttrcSidebarFormatConditionals,muttrcFormatErrors,muttrcTimeEscapes nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcSmimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcSmimeFormatEscapes,muttrcSmimeFormatConditionals,muttrcVariable,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcStatusFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcStatusFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStatusFormatEscapes,muttrcStatusFormatConditionals,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax region muttrcStrftimeFormatStr contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcStrftimeEscapes,muttrcFormatErrors nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" Format escapes and conditionals +syntax match muttrcFormatConditionals2 contained /[^?]*?/ +function! s:escapesConditionals(baseName, sequence, padding, conditional) + exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%\%(\%(-\?[0-9]\+\)\?\%(\.[0-9]\+\)\?\)\?[:_]\?\%(' . a:sequence . '\|%\)/' + if a:padding + exec 'syntax match muttrc' . a:baseName . 'Escapes contained /%[>|*]./' + endif + if a:conditional + exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/ nextgroup=muttrcFormatConditionals2' + else + exec 'syntax match muttrc' . a:baseName . 'Conditionals contained /%?\%(' . a:sequence . '\)?/' + endif +endfunction + +" CHECKED 2022-04-08 +" Ref: alias_format_str() in alias/dlg_alias.c +call s:escapesConditionals('AliasFormat', '[acfnrt]', 1, 0) +" Ref: attach_format_str() in attach/dlg_attach.c +call s:escapesConditionals('AttachFormat', '[CcDdeFfIMmnQsTtuX]', 1, 1) +" Ref: compose_format_str() in compose/cbar.c +call s:escapesConditionals('ComposeFormat', '[ahlv]', 1, 1) +" Ref: folder_format_str() in browser/browser.c +call s:escapesConditionals('FolderFormat', '[CDdFfgilmNnstu]', 1, 0) +" Ref: group_index_format_str() in nntp/browse.c +call s:escapesConditionals('GroupIndexFormat', '[CdfMNns]', 1, 1) +" Ref: index_format_str() in hdrline.c +call s:escapesConditionals('IndexFormat', '[AaBbCDdEefgHIiJKLlMmNnOPqRrSsTtuvWXxYyZ(<[{]\|@\i\+@\|G[a-zA-Z]\+\|Fp\=\|z[cst]\|cr\=', 1, 1) +" Ref: mix_format_str() in remailer.c +call s:escapesConditionals('MixFormat', '[acns]', 1, 0) +" Ref: pattern_format_str() in pattern/dlg_pattern.c +call s:escapesConditionals('PatternFormat', '[den]', 1, 0) +" Ref: pgp_command_format_str() in ncrypt/pgpinvoke.c +call s:escapesConditionals('PGPCmdFormat', '[afprs]', 0, 1) +" Ref: crypt_format_str() in ncrypt/dlg_gpgme.c +" Ref: pgp_entry_format_str() in ncrypt/dlg_pgp.c +" Note: crypt_format_str() supports 'p', but pgp_entry_fmt() does not +call s:escapesConditionals('PGPFormat', '[AaCcFfKkLlnptu[]', 0, 0) +" Ref: query_format_str() in alias/dlg_query.c +call s:escapesConditionals('QueryFormat', '[acent]', 1, 1) +" Ref: sidebar_format_str() in sidebar/window.c +call s:escapesConditionals('SidebarFormat', '[!BDdFLNnorStZ]', 1, 1) +" Ref: smime_command_format_str() in ncrypt/smime.c +call s:escapesConditionals('SmimeFormat', '[aCcdfiks]', 0, 1) +" Ref: status_format_str() in status.c +call s:escapesConditionals('StatusFormat', '[bDdFfhLlMmnoPpRrSsTtuVv]', 1, 1) + +syntax region muttrcPGPTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes +syntax region muttrcTimeEscapes contained start=+%(+ end=+)+ contains=muttrcStrftimeEscapes +syntax region muttrcTimeEscapes contained start=+%<+ end=+>+ contains=muttrcStrftimeEscapes +syntax region muttrcTimeEscapes contained start=+%\[+ end=+\]+ contains=muttrcStrftimeEscapes +syntax region muttrcTimeEscapes contained start=+%{+ end=+}+ contains=muttrcStrftimeEscapes + +syntax match muttrcVarEqualsAliasFmt contained skipwhite "=" nextgroup=muttrcAliasFormatStr +syntax match muttrcVarEqualsAttachFmt contained skipwhite "=" nextgroup=muttrcAttachFormatStr +syntax match muttrcVarEqualsComposeFmt contained skipwhite "=" nextgroup=muttrcComposeFormatStr +syntax match muttrcVarEqualsFolderFmt contained skipwhite "=" nextgroup=muttrcFolderFormatStr +syntax match muttrcVarEqualsGrpIdxFmt contained skipwhite "=" nextgroup=muttrcGroupIndexFormatStr +syntax match muttrcVarEqualsIdxFmt contained skipwhite "=" nextgroup=muttrcIndexFormatStr +syntax match muttrcVarEqualsMixFmt contained skipwhite "=" nextgroup=muttrcMixFormatStr +syntax match muttrcVarEqualsPatternFmt contained skipwhite "=" nextgroup=muttrcPatternFormatStr +syntax match muttrcVarEqualsPGPCmdFmt contained skipwhite "=" nextgroup=muttrcPGPCmdFormatStr +syntax match muttrcVarEqualsPGPFmt contained skipwhite "=" nextgroup=muttrcPGPFormatStr +syntax match muttrcVarEqualsQueryFmt contained skipwhite "=" nextgroup=muttrcQueryFormatStr +syntax match muttrcVarEqualsSdbFmt contained skipwhite "=" nextgroup=muttrcSidebarFormatStr +syntax match muttrcVarEqualsSmimeFmt contained skipwhite "=" nextgroup=muttrcSmimeFormatStr +syntax match muttrcVarEqualsStatusFmt contained skipwhite "=" nextgroup=muttrcStatusFormatStr +syntax match muttrcVarEqualsStrftimeFmt contained skipwhite "=" nextgroup=muttrcStrftimeFormatStr + +syntax match muttrcVPrefix contained /[?&]/ nextgroup=muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" CHECKED 2022-04-08 +" List of the different screens in NeoMutt (see MenuNames in menu/type.c) +syntax keyword muttrcMenu contained alias attach autocrypt browser compose editor generic index key_select_pgp key_select_smime mix pager pgp postpone query smime +syntax match muttrcMenuList "\S\+" contained contains=muttrcMenu +syntax match muttrcMenuCommas /,/ contained + +syntax region muttrcSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL +syntax region muttrcSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern nextgroup=muttrcString,muttrcStringNL + +syntax region muttrcNoSpamPattern contained skipwhite keepend start=+'+ skip=+\\'+ end=+'+ contains=muttrcPattern +syntax region muttrcNoSpamPattern contained skipwhite keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcPattern + +syntax match muttrcAttachmentsMimeType contained "[*a-z0-9_-]\+/[*a-z0-9._-]\+\s*" skipwhite nextgroup=muttrcAttachmentsMimeType +syntax match muttrcAttachmentsFlag contained "[+-]\%([AI]\|inline\|attachment\)\s\+" skipwhite nextgroup=muttrcAttachmentsMimeType +syntax match muttrcAttachmentsLine "^\s*\%(un\)\?attachments\s\+" skipwhite nextgroup=muttrcAttachmentsFlag + +syntax match muttrcUnHighlightSpace contained "\%(\s\+\|\\$\)" + +syntax keyword muttrcAsterisk contained * + +syntax keyword muttrcListsKeyword lists skipwhite nextgroup=muttrcGroupDef,muttrcComment +syntax keyword muttrcListsKeyword unlists skipwhite nextgroup=muttrcAsterisk,muttrcComment + +syntax keyword muttrcSubscribeKeyword subscribe skipwhite nextgroup=muttrcGroupDef,muttrcComment +syntax keyword muttrcSubscribeKeyword unsubscribe skipwhite nextgroup=muttrcAsterisk,muttrcComment + +syntax keyword muttrcAlternateKeyword contained alternates unalternates +syntax region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment + +" muttrcVariable includes a prefix because partial strings are considered valid. +syntax match muttrcVariable contained "\\\@]\+" contains=muttrcEmail +syntax match muttrcAction contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName + +" CHECKED 2022-04-08 +" First, hooks that take regular expressions: +syntax match muttrcRXHookNot contained /!\s*/ skipwhite nextgroup=muttrcRXHookString,muttrcRXHookStringNL +syntax match muttrcRXHooks /\<\%(account\|append\|close\|crypt\|folder\|mbox\|open\|pgp\)-hook\>/ skipwhite nextgroup=muttrcRXHookNot,muttrcRXHookString,muttrcRXHookStringNL + +" Now, hooks that take patterns +syntax match muttrcPatHookNot contained /!\s*/ skipwhite nextgroup=muttrcPattern +syntax match muttrcPatHooks /\<\%(charset\|iconv\|index-format\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcPattern +syntax match muttrcPatHooks /\<\%(message\|reply\|send\|send2\|save\|fcc\|fcc-save\)-hook\>/ skipwhite nextgroup=muttrcPatHookNot,muttrcOptPattern + +" Global hooks that take a command +syntax keyword muttrcHooks skipwhite shutdown-hook startup-hook timeout-hook nextgroup=muttrcCommand + +syntax match muttrcBindFunction contained /\S\+\>/ skipwhite contains=muttrcFunction +syntax match muttrcBindFunctionNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindFunction,muttrcBindFunctionNL +syntax match muttrcBindKey contained /\S\+/ skipwhite contains=muttrcKey nextgroup=muttrcBindFunction,muttrcBindFunctionNL +syntax match muttrcBindKeyNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindKey,muttrcBindKeyNL +syntax match muttrcBindMenuList contained /\S\+/ skipwhite contains=muttrcMenu,muttrcMenuCommas nextgroup=muttrcBindKey,muttrcBindKeyNL +syntax match muttrcBindMenuListNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcBindMenuList,muttrcBindMenuListNL + +syntax region muttrcMacroDescr contained keepend skipwhite start=+\s*\S+ms=e skip=+\\ + end=+ \|$+me=s +syntax region muttrcMacroDescr contained keepend skipwhite start=+'+ms=e skip=+\\'+ end=+'+me=s +syntax region muttrcMacroDescr contained keepend skipwhite start=+"+ms=e skip=+\\"+ end=+"+me=s +syntax match muttrcMacroDescrNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcMacroDescr,muttrcMacroDescrNL +syntax region muttrcMacroBody contained skipwhite start="\S" skip='\\ \|\\$' end=' \|$' contains=muttrcEscape,muttrcSet,muttrcUnset,muttrcReset,muttrcToggle,muttrcCommand,muttrcAction nextgroup=muttrcMacroDescr,muttrcMacroDescrNL +syntax region muttrcMacroBody matchgroup=Type contained skipwhite start=+'+ms=e skip=+\\'+ end=+'\|\%(\%(\\\\\)\@]\+>/ contains=muttrcEmail nextgroup=muttrcAliasComma +syntax match muttrcAliasEncEmailNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL +syntax match muttrcAliasNameNoParens contained /[^<(@]\+\s\+/ nextgroup=muttrcAliasEncEmail,muttrcAliasEncEmailNL +syntax region muttrcAliasName contained matchgroup=Type start=/(/ end=/)/ skipwhite +syntax match muttrcAliasNameNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasName,muttrcAliasNameNL +syntax match muttrcAliasENNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL +syntax match muttrcAliasKey contained /\s*[^- \t]\S\+/ skipwhite nextgroup=muttrcAliasEmail,muttrcAliasEncEmail,muttrcAliasNameNoParens,muttrcAliasENNL +syntax match muttrcAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL + +syntax match muttrcUnAliasKey contained "\s*\w\+\s*" skipwhite nextgroup=muttrcUnAliasKey,muttrcUnAliasNL +syntax match muttrcUnAliasNL contained /\s*\\$/ skipwhite skipnl nextgroup=muttrcUnAliasKey,muttrcUnAliasNL + +" CHECKED 2022-04-08 +" List of letters in Flags in pattern/flags.c +" Parameter: none +syntax match muttrcSimplePat contained "!\?\^\?[~][ADEFGgklNOPpQRSTUuVv#$=]" +" Parameter: range +syntax match muttrcSimplePat contained "!\?\^\?[~][mnXz]\s*\%([<>-][0-9]\+[kM]\?\|[0-9]\+[kM]\?[-]\%([0-9]\+[kM]\?\)\?\)" +" Parameter: date +syntax match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable +" Parameter: regex +syntax match muttrcSimplePat contained "!\?\^\?[~][BbCcefHhIiLMstwxYy]\s*" nextgroup=muttrcSimplePatRXContainer +" Parameter: pattern +syntax match muttrcSimplePat contained "!\?\^\?[%][BbCcefHhiLstxy]\s*" nextgroup=muttrcSimplePatString +" Parameter: pattern +syntax match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString +syntax region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat + +"syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString +syntax region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+ +syntax region muttrcSimplePatString contained keepend start=+'+ end=+'+ skip=+\\'+ +syntax region muttrcSimplePatString contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 +syntax region muttrcSimplePatRXContainer contained keepend start=+"+ end=+"+ skip=+\\"+ contains=muttrcRXString +syntax region muttrcSimplePatRXContainer contained keepend start=+'+ end=+'+ skip=+\\'+ contains=muttrcRXString +syntax region muttrcSimplePatRXContainer contained keepend start=+[^ "']+ skip=+\\ + end=+\s+re=e-1 contains=muttrcRXString +syntax match muttrcSimplePatMetas contained /[(|)]/ + +syntax match muttrcOptSimplePat contained skipwhite /[~=%!(^].*/ contains=muttrcSimplePat,muttrcSimplePatMetas +syntax match muttrcOptSimplePat contained skipwhite /[^~=%!(^].*/ contains=muttrcRXString +syntax region muttrcOptPattern contained matchgroup=Type keepend start=+"+ skip=+\\"+ end=+"+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL +syntax region muttrcOptPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcOptSimplePat,muttrcUnHighlightSpace nextgroup=muttrcString,muttrcStringNL +syntax region muttrcOptPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL +syntax match muttrcOptPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat nextgroup=muttrcString,muttrcStringNL +syntax match muttrcOptPattern contained skipwhite /[.]/ nextgroup=muttrcString,muttrcStringNL +" Keep muttrcPattern and muttrcOptPattern synchronized +syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+"+ skip=+\\"+ end=+"+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas +syntax region muttrcPattern contained matchgroup=Type keepend skipwhite start=+'+ skip=+\\'+ end=+'+ contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas +syntax region muttrcPattern contained keepend skipwhite start=+[~](+ end=+)+ skip=+\\)+ contains=muttrcSimplePat +syntax match muttrcPattern contained skipwhite /[~][A-Za-z]/ contains=muttrcSimplePat +syntax match muttrcPattern contained skipwhite /[.]/ +syntax region muttrcPatternInner contained keepend start=+"[~=%!(^]+ms=s+1 skip=+\\"+ end=+"+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas +syntax region muttrcPatternInner contained keepend start=+'[~=%!(^]+ms=s+1 skip=+\\'+ end=+'+me=e-1 contains=muttrcSimplePat,muttrcUnHighlightSpace,muttrcSimplePatMetas + +" Colour definitions takes object, foreground and background arguments (regexps excluded). +syntax match muttrcColorMatchCount contained "[0-9]\+" +syntax match muttrcColorMatchCountNL contained skipwhite skipnl "\s*\\$" nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL +syntax region muttrcColorRXPat contained start=+\s*'+ skip=+\\'+ end=+'\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL +syntax region muttrcColorRXPat contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL +syntax keyword muttrcColor contained black blue cyan default green magenta red white yellow +syntax keyword muttrcColor contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow +syntax match muttrcColor contained "\<\%(bright\)\=color\d\{1,3}\>" +" Now for the structure of the color line +syntax match muttrcColorRXNL contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL +syntax match muttrcColorBG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL +syntax match muttrcColorBGNL contained skipnl "\s*\\$" nextgroup=muttrcColorBG,muttrcColorBGNL +syntax match muttrcColorFG contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorBG,muttrcColorBGNL +syntax match muttrcColorFGNL contained skipnl "\s*\\$" nextgroup=muttrcColorFG,muttrcColorFGNL +syntax match muttrcColorContext contained /\s*[$]\?\w\+/ contains=muttrcColorField,muttrcVariable,muttrcUnHighlightSpace,muttrcColorCompose nextgroup=muttrcColorFG,muttrcColorFGNL +syntax match muttrcColorNL contained skipnl "\s*\\$" nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose +syntax match muttrcColorKeyword contained /^\s*color\s\+/ nextgroup=muttrcColorContext,muttrcColorNL,muttrcColorCompose +" And now color's brother: +syntax region muttrcUnColorPatterns contained skipwhite start=+\s*'+ end=+'+ skip=+\\'+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syntax region muttrcUnColorPatterns contained skipwhite start=+\s*"+ end=+"+ skip=+\\"+ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syntax match muttrcUnColorPatterns contained skipwhite /\s*[^'"\s]\S\*/ contains=muttrcPattern nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syntax match muttrcUnColorPatNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorPatNL +syntax match muttrcUnColorAll contained skipwhite /[*]/ +syntax match muttrcUnColorAPNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL +syntax match muttrcUnColorIndex contained skipwhite /\s*index\s\+/ nextgroup=muttrcUnColorPatterns,muttrcUnColorAll,muttrcUnColorAPNL +syntax match muttrcUnColorIndexNL contained skipwhite skipnl /\s*\\$/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL +syntax match muttrcUnColorKeyword contained skipwhite /^\s*uncolor\s\+/ nextgroup=muttrcUnColorIndex,muttrcUnColorIndexNL +syntax region muttrcUnColorLine keepend start=+^\s*uncolor\s+ skip=+\\$+ end=+$+ contains=muttrcUnColorKeyword,muttrcComment,muttrcUnHighlightSpace + +syntax keyword muttrcMonoAttrib contained bold none normal reverse standout underline +syntax keyword muttrcMono contained mono skipwhite nextgroup=muttrcColorField,muttrcColorCompose +syntax match muttrcMonoLine "^\s*mono\s\+\S\+" skipwhite nextgroup=muttrcMonoAttrib contains=muttrcMono + +" CHECKED 2022-04-08 +" List of fields in ColorFields in color/commmand.c +syntax keyword muttrcColorField skipwhite contained + \ attachment attach_headers body bold error hdrdefault header index index_author + \ index_collapsed index_date index_flags index_label index_number index_size index_subject + \ index_tag index_tags indicator markers message normal options progress prompt quoted + \ search sidebar_divider sidebar_flagged sidebar_highlight sidebar_indicator sidebar_new + \ sidebar_ordinary sidebar_spoolfile sidebar_unread signature status tilde tree underline + \ warning nextgroup=muttrcColor + +syntax match muttrcColorField contained "\" + +syntax match muttrcColorCompose skipwhite contained /\s*compose\s*/ nextgroup=muttrcColorComposeField + +" CHECKED 2022-04-08 +" List of fields in ComposeColorFields in color/command.c +syntax keyword muttrcColorComposeField skipwhite contained + \ header security_both security_encrypt security_none security_sign + \ nextgroup=muttrcColorFG,muttrcColorFGNL +syntax region muttrcColorLine keepend start=/^\s*color\s\+/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace + +function! s:boolQuadGen(type, vars, deprecated) + let l:novars = copy(a:vars) + call map(l:novars, '"no" . v:val') + let l:invvars = copy(a:vars) + call map(l:invvars, '"inv" . v:val') + + let l:orig_type = copy(a:type) + if a:deprecated + let l:type = 'Deprecated' . a:type + exec 'syntax keyword muttrcVar' . l:type . ' ' . join(a:vars) + exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:novars) + exec 'syntax keyword muttrcVar' . l:type . ' ' . join(l:invvars) + else + let l:type = a:type + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(a:vars) . ' nextgroup=muttrcSet' . l:orig_type . 'Assignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:novars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' + exec 'syntax keyword muttrcVar' . l:type . ' skipwhite contained ' . join(l:invvars) . ' nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr' + endif + +endfunction + +" CHECKED 2022-04-08 +" List of DT_BOOL in MuttVars in mutt_config.c +call s:boolQuadGen('Bool', [ + \ 'abort_backspace', 'allow_8bit', 'allow_ansi', 'arrow_cursor', 'ascii_chars', 'ask_bcc', + \ 'ask_cc', 'ask_follow_up', 'ask_x_comment_to', 'attach_save_without_prompting', + \ 'attach_split', 'autocrypt', 'autocrypt_reply', 'auto_edit', 'auto_subscribe', 'auto_tag', + \ 'beep', 'beep_new', 'bounce_delivered', 'braille_friendly', + \ 'browser_abbreviate_mailboxes', 'change_folder_next', 'check_mbox_size', 'check_new', + \ 'collapse_all', 'collapse_flagged', 'collapse_unread', 'compose_show_user_headers', + \ 'confirm_append', 'confirm_create', 'copy_decode_weed', 'count_alternatives', + \ 'crypt_auto_encrypt', 'crypt_auto_pgp', 'crypt_auto_sign', 'crypt_auto_smime', + \ 'crypt_confirm_hook', 'crypt_opportunistic_encrypt', + \ 'crypt_opportunistic_encrypt_strong_keys', 'crypt_protected_headers_read', + \ 'crypt_protected_headers_save', 'crypt_protected_headers_write', 'crypt_reply_encrypt', + \ 'crypt_reply_sign', 'crypt_reply_sign_encrypted', 'crypt_timestamp', 'crypt_use_gpgme', + \ 'crypt_use_pka', 'delete_untag', 'digest_collapse', 'duplicate_threads', 'edit_headers', + \ 'encode_from', 'fast_reply', 'fcc_before_send', 'fcc_clear', 'flag_safe', 'followup_to', + \ 'force_name', 'forward_decode', 'forward_decrypt', 'forward_quote', 'forward_references', + \ 'hdrs', 'header', 'header_color_partial', 'help', 'hidden_host', 'hide_limited', + \ 'hide_missing', 'hide_thread_subject', 'hide_top_limited', 'hide_top_missing', + \ 'history_remove_dups', 'honor_disposition', 'idn_decode', 'idn_encode', + \ 'ignore_list_reply_to', 'imap_check_subscribed', 'imap_condstore', 'imap_deflate', + \ 'imap_idle', 'imap_list_subscribed', 'imap_passive', 'imap_peek', 'imap_qresync', + \ 'imap_rfc5161', 'imap_server_noise', 'implicit_autoview', 'include_encrypted', + \ 'include_only_first', 'keep_flagged', 'local_date_header', 'mailcap_sanitize', + \ 'maildir_check_cur', 'maildir_header_cache_verify', 'maildir_trash', 'mail_check_recent', + \ 'mail_check_stats', 'markers', 'mark_old', 'menu_move_off', 'menu_scroll', + \ 'message_cache_clean', 'meta_key', 'me_too', 'mh_purge', 'mime_forward_decode', + \ 'mime_type_query_first', 'narrow_tree', 'nm_query_window_enable', 'nm_record', + \ 'nntp_listgroup', 'nntp_load_description', 'pager_stop', 'pgp_auto_decode', + \ 'pgp_auto_inline', 'pgp_check_exit', 'pgp_check_gpg_decrypt_status_fd', + \ 'pgp_ignore_subkeys', 'pgp_long_ids', 'pgp_reply_inline', 'pgp_retainable_sigs', + \ 'pgp_self_encrypt', 'pgp_show_unusable', 'pgp_strict_enc', 'pgp_use_gpg_agent', + \ 'pipe_decode', 'pipe_decode_weed', 'pipe_split', 'pop_auth_try_all', 'pop_last', + \ 'postpone_encrypt', 'print_decode', 'print_decode_weed', 'print_split', 'prompt_after', + \ 'read_only', 'reflow_space_quotes', 'reflow_text', 'reply_self', 'reply_with_xorig', + \ 'resolve', 'resume_draft_files', 'resume_edited_draft_files', 'reverse_alias', + \ 'reverse_name', 'reverse_real_name', 'rfc2047_parameters', 'save_address', 'save_empty', + \ 'save_name', 'save_unsubscribed', 'score', 'show_new_news', 'show_only_unread', + \ 'sidebar_folder_indent', 'sidebar_new_mail_only', 'sidebar_next_new_wrap', + \ 'sidebar_non_empty_mailbox_only', 'sidebar_on_right', 'sidebar_short_path', + \ 'sidebar_visible', 'sig_dashes', 'sig_on_top', 'size_show_bytes', 'size_show_fractions', + \ 'size_show_mb', 'size_units_on_left', 'smart_wrap', 'smime_ask_cert_label', + \ 'smime_decrypt_use_default_key', 'smime_is_default', 'smime_self_encrypt', 'sort_re', + \ 'ssl_force_tls', 'ssl_use_sslv2', 'ssl_use_sslv3', 'ssl_use_system_certs', + \ 'ssl_use_tlsv1', 'ssl_use_tlsv1_1', 'ssl_use_tlsv1_2', 'ssl_use_tlsv1_3', + \ 'ssl_verify_dates', 'ssl_verify_host', 'ssl_verify_partial_chains', 'status_on_top', + \ 'strict_threads', 'suspend', 'text_flowed', 'thorough_search', 'thread_received', 'tilde', + \ 'ts_enabled', 'tunnel_is_secure', 'uncollapse_jump', 'uncollapse_new', 'user_agent', + \ 'use_8bit_mime', 'use_domain', 'use_envelope_from', 'use_from', 'use_ipv6', + \ 'virtual_spool_file', 'wait_key', 'weed', 'wrap_search', 'write_bcc', 'x_comment_to' + \ ], 0) + +" CHECKED 2022-04-08 +" Deprecated Bools +" List of DT_SYNONYM or DT_DEPRECATED Bools in MuttVars in mutt_config.c +call s:boolQuadGen('Bool', [ + \ 'askbcc', 'askcc', 'autoedit', 'confirmappend', 'confirmcreate', 'crypt_autoencrypt', + \ 'crypt_autopgp', 'crypt_autosign', 'crypt_autosmime', 'crypt_confirmhook', + \ 'crypt_replyencrypt', 'crypt_replysign', 'crypt_replysignencrypted', 'edit_hdrs', + \ 'envelope_from', 'forw_decode', 'forw_decrypt', 'forw_quote', 'header_cache_compress', + \ 'ignore_linear_white_space', 'imap_servernoise', 'include_onlyfirst', 'metoo', + \ 'mime_subject', 'pgp_autoencrypt', 'pgp_autoinline', 'pgp_autosign', + \ 'pgp_auto_traditional', 'pgp_create_traditional', 'pgp_replyencrypt', 'pgp_replyinline', + \ 'pgp_replysign', 'pgp_replysignencrypted', 'reverse_realname', 'ssl_usesystemcerts', + \ 'use_8bitmime', 'virtual_spoolfile', 'xterm_set_titles' + \ ], 1) + +" CHECKED 2022-04-08 +" List of DT_QUAD in MuttVars in mutt_config.c +call s:boolQuadGen('Quad', [ + \ 'abort_noattach', 'abort_nosubject', 'abort_unmodified', 'bounce', 'catchup_newsgroup', + \ 'copy', 'crypt_verify_sig', 'delete', 'fcc_attach', 'followup_to_poster', + \ 'forward_attachments', 'forward_edit', 'honor_followup_to', 'include', 'mime_forward', + \ 'mime_forward_rest', 'move', 'pgp_mime_auto', 'pop_delete', 'pop_reconnect', 'postpone', + \ 'post_moderated', 'print', 'quit', 'recall', 'reply_to', 'ssl_starttls', + \ ], 0) + +" CHECKED 2022-04-08 +" Deprecated Quads +" List of DT_SYNONYM or DT_DEPRECATED Quads in MuttVars in mutt_config.c +call s:boolQuadGen('Quad', [ + \ 'mime_fwd', 'pgp_encrypt_self', 'pgp_verify_sig', 'smime_encrypt_self' + \ ], 1) + +" CHECKED 2022-04-08 +" List of DT_NUMBER or DT_LONG in MuttVars in mutt_config.c +syntax keyword muttrcVarNum skipwhite contained + \ connect_timeout debug_level header_cache_compress_level history imap_fetch_chunk_size + \ imap_keepalive imap_pipeline_depth imap_poll_timeout mail_check mail_check_stats_interval + \ menu_context net_inc nm_db_limit nm_open_timeout nm_query_window_current_position + \ nm_query_window_duration nntp_context nntp_poll pager_context pager_index_lines + \ pager_read_delay pager_skip_quoted_context pgp_timeout pop_check_interval read_inc + \ reflow_wrap save_history score_threshold_delete score_threshold_flag score_threshold_read + \ search_context sendmail_wait sidebar_component_depth sidebar_width sleep_time + \ smime_timeout ssl_min_dh_prime_bits timeout time_inc toggle_quoted_show_levels wrap + \ wrap_headers write_inc + \ nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +" CHECKED 2022-04-08 +" Deprecated Numbers +syntax keyword muttrcVarDeprecatedNum contained skipwhite + \ header_cache_pagesize pop_checkinterval skip_quoted_offset + +" CHECKED 2022-04-08 +" List of DT_STRING in MuttVars in mutt_config.c +" Special cases first, and all the rest at the end +" Formats themselves must be updated in their respective groups +" See s:escapesConditionals +syntax match muttrcVarStr contained skipwhite 'my_[a-zA-Z0-9_]\+' nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax keyword muttrcVarStr contained skipwhite alias_format nextgroup=muttrcVarEqualsAliasFmt +syntax keyword muttrcVarStr contained skipwhite attach_format nextgroup=muttrcVarEqualsAttachFmt +syntax keyword muttrcVarStr contained skipwhite compose_format nextgroup=muttrcVarEqualsComposeFmt +syntax keyword muttrcVarStr contained skipwhite folder_format vfolder_format nextgroup=muttrcVarEqualsFolderFmt +syntax keyword muttrcVarStr contained skipwhite attribution forward_format index_format message_format pager_format nextgroup=muttrcVarEqualsIdxFmt +syntax keyword muttrcVarStr contained skipwhite mix_entry_format nextgroup=muttrcVarEqualsMixFmt +syntax keyword muttrcVarStr contained skipwhite pattern_format nextgroup=muttrcVarEqualsPatternFmt +syntax keyword muttrcVarStr contained skipwhite + \ pgp_clear_sign_command pgp_decode_command pgp_decrypt_command pgp_encrypt_only_command + \ pgp_encrypt_sign_command pgp_export_command pgp_get_keys_command pgp_import_command + \ pgp_list_pubring_command pgp_list_secring_command pgp_sign_command pgp_verify_command + \ pgp_verify_key_command + \ nextgroup=muttrcVarEqualsPGPCmdFmt +syntax keyword muttrcVarStr contained skipwhite pgp_entry_format nextgroup=muttrcVarEqualsPGPFmt +syntax keyword muttrcVarStr contained skipwhite query_format nextgroup=muttrcVarEqualsQueryFmt +syntax keyword muttrcVarStr contained skipwhite + \ smime_decrypt_command smime_encrypt_command smime_get_cert_command + \ smime_get_cert_email_command smime_get_signer_cert_command smime_import_cert_command + \ smime_pk7out_command smime_sign_command smime_verify_command smime_verify_opaque_command + \ nextgroup=muttrcVarEqualsSmimeFmt +syntax keyword muttrcVarStr contained skipwhite status_format ts_icon_format ts_status_format nextgroup=muttrcVarEqualsStatusFmt +syntax keyword muttrcVarStr contained skipwhite date_format nextgroup=muttrcVarEqualsStrftimeFmt +syntax keyword muttrcVarStr contained skipwhite group_index_format nextgroup=muttrcVarEqualsGrpIdxFmt +syntax keyword muttrcVarStr contained skipwhite sidebar_format nextgroup=muttrcVarEqualsSdbFmt +syntax keyword muttrcVarStr contained skipwhite + \ abort_key arrow_string assumed_charset attach_charset attach_sep attribution_locale + \ autocrypt_acct_format charset config_charset content_type crypt_protected_headers_subject + \ default_hook dsn_notify dsn_return empty_subject forward_attribution_intro + \ forward_attribution_trailer greeting header_cache_backend header_cache_compress_method + \ hidden_tags hostname imap_authenticators imap_delim_chars imap_headers imap_login + \ imap_pass imap_user indent_string mailcap_path mark_macro_prefix mh_seq_flagged + \ mh_seq_replied mh_seq_unseen newsgroups_charset news_server nm_default_url nm_exclude_tags + \ nm_flagged_tag nm_query_type nm_query_window_current_search nm_query_window_or_terms + \ nm_query_window_timebase nm_record_tags nm_replied_tag nm_unread_tag nntp_authenticators + \ nntp_pass nntp_user pgp_default_key pgp_sign_as pipe_sep pop_authenticators pop_host + \ pop_pass pop_user postpone_encrypt_as post_indent_string preconnect preferred_languages + \ real_name send_charset show_multipart_alternative sidebar_delim_chars sidebar_divider_char + \ sidebar_indent_string simple_search smime_default_key smime_encrypt_with smime_sign_as + \ smime_sign_digest_alg smtp_authenticators smtp_pass smtp_url smtp_user spam_separator + \ ssl_ciphers + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" Deprecated strings +syntax keyword muttrcVarDeprecatedStr + \ abort_noattach_regexp attach_keyword escape forw_format hdr_format indent_str msg_format + \ nm_default_uri pgp_clearsign_command pgp_getkeys_command pgp_self_encrypt_as + \ post_indent_str print_cmd quote_regexp realname reply_regexp smime_self_encrypt_as + \ spoolfile visual xterm_icon xterm_title + +" CHECKED 2022-04-08 +" List of DT_ADDRESS +syntax keyword muttrcVarStr contained skipwhite envelope_from_address from nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +" List of DT_ENUM +syntax keyword muttrcVarStr contained skipwhite mbox_type use_threads nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +" List of DT_MBTABLE +syntax keyword muttrcVarStr contained skipwhite crypt_chars flag_chars from_chars status_chars to_chars nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" CHECKED 2022-04-08 +" List of DT_PATH or DT_MAILBOX +syntax keyword muttrcVarStr contained skipwhite + \ alias_file attach_save_dir autocrypt_dir certificate_file debug_file + \ entropy_file folder header_cache history_file mbox message_cachedir newsrc + \ news_cache_dir postponed record signature smime_ca_location + \ smime_certificates smime_keys spool_file ssl_ca_certificates_file ssl_client_cert + \ tmpdir trash + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +" List of DT_COMMAND (excluding pgp_*_command and smime_*_command) +syntax keyword muttrcVarStr contained skipwhite + \ display_filter editor inews ispell mixmaster new_mail_command pager + \ print_command query_command sendmail shell external_search_command + \ imap_oauth_refresh_command pop_oauth_refresh_command + \ mime_type_query_command smtp_oauth_refresh_command tunnel + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" CHECKED 2022-04-08 +" List of DT_REGEX +syntax keyword muttrcVarStr contained skipwhite + \ abort_noattach_regex gecos_mask mask pgp_decryption_okay pgp_good_sign quote_regex + \ reply_regex smileys + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +" List of DT_SORT +syntax keyword muttrcVarStr contained skipwhite + \ pgp_sort_keys sidebar_sort_method sort sort_alias sort_aux sort_browser + \ nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr + +" CHECKED 2022-04-08 +" List of commands in mutt_commands in mutt_commands.c +" Remember to remove hooks, they have already been dealt with +syntax keyword muttrcCommand skipwhite alias nextgroup=muttrcAliasGroupDef,muttrcAliasKey,muttrcAliasNL +syntax keyword muttrcCommand skipwhite bind nextgroup=muttrcBindMenuList,muttrcBindMenuListNL +syntax keyword muttrcCommand skipwhite exec nextgroup=muttrcFunction +syntax keyword muttrcCommand skipwhite macro nextgroup=muttrcMacroMenuList,muttrcMacroMenuListNL +syntax keyword muttrcCommand skipwhite nospam nextgroup=muttrcNoSpamPattern +syntax keyword muttrcCommand skipwhite set unset reset toggle nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr +syntax keyword muttrcCommand skipwhite spam nextgroup=muttrcSpamPattern +syntax keyword muttrcCommand skipwhite unalias nextgroup=muttrcUnAliasKey,muttrcUnAliasNL +syntax keyword muttrcCommand skipwhite unhook nextgroup=muttrcHooks +syntax keyword muttrcCommand skipwhite + \ alternative_order attachments auto_view cd echo finish hdr_order ifdef ifndef ignore lua + \ lua-source mailboxes mailto_allow mime_lookup my_hdr named-mailboxes push score setenv + \ sidebar_whitelist source subjectrx subscribe-to tag-formats tag-transforms + \ unalternative_order unattachments unauto_view unbind uncolor unhdr_order unignore unmacro + \ unmailboxes unmailto_allow unmime_lookup unmono unmy_hdr unscore unsetenv + \ unsidebar_whitelist unsubjectrx unsubscribe-from unvirtual-mailboxes virtual-mailboxes + +function! s:genFunctions(functions) + for f in a:functions + exec 'syntax match muttrcFunction contained "\<' . l:f . '\>"' + endfor +endfunction + +" CHECKED 2022-04-08 +" List of functions in functions.c +" Note: 'noop' is included but is elsewhere in the source +call s:genFunctions(['noop', + \ 'accept', 'alias-dialog', 'append', 'attach-file', 'attach-key', 'attach-message', + \ 'attach-news-message', 'autocrypt-acct-menu', 'autocrypt-menu', 'backspace', + \ 'backward-char', 'backward-word', 'bol', 'bottom', 'bottom-page', 'bounce-message', + \ 'break-thread', 'buffy-cycle', 'buffy-list', 'capitalize-word', 'catchup', 'chain-next', + \ 'chain-prev', 'change-dir', 'change-folder', 'change-folder-readonly', 'change-newsgroup', + \ 'change-newsgroup-readonly', 'change-vfolder', 'check-new', 'check-stats', + \ 'check-traditional-pgp', 'clear-flag', 'collapse-all', 'collapse-parts', + \ 'collapse-thread', 'complete', 'complete-query', 'compose-to-sender', 'copy-file', + \ 'copy-message', 'create-account', 'create-alias', 'create-mailbox', 'current-bottom', + \ 'current-middle', 'current-top', 'decode-copy', 'decode-save', 'decrypt-copy', + \ 'decrypt-save', 'delete', 'delete-account', 'delete-char', 'delete-entry', + \ 'delete-mailbox', 'delete-message', 'delete-pattern', 'delete-subthread', 'delete-thread', + \ 'descend-directory', 'detach-file', 'display-address', 'display-filename', + \ 'display-message', 'display-toggle-weed', 'downcase-word', 'edit', 'edit-bcc', 'edit-cc', + \ 'edit-content-id', 'edit-description', 'edit-encoding', 'edit-fcc', 'edit-file', + \ 'edit-followup-to', 'edit-from', 'edit-headers', 'edit-label', 'edit-language', + \ 'edit-message', 'edit-mime', 'edit-newsgroups', 'edit-or-view-raw-message', + \ 'edit-raw-message', 'edit-reply-to', 'edit-subject', 'edit-to', 'edit-type', + \ 'edit-x-comment-to', 'end-cond', 'enter-command', 'enter-mask', 'entire-thread', 'eol', + \ 'error-history', 'exit', 'extract-keys', 'fetch-mail', 'filter-entry', 'first-entry', + \ 'flag-message', 'followup-message', 'forget-passphrase', 'forward-char', + \ 'forward-message', 'forward-to-group', 'forward-word', 'get-attachment', 'get-children', + \ 'get-message', 'get-parent', 'goto-folder', 'goto-parent', 'group-alternatives', + \ 'group-chat-reply', 'group-multilingual', 'group-related', 'group-reply', 'half-down', + \ 'half-up', 'help', 'history-down', 'history-search', 'history-up', 'imap-fetch-mail', + \ 'imap-logout-all', 'insert', 'ispell', 'jump', 'kill-eol', 'kill-eow', 'kill-line', + \ 'kill-word', 'last-entry', 'limit', 'limit-current-thread', 'link-threads', 'list-reply', + \ 'list-subscribe', 'list-unsubscribe', 'mail', 'mail-key', 'mailbox-cycle', 'mailbox-list', + \ 'mark-as-new', 'mark-message', 'middle-page', 'mix', 'modify-labels', + \ 'modify-labels-then-hide', 'modify-tags', 'modify-tags-then-hide', 'move-down', 'move-up', + \ 'new-mime', 'next-entry', 'next-line', 'next-new', 'next-new-then-unread', 'next-page', + \ 'next-subthread', 'next-thread', 'next-undeleted', 'next-unread', 'next-unread-mailbox', + \ 'parent-message', 'pgp-menu', 'pipe-entry', 'pipe-message', 'post-message', + \ 'postpone-message', 'previous-entry', 'previous-line', 'previous-new', + \ 'previous-new-then-unread', 'previous-page', 'previous-subthread', 'previous-thread', + \ 'previous-undeleted', 'previous-unread', 'print-entry', 'print-message', 'purge-message', + \ 'purge-thread', 'quasi-delete', 'query', 'query-append', 'quit', 'quote-char', + \ 'read-subthread', 'read-thread', 'recall-message', 'reconstruct-thread', 'redraw-screen', + \ 'refresh', 'reload-active', 'rename-attachment', 'rename-file', 'rename-mailbox', 'reply', + \ 'resend-message', 'root-message', 'save-entry', 'save-message', 'search', 'search-next', + \ 'search-opposite', 'search-reverse', 'search-toggle', 'select-entry', 'select-new', + \ 'send-message', 'set-flag', 'shell-escape', 'show-limit', 'show-log-messages', + \ 'show-version', 'sidebar-first', 'sidebar-last', 'sidebar-next', 'sidebar-next-new', + \ 'sidebar-open', 'sidebar-page-down', 'sidebar-page-up', 'sidebar-prev', + \ 'sidebar-prev-new', 'sidebar-toggle-virtual', 'sidebar-toggle-visible', 'skip-headers', + \ 'skip-quoted', 'smime-menu', 'sort', 'sort-alias', 'sort-alias-reverse', 'sort-mailbox', + \ 'sort-reverse', 'subscribe', 'subscribe-pattern', 'sync-mailbox', 'tag-entry', + \ 'tag-message', 'tag-pattern', 'tag-prefix', 'tag-prefix-cond', 'tag-subthread', + \ 'tag-thread', 'toggle-active', 'toggle-disposition', 'toggle-mailboxes', 'toggle-new', + \ 'toggle-prefer-encrypt', 'toggle-quoted', 'toggle-read', 'toggle-recode', + \ 'toggle-subscribed', 'toggle-unlink', 'toggle-write', 'top', 'top-page', + \ 'transpose-chars', 'uncatchup', 'undelete-entry', 'undelete-message', 'undelete-pattern', + \ 'undelete-subthread', 'undelete-thread', 'ungroup-attachment', 'unsubscribe', + \ 'unsubscribe-pattern', 'untag-pattern', 'upcase-word', 'update-encoding', 'verify-key', + \ 'vfolder-from-query', 'vfolder-from-query-readonly', 'vfolder-window-backward', + \ 'vfolder-window-forward', 'vfolder-window-reset', 'view-attach', 'view-attachments', + \ 'view-file', 'view-mailcap', 'view-name', 'view-pager', 'view-raw-message', 'view-text', + \ 'what-key', 'write-fcc' + \ ]) + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +highlight def link muttrcSetBoolAssignment Boolean +highlight def link muttrcSetQuadAssignment Boolean + +highlight def link muttrcComment Comment + +highlight def link muttrcAlternatesLine Error +highlight def link muttrcBadAction Error +highlight def link muttrcBindFunction Error +highlight def link muttrcBindMenuList Error +highlight def link muttrcColorBG Error +highlight def link muttrcColorBGH Error +highlight def link muttrcColorBGI Error +highlight def link muttrcColorContext Error +highlight def link muttrcColorFG Error +highlight def link muttrcColorFGH Error +highlight def link muttrcColorFGI Error +highlight def link muttrcColorLine Error +highlight def link muttrcFormatErrors Error +highlight def link muttrcGroupLine Error +highlight def link muttrcListsLine Error +highlight def link muttrcPattern Error +highlight def link muttrcSubscribeLine Error +highlight def link muttrcUnColorLine Error +highlight def link muttrcVarDeprecatedBool Error +highlight def link muttrcVarDeprecatedQuad Error +highlight def link muttrcVarDeprecatedStr Error + +highlight def link muttrcAliasEncEmail Identifier +highlight def link muttrcAliasKey Identifier +highlight def link muttrcColorCompose Identifier +highlight def link muttrcColorComposeField Identifier +highlight def link muttrcColorContextH Identifier +highlight def link muttrcColorContextI Identifier +highlight def link muttrcColorField Identifier +highlight def link muttrcMenu Identifier +highlight def link muttrcSimplePat Identifier +highlight def link muttrcUnAliasKey Identifier +highlight def link muttrcUnColorIndex Identifier +highlight def link muttrcVarBool Identifier +highlight def link muttrcVarNum Identifier +highlight def link muttrcVarQuad Identifier +highlight def link muttrcVarStr Identifier + +highlight def link muttrcCommand Keyword + +highlight def link muttrcAction Macro +highlight def link muttrcAliasGroupName Macro +highlight def link muttrcFunction Macro +highlight def link muttrcGroupDef Macro +highlight def link muttrcSimplePatString Macro + +highlight def link muttrcMonoAttrib muttrcColor + +highlight def link muttrcAlternateKeyword muttrcCommand +highlight def link muttrcAttachmentsLine muttrcCommand +highlight def link muttrcColorKeyword muttrcCommand +highlight def link muttrcGroupKeyword muttrcCommand +highlight def link muttrcListsKeyword muttrcCommand +highlight def link muttrcMono muttrcCommand +highlight def link muttrcPatHooks muttrcCommand +highlight def link muttrcRXHooks muttrcCommand +highlight def link muttrcSubscribeKeyword muttrcCommand +highlight def link muttrcUnColorKeyword muttrcCommand + +highlight def link muttrcAliasFormatEscapes muttrcEscape +highlight def link muttrcAttachFormatEscapes muttrcEscape +highlight def link muttrcComposeFormatEscapes muttrcEscape +highlight def link muttrcFolderFormatEscapes muttrcEscape +highlight def link muttrcGroupIndexFormatEscapes muttrcEscape +highlight def link muttrcIndexFormatEscapes muttrcEscape +highlight def link muttrcMixFormatEscapes muttrcEscape +highlight def link muttrcPatternFormatEscapes muttrcEscape +highlight def link muttrcPGPCmdFormatEscapes muttrcEscape +highlight def link muttrcPGPFormatEscapes muttrcEscape +highlight def link muttrcPGPTimeEscapes muttrcEscape +highlight def link muttrcQueryFormatEscapes muttrcEscape +highlight def link muttrcShellString muttrcEscape +highlight def link muttrcSidebarFormatEscapes muttrcEscape +highlight def link muttrcSmimeFormatEscapes muttrcEscape +highlight def link muttrcStatusFormatEscapes muttrcEscape +highlight def link muttrcTimeEscapes muttrcEscape + +highlight def link muttrcAliasFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcAttachFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcComposeFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcFolderFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcIndexFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcMixFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcPatternFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcPGPCmdFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcPGPFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcSmimeFormatConditionals muttrcFormatConditionals2 +highlight def link muttrcStatusFormatConditionals muttrcFormatConditionals2 + +highlight def link muttrcAddrDef muttrcGroupFlag +highlight def link muttrcRXDef muttrcGroupFlag + +highlight def link muttrcAliasFormatStr muttrcString +highlight def link muttrcAttachFormatStr muttrcString +highlight def link muttrcComposeFormatStr muttrcString +highlight def link muttrcFolderFormatStr muttrcString +highlight def link muttrcGroupIndexFormatStr muttrcString +highlight def link muttrcIndexFormatStr muttrcString +highlight def link muttrcMixFormatStr muttrcString +highlight def link muttrcPatternFormatStr muttrcString +highlight def link muttrcPGPCmdFormatStr muttrcString +highlight def link muttrcPGPFormatStr muttrcString +highlight def link muttrcQueryFormatStr muttrcString +highlight def link muttrcSidebarFormatStr muttrcString +highlight def link muttrcSmimeFormatStr muttrcString +highlight def link muttrcStatusFormatStr muttrcString +highlight def link muttrcStrftimeFormatStr muttrcString + +highlight def link muttrcSetNumAssignment Number + +highlight def link muttrcEmail Special +highlight def link muttrcSimplePatMetas Special +highlight def link muttrcSpecial Special +highlight def link muttrcVariableInner Special + +highlight def link muttrcAliasEncEmailNL SpecialChar +highlight def link muttrcAliasENNL SpecialChar +highlight def link muttrcAliasGroupDefNL SpecialChar +highlight def link muttrcAliasNameNL SpecialChar +highlight def link muttrcAliasNL SpecialChar +highlight def link muttrcBindFunctionNL SpecialChar +highlight def link muttrcBindKeyNL SpecialChar +highlight def link muttrcBindMenuListNL SpecialChar +highlight def link muttrcColorBGNL SpecialChar +highlight def link muttrcColorFGNL SpecialChar +highlight def link muttrcColorMatchCountNL SpecialChar +highlight def link muttrcColorNL SpecialChar +highlight def link muttrcColorRXNL SpecialChar +highlight def link muttrcEscape SpecialChar +highlight def link muttrcKeyName SpecialChar +highlight def link muttrcKeySpecial SpecialChar +highlight def link muttrcMacroBodyNL SpecialChar +highlight def link muttrcMacroDescrNL SpecialChar +highlight def link muttrcMacroKeyNL SpecialChar +highlight def link muttrcMacroMenuListNL SpecialChar +highlight def link muttrcPatternNL SpecialChar +highlight def link muttrcRXChars SpecialChar +highlight def link muttrcStringNL SpecialChar +highlight def link muttrcUnAliasNL SpecialChar +highlight def link muttrcUnColorAPNL SpecialChar +highlight def link muttrcUnColorIndexNL SpecialChar +highlight def link muttrcUnColorPatNL SpecialChar + +highlight def link muttrcAttachmentsMimeType String +highlight def link muttrcEscapedVariable String +highlight def link muttrcMacroDescr String +highlight def link muttrcRXPat String +highlight def link muttrcRXString String +highlight def link muttrcRXString2 String +highlight def link muttrcSetStrAssignment String +highlight def link muttrcString String + +highlight def link muttrcAliasParens Type +highlight def link muttrcAttachmentsFlag Type +highlight def link muttrcColor Type +highlight def link muttrcFormatConditionals2 Type +highlight def link muttrcGroupFlag Type +highlight def link muttrcHeader Type +highlight def link muttrcHooks Type +highlight def link muttrcKey Type +highlight def link muttrcPatHookNot Type +highlight def link muttrcRXHookNot Type +highlight def link muttrcStrftimeEscapes Type + +let b:current_syntax = "neomuttrc" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim isk+=- diff --git a/runtime/syntax/netrc.vim b/runtime/syntax/netrc.vim new file mode 100644 index 0000000..567aaa9 --- /dev/null +++ b/runtime/syntax/netrc.vim @@ -0,0 +1,56 @@ +" Vim syntax file +" Language: netrc(5) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2010-01-03 +" Last Change: 2023 Feb 27 by Keith Smiley + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword netrcKeyword machine nextgroup=netrcMachine skipwhite skipnl +syn keyword netrcKeyword account + \ login + \ nextgroup=netrcLogin,netrcSpecial skipwhite skipnl +syn keyword netrcKeyword password nextgroup=netrcPassword skipwhite skipnl +syn keyword netrcKeyword default +syn keyword netrcKeyword macdef + \ nextgroup=netrcInit,netrcMacroName skipwhite skipnl +syn region netrcMacro contained start='.' end='^$' + +syn match netrcMachine contained display '\S\+' +syn match netrcMachine contained display '"[^\\"]*\(\\.[^\\"]*\)*"' +syn match netrcLogin contained display '\S\+' +syn match netrcLogin contained display '"[^\\"]*\(\\.[^\\"]*\)*"' +syn match netrcPassword contained display '\S\+' +syn match netrcPassword contained display '"[^\\"]*\(\\.[^\\"]*\)*"' +syn match netrcMacroName contained display '\S\+' + \ nextgroup=netrcMacro skipwhite skipnl +syn match netrcMacroName contained display '"[^\\"]*\(\\.[^\\"]*\)*"' + \ nextgroup=netrcMacro skipwhite skipnl + +syn keyword netrcSpecial contained anonymous +syn match netrcInit contained '\" contained skipwhite + +" ----------------------------- +" Special filetype highlighting {{{1 +" ----------------------------- +if exists("g:netrw_special_syntax") && g:netrw_special_syntax + if exists("+suffixes") && &suffixes != "" + let suflist= join(split(&suffixes,',')) + let suflist= escape(substitute(suflist," ",'\\|','g'),'.~') + exe "syn match netrwSpecFile '\\(\\S\\+ \\)*\\S*\\(".suflist."\\)\\>' contains=netrwTreeBar,@NoSpell" + endif + syn match netrwBak "\(\S\+ \)*\S\+\.bak\>" contains=netrwTreeBar,@NoSpell + syn match netrwCompress "\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>" contains=netrwTreeBar,@NoSpell + if has("unix") + syn match netrwCoreDump "\" contains=netrwTreeBar,@NoSpell + endif + syn match netrwLex "\(\S\+ \)*\S\+\.\%(l\|lex\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwYacc "\(\S\+ \)*\S\+\.y\>" contains=netrwTreeBar,@NoSpell + syn match netrwData "\(\S\+ \)*\S\+\.dat\>" contains=netrwTreeBar,@NoSpell + syn match netrwDoc "\(\S\+ \)*\S\+\.\%(doc\|txt\|pdf\|ps\|docx\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwHdr "\(\S\+ \)*\S\+\.\%(h\|hpp\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwLib "\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwMakeFile "\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>" contains=netrwTreeBar,@NoSpell + syn match netrwObj "\(\S\+ \)*\S*\.\%(o\|obj\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwPix "\c\(\S\+ \)*\S*\.\%(bmp\|fits\=\|gif\|je\=pg\|pcx\|ppc\|pgm\|png\|ppm\|psd\|rgb\|tif\|xbm\|xcf\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwTags "\<\(ANmenu\|ANtags\)\>" contains=netrwTreeBar,@NoSpell + syn match netrwTags "\" contains=netrwTreeBar,@NoSpell + syn match netrwTilde "\(\S\+ \)*\S\+\~\*\=\>" contains=netrwTreeBar,@NoSpell + syn match netrwTmp "\\|\(\S\+ \)*\S*tmp\>" contains=netrwTreeBar,@NoSpell +endif + +" --------------------------------------------------------------------- +" Highlighting Links: {{{1 +if !exists("did_drchip_netrwlist_syntax") + let did_drchip_netrwlist_syntax= 1 + hi default link netrwClassify Function + hi default link netrwCmdSep Delimiter + hi default link netrwComment Comment + hi default link netrwDir Directory + hi default link netrwHelpCmd Function + hi default link netrwQHTopic Number + hi default link netrwHidePat Statement + hi default link netrwHideSep netrwComment + hi default link netrwList Statement + hi default link netrwVersion Identifier + hi default link netrwSymLink Question + hi default link netrwExe PreProc + hi default link netrwDateSep Delimiter + + hi default link netrwTreeBar Special + hi default link netrwTimeSep netrwDateSep + hi default link netrwComma netrwComment + hi default link netrwHide netrwComment + hi default link netrwMarkFile TabLineSel + hi default link netrwLink Special + + " special syntax highlighting (see :he g:netrw_special_syntax) + hi default link netrwCoreDump WarningMsg + hi default link netrwData Folded + hi default link netrwHdr netrwPlain + hi default link netrwLex netrwPlain + hi default link netrwLib DiffChange + hi default link netrwMakefile DiffChange + hi default link netrwYacc netrwPlain + hi default link netrwPix Special + + hi default link netrwBak netrwGray + hi default link netrwCompress netrwGray + hi default link netrwSpecFile netrwGray + hi default link netrwObj netrwGray + hi default link netrwTags netrwGray + hi default link netrwTilde netrwGray + hi default link netrwTmp netrwGray +endif + + " set up netrwGray to be understated (but not Ignore'd or Conceal'd, as those + " can be hard/impossible to read). Users may override this in a colorscheme by + " specifying netrwGray highlighting. + redir => s:netrwgray + sil hi netrwGray + redir END + if s:netrwgray !~ 'guifg' + if has("gui") && has("gui_running") + if &bg == "dark" + exe "hi netrwGray gui=NONE guifg=gray30" + else + exe "hi netrwGray gui=NONE guifg=gray70" + endif + else + hi link netrwGray Folded + endif + endif + +" Current Syntax: {{{1 +let b:current_syntax = "netrwlist" +" --------------------------------------------------------------------- +" vim: ts=8 fdm=marker diff --git a/runtime/syntax/nginx.vim b/runtime/syntax/nginx.vim new file mode 100644 index 0000000..d036c12 --- /dev/null +++ b/runtime/syntax/nginx.vim @@ -0,0 +1,2340 @@ +" Vim syntax file +" Language: nginx.conf +" Maintainer: Chris Aumann +" Last Change: Nov 25, 2023 + +if exists("b:current_syntax") + finish +end + +let b:current_syntax = "nginx" + +syn match ngxVariable '\$\(\w\+\|{\w\+}\)' +syn match ngxVariableBlock '\$\(\w\+\|{\w\+}\)' contained +syn match ngxVariableString '\$\(\w\+\|{\w\+}\)' contained +syn region ngxBlock start=+^+ end=+{+ skip=+\${\|{{\|{%+ contains=ngxComment,ngxInteger,ngxIPaddr,ngxDirectiveBlock,ngxVariableBlock,ngxString,ngxThirdPartyLuaBlock oneline +syn region ngxString start=+[^:a-zA-Z>!\\@]\z(["']\)+lc=1 end=+\z1+ skip=+\\\\\|\\\z1+ contains=ngxVariableString,ngxSSLCipherInsecure +syn match ngxComment ' *#.*$' + +" These regular expressions where taken (and adapted) from +" http://vim.1045645.n5.nabble.com/IPv6-support-for-quot-dns-quot-zonefile-syntax-highlighting-td1197292.html +syn match ngxInteger '\W\zs\(\d[0-9.]*\|[0-9.]*\d\)\w\?\ze\W' +syn match ngxIPaddr '\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\|\(\x\{1,4}:\)\{,5}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\|\(\x\{1,4}:\)\{,4}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\|\(\x\{1,4}:\)\{,3}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\|\(\x\{1,4}:\)\{,2}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\|\(\x\{1,4}:\)\{,1}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\]' +syn match ngxIPaddr '\[\(\x\{1,4}:\)\{6}:\x\{1,4}\]' + +" Highlight wildcard listening signs also as IPaddr +syn match ngxIPaddr '\s\zs\[::]' +syn match ngxIPaddr '\s\zs\*' + +syn keyword ngxBoolean on +syn keyword ngxBoolean off + +syn keyword ngxDirectiveBlock http contained +syn keyword ngxDirectiveBlock mail contained +syn keyword ngxDirectiveBlock events contained +syn keyword ngxDirectiveBlock server contained +syn keyword ngxDirectiveBlock match contained +syn keyword ngxDirectiveBlock types contained +syn keyword ngxDirectiveBlock location contained +syn keyword ngxDirectiveBlock upstream contained +syn keyword ngxDirectiveBlock charset_map contained +syn keyword ngxDirectiveBlock limit_except contained +syn keyword ngxDirectiveBlock if contained +syn keyword ngxDirectiveBlock geo contained +syn keyword ngxDirectiveBlock map contained +syn keyword ngxDirectiveBlock split_clients contained + +syn keyword ngxDirectiveImportant include +syn keyword ngxDirectiveImportant root +syn keyword ngxDirectiveImportant server contained +syn region ngxDirectiveImportantServer matchgroup=ngxDirectiveImportant start=+^\s*\zsserver\ze\s.*;+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxUpstreamServerOptions,ngxString,ngxIPaddr,ngxBoolean,ngxInteger,ngxTemplateVar +syn keyword ngxDirectiveImportant server_name +syn keyword ngxDirectiveImportant listen contained +syn region ngxDirectiveImportantListen matchgroup=ngxDirectiveImportant start=+listen+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxListenOptions,ngxString,ngxIPaddr,ngxBoolean,ngxInteger,ngxTemplateVar +syn keyword ngxDirectiveImportant internal +syn keyword ngxDirectiveImportant proxy_pass +syn keyword ngxDirectiveImportant memcached_pass +syn keyword ngxDirectiveImportant fastcgi_pass +syn keyword ngxDirectiveImportant scgi_pass +syn keyword ngxDirectiveImportant uwsgi_pass +syn keyword ngxDirectiveImportant try_files +syn keyword ngxDirectiveImportant error_page +syn keyword ngxDirectiveImportant post_action + +syn keyword ngxUpstreamServerOptions weight contained +syn keyword ngxUpstreamServerOptions max_conns contained +syn keyword ngxUpstreamServerOptions max_fails contained +syn keyword ngxUpstreamServerOptions fail_timeout contained +syn keyword ngxUpstreamServerOptions backup contained +syn keyword ngxUpstreamServerOptions down contained +syn keyword ngxUpstreamServerOptions resolve contained +syn keyword ngxUpstreamServerOptions route contained +syn keyword ngxUpstreamServerOptions service contained +syn keyword ngxUpstreamServerOptions default_server contained +syn keyword ngxUpstreamServerOptions slow_start contained + +syn keyword ngxListenOptions default_server contained +syn keyword ngxListenOptions ssl contained +syn keyword ngxListenOptions http2 contained +syn keyword ngxListenOptions spdy contained +syn keyword ngxListenOptions http3 contained +syn keyword ngxListenOptions quic contained +syn keyword ngxListenOptions proxy_protocol contained +syn keyword ngxListenOptions setfib contained +syn keyword ngxListenOptions fastopen contained +syn keyword ngxListenOptions backlog contained +syn keyword ngxListenOptions rcvbuf contained +syn keyword ngxListenOptions sndbuf contained +syn keyword ngxListenOptions accept_filter contained +syn keyword ngxListenOptions deferred contained +syn keyword ngxListenOptions bind contained +syn keyword ngxListenOptions ipv6only contained +syn keyword ngxListenOptions reuseport contained +syn keyword ngxListenOptions so_keepalive contained +syn keyword ngxListenOptions keepidle contained + +syn keyword ngxDirectiveControl break +syn keyword ngxDirectiveControl return +syn keyword ngxDirectiveControl rewrite +syn keyword ngxDirectiveControl set + +syn keyword ngxDirectiveDeprecated connections +syn keyword ngxDirectiveDeprecated imap +syn keyword ngxDirectiveDeprecated limit_zone +syn keyword ngxDirectiveDeprecated mysql_test +syn keyword ngxDirectiveDeprecated open_file_cache_retest +syn keyword ngxDirectiveDeprecated optimize_server_names +syn keyword ngxDirectiveDeprecated satisfy_any +syn keyword ngxDirectiveDeprecated so_keepalive + +syn keyword ngxDirective absolute_redirect +syn keyword ngxDirective accept_mutex +syn keyword ngxDirective accept_mutex_delay +syn keyword ngxDirective acceptex_read +syn keyword ngxDirective access_log +syn keyword ngxDirective add_after_body +syn keyword ngxDirective add_before_body +syn keyword ngxDirective add_header +syn keyword ngxDirective addition_types +syn keyword ngxDirective aio +syn keyword ngxDirective aio_write +syn keyword ngxDirective alias +syn keyword ngxDirective allow +syn keyword ngxDirective ancient_browser +syn keyword ngxDirective ancient_browser_value +syn keyword ngxDirective auth_basic +syn keyword ngxDirective auth_basic_user_file +syn keyword ngxDirective auth_http +syn keyword ngxDirective auth_http_header +syn keyword ngxDirective auth_http_pass_client_cert +syn keyword ngxDirective auth_http_timeout +syn keyword ngxDirective auth_jwt +syn keyword ngxDirective auth_jwt_key_file +syn keyword ngxDirective auth_request +syn keyword ngxDirective auth_request_set +syn keyword ngxDirective autoindex +syn keyword ngxDirective autoindex_exact_size +syn keyword ngxDirective autoindex_format +syn keyword ngxDirective autoindex_localtime +syn keyword ngxDirective charset +syn keyword ngxDirective charset_map +syn keyword ngxDirective charset_types +syn keyword ngxDirective chunked_transfer_encoding +syn keyword ngxDirective client_body_buffer_size +syn keyword ngxDirective client_body_in_file_only +syn keyword ngxDirective client_body_in_single_buffer +syn keyword ngxDirective client_body_temp_path +syn keyword ngxDirective client_body_timeout +syn keyword ngxDirective client_header_buffer_size +syn keyword ngxDirective client_header_timeout +syn keyword ngxDirective client_max_body_size +syn keyword ngxDirective connection_pool_size +syn keyword ngxDirective create_full_put_path +syn keyword ngxDirective daemon +syn keyword ngxDirective dav_access +syn keyword ngxDirective dav_methods +syn keyword ngxDirective debug_connection +syn keyword ngxDirective debug_points +syn keyword ngxDirective default_type +syn keyword ngxDirective degradation +syn keyword ngxDirective degrade +syn keyword ngxDirective deny +syn keyword ngxDirective devpoll_changes +syn keyword ngxDirective devpoll_events +syn keyword ngxDirective directio +syn keyword ngxDirective directio_alignment +syn keyword ngxDirective disable_symlinks +syn keyword ngxDirective empty_gif +syn keyword ngxDirective env +syn keyword ngxDirective epoll_events +syn keyword ngxDirective error_log +syn keyword ngxDirective etag +syn keyword ngxDirective eventport_events +syn keyword ngxDirective expires +syn keyword ngxDirective f4f +syn keyword ngxDirective f4f_buffer_size +syn keyword ngxDirective fastcgi_bind +syn keyword ngxDirective fastcgi_buffer_size +syn keyword ngxDirective fastcgi_buffering +syn keyword ngxDirective fastcgi_buffers +syn keyword ngxDirective fastcgi_busy_buffers_size +syn keyword ngxDirective fastcgi_cache +syn keyword ngxDirective fastcgi_cache_bypass +syn keyword ngxDirective fastcgi_cache_key +syn keyword ngxDirective fastcgi_cache_lock +syn keyword ngxDirective fastcgi_cache_lock_age +syn keyword ngxDirective fastcgi_cache_lock_timeout +syn keyword ngxDirective fastcgi_cache_max_range_offset +syn keyword ngxDirective fastcgi_cache_methods +syn keyword ngxDirective fastcgi_cache_min_uses +syn keyword ngxDirective fastcgi_cache_path +syn keyword ngxDirective fastcgi_cache_purge +syn keyword ngxDirective fastcgi_cache_revalidate +syn keyword ngxDirective fastcgi_cache_use_stale +syn keyword ngxDirective fastcgi_cache_valid +syn keyword ngxDirective fastcgi_catch_stderr +syn keyword ngxDirective fastcgi_connect_timeout +syn keyword ngxDirective fastcgi_force_ranges +syn keyword ngxDirective fastcgi_hide_header +syn keyword ngxDirective fastcgi_ignore_client_abort +syn keyword ngxDirective fastcgi_ignore_headers +syn keyword ngxDirective fastcgi_index +syn keyword ngxDirective fastcgi_intercept_errors +syn keyword ngxDirective fastcgi_keep_conn +syn keyword ngxDirective fastcgi_limit_rate +syn keyword ngxDirective fastcgi_max_temp_file_size +syn keyword ngxDirective fastcgi_next_upstream +syn keyword ngxDirective fastcgi_next_upstream_timeout +syn keyword ngxDirective fastcgi_next_upstream_tries +syn keyword ngxDirective fastcgi_no_cache +syn keyword ngxDirective fastcgi_param +syn keyword ngxDirective fastcgi_pass_header +syn keyword ngxDirective fastcgi_pass_request_body +syn keyword ngxDirective fastcgi_pass_request_headers +syn keyword ngxDirective fastcgi_read_timeout +syn keyword ngxDirective fastcgi_request_buffering +syn keyword ngxDirective fastcgi_send_lowat +syn keyword ngxDirective fastcgi_send_timeout +syn keyword ngxDirective fastcgi_split_path_info +syn keyword ngxDirective fastcgi_store +syn keyword ngxDirective fastcgi_store_access +syn keyword ngxDirective fastcgi_temp_file_write_size +syn keyword ngxDirective fastcgi_temp_path +syn keyword ngxDirective flv +syn keyword ngxDirective geoip_city +syn keyword ngxDirective geoip_country +syn keyword ngxDirective geoip_org +syn keyword ngxDirective geoip_proxy +syn keyword ngxDirective geoip_proxy_recursive +syn keyword ngxDirective google_perftools_profiles +syn keyword ngxDirective gunzip +syn keyword ngxDirective gunzip_buffers +syn keyword ngxDirective gzip nextgroup=ngxGzipOn,ngxGzipOff skipwhite +syn keyword ngxGzipOn on contained +syn keyword ngxGzipOff off contained +syn keyword ngxDirective gzip_buffers +syn keyword ngxDirective gzip_comp_level +syn keyword ngxDirective gzip_disable +syn keyword ngxDirective gzip_hash +syn keyword ngxDirective gzip_http_version +syn keyword ngxDirective gzip_min_length +syn keyword ngxDirective gzip_no_buffer +syn keyword ngxDirective gzip_proxied +syn keyword ngxDirective gzip_static +syn keyword ngxDirective gzip_types +syn keyword ngxDirective gzip_vary +syn keyword ngxDirective gzip_window +syn keyword ngxDirective hash +syn keyword ngxDirective health_check +syn keyword ngxDirective health_check_timeout +syn keyword ngxDirective hls +syn keyword ngxDirective hls_buffers +syn keyword ngxDirective hls_forward_args +syn keyword ngxDirective hls_fragment +syn keyword ngxDirective hls_mp4_buffer_size +syn keyword ngxDirective hls_mp4_max_buffer_size +syn keyword ngxDirective http2 +syn keyword ngxDirective http2_chunk_size +syn keyword ngxDirective http2_body_preread_size +syn keyword ngxDirective http2_idle_timeout +syn keyword ngxDirective http2_max_concurrent_streams +syn keyword ngxDirective http2_max_field_size +syn keyword ngxDirective http2_max_header_size +syn keyword ngxDirective http2_max_requests +syn keyword ngxDirective http2_push +syn keyword ngxDirective http2_push_preload +syn keyword ngxDirective http2_recv_buffer_size +syn keyword ngxDirective http2_recv_timeout +syn keyword ngxDirective http3 +syn keyword ngxDirective http3_hq +syn keyword ngxDirective http3_max_concurrent_pushes +syn keyword ngxDirective http3_max_concurrent_streams +syn keyword ngxDirective http3_push +syn keyword ngxDirective http3_push_preload +syn keyword ngxDirective http3_stream_buffer_size +syn keyword ngxDirective if_modified_since +syn keyword ngxDirective ignore_invalid_headers +syn keyword ngxDirective image_filter +syn keyword ngxDirective image_filter_buffer +syn keyword ngxDirective image_filter_interlace +syn keyword ngxDirective image_filter_jpeg_quality +syn keyword ngxDirective image_filter_sharpen +syn keyword ngxDirective image_filter_transparency +syn keyword ngxDirective image_filter_webp_quality +syn keyword ngxDirective imap_auth +syn keyword ngxDirective imap_capabilities +syn keyword ngxDirective imap_client_buffer +syn keyword ngxDirective index +syn keyword ngxDirective iocp_threads +syn keyword ngxDirective ip_hash +syn keyword ngxDirective js_access +syn keyword ngxDirective js_content +syn keyword ngxDirective js_filter +syn keyword ngxDirective js_include +syn keyword ngxDirective js_preread +syn keyword ngxDirective js_set +syn keyword ngxDirective keepalive +syn keyword ngxDirective keepalive_disable +syn keyword ngxDirective keepalive_requests +syn keyword ngxDirective keepalive_timeout +syn keyword ngxDirective kqueue_changes +syn keyword ngxDirective kqueue_events +syn keyword ngxDirective large_client_header_buffers +syn keyword ngxDirective least_conn +syn keyword ngxDirective least_time +syn keyword ngxDirective limit_conn +syn keyword ngxDirective limit_conn_dry_run +syn keyword ngxDirective limit_conn_log_level +syn keyword ngxDirective limit_conn_status +syn keyword ngxDirective limit_conn_zone +syn keyword ngxDirective limit_except +syn keyword ngxDirective limit_rate +syn keyword ngxDirective limit_rate_after +syn keyword ngxDirective limit_req +syn keyword ngxDirective limit_req_dry_run +syn keyword ngxDirective limit_req_log_level +syn keyword ngxDirective limit_req_status +syn keyword ngxDirective limit_req_zone +syn keyword ngxDirective lingering_close +syn keyword ngxDirective lingering_time +syn keyword ngxDirective lingering_timeout +syn keyword ngxDirective load_module +syn keyword ngxDirective lock_file +syn keyword ngxDirective log_format +syn keyword ngxDirective log_not_found +syn keyword ngxDirective log_subrequest +syn keyword ngxDirective map_hash_bucket_size +syn keyword ngxDirective map_hash_max_size +syn keyword ngxDirective master_process +syn keyword ngxDirective max_ranges +syn keyword ngxDirective memcached_bind +syn keyword ngxDirective memcached_buffer_size +syn keyword ngxDirective memcached_connect_timeout +syn keyword ngxDirective memcached_force_ranges +syn keyword ngxDirective memcached_gzip_flag +syn keyword ngxDirective memcached_next_upstream +syn keyword ngxDirective memcached_next_upstream_timeout +syn keyword ngxDirective memcached_next_upstream_tries +syn keyword ngxDirective memcached_read_timeout +syn keyword ngxDirective memcached_send_timeout +syn keyword ngxDirective merge_slashes +syn keyword ngxDirective min_delete_depth +syn keyword ngxDirective modern_browser +syn keyword ngxDirective modern_browser_value +syn keyword ngxDirective mp4 +syn keyword ngxDirective mp4_buffer_size +syn keyword ngxDirective mp4_max_buffer_size +syn keyword ngxDirective mp4_limit_rate +syn keyword ngxDirective mp4_limit_rate_after +syn keyword ngxDirective msie_padding +syn keyword ngxDirective msie_refresh +syn keyword ngxDirective multi_accept +syn keyword ngxDirective ntlm +syn keyword ngxDirective open_file_cache +syn keyword ngxDirective open_file_cache_errors +syn keyword ngxDirective open_file_cache_events +syn keyword ngxDirective open_file_cache_min_uses +syn keyword ngxDirective open_file_cache_valid +syn keyword ngxDirective open_log_file_cache +syn keyword ngxDirective output_buffers +syn keyword ngxDirective override_charset +syn keyword ngxDirective pcre_jit +syn keyword ngxDirective perl +syn keyword ngxDirective perl_modules +syn keyword ngxDirective perl_require +syn keyword ngxDirective perl_set +syn keyword ngxDirective pid +syn keyword ngxDirective pop3_auth +syn keyword ngxDirective pop3_capabilities +syn keyword ngxDirective port_in_redirect +syn keyword ngxDirective post_acceptex +syn keyword ngxDirective postpone_gzipping +syn keyword ngxDirective postpone_output +syn keyword ngxDirective preread_buffer_size +syn keyword ngxDirective preread_timeout +syn keyword ngxDirective protocol nextgroup=ngxMailProtocol skipwhite +syn keyword ngxMailProtocol imap pop3 smtp contained +syn keyword ngxDirective proxy +syn keyword ngxDirective proxy_bind +syn keyword ngxDirective proxy_buffer +syn keyword ngxDirective proxy_buffer_size +syn keyword ngxDirective proxy_buffering +syn keyword ngxDirective proxy_buffers +syn keyword ngxDirective proxy_busy_buffers_size +syn keyword ngxDirective proxy_cache +syn keyword ngxDirective proxy_cache_bypass +syn keyword ngxDirective proxy_cache_convert_head +syn keyword ngxDirective proxy_cache_key +syn keyword ngxDirective proxy_cache_lock +syn keyword ngxDirective proxy_cache_lock_age +syn keyword ngxDirective proxy_cache_lock_timeout +syn keyword ngxDirective proxy_cache_max_range_offset +syn keyword ngxDirective proxy_cache_methods +syn keyword ngxDirective proxy_cache_min_uses +syn keyword ngxDirective proxy_cache_path +syn keyword ngxDirective proxy_cache_purge +syn keyword ngxDirective proxy_cache_revalidate +syn keyword ngxDirective proxy_cache_use_stale +syn keyword ngxDirective proxy_cache_valid +syn keyword ngxDirective proxy_connect_timeout +syn keyword ngxDirective proxy_cookie_domain +syn keyword ngxDirective proxy_cookie_path +syn keyword ngxDirective proxy_download_rate +syn keyword ngxDirective proxy_force_ranges +syn keyword ngxDirective proxy_headers_hash_bucket_size +syn keyword ngxDirective proxy_headers_hash_max_size +syn keyword ngxDirective proxy_hide_header +syn keyword ngxDirective proxy_http_version +syn keyword ngxDirective proxy_ignore_client_abort +syn keyword ngxDirective proxy_ignore_headers +syn keyword ngxDirective proxy_intercept_errors +syn keyword ngxDirective proxy_limit_rate +syn keyword ngxDirective proxy_max_temp_file_size +syn keyword ngxDirective proxy_method +syn keyword ngxDirective proxy_next_upstream contained +syn region ngxDirectiveProxyNextUpstream matchgroup=ngxDirective start=+^\s*\zsproxy_next_upstream\ze\s.*;+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxProxyNextUpstreamOptions,ngxString,ngxTemplateVar +syn keyword ngxDirective proxy_next_upstream_timeout +syn keyword ngxDirective proxy_next_upstream_tries +syn keyword ngxDirective proxy_no_cache +syn keyword ngxDirective proxy_pass_error_message +syn keyword ngxDirective proxy_pass_header +syn keyword ngxDirective proxy_pass_request_body +syn keyword ngxDirective proxy_pass_request_headers +syn keyword ngxDirective proxy_protocol +syn keyword ngxDirective proxy_protocol_timeout +syn keyword ngxDirective proxy_read_timeout +syn keyword ngxDirective proxy_redirect +syn keyword ngxDirective proxy_request_buffering +syn keyword ngxDirective proxy_responses +syn keyword ngxDirective proxy_send_lowat +syn keyword ngxDirective proxy_send_timeout +syn keyword ngxDirective proxy_set_body +syn keyword ngxDirective proxy_set_header +syn keyword ngxDirective proxy_ssl_certificate +syn keyword ngxDirective proxy_ssl_certificate_key +syn keyword ngxDirective proxy_ssl_ciphers +syn keyword ngxDirective proxy_ssl_crl +syn keyword ngxDirective proxy_ssl_name +syn keyword ngxDirective proxy_ssl_password_file +syn keyword ngxDirective proxy_ssl_protocols nextgroup=ngxSSLProtocol skipwhite +syn keyword ngxDirective proxy_ssl_server_name +syn keyword ngxDirective proxy_ssl_session_reuse +syn keyword ngxDirective proxy_ssl_trusted_certificate +syn keyword ngxDirective proxy_ssl_verify +syn keyword ngxDirective proxy_ssl_verify_depth +syn keyword ngxDirective proxy_store +syn keyword ngxDirective proxy_store_access +syn keyword ngxDirective proxy_temp_file_write_size +syn keyword ngxDirective proxy_temp_path +syn keyword ngxDirective proxy_timeout +syn keyword ngxDirective proxy_upload_rate +syn keyword ngxDirective queue +syn keyword ngxDirective quic_gso +syn keyword ngxDirective quic_host_key +syn keyword ngxDirective quic_mtu +syn keyword ngxDirective quic_retry +syn keyword ngxDirective random_index +syn keyword ngxDirective read_ahead +syn keyword ngxDirective real_ip_header +syn keyword ngxDirective real_ip_recursive +syn keyword ngxDirective recursive_error_pages +syn keyword ngxDirective referer_hash_bucket_size +syn keyword ngxDirective referer_hash_max_size +syn keyword ngxDirective request_pool_size +syn keyword ngxDirective reset_timedout_connection +syn keyword ngxDirective resolver +syn keyword ngxDirective resolver_timeout +syn keyword ngxDirective rewrite_log +syn keyword ngxDirective rtsig_overflow_events +syn keyword ngxDirective rtsig_overflow_test +syn keyword ngxDirective rtsig_overflow_threshold +syn keyword ngxDirective rtsig_signo +syn keyword ngxDirective satisfy +syn keyword ngxDirective scgi_bind +syn keyword ngxDirective scgi_buffer_size +syn keyword ngxDirective scgi_buffering +syn keyword ngxDirective scgi_buffers +syn keyword ngxDirective scgi_busy_buffers_size +syn keyword ngxDirective scgi_cache +syn keyword ngxDirective scgi_cache_bypass +syn keyword ngxDirective scgi_cache_key +syn keyword ngxDirective scgi_cache_lock +syn keyword ngxDirective scgi_cache_lock_age +syn keyword ngxDirective scgi_cache_lock_timeout +syn keyword ngxDirective scgi_cache_max_range_offset +syn keyword ngxDirective scgi_cache_methods +syn keyword ngxDirective scgi_cache_min_uses +syn keyword ngxDirective scgi_cache_path +syn keyword ngxDirective scgi_cache_purge +syn keyword ngxDirective scgi_cache_revalidate +syn keyword ngxDirective scgi_cache_use_stale +syn keyword ngxDirective scgi_cache_valid +syn keyword ngxDirective scgi_connect_timeout +syn keyword ngxDirective scgi_force_ranges +syn keyword ngxDirective scgi_hide_header +syn keyword ngxDirective scgi_ignore_client_abort +syn keyword ngxDirective scgi_ignore_headers +syn keyword ngxDirective scgi_intercept_errors +syn keyword ngxDirective scgi_limit_rate +syn keyword ngxDirective scgi_max_temp_file_size +syn keyword ngxDirective scgi_next_upstream +syn keyword ngxDirective scgi_next_upstream_timeout +syn keyword ngxDirective scgi_next_upstream_tries +syn keyword ngxDirective scgi_no_cache +syn keyword ngxDirective scgi_param +syn keyword ngxDirective scgi_pass_header +syn keyword ngxDirective scgi_pass_request_body +syn keyword ngxDirective scgi_pass_request_headers +syn keyword ngxDirective scgi_read_timeout +syn keyword ngxDirective scgi_request_buffering +syn keyword ngxDirective scgi_send_timeout +syn keyword ngxDirective scgi_store +syn keyword ngxDirective scgi_store_access +syn keyword ngxDirective scgi_temp_file_write_size +syn keyword ngxDirective scgi_temp_path +syn keyword ngxDirective secure_link +syn keyword ngxDirective secure_link_md5 +syn keyword ngxDirective secure_link_secret +syn keyword ngxDirective send_lowat +syn keyword ngxDirective send_timeout +syn keyword ngxDirective sendfile +syn keyword ngxDirective sendfile_max_chunk +syn keyword ngxDirective server_name_in_redirect +syn keyword ngxDirective server_names_hash_bucket_size +syn keyword ngxDirective server_names_hash_max_size +syn keyword ngxDirective server_tokens +syn keyword ngxDirective session_log +syn keyword ngxDirective session_log_format +syn keyword ngxDirective session_log_zone +syn keyword ngxDirective set_real_ip_from +syn keyword ngxDirective slice +syn keyword ngxDirective smtp_auth +syn keyword ngxDirective smtp_capabilities +syn keyword ngxDirective smtp_client_buffer +syn keyword ngxDirective smtp_greeting_delay +syn keyword ngxDirective source_charset +syn keyword ngxDirective spdy_chunk_size +syn keyword ngxDirective spdy_headers_comp +syn keyword ngxDirective spdy_keepalive_timeout +syn keyword ngxDirective spdy_max_concurrent_streams +syn keyword ngxDirective spdy_pool_size +syn keyword ngxDirective spdy_recv_buffer_size +syn keyword ngxDirective spdy_recv_timeout +syn keyword ngxDirective spdy_streams_index_size +syn keyword ngxDirective ssi +syn keyword ngxDirective ssi_ignore_recycled_buffers +syn keyword ngxDirective ssi_last_modified +syn keyword ngxDirective ssi_min_file_chunk +syn keyword ngxDirective ssi_silent_errors +syn keyword ngxDirective ssi_types +syn keyword ngxDirective ssi_value_length +syn keyword ngxDirective ssl +syn keyword ngxDirective ssl_buffer_size +syn keyword ngxDirective ssl_certificate +syn keyword ngxDirective ssl_certificate_key +syn keyword ngxDirective ssl_ciphers +syn keyword ngxDirective ssl_client_certificate +syn keyword ngxDirective ssl_conf_command +syn keyword ngxDirective ssl_crl +syn keyword ngxDirective ssl_dhparam +syn keyword ngxDirective ssl_early_data +syn keyword ngxDirective ssl_ecdh_curve +syn keyword ngxDirective ssl_engine +syn keyword ngxDirective ssl_handshake_timeout +syn keyword ngxDirective ssl_password_file +syn keyword ngxDirective ssl_prefer_server_ciphers nextgroup=ngxSSLPreferServerCiphersOff,ngxSSLPreferServerCiphersOn skipwhite +syn keyword ngxSSLPreferServerCiphersOn on contained +syn keyword ngxSSLPreferServerCiphersOff off contained +syn keyword ngxDirective ssl_preread +syn keyword ngxDirective ssl_protocols nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite +syn keyword ngxDirective ssl_reject_handshake +syn match ngxSSLProtocol 'TLSv1' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite +syn match ngxSSLProtocol 'TLSv1\.1' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite +syn match ngxSSLProtocol 'TLSv1\.2' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite +syn match ngxSSLProtocol 'TLSv1\.3' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite + +" Do not enable highlighting of insecure protocols if sslecure is loaded +if !exists('g:loaded_sslsecure') + syn keyword ngxSSLProtocolDeprecated SSLv2 SSLv3 contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite +else + syn match ngxSSLProtocol 'SSLv2' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite + syn match ngxSSLProtocol 'SSLv3' contained nextgroup=ngxSSLProtocol,ngxSSLProtocolDeprecated skipwhite +endif + +syn keyword ngxDirective ssl_session_cache +syn keyword ngxDirective ssl_session_ticket_key +syn keyword ngxDirective ssl_session_tickets nextgroup=ngxSSLSessionTicketsOn,ngxSSLSessionTicketsOff skipwhite +syn keyword ngxSSLSessionTicketsOn on contained +syn keyword ngxSSLSessionTicketsOff off contained +syn keyword ngxDirective ssl_session_timeout +syn keyword ngxDirective ssl_stapling +syn keyword ngxDirective ssl_stapling_file +syn keyword ngxDirective ssl_stapling_responder +syn keyword ngxDirective ssl_stapling_verify +syn keyword ngxDirective ssl_trusted_certificate +syn keyword ngxDirective ssl_verify_client +syn keyword ngxDirective ssl_verify_depth +syn keyword ngxDirective starttls +syn keyword ngxDirective state +syn keyword ngxDirective status +syn keyword ngxDirective status_format +syn keyword ngxDirective status_zone +syn keyword ngxDirective sticky contained +syn keyword ngxDirective sticky_cookie_insert contained +syn region ngxDirectiveSticky matchgroup=ngxDirective start=+^\s*\zssticky\ze\s.*;+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxCookieOptions,ngxString,ngxBoolean,ngxInteger,ngxTemplateVar +syn keyword ngxDirective stub_status +syn keyword ngxDirective sub_filter +syn keyword ngxDirective sub_filter_last_modified +syn keyword ngxDirective sub_filter_once +syn keyword ngxDirective sub_filter_types +syn keyword ngxDirective tcp_nodelay +syn keyword ngxDirective tcp_nopush +syn keyword ngxDirective thread_pool +syn keyword ngxDirective thread_stack_size +syn keyword ngxDirective timeout +syn keyword ngxDirective timer_resolution +syn keyword ngxDirective types_hash_bucket_size +syn keyword ngxDirective types_hash_max_size +syn keyword ngxDirective underscores_in_headers +syn keyword ngxDirective uninitialized_variable_warn +syn keyword ngxDirective upstream_conf +syn keyword ngxDirective use +syn keyword ngxDirective user +syn keyword ngxDirective userid +syn keyword ngxDirective userid_domain +syn keyword ngxDirective userid_expires +syn keyword ngxDirective userid_mark +syn keyword ngxDirective userid_name +syn keyword ngxDirective userid_p3p +syn keyword ngxDirective userid_path +syn keyword ngxDirective userid_service +syn keyword ngxDirective uwsgi_bind +syn keyword ngxDirective uwsgi_buffer_size +syn keyword ngxDirective uwsgi_buffering +syn keyword ngxDirective uwsgi_buffers +syn keyword ngxDirective uwsgi_busy_buffers_size +syn keyword ngxDirective uwsgi_cache +syn keyword ngxDirective uwsgi_cache_background_update +syn keyword ngxDirective uwsgi_cache_bypass +syn keyword ngxDirective uwsgi_cache_key +syn keyword ngxDirective uwsgi_cache_lock +syn keyword ngxDirective uwsgi_cache_lock_age +syn keyword ngxDirective uwsgi_cache_lock_timeout +syn keyword ngxDirective uwsgi_cache_methods +syn keyword ngxDirective uwsgi_cache_min_uses +syn keyword ngxDirective uwsgi_cache_path +syn keyword ngxDirective uwsgi_cache_purge +syn keyword ngxDirective uwsgi_cache_revalidate +syn keyword ngxDirective uwsgi_cache_use_stale +syn keyword ngxDirective uwsgi_cache_valid +syn keyword ngxDirective uwsgi_connect_timeout +syn keyword ngxDirective uwsgi_force_ranges +syn keyword ngxDirective uwsgi_hide_header +syn keyword ngxDirective uwsgi_ignore_client_abort +syn keyword ngxDirective uwsgi_ignore_headers +syn keyword ngxDirective uwsgi_intercept_errors +syn keyword ngxDirective uwsgi_limit_rate +syn keyword ngxDirective uwsgi_max_temp_file_size +syn keyword ngxDirective uwsgi_modifier1 +syn keyword ngxDirective uwsgi_modifier2 +syn keyword ngxDirective uwsgi_next_upstream +syn keyword ngxDirective uwsgi_next_upstream_timeout +syn keyword ngxDirective uwsgi_next_upstream_tries +syn keyword ngxDirective uwsgi_no_cache +syn keyword ngxDirective uwsgi_param +syn keyword ngxDirective uwsgi_pass +syn keyword ngxDirective uwsgi_pass_header +syn keyword ngxDirective uwsgi_pass_request_body +syn keyword ngxDirective uwsgi_pass_request_headers +syn keyword ngxDirective uwsgi_read_timeout +syn keyword ngxDirective uwsgi_request_buffering +syn keyword ngxDirective uwsgi_send_timeout +syn keyword ngxDirective uwsgi_ssl_certificate +syn keyword ngxDirective uwsgi_ssl_certificate_key +syn keyword ngxDirective uwsgi_ssl_ciphers +syn keyword ngxDirective uwsgi_ssl_crl +syn keyword ngxDirective uwsgi_ssl_name +syn keyword ngxDirective uwsgi_ssl_password_file +syn keyword ngxDirective uwsgi_ssl_protocols nextgroup=ngxSSLProtocol skipwhite +syn keyword ngxDirective uwsgi_ssl_server_name +syn keyword ngxDirective uwsgi_ssl_session_reuse +syn keyword ngxDirective uwsgi_ssl_trusted_certificate +syn keyword ngxDirective uwsgi_ssl_verify +syn keyword ngxDirective uwsgi_ssl_verify_depth +syn keyword ngxDirective uwsgi_store +syn keyword ngxDirective uwsgi_store_access +syn keyword ngxDirective uwsgi_string +syn keyword ngxDirective uwsgi_temp_file_write_size +syn keyword ngxDirective uwsgi_temp_path +syn keyword ngxDirective valid_referers +syn keyword ngxDirective variables_hash_bucket_size +syn keyword ngxDirective variables_hash_max_size +syn keyword ngxDirective worker_aio_requests +syn keyword ngxDirective worker_connections +syn keyword ngxDirective worker_cpu_affinity +syn keyword ngxDirective worker_priority +syn keyword ngxDirective worker_processes +syn keyword ngxDirective worker_rlimit_core +syn keyword ngxDirective worker_rlimit_nofile +syn keyword ngxDirective worker_rlimit_sigpending +syn keyword ngxDirective worker_threads +syn keyword ngxDirective working_directory +syn keyword ngxDirective xclient +syn keyword ngxDirective xml_entities +syn keyword ngxDirective xslt_last_modified +syn keyword ngxDirective xslt_param +syn keyword ngxDirective xslt_string_param +syn keyword ngxDirective xslt_stylesheet +syn keyword ngxDirective xslt_types +syn keyword ngxDirective zone + +" Do not enable highlighting of insecure ciphers if sslecure is loaded +if !exists('g:loaded_sslsecure') + " Mark insecure SSL Ciphers (Note: List might not not complete) + " Reference: https://www.openssl.org/docs/man1.0.2/apps/ciphers.html + syn match ngxSSLCipherInsecure '[^!]\zsSSLv3' + syn match ngxSSLCipherInsecure '[^!]\zsSSLv2' + syn match ngxSSLCipherInsecure '[^!]\zsHIGH' + syn match ngxSSLCipherInsecure '[^!]\zsMEDIUM' + syn match ngxSSLCipherInsecure '[^!]\zsLOW' + syn match ngxSSLCipherInsecure '[^!]\zsDEFAULT' + syn match ngxSSLCipherInsecure '[^!]\zsCOMPLEMENTOFDEFAULT' + syn match ngxSSLCipherInsecure '[^!]\zsALL' + syn match ngxSSLCipherInsecure '[^!]\zsCOMPLEMENTOFALL' + + " SHA ciphers are only used in HMAC with all known OpenSSL/ LibreSSL cipher suites and MAC + " usage is still considered safe + " syn match ngxSSLCipherInsecure '[^!]\zsSHA\ze\D' " Match SHA1 without matching SHA256+ + " syn match ngxSSLCipherInsecure '[^!]\zsSHA1' + syn match ngxSSLCipherInsecure '[^!]\zsMD5' + syn match ngxSSLCipherInsecure '[^!]\zsRC2' + syn match ngxSSLCipherInsecure '[^!]\zsRC4' + syn match ngxSSLCipherInsecure '[^!]\zs3DES' + syn match ngxSSLCipherInsecure '[^!3]\zsDES' + syn match ngxSSLCipherInsecure '[^!]\zsaDSS' + syn match ngxSSLCipherInsecure '[^!a]\zsDSS' + syn match ngxSSLCipherInsecure '[^!]\zsPSK' + syn match ngxSSLCipherInsecure '[^!]\zsIDEA' + syn match ngxSSLCipherInsecure '[^!]\zsSEED' + syn match ngxSSLCipherInsecure '[^!]\zsEXP\w*' " Match all EXPORT ciphers + syn match ngxSSLCipherInsecure '[^!]\zsaGOST\w*' " Match all GOST ciphers + syn match ngxSSLCipherInsecure '[^!]\zskGOST\w*' + syn match ngxSSLCipherInsecure '[^!ak]\zsGOST\w*' + syn match ngxSSLCipherInsecure '[^!]\zs[kae]\?FZA' " Not implemented + syn match ngxSSLCipherInsecure '[^!]\zsECB' + syn match ngxSSLCipherInsecure '[^!]\zs[aes]NULL' + + " Anonymous cipher suites should never be used + syn match ngxSSLCipherInsecure '[^!ECa]\zsDH\ze[^E]' " Try to match DH without DHE, EDH, EECDH, etc. + syn match ngxSSLCipherInsecure '[^!EA]\zsECDH\ze[^E]' " Do not match EECDH, ECDHE + syn match ngxSSLCipherInsecure '[^!]\zsADH' + syn match ngxSSLCipherInsecure '[^!]\zskDHE' + syn match ngxSSLCipherInsecure '[^!]\zskEDH' + syn match ngxSSLCipherInsecure '[^!]\zskECDHE' + syn match ngxSSLCipherInsecure '[^!]\zskEECDH' + syn match ngxSSLCipherInsecure '[^!E]\zsAECDH' +endif + +syn keyword ngxProxyNextUpstreamOptions error contained +syn keyword ngxProxyNextUpstreamOptions timeout contained +syn keyword ngxProxyNextUpstreamOptions invalid_header contained +syn keyword ngxProxyNextUpstreamOptions http_500 contained +syn keyword ngxProxyNextUpstreamOptions http_502 contained +syn keyword ngxProxyNextUpstreamOptions http_503 contained +syn keyword ngxProxyNextUpstreamOptions http_504 contained +syn keyword ngxProxyNextUpstreamOptions http_403 contained +syn keyword ngxProxyNextUpstreamOptions http_404 contained +syn keyword ngxProxyNextUpstreamOptions http_429 contained +syn keyword ngxProxyNextUpstreamOptions non_idempotent contained +syn keyword ngxProxyNextUpstreamOptions off contained + +syn keyword ngxStickyOptions cookie contained +syn region ngxStickyOptionsCookie matchgroup=ngxStickyOptions start=+^\s*\zssticky\s\s*cookie\ze\s.*;+ skip=+\\\\\|\\\;+ end=+;+he=e-1 contains=ngxCookieOptions,ngxString,ngxBoolean,ngxInteger,ngxTemplateVar +syn keyword ngxStickyOptions route contained +syn keyword ngxStickyOptions learn contained + +syn keyword ngxCookieOptions expires contained +syn keyword ngxCookieOptions domain contained +syn keyword ngxCookieOptions httponly contained +syn keyword ngxCookieOptions secure contained +syn keyword ngxCookieOptions path contained + +" 3rd party module list: +" https://www.nginx.com/resources/wiki/modules/ + +" Accept Language Module +" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales. +syn keyword ngxDirectiveThirdParty set_from_accept_language + +" Access Key Module (DEPRECATED) +" Denies access unless the request URL contains an access key. +syn keyword ngxDirectiveDeprecated accesskey +syn keyword ngxDirectiveDeprecated accesskey_arg +syn keyword ngxDirectiveDeprecated accesskey_hashmethod +syn keyword ngxDirectiveDeprecated accesskey_signature + +" Asynchronous FastCGI Module +" Primarily a modified version of the Nginx FastCGI module which implements multiplexing of connections, allowing a single FastCGI server to handle many concurrent requests. +" syn keyword ngxDirectiveThirdParty fastcgi_bind +" syn keyword ngxDirectiveThirdParty fastcgi_buffer_size +" syn keyword ngxDirectiveThirdParty fastcgi_buffers +" syn keyword ngxDirectiveThirdParty fastcgi_busy_buffers_size +" syn keyword ngxDirectiveThirdParty fastcgi_cache +" syn keyword ngxDirectiveThirdParty fastcgi_cache_key +" syn keyword ngxDirectiveThirdParty fastcgi_cache_methods +" syn keyword ngxDirectiveThirdParty fastcgi_cache_min_uses +" syn keyword ngxDirectiveThirdParty fastcgi_cache_path +" syn keyword ngxDirectiveThirdParty fastcgi_cache_use_stale +" syn keyword ngxDirectiveThirdParty fastcgi_cache_valid +" syn keyword ngxDirectiveThirdParty fastcgi_catch_stderr +" syn keyword ngxDirectiveThirdParty fastcgi_connect_timeout +" syn keyword ngxDirectiveThirdParty fastcgi_hide_header +" syn keyword ngxDirectiveThirdParty fastcgi_ignore_client_abort +" syn keyword ngxDirectiveThirdParty fastcgi_ignore_headers +" syn keyword ngxDirectiveThirdParty fastcgi_index +" syn keyword ngxDirectiveThirdParty fastcgi_intercept_errors +" syn keyword ngxDirectiveThirdParty fastcgi_max_temp_file_size +" syn keyword ngxDirectiveThirdParty fastcgi_next_upstream +" syn keyword ngxDirectiveThirdParty fastcgi_param +" syn keyword ngxDirectiveThirdParty fastcgi_pass +" syn keyword ngxDirectiveThirdParty fastcgi_pass_header +" syn keyword ngxDirectiveThirdParty fastcgi_pass_request_body +" syn keyword ngxDirectiveThirdParty fastcgi_pass_request_headers +" syn keyword ngxDirectiveThirdParty fastcgi_read_timeout +" syn keyword ngxDirectiveThirdParty fastcgi_send_lowat +" syn keyword ngxDirectiveThirdParty fastcgi_send_timeout +" syn keyword ngxDirectiveThirdParty fastcgi_split_path_info +" syn keyword ngxDirectiveThirdParty fastcgi_store +" syn keyword ngxDirectiveThirdParty fastcgi_store_access +" syn keyword ngxDirectiveThirdParty fastcgi_temp_file_write_size +" syn keyword ngxDirectiveThirdParty fastcgi_temp_path +syn keyword ngxDirectiveDeprecated fastcgi_upstream_fail_timeout +syn keyword ngxDirectiveDeprecated fastcgi_upstream_max_fails + +" Akamai G2O Module +" Nginx Module for Authenticating Akamai G2O requests +syn keyword ngxDirectiveThirdParty g2o +syn keyword ngxDirectiveThirdParty g2o_nonce +syn keyword ngxDirectiveThirdParty g2o_key + +" Lua Module +" You can be very simple to execute lua code for nginx +syn keyword ngxDirectiveThirdParty lua_file + +" Array Variable Module +" Add support for array-typed variables to nginx config files +syn keyword ngxDirectiveThirdParty array_split +syn keyword ngxDirectiveThirdParty array_join +syn keyword ngxDirectiveThirdParty array_map +syn keyword ngxDirectiveThirdParty array_map_op + +" Nginx Audio Track for HTTP Live Streaming +" This nginx module generates audio track for hls streams on the fly. +syn keyword ngxDirectiveThirdParty ngx_hls_audio_track +syn keyword ngxDirectiveThirdParty ngx_hls_audio_track_rootpath +syn keyword ngxDirectiveThirdParty ngx_hls_audio_track_output_format +syn keyword ngxDirectiveThirdParty ngx_hls_audio_track_output_header + +" AWS Proxy Module +" Nginx module to proxy to authenticated AWS services +syn keyword ngxDirectiveThirdParty aws_access_key +syn keyword ngxDirectiveThirdParty aws_key_scope +syn keyword ngxDirectiveThirdParty aws_signing_key +syn keyword ngxDirectiveThirdParty aws_endpoint +syn keyword ngxDirectiveThirdParty aws_s3_bucket +syn keyword ngxDirectiveThirdParty aws_sign + +" Backtrace module +" A Nginx module to dump backtrace when a worker process exits abnormally +syn keyword ngxDirectiveThirdParty backtrace_log +syn keyword ngxDirectiveThirdParty backtrace_max_stack_size + +" Brotli Module +" Nginx module for Brotli compression +syn keyword ngxDirectiveThirdParty brotli_static +syn keyword ngxDirectiveThirdParty brotli +syn keyword ngxDirectiveThirdParty brotli_types +syn keyword ngxDirectiveThirdParty brotli_buffers +syn keyword ngxDirectiveThirdParty brotli_comp_level +syn keyword ngxDirectiveThirdParty brotli_window +syn keyword ngxDirectiveThirdParty brotli_min_length + +" Cache Purge Module +" Adds ability to purge content from FastCGI, proxy, SCGI and uWSGI caches. +syn keyword ngxDirectiveThirdParty fastcgi_cache_purge +syn keyword ngxDirectiveThirdParty proxy_cache_purge +" syn keyword ngxDirectiveThirdParty scgi_cache_purge +" syn keyword ngxDirectiveThirdParty uwsgi_cache_purge + +" Chunkin Module (DEPRECATED) +" HTTP 1.1 chunked-encoding request body support for Nginx. +syn keyword ngxDirectiveDeprecated chunkin +syn keyword ngxDirectiveDeprecated chunkin_keepalive +syn keyword ngxDirectiveDeprecated chunkin_max_chunks_per_buf +syn keyword ngxDirectiveDeprecated chunkin_resume + +" Circle GIF Module +" Generates simple circle images with the colors and size specified in the URL. +syn keyword ngxDirectiveThirdParty circle_gif +syn keyword ngxDirectiveThirdParty circle_gif_max_radius +syn keyword ngxDirectiveThirdParty circle_gif_min_radius +syn keyword ngxDirectiveThirdParty circle_gif_step_radius + +" Nginx-Clojure Module +" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales. +syn keyword ngxDirectiveThirdParty jvm_path +syn keyword ngxDirectiveThirdParty jvm_var +syn keyword ngxDirectiveThirdParty jvm_classpath +syn keyword ngxDirectiveThirdParty jvm_classpath_check +syn keyword ngxDirectiveThirdParty jvm_workers +syn keyword ngxDirectiveThirdParty jvm_options +syn keyword ngxDirectiveThirdParty jvm_handler_type +syn keyword ngxDirectiveThirdParty jvm_init_handler_name +syn keyword ngxDirectiveThirdParty jvm_init_handler_code +syn keyword ngxDirectiveThirdParty jvm_exit_handler_name +syn keyword ngxDirectiveThirdParty jvm_exit_handler_code +syn keyword ngxDirectiveThirdParty handlers_lazy_init +syn keyword ngxDirectiveThirdParty auto_upgrade_ws +syn keyword ngxDirectiveThirdParty content_handler_type +syn keyword ngxDirectiveThirdParty content_handler_name +syn keyword ngxDirectiveThirdParty content_handler_code +syn keyword ngxDirectiveThirdParty rewrite_handler_type +syn keyword ngxDirectiveThirdParty rewrite_handler_name +syn keyword ngxDirectiveThirdParty rewrite_handler_code +syn keyword ngxDirectiveThirdParty access_handler_type +syn keyword ngxDirectiveThirdParty access_handler_name +syn keyword ngxDirectiveThirdParty access_handler_code +syn keyword ngxDirectiveThirdParty header_filter_type +syn keyword ngxDirectiveThirdParty header_filter_name +syn keyword ngxDirectiveThirdParty header_filter_code +syn keyword ngxDirectiveThirdParty content_handler_property +syn keyword ngxDirectiveThirdParty rewrite_handler_property +syn keyword ngxDirectiveThirdParty access_handler_property +syn keyword ngxDirectiveThirdParty header_filter_property +syn keyword ngxDirectiveThirdParty always_read_body +syn keyword ngxDirectiveThirdParty shared_map +syn keyword ngxDirectiveThirdParty write_page_size + +" Upstream Consistent Hash +" A load balancer that uses an internal consistent hash ring to select the right backend node. +syn keyword ngxDirectiveThirdParty consistent_hash + +" Nginx Development Kit +" The NDK is an Nginx module that is designed to extend the core functionality of the excellent Nginx webserver in a way that can be used as a basis of other Nginx modules. +" NDK_UPSTREAM_LIST +" This submodule provides a directive that creates a list of upstreams, with optional weighting. This list can then be used by other modules to hash over the upstreams however they choose. +syn keyword ngxDirectiveThirdParty upstream_list + +" Drizzle Module +" Upstream module for talking to MySQL and Drizzle directly +syn keyword ngxDirectiveThirdParty drizzle_server +syn keyword ngxDirectiveThirdParty drizzle_keepalive +syn keyword ngxDirectiveThirdParty drizzle_query +syn keyword ngxDirectiveThirdParty drizzle_pass +syn keyword ngxDirectiveThirdParty drizzle_connect_timeout +syn keyword ngxDirectiveThirdParty drizzle_send_query_timeout +syn keyword ngxDirectiveThirdParty drizzle_recv_cols_timeout +syn keyword ngxDirectiveThirdParty drizzle_recv_rows_timeout +syn keyword ngxDirectiveThirdParty drizzle_buffer_size +syn keyword ngxDirectiveThirdParty drizzle_module_header +syn keyword ngxDirectiveThirdParty drizzle_status + +" Dynamic ETags Module +" Attempt at handling ETag / If-None-Match on proxied content. +syn keyword ngxDirectiveThirdParty dynamic_etags + +" Echo Module +" Bringing the power of "echo", "sleep", "time" and more to Nginx's config file +syn keyword ngxDirectiveThirdParty echo +syn keyword ngxDirectiveThirdParty echo_duplicate +syn keyword ngxDirectiveThirdParty echo_flush +syn keyword ngxDirectiveThirdParty echo_sleep +syn keyword ngxDirectiveThirdParty echo_blocking_sleep +syn keyword ngxDirectiveThirdParty echo_reset_timer +syn keyword ngxDirectiveThirdParty echo_read_request_body +syn keyword ngxDirectiveThirdParty echo_location_async +syn keyword ngxDirectiveThirdParty echo_location +syn keyword ngxDirectiveThirdParty echo_subrequest_async +syn keyword ngxDirectiveThirdParty echo_subrequest +syn keyword ngxDirectiveThirdParty echo_foreach_split +syn keyword ngxDirectiveThirdParty echo_end +syn keyword ngxDirectiveThirdParty echo_request_body +syn keyword ngxDirectiveThirdParty echo_exec +syn keyword ngxDirectiveThirdParty echo_status +syn keyword ngxDirectiveThirdParty echo_before_body +syn keyword ngxDirectiveThirdParty echo_after_body + +" Encrypted Session Module +" Encrypt and decrypt nginx variable values +syn keyword ngxDirectiveThirdParty encrypted_session_key +syn keyword ngxDirectiveThirdParty encrypted_session_iv +syn keyword ngxDirectiveThirdParty encrypted_session_expires +syn keyword ngxDirectiveThirdParty set_encrypt_session +syn keyword ngxDirectiveThirdParty set_decrypt_session + +" Enhanced Memcached Module +" This module is based on the standard Nginx Memcached module, with some additonal features +syn keyword ngxDirectiveThirdParty enhanced_memcached_pass +syn keyword ngxDirectiveThirdParty enhanced_memcached_hash_keys_with_md5 +syn keyword ngxDirectiveThirdParty enhanced_memcached_allow_put +syn keyword ngxDirectiveThirdParty enhanced_memcached_allow_delete +syn keyword ngxDirectiveThirdParty enhanced_memcached_stats +syn keyword ngxDirectiveThirdParty enhanced_memcached_flush +syn keyword ngxDirectiveThirdParty enhanced_memcached_flush_namespace +syn keyword ngxDirectiveThirdParty enhanced_memcached_bind +syn keyword ngxDirectiveThirdParty enhanced_memcached_connect_timeout +syn keyword ngxDirectiveThirdParty enhanced_memcached_send_timeout +syn keyword ngxDirectiveThirdParty enhanced_memcached_buffer_size +syn keyword ngxDirectiveThirdParty enhanced_memcached_read_timeout + +" Events Module (DEPRECATED) +" Provides options for start/stop events. +syn keyword ngxDirectiveDeprecated on_start +syn keyword ngxDirectiveDeprecated on_stop + +" EY Balancer Module +" Adds a request queue to Nginx that allows the limiting of concurrent requests passed to the upstream. +syn keyword ngxDirectiveThirdParty max_connections +syn keyword ngxDirectiveThirdParty max_connections_max_queue_length +syn keyword ngxDirectiveThirdParty max_connections_queue_timeout + +" Upstream Fair Balancer +" Sends an incoming request to the least-busy backend server, rather than distributing requests round-robin. +syn keyword ngxDirectiveThirdParty fair +syn keyword ngxDirectiveThirdParty upstream_fair_shm_size + +" Fancy Indexes Module +" Like the built-in autoindex module, but fancier. +syn keyword ngxDirectiveThirdParty fancyindex +syn keyword ngxDirectiveThirdParty fancyindex_default_sort +syn keyword ngxDirectiveThirdParty fancyindex_directories_first +syn keyword ngxDirectiveThirdParty fancyindex_css_href +syn keyword ngxDirectiveThirdParty fancyindex_exact_size +syn keyword ngxDirectiveThirdParty fancyindex_name_length +syn keyword ngxDirectiveThirdParty fancyindex_footer +syn keyword ngxDirectiveThirdParty fancyindex_header +syn keyword ngxDirectiveThirdParty fancyindex_show_path +syn keyword ngxDirectiveThirdParty fancyindex_ignore +syn keyword ngxDirectiveThirdParty fancyindex_hide_symlinks +syn keyword ngxDirectiveThirdParty fancyindex_localtime +syn keyword ngxDirectiveThirdParty fancyindex_time_format + +" Form Auth Module +" Provides authentication and authorization with credentials submitted via POST request +syn keyword ngxDirectiveThirdParty form_auth +syn keyword ngxDirectiveThirdParty form_auth_pam_service +syn keyword ngxDirectiveThirdParty form_auth_login +syn keyword ngxDirectiveThirdParty form_auth_password +syn keyword ngxDirectiveThirdParty form_auth_remote_user + +" Form Input Module +" Reads HTTP POST and PUT request body encoded in "application/x-www-form-urlencoded" and parses the arguments into nginx variables. +syn keyword ngxDirectiveThirdParty set_form_input +syn keyword ngxDirectiveThirdParty set_form_input_multi + +" GeoIP Module (DEPRECATED) +" Country code lookups via the MaxMind GeoIP API. +syn keyword ngxDirectiveDeprecated geoip_country_file + +" GeoIP 2 Module +" Creates variables with values from the maxmind geoip2 databases based on the client IP +syn keyword ngxDirectiveThirdParty geoip2 + +" GridFS Module +" Nginx module for serving files from MongoDB's GridFS +syn keyword ngxDirectiveThirdParty gridfs + +" Headers More Module +" Set and clear input and output headers...more than "add"! +syn keyword ngxDirectiveThirdParty more_clear_headers +syn keyword ngxDirectiveThirdParty more_clear_input_headers +syn keyword ngxDirectiveThirdParty more_set_headers +syn keyword ngxDirectiveThirdParty more_set_input_headers + +" Health Checks Upstreams Module +" Polls backends and if they respond with HTTP 200 + an optional request body, they are marked good. Otherwise, they are marked bad. +syn keyword ngxDirectiveThirdParty healthcheck_enabled +syn keyword ngxDirectiveThirdParty healthcheck_delay +syn keyword ngxDirectiveThirdParty healthcheck_timeout +syn keyword ngxDirectiveThirdParty healthcheck_failcount +syn keyword ngxDirectiveThirdParty healthcheck_send +syn keyword ngxDirectiveThirdParty healthcheck_expected +syn keyword ngxDirectiveThirdParty healthcheck_buffer +syn keyword ngxDirectiveThirdParty healthcheck_status + +" HTTP Accounting Module +" Add traffic stat function to nginx. Useful for http accounting based on nginx configuration logic +syn keyword ngxDirectiveThirdParty http_accounting +syn keyword ngxDirectiveThirdParty http_accounting_log +syn keyword ngxDirectiveThirdParty http_accounting_id +syn keyword ngxDirectiveThirdParty http_accounting_interval +syn keyword ngxDirectiveThirdParty http_accounting_perturb + +" Nginx Digest Authentication module +" Digest Authentication for Nginx +syn keyword ngxDirectiveThirdParty auth_digest +syn keyword ngxDirectiveThirdParty auth_digest_user_file +syn keyword ngxDirectiveThirdParty auth_digest_timeout +syn keyword ngxDirectiveThirdParty auth_digest_expires +syn keyword ngxDirectiveThirdParty auth_digest_replays +syn keyword ngxDirectiveThirdParty auth_digest_shm_size + +" Auth PAM Module +" HTTP Basic Authentication using PAM. +syn keyword ngxDirectiveThirdParty auth_pam +syn keyword ngxDirectiveThirdParty auth_pam_service_name + +" HTTP Auth Request Module +" Implements client authorization based on the result of a subrequest +" syn keyword ngxDirectiveThirdParty auth_request +" syn keyword ngxDirectiveThirdParty auth_request_set + +" HTTP Concatenation module for Nginx +" A Nginx module for concatenating files in a given context: CSS and JS files usually +syn keyword ngxDirectiveThirdParty concat +syn keyword ngxDirectiveThirdParty concat_types +syn keyword ngxDirectiveThirdParty concat_unique +syn keyword ngxDirectiveThirdParty concat_max_files +syn keyword ngxDirectiveThirdParty concat_delimiter +syn keyword ngxDirectiveThirdParty concat_ignore_file_error + +" HTTP Dynamic Upstream Module +" Update upstreams' config by restful interface +syn keyword ngxDirectiveThirdParty dyups_interface +syn keyword ngxDirectiveThirdParty dyups_read_msg_timeout +syn keyword ngxDirectiveThirdParty dyups_shm_zone_size +syn keyword ngxDirectiveThirdParty dyups_upstream_conf +syn keyword ngxDirectiveThirdParty dyups_trylock + +" HTTP Footer If Filter Module +" The ngx_http_footer_if_filter_module is used to add given content to the end of the response according to the condition specified. +syn keyword ngxDirectiveThirdParty footer_if + +" HTTP Footer Filter Module +" This module implements a body filter that adds a given string to the page footer. +syn keyword ngxDirectiveThirdParty footer +syn keyword ngxDirectiveThirdParty footer_types + +" HTTP Internal Redirect Module +" Make an internal redirect to the uri specified according to the condition specified. +syn keyword ngxDirectiveThirdParty internal_redirect_if +syn keyword ngxDirectiveThirdParty internal_redirect_if_no_postponed + +" HTTP JavaScript Module +" Embedding SpiderMonkey. Nearly full port on Perl module. +syn keyword ngxDirectiveThirdParty js +syn keyword ngxDirectiveThirdParty js_filter +syn keyword ngxDirectiveThirdParty js_filter_types +syn keyword ngxDirectiveThirdParty js_load +syn keyword ngxDirectiveThirdParty js_maxmem +syn keyword ngxDirectiveThirdParty js_require +syn keyword ngxDirectiveThirdParty js_set +syn keyword ngxDirectiveThirdParty js_utf8 + +" HTTP Push Module (DEPRECATED) +" Turn Nginx into an adept long-polling HTTP Push (Comet) server. +syn keyword ngxDirectiveDeprecated push_buffer_size +syn keyword ngxDirectiveDeprecated push_listener +syn keyword ngxDirectiveDeprecated push_message_timeout +syn keyword ngxDirectiveDeprecated push_queue_messages +syn keyword ngxDirectiveDeprecated push_sender + +" HTTP Redis Module +" Redis support. +syn keyword ngxDirectiveThirdParty redis_bind +syn keyword ngxDirectiveThirdParty redis_buffer_size +syn keyword ngxDirectiveThirdParty redis_connect_timeout +syn keyword ngxDirectiveThirdParty redis_next_upstream +syn keyword ngxDirectiveThirdParty redis_pass +syn keyword ngxDirectiveThirdParty redis_read_timeout +syn keyword ngxDirectiveThirdParty redis_send_timeout + +" Iconv Module +" A character conversion nginx module using libiconv +syn keyword ngxDirectiveThirdParty set_iconv +syn keyword ngxDirectiveThirdParty iconv_buffer_size +syn keyword ngxDirectiveThirdParty iconv_filter + +" IP Blocker Module +" An efficient shared memory IP blocking system for nginx. +syn keyword ngxDirectiveThirdParty ip_blocker + +" IP2Location Module +" Allows user to lookup for geolocation information using IP2Location database +syn keyword ngxDirectiveThirdParty ip2location_database + +" JS Module +" Reflect the nginx functionality in JS +syn keyword ngxDirectiveThirdParty js +syn keyword ngxDirectiveThirdParty js_access +syn keyword ngxDirectiveThirdParty js_load +syn keyword ngxDirectiveThirdParty js_set + +" Limit Upload Rate Module +" Limit client-upload rate when they are sending request bodies to you +syn keyword ngxDirectiveThirdParty limit_upload_rate +syn keyword ngxDirectiveThirdParty limit_upload_rate_after + +" Limit Upstream Module +" Limit the number of connections to upstream for NGINX +syn keyword ngxDirectiveThirdParty limit_upstream_zone +syn keyword ngxDirectiveThirdParty limit_upstream_conn +syn keyword ngxDirectiveThirdParty limit_upstream_log_level + +" Log If Module +" Conditional accesslog for nginx +syn keyword ngxDirectiveThirdParty access_log_bypass_if + +" Log Request Speed (DEPRECATED) +" Log the time it took to process each request. +syn keyword ngxDirectiveDeprecated log_request_speed_filter +syn keyword ngxDirectiveDeprecated log_request_speed_filter_timeout + +" Log ZeroMQ Module +" ZeroMQ logger module for nginx +syn keyword ngxDirectiveThirdParty log_zmq_server +syn keyword ngxDirectiveThirdParty log_zmq_endpoint +syn keyword ngxDirectiveThirdParty log_zmq_format +syn keyword ngxDirectiveThirdParty log_zmq_off + +" Lower/UpperCase Module +" This module simply uppercases or lowercases a string and saves it into a new variable. +syn keyword ngxDirectiveThirdParty lower +syn keyword ngxDirectiveThirdParty upper + +" Lua Upstream Module +" Nginx C module to expose Lua API to ngx_lua for Nginx upstreams + +" Lua Module +" Embed the Power of Lua into NGINX HTTP servers +syn keyword ngxDirectiveThirdParty lua_use_default_type +syn keyword ngxDirectiveThirdParty lua_malloc_trim +syn keyword ngxDirectiveThirdParty lua_code_cache +syn keyword ngxDirectiveThirdParty lua_regex_cache_max_entries +syn keyword ngxDirectiveThirdParty lua_regex_match_limit +syn keyword ngxDirectiveThirdParty lua_package_path +syn keyword ngxDirectiveThirdParty lua_package_cpath +syn keyword ngxDirectiveThirdParty init_by_lua +syn keyword ngxDirectiveThirdParty init_by_lua_file +syn keyword ngxDirectiveThirdParty init_worker_by_lua +syn keyword ngxDirectiveThirdParty init_worker_by_lua_file +syn keyword ngxDirectiveThirdParty set_by_lua +syn keyword ngxDirectiveThirdParty set_by_lua_file +syn keyword ngxDirectiveThirdParty content_by_lua +syn keyword ngxDirectiveThirdParty content_by_lua_file +syn keyword ngxDirectiveThirdParty rewrite_by_lua +syn keyword ngxDirectiveThirdParty rewrite_by_lua_file +syn keyword ngxDirectiveThirdParty access_by_lua +syn keyword ngxDirectiveThirdParty access_by_lua_file +syn keyword ngxDirectiveThirdParty header_filter_by_lua +syn keyword ngxDirectiveThirdParty header_filter_by_lua_file +syn keyword ngxDirectiveThirdParty body_filter_by_lua +syn keyword ngxDirectiveThirdParty body_filter_by_lua_file +syn keyword ngxDirectiveThirdParty log_by_lua +syn keyword ngxDirectiveThirdParty log_by_lua_file +syn keyword ngxDirectiveThirdParty balancer_by_lua_file +syn keyword ngxDirectiveThirdParty lua_need_request_body +syn keyword ngxDirectiveThirdParty ssl_certificate_by_lua_file +syn keyword ngxDirectiveThirdParty ssl_session_fetch_by_lua_file +syn keyword ngxDirectiveThirdParty ssl_session_store_by_lua_file +syn keyword ngxDirectiveThirdParty lua_shared_dict +syn keyword ngxDirectiveThirdParty lua_socket_connect_timeout +syn keyword ngxDirectiveThirdParty lua_socket_send_timeout +syn keyword ngxDirectiveThirdParty lua_socket_send_lowat +syn keyword ngxDirectiveThirdParty lua_socket_read_timeout +syn keyword ngxDirectiveThirdParty lua_socket_buffer_size +syn keyword ngxDirectiveThirdParty lua_socket_pool_size +syn keyword ngxDirectiveThirdParty lua_socket_keepalive_timeout +syn keyword ngxDirectiveThirdParty lua_socket_log_errors +syn keyword ngxDirectiveThirdParty lua_ssl_ciphers +syn keyword ngxDirectiveThirdParty lua_ssl_crl +syn keyword ngxDirectiveThirdParty lua_ssl_protocols +syn keyword ngxDirectiveThirdParty lua_ssl_trusted_certificate +syn keyword ngxDirectiveThirdParty lua_ssl_verify_depth +syn keyword ngxDirectiveThirdParty lua_http10_buffering +syn keyword ngxDirectiveThirdParty rewrite_by_lua_no_postpone +syn keyword ngxDirectiveThirdParty access_by_lua_no_postpone +syn keyword ngxDirectiveThirdParty lua_transform_underscores_in_response_headers +syn keyword ngxDirectiveThirdParty lua_check_client_abort +syn keyword ngxDirectiveThirdParty lua_max_pending_timers +syn keyword ngxDirectiveThirdParty lua_max_running_timers + +" MD5 Filter Module +" A content filter for nginx, which returns the md5 hash of the content otherwise returned. +syn keyword ngxDirectiveThirdParty md5_filter + +" Memc Module +" An extended version of the standard memcached module that supports set, add, delete, and many more memcached commands. +syn keyword ngxDirectiveThirdParty memc_buffer_size +syn keyword ngxDirectiveThirdParty memc_cmds_allowed +syn keyword ngxDirectiveThirdParty memc_connect_timeout +syn keyword ngxDirectiveThirdParty memc_flags_to_last_modified +syn keyword ngxDirectiveThirdParty memc_next_upstream +syn keyword ngxDirectiveThirdParty memc_pass +syn keyword ngxDirectiveThirdParty memc_read_timeout +syn keyword ngxDirectiveThirdParty memc_send_timeout +syn keyword ngxDirectiveThirdParty memc_upstream_fail_timeout +syn keyword ngxDirectiveThirdParty memc_upstream_max_fails + +" Mod Security Module +" ModSecurity is an open source, cross platform web application firewall (WAF) engine +syn keyword ngxDirectiveThirdParty ModSecurityConfig +syn keyword ngxDirectiveThirdParty ModSecurityEnabled +syn keyword ngxDirectiveThirdParty pool_context +syn keyword ngxDirectiveThirdParty pool_context_hash_size + +" Mogilefs Module +" MogileFS client for nginx web server. +syn keyword ngxDirectiveThirdParty mogilefs_pass +syn keyword ngxDirectiveThirdParty mogilefs_methods +syn keyword ngxDirectiveThirdParty mogilefs_domain +syn keyword ngxDirectiveThirdParty mogilefs_class +syn keyword ngxDirectiveThirdParty mogilefs_tracker +syn keyword ngxDirectiveThirdParty mogilefs_noverify +syn keyword ngxDirectiveThirdParty mogilefs_connect_timeout +syn keyword ngxDirectiveThirdParty mogilefs_send_timeout +syn keyword ngxDirectiveThirdParty mogilefs_read_timeout + +" Mongo Module +" Upstream module that allows nginx to communicate directly with MongoDB database. +syn keyword ngxDirectiveThirdParty mongo_auth +syn keyword ngxDirectiveThirdParty mongo_pass +syn keyword ngxDirectiveThirdParty mongo_query +syn keyword ngxDirectiveThirdParty mongo_json +syn keyword ngxDirectiveThirdParty mongo_bind +syn keyword ngxDirectiveThirdParty mongo_connect_timeout +syn keyword ngxDirectiveThirdParty mongo_send_timeout +syn keyword ngxDirectiveThirdParty mongo_read_timeout +syn keyword ngxDirectiveThirdParty mongo_buffering +syn keyword ngxDirectiveThirdParty mongo_buffer_size +syn keyword ngxDirectiveThirdParty mongo_buffers +syn keyword ngxDirectiveThirdParty mongo_busy_buffers_size +syn keyword ngxDirectiveThirdParty mongo_next_upstream + +" MP4 Streaming Lite Module +" Will seek to a certain time within H.264/MP4 files when provided with a 'start' parameter in the URL. +" syn keyword ngxDirectiveThirdParty mp4 + +" NAXSI Module +" NAXSI is an open-source, high performance, low rules maintenance WAF for NGINX +syn keyword ngxDirectiveThirdParty DeniedUrl denied_url +syn keyword ngxDirectiveThirdParty LearningMode learning_mode +syn keyword ngxDirectiveThirdParty SecRulesEnabled rules_enabled +syn keyword ngxDirectiveThirdParty SecRulesDisabled rules_disabled +syn keyword ngxDirectiveThirdParty CheckRule check_rule +syn keyword ngxDirectiveThirdParty BasicRule basic_rule +syn keyword ngxDirectiveThirdParty MainRule main_rule +syn keyword ngxDirectiveThirdParty LibInjectionSql libinjection_sql +syn keyword ngxDirectiveThirdParty LibInjectionXss libinjection_xss + +" Nchan Module +" Fast, horizontally scalable, multiprocess pub/sub queuing server and proxy for HTTP, long-polling, Websockets and EventSource (SSE) +syn keyword ngxDirectiveThirdParty nchan_channel_id +syn keyword ngxDirectiveThirdParty nchan_channel_id_split_delimiter +syn keyword ngxDirectiveThirdParty nchan_eventsource_event +syn keyword ngxDirectiveThirdParty nchan_longpoll_multipart_response +syn keyword ngxDirectiveThirdParty nchan_publisher +syn keyword ngxDirectiveThirdParty nchan_publisher_channel_id +syn keyword ngxDirectiveThirdParty nchan_publisher_upstream_request +syn keyword ngxDirectiveThirdParty nchan_pubsub +syn keyword ngxDirectiveThirdParty nchan_subscribe_request +syn keyword ngxDirectiveThirdParty nchan_subscriber +syn keyword ngxDirectiveThirdParty nchan_subscriber_channel_id +syn keyword ngxDirectiveThirdParty nchan_subscriber_compound_etag_message_id +syn keyword ngxDirectiveThirdParty nchan_subscriber_first_message +syn keyword ngxDirectiveThirdParty nchan_subscriber_http_raw_stream_separator +syn keyword ngxDirectiveThirdParty nchan_subscriber_last_message_id +syn keyword ngxDirectiveThirdParty nchan_subscriber_message_id_custom_etag_header +syn keyword ngxDirectiveThirdParty nchan_subscriber_timeout +syn keyword ngxDirectiveThirdParty nchan_unsubscribe_request +syn keyword ngxDirectiveThirdParty nchan_websocket_ping_interval +syn keyword ngxDirectiveThirdParty nchan_authorize_request +syn keyword ngxDirectiveThirdParty nchan_max_reserved_memory +syn keyword ngxDirectiveThirdParty nchan_message_buffer_length +syn keyword ngxDirectiveThirdParty nchan_message_timeout +syn keyword ngxDirectiveThirdParty nchan_redis_idle_channel_cache_timeout +syn keyword ngxDirectiveThirdParty nchan_redis_namespace +syn keyword ngxDirectiveThirdParty nchan_redis_pass +syn keyword ngxDirectiveThirdParty nchan_redis_ping_interval +syn keyword ngxDirectiveThirdParty nchan_redis_server +syn keyword ngxDirectiveThirdParty nchan_redis_storage_mode +syn keyword ngxDirectiveThirdParty nchan_redis_url +syn keyword ngxDirectiveThirdParty nchan_store_messages +syn keyword ngxDirectiveThirdParty nchan_use_redis +syn keyword ngxDirectiveThirdParty nchan_access_control_allow_origin +syn keyword ngxDirectiveThirdParty nchan_channel_group +syn keyword ngxDirectiveThirdParty nchan_channel_group_accounting +syn keyword ngxDirectiveThirdParty nchan_group_location +syn keyword ngxDirectiveThirdParty nchan_group_max_channels +syn keyword ngxDirectiveThirdParty nchan_group_max_messages +syn keyword ngxDirectiveThirdParty nchan_group_max_messages_disk +syn keyword ngxDirectiveThirdParty nchan_group_max_messages_memory +syn keyword ngxDirectiveThirdParty nchan_group_max_subscribers +syn keyword ngxDirectiveThirdParty nchan_subscribe_existing_channels_only +syn keyword ngxDirectiveThirdParty nchan_channel_event_string +syn keyword ngxDirectiveThirdParty nchan_channel_events_channel_id +syn keyword ngxDirectiveThirdParty nchan_stub_status +syn keyword ngxDirectiveThirdParty nchan_max_channel_id_length +syn keyword ngxDirectiveThirdParty nchan_max_channel_subscribers +syn keyword ngxDirectiveThirdParty nchan_channel_timeout +syn keyword ngxDirectiveThirdParty nchan_storage_engine + +" Nginx Notice Module +" Serve static file to POST requests. +syn keyword ngxDirectiveThirdParty notice +syn keyword ngxDirectiveThirdParty notice_type + +" OCSP Proxy Module +" Nginx OCSP processing module designed for response caching +syn keyword ngxDirectiveThirdParty ocsp_proxy +syn keyword ngxDirectiveThirdParty ocsp_cache_timeout + +" Eval Module +" Module for nginx web server evaluates response of proxy or memcached module into variables. +syn keyword ngxDirectiveThirdParty eval +syn keyword ngxDirectiveThirdParty eval_escalate +syn keyword ngxDirectiveThirdParty eval_buffer_size +syn keyword ngxDirectiveThirdParty eval_override_content_type +syn keyword ngxDirectiveThirdParty eval_subrequest_in_memory + +" OpenSSL Version Module +" Nginx OpenSSL version check at startup +syn keyword ngxDirectiveThirdParty openssl_version_minimum +syn keyword ngxDirectiveThirdParty openssl_builddate_minimum + +" Owner Match Module +" Control access for specific owners and groups of files +syn keyword ngxDirectiveThirdParty omallow +syn keyword ngxDirectiveThirdParty omdeny + +" Accept Language Module +" Parses the Accept-Language header and gives the most suitable locale from a list of supported locales. +syn keyword ngxDirectiveThirdParty pagespeed + +" PHP Memcache Standard Balancer Module +" Loadbalancer that is compatible to the standard loadbalancer in the php-memcache module +syn keyword ngxDirectiveThirdParty hash_key + +" PHP Session Module +" Nginx module to parse php sessions +syn keyword ngxDirectiveThirdParty php_session_parse +syn keyword ngxDirectiveThirdParty php_session_strip_formatting + +" Phusion Passenger Module +" Passenger is an open source web application server. +syn keyword ngxDirectiveThirdParty passenger_root +syn keyword ngxDirectiveThirdParty passenger_enabled +syn keyword ngxDirectiveThirdParty passenger_base_uri +syn keyword ngxDirectiveThirdParty passenger_document_root +syn keyword ngxDirectiveThirdParty passenger_ruby +syn keyword ngxDirectiveThirdParty passenger_python +syn keyword ngxDirectiveThirdParty passenger_nodejs +syn keyword ngxDirectiveThirdParty passenger_meteor_app_settings +syn keyword ngxDirectiveThirdParty passenger_app_env +syn keyword ngxDirectiveThirdParty passenger_app_root +syn keyword ngxDirectiveThirdParty passenger_app_group_name +syn keyword ngxDirectiveThirdParty passenger_app_type +syn keyword ngxDirectiveThirdParty passenger_startup_file +syn keyword ngxDirectiveThirdParty passenger_restart_dir +syn keyword ngxDirectiveThirdParty passenger_spawn_method +syn keyword ngxDirectiveThirdParty passenger_env_var +syn keyword ngxDirectiveThirdParty passenger_load_shell_envvars +syn keyword ngxDirectiveThirdParty passenger_rolling_restarts +syn keyword ngxDirectiveThirdParty passenger_resist_deployment_errors +syn keyword ngxDirectiveThirdParty passenger_user_switching +syn keyword ngxDirectiveThirdParty passenger_user +syn keyword ngxDirectiveThirdParty passenger_group +syn keyword ngxDirectiveThirdParty passenger_default_user +syn keyword ngxDirectiveThirdParty passenger_default_group +syn keyword ngxDirectiveThirdParty passenger_show_version_in_header +syn keyword ngxDirectiveThirdParty passenger_friendly_error_pages +syn keyword ngxDirectiveThirdParty passenger_disable_security_update_check +syn keyword ngxDirectiveThirdParty passenger_security_update_check_proxy +syn keyword ngxDirectiveThirdParty passenger_max_pool_size +syn keyword ngxDirectiveThirdParty passenger_min_instances +syn keyword ngxDirectiveThirdParty passenger_max_instances +syn keyword ngxDirectiveThirdParty passenger_max_instances_per_app +syn keyword ngxDirectiveThirdParty passenger_pool_idle_time +syn keyword ngxDirectiveThirdParty passenger_max_preloader_idle_time +syn keyword ngxDirectiveThirdParty passenger_force_max_concurrent_requests_per_process +syn keyword ngxDirectiveThirdParty passenger_start_timeout +syn keyword ngxDirectiveThirdParty passenger_concurrency_model +syn keyword ngxDirectiveThirdParty passenger_thread_count +syn keyword ngxDirectiveThirdParty passenger_max_requests +syn keyword ngxDirectiveThirdParty passenger_max_request_time +syn keyword ngxDirectiveThirdParty passenger_memory_limit +syn keyword ngxDirectiveThirdParty passenger_stat_throttle_rate +syn keyword ngxDirectiveThirdParty passenger_core_file_descriptor_ulimit +syn keyword ngxDirectiveThirdParty passenger_app_file_descriptor_ulimit +syn keyword ngxDirectiveThirdParty passenger_pre_start +syn keyword ngxDirectiveThirdParty passenger_set_header +syn keyword ngxDirectiveThirdParty passenger_max_request_queue_size +syn keyword ngxDirectiveThirdParty passenger_request_queue_overflow_status_code +syn keyword ngxDirectiveThirdParty passenger_sticky_sessions +syn keyword ngxDirectiveThirdParty passenger_sticky_sessions_cookie_name +syn keyword ngxDirectiveThirdParty passenger_abort_websockets_on_process_shutdown +syn keyword ngxDirectiveThirdParty passenger_ignore_client_abort +syn keyword ngxDirectiveThirdParty passenger_intercept_errors +syn keyword ngxDirectiveThirdParty passenger_pass_header +syn keyword ngxDirectiveThirdParty passenger_ignore_headers +syn keyword ngxDirectiveThirdParty passenger_headers_hash_bucket_size +syn keyword ngxDirectiveThirdParty passenger_headers_hash_max_size +syn keyword ngxDirectiveThirdParty passenger_buffer_response +syn keyword ngxDirectiveThirdParty passenger_response_buffer_high_watermark +syn keyword ngxDirectiveThirdParty passenger_buffer_size, passenger_buffers, passenger_busy_buffers_size +syn keyword ngxDirectiveThirdParty passenger_socket_backlog +syn keyword ngxDirectiveThirdParty passenger_log_level +syn keyword ngxDirectiveThirdParty passenger_log_file +syn keyword ngxDirectiveThirdParty passenger_file_descriptor_log_file +syn keyword ngxDirectiveThirdParty passenger_debugger +syn keyword ngxDirectiveThirdParty passenger_instance_registry_dir +syn keyword ngxDirectiveThirdParty passenger_data_buffer_dir +syn keyword ngxDirectiveThirdParty passenger_fly_with +syn keyword ngxDirectiveThirdParty union_station_support +syn keyword ngxDirectiveThirdParty union_station_key +syn keyword ngxDirectiveThirdParty union_station_proxy_address +syn keyword ngxDirectiveThirdParty union_station_filter +syn keyword ngxDirectiveThirdParty union_station_gateway_address +syn keyword ngxDirectiveThirdParty union_station_gateway_port +syn keyword ngxDirectiveThirdParty union_station_gateway_cert +syn keyword ngxDirectiveDeprecated rails_spawn_method +syn keyword ngxDirectiveDeprecated passenger_debug_log_file + +" Postgres Module +" Upstream module that allows nginx to communicate directly with PostgreSQL database. +syn keyword ngxDirectiveThirdParty postgres_server +syn keyword ngxDirectiveThirdParty postgres_keepalive +syn keyword ngxDirectiveThirdParty postgres_pass +syn keyword ngxDirectiveThirdParty postgres_query +syn keyword ngxDirectiveThirdParty postgres_rewrite +syn keyword ngxDirectiveThirdParty postgres_output +syn keyword ngxDirectiveThirdParty postgres_set +syn keyword ngxDirectiveThirdParty postgres_escape +syn keyword ngxDirectiveThirdParty postgres_connect_timeout +syn keyword ngxDirectiveThirdParty postgres_result_timeout + +" Pubcookie Module +" Authorizes users using encrypted cookies +syn keyword ngxDirectiveThirdParty pubcookie_inactive_expire +syn keyword ngxDirectiveThirdParty pubcookie_hard_expire +syn keyword ngxDirectiveThirdParty pubcookie_app_id +syn keyword ngxDirectiveThirdParty pubcookie_dir_depth +syn keyword ngxDirectiveThirdParty pubcookie_catenate_app_ids +syn keyword ngxDirectiveThirdParty pubcookie_app_srv_id +syn keyword ngxDirectiveThirdParty pubcookie_login +syn keyword ngxDirectiveThirdParty pubcookie_login_method +syn keyword ngxDirectiveThirdParty pubcookie_post +syn keyword ngxDirectiveThirdParty pubcookie_domain +syn keyword ngxDirectiveThirdParty pubcookie_granting_cert_file +syn keyword ngxDirectiveThirdParty pubcookie_session_key_file +syn keyword ngxDirectiveThirdParty pubcookie_session_cert_file +syn keyword ngxDirectiveThirdParty pubcookie_crypt_key_file +syn keyword ngxDirectiveThirdParty pubcookie_end_session +syn keyword ngxDirectiveThirdParty pubcookie_encryption +syn keyword ngxDirectiveThirdParty pubcookie_session_reauth +syn keyword ngxDirectiveThirdParty pubcookie_auth_type_names +syn keyword ngxDirectiveThirdParty pubcookie_no_prompt +syn keyword ngxDirectiveThirdParty pubcookie_on_demand +syn keyword ngxDirectiveThirdParty pubcookie_addl_request +syn keyword ngxDirectiveThirdParty pubcookie_no_obscure_cookies +syn keyword ngxDirectiveThirdParty pubcookie_no_clean_creds +syn keyword ngxDirectiveThirdParty pubcookie_egd_device +syn keyword ngxDirectiveThirdParty pubcookie_no_blank +syn keyword ngxDirectiveThirdParty pubcookie_super_debug +syn keyword ngxDirectiveThirdParty pubcookie_set_remote_user + +" Push Stream Module +" A pure stream http push technology for your Nginx setup +syn keyword ngxDirectiveThirdParty push_stream_channels_statistics +syn keyword ngxDirectiveThirdParty push_stream_publisher +syn keyword ngxDirectiveThirdParty push_stream_subscriber +syn keyword ngxDirectiveThirdParty push_stream_shared_memory_size +syn keyword ngxDirectiveThirdParty push_stream_channel_deleted_message_text +syn keyword ngxDirectiveThirdParty push_stream_channel_inactivity_time +syn keyword ngxDirectiveThirdParty push_stream_ping_message_text +syn keyword ngxDirectiveThirdParty push_stream_timeout_with_body +syn keyword ngxDirectiveThirdParty push_stream_message_ttl +syn keyword ngxDirectiveThirdParty push_stream_max_subscribers_per_channel +syn keyword ngxDirectiveThirdParty push_stream_max_messages_stored_per_channel +syn keyword ngxDirectiveThirdParty push_stream_max_channel_id_length +syn keyword ngxDirectiveThirdParty push_stream_max_number_of_channels +syn keyword ngxDirectiveThirdParty push_stream_max_number_of_wildcard_channels +syn keyword ngxDirectiveThirdParty push_stream_wildcard_channel_prefix +syn keyword ngxDirectiveThirdParty push_stream_events_channel_id +syn keyword ngxDirectiveThirdParty push_stream_channels_path +syn keyword ngxDirectiveThirdParty push_stream_store_messages +syn keyword ngxDirectiveThirdParty push_stream_channel_info_on_publish +syn keyword ngxDirectiveThirdParty push_stream_authorized_channels_only +syn keyword ngxDirectiveThirdParty push_stream_header_template_file +syn keyword ngxDirectiveThirdParty push_stream_header_template +syn keyword ngxDirectiveThirdParty push_stream_message_template +syn keyword ngxDirectiveThirdParty push_stream_footer_template +syn keyword ngxDirectiveThirdParty push_stream_wildcard_channel_max_qtd +syn keyword ngxDirectiveThirdParty push_stream_ping_message_interval +syn keyword ngxDirectiveThirdParty push_stream_subscriber_connection_ttl +syn keyword ngxDirectiveThirdParty push_stream_longpolling_connection_ttl +syn keyword ngxDirectiveThirdParty push_stream_websocket_allow_publish +syn keyword ngxDirectiveThirdParty push_stream_last_received_message_time +syn keyword ngxDirectiveThirdParty push_stream_last_received_message_tag +syn keyword ngxDirectiveThirdParty push_stream_last_event_id +syn keyword ngxDirectiveThirdParty push_stream_user_agent +syn keyword ngxDirectiveThirdParty push_stream_padding_by_user_agent +syn keyword ngxDirectiveThirdParty push_stream_allowed_origins +syn keyword ngxDirectiveThirdParty push_stream_allow_connections_to_events_channel + +" rDNS Module +" Make a reverse DNS (rDNS) lookup for incoming connection and provides simple access control of incoming hostname by allow/deny rules +syn keyword ngxDirectiveThirdParty rdns +syn keyword ngxDirectiveThirdParty rdns_allow +syn keyword ngxDirectiveThirdParty rdns_deny + +" RDS CSV Module +" Nginx output filter module to convert Resty-DBD-Streams (RDS) to Comma-Separated Values (CSV) +syn keyword ngxDirectiveThirdParty rds_csv +syn keyword ngxDirectiveThirdParty rds_csv_row_terminator +syn keyword ngxDirectiveThirdParty rds_csv_field_separator +syn keyword ngxDirectiveThirdParty rds_csv_field_name_header +syn keyword ngxDirectiveThirdParty rds_csv_content_type +syn keyword ngxDirectiveThirdParty rds_csv_buffer_size + +" RDS JSON Module +" An output filter that formats Resty DBD Streams generated by ngx_drizzle and others to JSON +syn keyword ngxDirectiveThirdParty rds_json +syn keyword ngxDirectiveThirdParty rds_json_buffer_size +syn keyword ngxDirectiveThirdParty rds_json_format +syn keyword ngxDirectiveThirdParty rds_json_root +syn keyword ngxDirectiveThirdParty rds_json_success_property +syn keyword ngxDirectiveThirdParty rds_json_user_property +syn keyword ngxDirectiveThirdParty rds_json_errcode_key +syn keyword ngxDirectiveThirdParty rds_json_errstr_key +syn keyword ngxDirectiveThirdParty rds_json_ret +syn keyword ngxDirectiveThirdParty rds_json_content_type + +" Redis Module +" Use this module to perform simple caching +syn keyword ngxDirectiveThirdParty redis_pass +syn keyword ngxDirectiveThirdParty redis_bind +syn keyword ngxDirectiveThirdParty redis_connect_timeout +syn keyword ngxDirectiveThirdParty redis_read_timeout +syn keyword ngxDirectiveThirdParty redis_send_timeout +syn keyword ngxDirectiveThirdParty redis_buffer_size +syn keyword ngxDirectiveThirdParty redis_next_upstream +syn keyword ngxDirectiveThirdParty redis_gzip_flag + +" Redis 2 Module +" Nginx upstream module for the Redis 2.0 protocol +syn keyword ngxDirectiveThirdParty redis2_query +syn keyword ngxDirectiveThirdParty redis2_raw_query +syn keyword ngxDirectiveThirdParty redis2_raw_queries +syn keyword ngxDirectiveThirdParty redis2_literal_raw_query +syn keyword ngxDirectiveThirdParty redis2_pass +syn keyword ngxDirectiveThirdParty redis2_connect_timeout +syn keyword ngxDirectiveThirdParty redis2_send_timeout +syn keyword ngxDirectiveThirdParty redis2_read_timeout +syn keyword ngxDirectiveThirdParty redis2_buffer_size +syn keyword ngxDirectiveThirdParty redis2_next_upstream + +" Replace Filter Module +" Streaming regular expression replacement in response bodies +syn keyword ngxDirectiveThirdParty replace_filter +syn keyword ngxDirectiveThirdParty replace_filter_types +syn keyword ngxDirectiveThirdParty replace_filter_max_buffered_size +syn keyword ngxDirectiveThirdParty replace_filter_last_modified +syn keyword ngxDirectiveThirdParty replace_filter_skip + +" Roboo Module +" HTTP Robot Mitigator + +" RRD Graph Module +" This module provides an HTTP interface to RRDtool's graphing facilities. +syn keyword ngxDirectiveThirdParty rrd_graph +syn keyword ngxDirectiveThirdParty rrd_graph_root + +" RTMP Module +" NGINX-based Media Streaming Server +syn keyword ngxDirectiveThirdParty rtmp +" syn keyword ngxDirectiveThirdParty server +" syn keyword ngxDirectiveThirdParty listen +syn keyword ngxDirectiveThirdParty application +" syn keyword ngxDirectiveThirdParty timeout +syn keyword ngxDirectiveThirdParty ping +syn keyword ngxDirectiveThirdParty ping_timeout +syn keyword ngxDirectiveThirdParty max_streams +syn keyword ngxDirectiveThirdParty ack_window +syn keyword ngxDirectiveThirdParty chunk_size +syn keyword ngxDirectiveThirdParty max_queue +syn keyword ngxDirectiveThirdParty max_message +syn keyword ngxDirectiveThirdParty out_queue +syn keyword ngxDirectiveThirdParty out_cork +" syn keyword ngxDirectiveThirdParty allow +" syn keyword ngxDirectiveThirdParty deny +syn keyword ngxDirectiveThirdParty exec_push +syn keyword ngxDirectiveThirdParty exec_pull +syn keyword ngxDirectiveThirdParty exec +syn keyword ngxDirectiveThirdParty exec_options +syn keyword ngxDirectiveThirdParty exec_static +syn keyword ngxDirectiveThirdParty exec_kill_signal +syn keyword ngxDirectiveThirdParty respawn +syn keyword ngxDirectiveThirdParty respawn_timeout +syn keyword ngxDirectiveThirdParty exec_publish +syn keyword ngxDirectiveThirdParty exec_play +syn keyword ngxDirectiveThirdParty exec_play_done +syn keyword ngxDirectiveThirdParty exec_publish_done +syn keyword ngxDirectiveThirdParty exec_record_done +syn keyword ngxDirectiveThirdParty live +syn keyword ngxDirectiveThirdParty meta +syn keyword ngxDirectiveThirdParty interleave +syn keyword ngxDirectiveThirdParty wait_key +syn keyword ngxDirectiveThirdParty wait_video +syn keyword ngxDirectiveThirdParty publish_notify +syn keyword ngxDirectiveThirdParty drop_idle_publisher +syn keyword ngxDirectiveThirdParty sync +syn keyword ngxDirectiveThirdParty play_restart +syn keyword ngxDirectiveThirdParty idle_streams +syn keyword ngxDirectiveThirdParty record +syn keyword ngxDirectiveThirdParty record_path +syn keyword ngxDirectiveThirdParty record_suffix +syn keyword ngxDirectiveThirdParty record_unique +syn keyword ngxDirectiveThirdParty record_append +syn keyword ngxDirectiveThirdParty record_lock +syn keyword ngxDirectiveThirdParty record_max_size +syn keyword ngxDirectiveThirdParty record_max_frames +syn keyword ngxDirectiveThirdParty record_interval +syn keyword ngxDirectiveThirdParty recorder +syn keyword ngxDirectiveThirdParty record_notify +syn keyword ngxDirectiveThirdParty play +syn keyword ngxDirectiveThirdParty play_temp_path +syn keyword ngxDirectiveThirdParty play_local_path +syn keyword ngxDirectiveThirdParty pull +syn keyword ngxDirectiveThirdParty push +syn keyword ngxDirectiveThirdParty push_reconnect +syn keyword ngxDirectiveThirdParty session_relay +syn keyword ngxDirectiveThirdParty on_connect +syn keyword ngxDirectiveThirdParty on_play +syn keyword ngxDirectiveThirdParty on_publish +syn keyword ngxDirectiveThirdParty on_done +syn keyword ngxDirectiveThirdParty on_play_done +syn keyword ngxDirectiveThirdParty on_publish_done +syn keyword ngxDirectiveThirdParty on_record_done +syn keyword ngxDirectiveThirdParty on_update +syn keyword ngxDirectiveThirdParty notify_update_timeout +syn keyword ngxDirectiveThirdParty notify_update_strict +syn keyword ngxDirectiveThirdParty notify_relay_redirect +syn keyword ngxDirectiveThirdParty notify_method +syn keyword ngxDirectiveThirdParty hls +syn keyword ngxDirectiveThirdParty hls_path +syn keyword ngxDirectiveThirdParty hls_fragment +syn keyword ngxDirectiveThirdParty hls_playlist_length +syn keyword ngxDirectiveThirdParty hls_sync +syn keyword ngxDirectiveThirdParty hls_continuous +syn keyword ngxDirectiveThirdParty hls_nested +syn keyword ngxDirectiveThirdParty hls_base_url +syn keyword ngxDirectiveThirdParty hls_cleanup +syn keyword ngxDirectiveThirdParty hls_fragment_naming +syn keyword ngxDirectiveThirdParty hls_fragment_slicing +syn keyword ngxDirectiveThirdParty hls_variant +syn keyword ngxDirectiveThirdParty hls_type +syn keyword ngxDirectiveThirdParty hls_keys +syn keyword ngxDirectiveThirdParty hls_key_path +syn keyword ngxDirectiveThirdParty hls_key_url +syn keyword ngxDirectiveThirdParty hls_fragments_per_key +syn keyword ngxDirectiveThirdParty dash +syn keyword ngxDirectiveThirdParty dash_path +syn keyword ngxDirectiveThirdParty dash_fragment +syn keyword ngxDirectiveThirdParty dash_playlist_length +syn keyword ngxDirectiveThirdParty dash_nested +syn keyword ngxDirectiveThirdParty dash_cleanup +" syn keyword ngxDirectiveThirdParty access_log +" syn keyword ngxDirectiveThirdParty log_format +syn keyword ngxDirectiveThirdParty max_connections +syn keyword ngxDirectiveThirdParty rtmp_stat +syn keyword ngxDirectiveThirdParty rtmp_stat_stylesheet +syn keyword ngxDirectiveThirdParty rtmp_auto_push +syn keyword ngxDirectiveThirdParty rtmp_auto_push_reconnect +syn keyword ngxDirectiveThirdParty rtmp_socket_dir +syn keyword ngxDirectiveThirdParty rtmp_control + +" RTMPT Module +" Module for nginx to proxy rtmp using http protocol +syn keyword ngxDirectiveThirdParty rtmpt_proxy_target +syn keyword ngxDirectiveThirdParty rtmpt_proxy_rtmp_timeout +syn keyword ngxDirectiveThirdParty rtmpt_proxy_http_timeout +syn keyword ngxDirectiveThirdParty rtmpt_proxy +syn keyword ngxDirectiveThirdParty rtmpt_proxy_stat +syn keyword ngxDirectiveThirdParty rtmpt_proxy_stylesheet + +" Syntactically Awesome Module +" Providing on-the-fly compiling of Sass files as an NGINX module. +syn keyword ngxDirectiveThirdParty sass_compile +syn keyword ngxDirectiveThirdParty sass_error_log +syn keyword ngxDirectiveThirdParty sass_include_path +syn keyword ngxDirectiveThirdParty sass_indent +syn keyword ngxDirectiveThirdParty sass_is_indented_syntax +syn keyword ngxDirectiveThirdParty sass_linefeed +syn keyword ngxDirectiveThirdParty sass_precision +syn keyword ngxDirectiveThirdParty sass_output_style +syn keyword ngxDirectiveThirdParty sass_source_comments +syn keyword ngxDirectiveThirdParty sass_source_map_embed + +" Secure Download Module +" Enables you to create links which are only valid until a certain datetime is reached +syn keyword ngxDirectiveThirdParty secure_download +syn keyword ngxDirectiveThirdParty secure_download_secret +syn keyword ngxDirectiveThirdParty secure_download_path_mode + +" Selective Cache Purge Module +" A module to purge cache by GLOB patterns. The supported patterns are the same as supported by Redis. +syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_unix_socket +syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_host +syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_port +syn keyword ngxDirectiveThirdParty selective_cache_purge_redis_database +syn keyword ngxDirectiveThirdParty selective_cache_purge_query + +" Set cconv Module +" Cconv rewrite set commands +syn keyword ngxDirectiveThirdParty set_cconv_to_simp +syn keyword ngxDirectiveThirdParty set_cconv_to_trad +syn keyword ngxDirectiveThirdParty set_pinyin_to_normal + +" Set Hash Module +" Nginx module that allows the setting of variables to the value of a variety of hashes +syn keyword ngxDirectiveThirdParty set_md5 +syn keyword ngxDirectiveThirdParty set_md5_upper +syn keyword ngxDirectiveThirdParty set_murmur2 +syn keyword ngxDirectiveThirdParty set_murmur2_upper +syn keyword ngxDirectiveThirdParty set_sha1 +syn keyword ngxDirectiveThirdParty set_sha1_upper + +" Set Lang Module +" Provides a variety of ways for setting a variable denoting the langauge that content should be returned in. +syn keyword ngxDirectiveThirdParty set_lang +syn keyword ngxDirectiveThirdParty set_lang_method +syn keyword ngxDirectiveThirdParty lang_cookie +syn keyword ngxDirectiveThirdParty lang_get_var +syn keyword ngxDirectiveThirdParty lang_list +syn keyword ngxDirectiveThirdParty lang_post_var +syn keyword ngxDirectiveThirdParty lang_host +syn keyword ngxDirectiveThirdParty lang_referer + +" Set Misc Module +" Various set_xxx directives added to nginx's rewrite module +syn keyword ngxDirectiveThirdParty set_if_empty +syn keyword ngxDirectiveThirdParty set_quote_sql_str +syn keyword ngxDirectiveThirdParty set_quote_pgsql_str +syn keyword ngxDirectiveThirdParty set_quote_json_str +syn keyword ngxDirectiveThirdParty set_unescape_uri +syn keyword ngxDirectiveThirdParty set_escape_uri +syn keyword ngxDirectiveThirdParty set_hashed_upstream +syn keyword ngxDirectiveThirdParty set_encode_base32 +syn keyword ngxDirectiveThirdParty set_base32_padding +syn keyword ngxDirectiveThirdParty set_misc_base32_padding +syn keyword ngxDirectiveThirdParty set_base32_alphabet +syn keyword ngxDirectiveThirdParty set_decode_base32 +syn keyword ngxDirectiveThirdParty set_encode_base64 +syn keyword ngxDirectiveThirdParty set_decode_base64 +syn keyword ngxDirectiveThirdParty set_encode_hex +syn keyword ngxDirectiveThirdParty set_decode_hex +syn keyword ngxDirectiveThirdParty set_sha1 +syn keyword ngxDirectiveThirdParty set_md5 +syn keyword ngxDirectiveThirdParty set_hmac_sha1 +syn keyword ngxDirectiveThirdParty set_random +syn keyword ngxDirectiveThirdParty set_secure_random_alphanum +syn keyword ngxDirectiveThirdParty set_secure_random_lcalpha +syn keyword ngxDirectiveThirdParty set_rotate +syn keyword ngxDirectiveThirdParty set_local_today +syn keyword ngxDirectiveThirdParty set_formatted_gmt_time +syn keyword ngxDirectiveThirdParty set_formatted_local_time + +" SFlow Module +" A binary, random-sampling nginx module designed for: lightweight, centralized, continuous, real-time monitoring of very large and very busy web farms. +syn keyword ngxDirectiveThirdParty sflow + +" Shibboleth Module +" Shibboleth auth request module for nginx +syn keyword ngxDirectiveThirdParty shib_request +syn keyword ngxDirectiveThirdParty shib_request_set +syn keyword ngxDirectiveThirdParty shib_request_use_headers + +" Slice Module +" Nginx module for serving a file in slices (reverse byte-range) +" syn keyword ngxDirectiveThirdParty slice +syn keyword ngxDirectiveThirdParty slice_arg_begin +syn keyword ngxDirectiveThirdParty slice_arg_end +syn keyword ngxDirectiveThirdParty slice_header +syn keyword ngxDirectiveThirdParty slice_footer +syn keyword ngxDirectiveThirdParty slice_header_first +syn keyword ngxDirectiveThirdParty slice_footer_last + +" SlowFS Cache Module +" Module adding ability to cache static files. +syn keyword ngxDirectiveThirdParty slowfs_big_file_size +syn keyword ngxDirectiveThirdParty slowfs_cache +syn keyword ngxDirectiveThirdParty slowfs_cache_key +syn keyword ngxDirectiveThirdParty slowfs_cache_min_uses +syn keyword ngxDirectiveThirdParty slowfs_cache_path +syn keyword ngxDirectiveThirdParty slowfs_cache_purge +syn keyword ngxDirectiveThirdParty slowfs_cache_valid +syn keyword ngxDirectiveThirdParty slowfs_temp_path + +" Small Light Module +" Dynamic Image Transformation Module For nginx. +syn keyword ngxDirectiveThirdParty small_light +syn keyword ngxDirectiveThirdParty small_light_getparam_mode +syn keyword ngxDirectiveThirdParty small_light_material_dir +syn keyword ngxDirectiveThirdParty small_light_pattern_define +syn keyword ngxDirectiveThirdParty small_light_radius_max +syn keyword ngxDirectiveThirdParty small_light_sigma_max +syn keyword ngxDirectiveThirdParty small_light_imlib2_temp_dir +syn keyword ngxDirectiveThirdParty small_light_buffer + +" Sorted Querystring Filter Module +" Nginx module to expose querystring parameters sorted in a variable to be used on cache_key as example +syn keyword ngxDirectiveThirdParty sorted_querystring_filter_parameter + +" Sphinx2 Module +" Nginx upstream module for Sphinx 2.x +syn keyword ngxDirectiveThirdParty sphinx2_pass +syn keyword ngxDirectiveThirdParty sphinx2_bind +syn keyword ngxDirectiveThirdParty sphinx2_connect_timeout +syn keyword ngxDirectiveThirdParty sphinx2_send_timeout +syn keyword ngxDirectiveThirdParty sphinx2_buffer_size +syn keyword ngxDirectiveThirdParty sphinx2_read_timeout +syn keyword ngxDirectiveThirdParty sphinx2_next_upstream + +" HTTP SPNEGO auth Module +" This module implements adds SPNEGO support to nginx(http://nginx.org). It currently supports only Kerberos authentication via GSSAPI +syn keyword ngxDirectiveThirdParty auth_gss +syn keyword ngxDirectiveThirdParty auth_gss_keytab +syn keyword ngxDirectiveThirdParty auth_gss_realm +syn keyword ngxDirectiveThirdParty auth_gss_service_name +syn keyword ngxDirectiveThirdParty auth_gss_authorized_principal +syn keyword ngxDirectiveThirdParty auth_gss_allow_basic_fallback + +" SR Cache Module +" Transparent subrequest-based caching layout for arbitrary nginx locations +syn keyword ngxDirectiveThirdParty srcache_fetch +syn keyword ngxDirectiveThirdParty srcache_fetch_skip +syn keyword ngxDirectiveThirdParty srcache_store +syn keyword ngxDirectiveThirdParty srcache_store_max_size +syn keyword ngxDirectiveThirdParty srcache_store_skip +syn keyword ngxDirectiveThirdParty srcache_store_statuses +syn keyword ngxDirectiveThirdParty srcache_store_ranges +syn keyword ngxDirectiveThirdParty srcache_header_buffer_size +syn keyword ngxDirectiveThirdParty srcache_store_hide_header +syn keyword ngxDirectiveThirdParty srcache_store_pass_header +syn keyword ngxDirectiveThirdParty srcache_methods +syn keyword ngxDirectiveThirdParty srcache_ignore_content_encoding +syn keyword ngxDirectiveThirdParty srcache_request_cache_control +syn keyword ngxDirectiveThirdParty srcache_response_cache_control +syn keyword ngxDirectiveThirdParty srcache_store_no_store +syn keyword ngxDirectiveThirdParty srcache_store_no_cache +syn keyword ngxDirectiveThirdParty srcache_store_private +syn keyword ngxDirectiveThirdParty srcache_default_expire +syn keyword ngxDirectiveThirdParty srcache_max_expire + +" SSSD Info Module +" Retrives additional attributes from SSSD for current authentizated user +syn keyword ngxDirectiveThirdParty sssd_info +syn keyword ngxDirectiveThirdParty sssd_info_output_to +syn keyword ngxDirectiveThirdParty sssd_info_groups +syn keyword ngxDirectiveThirdParty sssd_info_group +syn keyword ngxDirectiveThirdParty sssd_info_group_separator +syn keyword ngxDirectiveThirdParty sssd_info_attributes +syn keyword ngxDirectiveThirdParty sssd_info_attribute +syn keyword ngxDirectiveThirdParty sssd_info_attribute_separator + +" Static Etags Module +" Generate etags for static content +syn keyword ngxDirectiveThirdParty FileETag + +" Statsd Module +" An nginx module for sending statistics to statsd +syn keyword ngxDirectiveThirdParty statsd_server +syn keyword ngxDirectiveThirdParty statsd_sample_rate +syn keyword ngxDirectiveThirdParty statsd_count +syn keyword ngxDirectiveThirdParty statsd_timing + +" Sticky Module +" Add a sticky cookie to be always forwarded to the same upstream server +" syn keyword ngxDirectiveThirdParty sticky + +" Stream Echo Module +" TCP/stream echo module for NGINX (a port of ngx_http_echo_module) +syn keyword ngxDirectiveThirdParty echo +syn keyword ngxDirectiveThirdParty echo_duplicate +syn keyword ngxDirectiveThirdParty echo_flush_wait +syn keyword ngxDirectiveThirdParty echo_sleep +syn keyword ngxDirectiveThirdParty echo_send_timeout +syn keyword ngxDirectiveThirdParty echo_read_bytes +syn keyword ngxDirectiveThirdParty echo_read_line +syn keyword ngxDirectiveThirdParty echo_request_data +syn keyword ngxDirectiveThirdParty echo_discard_request +syn keyword ngxDirectiveThirdParty echo_read_buffer_size +syn keyword ngxDirectiveThirdParty echo_read_timeout +syn keyword ngxDirectiveThirdParty echo_client_error_log_level +syn keyword ngxDirectiveThirdParty echo_lingering_close +syn keyword ngxDirectiveThirdParty echo_lingering_time +syn keyword ngxDirectiveThirdParty echo_lingering_timeout + +" Stream Lua Module +" Embed the power of Lua into Nginx stream/TCP Servers. +syn keyword ngxDirectiveThirdParty lua_resolver +syn keyword ngxDirectiveThirdParty lua_resolver_timeout +syn keyword ngxDirectiveThirdParty lua_lingering_close +syn keyword ngxDirectiveThirdParty lua_lingering_time +syn keyword ngxDirectiveThirdParty lua_lingering_timeout + +" Stream Upsync Module +" Sync upstreams from consul or others, dynamiclly modify backend-servers attribute(weight, max_fails,...), needn't reload nginx. +syn keyword ngxDirectiveThirdParty upsync +syn keyword ngxDirectiveThirdParty upsync_dump_path +syn keyword ngxDirectiveThirdParty upsync_lb +syn keyword ngxDirectiveThirdParty upsync_show + +" Strip Module +" Whitespace remover. +syn keyword ngxDirectiveThirdParty strip + +" Subrange Module +" Split one big HTTP/Range request to multiple subrange requesets +syn keyword ngxDirectiveThirdParty subrange + +" Substitutions Module +" A filter module which can do both regular expression and fixed string substitutions on response bodies. +syn keyword ngxDirectiveThirdParty subs_filter +syn keyword ngxDirectiveThirdParty subs_filter_types + +" Summarizer Module +" Upstream nginx module to get summaries of documents using the summarizer daemon service +syn keyword ngxDirectiveThirdParty smrzr_filename +syn keyword ngxDirectiveThirdParty smrzr_ratio + +" Supervisord Module +" Module providing nginx with API to communicate with supervisord and manage (start/stop) backends on-demand. +syn keyword ngxDirectiveThirdParty supervisord +syn keyword ngxDirectiveThirdParty supervisord_inherit_backend_status +syn keyword ngxDirectiveThirdParty supervisord_name +syn keyword ngxDirectiveThirdParty supervisord_start +syn keyword ngxDirectiveThirdParty supervisord_stop + +" Tarantool Upstream Module +" Tarantool NginX upstream module (REST, JSON API, websockets, load balancing) +syn keyword ngxDirectiveThirdParty tnt_pass +syn keyword ngxDirectiveThirdParty tnt_http_methods +syn keyword ngxDirectiveThirdParty tnt_http_rest_methods +syn keyword ngxDirectiveThirdParty tnt_pass_http_request +syn keyword ngxDirectiveThirdParty tnt_pass_http_request_buffer_size +syn keyword ngxDirectiveThirdParty tnt_method +syn keyword ngxDirectiveThirdParty tnt_http_allowed_methods - experemental +syn keyword ngxDirectiveThirdParty tnt_send_timeout +syn keyword ngxDirectiveThirdParty tnt_read_timeout +syn keyword ngxDirectiveThirdParty tnt_buffer_size +syn keyword ngxDirectiveThirdParty tnt_next_upstream +syn keyword ngxDirectiveThirdParty tnt_connect_timeout +syn keyword ngxDirectiveThirdParty tnt_next_upstream +syn keyword ngxDirectiveThirdParty tnt_next_upstream_tries +syn keyword ngxDirectiveThirdParty tnt_next_upstream_timeout + +" TCP Proxy Module +" Add the feature of tcp proxy with nginx, with health check and status monitor +syn keyword ngxDirectiveBlock tcp +" syn keyword ngxDirectiveThirdParty server +" syn keyword ngxDirectiveThirdParty listen +" syn keyword ngxDirectiveThirdParty allow +" syn keyword ngxDirectiveThirdParty deny +" syn keyword ngxDirectiveThirdParty so_keepalive +" syn keyword ngxDirectiveThirdParty tcp_nodelay +" syn keyword ngxDirectiveThirdParty timeout +" syn keyword ngxDirectiveThirdParty server_name +" syn keyword ngxDirectiveThirdParty resolver +" syn keyword ngxDirectiveThirdParty resolver_timeout +" syn keyword ngxDirectiveThirdParty upstream +syn keyword ngxDirectiveThirdParty check +syn keyword ngxDirectiveThirdParty check_http_send +syn keyword ngxDirectiveThirdParty check_http_expect_alive +syn keyword ngxDirectiveThirdParty check_smtp_send +syn keyword ngxDirectiveThirdParty check_smtp_expect_alive +syn keyword ngxDirectiveThirdParty check_shm_size +syn keyword ngxDirectiveThirdParty check_status +" syn keyword ngxDirectiveThirdParty ip_hash +" syn keyword ngxDirectiveThirdParty proxy_pass +" syn keyword ngxDirectiveThirdParty proxy_buffer +" syn keyword ngxDirectiveThirdParty proxy_connect_timeout +" syn keyword ngxDirectiveThirdParty proxy_read_timeout +syn keyword ngxDirectiveThirdParty proxy_write_timeout + +" Testcookie Module +" NGINX module for L7 DDoS attack mitigation +syn keyword ngxDirectiveThirdParty testcookie +syn keyword ngxDirectiveThirdParty testcookie_name +syn keyword ngxDirectiveThirdParty testcookie_domain +syn keyword ngxDirectiveThirdParty testcookie_expires +syn keyword ngxDirectiveThirdParty testcookie_path +syn keyword ngxDirectiveThirdParty testcookie_secret +syn keyword ngxDirectiveThirdParty testcookie_session +syn keyword ngxDirectiveThirdParty testcookie_arg +syn keyword ngxDirectiveThirdParty testcookie_max_attempts +syn keyword ngxDirectiveThirdParty testcookie_p3p +syn keyword ngxDirectiveThirdParty testcookie_fallback +syn keyword ngxDirectiveThirdParty testcookie_whitelist +syn keyword ngxDirectiveThirdParty testcookie_pass +syn keyword ngxDirectiveThirdParty testcookie_redirect_via_refresh +syn keyword ngxDirectiveThirdParty testcookie_refresh_template +syn keyword ngxDirectiveThirdParty testcookie_refresh_status +syn keyword ngxDirectiveThirdParty testcookie_deny_keepalive +syn keyword ngxDirectiveThirdParty testcookie_get_only +syn keyword ngxDirectiveThirdParty testcookie_https_location +syn keyword ngxDirectiveThirdParty testcookie_refresh_encrypt_cookie +syn keyword ngxDirectiveThirdParty testcookie_refresh_encrypt_cookie_key +syn keyword ngxDirectiveThirdParty testcookie_refresh_encrypt_iv +syn keyword ngxDirectiveThirdParty testcookie_internal +syn keyword ngxDirectiveThirdParty testcookie_httponly_flag +syn keyword ngxDirectiveThirdParty testcookie_secure_flag + +" Types Filter Module +" Change the `Content-Type` output header depending on an extension variable according to a condition specified in the 'if' clause. +syn keyword ngxDirectiveThirdParty types_filter +syn keyword ngxDirectiveThirdParty types_filter_use_default + +" Unzip Module +" Enabling fetching of files that are stored in zipped archives. +syn keyword ngxDirectiveThirdParty file_in_unzip_archivefile +syn keyword ngxDirectiveThirdParty file_in_unzip_extract +syn keyword ngxDirectiveThirdParty file_in_unzip + +" Upload Progress Module +" An upload progress system, that monitors RFC1867 POST upload as they are transmitted to upstream servers +syn keyword ngxDirectiveThirdParty upload_progress +syn keyword ngxDirectiveThirdParty track_uploads +syn keyword ngxDirectiveThirdParty report_uploads +syn keyword ngxDirectiveThirdParty upload_progress_content_type +syn keyword ngxDirectiveThirdParty upload_progress_header +syn keyword ngxDirectiveThirdParty upload_progress_jsonp_parameter +syn keyword ngxDirectiveThirdParty upload_progress_json_output +syn keyword ngxDirectiveThirdParty upload_progress_jsonp_output +syn keyword ngxDirectiveThirdParty upload_progress_template + +" Upload Module +" Parses request body storing all files being uploaded to a directory specified by upload_store directive +syn keyword ngxDirectiveThirdParty upload_pass +syn keyword ngxDirectiveThirdParty upload_resumable +syn keyword ngxDirectiveThirdParty upload_store +syn keyword ngxDirectiveThirdParty upload_state_store +syn keyword ngxDirectiveThirdParty upload_store_access +syn keyword ngxDirectiveThirdParty upload_set_form_field +syn keyword ngxDirectiveThirdParty upload_aggregate_form_field +syn keyword ngxDirectiveThirdParty upload_pass_form_field +syn keyword ngxDirectiveThirdParty upload_cleanup +syn keyword ngxDirectiveThirdParty upload_buffer_size +syn keyword ngxDirectiveThirdParty upload_max_part_header_len +syn keyword ngxDirectiveThirdParty upload_max_file_size +syn keyword ngxDirectiveThirdParty upload_limit_rate +syn keyword ngxDirectiveThirdParty upload_max_output_body_len +syn keyword ngxDirectiveThirdParty upload_tame_arrays +syn keyword ngxDirectiveThirdParty upload_pass_args + +" Upstream Fair Module +" The fair load balancer module for nginx http://nginx.localdomain.pl +syn keyword ngxDirectiveThirdParty fair +syn keyword ngxDirectiveThirdParty upstream_fair_shm_size + +" Upstream Hash Module (DEPRECATED) +" Provides simple upstream load distribution by hashing a configurable variable. +" syn keyword ngxDirectiveDeprecated hash +syn keyword ngxDirectiveDeprecated hash_again + +" Upstream Domain Resolve Module +" A load-balancer that resolves an upstream domain name asynchronously. +syn keyword ngxDirectiveThirdParty jdomain + +" Upsync Module +" Sync upstreams from consul or others, dynamiclly modify backend-servers attribute(weight, max_fails,...), needn't reload nginx +syn keyword ngxDirectiveThirdParty upsync +syn keyword ngxDirectiveThirdParty upsync_dump_path +syn keyword ngxDirectiveThirdParty upsync_lb +syn keyword ngxDirectiveThirdParty upstream_show + +" URL Module +" Nginx url encoding converting module +syn keyword ngxDirectiveThirdParty url_encoding_convert +syn keyword ngxDirectiveThirdParty url_encoding_convert_from +syn keyword ngxDirectiveThirdParty url_encoding_convert_to + +" User Agent Module +" Match browsers and crawlers +syn keyword ngxDirectiveThirdParty user_agent + +" Upstrema Ketama Chash Module +" Nginx load-balancer module implementing ketama consistent hashing. +syn keyword ngxDirectiveThirdParty ketama_chash + +" Video Thumbextractor Module +" Extract thumbs from a video file +syn keyword ngxDirectiveThirdParty video_thumbextractor +syn keyword ngxDirectiveThirdParty video_thumbextractor_video_filename +syn keyword ngxDirectiveThirdParty video_thumbextractor_video_second +syn keyword ngxDirectiveThirdParty video_thumbextractor_image_width +syn keyword ngxDirectiveThirdParty video_thumbextractor_image_height +syn keyword ngxDirectiveThirdParty video_thumbextractor_only_keyframe +syn keyword ngxDirectiveThirdParty video_thumbextractor_next_time +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_rows +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_cols +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_max_rows +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_max_cols +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_sample_interval +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_color +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_margin +syn keyword ngxDirectiveThirdParty video_thumbextractor_tile_padding +syn keyword ngxDirectiveThirdParty video_thumbextractor_threads +syn keyword ngxDirectiveThirdParty video_thumbextractor_processes_per_worker + +" Eval Module +" Module for nginx web server evaluates response of proxy or memcached module into variables. +syn keyword ngxDirectiveThirdParty eval +syn keyword ngxDirectiveThirdParty eval_escalate +syn keyword ngxDirectiveThirdParty eval_override_content_type + +" VTS Module +" Nginx virtual host traffic status module +syn keyword ngxDirectiveThirdParty vhost_traffic_status +syn keyword ngxDirectiveThirdParty vhost_traffic_status_zone +syn keyword ngxDirectiveThirdParty vhost_traffic_status_display +syn keyword ngxDirectiveThirdParty vhost_traffic_status_display_format +syn keyword ngxDirectiveThirdParty vhost_traffic_status_display_jsonp +syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter +syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter_by_host +syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter_by_set_key +syn keyword ngxDirectiveThirdParty vhost_traffic_status_filter_check_duplicate +syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit +syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit_traffic +syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit_traffic_by_set_key +syn keyword ngxDirectiveThirdParty vhost_traffic_status_limit_check_duplicate + +" XSS Module +" Native support for cross-site scripting (XSS) in an nginx. +syn keyword ngxDirectiveThirdParty xss_get +syn keyword ngxDirectiveThirdParty xss_callback_arg +syn keyword ngxDirectiveThirdParty xss_override_status +syn keyword ngxDirectiveThirdParty xss_check_status +syn keyword ngxDirectiveThirdParty xss_input_types + +" CT Module +" Certificate Transparency module for nginx +syn keyword ngxDirectiveThirdParty ssl_ct +syn keyword ngxDirectiveThirdParty ssl_ct_static_scts + +" Dynamic TLS records patch +" TLS Dynamic Record Resizing +syn keyword ngxDirectiveThirdParty ssl_dyn_rec_enable +syn keyword ngxDirectiveThirdParty ssl_dyn_rec_size_hi +syn keyword ngxDirectiveThirdParty ssl_dyn_rec_size_lo +syn keyword ngxDirectiveThirdParty ssl_dyn_rec_threshold +syn keyword ngxDirectiveThirdParty ssl_dyn_rec_timeout + +" ZIP Module +" ZIP archiver for nginx + +" Contained LUA blocks for embedded syntax highlighting +syn keyword ngxThirdPartyLuaBlock balancer_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock init_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock init_worker_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock set_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock content_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock rewrite_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock access_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock header_filter_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock body_filter_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock log_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock ssl_certificate_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock ssl_session_fetch_by_lua_block contained +syn keyword ngxThirdPartyLuaBlock ssl_session_store_by_lua_block contained + + +" Nested syntax in ERB templating statements +" Subtype needs to be set to '', otherwise recursive errors occur when opening *.nginx files +let b:eruby_subtype = '' +unlet b:current_syntax +syn include @ERB syntax/eruby.vim +syn region ngxTemplate start=+<%[^\=]+ end=+%>+ oneline contains=@ERB +syn region ngxTemplateVar start=+<%=+ end=+%>+ oneline +let b:current_syntax = "nginx" + +" Nested syntax in Jinja templating statements +" This dependend on https://github.com/lepture/vim-jinja +unlet b:current_syntax +try + syn include @JINJA syntax/jinja.vim + syn region ngxTemplate start=+{%+ end=+%}+ oneline contains=@JINJA + syn region ngxTemplateVar start=+{{+ end=+}}+ oneline +catch +endtry +let b:current_syntax = "nginx" + +" Enable nested LUA syntax highlighting +unlet b:current_syntax +syn include @LUA syntax/lua.vim +syn region ngxLua start=+^\s*\w\+_by_lua_block\s*{+ end=+}+me=s-1 contains=ngxBlock,@LUA +let b:current_syntax = "nginx" + + +" Highlight +hi link ngxComment Comment +hi link ngxVariable Identifier +hi link ngxVariableBlock Identifier +hi link ngxVariableString PreProc +hi link ngxString String +hi link ngxIPaddr Delimiter +hi link ngxBoolean Boolean +hi link ngxInteger Number +hi link ngxDirectiveBlock Statement +hi link ngxDirectiveImportant Type +hi link ngxDirectiveControl Keyword +hi link ngxDirectiveDeprecated Error +hi link ngxDirective Function +hi link ngxDirectiveThirdParty Function +hi link ngxListenOptions PreProc +hi link ngxUpstreamServerOptions PreProc +hi link ngxProxyNextUpstreamOptions PreProc +hi link ngxMailProtocol Keyword +hi link ngxSSLProtocol PreProc +hi link ngxSSLProtocolDeprecated Error +hi link ngxStickyOptions ngxDirective +hi link ngxCookieOptions PreProc +hi link ngxTemplateVar Identifier + +hi link ngxSSLSessionTicketsOff ngxBoolean +hi link ngxSSLSessionTicketsOn Error +hi link ngxSSLPreferServerCiphersOn ngxBoolean +hi link ngxSSLPreferServerCiphersOff Error +hi link ngxGzipOff ngxBoolean +hi link ngxGzipOn Error +hi link ngxSSLCipherInsecure Error + +hi link ngxThirdPartyLuaBlock Function diff --git a/runtime/syntax/ninja.vim b/runtime/syntax/ninja.vim new file mode 100644 index 0000000..a53567e --- /dev/null +++ b/runtime/syntax/ninja.vim @@ -0,0 +1,87 @@ +" ninja build file syntax. +" Language: ninja build file as described at +" http://ninja-build.org/manual.html +" Version: 1.5 +" Last Change: 2018/04/05 +" Maintainer: Nicolas Weber +" Version 1.5 of this script is in the upstream vim repository and will be +" included in the next vim release. If you change this, please send your change +" upstream. + +" ninja lexer and parser are at +" https://github.com/ninja-build/ninja/blob/master/src/lexer.in.cc +" https://github.com/ninja-build/ninja/blob/master/src/manifest_parser.cc + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case match + +" Comments are only matched when the # is at the beginning of the line (with +" optional whitespace), as long as the prior line didn't end with a $ +" continuation. +syn match ninjaComment /\(\$\n\)\@" +syn match ninjaKeyword "^rule\>" +syn match ninjaKeyword "^pool\>" +syn match ninjaKeyword "^default\>" +syn match ninjaKeyword "^include\>" +syn match ninjaKeyword "^subninja\>" + +" Both 'build' and 'rule' begin a variable scope that ends +" on the first line without indent. 'rule' allows only a +" limited set of magic variables, 'build' allows general +" let assignments. +" manifest_parser.cc, ParseRule() +syn region ninjaRule start="^rule" end="^\ze\S" contains=TOP transparent +syn keyword ninjaRuleCommand contained containedin=ninjaRule command + \ deps depfile description generator + \ pool restat rspfile rspfile_content + +syn region ninjaPool start="^pool" end="^\ze\S" contains=TOP transparent +syn keyword ninjaPoolCommand contained containedin=ninjaPool depth + +" Strings are parsed as follows: +" lexer.in.cc, ReadEvalString() +" simple_varname = [a-zA-Z0-9_-]+; +" varname = [a-zA-Z0-9_.-]+; +" $$ -> $ +" $\n -> line continuation +" '$ ' -> escaped space +" $simple_varname -> variable +" ${varname} -> variable + +syn match ninjaDollar "\$\$" +syn match ninjaWrapLineOperator "\$$" +syn match ninjaSimpleVar "\$[a-zA-Z0-9_-]\+" +syn match ninjaVar "\${[a-zA-Z0-9_.-]\+}" + +" operators are: +" variable assignment = +" rule definition : +" implicit dependency | +" order-only dependency || +syn match ninjaOperator "\(=\|:\||\|||\)\ze\s" + +hi def link ninjaComment Comment +hi def link ninjaKeyword Keyword +hi def link ninjaRuleCommand Statement +hi def link ninjaPoolCommand Statement +hi def link ninjaDollar ninjaOperator +hi def link ninjaWrapLineOperator ninjaOperator +hi def link ninjaOperator Operator +hi def link ninjaSimpleVar ninjaVar +hi def link ninjaVar Identifier + +let b:current_syntax = "ninja" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/nix.vim b/runtime/syntax/nix.vim new file mode 100644 index 0000000..ef52cdd --- /dev/null +++ b/runtime/syntax/nix.vim @@ -0,0 +1,212 @@ +" Vim syntax file +" Language: Nix +" Maintainer: James Fleming +" (Github username: equill) +" Original Author: Daiderd Jordan +" Acknowledgement: Based on vim-nix maintained by Daiderd Jordan +" https://github.com/LnL7/vim-nix +" License: MIT +" Last Change: 2023 Aug 19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword nixBoolean true false +syn keyword nixNull null +syn keyword nixRecKeyword rec + +syn keyword nixOperator or +syn match nixOperator '!=\|!' +syn match nixOperator '<=\?' +syn match nixOperator '>=\?' +syn match nixOperator '&&' +syn match nixOperator '//\=' +syn match nixOperator '==' +syn match nixOperator '?' +syn match nixOperator '||' +syn match nixOperator '++\=' +syn match nixOperator '-' +syn match nixOperator '\*' +syn match nixOperator '->' + +syn match nixParen '[()]' +syn match nixInteger '\d\+' + +syn keyword nixTodo FIXME NOTE TODO OPTIMIZE XXX HACK contained +syn match nixComment '#.*' contains=nixTodo,@Spell +syn region nixComment start=+/\*+ end=+\*/+ contains=nixTodo,@Spell + +syn region nixInterpolation matchgroup=nixInterpolationDelimiter start="\${" end="}" contained contains=@nixExpr,nixInterpolationParam + +syn match nixSimpleStringSpecial /\\\%([nrt"\\$]\|$\)/ contained +syn match nixStringSpecial /''['$]/ contained +syn match nixStringSpecial /\$\$/ contained +syn match nixStringSpecial /''\\[nrt]/ contained + +syn match nixSimpleStringSpecial /\$\$/ contained + +syn match nixInvalidSimpleStringEscape /\\[^nrt"\\$]/ contained +syn match nixInvalidStringEscape /''\\[^nrt]/ contained + +syn region nixSimpleString matchgroup=nixStringDelimiter start=+"+ skip=+\\"+ end=+"+ contains=nixInterpolation,nixSimpleStringSpecial,nixInvalidSimpleStringEscape +syn region nixString matchgroup=nixStringDelimiter start=+''+ skip=+''['$\\]+ end=+''+ contains=nixInterpolation,nixStringSpecial,nixInvalidStringEscape + +syn match nixFunctionCall "[a-zA-Z_][a-zA-Z0-9_'-]*" + +syn match nixPath "[a-zA-Z0-9._+-]*\%(/[a-zA-Z0-9._+-]\+\)\+" +syn match nixHomePath "\~\%(/[a-zA-Z0-9._+-]\+\)\+" +syn match nixSearchPath "[a-zA-Z0-9._+-]\+\%(\/[a-zA-Z0-9._+-]\+\)*" contained +syn match nixPathDelimiter "[<>]" contained +syn match nixSearchPathRef "<[a-zA-Z0-9._+-]\+\%(\/[a-zA-Z0-9._+-]\+\)*>" contains=nixSearchPath,nixPathDelimiter +syn match nixURI "[a-zA-Z][a-zA-Z0-9.+-]*:[a-zA-Z0-9%/?:@&=$,_.!~*'+-]\+" + +syn match nixAttributeDot "\." contained +syn match nixAttribute "[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%([^a-zA-Z0-9_'.-]\|$\)" contained +syn region nixAttributeAssignment start="=" end="\ze;" contained contains=@nixExpr +syn region nixAttributeDefinition start=/\ze[a-zA-Z_"$]/ end=";" contained contains=nixComment,nixAttribute,nixInterpolation,nixSimpleString,nixAttributeDot,nixAttributeAssignment + +syn region nixInheritAttributeSubExpr start="("ms=e+1 end="\ze)" contained contains=nixAttributeDot,@nixExpr +syn region nixInheritAttributeScope start="\ze(" end=")" contained contains=nixInheritAttributeSubExpr +syn region nixAttributeDefinition matchgroup=nixInherit start="\" end=";" contained contains=nixComment,nixInheritAttributeScope,nixAttribute + +syn region nixAttributeSet start="{" end="}" contains=nixComment,nixAttributeDefinition + +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn region nixArgumentDefinitionWithDefault matchgroup=nixArgumentDefinition start="[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*?\@=" matchgroup=NONE end="[,}]\@=" transparent contained contains=@nixExpr +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn match nixArgumentDefinition "[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*[,}]\@=" contained +syn match nixArgumentEllipsis "\.\.\." contained +syn match nixArgumentSeparator "," contained + +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn match nixArgOperator '@\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*[a-zA-Z_][a-zA-Z0-9_'-]*\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*:'he=s+1 contained contains=nixAttribute + +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn match nixArgOperator '[a-zA-Z_][a-zA-Z0-9_'-]*\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*@'hs=e-1 contains=nixAttribute nextgroup=nixFunctionArgument + +" This is a bit more complicated, because function arguments can be passed in a +" very similar form on how attribute sets are defined and two regions with the +" same start patterns will shadow each other. Instead of a region we could use a +" match on {\_.\{-\}}, which unfortunately doesn't take nesting into account. +" +" So what we do instead is that we look forward until we are sure that it's a +" function argument. Unfortunately, we need to catch comments and both vertical +" and horizontal white space, which the following regex should hopefully do: +" +" "\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*" +" +" It is also used throughout the whole file and is marked with 'v's as well. +" +" Fortunately the matching rules for function arguments are much simpler than +" for real attribute sets, because we can stop when we hit the first ellipsis or +" default value operator, but we also need to paste the "whitespace & comments +" eating" regex all over the place (marked with 'v's): +" +" Region match 1: { foo ? ... } or { foo, ... } or { ... } (ellipsis) +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv {----- identifier -----}vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn region nixFunctionArgument start="{\ze\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*\%([a-zA-Z_][a-zA-Z0-9_'-]*\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*[,?}]\|\.\.\.\)" end="}" contains=nixComment,nixArgumentDefinitionWithDefault,nixArgumentDefinition,nixArgumentEllipsis,nixArgumentSeparator nextgroup=nixArgOperator + +" Now it gets more tricky, because we need to look forward for the colon, but +" there could be something like "{}@foo:", even though it's highly unlikely. +" +" Region match 2: {} +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv@vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv{----- identifier -----} vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn region nixFunctionArgument start="{\ze\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*}\%(\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*@\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*[a-zA-Z_][a-zA-Z0-9_'-]*\)\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*:" end="}" contains=nixComment nextgroup=nixArgOperator + +" vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +syn match nixSimpleFunctionArgument "[a-zA-Z_][a-zA-Z0-9_'-]*\ze\%(\s\|#.\{-\}\n\|\n\|/\*\_.\{-\}\*/\)*:\([\n ]\)\@=" + +syn region nixList matchgroup=nixListBracket start="\[" end="\]" contains=@nixExpr + +syn region nixLetExpr matchgroup=nixLetExprKeyword start="\" end="\" contains=nixComment,nixAttributeDefinition + +syn keyword nixIfExprKeyword then contained +syn region nixIfExpr matchgroup=nixIfExprKeyword start="\" end="\" contains=@nixExpr,nixIfExprKeyword + +syn region nixWithExpr matchgroup=nixWithExprKeyword start="\" matchgroup=NONE end=";" contains=@nixExpr + +syn region nixAssertExpr matchgroup=nixAssertKeyword start="\" matchgroup=NONE end=";" contains=@nixExpr + +syn cluster nixExpr contains=nixBoolean,nixNull,nixOperator,nixParen,nixInteger,nixRecKeyword,nixConditional,nixBuiltin,nixSimpleBuiltin,nixComment,nixFunctionCall,nixFunctionArgument,nixArgOperator,nixSimpleFunctionArgument,nixPath,nixHomePath,nixSearchPathRef,nixURI,nixAttributeSet,nixList,nixSimpleString,nixString,nixLetExpr,nixIfExpr,nixWithExpr,nixAssertExpr,nixInterpolation + +" These definitions override @nixExpr and have to come afterwards: + +syn match nixInterpolationParam "[a-zA-Z_][a-zA-Z0-9_'-]*\%(\.[a-zA-Z_][a-zA-Z0-9_'-]*\)*" contained + +" Non-namespaced Nix builtins as of version 2.0: +syn keyword nixSimpleBuiltin + \ abort baseNameOf derivation derivationStrict dirOf fetchGit + \ fetchMercurial fetchTarball import isNull map mapAttrs placeholder removeAttrs + \ scopedImport throw toString + + +" Namespaced and non-namespaced Nix builtins as of version 2.0: +syn keyword nixNamespacedBuiltin contained + \ abort add addErrorContext all any attrNames attrValues baseNameOf + \ catAttrs compareVersions concatLists concatStringsSep currentSystem + \ currentTime deepSeq derivation derivationStrict dirOf div elem elemAt + \ fetchGit fetchMercurial fetchTarball fetchurl filter \ filterSource + \ findFile foldl' fromJSON functionArgs genList \ genericClosure getAttr + \ getEnv hasAttr hasContext hashString head import intersectAttrs isAttrs + \ isBool isFloat isFunction isInt isList isNull isString langVersion + \ length lessThan listToAttrs map mapAttrs match mul nixPath nixVersion + \ parseDrvName partition path pathExists placeholder readDir readFile + \ removeAttrs replaceStrings scopedImport seq sort split splitVersion + \ storeDir storePath stringLength sub substring tail throw toFile toJSON + \ toPath toString toXML trace tryEval typeOf unsafeDiscardOutputDependency + \ unsafeDiscardStringContext unsafeGetAttrPos valueSize fromTOML bitAnd + \ bitOr bitXor floor ceil + +syn match nixBuiltin "builtins\.[a-zA-Z']\+"he=s+9 contains=nixComment,nixNamespacedBuiltin + +hi def link nixArgOperator Operator +hi def link nixArgumentDefinition Identifier +hi def link nixArgumentEllipsis Operator +hi def link nixAssertKeyword Keyword +hi def link nixAttribute Identifier +hi def link nixAttributeDot Operator +hi def link nixBoolean Boolean +hi def link nixBuiltin Special +hi def link nixComment Comment +hi def link nixConditional Conditional +hi def link nixHomePath Include +hi def link nixIfExprKeyword Keyword +hi def link nixInherit Keyword +hi def link nixInteger Integer +hi def link nixInterpolation Macro +hi def link nixInterpolationDelimiter Delimiter +hi def link nixInterpolationParam Macro +hi def link nixInvalidSimpleStringEscape Error +hi def link nixInvalidStringEscape Error +hi def link nixLetExprKeyword Keyword +hi def link nixNamespacedBuiltin Special +hi def link nixNull Constant +hi def link nixOperator Operator +hi def link nixPath Include +hi def link nixPathDelimiter Delimiter +hi def link nixRecKeyword Keyword +hi def link nixSearchPath Include +hi def link nixSimpleBuiltin Keyword +hi def link nixSimpleFunctionArgument Identifier +hi def link nixSimpleString String +hi def link nixSimpleStringSpecial SpecialChar +hi def link nixString String +hi def link nixStringDelimiter Delimiter +hi def link nixStringSpecial Special +hi def link nixTodo Todo +hi def link nixURI Include +hi def link nixWithExprKeyword Keyword + +" This could lead up to slow syntax highlighting for large files, but usually +" large files such as all-packages.nix are one large attribute set, so if we'd +" use sync patterns we'd have to go back to the start of the file anyway +syn sync fromstart + +let b:current_syntax = "nix" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/nosyntax.vim b/runtime/syntax/nosyntax.vim new file mode 100644 index 0000000..a761d71 --- /dev/null +++ b/runtime/syntax/nosyntax.vim @@ -0,0 +1,31 @@ +" Vim syntax support file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" This file is used for ":syntax off". +" It removes the autocommands and stops highlighting for all buffers. + +if !has("syntax") + finish +endif + +" Remove all autocommands for the Syntax event. This also avoids that +" "syntax=foo" in a modeline triggers the SynSet() function of synload.vim. +au! Syntax + +" remove all syntax autocommands and remove the syntax for each buffer +augroup syntaxset + au! + au BufEnter * syn clear + au BufEnter * if exists("b:current_syntax") | unlet b:current_syntax | endif + doautoall syntaxset BufEnter * + au! +augroup END + +if exists("syntax_on") + unlet syntax_on +endif +if exists("syntax_manual") + unlet syntax_manual +endif diff --git a/runtime/syntax/nqc.vim b/runtime/syntax/nqc.vim new file mode 100644 index 0000000..d09c106 --- /dev/null +++ b/runtime/syntax/nqc.vim @@ -0,0 +1,365 @@ +" Vim syntax file +" Language: NQC - Not Quite C, for LEGO mindstorms +" NQC homepage: http://www.enteract.com/~dbaum/nqc/ +" Maintainer: Stefan Scherer +" Last Change: 2001 May 10 +" URL: http://www.enotes.de/twiki/pub/Home/LegoMindstorms/nqc.vim +" Filenames: .nqc + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Statements +syn keyword nqcStatement break return continue start stop abs sign +syn keyword nqcStatement sub task +syn keyword nqcLabel case default +syn keyword nqcConditional if else switch +syn keyword nqcRepeat while for do until repeat + +" Scout and RCX2 +syn keyword nqcEvents acquire catch monitor + +" types and classes +syn keyword nqcType int true false void +syn keyword nqcStorageClass asm const inline + + + +" Sensors -------------------------------------------- +" Input Sensors +syn keyword nqcConstant SENSOR_1 SENSOR_2 SENSOR_3 + +" Types for SetSensorType() +syn keyword nqcConstant SENSOR_TYPE_TOUCH SENSOR_TYPE_TEMPERATURE +syn keyword nqcConstant SENSOR_TYPE_LIGHT SENSOR_TYPE_ROTATION +syn keyword nqcConstant SENSOR_LIGHT SENSOR_TOUCH + +" Modes for SetSensorMode() +syn keyword nqcConstant SENSOR_MODE_RAW SENSOR_MODE_BOOL +syn keyword nqcConstant SENSOR_MODE_EDGE SENSOR_MODE_PULSE +syn keyword nqcConstant SENSOR_MODE_PERCENT SENSOR_MODE_CELSIUS +syn keyword nqcConstant SENSOR_MODE_FAHRENHEIT SENSOR_MODE_ROTATION + +" Sensor configurations for SetSensor() +syn keyword nqcConstant SENSOR_TOUCH SENSOR_LIGHT SENSOR_ROTATION +syn keyword nqcConstant SENSOR_CELSIUS SENSOR_FAHRENHEIT SENSOR_PULSE +syn keyword nqcConstant SENSOR_EDGE + +" Functions - All +syn keyword nqcFunction ClearSensor +syn keyword nqcFunction SensorValue SensorType + +" Functions - RCX +syn keyword nqcFunction SetSensor SetSensorType +syn keyword nqcFunction SensorValueBool + +" Functions - RCX, CyberMaster +syn keyword nqcFunction SetSensorMode SensorMode + +" Functions - RCX, Scout +syn keyword nqcFunction SensorValueRaw + +" Functions - Scout +syn keyword nqcFunction SetSensorLowerLimit SetSensorUpperLimit +syn keyword nqcFunction SetSensorHysteresis CalibrateSensor + + +" Outputs -------------------------------------------- +" Outputs for On(), Off(), etc. +syn keyword nqcConstant OUT_A OUT_B OUT_C + +" Modes for SetOutput() +syn keyword nqcConstant OUT_ON OUT_OFF OUT_FLOAT + +" Directions for SetDirection() +syn keyword nqcConstant OUT_FWD OUT_REV OUT_TOGGLE + +" Output power for SetPower() +syn keyword nqcConstant OUT_LOW OUT_HALF OUT_FULL + +" Functions - All +syn keyword nqcFunction SetOutput SetDirection SetPower OutputStatus +syn keyword nqcFunction On Off Float Fwd Rev Toggle +syn keyword nqcFunction OnFwd OnRev OnFor + +" Functions - RXC2, Scout +syn keyword nqcFunction SetGlobalOutput SetGlobalDirection SetMaxPower +syn keyword nqcFunction GlobalOutputStatus + + +" Sound ---------------------------------------------- +" Sounds for PlaySound() +syn keyword nqcConstant SOUND_CLICK SOUND_DOUBLE_BEEP SOUND_DOWN +syn keyword nqcConstant SOUND_UP SOUND_LOW_BEEP SOUND_FAST_UP + +" Functions - All +syn keyword nqcFunction PlaySound PlayTone + +" Functions - RCX2, Scout +syn keyword nqcFunction MuteSound UnmuteSound ClearSound +syn keyword nqcFunction SelectSounds + + +" LCD ------------------------------------------------ +" Modes for SelectDisplay() +syn keyword nqcConstant DISPLAY_WATCH DISPLAY_SENSOR_1 DISPLAY_SENSOR_2 +syn keyword nqcConstant DISPLAY_SENSOR_3 DISPLAY_OUT_A DISPLAY_OUT_B +syn keyword nqcConstant DISPLAY_OUT_C +" RCX2 +syn keyword nqcConstant DISPLAY_USER + +" Functions - RCX +syn keyword nqcFunction SelectDisplay +" Functions - RCX2 +syn keyword nqcFunction SetUserDisplay + + +" Communication -------------------------------------- +" Messages - RCX, Scout ------------------------------ +" Tx power level for SetTxPower() +syn keyword nqcConstant TX_POWER_LO TX_POWER_HI + +" Functions - RCX, Scout +syn keyword nqcFunction Message ClearMessage SendMessage SetTxPower + +" Serial - RCX2 -------------------------------------- +" for SetSerialComm() +syn keyword nqcConstant SERIAL_COMM_DEFAULT SERIAL_COMM_4800 +syn keyword nqcConstant SERIAL_COMM_DUTY25 SERIAL_COMM_76KHZ + +" for SetSerialPacket() +syn keyword nqcConstant SERIAL_PACKET_DEFAULT SERIAL_PACKET_PREAMBLE +syn keyword nqcConstant SERIAL_PACKET_NEGATED SERIAL_PACKET_CHECKSUM +syn keyword nqcConstant SERIAL_PACKET_RCX + +" Functions - RCX2 +syn keyword nqcFunction SetSerialComm SetSerialPacket SetSerialData +syn keyword nqcFunction SerialData SendSerial + +" VLL - Scout ---------------------------------------- +" Functions - Scout +syn keyword nqcFunction SendVLL + + +" Timers --------------------------------------------- +" Functions - All +syn keyword nqcFunction ClearTimer Timer + +" Functions - RCX2 +syn keyword nqcFunction SetTimer FastTimer + + +" Counters ------------------------------------------- +" Functions - RCX2, Scout +syn keyword nqcFunction ClearCounter IncCounter DecCounter Counter + + +" Access Control ------------------------------------- +syn keyword nqcConstant ACQUIRE_OUT_A ACQUIRE_OUT_B ACQUIRE_OUT_C +syn keyword nqcConstant ACQUIRE_SOUND +" RCX2 only +syn keyword nqcConstant ACQUIRE_USER_1 ACQUIRE_USER_2 ACQUIRE_USER_3 +syn keyword nqcConstant ACQUIRE_USER_4 + +" Functions - RCX2, Scout +syn keyword nqcFunction SetPriority + + +" Events --------------------------------------------- +" RCX2 Events +syn keyword nqcConstant EVENT_TYPE_PRESSED EVENT_TYPE_RELEASED +syn keyword nqcConstant EVENT_TYPE_PULSE EVENT_TYPE_EDGE +syn keyword nqcConstant EVENT_TYPE_FAST_CHANGE EVENT_TYPE_LOW +syn keyword nqcConstant EVENT_TYPE_NORMAL EVENT_TYPE_HIGH +syn keyword nqcConstant EVENT_TYPE_CLICK EVENT_TYPE_DOUBLECLICK +syn keyword nqcConstant EVENT_TYPE_MESSAGE + +" Scout Events +syn keyword nqcConstant EVENT_1_PRESSED EVENT_1_RELEASED +syn keyword nqcConstant EVENT_2_PRESSED EVENT_2_RELEASED +syn keyword nqcConstant EVENT_LIGHT_HIGH EVENT_LIGHT_NORMAL +syn keyword nqcConstant EVENT_LIGHT_LOW EVENT_LIGHT_CLICK +syn keyword nqcConstant EVENT_LIGHT_DOUBLECLICK EVENT_COUNTER_0 +syn keyword nqcConstant EVENT_COUNTER_1 EVENT_TIMER_0 EVENT_TIMER_1 +syn keyword nqcConstant EVENT_TIMER_2 EVENT_MESSAGE + +" Functions - RCX2, Scout +syn keyword nqcFunction ActiveEvents Event + +" Functions - RCX2 +syn keyword nqcFunction CurrentEvents +syn keyword nqcFunction SetEvent ClearEvent ClearAllEvents EventState +syn keyword nqcFunction CalibrateEvent SetUpperLimit UpperLimit +syn keyword nqcFunction SetLowerLimit LowerLimit SetHysteresis +syn keyword nqcFunction Hysteresis +syn keyword nqcFunction SetClickTime ClickTime SetClickCounter +syn keyword nqcFunction ClickCounter + +" Functions - Scout +syn keyword nqcFunction SetSensorClickTime SetCounterLimit +syn keyword nqcFunction SetTimerLimit + + +" Data Logging --------------------------------------- +" Functions - RCX +syn keyword nqcFunction CreateDatalog AddToDatalog +syn keyword nqcFunction UploadDatalog + + +" General Features ----------------------------------- +" Functions - All +syn keyword nqcFunction Wait StopAllTasks Random +syn keyword nqcFunction SetSleepTime SleepNow + +" Functions - RCX +syn keyword nqcFunction Program Watch SetWatch + +" Functions - RCX2 +syn keyword nqcFunction SetRandomSeed SelectProgram +syn keyword nqcFunction BatteryLevel FirmwareVersion + +" Functions - Scout +" Parameters for SetLight() +syn keyword nqcConstant LIGHT_ON LIGHT_OFF +syn keyword nqcFunction SetScoutRules ScoutRules SetScoutMode +syn keyword nqcFunction SetEventFeedback EventFeedback SetLight + +" additional CyberMaster defines +syn keyword nqcConstant OUT_L OUT_R OUT_X +syn keyword nqcConstant SENSOR_L SENSOR_M SENSOR_R +" Functions - CyberMaster +syn keyword nqcFunction Drive OnWait OnWaitDifferent +syn keyword nqcFunction ClearTachoCounter TachoCount TachoSpeed +syn keyword nqcFunction ExternalMotorRunning AGC + + + +" nqcCommentGroup allows adding matches for special things in comments +syn keyword nqcTodo contained TODO FIXME XXX +syn cluster nqcCommentGroup contains=nqcTodo + +"when wanted, highlight trailing white space +if exists("nqc_space_errors") + if !exists("nqc_no_trail_space_error") + syn match nqcSpaceError display excludenl "\s\+$" + endif + if !exists("nqc_no_tab_space_error") + syn match nqcSpaceError display " \+\t"me=e-1 + endif +endif + +"catch errors caused by wrong parenthesis and brackets +syn cluster nqcParenGroup contains=nqcParenError,nqcIncluded,nqcCommentSkip,@nqcCommentGroup,nqcCommentStartError,nqcCommentSkip,nqcCppOut,nqcCppOut2,nqcCppSkip,nqcNumber,nqcFloat,nqcNumbers +if exists("nqc_no_bracket_error") + syn region nqcParen transparent start='(' end=')' contains=ALLBUT,@nqcParenGroup,nqcCppParen + " nqcCppParen: same as nqcParen but ends at end-of-line; used in nqcDefine + syn region nqcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcParen + syn match nqcParenError display ")" + syn match nqcErrInParen display contained "[{}]" +else + syn region nqcParen transparent start='(' end=')' contains=ALLBUT,@nqcParenGroup,nqcCppParen,nqcErrInBracket,nqcCppBracket + " nqcCppParen: same as nqcParen but ends at end-of-line; used in nqcDefine + syn region nqcCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcErrInBracket,nqcParen,nqcBracket + syn match nqcParenError display "[\])]" + syn match nqcErrInParen display contained "[\]{}]" + syn region nqcBracket transparent start='\[' end=']' contains=ALLBUT,@nqcParenGroup,nqcErrInParen,nqcCppParen,nqcCppBracket + " nqcCppBracket: same as nqcParen but ends at end-of-line; used in nqcDefine + syn region nqcCppBracket transparent start='\[' skip='\\$' excludenl end=']' end='$' contained contains=ALLBUT,@nqcParenGroup,nqcErrInParen,nqcParen,nqcBracket + syn match nqcErrInBracket display contained "[);{}]" +endif + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match nqcNumbers display transparent "\<\d\|\.\d" contains=nqcNumber,nqcFloat +" Same, but without octal error (for comments) +syn match nqcNumber display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match nqcNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match nqcFloat display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match nqcFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match nqcFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match nqcFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" +" flag an octal number with wrong digits +syn case match + +syn region nqcCommentL start="//" skip="\\$" end="$" keepend contains=@nqcCommentGroup,nqcSpaceError +syn region nqcComment matchgroup=nqcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@nqcCommentGroup,nqcCommentStartError,nqcSpaceError + +" keep a // comment separately, it terminates a preproc. conditional +syntax match nqcCommentError display "\*/" +syntax match nqcCommentStartError display "/\*" contained + + + + + +syn region nqcPreCondit start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=nqcComment,nqcCharacter,nqcCppParen,nqcParenError,nqcNumbers,nqcCommentError,nqcSpaceError +syn match nqcPreCondit display "^\s*#\s*\(else\|endif\)\>" +if !exists("nqc_no_if0") + syn region nqcCppOut start="^\s*#\s*if\s\+0\>" end=".\|$" contains=nqcCppOut2 + syn region nqcCppOut2 contained start="0" end="^\s*#\s*\(endif\>\|else\>\|elif\>\)" contains=nqcSpaceError,nqcCppSkip + syn region nqcCppSkip contained start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*#\s*endif\>" contains=nqcSpaceError,nqcCppSkip +endif +syn region nqcIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match nqcInclude display "^\s*#\s*include\>\s*["]" contains=nqcIncluded +"syn match nqcLineSkip "\\$" +syn cluster nqcPreProcGroup contains=nqcPreCondit,nqcIncluded,nqcInclude,nqcDefine,nqcErrInParen,nqcErrInBracket,nqcCppOut,nqcCppOut2,nqcCppSkip,nqcNumber,nqcFloat,nqcNumbers,nqcCommentSkip,@nqcCommentGroup,nqcCommentStartError,nqcParen,nqcBracket +syn region nqcDefine start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" contains=ALLBUT,@nqcPreProcGroup +syn region nqcPreProc start="^\s*#\s*\(pragma\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@nqcPreProcGroup + +if !exists("nqc_minlines") + if !exists("nqc_no_if0") + let nqc_minlines = 50 " #if 0 constructs can be long + else + let nqc_minlines = 15 " mostly for () constructs + endif +endif +exec "syn sync ccomment nqcComment minlines=" . nqc_minlines + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link nqcLabel Label +hi def link nqcConditional Conditional +hi def link nqcRepeat Repeat +hi def link nqcCharacter Character +hi def link nqcNumber Number +hi def link nqcFloat Float +hi def link nqcFunction Function +hi def link nqcParenError nqcError +hi def link nqcErrInParen nqcError +hi def link nqcErrInBracket nqcError +hi def link nqcCommentL nqcComment +hi def link nqcCommentStart nqcComment +hi def link nqcCommentError nqcError +hi def link nqcCommentStartError nqcError +hi def link nqcSpaceError nqcError +hi def link nqcStorageClass StorageClass +hi def link nqcInclude Include +hi def link nqcPreProc PreProc +hi def link nqcDefine Macro +hi def link nqcIncluded String +hi def link nqcError Error +hi def link nqcStatement Statement +hi def link nqcEvents Statement +hi def link nqcPreCondit PreCondit +hi def link nqcType Type +hi def link nqcConstant Constant +hi def link nqcCommentSkip nqcComment +hi def link nqcComment Comment +hi def link nqcTodo Todo +hi def link nqcCppSkip nqcCppOut +hi def link nqcCppOut2 nqcCppOut +hi def link nqcCppOut Comment + + +let b:current_syntax = "nqc" + +" vim: ts=8 diff --git a/runtime/syntax/nroff.vim b/runtime/syntax/nroff.vim new file mode 100644 index 0000000..5667042 --- /dev/null +++ b/runtime/syntax/nroff.vim @@ -0,0 +1,249 @@ +" VIM syntax file +" Language: nroff/groff +" Maintainer: John Marshall +" Previous Maintainer: Pedro Alejandro López-Valencia +" Previous Maintainer: Jérôme Plût +" Last Change: 2021 Mar 28 +" +" {{{1 Todo +" +" TODO: +" +" * Write syntax highlighting files for the preprocessors, +" and integrate with nroff.vim. +" +" +" {{{1 Start syntax highlighting. +" +" quit when a syntax file was already loaded +" +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +if exists("nroff_is_groff") + let b:nroff_is_groff = 1 +endif + +syn spell toplevel +syn case match + +" +" {{{1 plugin settings... +" +" {{{2 enable spacing error highlighting +" +if exists("nroff_space_errors") + syn match nroffError /\s\+$/ + syn match nroffSpaceError /[.,:;!?]\s\{2,}/ +endif +" +" +" {{{1 Special file settings +" +" {{{2 ms exdented paragraphs are not in the default paragraphs list. +" +setlocal paragraphs+=XP +" +" {{{2 Activate navigation to preprocessor sections. +" +if exists("b:preprocs_as_sections") + setlocal sections=EQTSPS[\ G1GS +endif + +" {{{1 Escape sequences +" ------------------------------------------------------------ + +syn match nroffEscChar /\\[CN]/ nextgroup=nroffEscCharArg +syn match nroffEscape /\\[*fgmnYV]/ nextgroup=nroffEscRegPar,nroffEscRegArg +syn match nroffEscape /\\s[+-]\=/ nextgroup=nroffSize +syn match nroffEscape /\\[$AbDhlLRvxXZ]/ nextgroup=nroffEscPar,nroffEscArg + +syn match nroffEscRegArg /./ contained +syn match nroffEscRegArg2 /../ contained +syn match nroffEscRegPar /(/ contained nextgroup=nroffEscRegArg2 +syn match nroffEscArg /./ contained +syn match nroffEscArg2 /../ contained +syn match nroffEscPar /(/ contained nextgroup=nroffEscArg2 +syn match nroffSize /\((\d\)\=\d/ contained + +syn region nroffEscCharArg start=/'/ end=/'/ contained +syn region nroffEscArg start=/'/ end=/'/ contained contains=nroffEscape,@nroffSpecial + +if exists("b:nroff_is_groff") + syn region nroffEscRegArg matchgroup=nroffEscape start=/\[/ end=/\]/ contained oneline + syn region nroffSize matchgroup=nroffEscape start=/\[/ end=/\]/ contained +endif + +syn match nroffEscape /\\[adprtu{}]/ +syn match nroffEscape /\\$/ +syn match nroffEscape /\\\$[@*]/ + +" {{{1 Strings and special characters +" ------------------------------------------------------------ + +syn match nroffSpecialChar /\\[\\eE?!-]/ +syn match nroffSpace "\\[&%~|^0)/,]" +syn match nroffSpecialChar /\\(../ + +if exists("b:nroff_is_groff") + syn match nroffSpecialChar /\\\[[^]]*]/ + syn region nroffPreserve matchgroup=nroffSpecialChar start=/\\?/ end=/\\?/ oneline +endif + +syn region nroffPreserve matchgroup=nroffSpecialChar start=/\\!/ end=/$/ oneline + +syn cluster nroffSpecial contains=nroffSpecialChar,nroffSpace + + +syn region nroffString start=/"/ end=/"/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained +syn region nroffString start=/'/ end=/'/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained + + +" {{{1 Numbers and units +" ------------------------------------------------------------ +syn match nroffNumBlock /[0-9.]\a\=/ contained contains=nroffNumber +syn match nroffNumber /\d\+\(\.\d*\)\=/ contained nextgroup=nroffUnit,nroffBadChar +syn match nroffNumber /\.\d\+)/ contained nextgroup=nroffUnit,nroffBadChar +syn match nroffBadChar /./ contained +syn match nroffUnit /[icpPszmnvMu]/ contained + + +" {{{1 Requests +" ------------------------------------------------------------ + +" Requests begin with . or ' at the beginning of a line, or +" after .if or .ie. + +syn match nroffReqLeader /^[.']/ nextgroup=nroffReqName skipwhite +syn match nroffReqLeader /[.']/ contained nextgroup=nroffReqName skipwhite + +if exists("b:nroff_is_groff") +" +" GNU troff allows long request names +" + syn match nroffReqName /[^\t \\\[?]\+/ contained nextgroup=nroffReqArg +else + syn match nroffReqName /[^\t \\\[?]\{1,2}/ contained nextgroup=nroffReqArg +endif + +syn region nroffReqArg start=/\S/ skip=/\\$/ end=/$/ contained contains=nroffEscape,@nroffSpecial,nroffString,nroffError,nroffSpaceError,nroffNumBlock,nroffComment + +" {{{2 Conditional: .if .ie .el +syn match nroffReqName /\(if\|ie\)/ contained nextgroup=nroffCond skipwhite +syn match nroffReqName /el/ contained nextgroup=nroffReqLeader skipwhite +syn match nroffCond /\S\+/ contained nextgroup=nroffReqLeader skipwhite + +" {{{2 String definition: .ds .as +syn match nroffReqname /[da]s/ contained nextgroup=nroffDefIdent skipwhite +syn match nroffDefIdent /\S\+/ contained nextgroup=nroffDefinition skipwhite +syn region nroffDefinition matchgroup=nroffSpecialChar start=/"/ matchgroup=NONE end=/\\"/me=e-2 skip=/\\$/ start=/\S/ end=/$/ contained contains=nroffDefSpecial +syn match nroffDefSpecial /\\$/ contained +syn match nroffDefSpecial /\\\((.\)\=./ contained + +if exists("b:nroff_is_groff") + syn match nroffDefSpecial /\\\[[^]]*]/ contained +endif + +" {{{2 Macro definition: .de .am, also diversion: .di +syn match nroffReqName /\(d[ei]\|am\)/ contained nextgroup=nroffIdent skipwhite +syn match nroffIdent /[^[?( \t]\+/ contained +if exists("b:nroff_is_groff") + syn match nroffReqName /als/ contained nextgroup=nroffIdent skipwhite +endif + +" {{{2 Register definition: .rn .rr +syn match nroffReqName /[rn]r/ contained nextgroup=nroffIdent skipwhite +if exists("b:nroff_is_groff") + syn match nroffReqName /\(rnn\|aln\)/ contained nextgroup=nroffIdent skipwhite +endif + + +" {{{1 eqn/tbl/pic +" ------------------------------------------------------------ +" +" XXX: write proper syntax highlight for eqn / tbl / pic ? +" + +syn region nroffEquation start=/^\.\s*EQ\>/ end=/^\.\s*EN\>/ +syn region nroffTable start=/^\.\s*TS\>/ end=/^\.\s*TE\>/ contains=@Spell +syn region nroffPicture start=/^\.\s*PS\>/ end=/^\.\s*PE\>/ +syn region nroffRefer start=/^\.\s*\[\>/ end=/^\.\s*\]\>/ contains=@Spell +syn region nroffGrap start=/^\.\s*G1\>/ end=/^\.\s*G2\>/ +syn region nroffGremlin start=/^\.\s*GS\>/ end=/^\.\s*GE|GF\>/ + +" {{{1 Comments +" ------------------------------------------------------------ + +syn region nroffIgnore start=/^[.']\s*ig/ end=/^['.]\s*\./ +syn match nroffComment /\(^[.']\s*\)\=\\".*/ contains=nroffTodo,@Spell +syn match nroffComment /^'''.*/ contains=nroffTodo,@Spell + +if exists("b:nroff_is_groff") + syn match nroffComment "\\#.*$" contains=nroffTodo,@Spell +endif + +syn keyword nroffTodo TODO XXX FIXME contained + +" {{{1 Hilighting +" ------------------------------------------------------------ +" + +" +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +" + +hi def link nroffEscChar nroffSpecialChar +hi def link nroffEscCharArg nroffSpecialChar +hi def link nroffSpecialChar SpecialChar +hi def link nroffSpace Delimiter + +hi def link nroffEscRegArg2 nroffEscRegArg +hi def link nroffEscRegArg nroffIdent + +hi def link nroffEscArg2 nroffEscArg +hi def link nroffEscPar nroffEscape + +hi def link nroffEscRegPar nroffEscape +hi def link nroffEscArg nroffEscape +hi def link nroffSize nroffEscape +hi def link nroffEscape PreProc + +hi def link nroffIgnore Comment +hi def link nroffComment Comment +hi def link nroffTodo Todo + +hi def link nroffReqLeader nroffRequest +hi def link nroffReqName nroffRequest +hi def link nroffRequest Statement +hi def link nroffCond PreCondit +hi def link nroffDefIdent nroffIdent +hi def link nroffIdent Identifier + +hi def link nroffEquation PreProc +hi def link nroffTable PreProc +hi def link nroffPicture PreProc +hi def link nroffRefer PreProc +hi def link nroffGrap PreProc +hi def link nroffGremlin PreProc + +hi def link nroffNumber Number +hi def link nroffBadChar nroffError +hi def link nroffSpaceError nroffError +hi def link nroffError Error + +hi def link nroffPreserve String +hi def link nroffString String +hi def link nroffDefinition String +hi def link nroffDefSpecial Special + + +let b:current_syntax = "nroff" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim600: set fdm=marker fdl=2: diff --git a/runtime/syntax/nsis.vim b/runtime/syntax/nsis.vim new file mode 100644 index 0000000..49fa17a --- /dev/null +++ b/runtime/syntax/nsis.vim @@ -0,0 +1,730 @@ +" Vim syntax file +" Language: NSIS script, for version of NSIS 3.08 and later +" Maintainer: Ken Takata +" URL: https://github.com/k-takata/vim-nsis +" Previous Maintainer: Alex Jakushev +" Last Change: 2022-11-05 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + + +"Pseudo definitions +syn match nsisLine nextgroup=@nsisPseudoStatement skipwhite "^" +syn cluster nsisPseudoStatement contains=nsisFirstComment,nsisLocalLabel,nsisGlobalLabel +syn cluster nsisPseudoStatement add=nsisDefine,nsisPreCondit,nsisMacro,nsisInclude,nsisSystem +syn cluster nsisPseudoStatement add=nsisAttribute,nsisCompiler,nsisVersionInfo,nsisInstruction,nsisStatement + +"COMMENTS (4.1) +syn keyword nsisTodo todo attention note fixme readme +syn region nsisComment start="[;#]" end="$" contains=nsisTodo,nsisLineContinuation,@Spell oneline +syn region nsisComment start=".\@1<=/\*" end="\*/" contains=nsisTodo,@Spell +syn region nsisFirstComment start="/\*" end="\*/" contained contains=nsisTodo,@Spell skipwhite + \ nextgroup=@nsisPseudoStatement + +syn match nsisLineContinuation "\\$" + +"STRINGS (4.1) +syn region nsisString start=/"/ end=/"/ contains=@nsisStringItems,@Spell +syn region nsisString start=/'/ end=/'/ contains=@nsisStringItems,@Spell +syn region nsisString start=/`/ end=/`/ contains=@nsisStringItems,@Spell + +syn cluster nsisStringItems contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisRegistry,nsisLineContinuation + +"NUMBERS (4.1) +syn match nsisNumber "\<[1-9]\d*\>" +syn match nsisNumber "\<0x\x\+\>" +syn match nsisNumber "\<0\o*\>" + +"STRING REPLACEMENT (5.4, 4.9.15.2, 5.3.1) +syn region nsisPreprocSubst start="\${" end="}" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar +syn region nsisPreprocLangStr start="\$(" end=")" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar +syn region nsisPreprocEnvVar start="\$%" end="%" contains=nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar + +"VARIABLES (4.2.2) +syn match nsisUserVar "$\d" +syn match nsisUserVar "$R\d" +syn match nsisSysVar "$INSTDIR" +syn match nsisSysVar "$OUTDIR" +syn match nsisSysVar "$CMDLINE" +syn match nsisSysVar "$LANGUAGE" +"CONSTANTS (4.2.3) +syn match nsisSysVar "$PROGRAMFILES" +syn match nsisSysVar "$PROGRAMFILES32" +syn match nsisSysVar "$PROGRAMFILES64" +syn match nsisSysVar "$COMMONFILES" +syn match nsisSysVar "$COMMONFILES32" +syn match nsisSysVar "$COMMONFILES64" +syn match nsisSysVar "$DESKTOP" +syn match nsisSysVar "$EXEDIR" +syn match nsisSysVar "$EXEFILE" +syn match nsisSysVar "$EXEPATH" +syn match nsisSysVar "${NSISDIR}" +syn match nsisSysVar "$WINDIR" +syn match nsisSysVar "$SYSDIR" +syn match nsisSysVar "$TEMP" +syn match nsisSysVar "$STARTMENU" +syn match nsisSysVar "$SMPROGRAMS" +syn match nsisSysVar "$SMSTARTUP" +syn match nsisSysVar "$QUICKLAUNCH" +syn match nsisSysVar "$DOCUMENTS" +syn match nsisSysVar "$SENDTO" +syn match nsisSysVar "$RECENT" +syn match nsisSysVar "$FAVORITES" +syn match nsisSysVar "$MUSIC" +syn match nsisSysVar "$PICTURES" +syn match nsisSysVar "$VIDEOS" +syn match nsisSysVar "$NETHOOD" +syn match nsisSysVar "$FONTS" +syn match nsisSysVar "$TEMPLATES" +syn match nsisSysVar "$APPDATA" +syn match nsisSysVar "$LOCALAPPDATA" +syn match nsisSysVar "$PRINTHOOD" +syn match nsisSysVar "$INTERNET_CACHE" +syn match nsisSysVar "$COOKIES" +syn match nsisSysVar "$HISTORY" +syn match nsisSysVar "$PROFILE" +syn match nsisSysVar "$ADMINTOOLS" +syn match nsisSysVar "$RESOURCES" +syn match nsisSysVar "$RESOURCES_LOCALIZED" +syn match nsisSysVar "$CDBURN_AREA" +syn match nsisSysVar "$HWNDPARENT" +syn match nsisSysVar "$PLUGINSDIR" +syn match nsisSysVar "$\%(USERTEMPLATES\|USERSTARTMENU\|USERSMPROGRAMS\|USERDESKTOP\)" +syn match nsisSysVar "$\%(COMMONTEMPLATES\|COMMONSTARTMENU\|COMMONSMPROGRAMS\|COMMONDESKTOP\|COMMONPROGRAMDATA\)" +syn match nsisSysVar "$\\r" +syn match nsisSysVar "$\\n" +syn match nsisSysVar "$\\t" +syn match nsisSysVar "$\$" +syn match nsisSysVar "$\\["'`]" + +"LABELS (4.3) +syn match nsisLocalLabel contained "[^-+!$0-9;"'#. \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" +syn match nsisGlobalLabel contained "\.[^-+!$0-9;"'# \t/*][^ \t:;#]*:\ze\%($\|[ \t;#]\|\/\*\)" + +"CONSTANTS +syn keyword nsisBoolean contained true false +syn keyword nsisOnOff contained on off + +syn keyword nsisRegistry contained HKCR HKLM HKCU HKU HKCC HKDD HKPD SHCTX +syn keyword nsisRegistry contained HKCR32 HKCR64 HKCU32 HKCU64 HKLM32 HKLM64 +syn keyword nsisRegistry contained HKEY_CLASSES_ROOT HKEY_LOCAL_MACHINE HKEY_CURRENT_USER HKEY_USERS +syn keyword nsisRegistry contained HKEY_CLASSES_ROOT32 HKEY_CLASSES_ROOT64 +syn keyword nsisRegistry contained HKEY_CURRENT_USER32 HKEY_CURRENT_USER64 +syn keyword nsisRegistry contained HKEY_LOCAL_MACHINE32 HKEY_LOCAL_MACHINE64 +syn keyword nsisRegistry contained HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_PERFORMANCE_DATA +syn keyword nsisRegistry contained SHELL_CONTEXT + + +" common options +syn cluster nsisAnyOpt contains=nsisComment,nsisLineContinuation,nsisPreprocSubst,nsisPreprocLangStr,nsisPreprocEnvVar,nsisUserVar,nsisSysVar,nsisString,nsisNumber +syn region nsisBooleanOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBoolean +syn region nsisOnOffOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisOnOff +syn region nsisLangOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLangKwd +syn match nsisLangKwd contained "/LANG\>" +syn region nsisFontOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFontKwd +syn match nsisFontKwd contained "/\%(ITALIC\|UNDERLINE\|STRIKE\)\>" + +"STATEMENTS - pages (4.5) +syn keyword nsisStatement contained Page UninstPage nextgroup=nsisPageOpt skipwhite +syn region nsisPageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageKwd +syn keyword nsisPageKwd contained custom license components directory instfiles uninstConfirm +syn match nsisPageKwd contained "/ENABLECANCEL\>" + +syn keyword nsisStatement contained PageEx nextgroup=nsisPageExOpt skipwhite +syn region nsisPageExOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPageExKwd +syn match nsisPageExKwd contained "\<\%(un\.\)\?\%(custom\|license\|components\|directory\|instfiles\|uninstConfirm\)\>" + +syn keyword nsisStatement contained PageExEnd PageCallbacks + +"STATEMENTS - sections (4.6.1) +syn keyword nsisStatement contained AddSize SectionEnd SectionGroupEnd + +syn keyword nsisStatement contained Section nextgroup=nsisSectionOpt skipwhite +syn region nsisSectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionKwd +syn match nsisSectionKwd contained "/o\>" + +syn keyword nsisStatement contained SectionInstType SectionIn nextgroup=nsisSectionInOpt skipwhite +syn region nsisSectionInOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionInKwd +syn keyword nsisSectionInKwd contained RO + +syn keyword nsisStatement contained SectionGroup nextgroup=nsisSectionGroupOpt skipwhite +syn region nsisSectionGroupOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSectionGroupKwd +syn match nsisSectionGroupKwd contained "/e\>" + +"STATEMENTS - functions (4.7.1) +syn keyword nsisStatement contained Function FunctionEnd + + +"STATEMENTS - LogicLib.nsh +syn match nsisStatement "${If}" +syn match nsisStatement "${IfNot}" +syn match nsisStatement "${Unless}" +syn match nsisStatement "${ElseIf}" +syn match nsisStatement "${ElseIfNot}" +syn match nsisStatement "${ElseUnless}" +syn match nsisStatement "${Else}" +syn match nsisStatement "${EndIf}" +syn match nsisStatement "${EndUnless}" +syn match nsisStatement "${AndIf}" +syn match nsisStatement "${AndIfNot}" +syn match nsisStatement "${AndUnless}" +syn match nsisStatement "${OrIf}" +syn match nsisStatement "${OrIfNot}" +syn match nsisStatement "${OrUnless}" +syn match nsisStatement "${IfThen}" +syn match nsisStatement "${IfNotThen}" +syn match nsisStatement "${||\?}" nextgroup=@nsisPseudoStatement skipwhite +syn match nsisStatement "${IfCmd}" nextgroup=@nsisPseudoStatement skipwhite +syn match nsisStatement "${Select}" +syn match nsisStatement "${Case}" +syn match nsisStatement "${Case[2-5]}" +syn match nsisStatement "${CaseElse}" +syn match nsisStatement "${Default}" +syn match nsisStatement "${EndSelect}" +syn match nsisStatement "${Switch}" +syn match nsisStatement "${EndSwitch}" +syn match nsisStatement "${Break}" +syn match nsisStatement "${Do}" +syn match nsisStatement "${DoWhile}" +syn match nsisStatement "${DoUntil}" +syn match nsisStatement "${ExitDo}" +syn match nsisStatement "${Continue}" +syn match nsisStatement "${Loop}" +syn match nsisStatement "${LoopWhile}" +syn match nsisStatement "${LoopUntil}" +syn match nsisStatement "${For}" +syn match nsisStatement "${ForEach}" +syn match nsisStatement "${ExitFor}" +syn match nsisStatement "${Next}" +"STATEMENTS - Memento.nsh +syn match nsisStatement "${MementoSection}" +syn match nsisStatement "${MementoSectionEnd}" + + +"USER VARIABLES (4.2.1) +syn keyword nsisInstruction contained Var nextgroup=nsisVarOpt skipwhite +syn region nsisVarOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVarKwd +syn match nsisVarKwd contained "/GLOBAL\>" + +"INSTALLER ATTRIBUTES (4.8.1) +syn keyword nsisAttribute contained Caption ChangeUI CheckBitmap CompletedText ComponentText +syn keyword nsisAttribute contained DetailsButtonText DirText DirVar +syn keyword nsisAttribute contained FileErrorText Icon InstallButtonText +syn keyword nsisAttribute contained InstallDir InstProgressFlags +syn keyword nsisAttribute contained LicenseData LicenseText +syn keyword nsisAttribute contained MiscButtonText Name OutFile +syn keyword nsisAttribute contained SpaceTexts SubCaption UninstallButtonText UninstallCaption +syn keyword nsisAttribute contained UninstallIcon UninstallSubCaption UninstallText + +syn keyword nsisAttribute contained AddBrandingImage nextgroup=nsisAddBrandingImageOpt skipwhite +syn region nsisAddBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddBrandingImageKwd +syn keyword nsisAddBrandingImageKwd contained left right top bottom width height + +syn keyword nsisAttribute contained nextgroup=nsisBooleanOpt skipwhite + \ AllowRootDirInstall AutoCloseWindow + +syn keyword nsisAttribute contained BGFont nextgroup=nsisFontOpt skipwhite + +syn keyword nsisAttribute contained BGGradient nextgroup=nsisBGGradientOpt skipwhite +syn region nsisBGGradientOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBGGradientKwd +syn keyword nsisBGGradientKwd contained off + +syn keyword nsisAttribute contained BrandingText nextgroup=nsisBrandingTextOpt skipwhite +syn region nsisBrandingTextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisBrandingTextKwd +syn match nsisBrandingTextKwd contained "/TRIM\%(LEFT\|RIGHT\|CENTER\)\>" + +syn keyword nsisAttribute contained CRCCheck nextgroup=nsisCRCCheckOpt skipwhite +syn region nsisCRCCheckOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCRCCheckKwd +syn keyword nsisCRCCheckKwd contained on off force + +syn keyword nsisAttribute contained DirVerify nextgroup=nsisDirVerifyOpt skipwhite +syn region nsisDirVerifyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDirVerifyKwd +syn keyword nsisDirVerifyKwd contained auto leave + +syn keyword nsisAttribute contained InstallColors nextgroup=nsisInstallColorsOpt skipwhite +syn region nsisInstallColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstallColorsKwd +syn match nsisInstallColorsKwd contained "/windows\>" + +syn keyword nsisAttribute contained InstallDirRegKey nextgroup=nsisRegistryOpt skipwhite + +syn keyword nsisAttribute contained InstType nextgroup=nsisInstTypeOpt skipwhite +syn region nsisInstTypeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisInstTypeKwd +syn match nsisInstTypeKwd contained "/\%(NOCUSTOM\|CUSTOMSTRING\|COMPONENTSONLYONCUSTOM\)\>" + +syn keyword nsisAttribute contained LicenseBkColor nextgroup=nsisLicenseBkColorOpt skipwhite +syn region nsisLicenseBkColorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseBkColorKwd +syn match nsisLicenseBkColorKwd contained "/\%(gray\|windows\)\>" + +syn keyword nsisAttribute contained LicenseForceSelection nextgroup=nsisLicenseForceSelectionOpt skipwhite +syn region nsisLicenseForceSelectionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLicenseForceSelectionKwd +syn keyword nsisLicenseForceSelectionKwd contained checkbox radiobuttons off + +syn keyword nsisAttribute contained ManifestDPIAware nextgroup=nsisManifestDPIAwareOpt skipwhite +syn region nsisManifestDPIAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestDPIAwareKwd +syn keyword nsisManifestDPIAwareKwd contained notset true false + +syn keyword nsisAttribute contained ManifestLongPathAware nextgroup=nsisManifestLongPathAwareOpt skipwhite +syn region nsisManifestLongPathAwareOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestLongPathAwareKwd +syn match nsisManifestLongPathAwareKwd contained "\<\%(notset\|true\|false\)\>" + +syn keyword nsisAttribute contained ManifestSupportedOS nextgroup=nsisManifestSupportedOSOpt skipwhite +syn region nsisManifestSupportedOSOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisManifestSupportedOSKwd +syn match nsisManifestSupportedOSKwd contained "\<\%(none\|all\|WinVista\|Win7\|Win8\|Win8\.1\|Win10\)\>" + +syn keyword nsisAttribute contained PEAddResource nextgroup=nsisPEAddResourceOpt skipwhite +syn region nsisPEAddResourceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPEAddResourceKwd +syn match nsisPEAddResourceKwd contained "/\%(OVERWRITE\|REPLACE\)\>" + +syn keyword nsisAttribute contained PERemoveResource nextgroup=nsisPERemoveResourceOpt skipwhite +syn region nsisPERemoveResourceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPERemoveResourceKwd +syn match nsisPERemoveResourceKwd contained "/NOERRORS\>" + +syn keyword nsisAttribute contained RequestExecutionLevel nextgroup=nsisRequestExecutionLevelOpt skipwhite +syn region nsisRequestExecutionLevelOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRequestExecutionLevelKwd +syn keyword nsisRequestExecutionLevelKwd contained none user highest admin + +syn keyword nsisAttribute contained SetFont nextgroup=nsisLangOpt skipwhite + +syn keyword nsisAttribute contained nextgroup=nsisShowInstDetailsOpt skipwhite + \ ShowInstDetails ShowUninstDetails +syn region nsisShowInstDetailsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisShowInstDetailsKwd +syn keyword nsisShowInstDetailsKwd contained hide show nevershow + +syn keyword nsisAttribute contained SilentInstall nextgroup=nsisSilentInstallOpt skipwhite +syn region nsisSilentInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentInstallKwd +syn keyword nsisSilentInstallKwd contained normal silent silentlog + +syn keyword nsisAttribute contained SilentUnInstall nextgroup=nsisSilentUnInstallOpt skipwhite +syn region nsisSilentUnInstallOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSilentUnInstallKwd +syn keyword nsisSilentUnInstallKwd contained normal silent + +syn keyword nsisAttribute contained nextgroup=nsisOnOffOpt skipwhite + \ WindowIcon XPStyle + +"COMPILER FLAGS (4.8.2) +syn keyword nsisCompiler contained nextgroup=nsisOnOffOpt skipwhite + \ AllowSkipFiles SetDatablockOptimize SetDateSave + +syn keyword nsisCompiler contained FileBufSize SetCompressorDictSize + +syn keyword nsisCompiler contained SetCompress nextgroup=nsisSetCompressOpt skipwhite +syn region nsisSetCompressOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressKwd +syn keyword nsisSetCompressKwd contained auto force off + +syn keyword nsisCompiler contained SetCompressor nextgroup=nsisSetCompressorOpt skipwhite +syn region nsisSetCompressorOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCompressorKwd +syn keyword nsisSetCompressorKwd contained zlib bzip2 lzma +syn match nsisSetCompressorKwd contained "/\%(SOLID\|FINAL\)" + +syn keyword nsisCompiler contained SetOverwrite nextgroup=nsisSetOverwriteOpt skipwhite +syn region nsisSetOverwriteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetOverwriteKwd +syn keyword nsisSetOverwriteKwd contained on off try ifnewer ifdiff lastused + +syn keyword nsisCompiler contained Unicode nextgroup=nsisBooleanOpt skipwhite + +"VERSION INFORMATION (4.8.3) +syn keyword nsisVersionInfo contained VIAddVersionKey nextgroup=nsisLangOpt skipwhite + +syn keyword nsisVersionInfo contained VIProductVersion VIFileVersion + + +"FUNCTIONS - basic (4.9.1) +syn keyword nsisInstruction contained Delete Rename nextgroup=nsisDeleteOpt skipwhite +syn region nsisDeleteOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteKwd +syn match nsisDeleteKwd contained "/REBOOTOK\>" + +syn keyword nsisInstruction contained Exec ExecWait SetOutPath + +syn keyword nsisInstruction contained ExecShell ExecShellWait nextgroup=nsisExecShellOpt skipwhite +syn region nsisExecShellOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisExecShellKwd +syn keyword nsisExecShellKwd contained SW_SHOWDEFAULT SW_SHOWNORMAL SW_SHOWMAXIMIZED SW_SHOWMINIMIZED SW_HIDE +syn match nsisExecShellKwd contained "/INVOKEIDLIST\>" + +syn keyword nsisInstruction contained File nextgroup=nsisFileOpt skipwhite +syn region nsisFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileKwd +syn match nsisFileKwd contained "/\%(nonfatal\|[arx]\|oname\)\>" + +syn keyword nsisInstruction contained ReserveFile nextgroup=nsisReserveFileOpt skipwhite +syn region nsisReserveFileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisReserveFileKwd +syn match nsisReserveFileKwd contained "/\%(nonfatal\|[rx]\|plugin\)\>" + +syn keyword nsisInstruction contained RMDir nextgroup=nsisRMDirOpt skipwhite +syn region nsisRMDirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRMDirKwd +syn match nsisRMDirKwd contained "/\%(REBOOTOK\|r\)\>" + + +"FUNCTIONS - registry & ini (4.9.2) +syn keyword nsisInstruction contained DeleteINISec DeleteINIStr FlushINI ReadINIStr WriteINIStr +syn keyword nsisInstruction contained ExpandEnvStrings ReadEnvStr + +syn keyword nsisInstruction contained DeleteRegKey nextgroup=nsisDeleteRegKeyOpt skipwhite +syn region nsisDeleteRegKeyOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDeleteRegKeyKwd,nsisRegistry +syn match nsisDeleteRegKeyKwd contained "/\%(ifempty\|ifnosubkeys\|ifnovalues\)\>" + +syn keyword nsisInstruction contained nextgroup=nsisRegistryOpt skipwhite + \ DeleteRegValue EnumRegKey EnumRegValue ReadRegDWORD ReadRegStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr +syn region nsisRegistryOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry + +syn keyword nsisInstruction contained WriteRegMultiStr nextgroup=nsisWriteRegMultiStrOpt skipwhite +syn region nsisWriteRegMultiStrOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisRegistry,nsisWriteRegMultiStrKwd +syn match nsisWriteRegMultiStrKwd contained "/REGEDIT5\>" + +syn keyword nsisInstruction contained SetRegView nextgroup=nsisSetRegViewOpt skipwhite +syn region nsisSetRegViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetRegViewKwd +syn keyword nsisSetRegViewKwd contained default lastused + +"FUNCTIONS - general purpose (4.9.3) +syn keyword nsisInstruction contained CallInstDLL CreateDirectory GetWinVer +syn keyword nsisInstruction contained GetFileTime GetFileTimeLocal GetKnownFolderPath +syn keyword nsisInstruction contained GetTempFileName SearchPath RegDLL UnRegDLL + +syn keyword nsisInstruction contained CopyFiles nextgroup=nsisCopyFilesOpt skipwhite +syn region nsisCopyFilesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCopyFilesKwd +syn match nsisCopyFilesKwd contained "/\%(SILENT\|FILESONLY\)\>" + +syn keyword nsisInstruction contained CreateShortcut nextgroup=nsisCreateShortcutOpt skipwhite +syn region nsisCreateShortcutOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisCreateShortcutKwd +syn match nsisCreateShortcutKwd contained "/NoWorkingDir\>" + +syn keyword nsisInstruction contained GetWinVer nextgroup=nsisGetWinVerOpt skipwhite +syn region nsisGetWinVerOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetWinVerKwd +syn keyword nsisGetWinVerKwd contained Major Minor Build ServicePack + +syn keyword nsisInstruction contained GetDLLVersion GetDLLVersionLocal nextgroup=nsisGetDLLVersionOpt skipwhite +syn region nsisGetDLLVersionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetDLLVersionKwd +syn match nsisGetDLLVersionKwd contained "/ProductVersion\>" + +syn keyword nsisInstruction contained GetFullPathName nextgroup=nsisGetFullPathNameOpt skipwhite +syn region nsisGetFullPathNameOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisGetFullPathNameKwd +syn match nsisGetFullPathNameKwd contained "/SHORT\>" + +syn keyword nsisInstruction contained SetFileAttributes nextgroup=nsisSetFileAttributesOpt skipwhite +syn region nsisSetFileAttributesOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileAttrib +syn keyword nsisFileAttrib contained NORMAL ARCHIVE HIDDEN OFFLINE READONLY SYSTEM TEMPORARY +syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN +syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM +syn keyword nsisFileAttrib contained FILE_ATTRIBUTE_TEMPORARY + +"FUNCTIONS - Flow Control (4.9.4) +syn keyword nsisInstruction contained Abort Call ClearErrors GetCurrentAddress +syn keyword nsisInstruction contained GetFunctionAddress GetLabelAddress Goto +syn keyword nsisInstruction contained IfAbort IfErrors IfFileExists IfRebootFlag IfSilent +syn keyword nsisInstruction contained IfShellVarContextAll IfRtlLanguage +syn keyword nsisInstruction contained IntCmp IntCmpU Int64Cmp Int64CmpU IntPtrCmp IntPtrCmpU +syn keyword nsisInstruction contained Return Quit SetErrors StrCmp StrCmpS + +syn keyword nsisInstruction contained MessageBox nextgroup=nsisMessageBoxOpt skipwhite +syn region nsisMessageBoxOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisMessageBox +syn keyword nsisMessageBox contained MB_OK MB_OKCANCEL MB_ABORTRETRYIGNORE MB_RETRYCANCEL MB_YESNO MB_YESNOCANCEL +syn keyword nsisMessageBox contained MB_ICONEXCLAMATION MB_ICONINFORMATION MB_ICONQUESTION MB_ICONSTOP MB_USERICON +syn keyword nsisMessageBox contained MB_TOPMOST MB_SETFOREGROUND MB_RIGHT MB_RTLREADING +syn keyword nsisMessageBox contained MB_DEFBUTTON1 MB_DEFBUTTON2 MB_DEFBUTTON3 MB_DEFBUTTON4 +syn keyword nsisMessageBox contained IDABORT IDCANCEL IDIGNORE IDNO IDOK IDRETRY IDYES +syn match nsisMessageBox contained "/SD\>" + +"FUNCTIONS - File and directory i/o instructions (4.9.5) +syn keyword nsisInstruction contained FileClose FileOpen FileRead FileReadUTF16LE +syn keyword nsisInstruction contained FileReadByte FileReadWord FileSeek FileWrite +syn keyword nsisInstruction contained FileWriteByte FileWriteWord +syn keyword nsisInstruction contained FindClose FindFirst FindNext + +syn keyword nsisInstruction contained FileWriteUTF16LE nextgroup=nsisFileWriteUTF16LEOpt skipwhite +syn region nsisFileWriteUTF16LEOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisFileWriteUTF16LEKwd +syn match nsisFileWriteUTF16LEKwd contained "/BOM\>" + +"FUNCTIONS - Uninstaller instructions (4.9.6) +syn keyword nsisInstruction contained WriteUninstaller + +"FUNCTIONS - Misc instructions (4.9.7) +syn keyword nsisInstruction contained GetErrorLevel GetInstDirError InitPluginsDir Nop +syn keyword nsisInstruction contained SetErrorLevel Sleep + +syn keyword nsisInstruction contained SetShellVarContext nextgroup=nsisSetShellVarContextOpt skipwhite +syn region nsisSetShellVarContextOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetShellVarContextKwd +syn keyword nsisSetShellVarContextKwd contained current all + +"FUNCTIONS - String manipulation support (4.9.8) +syn keyword nsisInstruction contained StrCpy StrLen + +"FUNCTIONS - Stack support (4.9.9) +syn keyword nsisInstruction contained Exch Push Pop + +"FUNCTIONS - Integer manipulation support (4.9.10) +syn keyword nsisInstruction contained IntFmt Int64Fmt IntOp IntPtrOp + +"FUNCTIONS - Rebooting support (4.9.11) +syn keyword nsisInstruction contained Reboot SetRebootFlag + +"FUNCTIONS - Install logging instructions (4.9.12) +syn keyword nsisInstruction contained LogSet nextgroup=nsisOnOffOpt skipwhite +syn keyword nsisInstruction contained LogText + +"FUNCTIONS - Section management instructions (4.9.13) +syn keyword nsisInstruction contained SectionSetFlags SectionGetFlags SectionSetText +syn keyword nsisInstruction contained SectionGetText SectionSetInstTypes SectionGetInstTypes +syn keyword nsisInstruction contained SectionSetSize SectionGetSize SetCurInstType GetCurInstType +syn keyword nsisInstruction contained InstTypeSetText InstTypeGetText + +"FUNCTIONS - User Interface Instructions (4.9.14) +syn keyword nsisInstruction contained BringToFront DetailPrint EnableWindow +syn keyword nsisInstruction contained FindWindow GetDlgItem HideWindow IsWindow +syn keyword nsisInstruction contained ShowWindow + +syn keyword nsisInstruction contained CreateFont nextgroup=nsisFontOpt skipwhite + +syn keyword nsisInstruction contained nextgroup=nsisBooleanOpt skipwhite + \ LockWindow SetAutoClose + +syn keyword nsisInstruction contained LoadAndSetImage nextgroup=nsisLoadAndSetImageOpt skipwhite +syn region nsisLoadAndSetImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisLoadAndSetImageKwd +syn match nsisLoadAndSetImageKwd contained "/\%(EXERESOURCE\|STRINGID\|RESIZETOFIT\%(WIDTH\|HEIGHT\)\)\>" + +syn keyword nsisInstruction contained SendMessage nextgroup=nsisSendMessageOpt skipwhite +syn region nsisSendMessageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSendMessageKwd +syn match nsisSendMessageKwd contained "/TIMEOUT\>" + +syn keyword nsisInstruction contained SetBrandingImage nextgroup=nsisSetBrandingImageOpt skipwhite +syn region nsisSetBrandingImageOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetBrandingImageKwd +syn match nsisSetBrandingImageKwd contained "/\%(IMGID\|RESIZETOFIT\)\>" + +syn keyword nsisInstruction contained SetDetailsView nextgroup=nsisSetDetailsViewOpt skipwhite +syn region nsisSetDetailsViewOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsViewKwd +syn keyword nsisSetDetailsViewKwd contained show hide + +syn keyword nsisInstruction contained SetDetailsPrint nextgroup=nsisSetDetailsPrintOpt skipwhite +syn region nsisSetDetailsPrintOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetDetailsPrintKwd +syn keyword nsisSetDetailsPrintKwd contained none listonly textonly both lastused + +syn keyword nsisInstruction contained SetCtlColors nextgroup=nsisSetCtlColorsOpt skipwhite +syn region nsisSetCtlColorsOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetCtlColorsKwd +syn match nsisSetCtlColorsKwd contained "/BRANDING\>" + +syn keyword nsisInstruction contained SetSilent nextgroup=nsisSetSilentOpt skipwhite +syn region nsisSetSilentOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSetSilentKwd +syn keyword nsisSetSilentKwd contained silent normal + + +"FUNCTIONS - Multiple Languages Instructions (4.9.15) +syn keyword nsisInstruction contained LoadLanguageFile LangString LicenseLangString + + +"SPECIAL FUNCTIONS - install (4.7.2.1) +syn match nsisCallback "\.onGUIInit" +syn match nsisCallback "\.onInit" +syn match nsisCallback "\.onInstFailed" +syn match nsisCallback "\.onInstSuccess" +syn match nsisCallback "\.onGUIEnd" +syn match nsisCallback "\.onMouseOverSection" +syn match nsisCallback "\.onRebootFailed" +syn match nsisCallback "\.onSelChange" +syn match nsisCallback "\.onUserAbort" +syn match nsisCallback "\.onVerifyInstDir" + +"SPECIAL FUNCTIONS - uninstall (4.7.2.2) +syn match nsisCallback "un\.onGUIInit" +syn match nsisCallback "un\.onInit" +syn match nsisCallback "un\.onUninstFailed" +syn match nsisCallback "un\.onUninstSuccess" +syn match nsisCallback "un\.onGUIEnd" +syn match nsisCallback "un\.onRebootFailed" +syn match nsisCallback "un\.onSelChange" +syn match nsisCallback "un\.onUserAbort" + + +"COMPILER UTILITY (5.1) +syn match nsisInclude contained "!include\>" nextgroup=nsisIncludeOpt skipwhite +syn region nsisIncludeOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIncludeKwd +syn match nsisIncludeKwd contained "/\%(NONFATAL\|CHARSET\)\>" + +syn match nsisSystem contained "!addincludedir\>" + +syn match nsisSystem contained "!addplugindir\>" nextgroup=nsisAddplugindirOpt skipwhite +syn region nsisAddplugindirOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAddplugindirKwd +syn match nsisAddplugindirKwd contained "/\%(x86-ansi\|x86-unicode\)\>" + +syn match nsisSystem contained "!appendfile\>" nextgroup=nsisAppendfileOpt skipwhite +syn region nsisAppendfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisAppendfileKwd +syn match nsisAppendfileKwd contained "/\%(CHARSET\|RawNL\)\>" + +syn match nsisSystem contained "!cd\>" + +syn match nsisSystem contained "!delfile\>" nextgroup=nsisDelfileOpt skipwhite +syn region nsisDelfileOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDelfileKwd +syn match nsisDelfileKwd contained "/nonfatal\>" + +syn match nsisSystem contained "!echo\>" +syn match nsisSystem contained "!error\>" +syn match nsisSystem contained "!execute\>" +syn match nsisSystem contained "!makensis\>" +syn match nsisSystem contained "!packhdr\>" +syn match nsisSystem contained "!finalize\>" +syn match nsisSystem contained "!uninstfinalize\>" +syn match nsisSystem contained "!system\>" +syn match nsisSystem contained "!tempfile\>" + +" Add 'P' to avoid conflicts with nsisGetDLLVersionOpt. ('P' for preprocessor.) +syn match nsisSystem contained "!getdllversion\>" nextgroup=nsisPGetdllversionOpt skipwhite +syn region nsisPGetdllversionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPGetdllversionKwd +syn match nsisPGetdllversionKwd contained "/\%(noerrors\|packed\|productversion\)\>" + +syn match nsisSystem contained "!gettlbversion\>" nextgroup=nsisPGettlbversionOpt skipwhite +syn region nsisPGettlbversionOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPGettlbversionKwd +syn match nsisPGettlbversionKwd contained "/\%(noerrors\|packed\)\>" + +syn match nsisSystem contained "!warning\>" + +syn match nsisSystem contained "!pragma\>" nextgroup=nsisPragmaOpt skipwhite +syn region nsisPragmaOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisPragmaKwd +syn keyword nsisPragmaKwd contained enable disable default push pop + +syn match nsisSystem contained "!verbose\>" nextgroup=nsisVerboseOpt skipwhite +syn region nsisVerboseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisVerboseKwd +syn keyword nsisVerboseKwd contained push pop + +"PREPROCESSOR (5.4) +syn match nsisDefine contained "!define\>" nextgroup=nsisDefineOpt skipwhite +syn region nsisDefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisDefineKwd +syn match nsisDefineKwd contained "/\%(ifndef\|redef\|date\|utcdate\|file\|intfmt\|math\)\>" + +syn match nsisDefine contained "!undef\>" nextgroup=nsisUndefineOpt skipwhite +syn region nsisUndefineOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisUndefineKwd +syn match nsisUndefineKwd contained "/noerrors\>" + +syn match nsisPreCondit contained "!ifdef\>" +syn match nsisPreCondit contained "!ifndef\>" + +syn match nsisPreCondit contained "!if\>" nextgroup=nsisIfOpt skipwhite +syn region nsisIfOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisIfKwd +syn match nsisIfKwd contained "/FileExists\>" + +syn match nsisPreCondit contained "!ifmacrodef\>" +syn match nsisPreCondit contained "!ifmacrondef\>" +syn match nsisPreCondit contained "!else\>" +syn match nsisPreCondit contained "!endif\>" +syn match nsisMacro contained "!insertmacro\>" +syn match nsisMacro contained "!macro\>" +syn match nsisMacro contained "!macroend\>" +syn match nsisMacro contained "!macroundef\>" + +syn match nsisMacro contained "!searchparse\>" nextgroup=nsisSearchparseOpt skipwhite +syn region nsisSearchparseOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchparseKwd +syn match nsisSearchparseKwd contained "/\%(ignorecase\|noerrors\|file\)\>" + +syn match nsisMacro contained "!searchreplace\>" nextgroup=nsisSearchreplaceOpt skipwhite +syn region nsisSearchreplaceOpt contained start="" end="$" transparent keepend contains=@nsisAnyOpt,nsisSearchreplaceKwd +syn match nsisSearchreplaceKwd contained "/ignorecase\>" + + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link nsisInstruction Function +hi def link nsisComment Comment +hi def link nsisFirstComment Comment +hi def link nsisLocalLabel Label +hi def link nsisGlobalLabel Label +hi def link nsisStatement Statement +hi def link nsisString String +hi def link nsisBoolean Boolean +hi def link nsisOnOff Boolean +hi def link nsisFontKwd Constant +hi def link nsisLangKwd Constant +hi def link nsisPageKwd Constant +hi def link nsisPageExKwd Constant +hi def link nsisSectionKwd Constant +hi def link nsisSectionInKwd Constant +hi def link nsisSectionGroupKwd Constant +hi def link nsisVarKwd Constant +hi def link nsisAddBrandingImageKwd Constant +hi def link nsisBGGradientKwd Constant +hi def link nsisBrandingTextKwd Constant +hi def link nsisCRCCheckKwd Constant +hi def link nsisDirVerifyKwd Constant +hi def link nsisInstallColorsKwd Constant +hi def link nsisInstTypeKwd Constant +hi def link nsisLicenseBkColorKwd Constant +hi def link nsisLicenseForceSelectionKwd Constant +hi def link nsisManifestDPIAwareKwd Constant +hi def link nsisManifestLongPathAwareKwd Constant +hi def link nsisManifestSupportedOSKwd Constant +hi def link nsisPEAddResourceKwd Constant +hi def link nsisPERemoveResourceKwd Constant +hi def link nsisRequestExecutionLevelKwd Constant +hi def link nsisShowInstDetailsKwd Constant +hi def link nsisSilentInstallKwd Constant +hi def link nsisSilentUnInstallKwd Constant +hi def link nsisSetCompressKwd Constant +hi def link nsisSetCompressorKwd Constant +hi def link nsisSetOverwriteKwd Constant +hi def link nsisDeleteKwd Constant +hi def link nsisExecShellKwd Constant +hi def link nsisFileKwd Constant +hi def link nsisReserveFileKwd Constant +hi def link nsisRMDirKwd Constant +hi def link nsisDeleteRegKeyKwd Constant +hi def link nsisWriteRegMultiStrKwd Constant +hi def link nsisSetRegViewKwd Constant +hi def link nsisCopyFilesKwd Constant +hi def link nsisCreateShortcutKwd Constant +hi def link nsisGetWinVerKwd Constant +hi def link nsisGetDLLVersionKwd Constant +hi def link nsisGetFullPathNameKwd Constant +hi def link nsisFileAttrib Constant +hi def link nsisMessageBox Constant +hi def link nsisFileWriteUTF16LEKwd Constant +hi def link nsisSetShellVarContextKwd Constant +hi def link nsisLoadAndSetImageKwd Constant +hi def link nsisSendMessageKwd Constant +hi def link nsisSetBrandingImageKwd Constant +hi def link nsisSetDetailsViewKwd Constant +hi def link nsisSetDetailsPrintKwd Constant +hi def link nsisSetCtlColorsKwd Constant +hi def link nsisSetSilentKwd Constant +hi def link nsisRegistry Identifier +hi def link nsisNumber Number +hi def link nsisError Error +hi def link nsisUserVar Identifier +hi def link nsisSysVar Identifier +hi def link nsisAttribute Type +hi def link nsisCompiler Type +hi def link nsisVersionInfo Type +hi def link nsisTodo Todo +hi def link nsisCallback Identifier +" preprocessor commands +hi def link nsisPreprocSubst PreProc +hi def link nsisPreprocLangStr PreProc +hi def link nsisPreprocEnvVar PreProc +hi def link nsisDefine Define +hi def link nsisMacro Macro +hi def link nsisPreCondit PreCondit +hi def link nsisInclude Include +hi def link nsisSystem PreProc +hi def link nsisLineContinuation Special +hi def link nsisIncludeKwd Constant +hi def link nsisAddplugindirKwd Constant +hi def link nsisAppendfileKwd Constant +hi def link nsisDelfileKwd Constant +hi def link nsisPGetdllversionKwd Constant +hi def link nsisPGettlbversionKwd Constant +hi def link nsisPragmaKwd Constant +hi def link nsisVerboseKwd Constant +hi def link nsisDefineKwd Constant +hi def link nsisUndefineKwd Constant +hi def link nsisIfKwd Constant +hi def link nsisSearchparseKwd Constant +hi def link nsisSearchreplaceKwd Constant + + +let b:current_syntax = "nsis" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/obj.vim b/runtime/syntax/obj.vim new file mode 100644 index 0000000..df4dbca --- /dev/null +++ b/runtime/syntax/obj.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: 3D wavefront's obj file +" Maintainer: Vincent Berthoux +" File Types: .obj (used in 3D) +" Last Change: 2010 May 18 +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match objError "^\a\+" + +syn match objKeywords "^cstype\s" +syn match objKeywords "^ctech\s" +syn match objKeywords "^stech\s" +syn match objKeywords "^deg\s" +syn match objKeywords "^curv\(2\?\)\s" +syn match objKeywords "^parm\s" +syn match objKeywords "^surf\s" +syn match objKeywords "^end\s" +syn match objKeywords "^bzp\s" +syn match objKeywords "^bsp\s" +syn match objKeywords "^res\s" +syn match objKeywords "^cdc\s" +syn match objKeywords "^con\s" + +syn match objKeywords "^shadow_obj\s" +syn match objKeywords "^trace_obj\s" +syn match objKeywords "^usemap\s" +syn match objKeywords "^lod\s" +syn match objKeywords "^maplib\s" +syn match objKeywords "^d_interp\s" +syn match objKeywords "^c_interp\s" +syn match objKeywords "^bevel\s" +syn match objKeywords "^mg\s" +syn match objKeywords "^s\s" +syn match objKeywords "^con\s" +syn match objKeywords "^trim\s" +syn match objKeywords "^hole\s" +syn match objKeywords "^scrv\s" +syn match objKeywords "^sp\s" +syn match objKeywords "^step\s" +syn match objKeywords "^bmat\s" +syn match objKeywords "^csh\s" +syn match objKeywords "^call\s" + +syn match objComment "^#.*" +syn match objVertex "^v\s" +syn match objFace "^f\s" +syn match objVertice "^vt\s" +syn match objNormale "^vn\s" +syn match objGroup "^g\s.*" +syn match objMaterial "^usemtl\s.*" +syn match objInclude "^mtllib\s.*" + +syn match objFloat "-\?\d\+\.\d\+\(e\(+\|-\)\d\+\)\?" +syn match objInt "\d\+" +syn match objIndex "\d\+\/\d*\/\d*" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link objError Error +hi def link objComment Comment +hi def link objInclude PreProc +hi def link objFloat Float +hi def link objInt Number +hi def link objGroup Structure +hi def link objIndex Constant +hi def link objMaterial Label + +hi def link objVertex Keyword +hi def link objNormale Keyword +hi def link objVertice Keyword +hi def link objFace Keyword +hi def link objKeywords Keyword + + + +let b:current_syntax = "obj" + +" vim: ts=8 diff --git a/runtime/syntax/objc.vim b/runtime/syntax/objc.vim new file mode 100644 index 0000000..7c6e2d5 --- /dev/null +++ b/runtime/syntax/objc.vim @@ -0,0 +1,534 @@ +" Vim syntax file +" Language: Objective-C +" Maintainer: Kazunobu Kuriyama +" Last Change: 2020 Jun 07 +" Last Change By Maintainer: 2015 Dec 14 + +""" Preparation for loading ObjC stuff +if exists("b:current_syntax") + finish +endif +if &filetype != 'objcpp' + syn clear + runtime! syntax/c.vim +endif +let s:cpo_save = &cpo +set cpo&vim + +""" ObjC proper stuff follows... + +syn keyword objcPreProcMacro __OBJC__ __OBJC2__ __clang__ + +" Defined Types +syn keyword objcPrincipalType id Class SEL IMP BOOL instancetype +syn keyword objcUsefulTerm nil Nil NO YES + +" Preprocessor Directives +syn region objcImported display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match objcImported display contained "\(<\h[-+a-zA-Z0-9_/]*\.h>\|<[a-z0-9]\+>\)" +syn match objcImport display "^\s*\(%:\|#\)\s*import\>\s*["<]" contains=objcImported + +" ObjC Compiler Directives +syn match objcObjDef display /@interface\>\|@implementation\>\|@end\>\|@class\>/ +syn match objcProtocol display /@protocol\>\|@optional\>\|@required\>/ +syn match objcProperty display /@property\>\|@synthesize\>\|@dynamic\>/ +syn match objcIvarScope display /@private\>\|@protected\>\|@public\>\|@package\>/ +syn match objcInternalRep display /@selector\>\|@encode\>/ +syn match objcException display /@try\>\|@throw\>\|@catch\|@finally\>/ +syn match objcThread display /@synchronized\>/ +syn match objcPool display /@autoreleasepool\>/ +syn match objcModuleImport display /@import\>/ + +" ObjC Constant Strings +syn match objcSpecial display contained "%@" +syn region objcString start=+\(@"\|"\)+ skip=+\\\\\|\\"+ end=+"+ contains=cFormat,cSpecial,objcSpecial + +" ObjC Hidden Arguments +syn keyword objcHiddenArgument self _cmd super + +" ObjC Type Qualifiers for Blocks +syn keyword objcBlocksQualifier __block +" ObjC Type Qualifiers for Object Lifetime +syn keyword objcObjectLifetimeQualifier __strong __weak __unsafe_unretained __autoreleasing +" ObjC Type Qualifiers for Toll-Free Bridge +syn keyword objcTollFreeBridgeQualifier __bridge __bridge_retained __bridge_transfer + +" ObjC Type Qualifiers for Remote Messaging +syn match objcRemoteMessagingQualifier display contained /\((\s*oneway\s\+\|(\s*in\s\+\|(\s*out\s\+\|(\s*inout\s\+\|(\s*bycopy\s\+\(in\(out\)\?\|out\)\?\|(\s*byref\s\+\(in\(out\)\?\|out\)\?\)/hs=s+1 + +" ObjC Storage Classes +syn keyword objcStorageClass _Nullable _Nonnull _Null_unspecified +syn keyword objcStorageClass __nullable __nonnull __null_unspecified +syn keyword objcStorageClass nullable nonnull null_unspecified + +" ObjC type specifier +syn keyword objcTypeSpecifier __kindof __covariant + +" ObjC Type Information Parameters +syn keyword objcTypeInfoParams ObjectType KeyType + +" shorthand +syn cluster objcTypeQualifier contains=objcBlocksQualifier,objcObjectLifetimeQualifier,objcTollFreeBridgeQualifier,objcRemoteMessagingQualifier + +" ObjC Fast Enumeration +syn match objcFastEnumKeyword display /\sin\(\s\|$\)/ + +" ObjC Literal Syntax +syn match objcLiteralSyntaxNumber display /@\(YES\>\|NO\>\|\d\|-\|+\)/ contains=cNumber,cFloat,cOctal +syn match objcLiteralSyntaxSpecialChar display /@'/ contains=cSpecialCharacter +syn match objcLiteralSyntaxChar display /@'[^\\]'/ +syn match objcLiteralSyntaxOp display /@\((\|\[\|{\)/me=e-1,he=e-1 + +" ObjC Declared Property Attributes +syn match objDeclPropAccessorNameAssign display /\s*=\s*/ contained +syn region objcDeclPropAccessorName display start=/\(getter\|setter\)/ end=/\h\w*/ contains=objDeclPropAccessorNameAssign +syn keyword objcDeclPropAccessorType readonly readwrite contained +syn keyword objcDeclPropAssignSemantics assign retain copy contained +syn keyword objcDeclPropAtomicity nonatomic contained +syn keyword objcDeclPropARC strong weak contained +syn match objcDeclPropNullable /\((\|\s\)nullable\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained +syn match objcDeclPropNonnull /\((\|\s\)nonnull\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained +syn match objcDeclPropNullUnspecified /\((\|\s\)null_unspecified\(,\|)\)/ms=s+1,hs=s+1,me=e-1,he=e-1 contained +syn keyword objcDeclProcNullResettable null_resettable contained +syn region objcDeclProp display transparent keepend start=/@property\s*(/ end=/)/ contains=objcProperty,objcDeclPropAccessorName,objcDeclPropAccessorType,objcDeclPropAssignSemantics,objcDeclPropAtomicity,objcDeclPropARC,objcDeclPropNullable,objcDeclPropNonnull,objcDeclPropNullUnspecified,objcDeclProcNullResettable + +" To distinguish colons in methods and dictionaries from those in C's labels. +syn match objcColon display /^\s*\h\w*\s*\:\(\s\|.\)/me=e-1,he=e-1 + +" To distinguish a protocol list from system header files +syn match objcProtocolList display /<\h\w*\(\s*,\s*\h\w*\)*>/ contains=objcPrincipalType,cType,Type,objcType,objcTypeInfoParams + +" Type info for collection classes +syn match objcTypeInfo display /<\h\w*\s*<\(\h\w*\s*\**\|\h\w*\)>>/ contains=objcPrincipalType,cType,Type,objcType,objcTypeInfoParams + +" shorthand +syn cluster objcCEntities contains=cType,cStructure,cStorageClass,cString,cCharacter,cSpecialCharacter,cNumbers,cConstant,cOperator,cComment,cCommentL,cStatement,cLabel,cConditional,cRepeat +syn cluster objcObjCEntities contains=objcHiddenArgument,objcPrincipalType,objcString,objcUsefulTerm,objcProtocol,objcInternalRep,objcException,objcThread,objcPool,objcModuleImport,@objcTypeQualifier,objcLiteralSyntaxNumber,objcLiteralSyntaxOp,objcLiteralSyntaxChar,objcLiteralSyntaxSpecialChar,objcProtocolList,objcColon,objcFastEnumKeyword,objcType,objcClass,objcMacro,objcEnum,objcEnumValue,objcExceptionValue,objcNotificationValue,objcConstVar,objcPreProcMacro,objcTypeInfo + +" Objective-C Message Expressions +syn region objcMethodCall start=/\[/ end=/\]/ contains=objcMethodCall,objcBlocks,@objcObjCEntities,@objcCEntities + +" To distinguish class method and instance method +syn match objcInstanceMethod display /^s*-\s*/ +syn match objcClassMethod display /^s*+\s*/ + +" ObjC Blocks +syn region objcBlocks start=/\(\^\s*([^)]\+)\s*{\|\^\s*{\)/ end=/}/ contains=objcBlocks,objcMethodCall,@objcObjCEntities,@objcCEntities + +syn cluster cParenGroup add=objcMethodCall +syn cluster cPreProcGroup add=objcMethodCall + +""" Foundation Framework +syn match objcClass /Protocol\s*\*/me=s+8,he=s+8 + +""""""""""""""""" +" NSObjCRuntime.h +syn keyword objcType NSInteger NSUInteger NSComparator +syn keyword objcEnum NSComparisonResult +syn keyword objcEnumValue NSOrderedAscending NSOrderedSame NSOrderedDescending +syn keyword objcEnum NSEnumerationOptions +syn keyword objcEnumValue NSEnumerationConcurrent NSEnumerationReverse +syn keyword objcEnum NSSortOptions +syn keyword objcEnumValue NSSortConcurrent NSSortStable +syn keyword objcEnumValue NSNotFound +syn keyword objcMacro NSIntegerMax NSIntegerMin NSUIntegerMax +syn keyword objcMacro NS_INLINE NS_BLOCKS_AVAILABLE NS_NONATOMIC_IOSONLY NS_FORMAT_FUNCTION NS_FORMAT_ARGUMENT NS_RETURNS_RETAINED NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_AUTOMATED_REFCOUNT_UNAVAILABLE NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE NS_REQUIRES_PROPERTY_DEFINITIONS NS_REPLACES_RECEIVER NS_RELEASES_ARGUMENT NS_VALID_UNTIL_END_OF_SCOPE NS_ROOT_CLASS NS_REQUIRES_SUPER NS_PROTOCOL_REQUIRES_EXPLICIT_IMPLEMENTATION NS_DESIGNATED_INITIALIZER NS_REQUIRES_NIL_TERMINATION +syn keyword objcEnum NSQualityOfService +syn keyword objcEnumValue NSQualityOfServiceUserInteractive NSQualityOfServiceUserInitiated NSQualityOfServiceUtility NSQualityOfServiceBackground NSQualityOfServiceDefault +" NSRange.h +syn keyword objcType NSRange NSRangePointer +" NSGeometry.h +syn keyword objcType NSPoint NSPointPointer NSPointArray NSSize NSSizePointer NSSizeArray NSRect NSRectPointer NSRectArray NSEdgeInsets +syn keyword objcEnum NSRectEdge +syn keyword objcEnumValue NSMinXEdge NSMinYEdge NSMaxXEdge NSMaxYEdge +syn keyword objcEnumValue NSRectEdgeMinX NSRectEdgeMinY NSRectEdgeMaxX NSRectEdgeMaxY +syn keyword objcConstVar NSZeroPoint NSZeroSize NSZeroRect NSEdgeInsetsZero +syn keyword cType CGFloat CGPoint CGSize CGRect +syn keyword objcEnum NSAlignmentOptions +syn keyword objcEnumValue NSAlignMinXInward NSAlignMinYInward NSAlignMaxXInward NSAlignMaxYInward NSAlignWidthInward NSAlignHeightInward NSAlignMinXOutward NSAlignMinYOutward NSAlignMaxXOutward NSAlignMaxYOutward NSAlignWidthOutward NSAlignHeightOutward NSAlignMinXNearest NSAlignMinYNearest NSAlignMaxXNearest NSAlignMaxYNearest NSAlignWidthNearest NSAlignHeightNearest NSAlignRectFlipped NSAlignAllEdgesInward NSAlignAllEdgesOutward NSAlignAllEdgesNearest +" NSDecimal.h +syn keyword objcType NSDecimal +syn keyword objcEnum NSRoundingMode +syn keyword objcEnumValue NSRoundPlain NSRoundDown NSRoundUp NSRoundBankers +syn keyword objcEnum NSCalculationError +syn keyword objcEnumValue NSCalculationNoError NSCalculationLossOfPrecision NSCalculationUnderflow NSCalculationOverflow NSCalculationDivideByZero +syn keyword objcConstVar NSDecimalMaxSize NSDecimalNoScale +" NSDate.h +syn match objcClass /NSDate\s*\*/me=s+6,he=s+6 +syn keyword objcType NSTimeInterval +syn keyword objcNotificationValue NSSystemClockDidChangeNotification +syn keyword objcMacro NSTimeIntervalSince1970 +" NSZone.h +syn match objcType /NSZone\s*\*/me=s+6,he=s+6 +syn keyword objcEnumValue NSScannedOption NSCollectorDisabledOption +" NSError.h +syn match objcClass /NSError\s*\*/me=s+7,he=s+7 +syn keyword objcConstVar NSCocoaErrorDomain NSPOSIXErrorDomain NSOSStatusErrorDomain NSMachErrorDomain NSUnderlyingErrorKey NSLocalizedDescriptionKey NSLocalizedFailureReasonErrorKey NSLocalizedRecoverySuggestionErrorKey NSLocalizedRecoveryOptionsErrorKey NSRecoveryAttempterErrorKey NSHelpAnchorErrorKey NSStringEncodingErrorKey NSURLErrorKey NSFilePathErrorKey +" NSException.h +syn match objcClass /NSException\s*\*/me=s+11,he=s+11 +syn match objcClass /NSAssertionHandler\s*\*/me=s+18,he=s+18 +syn keyword objcType NSUncaughtExceptionHandler +syn keyword objcConstVar NSGenericException NSRangeException NSInvalidArgumentException NSInternalInconsistencyException NSMallocException NSObjectInaccessibleException NSObjectNotAvailableException NSDestinationInvalidException NSPortTimeoutException NSInvalidSendPortException NSInvalidReceivePortException NSPortSendException NSPortReceiveException NSOldStyleException +" NSNotification.h +syn match objcClass /NSNotification\s*\*/me=s+14,he=s+14 +syn match objcClass /NSNotificationCenter\s*\*/me=s+20,he=s+20 +" NSDistributedNotificationCenter.h +syn match objcClass /NSDistributedNotificationCenter\s*\*/me=s+31,he=s+31 +syn keyword objcConstVar NSLocalNotificationCenterType +syn keyword objcEnum NSNotificationSuspensionBehavior +syn keyword objcEnumValue NSNotificationSuspensionBehaviorDrop NSNotificationSuspensionBehaviorCoalesce NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorHold NSNotificationSuspensionBehaviorDeliverImmediately +syn keyword objcEnumValue NSNotificationDeliverImmediately NSNotificationPostToAllSessions +syn keyword objcEnum NSDistributedNotificationOptions +syn keyword objcEnumValue NSDistributedNotificationDeliverImmediately NSDistributedNotificationPostToAllSessions +" NSNotificationQueue.h +syn match objcClass /NSNotificationQueue\s*\*/me=s+19,he=s+19 +syn keyword objcEnum NSPostingStyle +syn keyword objcEnumValue NSPostWhenIdle NSPostASAP NSPostNow +syn keyword objcEnum NSNotificationCoalescing +syn keyword objcEnumValue NSNotificationNoCoalescing NSNotificationCoalescingOnName NSNotificationCoalescingOnSender +" NSEnumerator.h +syn match objcClass /NSEnumerator\s*\*/me=s+12,he=s+12 +syn match objcClass /NSEnumerator<.*>\s*\*/me=s+12,he=s+12 contains=objcTypeInfoParams +syn keyword objcType NSFastEnumerationState +" NSIndexSet.h +syn match objcClass /NSIndexSet\s*\*/me=s+10,he=s+10 +syn match objcClass /NSMutableIndexSet\s*\*/me=s+17,he=s+17 +" NSCharecterSet.h +syn match objcClass /NSCharacterSet\s*\*/me=s+14,he=s+14 +syn match objcClass /NSMutableCharacterSet\s*\*/me=s+21,he=s+21 +syn keyword objcConstVar NSOpenStepUnicodeReservedBase +" NSURL.h +syn match objcClass /NSURL\s*\*/me=s+5,he=s+5 +syn keyword objcEnum NSURLBookmarkCreationOptions +syn keyword objcEnumValue NSURLBookmarkCreationPreferFileIDResolution NSURLBookmarkCreationMinimalBookmark NSURLBookmarkCreationSuitableForBookmarkFile NSURLBookmarkCreationWithSecurityScope NSURLBookmarkCreationSecurityScopeAllowOnlyReadAccess +syn keyword objcEnum NSURLBookmarkResolutionOptions +syn keyword objcEnumValue NSURLBookmarkResolutionWithoutUI NSURLBookmarkResolutionWithoutMounting NSURLBookmarkResolutionWithSecurityScope +syn keyword objcType NSURLBookmarkFileCreationOptions +syn keyword objcConstVar NSURLFileScheme NSURLKeysOfUnsetValuesKey +syn keyword objcConstVar NSURLNameKey NSURLLocalizedNameKey NSURLIsRegularFileKey NSURLIsDirectoryKey NSURLIsSymbolicLinkKey NSURLIsVolumeKey NSURLIsPackageKey NSURLIsApplicationKey NSURLApplicationIsScriptableKey NSURLIsSystemImmutableKey NSURLIsUserImmutableKey NSURLIsHiddenKey NSURLHasHiddenExtensionKey NSURLCreationDateKey NSURLContentAccessDateKey NSURLContentModificationDateKey NSURLAttributeModificationDateKey NSURLLinkCountKey NSURLParentDirectoryURLKey NSURLVolumeURLKey NSURLTypeIdentifierKey NSURLLocalizedTypeDescriptionKey NSURLLabelNumberKey NSURLLabelColorKey NSURLLocalizedLabelKey NSURLEffectiveIconKey NSURLCustomIconKey NSURLFileResourceIdentifierKey NSURLVolumeIdentifierKey NSURLPreferredIOBlockSizeKey NSURLIsReadableKey NSURLIsWritableKey NSURLIsExecutableKey NSURLFileSecurityKey NSURLIsExcludedFromBackupKey NSURLTagNamesKey NSURLPathKey NSURLIsMountTriggerKey NSURLGenerationIdentifierKey NSURLDocumentIdentifierKey NSURLAddedToDirectoryDateKey NSURLQuarantinePropertiesKey NSURLFileResourceTypeKey +syn keyword objcConstVar NSURLFileResourceTypeNamedPipe NSURLFileResourceTypeCharacterSpecial NSURLFileResourceTypeDirectory NSURLFileResourceTypeBlockSpecial NSURLFileResourceTypeRegular NSURLFileResourceTypeSymbolicLink NSURLFileResourceTypeSocket NSURLFileResourceTypeUnknown NSURLThumbnailDictionaryKey NSURLThumbnailKey NSThumbnail1024x1024SizeKey +syn keyword objcConstVar NSURLFileSizeKey NSURLFileAllocatedSizeKey NSURLTotalFileSizeKey NSURLTotalFileAllocatedSizeKey NSURLIsAliasFileKey NSURLFileProtectionKey NSURLFileProtectionNone NSURLFileProtectionComplete NSURLFileProtectionCompleteUnlessOpen NSURLFileProtectionCompleteUntilFirstUserAuthentication +syn keyword objcConstVar NSURLVolumeLocalizedFormatDescriptionKey NSURLVolumeTotalCapacityKey NSURLVolumeAvailableCapacityKey NSURLVolumeResourceCountKey NSURLVolumeSupportsPersistentIDsKey NSURLVolumeSupportsSymbolicLinksKey NSURLVolumeSupportsHardLinksKey NSURLVolumeSupportsJournalingKey NSURLVolumeIsJournalingKey NSURLVolumeSupportsSparseFilesKey NSURLVolumeSupportsZeroRunsKey NSURLVolumeSupportsCaseSensitiveNamesKey NSURLVolumeSupportsCasePreservedNamesKey NSURLVolumeSupportsRootDirectoryDatesKey NSURLVolumeSupportsVolumeSizesKey NSURLVolumeSupportsRenamingKey NSURLVolumeSupportsAdvisoryFileLockingKey NSURLVolumeSupportsExtendedSecurityKey NSURLVolumeIsBrowsableKey NSURLVolumeMaximumFileSizeKey NSURLVolumeIsEjectableKey NSURLVolumeIsRemovableKey NSURLVolumeIsInternalKey NSURLVolumeIsAutomountedKey NSURLVolumeIsLocalKey NSURLVolumeIsReadOnlyKey NSURLVolumeCreationDateKey NSURLVolumeURLForRemountingKey NSURLVolumeUUIDStringKey NSURLVolumeNameKey NSURLVolumeLocalizedNameKey +syn keyword objcConstVar NSURLIsUbiquitousItemKey NSURLUbiquitousItemHasUnresolvedConflictsKey NSURLUbiquitousItemIsDownloadedKey NSURLUbiquitousItemIsDownloadingKey NSURLUbiquitousItemIsUploadedKey NSURLUbiquitousItemIsUploadingKey NSURLUbiquitousItemPercentDownloadedKey NSURLUbiquitousItemPercentUploadedKey NSURLUbiquitousItemDownloadingStatusKey NSURLUbiquitousItemDownloadingErrorKey NSURLUbiquitousItemUploadingErrorKey NSURLUbiquitousItemDownloadRequestedKey NSURLUbiquitousItemContainerDisplayNameKey NSURLUbiquitousItemDownloadingStatusNotDownloaded NSURLUbiquitousItemDownloadingStatusDownloaded NSURLUbiquitousItemDownloadingStatusCurrent +"""""""""""" +" NSString.h +syn match objcClass /NSString\s*\*/me=s+8,he=s+8 +syn match objcClass /NSMutableString\s*\*/me=s+15,he=s+15 +syn keyword objcType unichar +syn keyword objcExceptionValue NSParseErrorException NSCharacterConversionException +syn keyword objcMacro NSMaximumStringLength +syn keyword objcEnum NSStringCompareOptions +syn keyword objcEnumValue NSCaseInsensitiveSearch NSLiteralSearch NSBackwardsSearch NSAnchoredSearch NSNumericSearch NSDiacriticInsensitiveSearch NSWidthInsensitiveSearch NSForcedOrderingSearch NSRegularExpressionSearch +syn keyword objcEnum NSStringEncoding +syn keyword objcEnumValue NSProprietaryStringEncoding +syn keyword objcEnumValue NSASCIIStringEncoding NSNEXTSTEPStringEncoding NSJapaneseEUCStringEncoding NSUTF8StringEncoding NSISOLatin1StringEncoding NSSymbolStringEncoding NSNonLossyASCIIStringEncoding NSShiftJISStringEncoding NSISOLatin2StringEncoding NSUnicodeStringEncoding NSWindowsCP1251StringEncoding NSWindowsCP1252StringEncoding NSWindowsCP1253StringEncoding NSWindowsCP1254StringEncoding NSWindowsCP1250StringEncoding NSISO2022JPStringEncoding NSMacOSRomanStringEncoding NSUTF16StringEncoding NSUTF16BigEndianStringEncoding NSUTF16LittleEndianStringEncoding NSUTF32StringEncoding NSUTF32BigEndianStringEncoding NSUTF32LittleEndianStringEncoding +syn keyword objcEnum NSStringEncodingConversionOptions +syn keyword objcEnumValue NSStringEncodingConversionAllowLossy NSStringEncodingConversionExternalRepresentation +syn keyword objcEnum NSStringEnumerationOptions +syn keyword objcEnumValue NSStringEnumerationByLines NSStringEnumerationByParagraphs NSStringEnumerationByComposedCharacterSequences NSStringEnumerationByWords NSStringEnumerationBySentences NSStringEnumerationReverse NSStringEnumerationSubstringNotRequired NSStringEnumerationLocalized +syn keyword objcConstVar NSStringTransformLatinToKatakana NSStringTransformLatinToHiragana NSStringTransformLatinToHangul NSStringTransformLatinToArabic NSStringTransformLatinToHebrew NSStringTransformLatinToThai NSStringTransformLatinToCyrillic NSStringTransformLatinToGreek NSStringTransformToLatin NSStringTransformMandarinToLatin NSStringTransformHiraganaToKatakana NSStringTransformFullwidthToHalfwidth NSStringTransformToXMLHex NSStringTransformToUnicodeName NSStringTransformStripCombiningMarks NSStringTransformStripDiacritics +syn keyword objcConstVar NSStringEncodingDetectionSuggestedEncodingsKey NSStringEncodingDetectionDisallowedEncodingsKey NSStringEncodingDetectionUseOnlySuggestedEncodingsKey NSStringEncodingDetectionAllowLossyKey NSStringEncodingDetectionFromWindowsKey NSStringEncodingDetectionLossySubstitutionKey NSStringEncodingDetectionLikelyLanguageKey +" NSAttributedString.h +syn match objcClass /NSAttributedString\s*\*/me=s+18,he=s+18 +syn match objcClass /NSMutableAttributedString\s*\*/me=s+25,he=s+25 +syn keyword objcEnum NSAttributedStringEnumerationOptions +syn keyword objcEnumValue NSAttributedStringEnumerationReverse NSAttributedStringEnumerationLongestEffectiveRangeNotRequired +" NSValue.h +syn match objcClass /NSValue\s*\*/me=s+7,he=s+7 +syn match objcClass /NSNumber\s*\*/me=s+8,he=s+8 +" NSDecimalNumber.h +syn match objcClass /NSDecimalNumber\s*\*/me=s+15,he=s+15 +syn match objcClass /NSDecimalNumberHandler\s*\*/me=s+22,he=s+22 +syn keyword objcExceptionValue NSDecimalNumberExactnessException NSDecimalNumberOverflowException NSDecimalNumberUnderflowException NSDecimalNumberDivideByZeroException +" NSData.h +syn match objcClass /NSData\s*\*/me=s+6,he=s+6 +syn match objcClass /NSMutableData\s*\*/me=s+13,he=s+13 +syn keyword objcEnum NSDataReadingOptions +syn keyword objcEnumValue NSDataReadingMappedIfSafe NSDataReadingUncached NSDataReadingMappedAlways NSDataReadingMapped NSMappedRead NSUncachedRead +syn keyword objcEnum NSDataWritingOptions +syn keyword objcEnumValue NSDataWritingAtomic NSDataWritingWithoutOverwriting NSDataWritingFileProtectionNone NSDataWritingFileProtectionComplete NSDataWritingFileProtectionCompleteUnlessOpen NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication NSDataWritingFileProtectionMask NSAtomicWrite +syn keyword objcEnum NSDataSearchOptions +syn keyword objcEnumValue NSDataSearchBackwards NSDataSearchAnchored +syn keyword objcEnum NSDataBase64EncodingOptions NSDataBase64DecodingOptions +syn keyword objcEnumValue NSDataBase64Encoding64CharacterLineLength NSDataBase64Encoding76CharacterLineLength NSDataBase64EncodingEndLineWithCarriageReturn NSDataBase64EncodingEndLineWithLineFeed NSDataBase64DecodingIgnoreUnknownCharacters +" NSArray.h +syn match objcClass /NSArray\s*\*/me=s+7,he=s+7 +syn match objcClass /NSArray<.*>\s*\*/me=s+7,he=s+7 contains=objcTypeInfoParams +syn match objcClass /NSMutableArray\s*\*/me=s+14,he=s+14 +syn match objcClass /NSMutableArray<.*>\s*\*/me=s+14,he=s+14 contains=objcTypeInfoParams +syn keyword objcEnum NSBinarySearchingOptions +syn keyword objcEnumValue NSBinarySearchingFirstEqual NSBinarySearchingLastEqual NSBinarySearchingInsertionIndex +" NSDictionary.h +syn match objcClass /NSDictionary\s*\*/me=s+12,he=s+12 +syn match objcClass /NSDictionary<.*>\s*\*/me=s+12,he=s+12 contains=objcTypeInfoParams +syn match objcClass /NSMutableDictionary\s*\*/me=s+19,he=s+19 +syn match objcClass /NSMutableDictionary<.*>\s*\*/me=s+19,he=s+19 contains=objcTypeInfoParams +" NSSet.h +syn match objcClass /NSSet\s*\*/me=s+5,me=s+5 +syn match objcClass /NSSet<.*>\s*\*/me=s+5,me=s+5 contains=objcTypeInfoParams +syn match objcClass /NSMutableSet\s*\*/me=s+12,me=s+12 +syn match objcClass /NSMutableSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams +syn match objcClass /NSCountedSet\s*\*/me=s+12,me=s+12 +syn match objcClass /NSCountedSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams +" NSOrderedSet.h +syn match objcClass /NSOrderedSet\s*\*/me=s+12,me=s+12 +syn match objcClass /NSOrderedSet<.*>\s*\*/me=s+12,me=s+12 contains=objcTypeInfoParams +syn match objcClass /NSMutableOrderedSet\s*\*/me=s+19,me=s+19 +syn match objcClass /NSMutableOrderedSet<.*>\s*\*/me=s+19,me=s+19 +""""""""""""""""""" +" NSPathUtilities.h +syn keyword objcEnum NSSearchPathDirectory +syn keyword objcEnumValue NSApplicationDirectory NSDemoApplicationDirectory NSDeveloperApplicationDirectory NSAdminApplicationDirectory NSLibraryDirectory NSDeveloperDirectory NSUserDirectory NSDocumentationDirectory NSDocumentDirectory NSCoreServiceDirectory NSAutosavedInformationDirectory NSDesktopDirectory NSCachesDirectory NSApplicationSupportDirectory NSDownloadsDirectory NSInputMethodsDirectory NSMoviesDirectory NSMusicDirectory NSPicturesDirectory NSPrinterDescriptionDirectory NSSharedPublicDirectory NSPreferencePanesDirectory NSApplicationScriptsDirectory NSItemReplacementDirectory NSAllApplicationsDirectory NSAllLibrariesDirectory NSTrashDirectory +syn keyword objcEnum NSSearchPathDomainMask +syn keyword objcEnumValue NSUserDomainMask NSLocalDomainMask NSNetworkDomainMask NSSystemDomainMask NSAllDomainsMask +" NSFileManger.h +syn match objcClass /NSFileManager\s*\*/me=s+13,he=s+13 +syn match objcClass /NSDirectoryEnumerator\s*\*/me=s+21,he=s+21 contains=objcTypeInfoParams +syn match objcClass /NSDirectoryEnumerator<.*>\s*\*/me=s+21,he=s+21 +syn keyword objcEnum NSVolumeEnumerationOptions +syn keyword objcEnumValue NSVolumeEnumerationSkipHiddenVolumes NSVolumeEnumerationProduceFileReferenceURLs +syn keyword objcEnum NSURLRelationship +syn keyword objcEnumValue NSURLRelationshipContains NSURLRelationshipSame NSURLRelationshipOther +syn keyword objcEnum NSFileManagerUnmountOptions +syn keyword objcEnumValue NSFileManagerUnmountAllPartitionsAndEjectDisk NSFileManagerUnmountWithoutUI +syn keyword objcConstVar NSFileManagerUnmountDissentingProcessIdentifierErrorKey +syn keyword objcEnum NSDirectoryEnumerationOptions +syn keyword objcEnumValue NSDirectoryEnumerationSkipsSubdirectoryDescendants NSDirectoryEnumerationSkipsPackageDescendants NSDirectoryEnumerationSkipsHiddenFiles +syn keyword objcEnum NSFileManagerItemReplacementOptions +syn keyword objcEnumValue NSFileManagerItemReplacementUsingNewMetadataOnly NSFileManagerItemReplacementWithoutDeletingBackupItem +syn keyword objcNotificationValue NSUbiquityIdentityDidChangeNotification +syn keyword objcConstVar NSFileType NSFileTypeDirectory NSFileTypeRegular NSFileTypeSymbolicLink NSFileTypeSocket NSFileTypeCharacterSpecial NSFileTypeBlockSpecial NSFileTypeUnknown NSFileSize NSFileModificationDate NSFileReferenceCount NSFileDeviceIdentifier NSFileOwnerAccountName NSFileGroupOwnerAccountName NSFilePosixPermissions NSFileSystemNumber NSFileSystemFileNumber NSFileExtensionHidden NSFileHFSCreatorCode NSFileHFSTypeCode NSFileImmutable NSFileAppendOnly NSFileCreationDate NSFileOwnerAccountID NSFileGroupOwnerAccountID NSFileBusy NSFileProtectionKey NSFileProtectionNone NSFileProtectionComplete NSFileProtectionCompleteUnlessOpen NSFileProtectionCompleteUntilFirstUserAuthentication NSFileSystemSize NSFileSystemFreeSize NSFileSystemNodes NSFileSystemFreeNodes +" NSFileHandle.h +syn match objcClass /NSFileHandle\s*\*/me=s+12,he=s+12 +syn keyword objcExceptionValue NSFileHandleOperationException +syn keyword objcNotificationValue NSFileHandleReadCompletionNotification NSFileHandleReadToEndOfFileCompletionNotification NSFileHandleConnectionAcceptedNotification NSFileHandleDataAvailableNotification NSFileHandleNotificationDataItem NSFileHandleNotificationFileHandleItem NSFileHandleNotificationMonitorModes +syn match objcClass /NSPipe\s*\*/me=s+6,he=s+6 +"""""""""""" +" NSLocale.h +syn match objcClass /NSLocale\s*\*/me=s+8,he=s+8 +syn keyword objcEnum NSLocaleLanguageDirection +syn keyword objcEnumValue NSLocaleLanguageDirectionUnknown NSLocaleLanguageDirectionLeftToRight NSLocaleLanguageDirectionRightToLeft NSLocaleLanguageDirectionTopToBottom NSLocaleLanguageDirectionBottomToTop +syn keyword objcNotificationValue NSCurrentLocaleDidChangeNotification +syn keyword objcConstVar NSLocaleIdentifier NSLocaleLanguageCode NSLocaleCountryCode NSLocaleScriptCode NSLocaleVariantCode NSLocaleExemplarCharacterSet NSLocaleCalendar NSLocaleCollationIdentifier NSLocaleUsesMetricSystem NSLocaleMeasurementSystem NSLocaleDecimalSeparator NSLocaleGroupingSeparator NSLocaleCurrencySymbol NSLocaleCurrencyCode NSLocaleCollatorIdentifier NSLocaleQuotationBeginDelimiterKey NSLocaleQuotationEndDelimiterKey NSLocaleAlternateQuotationBeginDelimiterKey NSLocaleAlternateQuotationEndDelimiterKey NSGregorianCalendar NSBuddhistCalendar NSChineseCalendar NSHebrewCalendar NSIslamicCalendar NSIslamicCivilCalendar NSJapaneseCalendar NSRepublicOfChinaCalendar NSPersianCalendar NSIndianCalendar NSISO8601Calendar +" NSFormatter.h +syn match objcClass /NSFormatter\s*\*/me=s+11,he=s+11 +syn keyword objcEnum NSFormattingContext NSFormattingUnitStyle +syn keyword objcEnumValue NSFormattingContextUnknown NSFormattingContextDynamic NSFormattingContextStandalone NSFormattingContextListItem NSFormattingContextBeginningOfSentence NSFormattingContextMiddleOfSentence NSFormattingUnitStyleShort NSFormattingUnitStyleMedium NSFormattingUnitStyleLong +" NSNumberFormatter.h +syn match objcClass /NSNumberFormatter\s*\*/me=s+17,he=s+17 +syn keyword objcEnum NSNumberFormatterStyle +syn keyword objcEnumValue NSNumberFormatterNoStyle NSNumberFormatterDecimalStyle NSNumberFormatterCurrencyStyle NSNumberFormatterPercentStyle NSNumberFormatterScientificStyle NSNumberFormatterSpellOutStyle NSNumberFormatterOrdinalStyle NSNumberFormatterCurrencyISOCodeStyle NSNumberFormatterCurrencyPluralStyle NSNumberFormatterCurrencyAccountingStyle +syn keyword objcEnum NSNumberFormatterBehavior +syn keyword objcEnumValue NSNumberFormatterBehaviorDefault NSNumberFormatterBehavior10_0 NSNumberFormatterBehavior10_4 +syn keyword objcEnum NSNumberFormatterPadPosition +syn keyword objcEnumValue NSNumberFormatterPadBeforePrefix NSNumberFormatterPadAfterPrefix NSNumberFormatterPadBeforeSuffix NSNumberFormatterPadAfterSuffix +syn keyword objcEnum NSNumberFormatterRoundingMode +syn keyword objcEnumValue NSNumberFormatterRoundCeiling NSNumberFormatterRoundFloor NSNumberFormatterRoundDown NSNumberFormatterRoundUp NSNumberFormatterRoundHalfEven NSNumberFormatterRoundHalfDown NSNumberFormatterRoundHalfUp +" NSDateFormatter.h +syn match objcClass /NSDateFormatter\s*\*/me=s+15,he=s+15 +syn keyword objcEnum NSDateFormatterStyle +syn keyword objcEnumValue NSDateFormatterNoStyle NSDateFormatterShortStyle NSDateFormatterMediumStyle NSDateFormatterLongStyle NSDateFormatterFullStyle +syn keyword objcEnum NSDateFormatterBehavior +syn keyword objcEnumValue NSDateFormatterBehaviorDefault NSDateFormatterBehavior10_0 NSDateFormatterBehavior10_4 +" NSCalendar.h +syn match objcClass /NSCalendar\s*\*/me=s+10,he=s+10 +syn keyword objcConstVar NSCalendarIdentifierGregorian NSCalendarIdentifierBuddhist NSCalendarIdentifierChinese NSCalendarIdentifierCoptic NSCalendarIdentifierEthiopicAmeteMihret NSCalendarIdentifierEthiopicAmeteAlem NSCalendarIdentifierHebrew NSCalendarIdentifierISO8601 NSCalendarIdentifierIndian NSCalendarIdentifierIslamic NSCalendarIdentifierIslamicCivil NSCalendarIdentifierJapanese NSCalendarIdentifierPersian NSCalendarIdentifierRepublicOfChina NSCalendarIdentifierIslamicTabular NSCalendarIdentifierIslamicUmmAlQura +syn keyword objcEnum NSCalendarUnit +syn keyword objcEnumValue NSCalendarUnitEra NSCalendarUnitYear NSCalendarUnitMonth NSCalendarUnitDay NSCalendarUnitHour NSCalendarUnitMinute NSCalendarUnitSecond NSCalendarUnitWeekday NSCalendarUnitWeekdayOrdinal NSCalendarUnitQuarter NSCalendarUnitWeekOfMonth NSCalendarUnitWeekOfYear NSCalendarUnitYearForWeekOfYear NSCalendarUnitNanosecond NSCalendarUnitCalendar NSCalendarUnitTimeZone +syn keyword objcEnumValue NSEraCalendarUnit NSYearCalendarUnit NSMonthCalendarUnit NSDayCalendarUnit NSHourCalendarUnit NSMinuteCalendarUnit NSSecondCalendarUnit NSWeekCalendarUnit NSWeekdayCalendarUnit NSWeekdayOrdinalCalendarUnit NSQuarterCalendarUnit NSWeekOfMonthCalendarUnit NSWeekOfYearCalendarUnit NSYearForWeekOfYearCalendarUnit NSCalendarCalendarUnit NSTimeZoneCalendarUnit +syn keyword objcEnumValue NSWrapCalendarComponents NSUndefinedDateComponent NSDateComponentUndefined +syn match objcClass /NSDateComponents\s*\*/me=s+16,he=s+16 +syn keyword objcEnum NSCalendarOptions +syn keyword objcEnumValue NSCalendarWrapComponents NSCalendarMatchStrictly NSCalendarSearchBackwards NSCalendarMatchPreviousTimePreservingSmallerUnits NSCalendarMatchNextTimePreservingSmallerUnits NSCalendarMatchNextTime NSCalendarMatchFirst NSCalendarMatchLast +syn keyword objcConstVar NSCalendarDayChangedNotification +" NSTimeZone.h +syn match objcClass /NSTimeZone\s*\*/me=s+10,he=s+10 +syn keyword objcEnum NSTimeZoneNameStyle +syn keyword objcEnumValue NSTimeZoneNameStyleStandard NSTimeZoneNameStyleShortStandard NSTimeZoneNameStyleDaylightSaving NSTimeZoneNameStyleShortDaylightSaving NSTimeZoneNameStyleGeneric NSTimeZoneNameStyleShortGeneric +syn keyword objcNotificationValue NSSystemTimeZoneDidChangeNotification +""""""""""" +" NSCoder.h +syn match objcClass /NSCoder\s*\*/me=s+7,he=s+7 +" NSArchiver.h +syn match objcClass /NSArchiver\s*\*/me=s+10,he=s+10 +syn match objcClass /NSUnarchiver\s*\*/me=s+12,he=s+12 +syn keyword objcExceptionValue NSInconsistentArchiveException +" NSKeyedArchiver.h +syn match objcClass /NSKeyedArchiver\s*\*/me=s+15,he=s+15 +syn match objcClass /NSKeyedUnarchiver\s*\*/me=s+17,he=s+17 +syn keyword objcExceptionValue NSInvalidArchiveOperationException NSInvalidUnarchiveOperationException +syn keyword objcConstVar NSKeyedArchiveRootObjectKey +"""""""""""""""""" +" NSPropertyList.h +syn keyword objcEnum NSPropertyListMutabilityOptions +syn keyword objcEnumValue NSPropertyListImmutable NSPropertyListMutableContainers NSPropertyListMutableContainersAndLeaves +syn keyword objcEnum NSPropertyListFormat +syn keyword objcEnumValue NSPropertyListOpenStepFormat NSPropertyListXMLFormat_v1_0 NSPropertyListBinaryFormat_v1_0 +syn keyword objcType NSPropertyListReadOptions NSPropertyListWriteOptions +" NSUserDefaults.h +syn match objcClass /NSUserDefaults\s*\*/me=s+14,he=s+14 +syn keyword objcConstVar NSGlobalDomain NSArgumentDomain NSRegistrationDomain +syn keyword objcNotificationValue NSUserDefaultsDidChangeNotification +" NSBundle.h +syn match objcClass /NSBundle\s*\*/me=s+8,he=s+8 +syn keyword objcEnumValue NSBundleExecutableArchitectureI386 NSBundleExecutableArchitecturePPC NSBundleExecutableArchitectureX86_64 NSBundleExecutableArchitecturePPC64 +syn keyword objcNotificationValue NSBundleDidLoadNotification NSLoadedClasses NSBundleResourceRequestLowDiskSpaceNotification +syn keyword objcConstVar NSBundleResourceRequestLoadingPriorityUrgent +""""""""""""""""" +" NSProcessInfo.h +syn match objcClass /NSProcessInfo\s*\*/me=s+13,he=s+13 +syn keyword objcEnumValue NSWindowsNTOperatingSystem NSWindows95OperatingSystem NSSolarisOperatingSystem NSHPUXOperatingSystem NSMACHOperatingSystem NSSunOSOperatingSystem NSOSF1OperatingSystem +syn keyword objcType NSOperatingSystemVersion +syn keyword objcEnum NSActivityOptions NSProcessInfoThermalState +syn keyword objcEnumValue NSActivityIdleDisplaySleepDisabled NSActivityIdleSystemSleepDisabled NSActivitySuddenTerminationDisabled NSActivityAutomaticTerminationDisabled NSActivityUserInitiated NSActivityUserInitiatedAllowingIdleSystemSleep NSActivityBackground NSActivityLatencyCritical NSProcessInfoThermalStateNominal NSProcessInfoThermalStateFair NSProcessInfoThermalStateSerious NSProcessInfoThermalStateCritical +syn keyword objcNotificationValue NSProcessInfoThermalStateDidChangeNotification NSProcessInfoPowerStateDidChangeNotification +" NSTask.h +syn match objcClass /NSTask\s*\*/me=s+6,he=s+6 +syn keyword objcEnum NSTaskTerminationReason +syn keyword objcEnumValue NSTaskTerminationReasonExit NSTaskTerminationReasonUncaughtSignal +syn keyword objcNotificationValue NSTaskDidTerminateNotification +" NSThread.h +syn match objcClass /NSThread\s*\*/me=s+8,he=s+8 +syn keyword objcNotificationValue NSWillBecomeMultiThreadedNotification NSDidBecomeSingleThreadedNotification NSThreadWillExitNotification +" NSLock.h +syn match objcClass /NSLock\s*\*/me=s+6,he=s+6 +syn match objcClass /NSConditionLock\s*\*/me=s+15,he=s+15 +syn match objcClass /NSRecursiveLock\s*\*/me=s+15,he=s+15 +" NSDictributedLock +syn match objcClass /NSDistributedLock\s*\*/me=s+17,he=s+17 +" NSOperation.h +"""""""""""""""" +syn match objcClass /NSOperation\s*\*/me=s+11,he=s+11 +syn keyword objcEnum NSOperationQueuePriority +syn keyword objcEnumValue NSOperationQueuePriorityVeryLow NSOperationQueuePriorityLow NSOperationQueuePriorityNormal NSOperationQueuePriorityHigh NSOperationQueuePriorityVeryHigh +syn match objcClass /NSBlockOperation\s*\*/me=s+16,he=s+16 +syn match objcClass /NSInvocationOperation\s*\*/me=s+21,he=s+21 +syn keyword objcExceptionValue NSInvocationOperationVoidResultException NSInvocationOperationCancelledException +syn match objcClass /NSOperationQueue\s*\*/me=s+16,he=s+16 +syn keyword objcEnumValue NSOperationQueueDefaultMaxConcurrentOperationCount +" NSConnection.h +syn match objcClass /NSConnection\s*\*/me=s+12,he=s+12 +syn keyword objcConstVar NSConnectionReplyMode +syn keyword objcNotificationValue NSConnectionDidDieNotification NSConnectionDidInitializeNotification +syn keyword objcExceptionValue NSFailedAuthenticationException +" NSPort.h +syn match objcClass /NSPort\s*\*/me=s+6,he=s+6 +syn keyword objcType NSSocketNativeHandle +syn keyword objcNotificationValue NSPortDidBecomeInvalidNotification +syn match objcClass /NSMachPort\s*\*/me=s+10,he=s+10 +syn keyword objcEnum NSMachPortOptions +syn keyword objcEnumValue NSMachPortDeallocateNone NSMachPortDeallocateSendRight NSMachPortDeallocateReceiveRight +syn match objcClass /NSMessagePort\s*\*/me=s+13,he=s+13 +syn match objcClass /NSSocketPort\s*\*/me=s+12,he=s+12 +" NSPortMessage.h +syn match objcClass /NSPortMessage\s*\*/me=s+13,he=s+13 +" NSDistantObject.h +syn match objcClass /NSDistantObject\s*\*/me=s+15,he=s+15 +" NSPortNameServer.h +syn match objcClass /NSPortNameServer\s*\*/me=s+16,he=s+16 +syn match objcClass /NSMessagePortNameServer\s*\*/me=s+23,he=s+23 +syn match objcClass /NSSocketPortNameServer\s*\*/me=s+22,he=s+22 +" NSHost.h +syn match objcClass /NSHost\s*\*/me=s+6,he=s+6 +" NSInvocation.h +syn match objcClass /NSInvocation\s*\*/me=s+12,he=s+12 +" NSMethodSignature.h +syn match objcClass /NSMethodSignature\s*\*/me=s+17,he=s+17 +""""" +" NSScanner.h +syn match objcClass /NSScanner\s*\*/me=s+9,he=s+9 +" NSTimer.h +syn match objcClass /NSTimer\s*\*/me=s+7,he=s+7 +" NSAutoreleasePool.h +syn match objcClass /NSAutoreleasePool\s*\*/me=s+17,he=s+17 +" NSRunLoop.h +syn match objcClass /NSRunLoop\s*\*/me=s+9,he=s+9 +syn keyword objcConstVar NSDefaultRunLoopMode NSRunLoopCommonModes +" NSNull.h +syn match objcClass /NSNull\s*\*/me=s+6,he=s+6 +" NSProxy.h +syn match objcClass /NSProxy\s*\*/me=s+7,he=s+7 +" NSObject.h +syn match objcClass /NSObject\s*\*/me=s+8,he=s+8 + + +" NSCache.h +syn match objcClass /NSCache\s*\*/me=s+7,he=s+7 +syn match objcClass /NSCache<.*>\s*\*/me=s+7,he=s+7 contains=objcTypeInfoParams +" NSHashTable.h +syn match objcClass /NSHashTable\s*\*/me=s+11,he=s+11 +syn match objcClass /NSHashTable<.*>\s*\*/me=s+11,he=s+11 contains=objcTypeInfoParams +syn keyword objcConstVar NSHashTableStrongMemory NSHashTableZeroingWeakMemory NSHashTableCopyIn NSHashTableObjectPointerPersonality NSHashTableWeakMemory +syn keyword objcType NSHashTableOptions NSHashEnumerator NSHashTableCallBacks +syn keyword objcConstVar NSIntegerHashCallBacks NSNonOwnedPointerHashCallBacks NSNonRetainedObjectHashCallBacks NSObjectHashCallBacks NSOwnedObjectIdentityHashCallBacks NSOwnedPointerHashCallBacks NSPointerToStructHashCallBacks NSOwnedObjectIdentityHashCallBacks NSOwnedObjectIdentityHashCallBacks NSIntHashCallBacks +" NSMapTable.h +syn match objcClass /NSMapTable\s*\*/me=s+10,he=s+10 +syn match objcClass /NSMapTable<.*>\s*\*/me=s+10,he=s+10 contains=objcTypeInfoParams +syn keyword objcConstVar NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks NSPointerToStructHashCallBacks +syn keyword objcConstVar NSMapTableStrongMemory NSMapTableZeroingWeakMemory NSMapTableCopyIn NSMapTableObjectPointerPersonality NSMapTableWeakMemory +syn keyword objcType NSMapTableOptions NSMapEnumerator NSMapTableKeyCallBacks NSMapTableValueCallBacks +syn keyword objcMacro NSNotAnIntMapKey NSNotAnIntegerMapKey NSNotAPointerMapKey +syn keyword objcConstVar NSIntegerMapKeyCallBacks NSNonOwnedPointerMapKeyCallBacks NSNonOwnedPointerOrNullMapKeyCallBacks NSNonRetainedObjectMapKeyCallBacks NSObjectMapKeyCallBacks NSOwnedPointerMapKeyCallBacks NSIntMapKeyCallBacks NSIntegerMapValueCallBacks NSNonOwnedPointerMapValueCallBacks NSObjectMapValueCallBacks NSNonRetainedObjectMapValueCallBacks NSOwnedPointerMapValueCallBacks NSIntMapValueCallBacks + +" NSPointerFunctions.h +syn match objcClass /NSPointerFunctions\s*\*/me=s+18,he=s+18 +syn keyword objcEnum NSPointerFunctionsOptions +syn keyword objcEnumValue NSPointerFunctionsStrongMemory NSPointerFunctionsZeroingWeakMemory NSPointerFunctionsOpaqueMemory NSPointerFunctionsMallocMemory NSPointerFunctionsMachVirtualMemory NSPointerFunctionsWeakMemory NSPointerFunctionsObjectPersonality NSPointerFunctionsOpaquePersonality NSPointerFunctionsObjectPointerPersonality NSPointerFunctionsCStringPersonality NSPointerFunctionsStructPersonality NSPointerFunctionsIntegerPersonality NSPointerFunctionsCopyIn + + +""" Default Highlighting +hi def link objcPreProcMacro cConstant +hi def link objcPrincipalType cType +hi def link objcUsefulTerm cConstant +hi def link objcImport cInclude +hi def link objcImported cString +hi def link objcObjDef cOperator +hi def link objcProtocol cOperator +hi def link objcProperty cOperator +hi def link objcIvarScope cOperator +hi def link objcInternalRep cOperator +hi def link objcException cOperator +hi def link objcThread cOperator +hi def link objcPool cOperator +hi def link objcModuleImport cOperator +hi def link objcSpecial cSpecial +hi def link objcString cString +hi def link objcHiddenArgument cStatement +hi def link objcBlocksQualifier cStorageClass +hi def link objcObjectLifetimeQualifier cStorageClass +hi def link objcTollFreeBridgeQualifier cStorageClass +hi def link objcRemoteMessagingQualifier cStorageClass +hi def link objcStorageClass cStorageClass +hi def link objcFastEnumKeyword cStatement +hi def link objcLiteralSyntaxNumber cNumber +hi def link objcLiteralSyntaxChar cCharacter +hi def link objcLiteralSyntaxSpecialChar cCharacter +hi def link objcLiteralSyntaxOp cOperator +hi def link objcDeclPropAccessorName cConstant +hi def link objcDeclPropAccessorType cConstant +hi def link objcDeclPropAssignSemantics cConstant +hi def link objcDeclPropAtomicity cConstant +hi def link objcDeclPropARC cConstant +hi def link objcDeclPropNullable cConstant +hi def link objcDeclPropNonnull cConstant +hi def link objcDeclPropNullUnspecified cConstant +hi def link objcDeclProcNullResettable cConstant +hi def link objcInstanceMethod Function +hi def link objcClassMethod Function +hi def link objcType cType +hi def link objcClass cType +hi def link objcTypeSpecifier cType +hi def link objcMacro cConstant +hi def link objcEnum cType +hi def link objcEnumValue cConstant +hi def link objcExceptionValue cConstant +hi def link objcNotificationValue cConstant +hi def link objcConstVar cConstant +hi def link objcTypeInfoParams Identifier + +""" Final step +let b:current_syntax = "objc" +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 sw=2 sts=2 diff --git a/runtime/syntax/objcpp.vim b/runtime/syntax/objcpp.vim new file mode 100644 index 0000000..f11e307 --- /dev/null +++ b/runtime/syntax/objcpp.vim @@ -0,0 +1,20 @@ +" Vim syntax file +" Language: Objective C++ +" Maintainer: Kazunobu Kuriyama +" Ex-Maintainer: Anthony Hodsdon +" Last Change: 2007 Oct 29 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read in C++ and ObjC syntax files +runtime! syntax/cpp.vim +unlet b:current_syntax +runtime! syntax/objc.vim + +syn keyword objCppNonStructure class template namespace transparent contained +syn keyword objCppNonStatement new delete friend using transparent contained + +let b:current_syntax = "objcpp" diff --git a/runtime/syntax/obse.vim b/runtime/syntax/obse.vim new file mode 100644 index 0000000..4ff0428 --- /dev/null +++ b/runtime/syntax/obse.vim @@ -0,0 +1,3360 @@ +" Vim syntax file +" Language: Oblivion Language (obl) +" Original Creator: Ulthar Seramis +" Maintainer: Kat +" Latest Revision: 13 November 2022 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" obse is case insensitive +syntax case ignore + +" Statements {{{ +syn keyword obseStatement set let to skipwhite +" the second part needs to be separate as to not mess up the next group +syn match obseStatementTwo ":=" +" }}} + +" Regex matched objects {{{ +" these are matched with regex and thus must be set first +syn match obseNames '\w\+' +syn match obseScriptNameRegion '\i\+' contained +syn match obseVariable '\w*\S' contained +syn match obseReference '\zs\w\+\>\ze\.' +" }}} + +" Operators {{{ +syn match obseOperator "\v\*" +syn match obseOperator "\v\-" +syn match obseOperator "\v\+" +syn match obseOperator "\v\/" +syn match obseOperator "\v\^" +syn match obseOperator "\v\=" +syn match obseOperator "\v\>" +syn match obseOperator "\v\<" +syn match obseOperator "\v\!" +syn match obseOperator "\v\&" +syn match obseOperator "\v\|" +" }}} + +" Numbers {{{ +syn match obseInt '\d\+' +syn match obseInt '[-+]\d\+' +syn match obseFloat '\d\+\.\d*' +syn match obseFloat '[-+]\d\+\.\d*' +" }}} + +" Comments and strings {{{ +syn region obseComment start=";" end="$" keepend fold contains=obseToDo +syn region obseString start=/"/ end=/"/ keepend fold contains=obseStringFormatting +syn match obseStringFormatting "%%" contained +syn match obseStringFormatting "%a" contained +syn match obseStringFormatting "%B" contained +syn match obseStringFormatting "%b" contained +syn match obseStringFormatting "%c" contained +syn match obseStringFormatting "%e" contained +syn match obseStringFormatting "%g" contained +syn match obseStringFormatting "%i" contained +syn match obseStringFormatting "%k" contained +syn match obseStringFormatting "%n" contained +syn match obseStringFormatting "%p" contained +syn match obseStringFormatting "%ps" contained +syn match obseStringFormatting "%pp" contained +syn match obseStringFormatting "%po" contained +syn match obseStringFormatting "%q" contained +syn match obseStringFormatting "%r" contained +syn match obseStringFormatting "%v" contained +syn match obseStringFormatting "%x" contained +syn match obseStringFormatting "%z" contained +syn match obseStringFormatting "%{" contained +syn match obseStringFormatting "%}" contained +syn match obseStringFormatting "%\d*.\d*f" contained +syn match obseStringFormatting "% \d*.\d*f" contained +syn match obseStringFormatting "%-\d*.\d*f" contained +syn match obseStringFormatting "%+\d*.\d*f" contained +syn match obseStringFormatting "%\d*.\d*e" contained +syn match obseStringFormatting "%-\d*.\d*e" contained +syn match obseStringFormatting "% \d*.\d*e" contained +syn match obseStringFormatting "%+\d*.\d*e" contained +syn keyword obseToDo contained TODO todo Todo ToDo FIXME fixme NOTE note +" }}} + + +" Conditionals {{{ +syn match obseCondition "If" +syn match obseCondition "Eval" +syn match obseCondition "Return" +syn match obseCondition "EndIf" +syn match obseCondition "ElseIf" +syn match obseCondition "Else" +" }}} + +" Repeat loops {{{ +syn match obseRepeat "Label" +syn match obseRepeat "GoTo" +syn match obseRepeat "While" +syn match obseRepeat "Loop" +syn match obseRepeat "ForEach" +syn match obseRepeat "Break" +syn match obseRepeat "Continue" +" }}} + +" Basic Types {{{ +syn keyword obseTypes array_var float int long ref reference short string_var nextgroup=obseNames skipwhite +syn keyword obseOtherKey Player player playerRef playerREF PlayerRef PlayerREF +syn keyword obseScriptName ScriptName scriptname Scriptname scn nextgroup=obseScriptNameRegion skipwhite +syn keyword obseBlock Begin End +" }}} + +" Fold {{{ +setlocal foldmethod=syntax +syn cluster obseNoFold contains=obseComment,obseString +syn region obseFoldIfContainer + \ start="^\s*\" + \ end="^\s*\" + \ keepend extend + \ containedin=ALLBUT,@obseNoFold + \ contains=ALLBUT,obseScriptName,obseScriptNameRegion +syn region obseFoldIf + \ start="^\s*\" + \ end="^\s*\" + \ fold + \ keepend + \ contained containedin=obseFoldIfContainer + \ nextgroup=obseFoldElseIf,obseFoldElse + \ contains=TOP,NONE +syn region obseFoldElseIf + \ start="^\s*\" + \ end="^\s*\" + \ fold + \ keepend + \ contained containedin=obseFoldIfContainer + \ nextgroup=obseFoldElseIf,obseFoldElse + \ contains=TOP +syn region obseFoldElse + \ start="^\s*\" + \ end="^\s*\" + \ fold + \ keepend + \ contained containedin=obseFoldIfContainer + \ contains=TOP +syn region obseFoldWhile + \ start="^\s*\" + \ end="^\s*\" + \ fold + \ keepend extend + \ contains=TOP + \ containedin=ALLBUT,@obseNoFold +" fold for loops +syn region obseFoldFor + \ start="^\s*\" + \ end="^\s*\" + \ fold + \ keepend extend + \ contains=TOP + \ containedin=ALLBUT,@obseNoFold + \ nextgroup=obseVariable +" }}} + +" Skills and Attributes {{{ +syn keyword skillAttribute + \ Strength + \ Willpower + \ Speed + \ Personality + \ Intelligence + \ Agility + \ Endurance + \ Luck + \ Armorer + \ Athletics + \ Blade + \ Block + \ Blunt + \ HandToHand + \ HeavyArmor + \ Alchemy + \ Alteration + \ Conjuration + \ Destruction + \ Illusion + \ Mysticism + \ Restoration + \ Acrobatics + \ LightArmor + \ Marksman + \ Mercantile + \ Security + \ Sneak + \ Speechcraft +" }}} + +" Block Types {{{ +syn keyword obseBlockType + \ ExitGame + \ ExitToMainMenu + \ Function + \ GameMode + \ LoadGame + \ MenuMode + \ OnActivate + \ OnActorDrop + \ OnActorEquip + \ OnActorUnequip + \ OnAdd + \ OnAlarm + \ OnAlarmTrespass + \ OnAlarmVictim + \ OnAttack + \ OnBlock + \ OnBowAttack + \ OnClick + \ OnClose + \ OnCreatePotion + \ OnCreateSpell + \ OnDeath + \ OnDodge + \ OnDrinkPotion + \ OnDrop + \ OnEatIngredient + \ OnEnchant + \ OnEquip + \ OnFallImpact + \ OnHealthDamage + \ OnHit + \ OnHitWith + \ OnKnockout + \ OnLoad + \ OnMagicApply + \ OnMagicCast + \ OnMagicEffectHit + \ OnMagicEffectHit2 + \ OnMapMarkerAdd + \ OnMouseover + \ OnMurder + \ OnNewGame + \ OnOpen + \ OnPackageChange + \ OnPackageDone + \ OnPackageStart + \ OnQuestComplete + \ OnRecoil + \ OnRelease + \ OnReset + \ OnSaveIni + \ OnScriptedSkillUp + \ OnScrollCast + \ OnSell + \ OnSkillUp + \ OnSoulTrap + \ OnSpellCast + \ OnStagger + \ OnStartCombat + \ OnTrigger + \ OnTriggerActor + \ OnTriggerMob + \ OnUnequip + \ OnVampireFeed + \ OnWaterDive + \ OnWaterSurface + \ PostLoadGame + \ QQQ + \ SaveGame + \ ScriptEffectFinish + \ ScriptEffectStart + \ ScriptEffectUpdate +" }}} + +" Functions {{{ +" CS functions {{{ +syn keyword csFunction + \ Activate + \ AddAchievement + \ AddFlames + \ AddItem + \ AddScriptPackage + \ AddSpell + \ AddTopic + \ AdvSkill + \ AdvancePCLevel + \ AdvancePCSkill + \ Autosave + \ CanHaveFlames + \ CanPayCrimeGold + \ Cast + \ ClearOwnership + \ CloseCurrentOblivionGate + \ CloseOblivionGate + \ CompleteQuest + \ CreateFullActorCopy + \ DeleteFullActorCopy + \ Disable + \ DisableLinkedPathPoints + \ DisablePlayerControls + \ Dispel + \ DispelAllSpells + \ Drop + \ DropMe + \ DuplicateAllItems + \ DuplicateNPCStats + \ Enable + \ EnableFastTravel + \ EnableLinkedPathPoints + \ EnablePlayerControls + \ EquipItem + \ EssentialDeathReload + \ EvaluatePackage + \ ForceAV + \ ForceActorValue + \ ForceCloseOblivionGate + \ ForceFlee + \ ForceTakeCover + \ ForceWeather + \ GetAV + \ GetActionRef + \ GetActorValue + \ GetAlarmed + \ GetAmountSoldStolen + \ GetAngle + \ GetArmorRating + \ GetArmorRatingUpperBody + \ GetAttacked + \ GetBarterGold + \ GetBaseAV + \ GetBaseActorValue + \ GetButtonPressed + \ GetClassDefaultMatch + \ GetClothingValue + \ GetContainer + \ GetCrime + \ GetCrimeGold + \ GetCrimeKnown + \ GetCurrentAIPackage + \ GetCurrentAIProcedure + \ GetCurrentTime + \ GetCurrentWeatherPercent + \ GetDayOfWeek + \ GetDead + \ GetDeadCount + \ GetDestroyed + \ GetDetected + \ GetDetectionLevel + \ GetDisabled + \ GetDisposition + \ GetDistance + \ GetDoorDefaultOpen + \ GetEquipped + \ GetFactionRank + \ GetFactionRankDifference + \ GetFactionReaction + \ GetFatiguePercentage + \ GetForceRun + \ GetForceSneak + \ GetFriendHit + \ GetFurnitureMarkerID + \ GetGS + \ GetGameSetting + \ GetGlobalValue + \ GetGold + \ GetHeadingAngle + \ GetIdleDoneOnce + \ GetIgnoreFriendlyHits + \ GetInCell + \ GetInCellParam + \ GetInFaction + \ GetInSameCell + \ GetInWorldspace + \ GetInvestmentGold + \ GetIsAlerted + \ GetIsClass + \ GetIsClassDefault + \ GetIsCreature + \ GetIsCurrentPackage + \ GetIsCurrentWeather + \ GetIsGhost + \ GetIsID + \ GetIsPlayableRace + \ GetIsPlayerBirthsign + \ GetIsRace + \ GetIsReference + \ GetIsSex + \ GetIsUsedItem + \ GetIsUsedItemType + \ GetItemCount + \ GetKnockedState + \ GetLOS + \ GetLevel + \ GetLockLevel + \ GetLocked + \ GetMenuHasTrait + \ GetName + \ GetNoRumors + \ GetOffersServicesNow + \ GetOpenState + \ GetPCExpelled + \ GetPCFactionAttack + \ GetPCFactionMurder + \ GetPCFactionSteal + \ GetPCFactionSubmitAuthority + \ GetPCFame + \ GetPCInFaction + \ GetPCInfamy + \ GetPCIsClass + \ GetPCIsRace + \ GetPCIsSex + \ GetPCMiscStat + \ GetPCSleepHours + \ GetPackageTarget + \ GetParentRef + \ GetPersuasionNumber + \ GetPlayerControlsDisabled + \ GetPlayerHasLastRiddenHorse + \ GetPlayerInSEWorld + \ GetPos + \ GetQuestRunning + \ GetQuestVariable + \ GetRandomPercent + \ GetRestrained + \ GetScale + \ GetScriptVariable + \ GetSecondsPassed + \ GetSelf + \ GetShouldAttack + \ GetSitting + \ GetSleeping + \ GetStage + \ GetStageDone + \ GetStartingAngle + \ GetStartingPos + \ GetTalkedToPC + \ GetTalkedToPCParam + \ GetTimeDead + \ GetTotalPersuasionNumber + \ GetTrespassWarningLevel + \ GetUnconscious + \ GetUsedItemActivate + \ GetUsedItemLevel + \ GetVampire + \ GetWalkSpeed + \ GetWeaponAnimType + \ GetWeaponSkillType + \ GetWindSpeed + \ GoToJail + \ HasFlames + \ HasMagicEffect + \ HasVampireFed + \ IsActionRef + \ IsActor + \ IsActorAVictim + \ IsActorDetected + \ IsActorEvil + \ IsActorUsingATorch + \ IsActorsAIOff + \ IsAnimPlayer + \ IsCellOwner + \ IsCloudy + \ IsContinuingPackagePCNear + \ IsCurrentFurnitureObj + \ IsCurrentFurnitureRef + \ IsEssential + \ IsFacingUp + \ IsGuard + \ IsHorseStolen + \ IsIdlePlaying + \ IsInCombat + \ IsInDangerousWater + \ IsInInterior + \ IsInMyOwnedCell + \ IsLeftUp + \ IsOwner + \ IsPCAMurderer + \ IsPCSleeping + \ IsPlayerInJail + \ IsPlayerMovingIntoNewSpace + \ IsPlayersLastRiddenHorse + \ IsPleasant + \ IsRaining + \ IsRidingHorse + \ IsRunning + \ IsShieldOut + \ IsSneaking + \ IsSnowing + \ IsSpellTarget + \ IsSwimming + \ IsTalking + \ IsTimePassing + \ IsTorchOut + \ IsTrespassing + \ IsTurnArrest + \ IsWaiting + \ IsWeaponOut + \ IsXBox + \ IsYielding + \ Kill + \ KillActor + \ KillAllActors + \ Lock + \ Look + \ LoopGroup + \ Message + \ MessageBox + \ ModAV + \ ModActorValue + \ ModAmountSoldStolen + \ ModBarterGold + \ ModCrimeGold + \ ModDisposition + \ ModFactionRank + \ ModFactionReaction + \ ModPCAttribute + \ ModPCA + \ ModPCFame + \ ModPCInfamy + \ ModPCMiscStat + \ ModPCSkill + \ ModPCS + \ ModScale + \ MoveTo + \ MoveToMarker + \ PCB + \ PayFine + \ PayFineThief + \ PickIdle + \ PlaceAtMe + \ PlayBink + \ PlayGroup + \ PlayMagicEffectVisuals + \ PlayMagicShaderVisuals + \ PlaySound + \ PlaySound3D + \ PositionCell + \ PositionWorld + \ PreloadMagicEffect + \ PurgeCellBuffers + \ PushActorAway + \ RefreshTopicList + \ ReleaseWeatherOverride + \ RemoveAllItems + \ RemoveFlames + \ RemoveItem + \ RemoveMe + \ RemoveScriptPackage + \ RemoveSpell + \ Reset3DState + \ ResetFallDamageTimer + \ ResetHealth + \ ResetInterior + \ Resurrect + \ Rotate + \ SCAOnActor + \ SameFaction + \ SameFactionAsPC + \ SameRace + \ SameRaceAsPC + \ SameSex + \ SameSexAsPC + \ Say + \ SayTo + \ ScriptEffectElapsedSeconds + \ SelectPlayerSpell + \ SendTrespassAlarm + \ SetAV + \ SetActorAlpha + \ SetActorFullName + \ SetActorRefraction + \ SetActorValue + \ SetActorsAI + \ SetAlert + \ SetAllReachable + \ SetAllVisible + \ SetAngle + \ SetAtStart + \ SetBarterGold + \ SetCellFullName + \ SetCellOwnership + \ SetCellPublicFlag + \ SetClass + \ SetCrimeGold + \ SetDestroyed + \ SetDoorDefaultOpen + \ SetEssential + \ SetFactionRank + \ SetFactionReaction + \ SetForceRun + \ SetForceSneak + \ SetGhost + \ SetIgnoreFriendlyHits + \ SetInCharGen + \ SetInvestmentGold + \ SetItemValue + \ SetLevel + \ SetNoAvoidance + \ SetNoRumors + \ SetOpenState + \ SetOwnership + \ SetPCExpelled + \ SetPCFactionAttack + \ SetPCFactionMurder + \ SetPCFactionSteal + \ SetPCFactionSubmitAuthority + \ SetPCFame + \ SetPCInfamy + \ SetPCSleepHours + \ SetPackDuration + \ SetPlayerBirthsign + \ SetPlayerInSEWorld + \ SetPos + \ SetQuestObject + \ SetRestrained + \ SetRigidBodyMass + \ SetScale + \ SetSceneIsComplex + \ SetShowQuestItems + \ SetSize + \ SetStage + \ SetUnconscious + \ SetWeather + \ ShowBirthsignMenu + \ ShowClassMenu + \ ShowDialogSubtitles + \ ShowEnchantment + \ ShowMap + \ ShowRaceMenu + \ ShowSpellMaking + \ SkipAnim + \ StartCombat + \ StartConversation + \ StartQuest + \ StopCombat + \ StopCombatAlarmOnActor + \ StopLook + \ StopMagicEffectVisuals + \ StopMagicShaderVisuals + \ StopQuest + \ StopWaiting + \ StreamMusic + \ This + \ ToggleActorsAI + \ TrapUpdate + \ TriggerHitShader + \ UnequipItem + \ Unlock + \ VampireFeed + \ Wait + \ WakeUpPC + \ WhichServiceMenu + \ Yield + \ evp + \ pms + \ saa + \ sms +" }}} + +" OBSE Functions {{{ +syn keyword obseFunction + \ abs + \ acos + \ activate2 + \ actorvaluetocode + \ actorvaluetostring + \ actorvaluetostringc + \ addeffectitem + \ addeffectitemc + \ addfulleffectitem + \ addfulleffectitemc + \ additemns + \ addmagiceffectcounter + \ addmagiceffectcounterc + \ addmecounter + \ addmecounterc + \ addspellns + \ addtoleveledlist + \ ahammerkey + \ animpathincludes + \ appendtoname + \ asciitochar + \ asin + \ atan + \ atan2 + \ avstring + \ calcleveleditem + \ calclevitemnr + \ calclevitems + \ cancastpower + \ cancorpsecheck + \ canfasttravelfromworld + \ cantraveltomapmarker + \ ceil + \ chartoascii + \ clearactivequest + \ clearhotkey + \ clearleveledlist + \ clearownershipt + \ clearplayerslastriddenhorse + \ clickmenubutton + \ cloneform + \ closeallmenus + \ closetextinput + \ colvec + \ comparefemalebipedpath + \ comparefemalegroundpath + \ comparefemaleiconpath + \ compareiconpath + \ comparemalebipedpath + \ comparemalegroundpath + \ comparemaleiconpath + \ comparemodelpath + \ comparename + \ comparenames + \ comparescripts + \ con_cal + \ con_getinisetting + \ con_hairtint + \ con_loadgame + \ con_modwatershader + \ con_playerspellbook + \ con_quitgame + \ con_refreshini + \ con_runmemorypass + \ con_save + \ con_saveini + \ con_setcamerafov + \ con_setclipdist + \ con_setfog + \ con_setgamesetting + \ con_setgamma + \ con_sethdrparam + \ con_setimagespaceglow + \ con_setinisetting + \ con_setskyparam + \ con_settargetrefraction + \ con_settargetrefractionfire + \ con_sexchange + \ con_tcl + \ con_tfc + \ con_tgm + \ con_toggleai + \ con_togglecombatai + \ con_toggledetection + \ con_togglemapmarkers + \ con_togglemenus + \ con_waterdeepcolor + \ con_waterreflectioncolor + \ con_watershallowcolor + \ copyalleffectitems + \ copyeyes + \ copyfemalebipedpath + \ copyfemalegroundpath + \ copyfemaleiconpath + \ copyhair + \ copyiconpath + \ copyir + \ copymalebipedpath + \ copymalegroundpath + \ copymaleiconpath + \ copymodelpath + \ copyname + \ copyntheffectitem + \ copyrace + \ cos + \ cosh + \ createtempref + \ creaturehasnohead + \ creaturehasnoleftarm + \ creaturehasnomovement + \ creaturehasnorightarm + \ creaturenocombatinwater + \ creatureusesweaponandshield + \ dacos + \ dasin + \ datan + \ datan2 + \ dcos + \ dcosh + \ debugprint + \ deletefrominputtext + \ deletereference + \ disablecontrol + \ disablekey + \ disablemouse + \ dispatchevent + \ dispelnthactiveeffect + \ dispelnthae + \ dsin + \ dsinh + \ dtan + \ dtanh + \ enablecontrol + \ enablekey + \ enablemouse + \ equipitem2 + \ equipitem2ns + \ equipitemns + \ equipitemsilent + \ equipme + \ eval + \ evaluatepackage + \ eventhandlerexist + \ exp + \ factionhasspecialcombat + \ fileexists + \ floor + \ fmod + \ forcecolumnvector + \ forcerowvector + \ generateidentitymatrix + \ generaterotationmatrix + \ generatezeromatrix + \ getactiveeffectcasters + \ getactiveeffectcodes + \ getactiveeffectcount + \ getactivemenucomponentid + \ getactivemenufilter + \ getactivemenumode + \ getactivemenuobject + \ getactivemenuref + \ getactivemenuselection + \ getactivequest + \ getactiveuicomponentfullname + \ getactiveuicomponentid + \ getactiveuicomponentname + \ getactoralpha + \ getactorbaselevel + \ getactorlightamount + \ getactormaxlevel + \ getactormaxswimbreath + \ getactorminlevel + \ getactorpackages + \ getactorsoullevel + \ getactorvaluec + \ getalchmenuapparatus + \ getalchmenuingredient + \ getalchmenuingredientcount + \ getallies + \ getallmodlocaldata + \ getaltcontrol2 + \ getapbowench + \ getapench + \ getapparatustype + \ getappoison + \ getarmorar + \ getarmortype + \ getarrayvariable + \ getarrowprojectilebowenchantment + \ getarrowprojectileenchantment + \ getarrowprojectilepoison + \ getattackdamage + \ getavc + \ getavforbaseactor + \ getavforbaseactorc + \ getavmod + \ getavmodc + \ getavskillmastery + \ getavskillmasteryc + \ getbarteritem + \ getbarteritemquantity + \ getbaseactorvaluec + \ getbaseav2 + \ getbaseav2c + \ getbaseav3 + \ getbaseav3c + \ getbaseitems + \ getbaseobject + \ getbipediconpath + \ getbipedmodelpath + \ getbipedslotmask + \ getbirthsignspells + \ getbookcantbetaken + \ getbookisscroll + \ getbooklength + \ getbookskilltaught + \ getbooktext + \ getboundingbox + \ getboundingradius + \ getcalcalllevels + \ getcalceachincount + \ getcallingscript + \ getcellbehavesasexterior + \ getcellchanged + \ getcellclimate + \ getcelldetachtime + \ getcellfactionrank + \ getcelllighting + \ getcellmusictype + \ getcellnorthrotation + \ getcellresethours + \ getcellwatertype + \ getchancenone + \ getclass + \ getclassattribute + \ getclassmenuhighlightedclass + \ getclassmenuselectedclass + \ getclassskill + \ getclassskills + \ getclassspecialization + \ getclimatehasmasser + \ getclimatehassecunda + \ getclimatemoonphaselength + \ getclimatesunrisebegin + \ getclimatesunriseend + \ getclimatesunsetbegin + \ getclimatesunsetend + \ getclimatevolatility + \ getclosesound + \ getcloudspeedlower + \ getcloudspeedupper + \ getcombatspells + \ getcombatstyle + \ getcombatstyleacrobaticsdodgechance + \ getcombatstyleattackchance + \ getcombatstyleattackduringblockmult + \ getcombatstyleattacknotunderattackmult + \ getcombatstyleattackskillmodbase + \ getcombatstyleattackskillmodmult + \ getcombatstyleattackunderattackmult + \ getcombatstyleblockchance + \ getcombatstyleblocknotunderattackmult + \ getcombatstyleblockskillmodbase + \ getcombatstyleblockskillmodmult + \ getcombatstyleblockunderattackmult + \ getcombatstylebuffstandoffdist + \ getcombatstyledodgebacknotunderattackmult + \ getcombatstyledodgebacktimermax + \ getcombatstyledodgebacktimermin + \ getcombatstyledodgebackunderattackmult + \ getcombatstyledodgechance + \ getcombatstyledodgefatiguemodbase + \ getcombatstyledodgefatiguemodmult + \ getcombatstyledodgefwattackingmult + \ getcombatstyledodgefwnotattackingmult + \ getcombatstyledodgefwtimermax + \ getcombatstyledodgefwtimermin + \ getcombatstyledodgelrchance + \ getcombatstyledodgelrtimermax + \ getcombatstyledodgelrtimermin + \ getcombatstyledodgenotunderattackmult + \ getcombatstyledodgeunderattackmult + \ getcombatstyleencumberedspeedmodbase + \ getcombatstyleencumberedspeedmodmult + \ getcombatstylefleeingdisabled + \ getcombatstylegroupstandoffdist + \ getcombatstyleh2hbonustoattack + \ getcombatstyleholdtimermax + \ getcombatstyleholdtimermin + \ getcombatstyleidletimermax + \ getcombatstyleidletimermin + \ getcombatstyleignorealliesinarea + \ getcombatstylekobonustoattack + \ getcombatstylekobonustopowerattack + \ getcombatstylemeleealertok + \ getcombatstylepowerattackchance + \ getcombatstylepowerattackfatiguemodbase + \ getcombatstylepowerattackfatiguemodmult + \ getcombatstyleprefersranged + \ getcombatstylerangedstandoffdist + \ getcombatstylerangemaxmult + \ getcombatstylerangeoptimalmult + \ getcombatstylerejectsyields + \ getcombatstylerushattackchance + \ getcombatstylerushattackdistmult + \ getcombatstylestaggerbonustoattack + \ getcombatstylestaggerbonustopowerattack + \ getcombatstyleswitchdistmelee + \ getcombatstyleswitchdistranged + \ getcombatstylewillyield + \ getcombattarget + \ getcompletedquests + \ getcontainermenuview + \ getcontainerrespawns + \ getcontrol + \ getcreaturebasescale + \ getcreaturecombatskill + \ getcreatureflies + \ getcreaturemagicskill + \ getcreaturemodelpaths + \ getcreaturereach + \ getcreaturesoullevel + \ getcreaturesound + \ getcreaturesoundbase + \ getcreaturestealthskill + \ getcreatureswims + \ getcreaturetype + \ getcreaturewalks + \ getcrosshairref + \ getcurrentcharge + \ getcurrentclimateid + \ getcurrenteditorpackage + \ getcurrenteventname + \ getcurrenthealth + \ getcurrentpackage + \ getcurrentpackageprocedure + \ getcurrentquests + \ getcurrentregion + \ getcurrentregions + \ getcurrentscript + \ getcurrentsoullevel + \ getcurrentweatherid + \ getcursorpos + \ getdebugselection + \ getdescription + \ getdoorteleportrot + \ getdoorteleportx + \ getdoorteleporty + \ getdoorteleportz + \ geteditorid + \ geteditorsize + \ getenchantment + \ getenchantmentcharge + \ getenchantmentcost + \ getenchantmenttype + \ getenchmenubaseitem + \ getenchmenuenchitem + \ getenchmenusoulgem + \ getequipmentslot + \ getequipmentslotmask + \ getequippedcurrentcharge + \ getequippedcurrenthealth + \ getequippeditems + \ getequippedobject + \ getequippedtorchtimeleft + \ getequippedweaponpoison + \ geteyes + \ getfactions + \ getfalltimer + \ getfirstref + \ getfirstrefincell + \ getfogdayfar + \ getfogdaynear + \ getfognightfar + \ getfognightnear + \ getfollowers + \ getformfrommod + \ getformidstring + \ getfps + \ getfullgoldvalue + \ getgamedifficulty + \ getgameloaded + \ getgamerestarted + \ getgodmode + \ getgoldvalue + \ getgridstoload + \ getgroundsurfacematerial + \ gethair + \ gethaircolor + \ gethdrvalue + \ gethidesamulet + \ gethidesrings + \ gethighactors + \ gethorse + \ gethotkeyitem + \ geticonpath + \ getignoresresistance + \ getingredient + \ getingredientchance + \ getinputtext + \ getinventoryobject + \ getinvrefsforitem + \ getitems + \ getkeyname + \ getkeypress + \ getlastcreatedpotion + \ getlastcreatedspell + \ getlastenchanteditem + \ getlastsigilstonecreateditem + \ getlastsigilstoneenchanteditem + \ getlastss + \ getlastsscreated + \ getlastssitem + \ getlasttransactionitem + \ getlasttransactionquantity + \ getlastuniquecreatedpotion + \ getlastusedsigilstone + \ getlevcreaturetemplate + \ getleveledspells + \ getlevitembylevel + \ getlevitemindexbyform + \ getlevitemindexbylevel + \ getlightduration + \ getlightningfrequency + \ getlightradius + \ getlightrgb + \ getlinkeddoor + \ getloadedtypearray + \ getlocalgravity + \ getloopsound + \ getlowactors + \ getluckmodifiedskill + \ getmagiceffectareasound + \ getmagiceffectareasoundc + \ getmagiceffectbarterfactor + \ getmagiceffectbarterfactorc + \ getmagiceffectbasecost + \ getmagiceffectbasecostc + \ getmagiceffectboltsound + \ getmagiceffectboltsoundc + \ getmagiceffectcastingsound + \ getmagiceffectcastingsoundc + \ getmagiceffectchars + \ getmagiceffectcharsc + \ getmagiceffectcode + \ getmagiceffectcounters + \ getmagiceffectcountersc + \ getmagiceffectenchantfactor + \ getmagiceffectenchantfactorc + \ getmagiceffectenchantshader + \ getmagiceffectenchantshaderc + \ getmagiceffecthitshader + \ getmagiceffecthitshaderc + \ getmagiceffecthitsound + \ getmagiceffecthitsoundc + \ getmagiceffecticon + \ getmagiceffecticonc + \ getmagiceffectlight + \ getmagiceffectlightc + \ getmagiceffectmodel + \ getmagiceffectmodelc + \ getmagiceffectname + \ getmagiceffectnamec + \ getmagiceffectnumcounters + \ getmagiceffectnumcountersc + \ getmagiceffectotheractorvalue + \ getmagiceffectotheractorvaluec + \ getmagiceffectprojectilespeed + \ getmagiceffectprojectilespeedc + \ getmagiceffectresistvalue + \ getmagiceffectresistvaluec + \ getmagiceffectschool + \ getmagiceffectschoolc + \ getmagiceffectusedobject + \ getmagiceffectusedobjectc + \ getmagicitemeffectcount + \ getmagicitemtype + \ getmagicprojectilespell + \ getmapmarkers + \ getmapmarkertype + \ getmapmenumarkername + \ getmapmenumarkerref + \ getmaxav + \ getmaxavc + \ getmaxlevel + \ getmeareasound + \ getmeareasoundc + \ getmebarterc + \ getmebasecost + \ getmebasecostc + \ getmeboltsound + \ getmeboltsoundc + \ getmecastingsound + \ getmecastingsoundc + \ getmecounters + \ getmecountersc + \ getmeebarter + \ getmeebarterc + \ getmeenchant + \ getmeenchantc + \ getmeenchantshader + \ getmeenchantshaderc + \ getmehitshader + \ getmehitshaderc + \ getmehitsound + \ getmehitsoundc + \ getmeicon + \ getmeiconc + \ getmelight + \ getmelightc + \ getmemodel + \ getmemodelc + \ getmename + \ getmenamec + \ getmenufloatvalue + \ getmenumcounters + \ getmenumcountersc + \ getmenustringvalue + \ getmeotheractorvalue + \ getmeotheractorvaluec + \ getmeprojspeed + \ getmeprojspeedc + \ getmerchantcontainer + \ getmeresistvalue + \ getmeresistvaluec + \ getmeschool + \ getmeschoolc + \ getmessageboxtype + \ getmeusedobject + \ getmeusedobjectc + \ getmiddlehighactors + \ getmieffectcount + \ getminlevel + \ getmitype + \ getmodelpath + \ getmodindex + \ getmodlocaldata + \ getmousebuttonpress + \ getmousebuttonsswapped + \ getmpspell + \ getnextref + \ getnthacitveeffectmagnitude + \ getnthactiveeffectactorvalue + \ getnthactiveeffectbounditem + \ getnthactiveeffectcaster + \ getnthactiveeffectcode + \ getnthactiveeffectdata + \ getnthactiveeffectduration + \ getnthactiveeffectenchantobject + \ getnthactiveeffectmagicenchantobject + \ getnthactiveeffectmagicitem + \ getnthactiveeffectmagicitemindex + \ getnthactiveeffectmagnitude + \ getnthactiveeffectsummonref + \ getnthactiveeffecttimeelapsed + \ getnthaeav + \ getnthaebounditem + \ getnthaecaster + \ getnthaecode + \ getnthaedata + \ getnthaeduration + \ getnthaeindex + \ getnthaemagicenchantobject + \ getnthaemagicitem + \ getnthaemagnitude + \ getnthaesummonref + \ getnthaetime + \ getnthchildref + \ getnthdetectedactor + \ getntheffectitem + \ getntheffectitemactorvalue + \ getntheffectitemarea + \ getntheffectitemcode + \ getntheffectitemduration + \ getntheffectitemmagnitude + \ getntheffectitemname + \ getntheffectitemrange + \ getntheffectitemscript + \ getntheffectitemscriptname + \ getntheffectitemscriptschool + \ getntheffectitemscriptvisualeffect + \ getntheiarea + \ getntheiav + \ getntheicode + \ getntheiduration + \ getntheimagnitude + \ getntheiname + \ getntheirange + \ getntheiscript + \ getntheisschool + \ getntheisvisualeffect + \ getnthexplicitref + \ getnthfaction + \ getnthfactionrankname + \ getnthfollower + \ getnthlevitem + \ getnthlevitemcount + \ getnthlevitemlevel + \ getnthmagiceffectcounter + \ getnthmagiceffectcounterc + \ getnthmecounter + \ getnthmecounterc + \ getnthmodname + \ getnthpackage + \ getnthplayerspell + \ getnthracebonusskill + \ getnthracespell + \ getnthspell + \ getnumchildrefs + \ getnumdetectedactors + \ getnumericinisetting + \ getnumexplicitrefs + \ getnumfactions + \ getnumfollowers + \ getnumitems + \ getnumkeyspressed + \ getnumlevitems + \ getnumloadedmods + \ getnumloadedplugins + \ getnummousebuttonspressed + \ getnumpackages + \ getnumranks + \ getnumrefs + \ getnumrefsincell + \ getobjectcharge + \ getobjecthealth + \ getobjecttype + \ getobliviondirectory + \ getoblrevision + \ getoblversion + \ getopenkey + \ getopensound + \ getowner + \ getowningfactionrank + \ getowningfactionrequiredrank + \ getpackageallowfalls + \ getpackageallowswimming + \ getpackagealwaysrun + \ getpackagealwayssneak + \ getpackagearmorunequipped + \ getpackagecontinueifpcnear + \ getpackagedata + \ getpackagedefensivecombat + \ getpackagelocationdata + \ getpackagelockdoorsatend + \ getpackagelockdoorsatlocation + \ getpackagelockdoorsatstart + \ getpackagemustcomplete + \ getpackagemustreachlocation + \ getpackagenoidleanims + \ getpackageoffersservices + \ getpackageonceperday + \ getpackagescheduledata + \ getpackageskipfalloutbehavior + \ getpackagetargetdata + \ getpackageunlockdoorsatend + \ getpackageunlockdoorsatlocation + \ getpackageunlockdoorsatstart + \ getpackageusehorse + \ getpackageweaponsunequipped + \ getparentcell + \ getparentcellowner + \ getparentcellowningfactionrank + \ getparentcellowningfactionrequiredrank + \ getparentcellwaterheight + \ getparentworldspace + \ getpathnodelinkedref + \ getpathnodepos + \ getpathnodesinradius + \ getpathnodesinrect + \ getpcattributebonus + \ getpcattributebonusc + \ getpclastdroppeditem + \ getpclastdroppeditemref + \ getpclasthorse + \ getpclastloaddoor + \ getpcmajorskillups + \ getpcmovementspeedmodifier + \ getpcspelleffectivenessmodifier + \ getpctrainingsessionsused + \ getplayerbirthsign + \ getplayerskilladvances + \ getplayerskilladvancesc + \ getplayerskilluse + \ getplayerskillusec + \ getplayerslastactivatedloaddoor + \ getplayerslastriddenhorse + \ getplayerspell + \ getplayerspellcount + \ getpluginversion + \ getplyerspellcount + \ getprocesslevel + \ getprojectile + \ getprojectiledistancetraveled + \ getprojectilelifetime + \ getprojectilesource + \ getprojectilespeed + \ getprojectiletype + \ getqmcurrent + \ getqmitem + \ getqmmaximum + \ getqr + \ getquality + \ getquantitymenucurrentquantity + \ getquantitymenuitem + \ getquantitymenumaximumquantity + \ getrace + \ getraceattribute + \ getraceattributec + \ getracedefaulthair + \ getraceeyes + \ getracehairs + \ getracereaction + \ getracescale + \ getraceskillbonus + \ getraceskillbonusc + \ getracespellcount + \ getracevoice + \ getraceweight + \ getrawformidstring + \ getrefcount + \ getrefvariable + \ getrequiredskillexp + \ getrequiredskillexpc + \ getrider + \ getscript + \ getscriptactiveeffectindex + \ getselectedspells + \ getservicesmask + \ getsigilstoneuses + \ getskillgoverningattribute + \ getskillgoverningattributec + \ getskillspecialization + \ getskillspecializationc + \ getskilluseincrement + \ getskilluseincrementc + \ getsoulgemcapacity + \ getsoullevel + \ getsoundattenuation + \ getsoundplaying + \ getsourcemodindex + \ getspecialanims + \ getspellareaeffectignoreslos + \ getspellcount + \ getspelldisallowabsorbreflect + \ getspelleffectiveness + \ getspellexplodeswithnotarget + \ getspellhostile + \ getspellimmunetosilence + \ getspellmagickacost + \ getspellmasterylevel + \ getspellpcstart + \ getspells + \ getspellschool + \ getspellscripteffectalwaysapplies + \ getspelltype + \ getstageentries + \ getstageids + \ getstringgamesetting + \ getstringinisetting + \ getsundamage + \ getsunglare + \ gettailmodelpath + \ gettargets + \ gettelekinesisref + \ getteleportcell + \ getteleportcellname + \ getterrainheight + \ gettextinputcontrolpressed + \ gettextinputcursorpos + \ gettexturepath + \ gettilechildren + \ gettiletraits + \ gettimeleft + \ gettotalactiveeffectmagnitude + \ gettotalactiveeffectmagnitudec + \ gettotalaeabilitymagnitude + \ gettotalaeabilitymagnitudec + \ gettotalaealchemymagnitude + \ gettotalaealchemymagnitudec + \ gettotalaeallspellsmagnitude + \ gettotalaeallspellsmagnitudec + \ gettotalaediseasemagnitude + \ gettotalaediseasemagnitudec + \ gettotalaeenchantmentmagnitude + \ gettotalaeenchantmentmagnitudec + \ gettotalaelesserpowermagnitude + \ gettotalaelesserpowermagnitudec + \ gettotalaemagnitude + \ gettotalaemagnitudec + \ gettotalaenonabilitymagnitude + \ gettotalaenonabilitymagnitudec + \ gettotalaepowermagnitude + \ gettotalaepowermagnitudec + \ gettotalaespellmagnitude + \ gettotalaespellmagnitudec + \ gettotalpcattributebonus + \ gettrainerlevel + \ gettrainerskill + \ gettransactioninfo + \ gettransdelta + \ gettravelhorse + \ getusedpowers + \ getusertime + \ getvariable + \ getvelocity + \ getverticalvelocity + \ getwaterheight + \ getwatershader + \ getweahtercloudspeedupper + \ getweaponreach + \ getweaponspeed + \ getweapontype + \ getweatherclassification + \ getweathercloudspeedlower + \ getweathercloudspeedupper + \ getweathercolor + \ getweatherfogdayfar + \ getweatherfogdaynear + \ getweatherfognightfar + \ getweatherfognightnear + \ getweatherhdrvalue + \ getweatherlightningfrequency + \ getweatheroverride + \ getweathersundamage + \ getweathersunglare + \ getweathertransdelta + \ getweatherwindspeed + \ getweight + \ getworldparentworld + \ getworldspaceparentworldspace + \ globalvariableexists + \ hammerkey + \ hasbeenpickedup + \ haseffectshader + \ haslowlevelprocessing + \ hasmodel + \ hasname + \ hasnopersuasion + \ hasspell + \ hastail + \ hasvariable + \ haswater + \ holdkey + \ iconpathincludes + \ identitymat + \ incrementplayerskilluse + \ incrementplayerskillusec + \ ininvertfasttravel + \ insertininputtext + \ isactivatable + \ isactivator + \ isactorrespawning + \ isalchemyitem + \ isammo + \ isanimgroupplaying + \ isanimplaying + \ isapparatus + \ isarmor + \ isattacking + \ isautomaticdoor + \ isbartermenuactive + \ isbipediconpathvalid + \ isbipedmodelpathvalid + \ isblocking + \ isbook + \ iscantwait + \ iscasting + \ iscellpublic + \ isclassattribute + \ isclassattributec + \ isclassskill + \ isclassskillc + \ isclonedform + \ isclothing + \ isconsoleopen + \ iscontainer + \ iscontrol + \ iscontroldisabled + \ iscontrolpressed + \ iscreature + \ iscreaturebiped + \ isdigit + \ isdiseased + \ isdodging + \ isdoor + \ isequipped + \ isfactionevil + \ isfactionhidden + \ isfemale + \ isflora + \ isflying + \ isfood + \ isformvalid + \ isfurniture + \ isgamemessagebox + \ isglobalcollisiondisabled + \ isharvested + \ ishiddendoor + \ isiconpathvalid + \ isinair + \ isingredient + \ isinoblivion + \ isjumping + \ iskey + \ iskeydisabled + \ iskeypressed + \ iskeypressed2 + \ iskeypressed3 + \ isletter + \ islight + \ islightcarriable + \ isloaddoor + \ ismagiceffectcanrecover + \ ismagiceffectcanrecoverc + \ ismagiceffectdetrimental + \ ismagiceffectdetrimentalc + \ ismagiceffectforenchanting + \ ismagiceffectforenchantingc + \ ismagiceffectforspellmaking + \ ismagiceffectforspellmakingc + \ ismagiceffecthostile + \ ismagiceffecthostilec + \ ismagiceffectmagnitudepercent + \ ismagiceffectmagnitudepercentc + \ ismagiceffectonselfallowed + \ ismagiceffectonselfallowedc + \ ismagiceffectontargetallowed + \ ismagiceffectontargetallowedc + \ ismagiceffectontouchallowed + \ ismagiceffectontouchallowedc + \ ismagicitemautocalc + \ ismajor + \ ismajorc + \ ismajorref + \ ismapmarkervisible + \ ismecanrecover + \ ismecanrecoverc + \ ismedetrimental + \ ismedetrimentalc + \ ismeforenchanting + \ ismeforenchantingc + \ ismeforspellmaking + \ ismeforspellmakingc + \ ismehostile + \ ismehostilec + \ ismemagnitudepercent + \ ismemagnitudepercentc + \ ismeonselfallowed + \ ismeonselfallowedc + \ ismeontargetallowed + \ ismeontargetallowedc + \ ismeontouchallowed + \ ismeontouchallowedc + \ isminimalusedoor + \ ismiscitem + \ ismodelpathvalid + \ ismodloaded + \ ismovingbackward + \ ismovingforward + \ ismovingleft + \ ismovingright + \ isnaked + \ isnthactiveeffectapplied + \ isntheffectitemscripted + \ isntheffectitemscripthostile + \ isntheishostile + \ isobliviongate + \ isoblivioninterior + \ isoblivionworld + \ isofflimits + \ isonground + \ ispathnodedisabled + \ ispcleveloffset + \ ispersistent + \ isplayable + \ isplayable2 + \ isplugininstalled + \ ispoison + \ ispotion + \ ispowerattacking + \ isprintable + \ ispunctuation + \ isquestcomplete + \ isquestitem + \ isracebonusskill + \ isracebonusskillc + \ israceplayable + \ isrecoiling + \ isrefdeleted + \ isreference + \ isrefessential + \ isscripted + \ issigilstone + \ issoulgem + \ isspellhostile + \ isstaggered + \ issummonable + \ istaken + \ istextinputinuse + \ isthirdperson + \ isturningleft + \ isturningright + \ isunderwater + \ isunsaferespawns + \ isuppercase + \ isweapon + \ leftshift + \ linktodoor + \ loadgameex + \ log + \ log10 + \ logicaland + \ logicalnot + \ logicalor + \ logicalxor + \ magiceffectcodefromchars + \ magiceffectfromchars + \ magiceffectfromcode + \ magiceffectfxpersists + \ magiceffectfxpersistsc + \ magiceffecthasnoarea + \ magiceffecthasnoareac + \ magiceffecthasnoduration + \ magiceffecthasnodurationc + \ magiceffecthasnohiteffect + \ magiceffecthasnohiteffectc + \ magiceffecthasnoingredient + \ magiceffecthasnoingredientc + \ magiceffecthasnomagnitude + \ magiceffecthasnomagnitudec + \ magiceffectusesarmor + \ magiceffectusesarmorc + \ magiceffectusesattribute + \ magiceffectusesattributec + \ magiceffectusescreature + \ magiceffectusescreaturec + \ magiceffectusesotheractorvalue + \ magiceffectusesotheractorvaluec + \ magiceffectusesskill + \ magiceffectusesskillc + \ magiceffectusesweapon + \ magiceffectusesweaponc + \ magichaseffect + \ magichaseffectc + \ magicitemhaseffect + \ magicitemhaseffectcode + \ magicitemhaseffectcount + \ magicitemhaseffectcountc + \ magicitemhaseffectcountcode + \ magicitemhaseffectitemscript + \ matadd + \ matchpotion + \ matinv + \ matmult + \ matrixadd + \ matrixdeterminant + \ matrixinvert + \ matrixmultiply + \ matrixrref + \ matrixscale + \ matrixsubtract + \ matrixtrace + \ matrixtranspose + \ matscale + \ matsubtract + \ mecodefromchars + \ mefxpersists + \ mefxpersistsc + \ mehasnoarea + \ mehasnoareac + \ mehasnoduration + \ mehasnodurationc + \ mehasnohiteffect + \ mehasnohiteffectc + \ mehasnoingredient + \ mehasnoingredientc + \ mehasnomagnitude + \ mehasnomagnitudec + \ menuholdkey + \ menumode + \ menureleasekey + \ menutapkey + \ messageboxex + \ messageex + \ meusesarmor + \ meusesarmorc + \ meusesattribute + \ meusesattributec + \ meusescreature + \ meusescreaturec + \ meusesotheractorvalue + \ meusesotheractorvaluec + \ meusesskill + \ meusesskillc + \ meusesweapon + \ meusesweaponc + \ modactorvalue2 + \ modactorvaluec + \ modarmorar + \ modattackdamage + \ modav2 + \ modavc + \ modavmod + \ modavmodc + \ modcurrentcharge + \ modelpathincludes + \ modenchantmentcharge + \ modenchantmentcost + \ modequippedcurrentcharge + \ modequippedcurrenthealth + \ modfemalebipedpath + \ modfemalegroundpath + \ modfemaleiconpath + \ modgoldvalue + \ modiconpath + \ modlocaldataexists + \ modmalebipedpath + \ modmalegroundpath + \ modmaleiconpath + \ modmodelpath + \ modname + \ modnthactiveeffectmagnitude + \ modnthaemagnitude + \ modntheffectitemarea + \ modntheffectitemduration + \ modntheffectitemmagnitude + \ modntheffectitemscriptname + \ modntheiarea + \ modntheiduration + \ modntheimagnitude + \ modntheisname + \ modobjectcharge + \ modobjecthealth + \ modpcmovementspeed + \ modpcspelleffectiveness + \ modplayerskillexp + \ modplayerskillexpc + \ modquality + \ modsigilstoneuses + \ modspellmagickacost + \ modweaponreach + \ modweaponspeed + \ modweight + \ movemousex + \ movemousey + \ movetextinputcursor + \ nameincludes + \ numtohex + \ offersapparatus + \ offersarmor + \ offersbooks + \ offersclothing + \ offersingredients + \ offerslights + \ offersmagicitems + \ offersmiscitems + \ offerspotions + \ offersrecharging + \ offersrepair + \ offersservicesc + \ offersspells + \ offerstraining + \ offersweapons + \ oncontroldown + \ onkeydown + \ opentextinput + \ outputlocalmappicturesoverride + \ overrideactorswimbreath + \ parentcellhaswater + \ pathedgeexists + \ playidle + \ pow + \ print + \ printactivetileinfo + \ printc + \ printd + \ printtileinfo + \ printtoconsole + \ questexists + \ racos + \ rand + \ rasin + \ ratan + \ ratan2 + \ rcos + \ rcosh + \ refreshcurrentclimate + \ releasekey + \ removealleffectitems + \ removebasespell + \ removeenchantment + \ removeequippedweaponpoison + \ removeeventhandler + \ removefromleveledlist + \ removeitemns + \ removelevitembylevel + \ removemeir + \ removemodlocaldata + \ removentheffect + \ removentheffectitem + \ removenthlevitem + \ removenthmagiceffectcounter + \ removenthmagiceffectcounterc + \ removenthmecounter + \ removenthmecounterc + \ removescript + \ removescr + \ removespellns + \ resetallvariables + \ resetfalrior + \ resolvemodindex + \ rightshift + \ rotmat + \ rowvec + \ rsin + \ rsinh + \ rtan + \ rtanh + \ runbatchscript + \ runscriptline + \ saespassalarm + \ setactivequest + \ setactrfullname + \ setactormaxswimbreath + \ setactorrespawns + \ setactorswimbreath + \ setactorvaluec + \ setalvisible + \ setaltcontrol2 + \ setapparatustype + \ setarmorar + \ setarmortype + \ setarrowprojectilebowenchantment + \ setarrowprojectileenchantment + \ setarrowprojectilepoison + \ setattackdamage + \ setavc + \ setavmod + \ setavmodc + \ setbaseform + \ setbipediconpathex + \ setbipedmodelpathex + \ setbipedslotmask + \ setbookcantbetaken + \ setbookisscroll + \ setbookskilltaught + \ setbuttonpressed + \ setcalcalllevels + \ setcamerafov2 + \ setcancastpower + \ setcancorpsecheck + \ setcanfasttravelfromworld + \ setcantraveltomapmarker + \ setcantwait + \ setcellbehavesasexterior + \ setcellclimate + \ setcellhaswater + \ setcellispublic + \ setcelllighting + \ setcellmusictype + \ setcellublicflag + \ setcellresethours + \ setcellwaterheight + \ setcellwatertype + \ setchancenone + \ setclassattribute + \ setclassattributec + \ setclassskills + \ setclassskills2 + \ setclassspecialization + \ setclimatehasmasser + \ setclimatehasmassser + \ setclimatehassecunda + \ setclimatemoonphaselength + \ setclimatesunrisebegin + \ setclimatesunriseend + \ setclimatesunsetbegin + \ setclimatesunsetend + \ setclimatevolatility + \ setclosesound + \ setcloudspeedlower + \ setcloudspeedupper + \ setcombatstyle + \ setcombatstyleacrobaticsdodgechance + \ setcombatstyleattackchance + \ setcombatstyleattackduringblockmult + \ setcombatstyleattacknotunderattackmult + \ setcombatstyleattackskillmodbase + \ setcombatstyleattackskillmodmult + \ setcombatstyleattackunderattackmult + \ setcombatstyleblockchance + \ setcombatstyleblocknotunderattackmult + \ setcombatstyleblockskillmodbase + \ setcombatstyleblockskillmodmult + \ setcombatstyleblockunderattackmult + \ setcombatstylebuffstandoffdist + \ setcombatstyledodgebacknotunderattackmult + \ setcombatstyledodgebacktimermax + \ setcombatstyledodgebacktimermin + \ setcombatstyledodgebackunderattackmult + \ setcombatstyledodgechance + \ setcombatstyledodgefatiguemodbase + \ setcombatstyledodgefatiguemodmult + \ setcombatstyledodgefwattackingmult + \ setcombatstyledodgefwnotattackingmult + \ setcombatstyledodgefwtimermax + \ setcombatstyledodgefwtimermin + \ setcombatstyledodgelrchance + \ setcombatstyledodgelrtimermax + \ setcombatstyledodgelrtimermin + \ setcombatstyledodgenotunderattackmult + \ setcombatstyledodgeunderattackmult + \ setcombatstyleencumberedspeedmodbase + \ setcombatstyleencumberedspeedmodmult + \ setcombatstylefleeingdisabled + \ setcombatstylegroupstandoffdist + \ setcombatstyleh2hbonustoattack + \ setcombatstyleholdtimermax + \ setcombatstyleholdtimermin + \ setcombatstyleidletimermax + \ setcombatstyleidletimermin + \ setcombatstyleignorealliesinarea + \ setcombatstylekobonustoattack + \ setcombatstylekobonustopowerattack + \ setcombatstylemeleealertok + \ setcombatstylepowerattackchance + \ setcombatstylepowerattackfatiguemodbase + \ setcombatstylepowerattackfatiguemodmult + \ setcombatstyleprefersranged + \ setcombatstylerangedstandoffdist + \ setcombatstylerangemaxmult + \ setcombatstylerangeoptimalmult + \ setcombatstylerejectsyields + \ setcombatstylerushattackchance + \ setcombatstylerushattackdistmult + \ setcombatstylestaggerbonustoattack + \ setcombatstylestaggerbonustopowerattack + \ setcombatstyleswitchdistmelee + \ setcombatstyleswitchdistranged + \ setcombatstylewillyield + \ setcontainerrespawns + \ setcontrol + \ setcreatureskill + \ setcreaturesoundbase + \ setcreaturetype + \ setcurrentcharge + \ setcurrenthealth + \ setcurrentsoullevel + \ setdebugmode + \ setdescription + \ setdetectionstate + \ setdisableglobalcollision + \ setdoorteleport + \ setenchantment + \ setenchantmentcharge + \ setenchantmentcost + \ setenchantmenttype + \ setequipmentslot + \ setequippedcurrentcharge + \ setequippedcurrenthealth + \ setequippedweaponpoison + \ seteventhandler + \ seteyes + \ setfactionevil + \ setfactionhasspecialcombat + \ setfactionhidden + \ setfactonreaction + \ setfactionspecialcombat + \ setfemale + \ setfemalebipedpath + \ setfemalegroundpath + \ setfemaleiconpath + \ setflycameraspeedmult + \ setfogdayfar + \ setfogdaynear + \ setfognightfar + \ setfognightnear + \ setforcsneak + \ setfunctionvalue + \ setgamedifficulty + \ setgoldvalue + \ setgoldvalue_t + \ setgoldvaluet + \ sethair + \ setharvested + \ sethasbeenpickedup + \ sethdrvalue + \ sethidesamulet + \ sethidesrings + \ sethotkeyitem + \ seticonpath + \ setignoresresistance + \ setingredient + \ setingredientchance + \ setinputtext + \ setinvertfasttravel + \ setisautomaticdoor + \ setiscontrol + \ setisfood + \ setishiddendoor + \ setisminimalusedoor + \ setisobliviongate + \ setisplayable + \ setlevcreaturetemplate + \ setlightduration + \ setlightningfrequency + \ setlightradius + \ setlightrgb + \ setlocalgravity + \ setlocalgravityvector + \ setloopsound + \ setlowlevelprocessing + \ setmaagiceffectuseactorvalue + \ setmagiceffectareasound + \ setmagiceffectareasoundc + \ setmagiceffectbarterfactor + \ setmagiceffectbarterfactorc + \ setmagiceffectbasecost + \ setmagiceffectbasecostc + \ setmagiceffectboltsound + \ setmagiceffectboltsoundc + \ setmagiceffectcanrecover + \ setmagiceffectcanrecoverc + \ setmagiceffectcastingsound + \ setmagiceffectcastingsoundc + \ setmagiceffectcounters + \ setmagiceffectcountersc + \ setmagiceffectenchantfactor + \ setmagiceffectenchantfactorc + \ setmagiceffectenchantshader + \ setmagiceffectenchantshaderc + \ setmagiceffectforenchanting + \ setmagiceffectforenchantingc + \ setmagiceffectforspellmaking + \ setmagiceffectforspellmakingc + \ setmagiceffectfxpersists + \ setmagiceffectfxpersistsc + \ setmagiceffecthitshader + \ setmagiceffecthitshaderc + \ setmagiceffecthitsound + \ setmagiceffecthitsoundc + \ setmagiceffecticon + \ setmagiceffecticonc + \ setmagiceffectisdetrimental + \ setmagiceffectisdetrimentalc + \ setmagiceffectishostile + \ setmagiceffectishostilec + \ setmagiceffectlight + \ setmagiceffectlightc + \ setmagiceffectmagnitudepercent + \ setmagiceffectmagnitudepercentc + \ setmagiceffectmodel + \ setmagiceffectmodelc + \ setmagiceffectname + \ setmagiceffectnamec + \ setmagiceffectnoarea + \ setmagiceffectnoareac + \ setmagiceffectnoduration + \ setmagiceffectnodurationc + \ setmagiceffectnohiteffect + \ setmagiceffectnohiteffectc + \ setmagiceffectnoingredient + \ setmagiceffectnoingredientc + \ setmagiceffectnomagnitude + \ setmagiceffectnomagnitudec + \ setmagiceffectonselfallowed + \ setmagiceffectonselfallowedc + \ setmagiceffectontargetallowed + \ setmagiceffectontargetallowedc + \ setmagiceffectontouchallowed + \ setmagiceffectontouchallowedc + \ setmagiceffectotheractorvalue + \ setmagiceffectotheractorvaluec + \ setmagiceffectprojectilespeed + \ setmagiceffectprojectilespeedc + \ setmagiceffectresistvalue + \ setmagiceffectresistvaluec + \ setmagiceffectschool + \ setmagiceffectschoolc + \ setmagiceffectuseactorvaluec + \ setmagiceffectusedobject + \ setmagiceffectusedobjectc + \ setmagiceffectusesactorvalue + \ setmagiceffectusesactorvaluec + \ setmagiceffectusesarmor + \ setmagiceffectusesarmorc + \ setmagiceffectusesattribute + \ setmagiceffectusesattributec + \ setmagiceffectusescreature + \ setmagiceffectusescreaturec + \ setmagiceffectusesskill + \ setmagiceffectusesskillc + \ setmagiceffectusesweapon + \ setmagiceffectusesweaponc + \ setmagicitemautocalc + \ setmagicprojectilespell + \ setmalebipedpath + \ setmalegroundpath + \ setmaleiconpath + \ setmapmarkertype + \ setmapmarkervisible + \ setmeareasound + \ setmeareasoundc + \ setmebarterfactor + \ setmebarterfactorc + \ setmebasecost + \ setmebasecostc + \ setmeboltsound + \ setmeboltsoundc + \ setmecanrecover + \ setmecanrecoverc + \ setmecastingsound + \ setmecastingsoundc + \ setmeenchantfactor + \ setmeenchantfactorc + \ setmeenchantshader + \ setmeenchantshaderc + \ setmeforenchanting + \ setmeforenchantingc + \ setmeforspellmaking + \ setmeforspellmakingc + \ setmefxpersists + \ setmefxpersistsc + \ setmehitshader + \ setmehitshaderc + \ setmehitsound + \ setmehitsoundc + \ setmeicon + \ setmeiconc + \ setmeisdetrimental + \ setmeisdetrimentalc + \ setmeishostile + \ setmeishostilec + \ setmelight + \ setmelightc + \ setmemagnitudepercent + \ setmemagnitudepercentc + \ setmemodel + \ setmemodelc + \ setmename + \ setmenamec + \ setmenoarea + \ setmenoareac + \ setmenoduration + \ setmenodurationc + \ setmenohiteffect + \ setmenohiteffectc + \ setmenoingredient + \ setmenoingredientc + \ setmenomagnitude + \ setmenomagnitudec + \ setmenufloatvalue + \ setmenustringvalue + \ setmeonselfallowed + \ setmeonselfallowedc + \ setmeontargetallowed + \ setmeontargetallowedc + \ setmeontouchallowed + \ setmeontouchallowedc + \ setmeotheractorvalue + \ setmeotheractorvaluec + \ setmeprojectilespeed + \ setmeprojectilespeedc + \ setmerchantcontainer + \ setmeresistvalue + \ setmeresistvaluec + \ setmeschool + \ setmeschoolc + \ setmessageicon + \ setmessagesound + \ setmeuseactorvalue + \ setmeuseactorvaluec + \ setmeusedobject + \ setmeusedobjectc + \ setmeusesarmor + \ setmeusesarmorc + \ setmeusesattribute + \ setmeusesattributec + \ setmeusescreature + \ setmeusescreaturec + \ setmeusesskill + \ setmeusesskillc + \ setmeusesweapon + \ setmeusesweaponc + \ setmodelpath + \ setmodlocaldata + \ setmousespeedx + \ setmousespeedy + \ setmpspell + \ setname + \ setnameex + \ setnopersuasion + \ setnthactiveeffectmagnitude + \ setnthaemagnitude + \ setntheffectitemactorvalue + \ setntheffectitemactorvaluec + \ setntheffectitemarea + \ setntheffectitemduration + \ setntheffectitemmagnitude + \ setntheffectitemrange + \ setntheffectitemscript + \ setntheffectitemscripthostile + \ setntheffectitemscriptname + \ setntheffectitemscriptnameex + \ setntheffectitemscriptschool + \ setntheffectitemscriptvisualeffect + \ setntheffectitemscriptvisualeffectc + \ setntheiarea + \ setntheiav + \ setntheiavc + \ setntheiduration + \ setntheimagnitude + \ setntheirange + \ setntheiscript + \ setntheishostile + \ setntheisname + \ setntheisschool + \ setntheisvisualeffect + \ setntheisvisualeffectc + \ setnthfactionranknameex + \ setnumericgamesetting + \ setnumericinisetting + \ setobjectcharge + \ setobjecthealth + \ setoffersapparatus + \ setoffersarmor + \ setoffersbooks + \ setoffersclothing + \ setoffersingredients + \ setofferslights + \ setoffersmagicitems + \ setoffersmiscitems + \ setofferspotions + \ setoffersrecharging + \ setoffersrepair + \ setoffersservicesc + \ setoffersspells + \ setofferstraining + \ setoffersweapons + \ setolmpgrids + \ setopenkey + \ setopensound + \ setopenstip + \ setownership_t + \ setowningrequiredrank + \ setpackageallowfalls + \ setpackageallowswimming + \ setpackagealwaysrun + \ setpackagealwayssneak + \ setpackagearmorunequipped + \ setpackagecontinueifpcnear + \ setpackagedata + \ setpackagedefensivecombat + \ setpackagelocationdata + \ setpackagelockdoorsatend + \ setpackagelockdoorsatlocation + \ setpackagelockdoorsatstart + \ setpackagemustcomplete + \ setpackagemustreachlocation + \ setpackagenoidleanims + \ setpackageoffersservices + \ setpackageonceperday + \ setpackagescheduledata + \ setpackageskipfalloutbehavior + \ setpackagetarget + \ setpackagetargetdata + \ setpackageunlockdoorsatend + \ setpackageunlockdoorsatlocation + \ setpackageunlockdoorsatstart + \ setpackageusehorse + \ setpackageweaponsunequipped + \ setparentcellowningfactionrequiredrank + \ setpathnodedisabled + \ setpcamurderer + \ setpcattributebonus + \ setpcattributebonusc + \ setpcexpy + \ setpcleveloffset + \ setpcmajorskillups + \ setpctrainingsessionsused + \ setplayerbseworld + \ setplayerprojectile + \ setplayerskeletonpath + \ setplayerskilladvances + \ setplayerskilladvancesc + \ setplayerslastriddenhorse + \ setpos_t + \ setpowertimer + \ setprojectilesource + \ setprojectilespeed + \ setquality + \ setquestitem + \ setracealias + \ setraceplayable + \ setracescale + \ setracevoice + \ setraceweight + \ setrefcount + \ setrefessential + \ setreale + \ setscaleex + \ setscript + \ setsigilstoneuses + \ setskillgoverningattribute + \ setskillgoverningattributec + \ setskillspecialization + \ setskillspecializationc + \ setskilluseincrement + \ setskilluseincrementc + \ setsoulgemcapacity + \ setsoullevel + \ setsoundattenuation + \ setspellareaeffectignoreslos + \ setspelldisallowabsorbreflect + \ setspellexplodeswithnotarget + \ setspellhostile + \ setspellimmunetosilence + \ setspellmagickacost + \ setspellmasterylevel + \ setspellpcstart + \ setspellscripteffectalwaysapplies + \ setspelltype + \ setstagedate + \ setstagetext + \ setstringgamesettingex + \ setstringinisetting + \ setsummonable + \ setsundamage + \ setsunglare + \ settaken + \ settextinputcontrolhandler + \ settextinputdefaultcontrolsdisabled + \ settextinputhandler + \ settexturepath + \ settimeleft + \ settrainerlevel + \ settrainerskill + \ settransdelta + \ settravelhorse + \ setunsafecontainer + \ setvelocity + \ setverticalvelocity + \ setweaponreach + \ setweaponspeed + \ setweapontype + \ setweathercloudspeedlower + \ setweathercloudspeedupper + \ setweathercolor + \ setweatherfogdayfar + \ setweatherfogdaynear + \ setweatherfognightfar + \ setweatherfognightnear + \ setweatherhdrvalue + \ setweatherlightningfrequency + \ setweathersundamage + \ setweathersunglare + \ setweathertransdelta + \ setweatherwindspeed + \ setweight + \ setwindspeed + \ showellmaking + \ sin + \ sinh + \ skipansqrt + \ squareroot + \ startcc + \ stringtoactorvalue + \ tan + \ tanh + \ tapcontrol + \ tapkey + \ testexpr + \ thiactorsai + \ togglecreaturemodel + \ togglefirstperson + \ toggleskillperk + \ togglespecialanim + \ tolower + \ tonumber + \ tostring + \ toupper + \ trapuphitshader + \ triggerplayerskilluse + \ triggerplayerskillusec + \ typeof + \ uncompletequest + \ unequipitemns + \ unequipitemsilent + \ unequipme + \ unhammerkey + \ unsetstagetext + \ update3d + \ updatecontainermenu + \ updatespellpurchasemenu + \ updatetextinput + \ vecmag + \ vecnorm + \ vectorcross + \ vectordot + \ vectormagnitude + \ vectornormalize + \ zeromat +" }}} + +" Array Functions {{{ +syn keyword obseArrayFunction + \ ar_Append + \ ar_BadNumericIndex + \ ar_BadStringIndex + \ ar_Construct + \ ar_Copy + \ ar_CustomSort + \ ar_DeepCopy + \ ar_Dump + \ ar_DumpID + \ ar_Erase + \ ar_Find + \ ar_First + \ ar_HasKey + \ ar_Insert + \ ar_InsertRange + \ ar_Keys + \ ar_Last + \ ar_List + \ ar_Map + \ ar_Next + \ ar_Null + \ ar_Prev + \ ar_Range + \ ar_Resize + \ ar_Size + \ ar_Sort + \ ar_SortAlpha +" }}} + +" String Functions {{{ +syn keyword obseStringFunction + \ sv_ToLower + \ sv_ToUpper + \ sv_Compare + \ sv_Construct + \ sv_Count + \ sv_Destruct + \ sv_Erase + \ sv_Find + \ sv_Insert + \ sv_Length + \ sv_Percentify + \ sv_Replace + \ sv_Split + \ sv_ToNumeric +" }}} + +" Pluggy Functions {{{ +syn keyword pluggyFunction + \ ArrayCmp + \ ArrayCount + \ ArrayEsp + \ ArrayProtect + \ ArraySize + \ AutoSclHudS + \ AutoSclHudT + \ CopyArray + \ CopyString + \ CreateArray + \ CreateEspBook + \ CreateString + \ DelAllHudSs + \ DelAllHudTs + \ DelFile + \ DelHudS + \ DelHudT + \ DelTxtFile + \ DestroyAllArrays + \ DestroyAllStrings + \ DestroyArray + \ DestroyString + \ DupArray + \ EspToString + \ FileToString + \ FindFirstFile + \ FindFloatInArray + \ FindInArray + \ FindNextFile + \ FindRefInArray + \ FirstFreeInArray + \ FirstInArray + \ FixName + \ FixNameEx + \ FloatToString + \ FmtString + \ FromOBSEString + \ FromTSFC + \ GetEsp + \ GetFileSize + \ GetInArray + \ GetRefEsp + \ GetTypeInArray + \ Halt + \ HasFixedName + \ HudSEsp + \ HudSProtect + \ HudS_Align + \ HudS_L + \ HudS_Opac + \ HudS_SclX + \ HudS_SclY + \ HudS_Show + \ HudS_Tex + \ HudS_X + \ HudS_Y + \ HudTEsp + \ HudTInfo + \ HudTProtect + \ HudT_Align + \ HudT_Font + \ HudT_L + \ HudT_Opac + \ HudT_SclX + \ HudT_SclY + \ HudT_Show + \ HudT_Text + \ HudT_X + \ HudT_Y + \ HudsInfo + \ IniDelKey + \ IniGetNthSection + \ IniKeyExists + \ IniReadFloat + \ IniReadInt + \ IniReadRef + \ IniReadString + \ IniSectionsCount + \ IniWriteFloat + \ IniWriteInt + \ IniWriteRef + \ IniWriteString + \ IntToHex + \ IntToString + \ IsHUDEnabled + \ IsPluggyDataReset + \ KillMenu + \ LC + \ LongToRef + \ ModRefEsp + \ NewHudS + \ NewHudT + \ PackArray + \ PauseBox + \ PlgySpcl + \ RefToLong + \ RefToString + \ RemInArray + \ RenFile + \ RenTxtFile + \ ResetName + \ RunBatString + \ SanString + \ ScreenInfo + \ SetFloatInArray + \ SetHudT + \ SetInArray + \ SetRefInArray + \ SetString + \ StrLC + \ StringCat + \ StringCmp + \ StringEsp + \ StringGetName + \ StringGetNameEx + \ StringIns + \ StringLen + \ StringMsg + \ StringMsgBox + \ StringPos + \ StringProtect + \ StringRep + \ StringSetName + \ StringSetNameEx + \ StringToFloat + \ StringToInt + \ StringToRef + \ StringToTxtFile + \ ToOBSE + \ ToOBSEString + \ ToTSFC + \ TxtFileExists + \ UserFileExists + \ csc + \ rcsc +" }}} + +" tfscFunction {{{ +syn keyword tfscFunction + \ StrAddNewLine + \ StrAppend + \ StrAppendCharCode + \ StrCat + \ StrClear + \ StrClearLast + \ StrCompare + \ StrCopy + \ StrDel + \ StrDeleteAll + \ StrExpr + \ StrGetFemaleBipedPath + \ StrGetFemaleGroundPath + \ StrGetFemaleIconPath + \ StrGetMaleBipedPath + \ StrGetMaleIconPath + \ StrGetModelPath + \ StrGetName + \ StrGetNthEffectItemScriptName + \ StrGetNthFactionRankName + \ StrGetRandomName + \ StrIDReplace + \ StrLength + \ StrLoad + \ StrMessageBox + \ StrNew + \ StrPrint + \ StrReplace + \ StrSave + \ StrSet + \ StrSetFemaleBipedPath + \ StrSetFemaleGroundPath + \ StrSetFemaleIconPath + \ StrSetMaleBipedPath + \ StrSetMaleIconPath + \ StrSetModelPath + \ StrSetName + \ StrSetNthEffectItemScriptName +" }}} + +" Blockhead Functions {{{ +syn keyword blockheadFunction + \ GetBodyAssetOverride + \ GetFaceGenAge + \ GetHeadAssetOverride + \ RefreshAnimData + \ RegisterEquipmentOverrideHandler + \ ResetAgeTextureOverride + \ ResetBodyAssetOverride + \ ResetHeadAssetOverride + \ SetAgeTextureOverride + \ SetBodyAssetOverride + \ SetFaceGenAge + \ SetHeadAssetOverride + \ ToggleAnimOverride + \ UnregisterEquipmentOverrideHandler +" }}} + +" switchNightEyeShaderFunction {{{ +syn keyword switchNightEyeShaderFunction + \ EnumNightEyeShader + \ SetNightEyeShader +" }}} + +" Oblivion Reloaded Functions {{{ +syn keyword obseivionReloadedFunction + \ cameralookat + \ cameralookatposition + \ camerareset + \ camerarotate + \ camerarotatetoposition + \ cameratranslate + \ cameratranslatetoposition + \ getlocationname + \ getsetting + \ getversion + \ getweathername + \ isthirdperson + \ setcustomconstant + \ setextraeffectenabled + \ setsetting +" }}} +" menuQue Functions {{{ +syn keyword menuQueFunction + \ GetAllSkills + \ GetAVSkillMasteryLevelC + \ GetAVSkillMasteryLevelF + \ GetFontLoaded + \ GetGenericButtonPressed + \ GetLoadedFonts + \ GetLocalMapSeen + \ GetMenuEventType + \ GetMenuFloatValue + \ GetMenuStringValue + \ GetMouseImage + \ GetMousePos + \ GetPlayerSkillAdvancesF + \ GetPlayerSkillUseF + \ GetRequiredSkillExpC + \ GetRequiredSkillExpF + \ GetSkillCode + \ GetSkillForm + \ GetSkillGoverningAttributeF + \ GetSkillSpecializationC + \ GetSkillSpecializationF + \ GetSkillUseIncrementF + \ GetTextEditBox + \ GetTextEditString + \ GetTrainingMenuCost + \ GetTrainingMenuLevel + \ GetTrainingMenuSkill + \ GetWorldMapData + \ GetWorldMapDoor + \ IncrementPlayerSkillUseF + \ InsertXML + \ InsertXMLTemplate + \ IsTextEditInUse + \ Kyoma_Test + \ ModPlayerSkillExpF + \ mqCreateMenuFloatValue + \ mqCreateMenuStringValue + \ mqGetActiveQuest + \ mqGetActiveQuestTargets + \ mqGetCompletedQuests + \ mqGetCurrentQuests + \ mqGetEnchMenuBaseItem + \ mqGetHighlightedClass + \ mqGetMapMarkers + \ mqGetMenuActiveChildIndex + \ mqGetMenuActiveFloatValue + \ mqGetMenuActiveStringValue + \ mqGetMenuChildCount + \ mqGetMenuChildFloatValue + \ mqGetMenuChildHasTrait + \ mqGetMenuChildName + \ mqGetMenuChildStringValue + \ mqGetMenuGlobalFloatValue + \ mqGetMenuGlobalStringValue + \ mqGetQuestCompleted + \ mqGetSelectedClass + \ mqSetActiveQuest + \ mqSetMenuActiveFloatValue + \ mqSetMenuActiveStringValue + \ mqSetMenuChildFloatValue + \ mqSetMenuChildStringValue + \ mqSetMenuGlobalStringValue + \ mqSetMenuGlobalFloatValue + \ mqSetMessageBoxSource + \ mqUncompleteQuest + \ RemoveMenuEventHandler + \ SetMenuEventHandler + \ SetMouseImage + \ SetPlayerSkillAdvancesF + \ SetSkillGoverningAttributeF + \ SetSkillSpecializationC + \ SetSkillSpecializationF + \ SetSkillUseIncrementF + \ SetTextEditString + \ SetTrainerSkillC + \ SetWorldMapData + \ ShowGenericMenu + \ ShowLevelUpMenu + \ ShowMagicPopupMenu + \ ShowTextEditMenu + \ ShowTrainingMenu + \ tile_FadeFloat + \ tile_GetFloat + \ tile_GetInfo + \ tile_GetName + \ tile_GetString + \ tile_GetVar + \ tile_HasTrait + \ tile_SetFloat + \ tile_SetString + \ TriggerPlayerSkillUseF + \ UpdateLocalMap +" }}} + +" eaxFunction {{{ +syn keyword eaxFunction + \ CreateEAXeffect + \ DeleteEAXeffect + \ DisableEAX + \ EAXcopyEffect + \ EAXeffectExists + \ EAXeffectsAreEqual + \ EAXgetActiveEffect + \ EAXnumEffects + \ EAXpushEffect + \ EAXpopEffect + \ EAXremoveAllInstances + \ EAXremoveFirstInstance + \ EAXstackIsEmpty + \ EAXstackSize + \ EnableEAX + \ GetEAXAirAbsorptionHF + \ GetEAXDecayHFRatio + \ GetEAXDecayTime + \ GetEAXEnvironment + \ GetEAXEnvironmentSize + \ GetEAXEnvironmentDiffusion + \ GetEAXReflections + \ GetEAXReflectionsDelay + \ GetEAXReverb + \ GetEAXReverbDelay + \ GetEAXRoom + \ GetEAXRoomHF + \ GetEAXRoomRolloffFactor + \ InitializeEAX + \ IsEAXEnabled + \ IsEAXInitialized + \ SetEAXAirAbsorptionHF + \ SetEAXallProperties + \ SetEAXDecayTime + \ SetEAXDecayHFRatio + \ SetEAXEnvironment + \ SetEAXEnvironmentSize + \ SetEAXEnvironmentDiffusion + \ SetEAXReflections + \ SetEAXReflectionsDelay + \ SetEAXReverb + \ SetEAXReverbDelay + \ SetEAXRoom + \ SetEAXRoomHF + \ SetEAXRoomRolloffFactor +" }}} + +" networkPipeFunction {{{ +syn keyword networkPipeFunction + \ NetworkPipe_CreateClient + \ NetworkPipe_GetData + \ NetworkPipe_IsNewGame + \ NetworkPipe_KillClient + \ NetworkPipe_Receive + \ NetworkPipe_SetData + \ NetworkPipe_Send + \ NetworkPipe_StartService + \ NetworkPipe_StopService +" }}} + +" nifseFunction {{{ +syn keyword nifseFunction + \ BSFurnitureMarkerGetPositionRefs + \ BSFurnitureMarkerSetPositionRefs + \ GetNifTypeIndex + \ NiAVObjectAddProperty + \ NiAVObjectClearCollisionObject + \ NiAVObjectCopyCollisionObject + \ NiAVObjectDeleteProperty + \ NiAVObjectGetCollisionMode + \ NiAVObjectGetCollisionObject + \ NiAVObjectGetLocalRotation + \ NiAVObjectGetLocalScale + \ NiAVObjectGetLocalTransform + \ NiAVObjectGetLocalTranslation + \ NiAVObjectGetNumProperties + \ NiAVObjectGetProperties + \ NiAVObjectGetPropertyByType + \ NiAVObjectSetCollisionMode + \ NiAVObjectSetLocalRotation + \ NiAVObjectSetLocalScale + \ NiAVObjectSetLocalTransform + \ NiAVObjectSetLocalTranslation + \ NiAlphaPropertyGetBlendState + \ NiAlphaPropertyGetDestinationBlendFunction + \ NiAlphaPropertyGetSourceBlendFunction + \ NiAlphaPropertyGetTestFunction + \ NiAlphaPropertyGetTestState + \ NiAlphaPropertyGetTestThreshold + \ NiAlphaPropertyGetTriangleSortMode + \ NiAlphaPropertySetBlendState + \ NiAlphaPropertySetDestinationBlendFunction + \ NiAlphaPropertySetSourceBlendFunction + \ NiAlphaPropertySetTestFunction + \ NiAlphaPropertySetTestState + \ NiAlphaPropertySetTestThreshold + \ NiAlphaPropertySetTriangleSortMode + \ NiExtraDataGetArray + \ NiExtraDataGetName + \ NiExtraDataGetNumber + \ NiExtraDataGetString + \ NiExtraDataSetArray + \ NiExtraDataSetName + \ NiExtraDataSetNumber + \ NiExtraDataSetString + \ NiMaterialPropertyGetAmbientColor + \ NiMaterialPropertyGetDiffuseColor + \ NiMaterialPropertyGetEmissiveColor + \ NiMaterialPropertyGetGlossiness + \ NiMaterialPropertyGetSpecularColor + \ NiMaterialPropertyGetTransparency + \ NiMaterialPropertySetAmbientColor + \ NiMaterialPropertySetDiffuseColor + \ NiMaterialPropertySetEmissiveColor + \ NiMaterialPropertySetGlossiness + \ NiMaterialPropertySetSpecularColor + \ NiMaterialPropertySetTransparency + \ NiNodeAddChild + \ NiNodeCopyChild + \ NiNodeDeleteChild + \ NiNodeGetChildByName + \ NiNodeGetChildren + \ NiNodeGetNumChildren + \ NiObjectGetType + \ NiObjectGetTypeName + \ NiObjectNETAddExtraData + \ NiObjectNETDeleteExtraData + \ NiObjectNETGetExtraData + \ NiObjectNETGetExtraDataByName + \ NiObjectNETGetName + \ NiObjectNETGetNumExtraData + \ NiObjectNETSetName + \ NiObjectTypeDerivesFrom + \ NiSourceTextureGetFile + \ NiSourceTextureIsExternal + \ NiSourceTextureSetExternalTexture + \ NiStencilPropertyGetFaceDrawMode + \ NiStencilPropertyGetFailAction + \ NiStencilPropertyGetPassAction + \ NiStencilPropertyGetStencilFunction + \ NiStencilPropertyGetStencilMask + \ NiStencilPropertyGetStencilRef + \ NiStencilPropertyGetStencilState + \ NiStencilPropertyGetZFailAction + \ NiStencilPropertySetFaceDrawMode + \ NiStencilPropertySetFailAction + \ NiStencilPropertySetPassAction + \ NiStencilPropertySetStencilFunction + \ NiStencilPropertySetStencilMask + \ NiStencilPropertySetStencilRef + \ NiStencilPropertySetStencilState + \ NiStencilPropertySetZFailAction + \ NiTexturingPropertyAddTextureSource + \ NiTexturingPropertyDeleteTextureSource + \ NiTexturingPropertyGetTextureCenterOffset + \ NiTexturingPropertyGetTextureClampMode + \ NiTexturingPropertyGetTextureCount + \ NiTexturingPropertyGetTextureFilterMode + \ NiTexturingPropertyGetTextureFlags + \ NiTexturingPropertyGetTextureRotation + \ NiTexturingPropertyGetTextureSource + \ NiTexturingPropertyGetTextureTiling + \ NiTexturingPropertyGetTextureTranslation + \ NiTexturingPropertyGetTextureUVSet + \ NiTexturingPropertyHasTexture + \ NiTexturingPropertySetTextureCenterOffset + \ NiTexturingPropertySetTextureClampMode + \ NiTexturingPropertySetTextureCount + \ NiTexturingPropertySetTextureFilterMode + \ NiTexturingPropertySetTextureFlags + \ NiTexturingPropertySetTextureHasTransform + \ NiTexturingPropertySetTextureRotation + \ NiTexturingPropertySetTextureTiling + \ NiTexturingPropertySetTextureTranslation + \ NiTexturingPropertySetTextureUVSet + \ NiTexturingPropertyTextureHasTransform + \ NiVertexColorPropertyGetLightingMode + \ NiVertexColorPropertyGetVertexMode + \ NiVertexColorPropertySetLightingMode + \ NiVertexColorPropertySetVertexMode + \ NifClose + \ NifGetAltGrip + \ NifGetBackShield + \ NifGetNumBlocks + \ NifGetOffHand + \ NifGetOriginalPath + \ NifGetPath + \ NifOpen + \ NifWriteToDisk +" }}} + +" reidFunction {{{ +syn keyword reidFunction + \ GetRuntimeEditorID +" }}} + +" runtimeDebuggerFunction {{{ +syn keyword runtimeDebuggerFunction + \ DebugBreak + \ ToggleDebugBreaking +" }}} + +" addActorValuesFunction {{{ +syn keyword addActorValuesFunction + \ DumpActorValueC + \ DumpActorValueF + \ GetActorValueBaseCalcC + \ GetActorValueBaseCalcF + \ GetActorValueCurrentC + \ GetActorValueCurrentF + \ GetActorValueMaxC + \ GetActorValueMaxF + \ GetActorValueModC + \ GetActorValueModF + \ ModActorValueModC + \ ModActorValueModF + \ SetActorValueModC + \ SetActorValueModF + \ DumpAVC + \ DumpAVF + \ GetAVModC + \ GetAVModF + \ ModAVModC + \ ModAVModF + \ SetAVModC + \ SetAVModF + \ GetAVBaseCalcC + \ GetAVBaseCalcF + \ GetAVMaxC + \ GetAVMaxF + \ GetAVCurrentC + \ GetAVCurrent +" }}} + +" memoryDumperFunction {{{ +syn keyword memoryDumperFunction + \ SetDumpAddr + \ SetDumpType + \ SetFadeAmount + \ SetObjectAddr + \ ShowMemoryDump +" }}} + +" algoholFunction {{{ +syn keyword algoholFunction + \ QFromAxisAngle + \ QFromEuler + \ QInterpolate + \ QMultQuat + \ QMultVector3 + \ QNormalize + \ QToEuler + \ V3Crossproduct + \ V3Length + \ V3Normalize +" }}} + +" soundCommandsFunction {{{ +syn keyword soundCommandsFunction + \ FadeMusic + \ GetEffectsVolume + \ GetFootVolume + \ GetMasterVolume + \ GetMusicVolume + \ GetVoiceVolume + \ PlayMusicFile + \ SetEffectsVolume + \ SetFootVolume + \ SetMasterVolume + \ SetMusicVolume + \ SetVoiceVolume +" }}} + +" emcFunction {{{ +syn keyword emcFunction + \ emcAddPathToPlaylist + \ emcCreatePlaylist + \ emcGetAllPlaylists + \ emcGetAfterBattleDelay + \ emcGetBattleDelay + \ emcGetEffectsVolume + \ emcGetFadeTime + \ emcGetFootVolume + \ emcGetMasterVolume + \ emcGetMaxRestoreTime + \ emcGetMusicSpeed + \ emcGetMusicType + \ emcGetMusicVolume + \ emcGetPauseTime + \ emcGetPlaylist + \ emcGetPlaylistTracks + \ emcGetTrackName + \ emcGetTrackDuration + \ emcGetTrackPosition + \ emcGetVoiceVolume + \ emcIsBattleOverridden + \ emcIsMusicOnHold + \ emcIsMusicSwitching + \ emcIsPlaylistActive + \ emcMusicNextTrack + \ emcMusicPause + \ emcMusicRestart + \ emcMusicResume + \ emcMusicStop + \ emcPlaylistExists + \ emcPlayTrack + \ emcRestorePlaylist + \ emcSetAfterBattleDelay + \ emcSetBattleDelay + \ emcSetBattleOverride + \ emcSetEffectsVolume + \ emcSetFadeTime + \ emcSetFootVolume + \ emcSetMasterVolume + \ emcSetMaxRestoreTime + \ emcSetMusicHold + \ emcSetMusicSpeed + \ emcSetMusicVolume + \ emcSetPauseTime + \ emcSetPlaylist + \ emcSetTrackPosition + \ emcSetMusicType + \ emcSetVoiceVolume +" }}} + +" vipcxjFunction {{{ +syn keyword vipcxjFunction + \ vcAddMark + \ vcGetFilePath + \ vcGetHairColorRGB + \ vcGetValueNumeric + \ vcGetValueString + \ vcIsMarked + \ vcPrintIni + \ vcSetActorState + \ vcSetHairColor + \ vcSetHairColorRGB + \ vcSetHairColorRGB3P +" }}} + +" cameraCommandsFunction {{{ +syn keyword cameraCommandsFunction + \ CameraGetRef + \ CameraLookAt + \ CameraLookAtPosition + \ CameraMove + \ CameraMoveToPosition + \ CameraReset + \ CameraRotate + \ CameraRotateToPosition + \ CameraSetRef + \ CameraStopLook +" }}} + +" obmeFunction {{{ +syn keyword obmeFunction + \ ClearNthEIBaseCost + \ ClearNthEIEffectName + \ ClearNthEIHandlerParam + \ ClearNthEIHostility + \ ClearNthEIIconPath + \ ClearNthEIResistAV + \ ClearNthEISchool + \ ClearNthEIVFXCode + \ CreateMgef + \ GetMagicEffectHandlerC + \ GetMagicEffectHandlerParamC + \ GetMagicEffectHostilityC + \ GetNthEIBaseCost + \ GetNthEIEffectName + \ GetNthEIHandlerParam + \ GetNthEIHostility + \ GetNthEIIconPath + \ GetNthEIResistAV + \ GetNthEISchool + \ GetNthEIVFXCode + \ ResolveMgefCode + \ SetMagicEffectHandlerC + \ SetMagicEffectHandlerIntParamC + \ SetMagicEffectHandlerRefParamC + \ SetMagicEffectHostilityC + \ SetNthEIBaseCost + \ SetNthEIEffectName + \ SetNthEIHandlerIntParam + \ SetNthEIHandlerRefParam + \ SetNthEIHostility + \ SetNthEIIconPath + \ SetNthEIResistAV + \ SetNthEISchool + \ SetNthEIVFXCode +" }}} + +" conscribeFunction {{{ +syn keyword conscribeFunction + \ DeleteLinesFromLog + \ GetLogLineCount + \ GetRegisteredLogNames + \ ReadFromLog + \ RegisterLog + \ Scribe + \ UnregisterLog +" }}} + +" systemDialogFunction {{{ +syn keyword systemDialogFunction + \ Sysdlg_Browser + \ Sysdlg_ReadBrowser + \ Sysdlg_TextInput +" }}} + +" csiFunction {{{ +syn keyword csiFunction + \ ClearSpellIcon + \ HasAssignedIcon + \ OverwriteSpellIcon + \ SetSpellIcon +" }}} + +" haelFunction {{{ +syn keyword haelFunction + \ GetHUDActiveEffectLimit + \ SetHUDActiveEffectLimit +" }}} + +" lcdFunction {{{ +syn keyword lcdFunction + \ lcd_addinttobuffer + \ lcd_addtexttobuffer + \ lcd_clearrect + \ lcd_cleartextbuffer + \ lcd_close + \ lcd_drawcircle + \ lcd_drawgrid + \ lcd_drawint + \ lcd_drawline + \ lcd_drawprogressbarh + \ lcd_drawprogressbarv + \ lcd_drawprogresscircle + \ lcd_drawrect + \ lcd_drawtext + \ lcd_drawtextbuffer + \ lcd_drawtexture + \ lcd_flush + \ lcd_getbuttonstate + \ lcd_getheight + \ lcd_getwidth + \ lcd_ismulti + \ lcd_isopen + \ lcd_open + \ lcd_refresh + \ lcd_savebuttonsnapshot + \ lcd_scale + \ lcd_setfont +" }}} + +" Deprecated: {{{ +syn keyword obDeprecated + \ SetAltControl + \ GetAltControl + \ RefreshControlMap +" }}} +" }}} + +if !exists("did_obl_inits") + + let did_obl_inits = 1 + hi def link obseStatement Statement + hi def link obseStatementTwo Statement + hi def link obseDescBlock String + hi def link obseComment Comment + hi def link obseString String + hi def link obseStringFormatting Keyword + hi def link obseFloat Float + hi def link obseInt Number + hi def link obseToDo Todo + hi def link obseTypes Type + hi def link obseCondition Conditional + hi def link obseOperator Operator + hi def link obseOtherKey Special + hi def link obseScriptName Special + hi def link obseBlock Conditional + hi def link obseBlockType Structure + hi def link obseScriptNameRegion Underlined + hi def link obseNames Identifier + hi def link obseVariable Identifier + hi def link obseReference Special + hi def link obseRepeat Repeat + + hi def link csFunction Function + hi def link obseFunction Function + hi def link obseArrayFunction Function + hi def link pluggyFunction Function + hi def link obseStringFunction Function + hi def link obseArrayFunction Function + hi def link tsfcFunction Function + hi def link blockheadFunction Function + hi def link switchNightEyeShaderFunction Function + hi def link obseivionReloadedFunction Function + hi def link menuQueFunction Function + hi def link eaxFunction Function + hi def link networkPipeFunction Function + hi def link nifseFunction Function + hi def link reidFunction Function + hi def link runtimeDebuggerFunction Function + hi def link addActorValuesFunction Function + hi def link memoryDumperFunction Function + hi def link algoholFunction Function + hi def link soundCommandsFunction Function + hi def link emcFunction Function + hi def link vipcxjFunction Function + hi def link cameraCommands Function + hi def link obmeFunction Function + hi def link conscribeFunction Function + hi def link systemDialogFunction Function + hi def link csiFunction Function + hi def link haelFunction Function + hi def link lcdFunction Function + hi def link skillAttribute String + hi def link obDeprecated WarningMsg + +endif + +let b:current_syntax = 'obse' + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/ocaml.vim b/runtime/syntax/ocaml.vim new file mode 100644 index 0000000..af3efd3 --- /dev/null +++ b/runtime/syntax/ocaml.vim @@ -0,0 +1,393 @@ +" Vim syntax file +" Language: OCaml +" Filenames: *.ml *.mli *.mll *.mly +" Maintainers: Markus Mottl +" Karl-Heinz Sylla +" Issac Trotts +" URL: https://github.com/ocaml/vim-ocaml +" Last Change: +" 2018 Nov 08 - Improved highlighting of operators (Maëlan) +" 2018 Apr 22 - Improved support for PPX (Andrey Popp) +" 2018 Mar 16 - Remove raise, lnot and not from keywords (Étienne Millon, "copy") +" 2017 Apr 11 - Improved matching of negative numbers (MM) +" 2016 Mar 11 - Improved support for quoted strings (Glen Mével) +" 2015 Aug 13 - Allow apostrophes in identifiers (Jonathan Chan, Einar Lielmanis) +" 2015 Jun 17 - Added new "nonrec" keyword (MM) + +" A minor patch was applied to the official version so that object/end +" can be distinguished from begin/end, which is used for indentation, +" and folding. (David Baelde) + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") && b:current_syntax == "ocaml" + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +" ' can be used in OCaml identifiers +setlocal iskeyword+=' + +" ` is part of the name of polymorphic variants +setlocal iskeyword+=` + +" OCaml is case sensitive. +syn case match + +" Access to the method of an object +syn match ocamlMethod "#" + +" Script headers highlighted like comments +syn match ocamlComment "^#!.*" contains=@Spell + +" Scripting directives +syn match ocamlScript "^#\<\(quit\|labels\|warnings\|warn_error\|directory\|remove_directory\|cd\|load\|load_rec\|use\|mod_use\|install_printer\|remove_printer\|require\|list\|ppx\|principal\|predicates\|rectypes\|thread\|trace\|untrace\|untrace_all\|print_depth\|print_length\|camlp4o\|camlp4r\|topfind_log\|topfind_verbose\)\>" + +" lowercase identifier - the standard way to match +syn match ocamlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/ + +syn match ocamlKeyChar "|" + +" Errors +syn match ocamlBraceErr "}" +syn match ocamlBrackErr "\]" +syn match ocamlParenErr ")" +syn match ocamlArrErr "|]" + +syn match ocamlCommentErr "\*)" + +syn match ocamlCountErr "\" +syn match ocamlCountErr "\" + +if !exists("ocaml_revised") + syn match ocamlDoErr "\" +endif + +syn match ocamlDoneErr "\" +syn match ocamlThenErr "\" + +" Error-highlighting of "end" without synchronization: +" as keyword or as error (default) +if exists("ocaml_noend_error") + syn match ocamlKeyword "\" +else + syn match ocamlEndErr "\" +endif + +" Some convenient clusters +syn cluster ocamlAllErrs contains=ocamlBraceErr,ocamlBrackErr,ocamlParenErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr + +syn cluster ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr + +syn cluster ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod,ocamlVal + + +" Enclosing delimiters +syn region ocamlEncl transparent matchgroup=ocamlKeyword start="(" matchgroup=ocamlKeyword end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr +syn region ocamlEncl transparent matchgroup=ocamlKeyword start="{" matchgroup=ocamlKeyword end="}" contains=ALLBUT,@ocamlContained,ocamlBraceErr +syn region ocamlEncl transparent matchgroup=ocamlKeyword start="\[" matchgroup=ocamlKeyword end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr +syn region ocamlEncl transparent matchgroup=ocamlKeyword start="\[|" matchgroup=ocamlKeyword end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr + + +" Comments +syn region ocamlComment start="(\*" end="\*)" contains=@Spell,ocamlComment,ocamlTodo +syn keyword ocamlTodo contained TODO FIXME XXX NOTE + + +" Objects +syn region ocamlEnd matchgroup=ocamlObject start="\" matchgroup=ocamlObject end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr + + +" Blocks +if !exists("ocaml_revised") + syn region ocamlEnd matchgroup=ocamlKeyword start="\" matchgroup=ocamlKeyword end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr +endif + + +" "for" +syn region ocamlNone matchgroup=ocamlKeyword start="\" matchgroup=ocamlKeyword end="\<\(to\|downto\)\>" contains=ALLBUT,@ocamlContained,ocamlCountErr + + +" "do" +if !exists("ocaml_revised") + syn region ocamlDo matchgroup=ocamlKeyword start="\" matchgroup=ocamlKeyword end="\" contains=ALLBUT,@ocamlContained,ocamlDoneErr +endif + +" "if" +syn region ocamlNone matchgroup=ocamlKeyword start="\" matchgroup=ocamlKeyword end="\" contains=ALLBUT,@ocamlContained,ocamlThenErr + +"" PPX nodes + +syn match ocamlPpxIdentifier /\(\[@\{1,3\}\)\@<=\w\+\(\.\w\+\)*/ +syn region ocamlPpx matchgroup=ocamlPpxEncl start="\[@\{1,3\}" contains=TOP end="\]" + +"" Modules + +" "sig" +syn region ocamlSig matchgroup=ocamlSigEncl start="\" matchgroup=ocamlSigEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule +syn region ocamlModSpec matchgroup=ocamlKeyword start="\" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr + +" "open" +syn match ocamlKeyword "\" skipwhite skipempty nextgroup=ocamlFullMod + +" "include" +syn match ocamlKeyword "\" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod + +" "module" - somewhat complicated stuff ;-) +syn region ocamlModule matchgroup=ocamlKeyword start="\" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlPreDef +syn region ocamlPreDef start="."me=e-1 matchgroup=ocamlKeyword end="\l\|=\|)"me=e-1 contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod,ocamlModTypeRestr,ocamlModTRWith nextgroup=ocamlModPreRHS +syn region ocamlModParam start="([^*]" end=")" contained contains=ocamlGenMod,ocamlModParam1,ocamlSig,ocamlVal +syn match ocamlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty +syn match ocamlGenMod "()" contained skipwhite skipempty + +syn region ocamlMPRestr start=":" end="."me=e-1 contained contains=@ocamlComment skipwhite skipempty nextgroup=ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3 +syn region ocamlMPRestr1 matchgroup=ocamlSigEncl start="\ssig\s\=" matchgroup=ocamlSigEncl end="\" contained contains=ALLBUT,@ocamlContained,ocamlEndErr,ocamlModule +syn region ocamlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=ocamlKeyword end="->" contained contains=@ocamlAllErrs,ocamlComment,ocamlModParam,ocamlGenMod skipwhite skipempty nextgroup=ocamlFuncWith,ocamlMPRestr2 +syn match ocamlMPRestr3 "\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*" contained +syn match ocamlModPreRHS "=" contained skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod +syn keyword ocamlKeyword val +syn region ocamlVal matchgroup=ocamlKeyword start="\" matchgroup=ocamlLCIdentifier end="\<\l\(\w\|'\)*\>" contains=@ocamlAllErrs,ocamlComment,ocamlFullMod skipwhite skipempty nextgroup=ocamlMPRestr +syn region ocamlModRHS start="." end=". *\w\|([^*]"me=e-2 contained contains=ocamlComment skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod +syn match ocamlFullMod "\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=ocamlFuncWith + +syn region ocamlFuncWith start="([^*)]"me=e-1 end=")" contained contains=ocamlComment,ocamlWith,ocamlFuncStruct skipwhite skipempty nextgroup=ocamlFuncWith +syn region ocamlFuncStruct matchgroup=ocamlStructEncl start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=ocamlStructEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr + +syn match ocamlModTypeRestr "\<\w\(\w\|'\)*\( *\. *\w\(\w\|'\)*\)*\>" contained +syn region ocamlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@ocamlAENoParen,ocamlWith +syn match ocamlWith "\<\(\u\(\w\|'\)* *\. *\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=ocamlWithRest +syn region ocamlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@ocamlContained + +" "struct" +syn region ocamlStruct matchgroup=ocamlStructEncl start="\<\(module\s\+\)\=struct\>" matchgroup=ocamlStructEncl end="\" contains=ALLBUT,@ocamlContained,ocamlEndErr + +" "module type" +syn region ocamlKeyword start="\\s*\\(\s*\\)\=" matchgroup=ocamlModule end="\<\w\(\w\|'\)*\>" contains=ocamlComment skipwhite skipempty nextgroup=ocamlMTDef +syn match ocamlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s+1 skipwhite skipempty nextgroup=ocamlFullMod + +" Quoted strings +syn region ocamlString matchgroup=ocamlQuotedStringDelim start="{\z\([a-z_]*\)|" end="|\z1}" contains=@Spell + +syn keyword ocamlKeyword and as assert class +syn keyword ocamlKeyword constraint else +syn keyword ocamlKeyword exception external fun + +syn keyword ocamlKeyword in inherit initializer +syn keyword ocamlKeyword lazy let match +syn keyword ocamlKeyword method mutable new nonrec of +syn keyword ocamlKeyword parser private rec +syn keyword ocamlKeyword try type +syn keyword ocamlKeyword virtual when while with + +if exists("ocaml_revised") + syn keyword ocamlKeyword do value + syn keyword ocamlBoolean True False +else + syn keyword ocamlKeyword function + syn keyword ocamlBoolean true false +endif + +syn keyword ocamlType array bool char exn float format format4 +syn keyword ocamlType int int32 int64 lazy_t list nativeint option +syn keyword ocamlType bytes string unit + +syn match ocamlConstructor "(\s*)" +syn match ocamlConstructor "\[\s*\]" +syn match ocamlConstructor "\[|\s*>|]" +syn match ocamlConstructor "\[<\s*>\]" +syn match ocamlConstructor "\u\(\w\|'\)*\>" + +" Polymorphic variants +syn match ocamlConstructor "`\w\(\w\|'\)*\>" + +" Module prefix +syn match ocamlModPath "\u\(\w\|'\)* *\."he=e-1 + +syn match ocamlCharacter "'\\\d\d\d'\|'\\[\'ntbr]'\|'.'" +syn match ocamlCharacter "'\\x\x\x'" +syn match ocamlCharErr "'\\\d\d'\|'\\\d'" +syn match ocamlCharErr "'\\[^\'ntbr]'" +syn region ocamlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell + +syn match ocamlTopStop ";;" + +syn match ocamlAnyVar "\<_\>" +syn match ocamlKeyChar "|[^\]]"me=e-1 +syn match ocamlKeyChar ";" +syn match ocamlKeyChar "\~" +syn match ocamlKeyChar "?" + +"" Operators + +" The grammar of operators is found there: +" https://caml.inria.fr/pub/docs/manual-ocaml/names.html#operator-name +" https://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s:ext-ops +" https://caml.inria.fr/pub/docs/manual-ocaml/extn.html#s:index-operators +" =, *, < and > are both operator names and keywords, we let the user choose how +" to display them (has to be declared before regular infix operators): +syn match ocamlEqual "=" +syn match ocamlStar "*" +syn match ocamlAngle "<" +syn match ocamlAngle ">" +" Custom indexing operators: +syn region ocamlIndexing matchgroup=ocamlIndexingOp + \ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*(" + \ end=")\(\_s*<-\)\?" + \ contains=ALLBUT,@ocamlContained,ocamlParenErr +syn region ocamlIndexing matchgroup=ocamlIndexingOp + \ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*\[" + \ end="]\(\_s*<-\)\?" + \ contains=ALLBUT,@ocamlContained,ocamlBrackErr +syn region ocamlIndexing matchgroup=ocamlIndexingOp + \ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*{" + \ end="}\(\_s*<-\)\?" + \ contains=ALLBUT,@ocamlContained,ocamlBraceErr +" Extension operators (has to be declared before regular infix operators): +syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+" +" Infix and prefix operators: +syn match ocamlPrefixOp "![~?!.:|&$%<=>@^*/+-]*" +syn match ocamlPrefixOp "[~?][~?!.:|&$%<=>@^*/+-]\+" +syn match ocamlInfixOp "[&$%@^/+-][~?!.:|&$%<=>@^*/+-]*" +syn match ocamlInfixOp "[|<=>*][~?!.:|&$%<=>@^*/+-]\+" +syn match ocamlInfixOp "#[~?!.:|&$%<=>@^*/+-]\+#\@!" +syn match ocamlInfixOp "!=[~?!.:|&$%<=>@^*/+-]\@!" +syn keyword ocamlInfixOpKeyword asr land lor lsl lsr lxor mod or +" := is technically an infix operator, but we may want to show it as a keyword +" (somewhat analogously to = for let‐bindings and <- for assignations): +syn match ocamlRefAssign ":=" +" :: is technically not an operator, but we may want to show it as such: +syn match ocamlCons "::" +" -> and <- are keywords, not operators (but can appear in longer operators): +syn match ocamlArrow "->[~?!.:|&$%<=>@^*/+-]\@!" +if exists("ocaml_revised") + syn match ocamlErr "<-[~?!.:|&$%<=>@^*/+-]\@!" +else + syn match ocamlKeyChar "<-[~?!.:|&$%<=>@^*/+-]\@!" +endif + +syn match ocamlNumber "-\=\<\d\(_\|\d\)*[l|L|n]\?\>" +syn match ocamlNumber "-\=\<0[x|X]\(\x\|_\)\+[l|L|n]\?\>" +syn match ocamlNumber "-\=\<0[o|O]\(\o\|_\)\+[l|L|n]\?\>" +syn match ocamlNumber "-\=\<0[b|B]\([01]\|_\)\+[l|L|n]\?\>" +syn match ocamlFloat "-\=\<\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>" + +" Labels +syn match ocamlLabel "\~\(\l\|_\)\(\w\|'\)*"lc=1 +syn match ocamlLabel "?\(\l\|_\)\(\w\|'\)*"lc=1 +syn region ocamlLabel transparent matchgroup=ocamlLabel start="[~?](\(\l\|_\)\(\w\|'\)*"lc=2 end=")"me=e-1 contains=ALLBUT,@ocamlContained,ocamlParenErr + + +" Synchronization +syn sync minlines=50 +syn sync maxlines=500 + +if !exists("ocaml_revised") + syn sync match ocamlDoSync grouphere ocamlDo "\" + syn sync match ocamlDoSync groupthere ocamlDo "\" +endif + +if exists("ocaml_revised") + syn sync match ocamlEndSync grouphere ocamlEnd "\<\(object\)\>" +else + syn sync match ocamlEndSync grouphere ocamlEnd "\<\(begin\|object\)\>" +endif + +syn sync match ocamlEndSync groupthere ocamlEnd "\" +syn sync match ocamlStructSync grouphere ocamlStruct "\" +syn sync match ocamlStructSync groupthere ocamlStruct "\" +syn sync match ocamlSigSync grouphere ocamlSig "\" +syn sync match ocamlSigSync groupthere ocamlSig "\" + +" Define the default highlighting. + +hi def link ocamlBraceErr Error +hi def link ocamlBrackErr Error +hi def link ocamlParenErr Error +hi def link ocamlArrErr Error + +hi def link ocamlCommentErr Error + +hi def link ocamlCountErr Error +hi def link ocamlDoErr Error +hi def link ocamlDoneErr Error +hi def link ocamlEndErr Error +hi def link ocamlThenErr Error + +hi def link ocamlCharErr Error + +hi def link ocamlErr Error + +hi def link ocamlComment Comment + +hi def link ocamlModPath Include +hi def link ocamlObject Include +hi def link ocamlModule Include +hi def link ocamlModParam1 Include +hi def link ocamlGenMod Include +hi def link ocamlModType Include +hi def link ocamlMPRestr3 Include +hi def link ocamlFullMod Include +hi def link ocamlFuncWith Include +hi def link ocamlModParam Include +hi def link ocamlModTypeRestr Include +hi def link ocamlWith Include +hi def link ocamlMTDef Include +hi def link ocamlSigEncl ocamlModule +hi def link ocamlStructEncl ocamlModule + +hi def link ocamlScript Include + +hi def link ocamlConstructor Constant + +hi def link ocamlVal Keyword +hi def link ocamlModPreRHS Keyword +hi def link ocamlMPRestr2 Keyword +hi def link ocamlKeyword Keyword +hi def link ocamlMethod Include +hi def link ocamlArrow Keyword +hi def link ocamlKeyChar Keyword +hi def link ocamlAnyVar Keyword +hi def link ocamlTopStop Keyword + +hi def link ocamlRefAssign ocamlKeyChar +hi def link ocamlEqual ocamlKeyChar +hi def link ocamlStar ocamlInfixOp +hi def link ocamlAngle ocamlInfixOp +hi def link ocamlCons ocamlInfixOp + +hi def link ocamlPrefixOp ocamlOperator +hi def link ocamlInfixOp ocamlOperator +hi def link ocamlExtensionOp ocamlOperator +hi def link ocamlIndexingOp ocamlOperator + +if exists("ocaml_highlight_operators") + hi def link ocamlInfixOpKeyword ocamlOperator + hi def link ocamlOperator Operator +else + hi def link ocamlInfixOpKeyword Keyword +endif + +hi def link ocamlBoolean Boolean +hi def link ocamlCharacter Character +hi def link ocamlNumber Number +hi def link ocamlFloat Float +hi def link ocamlString String +hi def link ocamlQuotedStringDelim Identifier + +hi def link ocamlLabel Identifier + +hi def link ocamlType Type + +hi def link ocamlTodo Todo + +hi def link ocamlEncl Keyword + +hi def link ocamlPpxEncl ocamlEncl + +let b:current_syntax = "ocaml" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim: ts=8 diff --git a/runtime/syntax/occam.vim b/runtime/syntax/occam.vim new file mode 100644 index 0000000..01d139b --- /dev/null +++ b/runtime/syntax/occam.vim @@ -0,0 +1,116 @@ +" Vim syntax file +" Language: occam +" Copyright: Fred Barnes , Mario Schweigler +" Maintainer: Mario Schweigler +" Last Change: 24 May 2003 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +"{{{ Settings +" Set shift width for indent +setlocal shiftwidth=2 +" Set the tab key size to two spaces +setlocal softtabstop=2 +" Let tab keys always be expanded to spaces +setlocal expandtab + +" Dots are valid in occam identifiers +setlocal iskeyword+=. +"}}} + +syn case match + +syn keyword occamType BYTE BOOL INT INT16 INT32 INT64 REAL32 REAL64 ANY +syn keyword occamType CHAN DATA OF TYPE TIMER INITIAL VAL PORT MOBILE PLACED +syn keyword occamType PROCESSOR PACKED RECORD PROTOCOL SHARED ROUND TRUNC + +syn keyword occamStructure SEQ PAR IF ALT PRI FORKING PLACE AT + +syn keyword occamKeyword PROC IS TRUE FALSE SIZE RECURSIVE REC +syn keyword occamKeyword RETYPES RESHAPES STEP FROM FOR RESCHEDULE STOP SKIP FORK +syn keyword occamKeyword FUNCTION VALOF RESULT ELSE CLONE CLAIM +syn keyword occamBoolean TRUE FALSE +syn keyword occamRepeat WHILE +syn keyword occamConditional CASE +syn keyword occamConstant MOSTNEG MOSTPOS + +syn match occamBrackets /\[\|\]/ +syn match occamParantheses /(\|)/ + +syn keyword occamOperator AFTER TIMES MINUS PLUS INITIAL REM AND OR XOR NOT +syn keyword occamOperator BITAND BITOR BITNOT BYTESIN OFFSETOF + +syn match occamOperator /::\|:=\|?\|!/ +syn match occamOperator /<\|>\|+\|-\|\*\|\/\|\\\|=\|\~/ +syn match occamOperator /@\|\$\$\|%\|&&\|<&\|&>\|<\]\|\[>\|\^/ + +syn match occamSpecialChar /\M**\|*'\|*"\|*#\(\[0-9A-F\]\+\)/ contained +syn match occamChar /\M\L\='\[^*\]'/ +syn match occamChar /L'[^']*'/ contains=occamSpecialChar + +syn case ignore +syn match occamTodo /\:\=/ contained +syn match occamNote /\:\=/ contained +syn case match +syn keyword occamNote NOT contained + +syn match occamComment /--.*/ contains=occamCommentTitle,occamTodo,occamNote +syn match occamCommentTitle /--\s*\u\a*\(\s\+\u\a*\)*:/hs=s+2 contained contains=occamTodo,occamNote +syn match occamCommentTitle /--\s*KROC-LIBRARY\(\.so\|\.a\)\=\s*$/hs=s+2 contained +syn match occamCommentTitle /--\s*\(KROC-OPTIONS:\|RUN-PARAMETERS:\)/hs=s+2 contained + +syn match occamIdentifier /\<[A-Z.][A-Z.0-9]*\>/ +syn match occamFunction /\<[A-Za-z.][A-Za-z0-9.]*\>/ contained + +syn match occamPPIdentifier /##.\{-}\>/ + +syn region occamString start=/"/ skip=/\M*"/ end=/"/ contains=occamSpecialChar +syn region occamCharString start=/'/ end=/'/ contains=occamSpecialChar + +syn match occamNumber /\<\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/ +syn match occamNumber /-\d\+\(\.\d\+\(E\(+\|-\)\d\+\)\=\)\=/ +syn match occamNumber /#\(\d\|[A-F]\)\+/ +syn match occamNumber /-#\(\d\|[A-F]\)\+/ + +syn keyword occamCDString SHARED EXTERNAL DEFINED NOALIAS NOUSAGE NOT contained +syn keyword occamCDString FILE LINE PROCESS.PRIORITY OCCAM2.5 contained +syn keyword occamCDString USER.DEFINED.OPERATORS INITIAL.DECL MOBILES contained +syn keyword occamCDString BLOCKING.SYSCALLS VERSION NEED.QUAD.ALIGNMENT contained +syn keyword occamCDString TARGET.CANONICAL TARGET.CPU TARGET.OS TARGET.VENDOR contained +syn keyword occamCDString TRUE FALSE AND OR contained +syn match occamCDString /<\|>\|=\|(\|)/ contained + +syn region occamCDirective start=/#\(USE\|INCLUDE\|PRAGMA\|DEFINE\|UNDEFINE\|UNDEF\|IF\|ELIF\|ELSE\|ENDIF\|WARNING\|ERROR\|RELAX\)\>/ end=/$/ contains=occamString,occamComment,occamCDString + + +hi def link occamType Type +hi def link occamKeyword Keyword +hi def link occamComment Comment +hi def link occamCommentTitle PreProc +hi def link occamTodo Todo +hi def link occamNote Todo +hi def link occamString String +hi def link occamCharString String +hi def link occamNumber Number +hi def link occamCDirective PreProc +hi def link occamCDString String +hi def link occamPPIdentifier PreProc +hi def link occamBoolean Boolean +hi def link occamSpecialChar SpecialChar +hi def link occamChar Character +hi def link occamStructure Structure +hi def link occamIdentifier Identifier +hi def link occamConstant Constant +hi def link occamOperator Operator +hi def link occamFunction Ignore +hi def link occamRepeat Repeat +hi def link occamConditional Conditional +hi def link occamBrackets Type +hi def link occamParantheses Delimiter + + +let b:current_syntax = "occam" + diff --git a/runtime/syntax/omnimark.vim b/runtime/syntax/omnimark.vim new file mode 100644 index 0000000..6294945 --- /dev/null +++ b/runtime/syntax/omnimark.vim @@ -0,0 +1,106 @@ +" Vim syntax file +" Language: Omnimark +" Maintainer: Paul Terray +" Last Change: 11 Oct 2000 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,128-167,224-235,- + +syn keyword omnimarkKeywords ACTIVATE AGAIN +syn keyword omnimarkKeywords CATCH CLEAR CLOSE COPY COPY-CLEAR CROSS-TRANSLATE +syn keyword omnimarkKeywords DEACTIVATE DECLARE DECREMENT DEFINE DISCARD DIVIDE DO DOCUMENT-END DOCUMENT-START DONE DTD-START +syn keyword omnimarkKeywords ELEMENT ELSE ESCAPE EXIT +syn keyword omnimarkKeywords FAIL FIND FIND-END FIND-START FORMAT +syn keyword omnimarkKeywords GROUP +syn keyword omnimarkKeywords HALT HALT-EVERYTHING +syn keyword omnimarkKeywords IGNORE IMPLIED INCLUDE INCLUDE-END INCLUDE-START INCREMENT INPUT +syn keyword omnimarkKeywords JOIN +syn keyword omnimarkKeywords LINE-END LINE-START LOG LOOKAHEAD +syn keyword omnimarkKeywords MACRO +syn keyword omnimarkKeywords MACRO-END MARKED-SECTION MARKUP-COMMENT MARKUP-ERROR MARKUP-PARSER MASK MATCH MINUS MODULO +syn keyword omnimarkKeywords NEW NEWLINE NEXT +syn keyword omnimarkKeywords OPEN OUTPUT OUTPUT-TO OVER +syn keyword omnimarkKeywords PROCESS PROCESS-END PROCESS-START PROCESSING-INSTRUCTION PROLOG-END PROLOG-IN-ERROR PUT +syn keyword omnimarkKeywords REMOVE REOPEN REPEAT RESET RETHROW RETURN +syn keyword omnimarkKeywords WHEN WHITE-SPACE +syn keyword omnimarkKeywords SAVE SAVE-CLEAR SCAN SELECT SET SGML SGML-COMMENT SGML-DECLARATION-END SGML-DTD SGML-DTDS SGML-ERROR SGML-IN SGML-OUT SGML-PARSE SGML-PARSER SHIFT SUBMIT SUCCEED SUPPRESS +syn keyword omnimarkKeywords SYSTEM-CALL +syn keyword omnimarkKeywords TEST-SYSTEM THROW TO TRANSLATE +syn keyword omnimarkKeywords UC UL UNLESS UP-TRANSLATE +syn keyword omnimarkKeywords XML-PARSE + +syn keyword omnimarkCommands ACTIVE AFTER ANCESTOR AND ANOTHER ARG AS ATTACHED ATTRIBUTE ATTRIBUTES +syn keyword omnimarkCommands BASE BEFORE BINARY BINARY-INPUT BINARY-MODE BINARY-OUTPUT BREAK-WIDTH BUFFER BY +syn keyword omnimarkCommands CASE CHILDREN CLOSED COMPILED-DATE COMPLEMENT CONREF CONTENT CONTEXT-TRANSLATE COUNTER CREATED CREATING CREATOR CURRENT +syn keyword omnimarkCommands DATA-ATTRIBUTE DATA-ATTRIBUTES DATA-CONTENT DATA-LETTERS DATE DECLARED-CONREF DECLARED-CURRENT DECLARED-DEFAULTED DECLARED-FIXED DECLARED-IMPLIED DECLARED-REQUIRED +syn keyword omnimarkCommands DEFAULT-ENTITY DEFAULTED DEFAULTING DELIMITER DIFFERENCE DIRECTORY DOCTYPE DOCUMENT DOCUMENT-ELEMENT DOMAIN-FREE DOWN-TRANSLATE DTD DTD-END DTDS +syn keyword omnimarkCommands ELEMENTS ELSEWHERE EMPTY ENTITIES ENTITY EPILOG-START EQUAL EXCEPT EXISTS EXTERNAL EXTERNAL-DATA-ENTITY EXTERNAL-ENTITY EXTERNAL-FUNCTION EXTERNAL-OUTPUT-FUNCTION +syn keyword omnimarkCommands EXTERNAL-TEXT-ENTITY +syn keyword omnimarkCommands FALSE FILE FUNCTION FUNCTION-LIBRARY +syn keyword omnimarkCommands GENERAL GLOBAL GREATER-EQUAL GREATER-THAN GROUPS +syn keyword omnimarkCommands HAS HASNT HERALDED-NAMES +syn keyword omnimarkCommands ID ID-CHECKING IDREF IDREFS IN IN-LIBRARY INCLUSION INITIAL INITIAL-SIZE INSERTION-BREAK INSTANCE INTERNAL INVALID-DATA IS ISNT ITEM +syn keyword omnimarkCommands KEY KEYED +syn keyword omnimarkCommands LAST LASTMOST LC LENGTH LESS-EQUAL LESS-THAN LETTERS LIBRARY LITERAL LOCAL +syn keyword omnimarkCommands MATCHES MIXED MODIFIABLE +syn keyword omnimarkCommands NAME NAME-LETTERS NAMECASE NAMED NAMES NDATA-ENTITY NEGATE NESTED-REFERENTS NMTOKEN NMTOKENS NO NO-DEFAULT-IO NON-CDATA NON-IMPLIED NON-SDATA NOT NOTATION NUMBER-OF NUMBERS +syn keyword omnimarkCommands NUTOKEN NUTOKENS +syn keyword omnimarkCommands OCCURRENCE OF OPAQUE OPTIONAL OR +syn keyword omnimarkCommands PARAMETER PARENT PAST PATTERN PLUS PREPARENT PREVIOUS PROPER PUBLIC +syn keyword omnimarkCommands READ-ONLY READABLE REFERENT REFERENTS REFERENTS-ALLOWED REFERENTS-DISPLAYED REFERENTS-NOT-ALLOWED REMAINDER REPEATED REPLACEMENT-BREAK REVERSED +syn keyword omnimarkCommands SILENT-REFERENT SIZE SKIP SOURCE SPECIFIED STATUS STREAM SUBDOC-ENTITY SUBDOCUMENT SUBDOCUMENTS SUBELEMENT SWITCH SYMBOL SYSTEM +syn keyword omnimarkCommands TEXT-MODE THIS TIMES TOKEN TRUE +syn keyword omnimarkCommands UNANCHORED UNATTACHED UNION USEMAP USING +syn keyword omnimarkCommands VALUE VALUED VARIABLE +syn keyword omnimarkCommands WITH WRITABLE +syn keyword omnimarkCommands XML XML-DTD XML-DTDS +syn keyword omnimarkCommands YES +syn keyword omnimarkCommands #ADDITIONAL-INFO #APPINFO #CAPACITY #CHARSET #CLASS #COMMAND-LINE-NAMES #CONSOLE #CURRENT-INPUT #CURRENT-OUTPUT #DATA #DOCTYPE #DOCUMENT #DTD #EMPTY #ERROR #ERROR-CODE +syn keyword omnimarkCommands #FILE-NAME #FIRST #GROUP #IMPLIED #ITEM #LANGUAGE-VERSION #LAST #LIBPATH #LIBRARY #LIBVALUE #LINE-NUMBER #MAIN-INPUT #MAIN-OUTPUT #MARKUP-ERROR-COUNT #MARKUP-ERROR-TOTAL +syn keyword omnimarkCommands #MARKUP-PARSER #MARKUP-WARNING-COUNT #MARKUP-WARNING-TOTAL #MESSAGE #NONE #OUTPUT #PLATFORM-INFO #PROCESS-INPUT #PROCESS-OUTPUT #RECOVERY-INFO #SGML #SGML-ERROR-COUNT +syn keyword omnimarkCommands #SGML-ERROR-TOTAL #SGML-WARNING-COUNT #SGML-WARNING-TOTAL #SUPPRESS #SYNTAX #! + +syn keyword omnimarkPatterns ANY ANY-TEXT +syn keyword omnimarkPatterns BLANK +syn keyword omnimarkPatterns CDATA CDATA-ENTITY CONTENT-END CONTENT-START +syn keyword omnimarkPatterns DIGIT +syn keyword omnimarkPatterns LETTER +syn keyword omnimarkPatterns NUMBER +syn keyword omnimarkPatterns PCDATA +syn keyword omnimarkPatterns RCDATA +syn keyword omnimarkPatterns SDATA SDATA-ENTITY SPACE +syn keyword omnimarkPatterns TEXT +syn keyword omnimarkPatterns VALUE-END VALUE-START +syn keyword omnimarkPatterns WORD-END WORD-START + +syn region omnimarkComment start=";" end="$" + +" strings +syn region omnimarkString matchgroup=Normal start=+'+ end=+'+ skip=+%'+ contains=omnimarkEscape +syn region omnimarkString matchgroup=Normal start=+"+ end=+"+ skip=+%"+ contains=omnimarkEscape +syn match omnimarkEscape contained +%.+ +syn match omnimarkEscape contained +%[0-9][0-9]#+ + +"syn sync maxlines=100 +syn sync minlines=2000 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link omnimarkCommands Statement +hi def link omnimarkKeywords Identifier +hi def link omnimarkString String +hi def link omnimarkPatterns Macro +" hi def link omnimarkNumber Number +hi def link omnimarkComment Comment +hi def link omnimarkEscape Special + + +let b:current_syntax = "omnimark" + +" vim: ts=8 + diff --git a/runtime/syntax/opam.vim b/runtime/syntax/opam.vim new file mode 100644 index 0000000..9ac1d41 --- /dev/null +++ b/runtime/syntax/opam.vim @@ -0,0 +1,38 @@ +" Vim syntax file +" Language: OPAM - OCaml package manager +" Maintainer: Markus Mottl +" URL: https://github.com/ocaml/vim-ocaml +" Last Change: +" 2020 Dec 31 - Added header (Markus Mottl) + +if exists("b:current_syntax") + finish +endif + +" need %{vars}% +" env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]] +syn keyword opamKeyword1 remove depends pin-depends depopts conflicts env packages patches version maintainer tags license homepage authors doc install author available name depexts substs synopsis description +syn match opamKeyword2 "\v(bug-reports|post-messages|ocaml-version|opam-version|dev-repo|build-test|build-doc|build)" + +syn keyword opamTodo FIXME NOTE NOTES TODO XXX contained +syn match opamComment "#.*$" contains=opamTodo,@Spell +syn match opamOperator ">\|<\|=\|<=\|>=" + +syn region opamInterpolate start=/%{/ end=/}%/ contained +syn region opamString start=/"/ end=/"/ contains=opamInterpolate +syn region opamSeq start=/\[/ end=/\]/ contains=ALLBUT,opamKeyword1,opamKeyword2 +syn region opamExp start=/{/ end=/}/ contains=ALLBUT,opamKeyword1,opamKeyword2 + +hi link opamKeyword1 Keyword +hi link opamKeyword2 Keyword + +hi link opamString String +hi link opamExp Function +hi link opamSeq Statement +hi link opamOperator Operator +hi link opamComment Comment +hi link opamInterpolate Identifier + +let b:current_syntax = "opam" + +" vim: ts=2 sw=2 diff --git a/runtime/syntax/openroad.vim b/runtime/syntax/openroad.vim new file mode 100644 index 0000000..e09f233 --- /dev/null +++ b/runtime/syntax/openroad.vim @@ -0,0 +1,252 @@ +" Vim syntax file +" Language: CA-OpenROAD +" Maintainer: Luis Moreno +" Last change: 2001 Jun 12 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case ignore + +" Keywords +" +syntax keyword openroadKeyword ABORT ALL ALTER AND ANY AS ASC AT AVG BEGIN +syntax keyword openroadKeyword BETWEEN BY BYREF CALL CALLFRAME CALLPROC CASE +syntax keyword openroadKeyword CLEAR CLOSE COMMIT CONNECT CONTINUE COPY COUNT +syntax keyword openroadKeyword CREATE CURRENT DBEVENT DECLARE DEFAULT DELETE +syntax keyword openroadKeyword DELETEROW DESC DIRECT DISCONNECT DISTINCT DO +syntax keyword openroadKeyword DROP ELSE ELSEIF END ENDCASE ENDDECLARE ENDFOR +syntax keyword openroadKeyword ENDIF ENDLOOP ENDWHILE ESCAPE EXECUTE EXISTS +syntax keyword openroadKeyword EXIT FETCH FIELD FOR FROM GOTOFRAME GRANT GROUP +syntax keyword openroadKeyword HAVING IF IMMEDIATE IN INDEX INITIALISE +syntax keyword openroadKeyword INITIALIZE INQUIRE_INGRES INQUIRE_SQL INSERT +syntax keyword openroadKeyword INSERTROW INSTALLATION INTEGRITY INTO KEY LIKE +syntax keyword openroadKeyword LINK MAX MESSAGE METHOD MIN MODE MODIFY NEXT +syntax keyword openroadKeyword NOECHO NOT NULL OF ON OPEN OPENFRAME OR ORDER +syntax keyword openroadKeyword PERMIT PROCEDURE PROMPT QUALIFICATION RAISE +syntax keyword openroadKeyword REGISTER RELOCATE REMOVE REPEAT REPEATED RESUME +syntax keyword openroadKeyword RETURN RETURNING REVOKE ROLE ROLLBACK RULE SAVE +syntax keyword openroadKeyword SAVEPOINT SELECT SET SLEEP SOME SUM SYSTEM TABLE +syntax keyword openroadKeyword THEN TO TRANSACTION UNION UNIQUE UNTIL UPDATE +syntax keyword openroadKeyword VALUES VIEW WHERE WHILE WITH WORK + +syntax keyword openroadTodo contained TODO + +" Catch errors caused by wrong parenthesis +" +syntax cluster openroadParenGroup contains=openroadParenError,openroadTodo +syntax region openroadParen transparent start='(' end=')' contains=ALLBUT,@openroadParenGroup +syntax match openroadParenError ")" +highlight link openroadParenError cError + +" Numbers +" +syntax match openroadNumber "\<[0-9]\+\>" + +" String +" +syntax region openroadString start=+'+ end=+'+ + +" Operators, Data Types and Functions +" +syntax match openroadOperator /[\+\-\*\/=\<\>;\(\)]/ + +syntax keyword openroadType ARRAY BYTE CHAR DATE DECIMAL FLOAT FLOAT4 +syntax keyword openroadType FLOAT8 INT1 INT2 INT4 INTEGER INTEGER1 +syntax keyword openroadType INTEGER2 INTEGER4 MONEY OBJECT_KEY +syntax keyword openroadType SECURITY_LABEL SMALLINT TABLE_KEY VARCHAR + +syntax keyword openroadFunc IFNULL + +" System Classes +" +syntax keyword openroadClass ACTIVEFIELD ANALOGFIELD APPFLAG APPSOURCE +syntax keyword openroadClass ARRAYOBJECT ATTRIBUTEOBJECT BARFIELD +syntax keyword openroadClass BITMAPOBJECT BOXTRIM BREAKSPEC BUTTONFIELD +syntax keyword openroadClass CELLATTRIBUTE CHOICEBITMAP CHOICEDETAIL +syntax keyword openroadClass CHOICEFIELD CHOICEITEM CHOICELIST CLASS +syntax keyword openroadClass CLASSSOURCE COLUMNCROSS COLUMNFIELD +syntax keyword openroadClass COMPOSITEFIELD COMPSOURCE CONTROLBUTTON +syntax keyword openroadClass CROSSTABLE CURSORBITMAP CURSOROBJECT DATASTREAM +syntax keyword openroadClass DATEOBJECT DBEVENTOBJECT DBSESSIONOBJECT +syntax keyword openroadClass DISPLAYFORM DYNEXPR ELLIPSESHAPE ENTRYFIELD +syntax keyword openroadClass ENUMFIELD EVENT EXTOBJECT EXTOBJFIELD +syntax keyword openroadClass FIELDOBJECT FLEXIBLEFORM FLOATOBJECT FORMFIELD +syntax keyword openroadClass FRAMEEXEC FRAMEFORM FRAMESOURCE FREETRIM +syntax keyword openroadClass GHOSTEXEC GHOSTSOURCE IMAGEFIELD IMAGETRIM +syntax keyword openroadClass INTEGEROBJECT LISTFIELD LISTVIEWCOLATTR +syntax keyword openroadClass LISTVIEWFIELD LONGBYTEOBJECT LONGVCHAROBJECT +syntax keyword openroadClass MATRIXFIELD MENUBAR MENUBUTTON MENUFIELD +syntax keyword openroadClass MENUGROUP MENUITEM MENULIST MENUSEPARATOR +syntax keyword openroadClass MENUSTACK MENUTOGGLE METHODEXEC METHODOBJECT +syntax keyword openroadClass MONEYOBJECT OBJECT OPTIONFIELD OPTIONMENU +syntax keyword openroadClass PALETTEFIELD POPUPBUTTON PROC4GLSOURCE PROCEXEC +syntax keyword openroadClass PROCHANDLE QUERYCOL QUERYOBJECT QUERYPARM +syntax keyword openroadClass QUERYTABLE RADIOFIELD RECTANGLESHAPE ROWCROSS +syntax keyword openroadClass SCALARFIELD SCOPE SCROLLBARFIELD SEGMENTSHAPE +syntax keyword openroadClass SESSIONOBJECT SHAPEFIELD SLIDERFIELD SQLSELECT +syntax keyword openroadClass STACKFIELD STRINGOBJECT SUBFORM TABBAR +syntax keyword openroadClass TABFIELD TABFOLDER TABLEFIELD TABPAGE +syntax keyword openroadClass TOGGLEFIELD TREE TREENODE TREEVIEWFIELD +syntax keyword openroadClass USERCLASSOBJECT USEROBJECT VIEWPORTFIELD + +" System Events +" +syntax keyword openroadEvent CHILDCLICK CHILDCLICKPOINT CHILDCOLLAPSED +syntax keyword openroadEvent CHILDDETAILS CHILDDOUBLECLICK CHILDDRAGBOX +syntax keyword openroadEvent CHILDDRAGSEGMENT CHILDENTRY CHILDEXIT +syntax keyword openroadEvent CHILDEXPANDED CHILDHEADERCLICK CHILDMOVED +syntax keyword openroadEvent CHILDPROPERTIES CHILDRESIZED CHILDSCROLL +syntax keyword openroadEvent CHILDSELECT CHILDSELECTIONCHANGED CHILDSETVALUE +syntax keyword openroadEvent CHILDUNSELECT CHILDVALIDATE CLICK CLICKPOINT +syntax keyword openroadEvent COLLAPSED DBEVENT DETAILS DOUBLECLICK DRAGBOX +syntax keyword openroadEvent DRAGSEGMENT ENTRY EXIT EXPANDED EXTCLASSEVENT +syntax keyword openroadEvent FRAMEACTIVATE FRAMEDEACTIVATE HEADERCLICK +syntax keyword openroadEvent INSERTROW LABELCHANGED MOVED PAGEACTIVATED +syntax keyword openroadEvent PAGECHANGED PAGEDEACTIVATED PROPERTIES RESIZED +syntax keyword openroadEvent SCROLL SELECT SELECTIONCHANGED SETVALUE +syntax keyword openroadEvent TERMINATE UNSELECT USEREVENT VALIDATE +syntax keyword openroadEvent WINDOWCLOSE WINDOWICON WINDOWMOVED WINDOWRESIZED +syntax keyword openroadEvent WINDOWVISIBLE + +" System Constants +" +syntax keyword openroadConst BF_BMP BF_GIF BF_SUNRASTER BF_TIFF +syntax keyword openroadConst BF_WINDOWCURSOR BF_WINDOWICON BF_XBM +syntax keyword openroadConst CC_BACKGROUND CC_BLACK CC_BLUE CC_BROWN CC_CYAN +syntax keyword openroadConst CC_DEFAULT_1 CC_DEFAULT_10 CC_DEFAULT_11 +syntax keyword openroadConst CC_DEFAULT_12 CC_DEFAULT_13 CC_DEFAULT_14 +syntax keyword openroadConst CC_DEFAULT_15 CC_DEFAULT_16 CC_DEFAULT_17 +syntax keyword openroadConst CC_DEFAULT_18 CC_DEFAULT_19 CC_DEFAULT_2 +syntax keyword openroadConst CC_DEFAULT_20 CC_DEFAULT_21 CC_DEFAULT_22 +syntax keyword openroadConst CC_DEFAULT_23 CC_DEFAULT_24 CC_DEFAULT_25 +syntax keyword openroadConst CC_DEFAULT_26 CC_DEFAULT_27 CC_DEFAULT_28 +syntax keyword openroadConst CC_DEFAULT_29 CC_DEFAULT_3 CC_DEFAULT_30 +syntax keyword openroadConst CC_DEFAULT_4 CC_DEFAULT_5 CC_DEFAULT_6 +syntax keyword openroadConst CC_DEFAULT_7 CC_DEFAULT_8 CC_DEFAULT_9 +syntax keyword openroadConst CC_FOREGROUND CC_GRAY CC_GREEN CC_LIGHT_BLUE +syntax keyword openroadConst CC_LIGHT_BROWN CC_LIGHT_CYAN CC_LIGHT_GRAY +syntax keyword openroadConst CC_LIGHT_GREEN CC_LIGHT_ORANGE CC_LIGHT_PINK +syntax keyword openroadConst CC_LIGHT_PURPLE CC_LIGHT_RED CC_LIGHT_YELLOW +syntax keyword openroadConst CC_MAGENTA CC_ORANGE CC_PALE_BLUE CC_PALE_BROWN +syntax keyword openroadConst CC_PALE_CYAN CC_PALE_GRAY CC_PALE_GREEN +syntax keyword openroadConst CC_PALE_ORANGE CC_PALE_PINK CC_PALE_PURPLE +syntax keyword openroadConst CC_PALE_RED CC_PALE_YELLOW CC_PINK CC_PURPLE +syntax keyword openroadConst CC_RED CC_SYS_ACTIVEBORDER CC_SYS_ACTIVECAPTION +syntax keyword openroadConst CC_SYS_APPWORKSPACE CC_SYS_BACKGROUND +syntax keyword openroadConst CC_SYS_BTNFACE CC_SYS_BTNSHADOW CC_SYS_BTNTEXT +syntax keyword openroadConst CC_SYS_CAPTIONTEXT CC_SYS_GRAYTEXT +syntax keyword openroadConst CC_SYS_HIGHLIGHT CC_SYS_HIGHLIGHTTEXT +syntax keyword openroadConst CC_SYS_INACTIVEBORDER CC_SYS_INACTIVECAPTION +syntax keyword openroadConst CC_SYS_INACTIVECAPTIONTEXT CC_SYS_MENU +syntax keyword openroadConst CC_SYS_MENUTEXT CC_SYS_SCROLLBAR CC_SYS_SHADOW +syntax keyword openroadConst CC_SYS_WINDOW CC_SYS_WINDOWFRAME +syntax keyword openroadConst CC_SYS_WINDOWTEXT CC_WHITE CC_YELLOW +syntax keyword openroadConst CL_INVALIDVALUE CP_BOTH CP_COLUMNS CP_NONE +syntax keyword openroadConst CP_ROWS CS_CLOSED CS_CURRENT CS_NOCURRENT +syntax keyword openroadConst CS_NO_MORE_ROWS CS_OPEN CS_OPEN_CACHED DC_BW +syntax keyword openroadConst DC_COLOR DP_AUTOSIZE_FIELD DP_CLIP_IMAGE +syntax keyword openroadConst DP_SCALE_IMAGE_H DP_SCALE_IMAGE_HW +syntax keyword openroadConst DP_SCALE_IMAGE_W DS_CONNECTED DS_DISABLED +syntax keyword openroadConst DS_DISCONNECTED DS_INGRES_DBMS DS_NO_DBMS +syntax keyword openroadConst DS_ORACLE_DBMS DS_SQLSERVER_DBMS DV_NULL +syntax keyword openroadConst DV_STRING DV_SYSTEM EH_NEXT_HANDLER EH_RESUME +syntax keyword openroadConst EH_RETRY EP_INTERACTIVE EP_NONE EP_OUTPUT +syntax keyword openroadConst ER_FAIL ER_NAMEEXISTS ER_OK ER_OUTOFRANGE +syntax keyword openroadConst ER_ROWNOTFOUND ER_USER1 ER_USER10 ER_USER2 +syntax keyword openroadConst ER_USER3 ER_USER4 ER_USER5 ER_USER6 ER_USER7 +syntax keyword openroadConst ER_USER8 ER_USER9 FALSE FA_BOTTOMCENTER +syntax keyword openroadConst FA_BOTTOMLEFT FA_BOTTOMRIGHT FA_CENTER +syntax keyword openroadConst FA_CENTERLEFT FA_CENTERRIGHT FA_DEFAULT FA_NONE +syntax keyword openroadConst FA_TOPCENTER FA_TOPLEFT FA_TOPRIGHT +syntax keyword openroadConst FB_CHANGEABLE FB_CLICKPOINT FB_DIMMED FB_DRAGBOX +syntax keyword openroadConst FB_DRAGSEGMENT FB_FLEXIBLE FB_INVISIBLE +syntax keyword openroadConst FB_LANDABLE FB_MARKABLE FB_RESIZEABLE +syntax keyword openroadConst FB_VIEWABLE FB_VISIBLE FC_LOWER FC_NONE FC_UPPER +syntax keyword openroadConst FM_QUERY FM_READ FM_UPDATE FM_USER1 FM_USER2 +syntax keyword openroadConst FM_USER3 FO_DEFAULT FO_HORIZONTAL FO_VERTICAL +syntax keyword openroadConst FP_BITMAP FP_CLEAR FP_CROSSHATCH FP_DARKSHADE +syntax keyword openroadConst FP_DEFAULT FP_HORIZONTAL FP_LIGHTSHADE FP_SHADE +syntax keyword openroadConst FP_SOLID FP_VERTICAL FT_NOTSETVALUE FT_SETVALUE +syntax keyword openroadConst FT_TABTO FT_TAKEFOCUS GF_BOTTOM GF_DEFAULT +syntax keyword openroadConst GF_LEFT GF_RIGHT GF_TOP HC_DOUBLEQUOTE +syntax keyword openroadConst HC_FORMFEED HC_NEWLINE HC_QUOTE HC_SPACE HC_TAB +syntax keyword openroadConst HV_CONTENTS HV_CONTEXT HV_HELPONHELP HV_KEY +syntax keyword openroadConst HV_QUIT LS_3D LS_DASH LS_DASHDOT LS_DASHDOTDOT +syntax keyword openroadConst LS_DEFAULT LS_DOT LS_SOLID LW_DEFAULT +syntax keyword openroadConst LW_EXTRATHIN LW_MAXIMUM LW_MIDDLE LW_MINIMUM +syntax keyword openroadConst LW_NOLINE LW_THICK LW_THIN LW_VERYTHICK +syntax keyword openroadConst LW_VERYTHIN MB_DISABLED MB_ENABLED MB_INVISIBLE +syntax keyword openroadConst MB_MOVEABLE MT_ERROR MT_INFO MT_NONE MT_WARNING +syntax keyword openroadConst OP_APPEND OP_NONE OS3D OS_DEFAULT OS_SHADOW +syntax keyword openroadConst OS_SOLID PU_CANCEL PU_OK QS_ACTIVE QS_INACTIVE +syntax keyword openroadConst QS_SETCOL QY_ARRAY QY_CACHE QY_CURSOR QY_DIRECT +syntax keyword openroadConst RC_CHILDSELECTED RC_DOWN RC_END RC_FIELDFREED +syntax keyword openroadConst RC_FIELDORPHANED RC_GROUPSELECT RC_HOME RC_LEFT +syntax keyword openroadConst RC_MODECHANGED RC_MOUSECLICK RC_MOUSEDRAG +syntax keyword openroadConst RC_NEXT RC_NOTAPPLICABLE RC_PAGEDOWN RC_PAGEUP +syntax keyword openroadConst RC_PARENTSELECTED RC_PREVIOUS RC_PROGRAM +syntax keyword openroadConst RC_RESUME RC_RETURN RC_RIGHT RC_ROWDELETED +syntax keyword openroadConst RC_ROWINSERTED RC_ROWSALLDELETED RC_SELECT +syntax keyword openroadConst RC_TFSCROLL RC_TOGGLESELECT RC_UP RS_CHANGED +syntax keyword openroadConst RS_DELETED RS_NEW RS_UNCHANGED RS_UNDEFINED +syntax keyword openroadConst SK_CLOSE SK_COPY SK_CUT SK_DELETE SK_DETAILS +syntax keyword openroadConst SK_DUPLICATE SK_FIND SK_GO SK_HELP SK_NEXT +syntax keyword openroadConst SK_NONE SK_PASTE SK_PROPS SK_QUIT SK_REDO +syntax keyword openroadConst SK_SAVE SK_TFDELETEALLROWS SK_TFDELETEROW +syntax keyword openroadConst SK_TFFIND SK_TFINSERTROW SK_UNDO SP_APPSTARTING +syntax keyword openroadConst SP_ARROW SP_CROSS SP_IBEAM SP_ICON SP_NO +syntax keyword openroadConst SP_SIZE SP_SIZENESW SP_SIZENS SP_SIZENWSE +syntax keyword openroadConst SP_SIZEWE SP_UPARROW SP_WAIT SY_NT SY_OS2 +syntax keyword openroadConst SY_UNIX SY_VMS SY_WIN95 TF_COURIER TF_HELVETICA +syntax keyword openroadConst TF_LUCIDA TF_MENUDEFAULT TF_NEWCENTURY TF_SYSTEM +syntax keyword openroadConst TF_TIMESROMAN TRUE UE_DATAERROR UE_EXITED +syntax keyword openroadConst UE_NOTACTIVE UE_PURGED UE_RESUMED UE_UNKNOWN +syntax keyword openroadConst WI_MOTIF WI_MSWIN32 WI_MSWINDOWS WI_NONE WI_PM +syntax keyword openroadConst WP_FLOATING WP_INTERACTIVE WP_PARENTCENTERED +syntax keyword openroadConst WP_PARENTRELATIVE WP_SCREENCENTERED +syntax keyword openroadConst WP_SCREENRELATIVE WV_ICON WV_INVISIBLE +syntax keyword openroadConst WV_UNREALIZED WV_VISIBLE + +" System Variables +" +syntax keyword openroadVar CurFrame CurProcedure CurMethod CurObject + +" Identifiers +" +syntax match openroadIdent /[a-zA-Z_][a-zA-Z_]*![a-zA-Z_][a-zA-Z_]*/ + +" Comments +" +if exists("openroad_comment_strings") + syntax match openroadCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region openroadCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" + syntax region openroadComment start="/\*" end="\*/" contains=openroadCommentString,openroadCharacter,openroadNumber + syntax match openroadComment "//.*" contains=openroadComment2String,openroadCharacter,openroadNumber +else + syn region openroadComment start="/\*" end="\*/" + syn match openroadComment "//.*" +endif + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +" + +hi def link openroadKeyword Statement +hi def link openroadNumber Number +hi def link openroadString String +hi def link openroadComment Comment +hi def link openroadOperator Operator +hi def link openroadType Type +hi def link openroadFunc Special +hi def link openroadClass Type +hi def link openroadEvent Statement +hi def link openroadConst Constant +hi def link openroadVar Identifier +hi def link openroadIdent Identifier +hi def link openroadTodo Todo + + +let b:current_syntax = "openroad" diff --git a/runtime/syntax/openscad.vim b/runtime/syntax/openscad.vim new file mode 100644 index 0000000..1e20c74 --- /dev/null +++ b/runtime/syntax/openscad.vim @@ -0,0 +1,129 @@ +" Vim syntax file +" Language: OpenSCAD +" Maintainer: Niklas Adam +" Last change: 2022-04-15 +" +" +" From salkin-mada/openscad.nvim +" Building on the work of Sirtaj Singh Kang and others for vim-openscad +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case ignore + +setlocal iskeyword=a-z,A-Z,48-57,_ + +syn match openscadAoperator "{" +syn match openscadAoperator "}" +syn match openscadLi "\[" +syn match openscadLi "\]" +syn match openscadPar "(" +syn match openscadPar ")" + +syn match openscadSpecialVariable "\$[a-zA-Z_]\+\>" display +syn match openscadModifier "^\s*[\*\!\#\%]" display + +syn match openscadBinaryoperator "+" +syn match openscadBinaryoperator "-" +syn match openscadBinaryoperator "*" +syn match openscadBinaryoperator "/" +syn match openscadBinaryoperator "%" +syn match openscadBinaryoperator "\*\*" +syn match openscadBinaryoperator "<" +syn match openscadBinaryoperator "<=" +syn match openscadBinaryoperator ">" +syn match openscadBinaryoperator ">=" +syn match openscadBinaryoperator "=" +syn match openscadBinaryoperator "==" +syn match openscadBinaryoperator "===" +syn match openscadBinaryoperator "!=" +syn match openscadBinaryoperator "!==" +syn match openscadBinaryoperator "&" +syn match openscadBinaryoperator "|" +syn match openscadBinaryoperator "/ contained display + +syn keyword openscadModuleDef module nextgroup=openscadModule skipwhite skipempty +syn match openscadModule /\<\h\w*\>/ contained display + +syn keyword openscadStatement echo assign let assert +syn keyword openscadConditional if else +syn keyword openscadRepeat for intersection_for +syn keyword openscadInclude include use +syn keyword openscadCsgKeyword union difference intersection render intersection_for +syn keyword openscadTransform scale rotate translate resize mirror multmatrix color minkowski hull projection linear_extrude rotate_extrude offset +syn keyword openscadPrimitiveSolid cube sphere cylinder polyhedron surface +syn keyword openscadPrimitive2D square circle polygon import_dxf text +syn keyword openscadPrimitiveImport import child children + +syn match openscadNumbers "\<\d\|\.\d" contains=openscadNumber display transparent +syn match openscadNumber "\d\+" display contained +syn match openscadNumber "\.\d\+" display contained + +syn region openscadString start=/"/ skip=/\\"/ end=/"/ + +syn keyword openscadBoolean true false + +syn keyword openscadCommentTodo TODO FIXME XXX NOTE contained display +syn match openscadInlineComment ://.*$: contains=openscadCommentTodo +syn region openscadBlockComment start=:/\*: end=:\*/: fold contains=openscadCommentTodo + +syn region openscadBlock start="{" end="}" transparent fold +syn region openscadVector start="\[" end="\]" transparent fold + +syn keyword openscadBuiltin abs acos asin atan atan2 ceil cos exp floor ln log +syn keyword openscadBuiltin lookup max min pow rands round sign sin sqrt tan +syn keyword openscadBuiltin str len search version version_num concat chr ord cross norm +syn keyword openscadBuiltin parent_module +syn keyword openscadBuiltin dxf_cross dxf_dim +syn keyword openscadBuiltinSpecial PI undef + +""""""""""""""""""""""""""""""""""""""""" +" linkage +""""""""""""""""""""""""""""""""""""""""" +hi def link openscadFunctionDef Structure +hi def link openscadAoperator Function +hi def link openscadLi Function +" hi def link openscadPar Structure +hi def link openscadBuiltinSpecial Special +hi def link openscadBinaryoperator Special +hi def link openscadFunction Function +hi def link openscadModuleDef Structure +hi def link openscadModule Function +hi def link openscadBlockComment Comment +hi def link openscadBoolean Boolean +hi def link openscadBuiltin Function +hi def link openscadConditional Conditional +hi def link openscadCsgKeyword Structure +hi def link openscadInclude Include +hi def link openscadInlineComment Comment +hi def link openscadModifier Special +hi def link openscadStatement Statement +hi def link openscadNumbers Number +hi def link openscadNumber Number +hi def link openscadPrimitiveSolid Keyword +hi def link openscadPrimitive2D Keyword +hi def link openscadPrimitiveImport Keyword +hi def link openscadRepeat Repeat +hi def link openscadSpecialVariable Special +hi def link openscadString String +hi def link openscadTransform Statement +hi def link openscadCommentTodo Todo + +let b:current_syntax = 'openscad' diff --git a/runtime/syntax/openvpn.vim b/runtime/syntax/openvpn.vim new file mode 100644 index 0000000..02fd24b --- /dev/null +++ b/runtime/syntax/openvpn.vim @@ -0,0 +1,72 @@ +" Vim syntax file +" Language: OpenVPN +" Maintainer: ObserverOfTime +" Filenames: *.ovpn +" Last Change: 2022 Oct 16 + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +" Options +syntax match openvpnOption /^[a-z-]\+/ + \ skipwhite nextgroup=openvpnArgList +syntax match openvpnArgList /.*$/ transparent contained + \ contains=openvpnArgument,openvpnNumber, + \ openvpnIPv4Address,openvpnIPv6Address, + \ openvpnSignal,openvpnComment + +" Arguments +syntax match openvpnArgument /[^\\"' \t]\+/ + \ contained contains=openvpnEscape +syntax region openvpnArgument matchgroup=openvpnQuote + \ start=/"/ skip=/\\"/ end=/"/ + \ oneline contained contains=openvpnEscape +syntax region openvpnArgument matchgroup=openvpnQuote + \ start=/'/ skip=/\\'/ end=/'/ + \ oneline contained +syntax match openvpnEscape /\\[\\" \t]/ contained + +" Numbers +syntax match openvpnNumber /\<[1-9][0-9]*\(\.[0-9]\+\)\?\>/ contained + +" Signals +syntax match openvpnSignal /SIG\(HUP\|INT\|TERM\|USER[12]\)/ contained + +" IP addresses +syntax match openvpnIPv4Address /\(\d\{1,3}\.\)\{3}\d\{1,3}/ + \ contained nextgroup=openvpnSlash +syntax match openvpnIPv6Address /\([A-F0-9]\{1,4}:\)\{7}\[A-F0-9]\{1,4}/ + \ contained nextgroup=openvpnSlash +syntax match openvpnSlash "/" contained + \ nextgroup=openvpnIPv4Address,openvpnIPv6Address,openvpnNumber + +" Inline files +syntax region openvpnInline matchgroup=openvpnTag + \ start=+^<\z([a-z-]\+\)>+ end=+^+ + +" Comments +syntax keyword openvpnTodo contained TODO FIXME NOTE XXX +syntax match openvpnComment /^[;#].*$/ contains=openvpnTodo +syntax match openvpnComment /\s\+\zs[;#].*$/ contains=openvpnTodo + +hi def link openvpnArgument String +hi def link openvpnComment Comment +hi def link openvpnEscape SpecialChar +hi def link openvpnIPv4Address Constant +hi def link openvpnIPv6Address Constant +hi def link openvpnNumber Number +hi def link openvpnOption Keyword +hi def link openvpnQuote Quote +hi def link openvpnSignal Special +hi def link openvpnSlash Delimiter +hi def link openvpnTag Tag +hi def link openvpnTodo Todo + +let b:current_syntax = 'openvpn' + +let &cpoptions = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/opl.vim b/runtime/syntax/opl.vim new file mode 100644 index 0000000..8b66a5b --- /dev/null +++ b/runtime/syntax/opl.vim @@ -0,0 +1,89 @@ +" Vim syntax file +" Language: OPL +" Maintainer: Czo +" Last Change: 2012 Feb 03 by Thilo Six +" $Id: opl.vim,v 1.1 2004/06/13 17:34:11 vimboss Exp $ + +" Open Psion Language... (EPOC16/EPOC32) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" case is not significant +syn case ignore + +" A bunch of useful OPL keywords +syn keyword OPLStatement proc endp abs acos addr adjustalloc alert alloc app +syn keyword OPLStatement append appendsprite asc asin at atan back beep +syn keyword OPLStatement begintrans bookmark break busy byref cache +syn keyword OPLStatement cachehdr cacherec cachetidy call cancel caption +syn keyword OPLStatement changesprite chr$ clearflags close closesprite cls +syn keyword OPLStatement cmd$ committrans compact compress const continue +syn keyword OPLStatement copy cos count create createsprite cursor +syn keyword OPLStatement datetosecs datim$ day dayname$ days daystodate +syn keyword OPLStatement dbuttons dcheckbox dchoice ddate declare dedit +syn keyword OPLStatement deditmulti defaultwin deg delete dfile dfloat +syn keyword OPLStatement dialog diaminit diampos dinit dir$ dlong do dow +syn keyword OPLStatement dposition drawsprite dtext dtime dxinput edit else +syn keyword OPLStatement elseif enda endif endv endwh entersend entersend0 +syn keyword OPLStatement eof erase err err$ errx$ escape eval exist exp ext +syn keyword OPLStatement external find findfield findlib first fix$ flags +syn keyword OPLStatement flt font freealloc gat gborder gbox gbutton +syn keyword OPLStatement gcircle gclock gclose gcls gcolor gcopy gcreate +syn keyword OPLStatement gcreatebit gdrawobject gellipse gen$ get get$ +syn keyword OPLStatement getcmd$ getdoc$ getevent getevent32 geteventa32 +syn keyword OPLStatement geteventc getlibh gfill gfont ggmode ggrey gheight +syn keyword OPLStatement gidentity ginfo ginfo32 ginvert giprint glineby +syn keyword OPLStatement glineto gloadbit gloadfont global gmove gorder +syn keyword OPLStatement goriginx goriginy goto gotomark gpatt gpeekline +syn keyword OPLStatement gpoly gprint gprintb gprintclip grank gsavebit +syn keyword OPLStatement gscroll gsetpenwidth gsetwin gstyle gtmode gtwidth +syn keyword OPLStatement gunloadfont gupdate guse gvisible gwidth gx +syn keyword OPLStatement gxborder gxprint gy hex$ hour iabs icon if include +syn keyword OPLStatement input insert int intf intrans key key$ keya keyc +syn keyword OPLStatement killmark kmod last lclose left$ len lenalloc +syn keyword OPLStatement linklib ln loadlib loadm loc local lock log lopen +syn keyword OPLStatement lower$ lprint max mcard mcasc mean menu mid$ min +syn keyword OPLStatement minit minute mkdir modify month month$ mpopup +syn keyword OPLStatement newobj newobjh next notes num$ odbinfo off onerr +syn keyword OPLStatement open openr opx os parse$ path pause peek pi +syn keyword OPLStatement pointerfilter poke pos position possprite print +syn keyword OPLStatement put rad raise randomize realloc recsize rename +syn keyword OPLStatement rept$ return right$ rmdir rnd rollback sci$ screen +syn keyword OPLStatement screeninfo second secstodate send setdoc setflags +syn keyword OPLStatement setname setpath sin space sqr statuswin +syn keyword OPLStatement statwininfo std stop style sum tan testevent trap +syn keyword OPLStatement type uadd unloadlib unloadm until update upper$ +syn keyword OPLStatement use usr usr$ usub val var vector week while year +" syn keyword OPLStatement rem + + +syn match OPLNumber "\<\d\+\>" +syn match OPLNumber "\<\d\+\.\d*\>" +syn match OPLNumber "\.\d\+\>" + +syn region OPLString start=+"+ end=+"+ +syn region OPLComment start="REM[\t ]" end="$" +syn match OPLMathsOperator "-\|=\|[:<>+\*^/\\]" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link OPLStatement Statement +hi def link OPLNumber Number +hi def link OPLString String +hi def link OPLComment Comment +hi def link OPLMathsOperator Conditional +" hi def link OPLError Error + + +let b:current_syntax = "opl" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/ora.vim b/runtime/syntax/ora.vim new file mode 100644 index 0000000..ab091a2 --- /dev/null +++ b/runtime/syntax/ora.vim @@ -0,0 +1,464 @@ +" Vim syntax file +" Language: Oracle config files (.ora) (Oracle 8i, ver. 8.1.5) +" Maintainer: Sandor Kopanyi +" Url: <-> +" Last Change: 2003 May 11 + +" * the keywords are listed by file (sqlnet.ora, listener.ora, etc.) +" * the parathesis-checking is made at the beginning for all keywords +" * possible values are listed also +" * there are some overlappings (e.g. METHOD is mentioned both for +" sqlnet-ora and tnsnames.ora; since will not cause(?) problems +" is easier to follow separately each file's keywords) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'ora' +endif + +syn case ignore + +"comments +syn match oraComment "\#.*" + +" catch errors caused by wrong parenthesis +syn region oraParen transparent start="(" end=")" contains=@oraAll,oraParen +syn match oraParenError ")" + +" strings +syn region oraString start=+"+ end=+"+ + +"common .ora staff + +"common protocol parameters +syn keyword oraKeywordGroup ADDRESS ADDRESS_LIST +syn keyword oraKeywordGroup DESCRIPTION_LIST DESCRIPTION +"all protocols +syn keyword oraKeyword PROTOCOL +syn keyword oraValue ipc tcp nmp +"Bequeath +syn keyword oraKeyword PROGRAM ARGV0 ARGS +"IPC +syn keyword oraKeyword KEY +"Named Pipes +syn keyword oraKeyword SERVER PIPE +"LU6.2 +syn keyword oraKeyword LU_NAME LLU LOCAL_LU LLU_NAME LOCAL_LU_NAME +syn keyword oraKeyword MODE MDN +syn keyword oraKeyword PLU PARTNER_LU_NAME PLU_LA PARTNER_LU_LOCAL_ALIAS +syn keyword oraKeyword TP_NAME TPN +"SPX +syn keyword oraKeyword SERVICE +"TCP/IP and TCP/IP with SSL +syn keyword oraKeyword HOST PORT + +"misc. keywords I've met but didn't find in manual (maybe they are deprecated?) +syn keyword oraKeywordGroup COMMUNITY_LIST +syn keyword oraKeyword COMMUNITY NAME DEFAULT_ZONE +syn keyword oraValue tcpcom + +"common values +syn keyword oraValue yes no on off true false null all none ok +"word 'world' is used a lot... +syn keyword oraModifier world + +"misc. common keywords +syn keyword oraKeyword TRACE_DIRECTORY TRACE_LEVEL TRACE_FILE + + +"sqlnet.ora +syn keyword oraKeywordPref NAMES NAMESCTL +syn keyword oraKeywordPref OSS SOURCE SQLNET TNSPING +syn keyword oraKeyword AUTOMATIC_IPC BEQUEATH_DETACH DAEMON TRACE_MASK +syn keyword oraKeyword DISABLE_OOB +syn keyword oraKeyword LOG_DIRECTORY_CLIENT LOG_DIRECTORY_SERVER +syn keyword oraKeyword LOG_FILE_CLIENT LOG_FILE_SERVER +syn keyword oraKeyword DCE PREFIX DEFAULT_DOMAIN DIRECTORY_PATH +syn keyword oraKeyword INITIAL_RETRY_TIMEOUT MAX_OPEN_CONNECTIONS +syn keyword oraKeyword MESSAGE_POOL_START_SIZE NIS META_MAP +syn keyword oraKeyword PASSWORD PREFERRED_SERVERS REQUEST_RETRIES +syn keyword oraKeyword INTERNAL_ENCRYPT_PASSWORD INTERNAL_USE +syn keyword oraKeyword NO_INITIAL_SERVER NOCONFIRM +syn keyword oraKeyword SERVER_PASSWORD TRACE_UNIQUE MY_WALLET +syn keyword oraKeyword LOCATION DIRECTORY METHOD METHOD_DATA +syn keyword oraKeyword SQLNET_ADDRESS +syn keyword oraKeyword AUTHENTICATION_SERVICES +syn keyword oraKeyword AUTHENTICATION_KERBEROS5_SERVICE +syn keyword oraKeyword AUTHENTICATION_GSSAPI_SERVICE +syn keyword oraKeyword CLIENT_REGISTRATION +syn keyword oraKeyword CRYPTO_CHECKSUM_CLIENT CRYPTO_CHECKSUM_SERVER +syn keyword oraKeyword CRYPTO_CHECKSUM_TYPES_CLIENT CRYPTO_CHECKSUM_TYPES_SERVER +syn keyword oraKeyword CRYPTO_SEED +syn keyword oraKeyword ENCRYPTION_CLIENT ENCRYPTION_SERVER +syn keyword oraKeyword ENCRYPTION_TYPES_CLIENT ENCRYPTION_TYPES_SERVER +syn keyword oraKeyword EXPIRE_TIME +syn keyword oraKeyword IDENTIX_FINGERPRINT_DATABASE IDENTIX_FINGERPRINT_DATABASE_USER +syn keyword oraKeyword IDENTIX_FINGERPRINT_DATABASE_PASSWORD IDENTIX_FINGERPRINT_METHOD +syn keyword oraKeyword KERBEROS5_CC_NAME KERBEROS5_CLOCKSKEW KERBEROS5_CONF +syn keyword oraKeyword KERBEROS5_KEYTAB KERBEROS5_REALMS +syn keyword oraKeyword RADIUS_ALTERNATE RADIUS_ALTERNATE_PORT RADIUS_ALTERNATE_RETRIES +syn keyword oraKeyword RADIUS_AUTHENTICATION_TIMEOUT RADIUS_AUTHENTICATION +syn keyword oraKeyword RADIUS_AUTHENTICATION_INTERFACE RADIUS_AUTHENTICATION_PORT +syn keyword oraKeyword RADIUS_AUTHENTICATION_RETRIES RADIUS_AUTHENTICATION_TIMEOUT +syn keyword oraKeyword RADIUS_CHALLENGE_RESPONSE RADIUS_SECRET RADIUS_SEND_ACCOUNTING +syn keyword oraKeyword SSL_CLIENT_AUTHENTICATION SSL_CIPHER_SUITES SSL_VERSION +syn keyword oraKeyword TRACE_DIRECTORY_CLIENT TRACE_DIRECTORY_SERVER +syn keyword oraKeyword TRACE_FILE_CLIENT TRACE_FILE_SERVER +syn keyword oraKeyword TRACE_LEVEL_CLIENT TRACE_LEVEL_SERVER +syn keyword oraKeyword TRACE_UNIQUE_CLIENT +syn keyword oraKeyword USE_CMAN USE_DEDICATED_SERVER +syn keyword oraValue user admin support +syn keyword oraValue accept accepted reject rejected requested required +syn keyword oraValue md5 rc4_40 rc4_56 rc4_128 des des_40 +syn keyword oraValue tnsnames onames hostname dce nis novell +syn keyword oraValue file oracle +syn keyword oraValue oss +syn keyword oraValue beq nds nts kerberos5 securid cybersafe identix dcegssapi radius +syn keyword oraValue undetermined + +"tnsnames.ora +syn keyword oraKeywordGroup CONNECT_DATA FAILOVER_MODE +syn keyword oraKeyword FAILOVER LOAD_BALANCE SOURCE_ROUTE TYPE_OF_SERVICE +syn keyword oraKeyword BACKUP TYPE METHOD GLOBAL_NAME HS +syn keyword oraKeyword INSTANCE_NAME RDB_DATABASE SDU SERVER +syn keyword oraKeyword SERVICE_NAME SERVICE_NAMES SID +syn keyword oraKeyword HANDLER_NAME EXTPROC_CONNECTION_DATA +syn keyword oraValue session select basic preconnect dedicated shared + +"listener.ora +syn keyword oraKeywordGroup SID_LIST SID_DESC PRESPAWN_LIST PRESPAWN_DESC +syn match oraKeywordGroup "SID_LIST_\w*" +syn keyword oraKeyword PROTOCOL_STACK PRESENTATION SESSION +syn keyword oraKeyword GLOBAL_DBNAME ORACLE_HOME PROGRAM SID_NAME +syn keyword oraKeyword PRESPAWN_MAX POOL_SIZE TIMEOUT +syn match oraKeyword "CONNECT_TIMEOUT_\w*" +syn match oraKeyword "LOG_DIRECTORY_\w*" +syn match oraKeyword "LOG_FILE_\w*" +syn match oraKeyword "PASSWORDS_\w*" +syn match oraKeyword "STARTUP_WAIT_TIME_\w*" +syn match oraKeyword "STARTUP_WAITTIME_\w*" +syn match oraKeyword "TRACE_DIRECTORY_\w*" +syn match oraKeyword "TRACE_FILE_\w*" +syn match oraKeyword "TRACE_LEVEL_\w*" +syn match oraKeyword "USE_PLUG_AND_PLAY_\w*" +syn keyword oraValue ttc giop ns raw + +"names.ora +syn keyword oraKeywordGroup ADDRESSES ADMIN_REGION +syn keyword oraKeywordGroup DEFAULT_FORWARDERS FORWARDER_LIST FORWARDER +syn keyword oraKeywordGroup DOMAIN_HINTS HINT_DESC HINT_LIST +syn keyword oraKeywordGroup DOMAINS DOMAIN_LIST DOMAIN +syn keyword oraKeywordPref NAMES +syn keyword oraKeyword EXPIRE REFRESH REGION RETRY USERID VERSION +syn keyword oraKeyword AUTHORITY_REQUIRED CONNECT_TIMEOUT +syn keyword oraKeyword AUTO_REFRESH_EXPIRE AUTO_REFRESH_RETRY +syn keyword oraKeyword CACHE_CHECKPOINT_FILE CACHE_CHECKPOINT_INTERVAL +syn keyword oraKeyword CONFIG_CHECKPOINT_FILE DEFAULT_FORWARDERS_ONLY +syn keyword oraKeyword HINT FORWARDING_AVAILABLE FORWARDING_DESIRED +syn keyword oraKeyword KEEP_DB_OPEN +syn keyword oraKeyword LOG_DIRECTORY LOG_FILE LOG_STATS_INTERVAL LOG_UNIQUE +syn keyword oraKeyword MAX_OPEN_CONNECTIONS MAX_REFORWARDS +syn keyword oraKeyword MESSAGE_POOL_START_SIZE +syn keyword oraKeyword NO_MODIFY_REQUESTS NO_REGION_DATABASE +syn keyword oraKeyword PASSWORD REGION_CHECKPOINT_FILE +syn keyword oraKeyword RESET_STATS_INTERVAL SAVE_CONFIG_ON_STOP +syn keyword oraKeyword SERVER_NAME TRACE_FUNC TRACE_UNIQUE + +"cman.ora +syn keyword oraKeywordGroup CMAN CMAN_ADMIN CMAN_PROFILE PARAMETER_LIST +syn keyword oraKeywordGroup CMAN_RULES RULES_LIST RULE +syn keyword oraKeyword ANSWER_TIMEOUT AUTHENTICATION_LEVEL LOG_LEVEL +syn keyword oraKeyword MAX_FREELIST_BUFFERS MAXIMUM_CONNECT_DATA MAXIMUM_RELAYS +syn keyword oraKeyword RELAY_STATISTICS SHOW_TNS_INFO TRACING +syn keyword oraKeyword USE_ASYNC_CALL SRC DST SRV ACT + +"protocol.ora +syn match oraKeyword "\w*\.EXCLUDED_NODES" +syn match oraKeyword "\w*\.INVITED_NODES" +syn match oraKeyword "\w*\.VALIDNODE_CHECKING" +syn keyword oraKeyword TCP NODELAY + + + + +"--------------------------------------- +"init.ora + +"common values +syn keyword oraValue nested_loops merge hash unlimited + +"init params +syn keyword oraKeyword O7_DICTIONARY_ACCESSIBILITY ALWAYS_ANTI_JOIN ALWAYS_SEMI_JOIN +syn keyword oraKeyword AQ_TM_PROCESSES ARCH_IO_SLAVES AUDIT_FILE_DEST AUDIT_TRAIL +syn keyword oraKeyword BACKGROUND_CORE_DUMP BACKGROUND_DUMP_DEST +syn keyword oraKeyword BACKUP_TAPE_IO_SLAVES BITMAP_MERGE_AREA_SIZE +syn keyword oraKeyword BLANK_TRIMMING BUFFER_POOL_KEEP BUFFER_POOL_RECYCLE +syn keyword oraKeyword COMMIT_POINT_STRENGTH COMPATIBLE CONTROL_FILE_RECORD_KEEP_TIME +syn keyword oraKeyword CONTROL_FILES CORE_DUMP_DEST CPU_COUNT +syn keyword oraKeyword CREATE_BITMAP_AREA_SIZE CURSOR_SPACE_FOR_TIME +syn keyword oraKeyword DB_BLOCK_BUFFERS DB_BLOCK_CHECKING DB_BLOCK_CHECKSUM +syn keyword oraKeyword DB_BLOCK_LRU_LATCHES DB_BLOCK_MAX_DIRTY_TARGET +syn keyword oraKeyword DB_BLOCK_SIZE DB_DOMAIN +syn keyword oraKeyword DB_FILE_DIRECT_IO_COUNT DB_FILE_MULTIBLOCK_READ_COUNT +syn keyword oraKeyword DB_FILE_NAME_CONVERT DB_FILE_SIMULTANEOUS_WRITES +syn keyword oraKeyword DB_FILES DB_NAME DB_WRITER_PROCESSES +syn keyword oraKeyword DBLINK_ENCRYPT_LOGIN DBWR_IO_SLAVES +syn keyword oraKeyword DELAYED_LOGGING_BLOCK_CLEANOUTS DISCRETE_TRANSACTIONS_ENABLED +syn keyword oraKeyword DISK_ASYNCH_IO DISTRIBUTED_TRANSACTIONS +syn keyword oraKeyword DML_LOCKS ENQUEUE_RESOURCES ENT_DOMAIN_NAME EVENT +syn keyword oraKeyword FAST_START_IO_TARGET FAST_START_PARALLEL_ROLLBACK +syn keyword oraKeyword FIXED_DATE FREEZE_DB_FOR_FAST_INSTANCE_RECOVERY +syn keyword oraKeyword GC_DEFER_TIME GC_FILES_TO_LOCKS GC_RELEASABLE_LOCKS GC_ROLLBACK_LOCKS +syn keyword oraKeyword GLOBAL_NAMES HASH_AREA_SIZE +syn keyword oraKeyword HASH_JOIN_ENABLED HASH_MULTIBLOCK_IO_COUNT +syn keyword oraKeyword HI_SHARED_MEMORY_ADDRESS HS_AUTOREGISTER +syn keyword oraKeyword IFILE +syn keyword oraKeyword INSTANCE_GROUPS INSTANCE_NAME INSTANCE_NUMBER +syn keyword oraKeyword JAVA_POOL_SIZE JOB_QUEUE_INTERVAL JOB_QUEUE_PROCESSES LARGE_POOL_SIZE +syn keyword oraKeyword LICENSE_MAX_SESSIONS LICENSE_MAX_USERS LICENSE_SESSIONS_WARNING +syn keyword oraKeyword LM_LOCKS LM_PROCS LM_RESS +syn keyword oraKeyword LOCAL_LISTENER LOCK_NAME_SPACE LOCK_SGA LOCK_SGA_AREAS +syn keyword oraKeyword LOG_ARCHIVE_BUFFER_SIZE LOG_ARCHIVE_BUFFERS LOG_ARCHIVE_DEST +syn match oraKeyword "LOG_ARCHIVE_DEST_\(1\|2\|3\|4\|5\)" +syn match oraKeyword "LOG_ARCHIVE_DEST_STATE_\(1\|2\|3\|4\|5\)" +syn keyword oraKeyword LOG_ARCHIVE_DUPLEX_DEST LOG_ARCHIVE_FORMAT LOG_ARCHIVE_MAX_PROCESSES +syn keyword oraKeyword LOG_ARCHIVE_MIN_SUCCEED_DEST LOG_ARCHIVE_START +syn keyword oraKeyword LOG_BUFFER LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_TIMEOUT +syn keyword oraKeyword LOG_CHECKPOINTS_TO_ALERT LOG_FILE_NAME_CONVERT +syn keyword oraKeyword MAX_COMMIT_PROPAGATION_DELAY MAX_DUMP_FILE_SIZE +syn keyword oraKeyword MAX_ENABLED_ROLES MAX_ROLLBACK_SEGMENTS +syn keyword oraKeyword MTS_DISPATCHERS MTS_MAX_DISPATCHERS MTS_MAX_SERVERS MTS_SERVERS +syn keyword oraKeyword NLS_CALENDAR NLS_COMP NLS_CURRENCY NLS_DATE_FORMAT +syn keyword oraKeyword NLS_DATE_LANGUAGE NLS_DUAL_CURRENCY NLS_ISO_CURRENCY NLS_LANGUAGE +syn keyword oraKeyword NLS_NUMERIC_CHARACTERS NLS_SORT NLS_TERRITORY +syn keyword oraKeyword OBJECT_CACHE_MAX_SIZE_PERCENT OBJECT_CACHE_OPTIMAL_SIZE +syn keyword oraKeyword OPEN_CURSORS OPEN_LINKS OPEN_LINKS_PER_INSTANCE +syn keyword oraKeyword OPS_ADMINISTRATION_GROUP +syn keyword oraKeyword OPTIMIZER_FEATURES_ENABLE OPTIMIZER_INDEX_CACHING +syn keyword oraKeyword OPTIMIZER_INDEX_COST_ADJ OPTIMIZER_MAX_PERMUTATIONS +syn keyword oraKeyword OPTIMIZER_MODE OPTIMIZER_PERCENT_PARALLEL +syn keyword oraKeyword OPTIMIZER_SEARCH_LIMIT +syn keyword oraKeyword ORACLE_TRACE_COLLECTION_NAME ORACLE_TRACE_COLLECTION_PATH +syn keyword oraKeyword ORACLE_TRACE_COLLECTION_SIZE ORACLE_TRACE_ENABLE +syn keyword oraKeyword ORACLE_TRACE_FACILITY_NAME ORACLE_TRACE_FACILITY_PATH +syn keyword oraKeyword OS_AUTHENT_PREFIX OS_ROLES +syn keyword oraKeyword PARALLEL_ADAPTIVE_MULTI_USER PARALLEL_AUTOMATIC_TUNING +syn keyword oraKeyword PARALLEL_BROADCAST_ENABLED PARALLEL_EXECUTION_MESSAGE_SIZE +syn keyword oraKeyword PARALLEL_INSTANCE_GROUP PARALLEL_MAX_SERVERS +syn keyword oraKeyword PARALLEL_MIN_PERCENT PARALLEL_MIN_SERVERS +syn keyword oraKeyword PARALLEL_SERVER PARALLEL_SERVER_INSTANCES PARALLEL_THREADS_PER_CPU +syn keyword oraKeyword PARTITION_VIEW_ENABLED PLSQL_V2_COMPATIBILITY +syn keyword oraKeyword PRE_PAGE_SGA PROCESSES +syn keyword oraKeyword QUERY_REWRITE_ENABLED QUERY_REWRITE_INTEGRITY +syn keyword oraKeyword RDBMS_SERVER_DN READ_ONLY_OPEN_DELAYED RECOVERY_PARALLELISM +syn keyword oraKeyword REMOTE_DEPENDENCIES_MODE REMOTE_LOGIN_PASSWORDFILE +syn keyword oraKeyword REMOTE_OS_AUTHENT REMOTE_OS_ROLES +syn keyword oraKeyword REPLICATION_DEPENDENCY_TRACKING +syn keyword oraKeyword RESOURCE_LIMIT RESOURCE_MANAGER_PLAN +syn keyword oraKeyword ROLLBACK_SEGMENTS ROW_LOCKING SERIAL _REUSE SERVICE_NAMES +syn keyword oraKeyword SESSION_CACHED_CURSORS SESSION_MAX_OPEN_FILES SESSIONS +syn keyword oraKeyword SHADOW_CORE_DUMP +syn keyword oraKeyword SHARED_MEMORY_ADDRESS SHARED_POOL_RESERVED_SIZE SHARED_POOL_SIZE +syn keyword oraKeyword SORT_AREA_RETAINED_SIZE SORT_AREA_SIZE SORT_MULTIBLOCK_READ_COUNT +syn keyword oraKeyword SQL92_SECURITY SQL_TRACE STANDBY_ARCHIVE_DEST +syn keyword oraKeyword STAR_TRANSFORMATION_ENABLED TAPE_ASYNCH_IO THREAD +syn keyword oraKeyword TIMED_OS_STATISTICS TIMED_STATISTICS +syn keyword oraKeyword TRANSACTION_AUDITING TRANSACTIONS TRANSACTIONS_PER_ROLLBACK_SEGMENT +syn keyword oraKeyword USE_INDIRECT_DATA_BUFFERS USER_DUMP_DEST +syn keyword oraKeyword UTL_FILE_DIR +syn keyword oraKeywordObs ALLOW_PARTIAL_SN_RESULTS B_TREE_BITMAP_PLANS +syn keyword oraKeywordObs BACKUP_DISK_IO_SLAVES CACHE_SIZE_THRESHOLD +syn keyword oraKeywordObs CCF_IO_SIZE CLEANUP_ROLLBACK_ENTRIES +syn keyword oraKeywordObs CLOSE_CACHED_OPEN_CURSORS COMPATIBLE_NO_RECOVERY +syn keyword oraKeywordObs COMPLEX_VIEW_MERGING +syn keyword oraKeywordObs DB_BLOCK_CHECKPOINT_BATCH DB_BLOCK_LRU_EXTENDED_STATISTICS +syn keyword oraKeywordObs DB_BLOCK_LRU_STATISTICS +syn keyword oraKeywordObs DISTRIBUTED_LOCK_TIMEOUT DISTRIBUTED_RECOVERY_CONNECTION_HOLD_TIME +syn keyword oraKeywordObs FAST_FULL_SCAN_ENABLED GC_LATCHES GC_LCK_PROCS +syn keyword oraKeywordObs LARGE_POOL_MIN_ALLOC LGWR_IO_SLAVES +syn keyword oraKeywordObs LOG_BLOCK_CHECKSUM LOG_FILES +syn keyword oraKeywordObs LOG_SIMULTANEOUS_COPIES LOG_SMALL_ENTRY_MAX_SIZE +syn keyword oraKeywordObs MAX_TRANSACTION_BRANCHES +syn keyword oraKeywordObs MTS_LISTENER_ADDRESS MTS_MULTIPLE_LISTENERS +syn keyword oraKeywordObs MTS_RATE_LOG_SIZE MTS_RATE_SCALE MTS_SERVICE +syn keyword oraKeywordObs OGMS_HOME OPS_ADMIN_GROUP +syn keyword oraKeywordObs PARALLEL_DEFAULT_MAX_INSTANCES PARALLEL_MIN_MESSAGE_POOL +syn keyword oraKeywordObs PARALLEL_SERVER_IDLE_TIME PARALLEL_TRANSACTION_RESOURCE_TIMEOUT +syn keyword oraKeywordObs PUSH_JOIN_PREDICATE REDUCE_ALARM ROW_CACHE_CURSORS +syn keyword oraKeywordObs SEQUENCE_CACHE_ENTRIES SEQUENCE_CACHE_HASH_BUCKETS +syn keyword oraKeywordObs SHARED_POOL_RESERVED_MIN_ALLOC +syn keyword oraKeywordObs SORT_DIRECT_WRITES SORT_READ_FAC SORT_SPACEMAP_SIZE +syn keyword oraKeywordObs SORT_WRITE_BUFFER_SIZE SORT_WRITE_BUFFERS +syn keyword oraKeywordObs SPIN_COUNT TEMPORARY_TABLE_LOCKS USE_ISM +syn keyword oraValue db os full partial mandatory optional reopen enable defer +syn keyword oraValue always default intent disable dml plsql temp_disable +syn match oravalue "Arabic Hijrah" +syn match oravalue "English Hijrah" +syn match oravalue "Gregorian" +syn match oravalue "Japanese Imperial" +syn match oravalue "Persian" +syn match oravalue "ROC Official" +syn match oravalue "Thai Buddha" +syn match oravalue "8.0.0" +syn match oravalue "8.0.3" +syn match oravalue "8.0.4" +syn match oravalue "8.1.3" +syn match oraModifier "archived log" +syn match oraModifier "backup corruption" +syn match oraModifier "backup datafile" +syn match oraModifier "backup piece " +syn match oraModifier "backup redo log" +syn match oraModifier "backup set" +syn match oraModifier "copy corruption" +syn match oraModifier "datafile copy" +syn match oraModifier "deleted object" +syn match oraModifier "loghistory" +syn match oraModifier "offline range" + +"undocumented init params +"up to 7.2 (inclusive) +syn keyword oraKeywordUndObs _latch_spin_count _trace_instance_termination +syn keyword oraKeywordUndObs _wakeup_timeout _lgwr_async_write +"7.3 +syn keyword oraKeywordUndObs _standby_lock_space_name _enable_dba_locking +"8.0.5 +syn keyword oraKeywordUnd _NUMA_instance_mapping _NUMA_pool_size +syn keyword oraKeywordUnd _advanced_dss_features _affinity_on _all_shared_dblinks +syn keyword oraKeywordUnd _allocate_creation_order _allow_resetlogs_corruption +syn keyword oraKeywordUnd _always_star_transformation _bump_highwater_mark_count +syn keyword oraKeywordUnd _column_elimination_off _controlfile_enqueue_timeout +syn keyword oraKeywordUnd _corrupt_blocks_on_stuck_recovery _corrupted_rollback_segments +syn keyword oraKeywordUnd _cr_deadtime _cursor_db_buffers_pinned +syn keyword oraKeywordUnd _db_block_cache_clone _db_block_cache_map _db_block_cache_protect +syn keyword oraKeywordUnd _db_block_hash_buckets _db_block_hi_priority_batch_size +syn keyword oraKeywordUnd _db_block_max_cr_dba _db_block_max_scan_cnt +syn keyword oraKeywordUnd _db_block_med_priority_batch_size _db_block_no_idle_writes +syn keyword oraKeywordUnd _db_block_write_batch _db_handles _db_handles_cached +syn keyword oraKeywordUnd _db_large_dirty_queue _db_no_mount_lock +syn keyword oraKeywordUnd _db_writer_histogram_statistics _db_writer_scan_depth +syn keyword oraKeywordUnd _db_writer_scan_depth_decrement _db_writer_scan_depth_increment +syn keyword oraKeywordUnd _disable_incremental_checkpoints +syn keyword oraKeywordUnd _disable_latch_free_SCN_writes_via_32cas +syn keyword oraKeywordUnd _disable_latch_free_SCN_writes_via_64cas +syn keyword oraKeywordUnd _disable_logging _disable_ntlog_events +syn keyword oraKeywordUnd _dss_cache_flush _dynamic_stats_threshold +syn keyword oraKeywordUnd _enable_cscn_caching _enable_default_affinity +syn keyword oraKeywordUnd _enqueue_debug_multi_instance _enqueue_hash +syn keyword oraKeywordUnd _enqueue_hash_chain_latches _enqueue_locks +syn keyword oraKeywordUnd _fifth_spare_parameter _first_spare_parameter _fourth_spare_parameter +syn keyword oraKeywordUnd _gc_class_locks _groupby_nopushdown_cut_ratio +syn keyword oraKeywordUnd _idl_conventional_index_maintenance _ignore_failed_escalates +syn keyword oraKeywordUnd _init_sql_file +syn keyword oraKeywordUnd _io_slaves_disabled _ioslave_batch_count _ioslave_issue_count +syn keyword oraKeywordUnd _kgl_bucket_count _kgl_latch_count _kgl_multi_instance_invalidation +syn keyword oraKeywordUnd _kgl_multi_instance_lock _kgl_multi_instance_pin +syn keyword oraKeywordUnd _latch_miss_stat_sid _latch_recovery_alignment _latch_wait_posting +syn keyword oraKeywordUnd _lm_ast_option _lm_direct_sends _lm_dlmd_procs _lm_domains _lm_groups +syn keyword oraKeywordUnd _lm_non_fault_tolerant _lm_send_buffers _lm_statistics _lm_xids +syn keyword oraKeywordUnd _log_blocks_during_backup _log_buffers_debug _log_checkpoint_recovery_check +syn keyword oraKeywordUnd _log_debug_multi_instance _log_entry_prebuild_threshold _log_io_size +syn keyword oraKeywordUnd _log_space_errors +syn keyword oraKeywordUnd _max_exponential_sleep _max_sleep_holding_latch +syn keyword oraKeywordUnd _messages _minimum_giga_scn _mts_load_constants _nested_loop_fudge +syn keyword oraKeywordUnd _no_objects _no_or_expansion +syn keyword oraKeywordUnd _number_cached_attributes _offline_rollback_segments _open_files_limit +syn keyword oraKeywordUnd _optimizer_undo_changes +syn keyword oraKeywordUnd _oracle_trace_events _oracle_trace_facility_version +syn keyword oraKeywordUnd _ordered_nested_loop _parallel_server_sleep_time +syn keyword oraKeywordUnd _passwordfile_enqueue_timeout _pdml_slaves_diff_part +syn keyword oraKeywordUnd _plsql_dump_buffer_events _predicate_elimination_enabled +syn keyword oraKeywordUnd _project_view_columns +syn keyword oraKeywordUnd _px_broadcast_fudge_factor _px_broadcast_trace _px_dop_limit_degree +syn keyword oraKeywordUnd _px_dop_limit_threshold _px_kxfr_granule_allocation _px_kxib_tracing +syn keyword oraKeywordUnd _release_insert_threshold _reuse_index_loop +syn keyword oraKeywordUnd _rollback_segment_count _rollback_segment_initial +syn keyword oraKeywordUnd _row_cache_buffer_size _row_cache_instance_locks +syn keyword oraKeywordUnd _save_escalates _scn_scheme +syn keyword oraKeywordUnd _second_spare_parameter _session_idle_bit_latches +syn keyword oraKeywordUnd _shared_session_sort_fetch_buffer _single_process +syn keyword oraKeywordUnd _small_table_threshold _sql_connect_capability_override +syn keyword oraKeywordUnd _sql_connect_capability_table +syn keyword oraKeywordUnd _test_param_1 _test_param_2 _test_param_3 +syn keyword oraKeywordUnd _third_spare_parameter _tq_dump_period +syn keyword oraKeywordUnd _trace_archive_dest _trace_archive_start _trace_block_size +syn keyword oraKeywordUnd _trace_buffers_per_process _trace_enabled _trace_events +syn keyword oraKeywordUnd _trace_file_size _trace_files_public _trace_flushing _trace_write_batch_size +syn keyword oraKeywordUnd _upconvert_from_ast _use_vector_post _wait_for_sync _walk_insert_threshold +"dunno which version; may be 8.1.x, may be obsoleted +syn keyword oraKeywordUndObs _arch_io_slaves _average_dirties_half_life _b_tree_bitmap_plans +syn keyword oraKeywordUndObs _backup_disk_io_slaves _backup_io_pool_size +syn keyword oraKeywordUndObs _cleanup_rollback_entries _close_cached_open_cursors +syn keyword oraKeywordUndObs _compatible_no_recovery _complex_view_merging +syn keyword oraKeywordUndObs _cpu_to_io _cr_server +syn keyword oraKeywordUndObs _db_aging_cool_count _db_aging_freeze_cr _db_aging_hot_criteria +syn keyword oraKeywordUndObs _db_aging_stay_count _db_aging_touch_time +syn keyword oraKeywordUndObs _db_percent_hot_default _db_percent_hot_keep _db_percent_hot_recycle +syn keyword oraKeywordUndObs _db_writer_chunk_writes _db_writer_max_writes +syn keyword oraKeywordUndObs _dbwr_async_io _dbwr_tracing +syn keyword oraKeywordUndObs _defer_multiple_waiters _discrete_transaction_enabled +syn keyword oraKeywordUndObs _distributed_lock_timeout _distributed_recovery _distribited_recovery_ +syn keyword oraKeywordUndObs _domain_index_batch_size _domain_index_dml_batch_size +syn keyword oraKeywordUndObs _enable_NUMA_optimization _enable_block_level_transaction_recovery +syn keyword oraKeywordUndObs _enable_list_io _enable_multiple_sampling +syn keyword oraKeywordUndObs _fairness_treshold _fast_full_scan_enabled _foreground_locks +syn keyword oraKeywordUndObs _full_pwise_join_enabled _gc_latches _gc_lck_procs +syn keyword oraKeywordUndObs _high_server_treshold _index_prefetch_factor _kcl_debug +syn keyword oraKeywordUndObs _kkfi_trace _large_pool_min_alloc _lazy_freelist_close _left_nested_loops_random +syn keyword oraKeywordUndObs _lgwr_async_io _lgwr_io_slaves _lock_sga_areas +syn keyword oraKeywordUndObs _log_archive_buffer_size _log_archive_buffers _log_simultaneous_copies +syn keyword oraKeywordUndObs _low_server_treshold _max_transaction_branches +syn keyword oraKeywordUndObs _mts_rate_log_size _mts_rate_scale +syn keyword oraKeywordUndObs _mview_cost_rewrite _mview_rewrite_2 +syn keyword oraKeywordUndObs _ncmb_readahead_enabled _ncmb_readahead_tracing +syn keyword oraKeywordUndObs _ogms_home +syn keyword oraKeywordUndObs _parallel_adaptive_max_users _parallel_default_max_instances +syn keyword oraKeywordUndObs _parallel_execution_message_align _parallel_fake_class_pct +syn keyword oraKeywordUndObs _parallel_load_bal_unit _parallel_load_balancing +syn keyword oraKeywordUndObs _parallel_min_message_pool _parallel_recovery_stopat +syn keyword oraKeywordUndObs _parallel_server_idle_time _parallelism_cost_fudge_factor +syn keyword oraKeywordUndObs _partial_pwise_join_enabled _pdml_separate_gim _push_join_predicate +syn keyword oraKeywordUndObs _px_granule_size _px_index_sampling _px_load_publish_interval +syn keyword oraKeywordUndObs _px_max_granules_per_slave _px_min_granules_per_slave _px_no_stealing +syn keyword oraKeywordUndObs _row_cache_cursors _serial_direct_read _shared_pool_reserved_min_alloc +syn keyword oraKeywordUndObs _sort_space_for_write_buffers _spin_count _system_trig_enabled +syn keyword oraKeywordUndObs _trace_buffer_flushes _trace_cr_buffer_creates _trace_multi_block_reads +syn keyword oraKeywordUndObs _transaction_recovery_servers _use_ism _yield_check_interval + + +syn cluster oraAll add=oraKeyword,oraKeywordGroup,oraKeywordPref,oraKeywordObs,oraKeywordUnd,oraKeywordUndObs +syn cluster oraAll add=oraValue,oraModifier,oraString,oraSpecial,oraComment + +"============================================================================== +" highlighting + +" Only when an item doesn't have highlighting yet + +hi def link oraKeyword Statement "usual keywords +hi def link oraKeywordGroup Type "keywords which group other keywords +hi def link oraKeywordPref oraKeywordGroup "keywords which act as prefixes +hi def link oraKeywordObs Todo "obsolete keywords +hi def link oraKeywordUnd PreProc "undocumented keywords +hi def link oraKeywordUndObs oraKeywordObs "undocumented obsolete keywords +hi def link oraValue Identifier "values, like true or false +hi def link oraModifier oraValue "modifies values +hi def link oraString String "strings + +hi def link oraSpecial Special "special characters +hi def link oraError Error "errors +hi def link oraParenError oraError "errors caused by mismatching parentheses + +hi def link oraComment Comment "comments + + + +let b:current_syntax = "ora" + +if main_syntax == 'ora' + unlet main_syntax +endif + +" vim: ts=8 diff --git a/runtime/syntax/pacmanlog.vim b/runtime/syntax/pacmanlog.vim new file mode 100644 index 0000000..98abd58 --- /dev/null +++ b/runtime/syntax/pacmanlog.vim @@ -0,0 +1,41 @@ +" Vim syntax file +" Language: pacman.log +" Maintainer: Ronan Pigott +" Last Change: 2023 Dec 04 + +if exists("b:current_syntax") + finish +endif + +syn sync maxlines=1 +syn region pacmanlogMsg start='\S' end='$' keepend contains=pacmanlogTransaction,pacmanlogALPMMsg +syn region pacmanlogTag start='\['hs=s+1 end='\]'he=e-1 keepend nextgroup=pacmanlogMsg +syn region pacmanlogTime start='^\['hs=s+1 end='\]'he=e-1 keepend nextgroup=pacmanlogTag + +syn match pacmanlogPackageName '\v[a-z0-9@_+.-]+' contained skipwhite nextgroup=pacmanlogPackageVersion +syn match pacmanlogPackageVersion '(.*)' contained + +syn match pacmanlogTransaction 'transaction \v(started|completed)$' contained +syn match pacmanlogInstalled '\v(re)?installed' contained nextgroup=pacmanlogPackageName +syn match pacmanlogUpgraded 'upgraded' contained nextgroup=pacmanlogPackageName +syn match pacmanlogDowngraded 'downgraded' contained nextgroup=pacmanlogPackageName +syn match pacmanlogRemoved 'removed' contained nextgroup=pacmanlogPackageName +syn match pacmanlogWarning 'warning:.*$' contained + +syn region pacmanlogALPMMsg start='\v(\[ALPM\] )@<=(transaction|(re)?installed|upgraded|downgraded|removed|warning)>' end='$' contained + \ contains=pacmanlogTransaction,pacmanlogInstalled,pacmanlogUpgraded,pacmanlogDowngraded,pacmanlogRemoved,pacmanlogWarning,pacmanlogPackageName,pacmanlogPackgeVersion + +hi def link pacmanlogTime String +hi def link pacmanlogTag Type + +hi def link pacmanlogTransaction Special +hi def link pacmanlogInstalled Identifier +hi def link pacmanlogRemoved Repeat +hi def link pacmanlogUpgraded pacmanlogInstalled +hi def link pacmanlogDowngraded pacmanlogRemoved +hi def link pacmanlogWarning WarningMsg + +hi def link pacmanlogPackageName Normal +hi def link pacmanlogPackageVersion Comment + +let b:current_syntax = "pacmanlog" diff --git a/runtime/syntax/pamconf.vim b/runtime/syntax/pamconf.vim new file mode 100644 index 0000000..2913284 --- /dev/null +++ b/runtime/syntax/pamconf.vim @@ -0,0 +1,131 @@ +" Vim syntax file +" Language: pam(8) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2020/08/04 +" Changes By: Haochen Tong + + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +let s:has_service_field = exists("b:pamconf_has_service_field") + \ ? b:pamconf_has_service_field + \ : expand('%:t') == 'pam.conf' ? 1 : 0 + +syn match pamconfType '-\?[[:alpha:]]\+' + \ contains=pamconfTypeKeyword + \ nextgroup=pamconfControl, + \ pamconfTypeLineCont skipwhite + +syn keyword pamconfTypeKeyword contained account auth password session + +if s:has_service_field + syn match pamconfService '^[[:graph:]]\+' + \ nextgroup=pamconfType, + \ pamconfServiceLineCont skipwhite + + syn match pamconfServiceLineCont contained '\\$' + \ nextgroup=pamconfType, + \ pamconfServiceLineCont skipwhite skipnl +endif + +syn keyword pamconfTodo contained TODO FIXME XXX NOTE + +syn region pamconfComment display oneline start='#' end='$' + \ contains=pamconfTodo,@Spell + +syn match pamconfTypeLineCont contained '\\$' + \ nextgroup=pamconfControl, + \ pamconfTypeLineCont skipwhite skipnl + +syn keyword pamconfControl contained requisite required sufficient + \ optional include substack + \ nextgroup=pamconfMPath, + \ pamconfControlLineContH skipwhite + +syn match pamconfControlBegin '\[' nextgroup=pamconfControlValues, + \ pamconfControlLineCont skipwhite + +syn match pamconfControlLineCont contained '\\$' + \ nextgroup=pamconfControlValues, + \ pamconfControlLineCont skipwhite skipnl + +syn keyword pamconfControlValues contained success open_err symbol_err + \ service_err system_err buf_err + \ perm_denied auth_err cred_insufficient + \ authinfo_unavail user_unknown maxtries + \ new_authtok_reqd acct_expired session_err + \ cred_unavail cred_expired cred_err + \ no_module_data conv_err authtok_err + \ authtok_recover_err authtok_lock_busy + \ authtok_disable_aging try_again ignore + \ abort authtok_expired module_unknown + \ bad_item and default + \ nextgroup=pamconfControlValueEq + +syn match pamconfControlValueEq contained '=' + \ nextgroup=pamconfControlActionN, + \ pamconfControlAction + +syn match pamconfControlActionN contained '\d\+\>' + \ nextgroup=pamconfControlValues, + \ pamconfControlLineCont,pamconfControlEnd + \ skipwhite +syn keyword pamconfControlAction contained ignore bad die ok done reset + \ nextgroup=pamconfControlValues, + \ pamconfControlLineCont,pamconfControlEnd + \ skipwhite + +syn match pamconfControlEnd contained '\]' + \ nextgroup=pamconfMPath, + \ pamconfControlLineContH skipwhite + +syn match pamconfControlLineContH contained '\\$' + \ nextgroup=pamconfMPath, + \ pamconfControlLineContH skipwhite skipnl + +syn match pamconfMPath contained '\S\+' + \ nextgroup=pamconfMPathLineCont, + \ pamconfArgs skipwhite + +syn match pamconfArgs contained '\S\+' + \ nextgroup=pamconfArgsLineCont, + \ pamconfArgs skipwhite + +syn match pamconfMPathLineCont contained '\\$' + \ nextgroup=pamconfMPathLineCont, + \ pamconfArgs skipwhite skipnl + +syn match pamconfArgsLineCont contained '\\$' + \ nextgroup=pamconfArgsLineCont, + \ pamconfArgs skipwhite skipnl + +hi def link pamconfTodo Todo +hi def link pamconfComment Comment +hi def link pamconfService Statement +hi def link pamconfServiceLineCont Special +hi def link pamconfType Special +hi def link pamconfTypeKeyword Type +hi def link pamconfTypeLineCont pamconfServiceLineCont +hi def link pamconfControl Macro +hi def link pamconfControlBegin Delimiter +hi def link pamconfControlLineContH pamconfServiceLineCont +hi def link pamconfControlLineCont pamconfServiceLineCont +hi def link pamconfControlValues Identifier +hi def link pamconfControlValueEq Operator +hi def link pamconfControlActionN Number +hi def link pamconfControlAction Identifier +hi def link pamconfControlEnd Delimiter +hi def link pamconfMPath String +hi def link pamconfMPathLineCont pamconfServiceLineCont +hi def link pamconfArgs Normal +hi def link pamconfArgsLineCont pamconfServiceLineCont + +let b:current_syntax = "pamconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/pamenv.vim b/runtime/syntax/pamenv.vim new file mode 100644 index 0000000..90359da --- /dev/null +++ b/runtime/syntax/pamenv.vim @@ -0,0 +1,28 @@ +" Vim syntax file +" Language: pam_env.conf(5) configuration file +" Latest Revision: 2020-05-10 + +if exists("b:current_syntax") + finish +endif + +syn keyword pamenvTodo contained TODO FIXME XXX NOTE +syn region pamenvComment start='^#' end='$' display oneline contains=pamenvTodo,@Spells + +syn match pamenvVars '^[A-Z_][A-Z_0-9]*' nextgroup=pamenvKeywords skipwhite + +syn keyword pamenvKeywords contained DEFAULT OVERRIDE nextgroup=pamenvVarEq + +syn match pamenvVarEq contained '=' nextgroup=pamenvValue,pamenvValueWithQuote + +syn match pamenvValue contained '[^ \t]*' skipwhite nextgroup=pamenvKeywords +syn region pamenvValueWithQuote contained start='"' end='"' skipwhite nextgroup=pamenvKeywords + +hi def link pamenvTodo Todo +hi def link pamenvComment Comment +hi def link pamenvKeywords Keyword +hi def link pamenvVars Identifier +hi def link pamenvValue String +hi def link pamenvValueWithQuote String + +let b:current_syntax = "pamenv" diff --git a/runtime/syntax/papp.vim b/runtime/syntax/papp.vim new file mode 100644 index 0000000..5b65f05 --- /dev/null +++ b/runtime/syntax/papp.vim @@ -0,0 +1,76 @@ +" Vim syntax file for the "papp" file format (_p_erl _app_lication) +" +" Language: papp +" Maintainer: Marc Lehmann +" Last Change: 2009 Nov 11 +" Filenames: *.papp *.pxml *.pxsl +" URL: http://papp.plan9.de/ + +" You can set the "papp_include_html" variable so that html will be +" rendered as such inside phtml sections (in case you actually put html +" there - papp does not require that). Also, rendering html tends to keep +" the clutter high on the screen - mixing three languages is difficult +" enough(!). PS: it is also slow. + +" pod is, btw, allowed everywhere, which is actually wrong :( + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" source is basically xml, with included html (this is common) and perl bits +runtime! syntax/xml.vim +unlet b:current_syntax + +if exists("papp_include_html") + syn include @PAppHtml syntax/html.vim + unlet b:current_syntax + syntax spell default " added by Bram +endif + +syn include @PAppPerl syntax/perl.vim + +syn cluster xmlFoldCluster add=papp_perl,papp_xperl,papp_phtml,papp_pxml,papp_perlPOD + +" preprocessor commands +syn region papp_prep matchgroup=papp_prep start="^#\s*\(if\|elsif\)" end="$" keepend contains=@perlExpr contained +syn match papp_prep /^#\s*\(else\|endif\|??\).*$/ contained +" translation entries +syn region papp_gettext start=/__"/ end=/"/ contained contains=@papp_perlInterpDQ +syn cluster PAppHtml add=papp_gettext,papp_prep + +" add special, paired xperl, perl and phtml tags +syn region papp_perl matchgroup=xmlTag start="" end="" contains=papp_CDATAp,@PAppPerl keepend +syn region papp_xperl matchgroup=xmlTag start="" end="" contains=papp_CDATAp,@PAppPerl keepend +syn region papp_phtml matchgroup=xmlTag start="" end="" contains=papp_CDATAh,papp_ph_perl,papp_ph_html,papp_ph_hint,@PAppHtml keepend +syn region papp_pxml matchgroup=xmlTag start="" end="" contains=papp_CDATAx,papp_ph_perl,papp_ph_xml,papp_ph_xint keepend +syn region papp_perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,perlTodo keepend + +" cdata sections +syn region papp_CDATAp matchgroup=xmlCdataDecl start="" contains=@PAppPerl contained keepend +syn region papp_CDATAh matchgroup=xmlCdataDecl start="" contains=papp_ph_perl,papp_ph_html,papp_ph_hint,@PAppHtml contained keepend +syn region papp_CDATAx matchgroup=xmlCdataDecl start="" contains=papp_ph_perl,papp_ph_xml,papp_ph_xint contained keepend + +syn region papp_ph_perl matchgroup=Delimiter start="<[:?]" end="[:?]>"me=e-2 nextgroup=papp_ph_html contains=@PAppPerl contained keepend +syn region papp_ph_html matchgroup=Delimiter start=":>" end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@PAppHtml contained keepend +syn region papp_ph_hint matchgroup=Delimiter start="?>" end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@perlInterpDQ,@PAppHtml contained keepend +syn region papp_ph_xml matchgroup=Delimiter start=":>" end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains= contained keepend +syn region papp_ph_xint matchgroup=Delimiter start="?>" end="<[:?]"me=e-2 nextgroup=papp_ph_perl contains=@perlInterpDQ contained keepend + +" synchronization is horrors! +syn sync clear +syn sync match pappSync grouphere papp_CDATAh "" +syn sync match pappSync grouphere papp_CDATAh "^# *\(if\|elsif\|else\|endif\)" +syn sync match pappSync grouphere papp_CDATAh "" +syn sync match pappSync grouphere NONE "" + +syn sync maxlines=300 +syn sync minlines=5 + +" The default highlighting. + +hi def link papp_prep preCondit +hi def link papp_gettext String + +let b:current_syntax = "papp" diff --git a/runtime/syntax/pascal.vim b/runtime/syntax/pascal.vim new file mode 100644 index 0000000..206df21 --- /dev/null +++ b/runtime/syntax/pascal.vim @@ -0,0 +1,384 @@ +" Vim syntax file +" Language: Pascal +" Maintainer: Doug Kearns +" Previous Maintainers: Xavier Crégut +" Mario Eusebio +" Last Change: 2021 May 20 + +" Contributors: Tim Chase , +" Stas Grabois , +" Mazen NEIFER , +" Klaus Hast , +" Austin Ziegler , +" Markus Koenig + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +syn case ignore +syn sync lines=250 + +syn keyword pascalBoolean true false +syn keyword pascalConditional if else then +syn keyword pascalConstant nil maxint +syn keyword pascalLabel case goto label +syn keyword pascalOperator and div downto in mod not of or packed +syn keyword pascalRepeat do for do repeat while to until +syn keyword pascalStatement procedure function +syn keyword pascalStatement program begin end const var type with +syn keyword pascalStruct record +syn keyword pascalType array boolean char integer file pointer real set +syn keyword pascalType string text variant + + + " 20011222az: Added new items. +syn keyword pascalTodo contained TODO FIXME XXX DEBUG NOTE + + " 20010723az: When wanted, highlight the trailing whitespace -- this is + " based on c_space_errors; to enable, use "pascal_space_errors". +if exists("pascal_space_errors") + if !exists("pascal_no_trail_space_error") + syn match pascalSpaceError "\s\+$" + endif + if !exists("pascal_no_tab_space_error") + syn match pascalSpaceError " \+\t"me=e-1 + endif +endif + + + +" String +if !exists("pascal_one_line_string") + syn region pascalString matchgroup=pascalString start=+'+ end=+'+ contains=pascalStringEscape + if exists("pascal_gpc") + syn region pascalString matchgroup=pascalString start=+"+ end=+"+ contains=pascalStringEscapeGPC + else + syn region pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ contains=pascalStringEscape + endif +else + "wrong strings + syn region pascalStringError matchgroup=pascalStringError start=+'+ end=+'+ end=+$+ contains=pascalStringEscape + if exists("pascal_gpc") + syn region pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscapeGPC + else + syn region pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ end=+$+ contains=pascalStringEscape + endif + + "right strings + syn region pascalString matchgroup=pascalString start=+'+ end=+'+ oneline contains=pascalStringEscape + " To see the start and end of strings: + " syn region pascalString matchgroup=pascalStringError start=+'+ end=+'+ oneline contains=pascalStringEscape + if exists("pascal_gpc") + syn region pascalString matchgroup=pascalString start=+"+ end=+"+ oneline contains=pascalStringEscapeGPC + else + syn region pascalStringError matchgroup=pascalStringError start=+"+ end=+"+ oneline contains=pascalStringEscape + endif +end +syn match pascalStringEscape contained "''" +syn match pascalStringEscapeGPC contained '""' + + +" syn match pascalIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>" + + +if exists("pascal_symbol_operator") + syn match pascalSymbolOperator "[+\-/*=]" + syn match pascalSymbolOperator "[<>]=\=" + syn match pascalSymbolOperator "<>" + syn match pascalSymbolOperator ":=" + syn match pascalSymbolOperator "[()]" + syn match pascalSymbolOperator "\.\." + syn match pascalSymbolOperator "[\^.]" + syn match pascalMatrixDelimiter "[][]" + "if you prefer you can highlight the range + "syn match pascalMatrixDelimiter "[\d\+\.\.\d\+]" +endif + +syn match pascalNumber "-\=\<\d\+\>" +if !exists("pascal_traditional") + syn match pascalHexNumber "\$\x\+\>" +endif +if exists("pascal_fpc") + syn match pascalOctNumber "&\o\+\>" + syn match pascalBinNumber "%[01]\+\>" +endif +if exists("pascal_gpc") + syn match pascalExtendedNumber "\%([2-9]\|[12]\d\|3[0-6]\)#[[:alnum:]]\+\>" +endif + +syn match pascalFloat "-\=\<\d\+\.\d\+\>" +syn match pascalFloat "-\=\<\d\+\.\d\+[eE]-\=\d\+\>" + +if !exists("pascal_traditional") + " allow leading zeros + syn match pascalControlCharacter "#\%([01]\=\d\=\d\|2[0-4]\d\|25[0-5]\)\>" +endif + +if exists("pascal_no_tabs") + syn match pascalShowTab "\t" +endif + +syn region pascalComment start="(\*\|{" end="\*)\|}" contains=pascalTodo,pascalSpaceError + + +if !exists("pascal_no_functions") + " array functions + syn keyword pascalFunction pack unpack + + " memory function + syn keyword pascalFunction Dispose New + + " math functions + syn keyword pascalFunction Abs Arctan Cos Exp Ln Sin Sqr Sqrt + + " file functions + syn keyword pascalFunction Eof Eoln Write Writeln + syn keyword pascalPredefined Input Output + + if exists("pascal_traditional") + " These functions do not seem to be defined in Turbo Pascal + syn keyword pascalFunction Get Page Put + endif + + " ordinal functions + syn keyword pascalFunction Odd Pred Succ + + " transfert functions + syn keyword pascalFunction Chr Ord Round Trunc +endif + + +if !exists("pascal_traditional") + + syn keyword pascalStatement constructor destructor implementation inherited + syn keyword pascalStatement interface unit uses + syn keyword pascalModifier absolute assembler external far forward inline + syn keyword pascalModifier interrupt near virtual + syn keyword pascalAccess private public strict + syn keyword pascalStruct object + syn keyword pascalOperator shl shr xor + + syn region pascalPreProc start="(\*\$" end="\*)" contains=pascalTodo + syn region pascalPreProc start="{\$" end="}" + + syn region pascalAsm matchgroup=pascalAsmKey start="\" end="\" contains=pascalComment,pascalPreProc + + syn keyword pascalType ShortInt LongInt Byte Word + syn keyword pascalType ByteBool WordBool LongBool + syn keyword pascalType Cardinal LongWord + syn keyword pascalType Single Double Extended Comp + syn keyword pascalType PChar + + syn keyword pascalPredefined self + + if !exists ("pascal_fpc") + syn keyword pascalPredefined Result + endif + + if exists("pascal_fpc") + syn region pascalComment start="//" end="$" contains=pascalTodo,pascalSpaceError + syn keyword pascalStatement fail otherwise operator + syn keyword pascalDirective popstack + syn keyword pascalType ShortString AnsiString WideString + endif + + if exists("pascal_gpc") + syn region pascalComment start="//" end="$" contains=pascalTodo,pascalSpaceError + syn keyword pascalType SmallInt + syn keyword pascalType AnsiChar + syn keyword pascalType PAnsiChar + endif + + if exists("pascal_delphi") + syn region pascalComment start="//" end="$" contains=pascalTodo,pascalSpaceError + syn region pascalDocumentation start="///" end="$" contains=pascalTodo,pascalSpaceError + syn region pascalDocumentation start="{!" end="}" contains=pascalTodo,pascalSpaceError + syn keyword pascalType SmallInt Int64 + syn keyword pascalType Real48 Currency + syn keyword pascalType AnsiChar WideChar + syn keyword pascalType ShortString AnsiString WideString + syn keyword pascalType PAnsiChar PWideChar + syn match pascalFloat "-\=\<\d\+\.\d\+[dD]-\=\d\+\>" + syn match pascalStringEscape contained "#[12][0-9]\=[0-9]\=" + syn keyword pascalStruct class dispinterface + syn keyword pascalException try except raise at on finally + syn keyword pascalStatement out + syn keyword pascalStatement library package + syn keyword pascalStatement initialization finalization uses exports + syn keyword pascalStatement property out resourcestring threadvar + syn keyword pascalModifier contains + syn keyword pascalModifier overridden reintroduce abstract sealed + syn keyword pascalModifier override export dynamic name message + syn keyword pascalModifier dispid index stored default nodefault readonly + syn keyword pascalModifier writeonly implements overload requires resident + syn keyword pascalAccess protected published automated + syn keyword pascalDirective register pascal cvar cdecl stdcall safecall + syn keyword pascalOperator as is + endif + + if exists("pascal_no_functions") + "syn keyword pascalModifier read write + "may confuse with Read and Write functions. Not easy to handle. + else + " control flow functions + syn keyword pascalFunction Break Continue Exit Halt RunError + + " ordinal functions + syn keyword pascalFunction Dec Inc High Low + + " math functions + syn keyword pascalFunction Frac Int Pi + + " string functions + syn keyword pascalFunction Concat Copy Delete Insert Length Pos Str Val + + " memory function + syn keyword pascalFunction FreeMem GetMem MaxAvail MemAvail + + " pointer and address functions + syn keyword pascalFunction Addr Assigned CSeg DSeg Ofs Ptr Seg SPtr SSeg + + " misc functions + syn keyword pascalFunction Exclude FillChar Hi Include Lo Move ParamCount + syn keyword pascalFunction ParamStr Random Randomize SizeOf Swap TypeOf + syn keyword pascalFunction UpCase + + " predefined variables + syn keyword pascalPredefined ErrorAddr ExitCode ExitProc FileMode FreeList + syn keyword pascalPredefined FreeZero HeapEnd HeapError HeapOrg HeapPtr + syn keyword pascalPredefined InOutRes OvrCodeList OvrDebugPtr OvrDosHandle + syn keyword pascalPredefined OvrEmsHandle OvrHeapEnd OvrHeapOrg OvrHeapPtr + syn keyword pascalPredefined OvrHeapSize OvrLoadList PrefixSeg RandSeed + syn keyword pascalPredefined SaveInt00 SaveInt02 SaveInt1B SaveInt21 + syn keyword pascalPredefined SaveInt23 SaveInt24 SaveInt34 SaveInt35 + syn keyword pascalPredefined SaveInt36 SaveInt37 SaveInt38 SaveInt39 + syn keyword pascalPredefined SaveInt3A SaveInt3B SaveInt3C SaveInt3D + syn keyword pascalPredefined SaveInt3E SaveInt3F SaveInt75 SegA000 SegB000 + syn keyword pascalPredefined SegB800 SelectorInc StackLimit Test8087 + + " file functions + syn keyword pascalFunction Append Assign BlockRead BlockWrite ChDir Close + syn keyword pascalFunction Erase FilePos FileSize Flush GetDir IOResult + syn keyword pascalFunction MkDir Read Readln Rename Reset Rewrite RmDir + syn keyword pascalFunction Seek SeekEof SeekEoln SetTextBuf Truncate + + " crt unit + syn keyword pascalFunction AssignCrt ClrEol ClrScr Delay DelLine GotoXY + syn keyword pascalFunction HighVideo InsLine KeyPressed LowVideo NormVideo + syn keyword pascalFunction NoSound ReadKey Sound TextBackground TextColor + syn keyword pascalFunction TextMode WhereX WhereY Window + syn keyword pascalPredefined CheckBreak CheckEOF CheckSnow DirectVideo + syn keyword pascalPredefined LastMode TextAttr WindMin WindMax + syn keyword pascalFunction BigCursor CursorOff CursorOn + syn keyword pascalConstant Black Blue Green Cyan Red Magenta Brown + syn keyword pascalConstant LightGray DarkGray LightBlue LightGreen + syn keyword pascalConstant LightCyan LightRed LightMagenta Yellow White + syn keyword pascalConstant Blink ScreenWidth ScreenHeight bw40 + syn keyword pascalConstant co40 bw80 co80 mono + syn keyword pascalPredefined TextChar + + " DOS unit + syn keyword pascalFunction AddDisk DiskFree DiskSize DosExitCode DosVersion + syn keyword pascalFunction EnvCount EnvStr Exec Expand FindClose FindFirst + syn keyword pascalFunction FindNext FSearch FSplit GetCBreak GetDate + syn keyword pascalFunction GetEnv GetFAttr GetFTime GetIntVec GetTime + syn keyword pascalFunction GetVerify Intr Keep MSDos PackTime SetCBreak + syn keyword pascalFunction SetDate SetFAttr SetFTime SetIntVec SetTime + syn keyword pascalFunction SetVerify SwapVectors UnPackTime + syn keyword pascalConstant FCarry FParity FAuxiliary FZero FSign FOverflow + syn keyword pascalConstant Hidden Sysfile VolumeId Directory Archive + syn keyword pascalConstant AnyFile fmClosed fmInput fmOutput fmInout + syn keyword pascalConstant TextRecNameLength TextRecBufSize + syn keyword pascalType ComStr PathStr DirStr NameStr ExtStr SearchRec + syn keyword pascalType FileRec TextBuf TextRec Registers DateTime + syn keyword pascalPredefined DosError + + "Graph Unit + syn keyword pascalFunction Arc Bar Bar3D Circle ClearDevice ClearViewPort + syn keyword pascalFunction CloseGraph DetectGraph DrawPoly Ellipse + syn keyword pascalFunction FillEllipse FillPoly FloodFill GetArcCoords + syn keyword pascalFunction GetAspectRatio GetBkColor GetColor + syn keyword pascalFunction GetDefaultPalette GetDriverName GetFillPattern + syn keyword pascalFunction GetFillSettings GetGraphMode GetImage + syn keyword pascalFunction GetLineSettings GetMaxColor GetMaxMode GetMaxX + syn keyword pascalFunction GetMaxY GetModeName GetModeRange GetPalette + syn keyword pascalFunction GetPaletteSize GetPixel GetTextSettings + syn keyword pascalFunction GetViewSettings GetX GetY GraphDefaults + syn keyword pascalFunction GraphErrorMsg GraphResult ImageSize InitGraph + syn keyword pascalFunction InstallUserDriver InstallUserFont Line LineRel + syn keyword pascalFunction LineTo MoveRel MoveTo OutText OutTextXY + syn keyword pascalFunction PieSlice PutImage PutPixel Rectangle + syn keyword pascalFunction RegisterBGIDriver RegisterBGIFont + syn keyword pascalFunction RestoreCRTMode Sector SetActivePage + syn keyword pascalFunction SetAllPallette SetAspectRatio SetBkColor + syn keyword pascalFunction SetColor SetFillPattern SetFillStyle + syn keyword pascalFunction SetGraphBufSize SetGraphMode SetLineStyle + syn keyword pascalFunction SetPalette SetRGBPalette SetTextJustify + syn keyword pascalFunction SetTextStyle SetUserCharSize SetViewPort + syn keyword pascalFunction SetVisualPage SetWriteMode TextHeight TextWidth + syn keyword pascalType ArcCoordsType FillPatternType FillSettingsType + syn keyword pascalType LineSettingsType PaletteType PointType + syn keyword pascalType TextSettingsType ViewPortType + + " string functions + syn keyword pascalFunction StrAlloc StrBufSize StrCat StrComp StrCopy + syn keyword pascalFunction StrDispose StrECopy StrEnd StrFmt StrIComp + syn keyword pascalFunction StrLCat StrLComp StrLCopy StrLen StrLFmt + syn keyword pascalFunction StrLIComp StrLower StrMove StrNew StrPas + syn keyword pascalFunction StrPCopy StrPLCopy StrPos StrRScan StrScan + syn keyword pascalFunction StrUpper + endif + +endif + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link pascalAccess pascalStatement +hi def link pascalBoolean Boolean +hi def link pascalComment Comment +hi def link pascalDocumentation Comment +hi def link pascalConditional Conditional +hi def link pascalConstant Constant +hi def link pascalControlCharacter Character +hi def link pascalDelimiter Identifier +hi def link pascalDirective pascalStatement +hi def link pascalException Exception +hi def link pascalFloat Float +hi def link pascalFunction Function +hi def link pascalLabel Label +hi def link pascalMatrixDelimiter Identifier +hi def link pascalModifier Type +hi def link pascalNumber Number +hi def link pascalExtendedNumber Number +hi def link pascalBinNumber pascalNumber +hi def link pascalHexNumber pascalNumber +hi def link pascalOctNumber pascalNumber +hi def link pascalOperator Operator +hi def link pascalPredefined pascalStatement +hi def link pascalPreProc PreProc +hi def link pascalRepeat Repeat +hi def link pascalSpaceError Error +hi def link pascalStatement Statement +hi def link pascalString String +hi def link pascalStringEscape Special +hi def link pascalStringEscapeGPC Special +hi def link pascalStringError Error +hi def link pascalStruct pascalStatement +hi def link pascalSymbolOperator pascalOperator +hi def link pascalTodo Todo +hi def link pascalType Type +hi def link pascalUnclassified pascalStatement +" hi def link pascalAsm Assembler +hi def link pascalError Error +hi def link pascalAsmKey pascalStatement +hi def link pascalShowTab Error + + + +let b:current_syntax = "pascal" + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/passwd.vim b/runtime/syntax/passwd.vim new file mode 100644 index 0000000..ad90202 --- /dev/null +++ b/runtime/syntax/passwd.vim @@ -0,0 +1,71 @@ +" Vim syntax file +" Language: passwd(5) password file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-10-03 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match passwdBegin display '^' nextgroup=passwdAccount + +syn match passwdAccount contained display '[^:]\+' + \ nextgroup=passwdPasswordColon + +syn match passwdPasswordColon contained display ':' + \ nextgroup=passwdPassword,passwdShadow + +syn match passwdPassword contained display '[^:]\+' + \ nextgroup=passwdUIDColon + +syn match passwdShadow contained display '[x*!]' + \ nextgroup=passwdUIDColon + +syn match passwdUIDColon contained display ':' nextgroup=passwdUID + +syn match passwdUID contained display '\d\{0,10}' + \ nextgroup=passwdGIDColon + +syn match passwdGIDColon contained display ':' nextgroup=passwdGID + +syn match passwdGID contained display '\d\{0,10}' + \ nextgroup=passwdGecosColon + +syn match passwdGecosColon contained display ':' nextgroup=passwdGecos + +syn match passwdGecos contained display '[^:]*' + \ nextgroup=passwdDirColon + +syn match passwdDirColon contained display ':' nextgroup=passwdDir + +syn match passwdDir contained display '/[^:]*' + \ nextgroup=passwdShellColon + +syn match passwdShellColon contained display ':' + \ nextgroup=passwdShell + +syn match passwdShell contained display '.*' + +hi def link passwdColon Normal +hi def link passwdAccount Identifier +hi def link passwdPasswordColon passwdColon +hi def link passwdPassword Number +hi def link passwdShadow Special +hi def link passwdUIDColon passwdColon +hi def link passwdUID Number +hi def link passwdGIDColon passwdColon +hi def link passwdGID Number +hi def link passwdGecosColon passwdColon +hi def link passwdGecos Comment +hi def link passwdDirColon passwdColon +hi def link passwdDir Type +hi def link passwdShellColon passwdColon +hi def link passwdShell Operator + +let b:current_syntax = "passwd" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/pbtxt.vim b/runtime/syntax/pbtxt.vim new file mode 100644 index 0000000..92a7556 --- /dev/null +++ b/runtime/syntax/pbtxt.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: Protobuf Text Format +" Maintainer: Lakshay Garg +" Last Change: 2020 Nov 17 +" Homepage: https://github.com/lakshayg/vim-pbtxt + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +syn keyword pbtxtTodo TODO FIXME contained +syn keyword pbtxtBool true false contained + +syn match pbtxtInt display "\<\(0\|[1-9]\d*\)\>" +syn match pbtxtHex display "\<0[xX]\x\+\>" +syn match pbtxtFloat display "\(0\|[1-9]\d*\)\=\.\d*" +syn match pbtxtMessage display "^\s*\w\+\s*{"me=e-1 +syn match pbtxtField display "^\s*\w\+:"me=e-1 +syn match pbtxtEnum display ":\s*\a\w\+"ms=s+1 contains=pbtxtBool +syn region pbtxtString start=+"+ skip=+\\"+ end=+"+ contains=@Spell +syn region pbtxtComment start="#" end="$" keepend contains=pbtxtTodo,@Spell + +hi def link pbtxtTodo Todo +hi def link pbtxtBool Boolean +hi def link pbtxtInt Number +hi def link pbtxtHex Number +hi def link pbtxtFloat Float +hi def link pbtxtMessage Structure +hi def link pbtxtField Identifier +hi def link pbtxtEnum Define +hi def link pbtxtString String +hi def link pbtxtComment Comment + +let b:current_syntax = "pbtxt" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet diff --git a/runtime/syntax/pcap.vim b/runtime/syntax/pcap.vim new file mode 100644 index 0000000..e0eed63 --- /dev/null +++ b/runtime/syntax/pcap.vim @@ -0,0 +1,48 @@ +" Vim syntax file +" Config file: printcap +" Maintainer: Lennart Schultz (defunct) +" Modified by Bram +" Last Change: 2003 May 11 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +"define keywords +setlocal isk=@,46-57,_,-,#,=,192-255 + +"first all the bad guys +syn match pcapBad '^.\+$' "define any line as bad +syn match pcapBadword '\k\+' contained "define any sequence of keywords as bad +syn match pcapBadword ':' contained "define any single : as bad +syn match pcapBadword '\\' contained "define any single \ as bad +"then the good boys +" Boolean keywords +syn match pcapKeyword contained ':\(fo\|hl\|ic\|rs\|rw\|sb\|sc\|sf\|sh\)' +" Numeric Keywords +syn match pcapKeyword contained ':\(br\|du\|fc\|fs\|mx\|pc\|pl\|pw\|px\|py\|xc\|xs\)#\d\+' +" String Keywords +syn match pcapKeyword contained ':\(af\|cf\|df\|ff\|gf\|if\|lf\|lo\|lp\|nd\|nf\|of\|rf\|rg\|rm\|rp\|sd\|st\|tf\|tr\|vf\)=\k*' +" allow continuation +syn match pcapEnd ':\\$' contained +" +syn match pcapDefineLast '^\s.\+$' contains=pcapBadword,pcapKeyword +syn match pcapDefine '^\s.\+$' contains=pcapBadword,pcapKeyword,pcapEnd +syn match pcapHeader '^\k[^|]\+\(|\k[^|]\+\)*:\\$' +syn match pcapComment "#.*$" + +syn sync minlines=50 + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link pcapBad WarningMsg +hi def link pcapBadword WarningMsg +hi def link pcapComment Comment + + +let b:current_syntax = "pcap" + +" vim: ts=8 diff --git a/runtime/syntax/pccts.vim b/runtime/syntax/pccts.vim new file mode 100644 index 0000000..7800357 --- /dev/null +++ b/runtime/syntax/pccts.vim @@ -0,0 +1,89 @@ +" Vim syntax file +" Language: PCCTS +" Maintainer: Scott Bigham +" Last Change: 10 Aug 1999 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the C++ syntax to start with +syn include @cppTopLevel syntax/cpp.vim + +syn region pcctsAction matchgroup=pcctsDelim start="<<" end=">>?\=" contains=@cppTopLevel,pcctsRuleRef + +syn region pcctsArgBlock matchgroup=pcctsDelim start="\(>\s*\)\=\[" end="\]" contains=@cppTopLevel,pcctsRuleRef + +syn region pcctsString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=pcctsSpecialChar +syn match pcctsSpecialChar "\\\\\|\\\"" contained + +syn region pcctsComment start="/\*" end="\*/" contains=cTodo +syn match pcctsComment "//.*$" contains=cTodo + +syn region pcctsDirective start="^\s*#header\s\+<<" end=">>" contains=pcctsAction keepend +syn match pcctsDirective "^\s*#parser\>.*$" contains=pcctsString,pcctsComment +syn match pcctsDirective "^\s*#tokdefs\>.*$" contains=pcctsString,pcctsComment +syn match pcctsDirective "^\s*#token\>.*$" contains=pcctsString,pcctsAction,pcctsTokenName,pcctsComment +syn region pcctsDirective start="^\s*#tokclass\s\+[A-Z]\i*\s\+{" end="}" contains=pcctsString,pcctsTokenName +syn match pcctsDirective "^\s*#lexclass\>.*$" contains=pcctsTokenName +syn region pcctsDirective start="^\s*#errclass\s\+[^{]\+\s\+{" end="}" contains=pcctsString,pcctsTokenName +syn match pcctsDirective "^\s*#pred\>.*$" contains=pcctsTokenName,pcctsAction + +syn cluster pcctsInRule contains=pcctsString,pcctsRuleName,pcctsTokenName,pcctsAction,pcctsArgBlock,pcctsSubRule,pcctsLabel,pcctsComment + +syn region pcctsRule start="\<[a-z][A-Za-z0-9_]*\>\(\s*\[[^]]*\]\)\=\(\s*>\s*\[[^]]*\]\)\=\s*:" end=";" contains=@pcctsInRule + +syn region pcctsSubRule matchgroup=pcctsDelim start="(" end=")\(+\|\*\|?\(\s*=>\)\=\)\=" contains=@pcctsInRule contained +syn region pcctsSubRule matchgroup=pcctsDelim start="{" end="}" contains=@pcctsInRule contained + +syn match pcctsRuleName "\<[a-z]\i*\>" contained +syn match pcctsTokenName "\<[A-Z]\i*\>" contained + +syn match pcctsLabel "\<\I\i*:\I\i*" contained contains=pcctsLabelHack,pcctsRuleName,pcctsTokenName +syn match pcctsLabel "\<\I\i*:\"\([^\\]\|\\.\)*\"" contained contains=pcctsLabelHack,pcctsString +syn match pcctsLabelHack "\<\I\i*:" contained + +syn match pcctsRuleRef "\$\I\i*\>" contained +syn match pcctsRuleRef "\$\d\+\(\.\d\+\)\>" contained + +syn keyword pcctsClass class nextgroup=pcctsClassName skipwhite +syn match pcctsClassName "\<\I\i*\>" contained nextgroup=pcctsClassBlock skipwhite skipnl +syn region pcctsClassBlock start="{" end="}" contained contains=pcctsRule,pcctsComment,pcctsDirective,pcctsAction,pcctsException,pcctsExceptionHandler + +syn keyword pcctsException exception nextgroup=pcctsExceptionRuleRef skipwhite +syn match pcctsExceptionRuleRef "\[\I\i*\]" contained contains=pcctsExceptionID +syn match pcctsExceptionID "\I\i*" contained +syn keyword pcctsExceptionHandler catch default +syn keyword pcctsExceptionHandler NoViableAlt NoSemViableAlt +syn keyword pcctsExceptionHandler MismatchedToken + +syn sync clear +syn sync match pcctsSyncAction grouphere pcctsAction "<<" +syn sync match pcctsSyncAction "<<\([^>]\|>[^>]\)*>>" +syn sync match pcctsSyncRule grouphere pcctsRule "\<[a-z][A-Za-z0-9_]*\>\s*\[[^]]*\]\s*:" +syn sync match pcctsSyncRule grouphere pcctsRule "\<[a-z][A-Za-z0-9_]*\>\(\s*\[[^]]*\]\)\=\s*>\s*\[[^]]*\]\s*:" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link pcctsDelim Special +hi def link pcctsTokenName Identifier +hi def link pcctsRuleName Statement +hi def link pcctsLabelHack Label +hi def link pcctsDirective PreProc +hi def link pcctsString String +hi def link pcctsComment Comment +hi def link pcctsClass Statement +hi def link pcctsClassName Identifier +hi def link pcctsException Statement +hi def link pcctsExceptionHandler Keyword +hi def link pcctsExceptionRuleRef pcctsDelim +hi def link pcctsExceptionID Identifier +hi def link pcctsRuleRef Identifier +hi def link pcctsSpecialChar SpecialChar + + +let b:current_syntax = "pccts" + +" vim: ts=8 diff --git a/runtime/syntax/pdf.vim b/runtime/syntax/pdf.vim new file mode 100644 index 0000000..86d80da --- /dev/null +++ b/runtime/syntax/pdf.vim @@ -0,0 +1,73 @@ +" Vim syntax file +" Language: PDF +" Maintainer: Tim Pope +" Last Change: 2007 Dec 16 + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'pdf' +endif + +syn include @pdfXML syntax/xml.vim + +syn case match + +syn cluster pdfObjects contains=pdfBoolean,pdfConstant,pdfNumber,pdfFloat,pdfName,pdfHexString,pdfString,pdfArray,pdfHash,pdfReference,pdfComment +syn keyword pdfBoolean true false contained +syn keyword pdfConstant null contained +syn match pdfNumber "[+-]\=\<\d\+\>" +syn match pdfFloat "[+-]\=\<\%(\d\+\.\|\d*\.\d\+\)\>" contained + +syn match pdfNameError "#\X\|#\x\X\|#00" contained containedin=pdfName +syn match pdfSpecialChar "#\x\x" contained containedin=pdfName +syn match pdfName "/[^[:space:]\[\](){}<>/]*" contained +syn match pdfHexError "[^[:space:][:xdigit:]<>]" contained +"syn match pdfHexString "<\s*\x[^<>]*\x\s*>" contained contains=pdfHexError +"syn match pdfHexString "<\s*\x\=\s*>" contained +syn region pdfHexString matchgroup=pdfDelimiter start="<<\@!" end=">" contained contains=pdfHexError +syn match pdfStringError "\\." contained containedin=pdfString +syn match pdfSpecialChar "\\\%(\o\{1,3\}\|[nrtbf()\\]\)" contained containedin=pdfString +syn region pdfString matchgroup=pdfDelimiter start="\\\@>" contains=@pdfObjects contained +syn match pdfReference "\<\d\+\s\+\d\+\s\+R\>" +"syn keyword pdfOperator R contained containedin=pdfReference + +syn region pdfObject matchgroup=pdfType start="\" end="\" contains=@pdfObjects +syn region pdfObject matchgroup=pdfType start="\ +" Homepage: https://github.com/vim-perl/vim-perl +" Bugs/requests: https://github.com/vim-perl/vim-perl/issues +" License: Vim License (see :help license) +" Last Change: 2022 Jun 13 +" Contributors: Andy Lester +" Hinrik Örn Sigurðsson +" Lukas Mai +" Nick Hibma +" Sonia Heimann +" Rob Hoelz +" Doug Kearns +" and many others. +" +" Please download the most recent version first, before mailing +" any comments. +" +" The following parameters are available for tuning the +" perl syntax highlighting, with defaults given: +" +" let perl_include_pod = 1 +" unlet perl_no_scope_in_variables +" unlet perl_no_extended_vars +" unlet perl_string_as_statement +" unlet perl_no_sync_on_sub +" unlet perl_no_sync_on_global_var +" let perl_sync_dist = 100 +" unlet perl_fold +" unlet perl_fold_blocks +" unlet perl_nofold_packages +" unlet perl_nofold_subs +" unlet perl_fold_anonymous_subs +" unlet perl_no_subprototype_error + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" POD starts with ^= and ends with ^=cut + +if get(g:, 'perl_include_pod', 1) + " Include a while extra syntax file + syn include @Pod syntax/pod.vim + unlet b:current_syntax + if get(g:, 'perl_fold', 1) + syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend fold extend + syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend fold extend + else + syn region perlPOD start="^=[a-z]" end="^=cut" contains=@Pod,@Spell,perlTodo keepend + syn region perlPOD start="^=cut" end="^=cut" contains=perlTodo keepend + endif +else + " Use only the bare minimum of rules + if get(g:, 'perl_fold', 1) + syn region perlPOD start="^=[a-z]" end="^=cut" fold + else + syn region perlPOD start="^=[a-z]" end="^=cut" + endif +endif + + +syn cluster perlTop contains=TOP + +syn region perlBraces start="{" end="}" transparent extend + +" All keywords +" +syn match perlConditional "\<\%(if\|elsif\|unless\|given\|when\|default\)\>" +syn match perlConditional "\\)\|\>\)" contains=perlElseIfError skipwhite skipnl skipempty +syn match perlRepeat "\<\%(while\|for\%(each\)\=\|do\|until\|continue\)\>" +syn match perlOperator "\<\%(defined\|undef\|eq\|ne\|[gl][et]\|cmp\|not\|and\|or\|xor\|not\|bless\|ref\|do\)\>" +" for some reason, adding this as the nextgroup for perlControl fixes BEGIN +" folding issues... +syn match perlFakeGroup "" contained +syn match perlControl "\<\%(BEGIN\|CHECK\|INIT\|END\|UNITCHECK\)\>\_s*" nextgroup=perlFakeGroup + +syn match perlStatementStorage "\<\%(my\|our\|local\|state\)\>" +syn match perlStatementControl "\<\%(return\|last\|next\|redo\|goto\|break\)\>" +syn match perlStatementScalar "\<\%(chom\=p\|chr\|crypt\|r\=index\|lc\%(first\)\=\|length\|ord\|pack\|sprintf\|substr\|fc\|uc\%(first\)\=\)\>" +syn match perlStatementRegexp "\<\%(pos\|quotemeta\|split\|study\)\>" +syn match perlStatementNumeric "\<\%(abs\|atan2\|cos\|exp\|hex\|int\|log\|oct\|rand\|sin\|sqrt\|srand\)\>" +syn match perlStatementList "\<\%(splice\|unshift\|shift\|push\|pop\|join\|reverse\|grep\|map\|sort\|unpack\)\>" +syn match perlStatementHash "\<\%(delete\|each\|exists\|keys\|values\)\>" +syn match perlStatementIOfunc "\<\%(syscall\|dbmopen\|dbmclose\)\>" +syn match perlStatementFiledesc "\<\%(binmode\|close\%(dir\)\=\|eof\|fileno\|getc\|lstat\|printf\=\|read\%(dir\|line\|pipe\)\|rewinddir\|say\|select\|stat\|tell\%(dir\)\=\|write\)\>" nextgroup=perlFiledescStatementNocomma skipwhite +syn match perlStatementFiledesc "\<\%(fcntl\|flock\|ioctl\|open\%(dir\)\=\|read\|seek\%(dir\)\=\|sys\%(open\|read\|seek\|write\)\|truncate\)\>" nextgroup=perlFiledescStatementComma skipwhite +syn match perlStatementVector "\" +syn match perlStatementFiles "\<\%(ch\%(dir\|mod\|own\|root\)\|glob\|link\|mkdir\|readlink\|rename\|rmdir\|symlink\|umask\|unlink\|utime\)\>" +syn match perlStatementFiles "-[rwxoRWXOezsfdlpSbctugkTBMAC]\>" +syn match perlStatementFlow "\<\%(caller\|die\|dump\|eval\|exit\|wantarray\|evalbytes\)\>" +syn match perlStatementInclude "\<\%(require\|import\|unimport\)\>" +syn match perlStatementInclude "\<\%(use\|no\)\s\+\%(\%(attributes\|attrs\|autodie\%(::\%(exception\%(::system\)\=\|hints\|skip\)\)\=\|autouse\|parent\|base\|big\%(int\|num\|rat\)\|blib\|bytes\|charnames\|constant\|deprecate\|diagnostics\|encoding\%(::warnings\)\=\|experimental\|feature\|fields\|filetest\|if\|integer\|less\|lib\|locale\|mro\|ok\|open\|ops\|overload\|overloading\|re\|sigtrap\|sort\|strict\|subs\|threads\%(::shared\)\=\|utf8\|vars\|version\|vmsish\|warnings\%(::register\)\=\)\>\)\=" +syn match perlStatementProc "\<\%(alarm\|exec\|fork\|get\%(pgrp\|ppid\|priority\)\|kill\|pipe\|set\%(pgrp\|priority\)\|sleep\|system\|times\|wait\%(pid\)\=\)\>" +syn match perlStatementSocket "\<\%(accept\|bind\|connect\|get\%(peername\|sock\%(name\|opt\)\)\|listen\|recv\|send\|setsockopt\|shutdown\|socket\%(pair\)\=\)\>" +syn match perlStatementIPC "\<\%(msg\%(ctl\|get\|rcv\|snd\)\|sem\%(ctl\|get\|op\)\|shm\%(ctl\|get\|read\|write\)\)\>" +syn match perlStatementNetwork "\<\%(\%(end\|[gs]et\)\%(host\|net\|proto\|serv\)ent\|get\%(\%(host\|net\)by\%(addr\|name\)\|protoby\%(name\|number\)\|servby\%(name\|port\)\)\)\>" +syn match perlStatementPword "\<\%(get\%(pw\%(uid\|nam\)\|gr\%(gid\|nam\)\|login\)\)\|\%(end\|[gs]et\)\%(pw\|gr\)ent\>" +syn match perlStatementTime "\<\%(gmtime\|localtime\|time\)\>" + +syn match perlStatementMisc "\<\%(warn\|format\|formline\|reset\|scalar\|prototype\|lock\|tied\=\|untie\)\>" + +syn keyword perlTodo TODO TODO: TBD TBD: FIXME FIXME: XXX XXX: NOTE NOTE: contained + +syn region perlStatementIndirObjWrap matchgroup=perlStatementIndirObj start="\%(\<\%(map\|grep\|sort\|printf\=\|say\|system\|exec\)\>\s*\)\@<={" end="}" transparent extend + +syn match perlLabel "^\s*\h\w*\s*::\@!\%(\ is *not* considered as part of the +" variable - there again, too complicated and too slow. + +" Special variables first ($^A, ...) and ($|, $', ...) +syn match perlVarPlain "$^[ACDEFHILMNOPRSTVWX]\=" +syn match perlVarPlain "$[\\\"\[\]'&`+*.,;=%~!?@#$<>(-]" +syn match perlVarPlain "@[-+]" +syn match perlVarPlain "$\%(0\|[1-9]\d*\)" +" Same as above, but avoids confusion in $::foo (equivalent to $main::foo) +syn match perlVarPlain "$::\@!" +" These variables are not recognized within matches. +syn match perlVarNotInMatches "$[|)]" +" This variable is not recognized within matches delimited by m//. +syn match perlVarSlash "$/" + +" And plain identifiers +syn match perlPackageRef "[$@#%*&]\%(\%(::\|'\)\=\I\i*\%(\%(::\|'\)\I\i*\)*\)\=\%(::\|'\)\I"ms=s+1,me=e-1 contained + +" To not highlight packages in variables as a scope reference - i.e. in +" $pack::var, pack:: is a scope, just set "perl_no_scope_in_variables" +" If you don't want complex things like @{${"foo"}} to be processed, +" just set the variable "perl_no_extended_vars"... + +if !get(g:, 'perl_no_scope_in_variables', 0) + syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref + syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref + syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" contains=perlPackageRef nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref +else + syn match perlVarPlain "\%([@$]\|\$#\)\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref + syn match perlVarPlain2 "%\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref + syn match perlFunctionName "&\$*\%(\I\i*\)\=\%(\%(::\|'\)\I\i*\)*\%(::\|\i\@<=\)" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref +endif + +syn match perlVarPlain2 "%[-+]" + +if !get(g:, 'perl_no_extended_vars', 0) + syn cluster perlExpr contains=perlStatementIndirObjWrap,perlStatementScalar,perlStatementRegexp,perlStatementNumeric,perlStatementList,perlStatementHash,perlStatementFiles,perlStatementTime,perlStatementMisc,perlVarPlain,perlVarPlain2,perlVarNotInMatches,perlVarSlash,perlVarBlock,perlVarBlock2,perlShellCommand,perlFloat,perlNumber,perlStringUnexpanded,perlString,perlQ,perlQQ,perlQW,perlQR,perlArrow,perlBraces + syn region perlArrow matchgroup=perlArrow start="->\s*(" end=")" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained + syn region perlArrow matchgroup=perlArrow start="->\s*\[" end="\]" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained + syn region perlArrow matchgroup=perlArrow start="->\s*{" end="}" contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained + syn match perlArrow "->\s*{\s*\I\i*\s*}" contains=perlVarSimpleMemberName nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contained + syn region perlVarBlock matchgroup=perlVarPlain start="\%($#\|[$@]\)\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend + syn region perlVarBlock2 matchgroup=perlVarPlain start="[%&*]\$*{" skip="\\}" end=+}\|\%(\%(<<\%('\|"\)\?\)\@=\)+ contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend + syn match perlVarPlain2 "[%&*]\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend + syn match perlVarPlain "\%(\$#\|[@$]\)\$*{\I\i*}" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend + syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\={" skip="\\}" end="}" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend + syn match perlVarSimpleMember "\%(->\)\={\s*\I\i*\s*}" nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref contains=perlVarSimpleMemberName contained extend + syn match perlVarSimpleMemberName "\I\i*" contained + syn region perlVarMember matchgroup=perlVarPlain start="\%(->\)\=\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarMember,perlVarSimpleMember,perlPostDeref extend + syn match perlPackageConst "__PACKAGE__" nextgroup=perlPostDeref + syn match perlPostDeref "->\%($#\|[$@%&*]\)\*" contained nextgroup=perlVarSimpleMember,perlVarMember,perlPostDeref + syn region perlPostDeref start="->\%($#\|[$@%&*]\)\[" skip="\\]" end="]" contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlPostDeref + syn region perlPostDeref matchgroup=perlPostDeref start="->\%($#\|[$@%&*]\){" skip="\\}" end="}" keepend extend contained contains=@perlExpr nextgroup=perlVarSimpleMember,perlVarMember,perlPostDeref +endif + +" File Descriptors +syn match perlFiledescRead "<\h\w*>" + +syn match perlFiledescStatementComma "(\=\s*\<\u\w*\>\s*,"me=e-1 transparent contained contains=perlFiledescStatement +syn match perlFiledescStatementNocomma "(\=\s*\<\u\w*\>\s*[^, \t]"me=e-1 transparent contained contains=perlFiledescStatement + +syn match perlFiledescStatement "\<\u\w*\>" contained + +" Special characters in strings and matches +syn match perlSpecialString "\\\%(\o\{1,3}\|x\%({\x\+}\|\x\{1,2}\)\|c.\|[^cx]\)" contained extend +syn match perlSpecialStringU2 "\\." extend contained contains=NONE +syn match perlSpecialStringU "\\\\" contained +syn match perlSpecialMatch "\\[1-9]" contained extend +syn match perlSpecialMatch "\\g\%(\d\+\|{\%(-\=\d\+\|\h\w*\)}\)" contained +syn match perlSpecialMatch "\\k\%(<\h\w*>\|'\h\w*'\)" contained +syn match perlSpecialMatch "{\d\+\%(,\%(\d\+\)\=\)\=}" contained +syn match perlSpecialMatch "\[[]-]\=[^\[\]]*[]-]\=\]" contained extend +syn match perlSpecialMatch "[+*()?.]" contained +syn match perlSpecialMatch "(?[#:=!]" contained +syn match perlSpecialMatch "(?[impsx]*\%(-[imsx]\+\)\=)" contained +syn match perlSpecialMatch "(?\%([-+]\=\d\+\|R\))" contained +syn match perlSpecialMatch "(?\%(&\|P[>=]\)\h\w*)" contained +syn match perlSpecialMatch "(\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\=\|\%(MARK\|\):[^)]*\|COMMIT\|F\%(AIL\)\=\|ACCEPT\))" contained + +" Possible errors +" +" Highlight lines with only whitespace (only in blank delimited here documents) as errors +syn match perlNotEmptyLine "^\s\+$" contained +" Highlight "} else if (...) {", it should be "} else { if (...) { " or "} elsif (...) {" +syn match perlElseIfError "else\_s*if" containedin=perlConditional +syn keyword perlElseIfError elseif containedin=perlConditional + +" Variable interpolation +" +" These items are interpolated inside "" strings and similar constructs. +syn cluster perlInterpDQ contains=perlSpecialString,perlVarPlain,perlVarNotInMatches,perlVarSlash,perlVarBlock +" These items are interpolated inside '' strings and similar constructs. +syn cluster perlInterpSQ contains=perlSpecialStringU,perlSpecialStringU2 +" These items are interpolated inside m// matches and s/// substitutions. +syn cluster perlInterpSlash contains=perlSpecialString,perlSpecialMatch,perlVarPlain,perlVarBlock +" These items are interpolated inside m## matches and s### substitutions. +syn cluster perlInterpMatch contains=@perlInterpSlash,perlVarSlash + +" Shell commands +syn region perlShellCommand matchgroup=perlMatchStartEnd start="`" end="`" contains=@perlInterpDQ keepend + +" Constants +" +" Numbers +syn case ignore +syn match perlNumber "\<\%(0\|[1-9]\%(_\=\d\)*\)\>" +syn match perlNumber "\<0\%(x\x\%(_\=\x\)*\|b[01]\%(_\=[01]\)*\|o\=\%(_\=\o\)*\)\>" +syn match perlFloat "\<\d\%(_\=\d\)*e[-+]\=\d\%(_\=\d\)*" +syn match perlFloat "\<\d\%(_\=\d\)*\.\%(\d\%(_\=\d\)*\)\=\%(e[-+]\=\d\%(_\=\d\)*\)\=" +syn match perlFloat "\.\d\%(_\=\d\)*\%(e[-+]\=\d\%(_\=\d\)*\)\=" +syn match perlFloat "\<0x\x\%(_\=\x\)*p[-+]\=\d\%(_\=\d\)*" +syn match perlFloat "\<0x\x\%(_\=\x\)*\.\%(\x\%(_\=\x\)*\)\=\%(p[-+]\=\d\%(_\=\d\)*\)\=" +syn match perlFloat "\<0x\.\x\%(_\=\x\)*\%(p[-+]\=\d\%(_\=\d\)*\)\=" +syn case match + +syn match perlString "\<\%(v\d\+\%(\.\d\+\)*\|\d\+\%(\.\d\+\)\{2,}\)\>" contains=perlVStringV +syn match perlVStringV "\+ extend contained contains=perlAnglesSQ,@perlInterpSQ keepend + +syn region perlParensDQ start=+(+ end=+)+ extend contained contains=perlParensDQ,@perlInterpDQ keepend +syn region perlBracketsDQ start=+\[+ end=+\]+ extend contained contains=perlBracketsDQ,@perlInterpDQ keepend +syn region perlBracesDQ start=+{+ end=+}+ extend contained contains=perlBracesDQ,@perlInterpDQ keepend +syn region perlAnglesDQ start=+<+ end=+>+ extend contained contains=perlAnglesDQ,@perlInterpDQ keepend + + +" Simple version of searches and matches +syn match perlMatchModifiers "[msixpadluncgo]\+" contained +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\s*\z([^[:space:]'([{<#]\)+ end=+\z1+ contains=@perlInterpMatch keepend extend nextgroup=perlMatchModifiers +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@\)\@\)\@+ contains=@perlInterpMatch,perlAnglesDQ keepend extend nextgroup=perlMatchModifiers +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\)\@\s*\z([^[:space:]'([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpMatch nextgroup=perlSubstitutionGQQ keepend extend +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@\)\@+ contains=@perlInterpMatch,perlAnglesDQ nextgroup=perlSubstitutionGQQ skipwhite skipempty skipnl keepend extend +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\)\@+ contained contains=@perlInterpDQ,perlAnglesDQ keepend extend nextgroup=perlSubstitutionModifiers +syn region perlSubstitutionSQ matchgroup=perlMatchStartEnd start=+'+ end=+'+ contained contains=@perlInterpSQ keepend extend nextgroup=perlSubstitutionModifiers + +" Translations +" perlMatch is the first part, perlTranslation* is the second, translator part. +syn match perlTranslationModifiers "[cdsr]\+" contained +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\s*\z([^[:space:]([{<#]\)+ end=+\z1+me=e-1 contains=@perlInterpSQ nextgroup=perlTranslationGQ +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@+ contains=@perlInterpSQ,perlAnglesSQ nextgroup=perlTranslationGQ skipwhite skipempty skipnl +syn region perlMatch matchgroup=perlMatchStartEnd start=+\<\%(::\|'\|->\)\@+ contains=perlAnglesSQ contained nextgroup=perlTranslationModifiers + + +" Strings and q, qq, qw and qr expressions + +syn region perlStringUnexpanded matchgroup=perlStringStartEnd start="'" end="'" contains=@perlInterpSQ keepend extend +syn region perlString matchgroup=perlStringStartEnd start=+"+ end=+"+ contains=@perlInterpDQ keepend extend +syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpSQ keepend extend +syn region perlQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@\)\@+ contains=@perlInterpSQ,perlAnglesSQ keepend extend + +syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\s*\z([^[:space:]#([{<]\)+ end=+\z1+ contains=@perlInterpDQ keepend extend +syn region perlQQ matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@\)\@+ contains=@perlInterpDQ,perlAnglesDQ keepend extend + +syn region perlQW matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@\)\@\)\@+ contains=@perlInterpSQ,perlAnglesSQ keepend extend + +syn match perlQRModifiers "[msixpadluno]\+" contained +syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\s*\z([^[:space:]#([{<'/]\)+ end=+\z1+ contains=@perlInterpMatch keepend extend nextgroup=perlQRModifiers +syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\)\@\)\@\)\@ and qr[] which allows for comments and extra whitespace in the pattern +syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\)\@+ contains=@perlInterpMatch,perlAnglesDQ,perlComment keepend extend nextgroup=perlQRModifiers +syn region perlQR matchgroup=perlStringStartEnd start=+\<\%(::\|'\|->\)\@\_s*" nextgroup=perlSubDeclaration + +" The => operator forces a bareword to the left of it to be interpreted as +" a string +syn match perlString "\I\@\)\@=" + +" All other # are comments, except ^#! +syn match perlComment "#.*" contains=perlTodo,@Spell extend +syn match perlSharpBang "^#!.*" + +" Formats +syn region perlFormat matchgroup=perlStatementIOFunc start="^\s*\~]\+\%(\.\.\.\)\=" contained +syn match perlFormatField "[@^]#[#.]*" contained +syn match perlFormatField "@\*" contained +syn match perlFormatField "@[^A-Za-z_|<>~#*]"me=e-1 contained +syn match perlFormatField "@$" contained + +" __END__ and __DATA__ clauses + +" Vim excludes empty syn-region end lines from the fold region. This is +" probably a bug and means a DATA section ending with an empty line does not +" have that final line included in the fold. +" +" As a workaround we exploit an unterminated syntax region here with an end +" pattern that will (probably) never match. This forces all lines to be +" included in the fold region. Of course, if it does match then there's +" nothing to work around as it is a non-empty line. +" +" This problem also exists with empty string delimited heredocs but there's no +" known workaround for that case. +if get(g:, 'perl_fold', 0) + syntax region perlDATA matchgroup=perlDATAStart start="^__DATA__$" end="VIM_PERL_EOF\%$" contains=@perlDATA fold + syntax region perlEND matchgroup=perlENDStart start="^__END__$" end="VIM_PERL_EOF\%$" contains=@perlDATA fold +else + syntax region perlDATA matchgroup=perlDATAStart start="^__DATA__$" end="\%$" contains=@perlDATA + syntax region perlEND matchgroup=perlENDStart start="^__END__$" end="\%$" contains=@perlDATA +endif + +" TODO: generalise this to allow other filetypes +if get(g:, 'perl_highlight_data', 0) + syn cluster perlDATA add=perlPOD +else + syn cluster perlDATA remove=perlPOD +endif + +" +" Folding +if get(g:, 'perl_fold', 0) + " Note: this bit must come before the actual highlighting of the "package" + " keyword, otherwise this will screw up Pod lines that match /^package/ + if !get(g:, 'perl_nofold_packages', 0) + syn region perlPackageFold start="^package \S\+;\s*\%(#.*\)\=$" end="^1;\=\s*\%(#.*\)\=$" end="\n\+package"me=s-1 transparent fold keepend + syn region perlPackageFold start="^\z(\s*\)package\s*\S\+\s*{" end="^\z1}" transparent fold keepend + endif + if !get(g:, 'perl_nofold_subs', 0) + if get(g:, "perl_fold_anonymous_subs", 0) + " EXPLANATION: + " \ - "sub" keyword + " \_[^;{]* - any characters, including new line, but not ";" or "{", zero or more times + " \%(([\\$@%&*\[\];]*)\)\= - prototype definition, \$@%&*[]; characters between (), zero or 1 times + " \_[^;]* - any characters, including new line, but not ";" or "{", zero or more times + " { - start subroutine block + syn region perlSubFold start="\\_[^;{]*\%(([\\$@%&*\[\];]*)\)\=\_[^;{]*{" end="}" transparent fold keepend extend + else + " EXPLANATION: + " same, as above, but first non-space character after "sub" keyword must + " be [A-Za-z_] + syn region perlSubFold start="\\s*\h\_[^;{]*\%(([\\$@%&*\[\];]*)\)\=\_[^;]*{" end="}" transparent fold keepend extend + endif + + syn region perlSubFold start="\<\%(BEGIN\|END\|CHECK\|INIT\|UNITCHECK\)\>\_s*{" end="}" transparent fold keepend + endif + + if get(g:, 'perl_fold_blocks', 0) + syn region perlBlockFold start="^\z(\s*\)\%(if\|elsif\|unless\|for\|while\|until\|given\)\s*(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" start="^\z(\s*\)for\%(each\)\=\s*\%(\%(my\|our\)\=\s*\S\+\s*\)\=(.*)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend + + " TODO this is works incorrectly + syn region perlBlockFold start="^\z(\s*\)\%(do\|else\)\%(\s*{\)\=\s*\%(#.*\)\=$" end="^\z1}\s*while" end="^\z1}\s*;\=\%(#.*\)\=$" transparent fold keepend + else + if get(g:, 'perl_fold_do_blocks', 0) + syn region perlDoBlockDeclaration start="" end="{" contains=perlComment contained transparent + syn match perlOperator "\\_s*" nextgroup=perlDoBlockDeclaration + + syn region perlDoBlockFold start="\\_[^{]*{" end="}" transparent fold keepend extend + endif + endif + + syn sync fromstart +else + " fromstart above seems to set minlines even if perl_fold is not set. + syn sync minlines=0 +endif + +" NOTE: If you're linking new highlight groups to perlString, please also put +" them into b:match_skip in ftplugin/perl.vim. + +" The default highlighting. +hi def link perlSharpBang PreProc +hi def link perlControl PreProc +hi def link perlInclude Include +hi def link perlSpecial Special +hi def link perlString String +hi def link perlCharacter Character +hi def link perlNumber Number +hi def link perlFloat Float +hi def link perlType Type +hi def link perlIdentifier Identifier +hi def link perlLabel Label +hi def link perlStatement Statement +hi def link perlConditional Conditional +hi def link perlRepeat Repeat +hi def link perlOperator Operator +hi def link perlFunction Keyword +hi def link perlSubName Function +hi def link perlSubPrototype Type +hi def link perlSubSignature Type +hi def link perlSubAttribute PreProc +hi def link perlComment Comment +hi def link perlTodo Todo +if get(g:, 'perl_string_as_statement', 0) + hi def link perlStringStartEnd perlStatement +else + hi def link perlStringStartEnd perlString +endif +hi def link perlVStringV perlStringStartEnd +hi def link perlList perlStatement +hi def link perlMisc perlStatement +hi def link perlVarPlain perlIdentifier +hi def link perlVarPlain2 perlIdentifier +hi def link perlArrow perlIdentifier +hi def link perlFiledescRead perlIdentifier +hi def link perlFiledescStatement perlIdentifier +hi def link perlVarSimpleMember perlIdentifier +hi def link perlVarSimpleMemberName perlString +hi def link perlVarNotInMatches perlIdentifier +hi def link perlVarSlash perlIdentifier +hi def link perlQ perlString +hi def link perlQQ perlString +hi def link perlQW perlString +hi def link perlQR perlString +hi def link perlMatchModifiers perlMatchStartEnd +hi def link perlSubstitutionModifiers perlMatchStartEnd +hi def link perlTranslationModifiers perlMatchStartEnd +hi def link perlQRModifiers perlStringStartEnd +hi def link perlHereDoc perlString +hi def link perlIndentedHereDoc perlString +hi def link perlStringUnexpanded perlString +hi def link perlSubstitutionSQ perlString +hi def link perlSubstitutionGQQ perlString +hi def link perlTranslationGQ perlString +hi def link perlMatch perlString +hi def link perlMatchStartEnd perlStatement +hi def link perlFormatName perlIdentifier +hi def link perlFormatField perlString +hi def link perlPackageDecl perlType +hi def link perlStorageClass perlType +hi def link perlPackageRef perlType +hi def link perlStatementPackage perlStatement +hi def link perlStatementStorage perlStatement +hi def link perlStatementControl perlStatement +hi def link perlStatementScalar perlStatement +hi def link perlStatementRegexp perlStatement +hi def link perlStatementNumeric perlStatement +hi def link perlStatementList perlStatement +hi def link perlStatementHash perlStatement +hi def link perlStatementIOfunc perlStatement +hi def link perlStatementFiledesc perlStatement +hi def link perlStatementVector perlStatement +hi def link perlStatementFiles perlStatement +hi def link perlStatementFlow perlStatement +hi def link perlStatementInclude perlStatement +hi def link perlStatementProc perlStatement +hi def link perlStatementSocket perlStatement +hi def link perlStatementIPC perlStatement +hi def link perlStatementNetwork perlStatement +hi def link perlStatementPword perlStatement +hi def link perlStatementTime perlStatement +hi def link perlStatementMisc perlStatement +hi def link perlStatementIndirObj perlStatement +hi def link perlFunctionName perlIdentifier +hi def link perlMethod perlIdentifier +hi def link perlPostDeref perlIdentifier +hi def link perlFunctionPRef perlType + +if !get(g:, 'perl_include_pod', 1) + hi def link perlPOD perlComment +endif +hi def link perlShellCommand perlString +hi def link perlSpecialAscii perlSpecial +hi def link perlSpecialDollar perlSpecial +hi def link perlSpecialString perlSpecial +hi def link perlSpecialStringU perlSpecial +hi def link perlSpecialMatch perlSpecial +hi def link perlEND perlComment +hi def link perlENDStart perlEND +hi def link perlDATA perlComment +hi def link perlDATAStart perlDATA + +" NOTE: Due to a bug in Vim (or more likely, a misunderstanding on my part), +" I had to remove the transparent property from the following regions +" in order to get them to highlight correctly. Feel free to remove +" these and reinstate the transparent property if you know how. +hi def link perlParensSQ perlString +hi def link perlBracketsSQ perlString +hi def link perlBracesSQ perlString +hi def link perlAnglesSQ perlString + +hi def link perlParensDQ perlString +hi def link perlBracketsDQ perlString +hi def link perlBracesDQ perlString +hi def link perlAnglesDQ perlString + +hi def link perlSpecialStringU2 perlString + +" Possible errors +hi def link perlNotEmptyLine Error +hi def link perlElseIfError Error + +" Syncing to speed up processing +" +if !get(g:, 'perl_no_sync_on_sub', 0) + syn sync match perlSync grouphere NONE "^\s*\" + syn sync match perlSync grouphere NONE "^}" +endif + +if !get(g:, 'perl_no_sync_on_global_var', 0) + syn sync match perlSync grouphere NONE "^$\I[[:alnum:]_:]+\s*=\s*{" + syn sync match perlSync grouphere NONE "^[@%]\I[[:alnum:]_:]+\s*=\s*(" +endif + +if get(g:, 'perl_sync_dist', 0) + execute "syn sync maxlines=" . perl_sync_dist +else + syn sync maxlines=100 +endif + +syn sync match perlSyncPOD grouphere perlPOD "^=pod" +syn sync match perlSyncPOD grouphere perlPOD "^=head" +syn sync match perlSyncPOD grouphere perlPOD "^=item" +syn sync match perlSyncPOD grouphere NONE "^=cut" + +let b:current_syntax = "perl" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" XXX Change to sts=4:sw=4 +" vim:ts=8:sts=2:sw=2:expandtab:ft=vim diff --git a/runtime/syntax/pf.vim b/runtime/syntax/pf.vim new file mode 100644 index 0000000..b928dc4 --- /dev/null +++ b/runtime/syntax/pf.vim @@ -0,0 +1,333 @@ +" pf syntax file +" Language: OpenBSD packet filter configuration (pf.conf) +" Original Author: Camiel Dobbelaar +" Maintainer: Lauri Tirkkonen +" Last Change: 2018 Jul 16 + +if exists("b:current_syntax") + finish +endif + +let b:current_syntax = "pf" +setlocal foldmethod=syntax +syn iskeyword @,48-57,_,-,+ +syn sync fromstart + +syn cluster pfNotLS contains=pfTodo,pfVarAssign +syn keyword pfCmd anchor antispoof block include match pass queue +syn keyword pfCmd queue set table +syn match pfCmd /^\s*load\sanchor\>/ +syn keyword pfTodo TODO XXX contained +syn keyword pfWildAddr any no-route urpf-failed self +syn match pfComment /#.*$/ contains=pfTodo +syn match pfCont /\\$/ +syn match pfErrClose /}/ +syn match pfIPv4 /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/ +syn match pfIPv6 /[a-fA-F0-9:]*::[a-fA-F0-9:.]*/ +syn match pfIPv6 /[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/ +syn match pfNetmask /\/\d\+/ +syn match pfNum /[a-zA-Z0-9_:.]\@/ +syn match pfVar /$[a-zA-Z][a-zA-Z0-9_]*/ +syn match pfVarAssign /^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1 +syn region pfFold1 start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold +syn region pfFold2 start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold +syn region pfFold3 start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold +syn region pfList start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS +syn region pfString start=/"/ skip=/\\"/ end=/"/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar +syn region pfString start=/'/ skip=/\\'/ end=/'/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar + +hi def link pfCmd Statement +hi def link pfComment Comment +hi def link pfCont Statement +hi def link pfErrClose Error +hi def link pfIPv4 Type +hi def link pfIPv6 Type +hi def link pfNetmask Constant +hi def link pfNum Constant +hi def link pfService Constant +hi def link pfString String +hi def link pfTable Identifier +hi def link pfTodo Todo +hi def link pfVar Identifier +hi def link pfVarAssign Identifier +hi def link pfWildAddr Type + +" from OpenBSD src/etc/services r1.95 +syn keyword pfService 802-11-iapp +syn keyword pfService Microsoft-SQL-Monitor +syn keyword pfService Microsoft-SQL-Server +syn keyword pfService NeXTStep +syn keyword pfService NextStep +syn keyword pfService afpovertcp +syn keyword pfService afs3-bos +syn keyword pfService afs3-callback +syn keyword pfService afs3-errors +syn keyword pfService afs3-fileserver +syn keyword pfService afs3-kaserver +syn keyword pfService afs3-prserver +syn keyword pfService afs3-rmtsys +syn keyword pfService afs3-update +syn keyword pfService afs3-vlserver +syn keyword pfService afs3-volser +syn keyword pfService amt-redir-tcp +syn keyword pfService amt-redir-tls +syn keyword pfService amt-soap-http +syn keyword pfService amt-soap-https +syn keyword pfService asf-rmcp +syn keyword pfService at-echo +syn keyword pfService at-nbp +syn keyword pfService at-rtmp +syn keyword pfService at-zis +syn keyword pfService auth +syn keyword pfService authentication +syn keyword pfService bfd-control +syn keyword pfService bfd-echo +syn keyword pfService bftp +syn keyword pfService bgp +syn keyword pfService bgpd +syn keyword pfService biff +syn keyword pfService bootpc +syn keyword pfService bootps +syn keyword pfService canna +syn keyword pfService cddb +syn keyword pfService cddbp +syn keyword pfService chargen +syn keyword pfService chat +syn keyword pfService cmd +syn keyword pfService cmip-agent +syn keyword pfService cmip-man +syn keyword pfService comsat +syn keyword pfService conference +syn keyword pfService conserver +syn keyword pfService courier +syn keyword pfService csnet-ns +syn keyword pfService cso-ns +syn keyword pfService cvspserver +syn keyword pfService daap +syn keyword pfService datametrics +syn keyword pfService daytime +syn keyword pfService dhcpd-sync +syn keyword pfService dhcpv6-client +syn keyword pfService dhcpv6-server +syn keyword pfService discard +syn keyword pfService domain +syn keyword pfService echo +syn keyword pfService efs +syn keyword pfService eklogin +syn keyword pfService ekshell +syn keyword pfService ekshell2 +syn keyword pfService epmap +syn keyword pfService eppc +syn keyword pfService exec +syn keyword pfService finger +syn keyword pfService ftp +syn keyword pfService ftp-data +syn keyword pfService git +syn keyword pfService gopher +syn keyword pfService gre-in-udp +syn keyword pfService gre-udp-dtls +syn keyword pfService hostname +syn keyword pfService hostnames +syn keyword pfService hprop +syn keyword pfService http +syn keyword pfService https +syn keyword pfService hunt +syn keyword pfService hylafax +syn keyword pfService iapp +syn keyword pfService icb +syn keyword pfService ident +syn keyword pfService imap +syn keyword pfService imap2 +syn keyword pfService imap3 +syn keyword pfService imaps +syn keyword pfService ingreslock +syn keyword pfService ipp +syn keyword pfService iprop +syn keyword pfService ipsec-msft +syn keyword pfService ipsec-nat-t +syn keyword pfService ipx +syn keyword pfService irc +syn keyword pfService isakmp +syn keyword pfService iscsi +syn keyword pfService isisd +syn keyword pfService iso-tsap +syn keyword pfService kauth +syn keyword pfService kdc +syn keyword pfService kerberos +syn keyword pfService kerberos-adm +syn keyword pfService kerberos-iv +syn keyword pfService kerberos-sec +syn keyword pfService kerberos_master +syn keyword pfService kf +syn keyword pfService kip +syn keyword pfService klogin +syn keyword pfService kpasswd +syn keyword pfService kpop +syn keyword pfService krb524 +syn keyword pfService krb_prop +syn keyword pfService krbupdate +syn keyword pfService krcmd +syn keyword pfService kreg +syn keyword pfService kshell +syn keyword pfService kx +syn keyword pfService l2tp +syn keyword pfService ldap +syn keyword pfService ldaps +syn keyword pfService ldp +syn keyword pfService link +syn keyword pfService login +syn keyword pfService mail +syn keyword pfService mdns +syn keyword pfService mdnsresponder +syn keyword pfService microsoft-ds +syn keyword pfService ms-sql-m +syn keyword pfService ms-sql-s +syn keyword pfService msa +syn keyword pfService msp +syn keyword pfService mtp +syn keyword pfService mysql +syn keyword pfService name +syn keyword pfService nameserver +syn keyword pfService netbios-dgm +syn keyword pfService netbios-ns +syn keyword pfService netbios-ssn +syn keyword pfService netnews +syn keyword pfService netplan +syn keyword pfService netrjs +syn keyword pfService netstat +syn keyword pfService netwall +syn keyword pfService newdate +syn keyword pfService nextstep +syn keyword pfService nfs +syn keyword pfService nfsd +syn keyword pfService nicname +syn keyword pfService nnsp +syn keyword pfService nntp +syn keyword pfService ntalk +syn keyword pfService ntp +syn keyword pfService null +syn keyword pfService openwebnet +syn keyword pfService ospf6d +syn keyword pfService ospfapi +syn keyword pfService ospfd +syn keyword pfService photuris +syn keyword pfService pop2 +syn keyword pfService pop3 +syn keyword pfService pop3pw +syn keyword pfService pop3s +syn keyword pfService poppassd +syn keyword pfService portmap +syn keyword pfService postgresql +syn keyword pfService postoffice +syn keyword pfService pptp +syn keyword pfService presence +syn keyword pfService printer +syn keyword pfService prospero +syn keyword pfService prospero-np +syn keyword pfService puppet +syn keyword pfService pwdgen +syn keyword pfService qotd +syn keyword pfService quote +syn keyword pfService radacct +syn keyword pfService radius +syn keyword pfService radius-acct +syn keyword pfService rdp +syn keyword pfService readnews +syn keyword pfService remotefs +syn keyword pfService resource +syn keyword pfService rfb +syn keyword pfService rfe +syn keyword pfService rfs +syn keyword pfService rfs_server +syn keyword pfService ripd +syn keyword pfService ripng +syn keyword pfService rje +syn keyword pfService rkinit +syn keyword pfService rlp +syn keyword pfService routed +syn keyword pfService router +syn keyword pfService rpc +syn keyword pfService rpcbind +syn keyword pfService rsync +syn keyword pfService rtelnet +syn keyword pfService rtsp +syn keyword pfService sa-msg-port +syn keyword pfService sane-port +syn keyword pfService sftp +syn keyword pfService shell +syn keyword pfService sieve +syn keyword pfService silc +syn keyword pfService sink +syn keyword pfService sip +syn keyword pfService smtp +syn keyword pfService smtps +syn keyword pfService smux +syn keyword pfService snmp +syn keyword pfService snmp-trap +syn keyword pfService snmptrap +syn keyword pfService snpp +syn keyword pfService socks +syn keyword pfService source +syn keyword pfService spamd +syn keyword pfService spamd-cfg +syn keyword pfService spamd-sync +syn keyword pfService spooler +syn keyword pfService spop3 +syn keyword pfService ssdp +syn keyword pfService ssh +syn keyword pfService submission +syn keyword pfService sunrpc +syn keyword pfService supdup +syn keyword pfService supfiledbg +syn keyword pfService supfilesrv +syn keyword pfService support +syn keyword pfService svn +syn keyword pfService svrloc +syn keyword pfService swat +syn keyword pfService syslog +syn keyword pfService syslog-tls +syn keyword pfService systat +syn keyword pfService tacacs +syn keyword pfService tacas+ +syn keyword pfService talk +syn keyword pfService tap +syn keyword pfService tcpmux +syn keyword pfService telnet +syn keyword pfService tempo +syn keyword pfService tftp +syn keyword pfService time +syn keyword pfService timed +syn keyword pfService timeserver +syn keyword pfService timserver +syn keyword pfService tsap +syn keyword pfService ttylink +syn keyword pfService ttytst +syn keyword pfService ub-dns-control +syn keyword pfService ulistserv +syn keyword pfService untp +syn keyword pfService usenet +syn keyword pfService users +syn keyword pfService uucp +syn keyword pfService uucp-path +syn keyword pfService uucpd +syn keyword pfService vnc +syn keyword pfService vxlan +syn keyword pfService wais +syn keyword pfService webster +syn keyword pfService who +syn keyword pfService whod +syn keyword pfService whois +syn keyword pfService www +syn keyword pfService x400 +syn keyword pfService x400-snd +syn keyword pfService xcept +syn keyword pfService xdmcp +syn keyword pfService xmpp-bosh +syn keyword pfService xmpp-client +syn keyword pfService xmpp-server +syn keyword pfService z3950 +syn keyword pfService zabbix-agent +syn keyword pfService zabbix-trapper +syn keyword pfService zebra +syn keyword pfService zebrasrv diff --git a/runtime/syntax/pfmain.vim b/runtime/syntax/pfmain.vim new file mode 100644 index 0000000..af58da7 --- /dev/null +++ b/runtime/syntax/pfmain.vim @@ -0,0 +1,1835 @@ +" Vim syntax file +" Language: Postfix main.cf configuration +" Maintainer: KELEMEN Peter +" Last Updates: Anton Shestakov, Hong Xu +" Last Change: 2015 Feb 10 +" Version: 0.40 +" URL: http://cern.ch/fuji/vim/syntax/pfmain.vim +" Comment: Based on Postfix 2.12/3.0 postconf.5.html. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,- + +syntax case match +syntax sync minlines=1 + +syntax keyword pfmainConf 2bounce_notice_recipient +syntax keyword pfmainConf access_map_defer_code +syntax keyword pfmainConf access_map_reject_code +syntax keyword pfmainConf address_verify_cache_cleanup_interval +syntax keyword pfmainConf address_verify_default_transport +syntax keyword pfmainConf address_verify_local_transport +syntax keyword pfmainConf address_verify_map +syntax keyword pfmainConf address_verify_negative_cache +syntax keyword pfmainConf address_verify_negative_expire_time +syntax keyword pfmainConf address_verify_negative_refresh_time +syntax keyword pfmainConf address_verify_poll_count +syntax keyword pfmainConf address_verify_poll_delay +syntax keyword pfmainConf address_verify_positive_expire_time +syntax keyword pfmainConf address_verify_positive_refresh_time +syntax keyword pfmainConf address_verify_relay_transport +syntax keyword pfmainConf address_verify_relayhost +syntax keyword pfmainConf address_verify_sender +syntax keyword pfmainConf address_verify_sender_dependent_default_transport_maps +syntax keyword pfmainConf address_verify_sender_dependent_relayhost_maps +syntax keyword pfmainConf address_verify_sender_ttl +syntax keyword pfmainConf address_verify_service_name +syntax keyword pfmainConf address_verify_transport_maps +syntax keyword pfmainConf address_verify_virtual_transport +syntax keyword pfmainConf alias_database +syntax keyword pfmainConf alias_maps +syntax keyword pfmainConf allow_mail_to_commands +syntax keyword pfmainConf allow_mail_to_files +syntax keyword pfmainConf allow_min_user +syntax keyword pfmainConf allow_percent_hack +syntax keyword pfmainConf allow_untrusted_routing +syntax keyword pfmainConf alternate_config_directories +syntax keyword pfmainConf always_add_missing_headers +syntax keyword pfmainConf always_bcc +syntax keyword pfmainConf anvil_rate_time_unit +syntax keyword pfmainConf anvil_status_update_time +syntax keyword pfmainConf append_at_myorigin +syntax keyword pfmainConf append_dot_mydomain +syntax keyword pfmainConf application_event_drain_time +syntax keyword pfmainConf authorized_flush_users +syntax keyword pfmainConf authorized_mailq_users +syntax keyword pfmainConf authorized_submit_users +syntax keyword pfmainConf authorized_verp_clients +syntax keyword pfmainConf backwards_bounce_logfile_compatibility +syntax keyword pfmainConf berkeley_db_create_buffer_size +syntax keyword pfmainConf berkeley_db_read_buffer_size +syntax keyword pfmainConf best_mx_transport +syntax keyword pfmainConf biff +syntax keyword pfmainConf body_checks +syntax keyword pfmainConf body_checks_size_limit +syntax keyword pfmainConf bounce_notice_recipient +syntax keyword pfmainConf bounce_queue_lifetime +syntax keyword pfmainConf bounce_service_name +syntax keyword pfmainConf bounce_size_limit +syntax keyword pfmainConf bounce_template_file +syntax keyword pfmainConf broken_sasl_auth_clients +syntax keyword pfmainConf canonical_classes +syntax keyword pfmainConf canonical_maps +syntax keyword pfmainConf cleanup_service_name +syntax keyword pfmainConf command_directory +syntax keyword pfmainConf command_execution_directory +syntax keyword pfmainConf command_expansion_filter +syntax keyword pfmainConf command_time_limit +syntax keyword pfmainConf compatibility_level +syntax keyword pfmainConf config_directory +syntax keyword pfmainConf confirm_delay_cleared +syntax keyword pfmainConf connection_cache_protocol_timeout +syntax keyword pfmainConf connection_cache_service_name +syntax keyword pfmainConf connection_cache_status_update_time +syntax keyword pfmainConf connection_cache_ttl_limit +syntax keyword pfmainConf content_filter +syntax keyword pfmainConf cyrus_sasl_config_path +syntax keyword pfmainConf daemon_directory +syntax keyword pfmainConf daemon_table_open_error_is_fatal +syntax keyword pfmainConf daemon_timeout +syntax keyword pfmainConf data_directory +syntax keyword pfmainConf debug_peer_level +syntax keyword pfmainConf debug_peer_list +syntax keyword pfmainConf debugger_command +syntax keyword pfmainConf default_database_type +syntax keyword pfmainConf default_delivery_slot_cost +syntax keyword pfmainConf default_delivery_slot_discount +syntax keyword pfmainConf default_delivery_slot_loan +syntax keyword pfmainConf default_delivery_status_filter +syntax keyword pfmainConf default_destination_concurrency_failed_cohort_limit +syntax keyword pfmainConf default_destination_concurrency_limit +syntax keyword pfmainConf default_destination_concurrency_negative_feedback +syntax keyword pfmainConf default_destination_concurrency_positive_feedback +syntax keyword pfmainConf default_destination_rate_delay +syntax keyword pfmainConf default_destination_recipient_limit +syntax keyword pfmainConf default_extra_recipient_limit +syntax keyword pfmainConf default_filter_nexthop +syntax keyword pfmainConf default_minimum_delivery_slots +syntax keyword pfmainConf default_privs +syntax keyword pfmainConf default_process_limit +syntax keyword pfmainConf default_rbl_reply +syntax keyword pfmainConf default_recipient_limit +syntax keyword pfmainConf default_recipient_refill_delay +syntax keyword pfmainConf default_recipient_refill_limit +syntax keyword pfmainConf default_transport +syntax keyword pfmainConf default_verp_delimiters +syntax keyword pfmainConf defer_code +syntax keyword pfmainConf defer_service_name +syntax keyword pfmainConf defer_transports +syntax keyword pfmainConf delay_logging_resolution_limit +syntax keyword pfmainConf delay_notice_recipient +syntax keyword pfmainConf delay_warning_time +syntax keyword pfmainConf deliver_lock_attempts +syntax keyword pfmainConf deliver_lock_delay +syntax keyword pfmainConf destination_concurrency_feedback_debug +syntax keyword pfmainConf detect_8bit_encoding_header +syntax keyword pfmainConf disable_dns_lookups +syntax keyword pfmainConf disable_mime_input_processing +syntax keyword pfmainConf disable_mime_output_conversion +syntax keyword pfmainConf disable_verp_bounces +syntax keyword pfmainConf disable_vrfy_command +syntax keyword pfmainConf dnsblog_reply_delay +syntax keyword pfmainConf dnsblog_service_name +syntax keyword pfmainConf dont_remove +syntax keyword pfmainConf double_bounce_sender +syntax keyword pfmainConf duplicate_filter_limit +syntax keyword pfmainConf empty_address_default_transport_maps_lookup_key +syntax keyword pfmainConf empty_address_recipient +syntax keyword pfmainConf empty_address_relayhost_maps_lookup_key +syntax keyword pfmainConf enable_errors_to +syntax keyword pfmainConf enable_long_queue_ids +syntax keyword pfmainConf enable_original_recipient +syntax keyword pfmainConf error_notice_recipient +syntax keyword pfmainConf error_service_name +syntax keyword pfmainConf execution_directory_expansion_filter +syntax keyword pfmainConf expand_owner_alias +syntax keyword pfmainConf export_environment +syntax keyword pfmainConf extract_recipient_limit +syntax keyword pfmainConf fallback_relay +syntax keyword pfmainConf fallback_transport +syntax keyword pfmainConf fallback_transport_maps +syntax keyword pfmainConf fast_flush_domains +syntax keyword pfmainConf fast_flush_purge_time +syntax keyword pfmainConf fast_flush_refresh_time +syntax keyword pfmainConf fault_injection_code +syntax keyword pfmainConf flush_service_name +syntax keyword pfmainConf fork_attempts +syntax keyword pfmainConf fork_delay +syntax keyword pfmainConf forward_expansion_filter +syntax keyword pfmainConf forward_path +syntax keyword pfmainConf frozen_delivered_to +syntax keyword pfmainConf hash_queue_depth +syntax keyword pfmainConf hash_queue_names +syntax keyword pfmainConf header_address_token_limit +syntax keyword pfmainConf header_checks +syntax keyword pfmainConf header_size_limit +syntax keyword pfmainConf helpful_warnings +syntax keyword pfmainConf home_mailbox +syntax keyword pfmainConf hopcount_limit +syntax keyword pfmainConf html_directory +syntax keyword pfmainConf ignore_mx_lookup_error +syntax keyword pfmainConf import_environment +syntax keyword pfmainConf in_flow_delay +syntax keyword pfmainConf inet_interfaces +syntax keyword pfmainConf inet_protocols +syntax keyword pfmainConf initial_destination_concurrency +syntax keyword pfmainConf internal_mail_filter_classes +syntax keyword pfmainConf invalid_hostname_reject_code +syntax keyword pfmainConf ipc_idle +syntax keyword pfmainConf ipc_timeout +syntax keyword pfmainConf ipc_ttl +syntax keyword pfmainConf line_length_limit +syntax keyword pfmainConf lmdb_map_size +syntax keyword pfmainConf lmtp_address_preference +syntax keyword pfmainConf lmtp_address_verify_target +syntax keyword pfmainConf lmtp_assume_final +syntax keyword pfmainConf lmtp_bind_address +syntax keyword pfmainConf lmtp_bind_address6 +syntax keyword pfmainConf lmtp_body_checks +syntax keyword pfmainConf lmtp_cache_connection +syntax keyword pfmainConf lmtp_cname_overrides_servername +syntax keyword pfmainConf lmtp_connect_timeout +syntax keyword pfmainConf lmtp_connection_cache_destinations +syntax keyword pfmainConf lmtp_connection_cache_on_demand +syntax keyword pfmainConf lmtp_connection_cache_time_limit +syntax keyword pfmainConf lmtp_connection_reuse_count_limit +syntax keyword pfmainConf lmtp_connection_reuse_time_limit +syntax keyword pfmainConf lmtp_data_done_timeout +syntax keyword pfmainConf lmtp_data_init_timeout +syntax keyword pfmainConf lmtp_data_xfer_timeout +syntax keyword pfmainConf lmtp_defer_if_no_mx_address_found +syntax keyword pfmainConf lmtp_delivery_status_filter +syntax keyword pfmainConf lmtp_destination_concurrency_limit +syntax keyword pfmainConf lmtp_destination_recipient_limit +syntax keyword pfmainConf lmtp_discard_lhlo_keyword_address_maps +syntax keyword pfmainConf lmtp_discard_lhlo_keywords +syntax keyword pfmainConf lmtp_dns_reply_filter +syntax keyword pfmainConf lmtp_dns_resolver_options +syntax keyword pfmainConf lmtp_dns_support_level +syntax keyword pfmainConf lmtp_enforce_tls +syntax keyword pfmainConf lmtp_generic_maps +syntax keyword pfmainConf lmtp_header_checks +syntax keyword pfmainConf lmtp_host_lookup +syntax keyword pfmainConf lmtp_lhlo_name +syntax keyword pfmainConf lmtp_lhlo_timeout +syntax keyword pfmainConf lmtp_line_length_limit +syntax keyword pfmainConf lmtp_mail_timeout +syntax keyword pfmainConf lmtp_mime_header_checks +syntax keyword pfmainConf lmtp_mx_address_limit +syntax keyword pfmainConf lmtp_mx_session_limit +syntax keyword pfmainConf lmtp_nested_header_checks +syntax keyword pfmainConf lmtp_per_record_deadline +syntax keyword pfmainConf lmtp_pix_workaround_delay_time +syntax keyword pfmainConf lmtp_pix_workaround_maps +syntax keyword pfmainConf lmtp_pix_workaround_threshold_time +syntax keyword pfmainConf lmtp_pix_workarounds +syntax keyword pfmainConf lmtp_quit_timeout +syntax keyword pfmainConf lmtp_quote_rfc821_envelope +syntax keyword pfmainConf lmtp_randomize_addresses +syntax keyword pfmainConf lmtp_rcpt_timeout +syntax keyword pfmainConf lmtp_reply_filter +syntax keyword pfmainConf lmtp_rset_timeout +syntax keyword pfmainConf lmtp_sasl_auth_cache_name +syntax keyword pfmainConf lmtp_sasl_auth_cache_time +syntax keyword pfmainConf lmtp_sasl_auth_enable +syntax keyword pfmainConf lmtp_sasl_auth_soft_bounce +syntax keyword pfmainConf lmtp_sasl_mechanism_filter +syntax keyword pfmainConf lmtp_sasl_password_maps +syntax keyword pfmainConf lmtp_sasl_path +syntax keyword pfmainConf lmtp_sasl_security_options +syntax keyword pfmainConf lmtp_sasl_tls_security_options +syntax keyword pfmainConf lmtp_sasl_tls_verified_security_options +syntax keyword pfmainConf lmtp_sasl_type +syntax keyword pfmainConf lmtp_send_dummy_mail_auth +syntax keyword pfmainConf lmtp_send_xforward_command +syntax keyword pfmainConf lmtp_sender_dependent_authentication +syntax keyword pfmainConf lmtp_skip_5xx_greeting +syntax keyword pfmainConf lmtp_skip_quit_response +syntax keyword pfmainConf lmtp_starttls_timeout +syntax keyword pfmainConf lmtp_tcp_port +syntax keyword pfmainConf lmtp_tls_CAfile +syntax keyword pfmainConf lmtp_tls_CApath +syntax keyword pfmainConf lmtp_tls_block_early_mail_reply +syntax keyword pfmainConf lmtp_tls_cert_file +syntax keyword pfmainConf lmtp_tls_ciphers +syntax keyword pfmainConf lmtp_tls_dcert_file +syntax keyword pfmainConf lmtp_tls_dkey_file +syntax keyword pfmainConf lmtp_tls_eccert_file +syntax keyword pfmainConf lmtp_tls_eckey_file +syntax keyword pfmainConf lmtp_tls_enforce_peername +syntax keyword pfmainConf lmtp_tls_exclude_ciphers +syntax keyword pfmainConf lmtp_tls_fingerprint_cert_match +syntax keyword pfmainConf lmtp_tls_fingerprint_digest +syntax keyword pfmainConf lmtp_tls_force_insecure_host_tlsa_lookup +syntax keyword pfmainConf lmtp_tls_key_file +syntax keyword pfmainConf lmtp_tls_loglevel +syntax keyword pfmainConf lmtp_tls_mandatory_ciphers +syntax keyword pfmainConf lmtp_tls_mandatory_exclude_ciphers +syntax keyword pfmainConf lmtp_tls_mandatory_protocols +syntax keyword pfmainConf lmtp_tls_note_starttls_offer +syntax keyword pfmainConf lmtp_tls_per_site +syntax keyword pfmainConf lmtp_tls_policy_maps +syntax keyword pfmainConf lmtp_tls_protocols +syntax keyword pfmainConf lmtp_tls_scert_verifydepth +syntax keyword pfmainConf lmtp_tls_secure_cert_match +syntax keyword pfmainConf lmtp_tls_security_level +syntax keyword pfmainConf lmtp_tls_session_cache_database +syntax keyword pfmainConf lmtp_tls_session_cache_timeout +syntax keyword pfmainConf lmtp_tls_trust_anchor_file +syntax keyword pfmainConf lmtp_tls_verify_cert_match +syntax keyword pfmainConf lmtp_use_tls +syntax keyword pfmainConf lmtp_xforward_timeout +syntax keyword pfmainConf local_command_shell +syntax keyword pfmainConf local_delivery_status_filter +syntax keyword pfmainConf local_destination_concurrency_limit +syntax keyword pfmainConf local_destination_recipient_limit +syntax keyword pfmainConf local_header_rewrite_clients +syntax keyword pfmainConf local_recipient_maps +syntax keyword pfmainConf local_transport +syntax keyword pfmainConf luser_relay +syntax keyword pfmainConf mail_name +syntax keyword pfmainConf mail_owner +syntax keyword pfmainConf mail_release_date +syntax keyword pfmainConf mail_spool_directory +syntax keyword pfmainConf mail_version +syntax keyword pfmainConf mailbox_command +syntax keyword pfmainConf mailbox_command_maps +syntax keyword pfmainConf mailbox_delivery_lock +syntax keyword pfmainConf mailbox_size_limit +syntax keyword pfmainConf mailbox_transport +syntax keyword pfmainConf mailbox_transport_maps +syntax keyword pfmainConf mailq_path +syntax keyword pfmainConf manpage_directory +syntax keyword pfmainConf maps_rbl_domains +syntax keyword pfmainConf maps_rbl_reject_code +syntax keyword pfmainConf masquerade_classes +syntax keyword pfmainConf masquerade_domains +syntax keyword pfmainConf masquerade_exceptions +syntax keyword pfmainConf master_service_disable +syntax keyword pfmainConf max_idle +syntax keyword pfmainConf max_use +syntax keyword pfmainConf maximal_backoff_time +syntax keyword pfmainConf maximal_queue_lifetime +syntax keyword pfmainConf message_drop_headers +syntax keyword pfmainConf message_reject_characters +syntax keyword pfmainConf message_size_limit +syntax keyword pfmainConf message_strip_characters +syntax keyword pfmainConf meta_directory +syntax keyword pfmainConf milter_command_timeout +syntax keyword pfmainConf milter_connect_macros +syntax keyword pfmainConf milter_connect_timeout +syntax keyword pfmainConf milter_content_timeout +syntax keyword pfmainConf milter_data_macros +syntax keyword pfmainConf milter_default_action +syntax keyword pfmainConf milter_end_of_data_macros +syntax keyword pfmainConf milter_end_of_header_macros +syntax keyword pfmainConf milter_header_checks +syntax keyword pfmainConf milter_helo_macros +syntax keyword pfmainConf milter_macro_daemon_name +syntax keyword pfmainConf milter_macro_v +syntax keyword pfmainConf milter_mail_macros +syntax keyword pfmainConf milter_protocol +syntax keyword pfmainConf milter_rcpt_macros +syntax keyword pfmainConf milter_unknown_command_macros +syntax keyword pfmainConf mime_boundary_length_limit +syntax keyword pfmainConf mime_header_checks +syntax keyword pfmainConf mime_nesting_limit +syntax keyword pfmainConf minimal_backoff_time +syntax keyword pfmainConf multi_instance_directories +syntax keyword pfmainConf multi_instance_enable +syntax keyword pfmainConf multi_instance_group +syntax keyword pfmainConf multi_instance_name +syntax keyword pfmainConf multi_instance_wrapper +syntax keyword pfmainConf multi_recipient_bounce_reject_code +syntax keyword pfmainConf mydestination +syntax keyword pfmainConf mydomain +syntax keyword pfmainConf myhostname +syntax keyword pfmainConf mynetworks +syntax keyword pfmainConf mynetworks_style +syntax keyword pfmainConf myorigin +syntax keyword pfmainConf nested_header_checks +syntax keyword pfmainConf newaliases_path +syntax keyword pfmainConf non_fqdn_reject_code +syntax keyword pfmainConf non_smtpd_milters +syntax keyword pfmainConf notify_classes +syntax keyword pfmainConf nullmx_reject_code +syntax keyword pfmainConf owner_request_special +syntax keyword pfmainConf parent_domain_matches_subdomains +syntax keyword pfmainConf permit_mx_backup_networks +syntax keyword pfmainConf pickup_service_name +syntax keyword pfmainConf pipe_delivery_status_filter +syntax keyword pfmainConf plaintext_reject_code +syntax keyword pfmainConf postmulti_control_commands +syntax keyword pfmainConf postmulti_start_commands +syntax keyword pfmainConf postmulti_stop_commands +syntax keyword pfmainConf postscreen_access_list +syntax keyword pfmainConf postscreen_bare_newline_action +syntax keyword pfmainConf postscreen_bare_newline_enable +syntax keyword pfmainConf postscreen_bare_newline_ttl +syntax keyword pfmainConf postscreen_blacklist_action +syntax keyword pfmainConf postscreen_cache_cleanup_interval +syntax keyword pfmainConf postscreen_cache_map +syntax keyword pfmainConf postscreen_cache_retention_time +syntax keyword pfmainConf postscreen_client_connection_count_limit +syntax keyword pfmainConf postscreen_command_count_limit +syntax keyword pfmainConf postscreen_command_filter +syntax keyword pfmainConf postscreen_command_time_limit +syntax keyword pfmainConf postscreen_disable_vrfy_command +syntax keyword pfmainConf postscreen_discard_ehlo_keyword_address_maps +syntax keyword pfmainConf postscreen_discard_ehlo_keywords +syntax keyword pfmainConf postscreen_dnsbl_action +syntax keyword pfmainConf postscreen_dnsbl_reply_map +syntax keyword pfmainConf postscreen_dnsbl_sites +syntax keyword pfmainConf postscreen_dnsbl_threshold +syntax keyword pfmainConf postscreen_dnsbl_timeout +syntax keyword pfmainConf postscreen_dnsbl_ttl +syntax keyword pfmainConf postscreen_dnsbl_whitelist_threshold +syntax keyword pfmainConf postscreen_enforce_tls +syntax keyword pfmainConf postscreen_expansion_filter +syntax keyword pfmainConf postscreen_forbidden_commands +syntax keyword pfmainConf postscreen_greet_action +syntax keyword pfmainConf postscreen_greet_banner +syntax keyword pfmainConf postscreen_greet_ttl +syntax keyword pfmainConf postscreen_greet_wait +syntax keyword pfmainConf postscreen_helo_required +syntax keyword pfmainConf postscreen_non_smtp_command_action +syntax keyword pfmainConf postscreen_non_smtp_command_enable +syntax keyword pfmainConf postscreen_non_smtp_command_ttl +syntax keyword pfmainConf postscreen_pipelining_action +syntax keyword pfmainConf postscreen_pipelining_enable +syntax keyword pfmainConf postscreen_pipelining_ttl +syntax keyword pfmainConf postscreen_post_queue_limit +syntax keyword pfmainConf postscreen_pre_queue_limit +syntax keyword pfmainConf postscreen_reject_footer +syntax keyword pfmainConf postscreen_tls_security_level +syntax keyword pfmainConf postscreen_upstream_proxy_protocol +syntax keyword pfmainConf postscreen_upstream_proxy_timeout +syntax keyword pfmainConf postscreen_use_tls +syntax keyword pfmainConf postscreen_watchdog_timeout +syntax keyword pfmainConf postscreen_whitelist_interfaces +syntax keyword pfmainConf prepend_delivered_header +syntax keyword pfmainConf process_id +syntax keyword pfmainConf process_id_directory +syntax keyword pfmainConf process_name +syntax keyword pfmainConf propagate_unmatched_extensions +syntax keyword pfmainConf proxy_interfaces +syntax keyword pfmainConf proxy_read_maps +syntax keyword pfmainConf proxy_write_maps +syntax keyword pfmainConf proxymap_service_name +syntax keyword pfmainConf proxywrite_service_name +syntax keyword pfmainConf qmgr_clog_warn_time +syntax keyword pfmainConf qmgr_daemon_timeout +syntax keyword pfmainConf qmgr_fudge_factor +syntax keyword pfmainConf qmgr_ipc_timeout +syntax keyword pfmainConf qmgr_message_active_limit +syntax keyword pfmainConf qmgr_message_recipient_limit +syntax keyword pfmainConf qmgr_message_recipient_minimum +syntax keyword pfmainConf qmqpd_authorized_clients +syntax keyword pfmainConf qmqpd_client_port_logging +syntax keyword pfmainConf qmqpd_error_delay +syntax keyword pfmainConf qmqpd_timeout +syntax keyword pfmainConf queue_directory +syntax keyword pfmainConf queue_file_attribute_count_limit +syntax keyword pfmainConf queue_minfree +syntax keyword pfmainConf queue_run_delay +syntax keyword pfmainConf queue_service_name +syntax keyword pfmainConf rbl_reply_maps +syntax keyword pfmainConf readme_directory +syntax keyword pfmainConf receive_override_options +syntax keyword pfmainConf recipient_bcc_maps +syntax keyword pfmainConf recipient_canonical_classes +syntax keyword pfmainConf recipient_canonical_maps +syntax keyword pfmainConf recipient_delimiter +syntax keyword pfmainConf reject_code +syntax keyword pfmainConf reject_tempfail_action +syntax keyword pfmainConf relay_clientcerts +syntax keyword pfmainConf relay_destination_concurrency_limit +syntax keyword pfmainConf relay_destination_recipient_limit +syntax keyword pfmainConf relay_domains +syntax keyword pfmainConf relay_domains_reject_code +syntax keyword pfmainConf relay_recipient_maps +syntax keyword pfmainConf relay_transport +syntax keyword pfmainConf relayhost +syntax keyword pfmainConf relocated_maps +syntax keyword pfmainConf remote_header_rewrite_domain +syntax keyword pfmainConf require_home_directory +syntax keyword pfmainConf reset_owner_alias +syntax keyword pfmainConf resolve_dequoted_address +syntax keyword pfmainConf resolve_null_domain +syntax keyword pfmainConf resolve_numeric_domain +syntax keyword pfmainConf rewrite_service_name +syntax keyword pfmainConf sample_directory +syntax keyword pfmainConf send_cyrus_sasl_authzid +syntax keyword pfmainConf sender_based_routing +syntax keyword pfmainConf sender_bcc_maps +syntax keyword pfmainConf sender_canonical_classes +syntax keyword pfmainConf sender_canonical_maps +syntax keyword pfmainConf sender_dependent_default_transport_maps +syntax keyword pfmainConf sender_dependent_relayhost_maps +syntax keyword pfmainConf sendmail_fix_line_endings +syntax keyword pfmainConf sendmail_path +syntax keyword pfmainConf service_throttle_time +syntax keyword pfmainConf setgid_group +syntax keyword pfmainConf shlib_directory +syntax keyword pfmainConf show_user_unknown_table_name +syntax keyword pfmainConf showq_service_name +syntax keyword pfmainConf smtp_address_preference +syntax keyword pfmainConf smtp_address_verify_target +syntax keyword pfmainConf smtp_always_send_ehlo +syntax keyword pfmainConf smtp_bind_address +syntax keyword pfmainConf smtp_bind_address6 +syntax keyword pfmainConf smtp_body_checks +syntax keyword pfmainConf smtp_cname_overrides_servername +syntax keyword pfmainConf smtp_connect_timeout +syntax keyword pfmainConf smtp_connection_cache_destinations +syntax keyword pfmainConf smtp_connection_cache_on_demand +syntax keyword pfmainConf smtp_connection_cache_time_limit +syntax keyword pfmainConf smtp_connection_reuse_count_limit +syntax keyword pfmainConf smtp_connection_reuse_time_limit +syntax keyword pfmainConf smtp_data_done_timeout +syntax keyword pfmainConf smtp_data_init_timeout +syntax keyword pfmainConf smtp_data_xfer_timeout +syntax keyword pfmainConf smtp_defer_if_no_mx_address_found +syntax keyword pfmainConf smtp_delivery_status_filter +syntax keyword pfmainConf smtp_destination_concurrency_limit +syntax keyword pfmainConf smtp_destination_recipient_limit +syntax keyword pfmainConf smtp_discard_ehlo_keyword_address_maps +syntax keyword pfmainConf smtp_discard_ehlo_keywords +syntax keyword pfmainConf smtp_dns_reply_filter +syntax keyword pfmainConf smtp_dns_resolver_options +syntax keyword pfmainConf smtp_dns_support_level +syntax keyword pfmainConf smtp_enforce_tls +syntax keyword pfmainConf smtp_fallback_relay +syntax keyword pfmainConf smtp_generic_maps +syntax keyword pfmainConf smtp_header_checks +syntax keyword pfmainConf smtp_helo_name +syntax keyword pfmainConf smtp_helo_timeout +syntax keyword pfmainConf smtp_host_lookup +syntax keyword pfmainConf smtp_line_length_limit +syntax keyword pfmainConf smtp_mail_timeout +syntax keyword pfmainConf smtp_mime_header_checks +syntax keyword pfmainConf smtp_mx_address_limit +syntax keyword pfmainConf smtp_mx_session_limit +syntax keyword pfmainConf smtp_nested_header_checks +syntax keyword pfmainConf smtp_never_send_ehlo +syntax keyword pfmainConf smtp_per_record_deadline +syntax keyword pfmainConf smtp_pix_workaround_delay_time +syntax keyword pfmainConf smtp_pix_workaround_maps +syntax keyword pfmainConf smtp_pix_workaround_threshold_time +syntax keyword pfmainConf smtp_pix_workarounds +syntax keyword pfmainConf smtp_quit_timeout +syntax keyword pfmainConf smtp_quote_rfc821_envelope +syntax keyword pfmainConf smtp_randomize_addresses +syntax keyword pfmainConf smtp_rcpt_timeout +syntax keyword pfmainConf smtp_reply_filter +syntax keyword pfmainConf smtp_rset_timeout +syntax keyword pfmainConf smtp_sasl_auth_cache_name +syntax keyword pfmainConf smtp_sasl_auth_cache_time +syntax keyword pfmainConf smtp_sasl_auth_enable +syntax keyword pfmainConf smtp_sasl_auth_soft_bounce +syntax keyword pfmainConf smtp_sasl_mechanism_filter +syntax keyword pfmainConf smtp_sasl_password_maps +syntax keyword pfmainConf smtp_sasl_path +syntax keyword pfmainConf smtp_sasl_security_options +syntax keyword pfmainConf smtp_sasl_tls_security_options +syntax keyword pfmainConf smtp_sasl_tls_verified_security_options +syntax keyword pfmainConf smtp_sasl_type +syntax keyword pfmainConf smtp_send_dummy_mail_auth +syntax keyword pfmainConf smtp_send_xforward_command +syntax keyword pfmainConf smtp_sender_dependent_authentication +syntax keyword pfmainConf smtp_skip_4xx_greeting +syntax keyword pfmainConf smtp_skip_5xx_greeting +syntax keyword pfmainConf smtp_skip_quit_response +syntax keyword pfmainConf smtp_starttls_timeout +syntax keyword pfmainConf smtp_tls_CAfile +syntax keyword pfmainConf smtp_tls_CApath +syntax keyword pfmainConf smtp_tls_block_early_mail_reply +syntax keyword pfmainConf smtp_tls_cert_file +syntax keyword pfmainConf smtp_tls_cipherlist +syntax keyword pfmainConf smtp_tls_ciphers +syntax keyword pfmainConf smtp_tls_dcert_file +syntax keyword pfmainConf smtp_tls_dkey_file +syntax keyword pfmainConf smtp_tls_eccert_file +syntax keyword pfmainConf smtp_tls_eckey_file +syntax keyword pfmainConf smtp_tls_enforce_peername +syntax keyword pfmainConf smtp_tls_exclude_ciphers +syntax keyword pfmainConf smtp_tls_fingerprint_cert_match +syntax keyword pfmainConf smtp_tls_fingerprint_digest +syntax keyword pfmainConf smtp_tls_force_insecure_host_tlsa_lookup +syntax keyword pfmainConf smtp_tls_key_file +syntax keyword pfmainConf smtp_tls_loglevel +syntax keyword pfmainConf smtp_tls_mandatory_ciphers +syntax keyword pfmainConf smtp_tls_mandatory_exclude_ciphers +syntax keyword pfmainConf smtp_tls_mandatory_protocols +syntax keyword pfmainConf smtp_tls_note_starttls_offer +syntax keyword pfmainConf smtp_tls_per_site +syntax keyword pfmainConf smtp_tls_policy_maps +syntax keyword pfmainConf smtp_tls_protocols +syntax keyword pfmainConf smtp_tls_scert_verifydepth +syntax keyword pfmainConf smtp_tls_secure_cert_match +syntax keyword pfmainConf smtp_tls_security_level +syntax keyword pfmainConf smtp_tls_session_cache_database +syntax keyword pfmainConf smtp_tls_session_cache_timeout +syntax keyword pfmainConf smtp_tls_trust_anchor_file +syntax keyword pfmainConf smtp_tls_verify_cert_match +syntax keyword pfmainConf smtp_tls_wrappermode +syntax keyword pfmainConf smtp_use_tls +syntax keyword pfmainConf smtp_xforward_timeout +syntax keyword pfmainConf smtpd_authorized_verp_clients +syntax keyword pfmainConf smtpd_authorized_xclient_hosts +syntax keyword pfmainConf smtpd_authorized_xforward_hosts +syntax keyword pfmainConf smtpd_banner +syntax keyword pfmainConf smtpd_client_connection_count_limit +syntax keyword pfmainConf smtpd_client_connection_rate_limit +syntax keyword pfmainConf smtpd_client_event_limit_exceptions +syntax keyword pfmainConf smtpd_client_message_rate_limit +syntax keyword pfmainConf smtpd_client_new_tls_session_rate_limit +syntax keyword pfmainConf smtpd_client_port_logging +syntax keyword pfmainConf smtpd_client_recipient_rate_limit +syntax keyword pfmainConf smtpd_client_restrictions +syntax keyword pfmainConf smtpd_command_filter +syntax keyword pfmainConf smtpd_data_restrictions +syntax keyword pfmainConf smtpd_delay_open_until_valid_rcpt +syntax keyword pfmainConf smtpd_delay_reject +syntax keyword pfmainConf smtpd_discard_ehlo_keyword_address_maps +syntax keyword pfmainConf smtpd_discard_ehlo_keywords +syntax keyword pfmainConf smtpd_dns_reply_filter +syntax keyword pfmainConf smtpd_end_of_data_restrictions +syntax keyword pfmainConf smtpd_enforce_tls +syntax keyword pfmainConf smtpd_error_sleep_time +syntax keyword pfmainConf smtpd_etrn_restrictions +syntax keyword pfmainConf smtpd_expansion_filter +syntax keyword pfmainConf smtpd_forbidden_commands +syntax keyword pfmainConf smtpd_hard_error_limit +syntax keyword pfmainConf smtpd_helo_required +syntax keyword pfmainConf smtpd_helo_restrictions +syntax keyword pfmainConf smtpd_history_flush_threshold +syntax keyword pfmainConf smtpd_junk_command_limit +syntax keyword pfmainConf smtpd_log_access_permit_actions +syntax keyword pfmainConf smtpd_milters +syntax keyword pfmainConf smtpd_noop_commands +syntax keyword pfmainConf smtpd_null_access_lookup_key +syntax keyword pfmainConf smtpd_peername_lookup +syntax keyword pfmainConf smtpd_per_record_deadline +syntax keyword pfmainConf smtpd_policy_service_default_action +syntax keyword pfmainConf smtpd_policy_service_max_idle +syntax keyword pfmainConf smtpd_policy_service_max_ttl +syntax keyword pfmainConf smtpd_policy_service_request_limit +syntax keyword pfmainConf smtpd_policy_service_retry_delay +syntax keyword pfmainConf smtpd_policy_service_timeout +syntax keyword pfmainConf smtpd_policy_service_try_limit +syntax keyword pfmainConf smtpd_proxy_ehlo +syntax keyword pfmainConf smtpd_proxy_filter +syntax keyword pfmainConf smtpd_proxy_options +syntax keyword pfmainConf smtpd_proxy_timeout +syntax keyword pfmainConf smtpd_recipient_limit +syntax keyword pfmainConf smtpd_recipient_overshoot_limit +syntax keyword pfmainConf smtpd_recipient_restrictions +syntax keyword pfmainConf smtpd_reject_footer +syntax keyword pfmainConf smtpd_reject_unlisted_recipient +syntax keyword pfmainConf smtpd_reject_unlisted_sender +syntax keyword pfmainConf smtpd_relay_restrictions +syntax keyword pfmainConf smtpd_restriction_classes +syntax keyword pfmainConf smtpd_sasl_application_name +syntax keyword pfmainConf smtpd_sasl_auth_enable +syntax keyword pfmainConf smtpd_sasl_authenticated_header +syntax keyword pfmainConf smtpd_sasl_exceptions_networks +syntax keyword pfmainConf smtpd_sasl_local_domain +syntax keyword pfmainConf smtpd_sasl_path +syntax keyword pfmainConf smtpd_sasl_security_options +syntax keyword pfmainConf smtpd_sasl_service +syntax keyword pfmainConf smtpd_sasl_tls_security_options +syntax keyword pfmainConf smtpd_sasl_type +syntax keyword pfmainConf smtpd_sender_login_maps +syntax keyword pfmainConf smtpd_sender_restrictions +syntax keyword pfmainConf smtpd_service_name +syntax keyword pfmainConf smtpd_soft_error_limit +syntax keyword pfmainConf smtpd_starttls_timeout +syntax keyword pfmainConf smtpd_timeout +syntax keyword pfmainConf smtpd_tls_CAfile +syntax keyword pfmainConf smtpd_tls_CApath +syntax keyword pfmainConf smtpd_tls_always_issue_session_ids +syntax keyword pfmainConf smtpd_tls_ask_ccert +syntax keyword pfmainConf smtpd_tls_auth_only +syntax keyword pfmainConf smtpd_tls_ccert_verifydepth +syntax keyword pfmainConf smtpd_tls_cert_file +syntax keyword pfmainConf smtpd_tls_cipherlist +syntax keyword pfmainConf smtpd_tls_ciphers +syntax keyword pfmainConf smtpd_tls_dcert_file +syntax keyword pfmainConf smtpd_tls_dh1024_param_file +syntax keyword pfmainConf smtpd_tls_dh512_param_file +syntax keyword pfmainConf smtpd_tls_dkey_file +syntax keyword pfmainConf smtpd_tls_eccert_file +syntax keyword pfmainConf smtpd_tls_eckey_file +syntax keyword pfmainConf smtpd_tls_eecdh_grade +syntax keyword pfmainConf smtpd_tls_exclude_ciphers +syntax keyword pfmainConf smtpd_tls_fingerprint_digest +syntax keyword pfmainConf smtpd_tls_key_file +syntax keyword pfmainConf smtpd_tls_loglevel +syntax keyword pfmainConf smtpd_tls_mandatory_ciphers +syntax keyword pfmainConf smtpd_tls_mandatory_exclude_ciphers +syntax keyword pfmainConf smtpd_tls_mandatory_protocols +syntax keyword pfmainConf smtpd_tls_protocols +syntax keyword pfmainConf smtpd_tls_received_header +syntax keyword pfmainConf smtpd_tls_req_ccert +syntax keyword pfmainConf smtpd_tls_security_level +syntax keyword pfmainConf smtpd_tls_session_cache_database +syntax keyword pfmainConf smtpd_tls_session_cache_timeout +syntax keyword pfmainConf smtpd_tls_wrappermode +syntax keyword pfmainConf smtpd_upstream_proxy_protocol +syntax keyword pfmainConf smtpd_upstream_proxy_timeout +syntax keyword pfmainConf smtpd_use_tls +syntax keyword pfmainConf smtputf8_autodetect_classes +syntax keyword pfmainConf smtputf8_enable +syntax keyword pfmainConf soft_bounce +syntax keyword pfmainConf stale_lock_time +syntax keyword pfmainConf stress +syntax keyword pfmainConf strict_7bit_headers +syntax keyword pfmainConf strict_8bitmime +syntax keyword pfmainConf strict_8bitmime_body +syntax keyword pfmainConf strict_mailbox_ownership +syntax keyword pfmainConf strict_mime_encoding_domain +syntax keyword pfmainConf strict_rfc821_envelopes +syntax keyword pfmainConf strict_smtputf8 +syntax keyword pfmainConf sun_mailtool_compatibility +syntax keyword pfmainConf swap_bangpath +syntax keyword pfmainConf syslog_facility +syntax keyword pfmainConf syslog_name +syntax keyword pfmainConf tcp_windowsize +syntax keyword pfmainConf tls_append_default_CA +syntax keyword pfmainConf tls_daemon_random_bytes +syntax keyword pfmainConf tls_dane_digest_agility +syntax keyword pfmainConf tls_dane_digests +syntax keyword pfmainConf tls_dane_trust_anchor_digest_enable +syntax keyword pfmainConf tls_disable_workarounds +syntax keyword pfmainConf tls_eecdh_strong_curve +syntax keyword pfmainConf tls_eecdh_ultra_curve +syntax keyword pfmainConf tls_export_cipherlist +syntax keyword pfmainConf tls_high_cipherlist +syntax keyword pfmainConf tls_legacy_public_key_fingerprints +syntax keyword pfmainConf tls_low_cipherlist +syntax keyword pfmainConf tls_medium_cipherlist +syntax keyword pfmainConf tls_null_cipherlist +syntax keyword pfmainConf tls_preempt_cipherlist +syntax keyword pfmainConf tls_random_bytes +syntax keyword pfmainConf tls_random_exchange_name +syntax keyword pfmainConf tls_random_prng_update_period +syntax keyword pfmainConf tls_random_reseed_period +syntax keyword pfmainConf tls_random_source +syntax keyword pfmainConf tls_session_ticket_cipher +syntax keyword pfmainConf tls_ssl_options +syntax keyword pfmainConf tls_wildcard_matches_multiple_labels +syntax keyword pfmainConf tlsmgr_service_name +syntax keyword pfmainConf tlsproxy_enforce_tls +syntax keyword pfmainConf tlsproxy_service_name +syntax keyword pfmainConf tlsproxy_tls_CAfile +syntax keyword pfmainConf tlsproxy_tls_CApath +syntax keyword pfmainConf tlsproxy_tls_always_issue_session_ids +syntax keyword pfmainConf tlsproxy_tls_ask_ccert +syntax keyword pfmainConf tlsproxy_tls_ccert_verifydepth +syntax keyword pfmainConf tlsproxy_tls_cert_file +syntax keyword pfmainConf tlsproxy_tls_ciphers +syntax keyword pfmainConf tlsproxy_tls_dcert_file +syntax keyword pfmainConf tlsproxy_tls_dh1024_param_file +syntax keyword pfmainConf tlsproxy_tls_dh512_param_file +syntax keyword pfmainConf tlsproxy_tls_dkey_file +syntax keyword pfmainConf tlsproxy_tls_eccert_file +syntax keyword pfmainConf tlsproxy_tls_eckey_file +syntax keyword pfmainConf tlsproxy_tls_eecdh_grade +syntax keyword pfmainConf tlsproxy_tls_exclude_ciphers +syntax keyword pfmainConf tlsproxy_tls_fingerprint_digest +syntax keyword pfmainConf tlsproxy_tls_key_file +syntax keyword pfmainConf tlsproxy_tls_loglevel +syntax keyword pfmainConf tlsproxy_tls_mandatory_ciphers +syntax keyword pfmainConf tlsproxy_tls_mandatory_exclude_ciphers +syntax keyword pfmainConf tlsproxy_tls_mandatory_protocols +syntax keyword pfmainConf tlsproxy_tls_protocols +syntax keyword pfmainConf tlsproxy_tls_req_ccert +syntax keyword pfmainConf tlsproxy_tls_security_level +syntax keyword pfmainConf tlsproxy_tls_session_cache_timeout +syntax keyword pfmainConf tlsproxy_use_tls +syntax keyword pfmainConf tlsproxy_watchdog_timeout +syntax keyword pfmainConf trace_service_name +syntax keyword pfmainConf transport_delivery_slot_cost +syntax keyword pfmainConf transport_delivery_slot_discount +syntax keyword pfmainConf transport_delivery_slot_loan +syntax keyword pfmainConf transport_destination_concurrency_failed_cohort_limit +syntax keyword pfmainConf transport_destination_concurrency_limit +syntax keyword pfmainConf transport_destination_concurrency_negative_feedback +syntax keyword pfmainConf transport_destination_concurrency_positive_feedback +syntax keyword pfmainConf transport_destination_rate_delay +syntax keyword pfmainConf transport_destination_recipient_limit +syntax keyword pfmainConf transport_extra_recipient_limit +syntax keyword pfmainConf transport_initial_destination_concurrency +syntax keyword pfmainConf transport_maps +syntax keyword pfmainConf transport_minimum_delivery_slots +syntax keyword pfmainConf transport_recipient_limit +syntax keyword pfmainConf transport_recipient_refill_delay +syntax keyword pfmainConf transport_recipient_refill_limit +syntax keyword pfmainConf transport_retry_time +syntax keyword pfmainConf transport_time_limit +syntax keyword pfmainConf trigger_timeout +syntax keyword pfmainConf undisclosed_recipients_header +syntax keyword pfmainConf unknown_address_reject_code +syntax keyword pfmainConf unknown_address_tempfail_action +syntax keyword pfmainConf unknown_client_reject_code +syntax keyword pfmainConf unknown_helo_hostname_tempfail_action +syntax keyword pfmainConf unknown_hostname_reject_code +syntax keyword pfmainConf unknown_local_recipient_reject_code +syntax keyword pfmainConf unknown_relay_recipient_reject_code +syntax keyword pfmainConf unknown_virtual_alias_reject_code +syntax keyword pfmainConf unknown_virtual_mailbox_reject_code +syntax keyword pfmainConf unverified_recipient_defer_code +syntax keyword pfmainConf unverified_recipient_reject_code +syntax keyword pfmainConf unverified_recipient_reject_reason +syntax keyword pfmainConf unverified_recipient_tempfail_action +syntax keyword pfmainConf unverified_sender_defer_code +syntax keyword pfmainConf unverified_sender_reject_code +syntax keyword pfmainConf unverified_sender_reject_reason +syntax keyword pfmainConf unverified_sender_tempfail_action +syntax keyword pfmainConf verp_delimiter_filter +syntax keyword pfmainConf virtual_alias_address_length_limit +syntax keyword pfmainConf virtual_alias_domains +syntax keyword pfmainConf virtual_alias_expansion_limit +syntax keyword pfmainConf virtual_alias_maps +syntax keyword pfmainConf virtual_alias_recursion_limit +syntax keyword pfmainConf virtual_delivery_status_filter +syntax keyword pfmainConf virtual_destination_concurrency_limit +syntax keyword pfmainConf virtual_destination_recipient_limit +syntax keyword pfmainConf virtual_gid_maps +syntax keyword pfmainConf virtual_mailbox_base +syntax keyword pfmainConf virtual_mailbox_domains +syntax keyword pfmainConf virtual_mailbox_limit +syntax keyword pfmainConf virtual_mailbox_lock +syntax keyword pfmainConf virtual_mailbox_maps +syntax keyword pfmainConf virtual_maps +syntax keyword pfmainConf virtual_minimum_uid +syntax keyword pfmainConf virtual_transport +syntax keyword pfmainConf virtual_uid_maps +syntax match pfmainRef "$\<2bounce_notice_recipient\>" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" +syntax match pfmainRef "$\" + +syntax keyword pfmainWord accept +syntax keyword pfmainWord all +syntax keyword pfmainWord always +syntax keyword pfmainWord check_address_map +syntax keyword pfmainWord check_ccert_access +syntax keyword pfmainWord check_client_a_access +syntax keyword pfmainWord check_client_access +syntax keyword pfmainWord check_client_mx_access +syntax keyword pfmainWord check_client_ns_access +syntax keyword pfmainWord check_etrn_access +syntax keyword pfmainWord check_helo_a_access +syntax keyword pfmainWord check_helo_access +syntax keyword pfmainWord check_helo_mx_access +syntax keyword pfmainWord check_helo_ns_access +syntax keyword pfmainWord check_policy_service +syntax keyword pfmainWord check_recipient_a_access +syntax keyword pfmainWord check_recipient_access +syntax keyword pfmainWord check_recipient_maps +syntax keyword pfmainWord check_recipient_mx_access +syntax keyword pfmainWord check_recipient_ns_access +syntax keyword pfmainWord check_relay_domains +syntax keyword pfmainWord check_reverse_client_hostname_a_access +syntax keyword pfmainWord check_reverse_client_hostname_access +syntax keyword pfmainWord check_reverse_client_hostname_mx_access +syntax keyword pfmainWord check_reverse_client_hostname_ns_access +syntax keyword pfmainWord check_sasl_access +syntax keyword pfmainWord check_sender_a_access +syntax keyword pfmainWord check_sender_access +syntax keyword pfmainWord check_sender_mx_access +syntax keyword pfmainWord check_sender_ns_access +syntax keyword pfmainWord class +syntax keyword pfmainWord client_address +syntax keyword pfmainWord client_port +syntax keyword pfmainWord dane +syntax keyword pfmainWord dane-only +syntax keyword pfmainWord defer +syntax keyword pfmainWord defer_if_permit +syntax keyword pfmainWord defer_if_reject +syntax keyword pfmainWord defer_unauth_destination +syntax keyword pfmainWord disabled +syntax keyword pfmainWord dns +syntax keyword pfmainWord dnssec +syntax keyword pfmainWord drop +syntax keyword pfmainWord dunno +syntax keyword pfmainWord enabled +syntax keyword pfmainWord encrypt +syntax keyword pfmainWord enforce +syntax keyword pfmainWord envelope_recipient +syntax keyword pfmainWord envelope_sender +syntax keyword pfmainWord export +syntax keyword pfmainWord fingerprint +syntax keyword pfmainWord header_recipient +syntax keyword pfmainWord header_sender +syntax keyword pfmainWord high +syntax keyword pfmainWord host +syntax keyword pfmainWord ignore +syntax keyword pfmainWord ipv4 +syntax keyword pfmainWord ipv6 +syntax keyword pfmainWord localtime +syntax keyword pfmainWord low +syntax keyword pfmainWord may +syntax keyword pfmainWord maybe +syntax keyword pfmainWord medium +syntax keyword pfmainWord native +syntax keyword pfmainWord never +syntax keyword pfmainWord no_address_mappings +syntax keyword pfmainWord no_header_body_checks +syntax keyword pfmainWord no_header_reply +syntax keyword pfmainWord no_milters +syntax keyword pfmainWord no_unknown_recipient_checks +syntax keyword pfmainWord none +syntax keyword pfmainWord null +syntax keyword pfmainWord off +syntax keyword pfmainWord on +syntax keyword pfmainWord permit +syntax keyword pfmainWord permit_auth_destination +syntax keyword pfmainWord permit_dnswl_client +syntax keyword pfmainWord permit_inet_interfaces +syntax keyword pfmainWord permit_mx_backup +syntax keyword pfmainWord permit_mynetworks +syntax keyword pfmainWord permit_naked_ip_address +syntax keyword pfmainWord permit_rhswl_client +syntax keyword pfmainWord permit_sasl_authenticated +syntax keyword pfmainWord permit_tls_all_clientcerts +syntax keyword pfmainWord permit_tls_clientcerts +syntax keyword pfmainWord quarantine +syntax keyword pfmainWord reject +syntax keyword pfmainWord reject_authenticated_sender_login_mismatch +syntax keyword pfmainWord reject_invalid_helo_hostname +syntax keyword pfmainWord reject_invalid_hostname +syntax keyword pfmainWord reject_known_sender_login_mismatch +syntax keyword pfmainWord reject_maps_rbl +syntax keyword pfmainWord reject_multi_recipient_bounce +syntax keyword pfmainWord reject_non_fqdn_helo_hostname +syntax keyword pfmainWord reject_non_fqdn_hostname +syntax keyword pfmainWord reject_non_fqdn_recipient +syntax keyword pfmainWord reject_non_fqdn_sender +syntax keyword pfmainWord reject_plaintext_session +syntax keyword pfmainWord reject_rbl +syntax keyword pfmainWord reject_rbl_client +syntax keyword pfmainWord reject_rhsbl_client +syntax keyword pfmainWord reject_rhsbl_helo +syntax keyword pfmainWord reject_rhsbl_recipient +syntax keyword pfmainWord reject_rhsbl_reverse_client +syntax keyword pfmainWord reject_rhsbl_sender +syntax keyword pfmainWord reject_sender_login_mismatch +syntax keyword pfmainWord reject_unauth_destination +syntax keyword pfmainWord reject_unauth_pipelining +syntax keyword pfmainWord reject_unauthenticated_sender_login_mismatch +syntax keyword pfmainWord reject_unknown_address +syntax keyword pfmainWord reject_unknown_client +syntax keyword pfmainWord reject_unknown_client_hostname +syntax keyword pfmainWord reject_unknown_forward_client_hostname +syntax keyword pfmainWord reject_unknown_helo_hostname +syntax keyword pfmainWord reject_unknown_hostname +syntax keyword pfmainWord reject_unknown_recipient_domain +syntax keyword pfmainWord reject_unknown_reverse_client_hostname +syntax keyword pfmainWord reject_unknown_sender_domain +syntax keyword pfmainWord reject_unlisted_recipient +syntax keyword pfmainWord reject_unlisted_sender +syntax keyword pfmainWord reject_unverified_recipient +syntax keyword pfmainWord reject_unverified_sender +syntax keyword pfmainWord secure +syntax keyword pfmainWord server_name +syntax keyword pfmainWord sleep +syntax keyword pfmainWord smtpd_access_maps +syntax keyword pfmainWord speed_adjust +syntax keyword pfmainWord strong +syntax keyword pfmainWord subnet +syntax keyword pfmainWord tempfail +syntax keyword pfmainWord ultra +syntax keyword pfmainWord warn_if_reject +syntax keyword pfmainWord CRYPTOPRO_TLSEXT_BUG +syntax keyword pfmainWord DONT_INSERT_EMPTY_FRAGMENTS +syntax keyword pfmainWord LEGACY_SERVER_CONNECT +syntax keyword pfmainWord MICROSOFT_BIG_SSLV3_BUFFER +syntax keyword pfmainWord MICROSOFT_SESS_ID_BUG +syntax keyword pfmainWord MSIE_SSLV2_RSA_PADDING +syntax keyword pfmainWord NETSCAPE_CHALLENGE_BUG +syntax keyword pfmainWord NETSCAPE_REUSE_CIPHER_CHANGE_BUG +syntax keyword pfmainWord SSLEAY_080_CLIENT_DH_BUG +syntax keyword pfmainWord SSLREF2_REUSE_CERT_TYPE_BUG +syntax keyword pfmainWord TLS_BLOCK_PADDING_BUG +syntax keyword pfmainWord TLS_D5_BUG +syntax keyword pfmainWord TLS_ROLLBACK_BUG + +syntax keyword pfmainDict btree cidr environ hash nis pcre proxy regexp sdbm static tcp unix +syntax keyword pfmainQueueDir incoming active deferred corrupt hold +syntax keyword pfmainTransport smtp lmtp unix local relay uucp virtual +syntax keyword pfmainLock fcntl flock dotlock +syntax keyword pfmainAnswer yes no + +syntax match pfmainComment "#.*$" +syntax match pfmainNumber "\<\d\+\>" +syntax match pfmainTime "\<\d\+[hmsd]\>" +syntax match pfmainIP "\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>" +syntax match pfmainVariable "\$\w\+" contains=pfmainRef + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\<2bounce\>" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" +syntax match pfmainSpecial "\" + + +hi def link pfmainConf Statement +hi def link pfmainRef PreProc +hi def link pfmainWord identifier + +hi def link pfmainDict Type +hi def link pfmainQueueDir Constant +hi def link pfmainTransport Constant +hi def link pfmainLock Constant +hi def link pfmainAnswer Constant + +hi def link pfmainComment Comment +hi def link pfmainNumber Number +hi def link pfmainTime Number +hi def link pfmainIP Number +hi def link pfmainVariable Error +hi def link pfmainSpecial Special + + +let b:current_syntax = "pfmain" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim new file mode 100644 index 0000000..80662d6 --- /dev/null +++ b/runtime/syntax/php.vim @@ -0,0 +1,978 @@ +" Vim syntax file +" Language: php PHP 3/4/5/7/8 +" Maintainer: Tyson Andre +" Last Change: Sep 18, 2021 +" URL: https://github.com/TysonAndre/php-vim-syntax +" Former Maintainers: +" Jason Woofenden +" Peter Hodge +" Debian VIM Maintainers +" +" Note: If you are using a colour terminal with dark background, you will +" probably find the 'elflord' colorscheme is much better for PHP's syntax +" than the default colourscheme, because elflord's colours will better +" highlight the break-points (Statements) in your code. +" +" Note: This embeds a modified copy of the html.vim with (mostly) different symbols, +" in order to implement php_htmlInStrings=2 can work as expected and correctly parse +" ` +" Previous Maintainer Claudio Fleiner +" Repository https://notabug.org/jorgesumle/vim-html-syntax +" Last Change 2021 Mar 02 +" Included patch #7900 to fix comments +" Included patch #7916 to fix a few more things +" +" Options: +" Set to anything to enable: +" php_sql_query SQL syntax highlighting inside strings +" php_htmlInStrings HTML syntax highlighting inside strings +" +" By setting this to 2, this will use a local copy of +" HTML syntax highlighting instead of the official +" HTML syntax highlighting, and properly highlight +" ` as php +" Set to a specific value: +" php_folding = 1 fold classes and functions +" php_folding = 2 fold all { } regions +" php_sync_method = x where x is an integer: +" -1 sync by search ( default ) +" >0 sync at least x lines backwards +" 0 sync from start +" Set to 0 to _disable_: (Added by Peter Hodge On June 9, 2006) +" php_special_functions = 0 highlight functions with abnormal behaviour +" php_alt_comparisons = 0 comparison operators in an alternate colour +" php_alt_assignByReference = 0 '= &' in an alternate colour +" +" +" Note: +" Setting php_folding=1 will match a closing } by comparing the indent +" before the class or function keyword with the indent of a matching }. +" Setting php_folding=2 will match all of pairs of {,} ( see known +" bugs ii ) + +" Known Bugs: +" - setting php_parent_error_close on and php_parent_error_open off +" has these two leaks: +" i) A closing ) or ] inside a string match to the last open ( or [ +" before the string, when the the closing ) or ] is on the same line +" where the string started. In this case a following ) or ] after +" the string would be highlighted as an error, what is incorrect. +" ii) Same problem if you are setting php_folding = 2 with a closing +" } inside an string on the first line of this string. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'php' +endif + +" Start of copy of html for embedding in strings with {{{ +" This is a clone of https://notabug.org/jorgesumle/vim-html-syntax +" from 2021 Mar 02 with changed symbols and modifications to rules. See the Note in the file header. +" +" The default behavior of php_htmlInStrings causes a bug +" when you're working with code that contains the string literal `'&]" + + " tags + syn region phpInnerHtmlString contained start=+"+ end=+"+ contains=phpInnerHtmlSpecialChar,javaScriptExpression,@phpInnerHtmlPreproc + syn region phpInnerHtmlString contained start=+'+ end=+'+ contains=phpInnerHtmlSpecialChar,javaScriptExpression,@phpInnerHtmlPreproc + syn match phpInnerHtmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@phpInnerHtmlPreproc + syn region phpInnerHtmlEndTag contained start=++ contains=phpInnerHtmlTagN,phpInnerHtmlTagError + syn region phpInnerHtmlTag contained start=+<[^/]+ end=+>+ fold contains=phpInnerHtmlTagN,phpInnerHtmlString,htmlArg,phpInnerHtmlValue,phpInnerHtmlTagError,phpInnerHtmlEvent,phpInnerHtmlCssDefinition,@phpInnerHtmlPreproc,@phpInnerHtmlArgCluster + syn match phpInnerHtmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@phpInnerHtmlTagNameCluster + syn match phpInnerHtmlTagN contained +]<"ms=s+1 + + + " special characters + syn match phpInnerHtmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" + + " Comments (the real ones or the old netscape ones) + if exists("html_wrong_comments") + syn region phpInnerHtmlComment start=+ + " Idem 8.2.4.43,44: Except and are parser errors + " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment + syn region phpInnerHtmlComment matchgroup=phpInnerHtmlComment start=+ is all right + syn match phpInnerHtmlCommentNested contained "\@!" + syn match phpInnerHtmlCommentError contained "[^>+ keepend + + " server-parsed commands + syn region phpInnerHtmlPreProc start=++ contains=phpInnerHtmlPreStmt,phpInnerHtmlPreError,phpInnerHtmlPreAttr + syn match phpInnerHtmlPreStmt contained "" + syn match prologQuestion "?-.*\." contains=prologNumber + + +endif + +syn sync maxlines=50 + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default highlighting. +hi def link prologComment Comment +hi def link prologCComment Comment +hi def link prologCharCode Special + +if exists ("prolog_highlighting_clean") + +hi def link prologKeyword Statement +hi def link prologClauseHead Statement +hi def link prologClause Normal + +else + +hi def link prologKeyword Keyword +hi def link prologClauseHead Constant +hi def link prologClause Normal +hi def link prologQuestion PreProc +hi def link prologSpecialCharacter Special +hi def link prologNumber Number +hi def link prologAsIs Normal +hi def link prologCommentError Error +hi def link prologAtom String +hi def link prologString String +hi def link prologOperator Operator + +endif + + +let b:current_syntax = "prolog" + +" vim: ts=8 diff --git a/runtime/syntax/promela.vim b/runtime/syntax/promela.vim new file mode 100644 index 0000000..add4514 --- /dev/null +++ b/runtime/syntax/promela.vim @@ -0,0 +1,53 @@ +" Vim syntax file +" Language: ProMeLa +" Maintainer: Maurizio Tranchero - +" First Release: Mon Oct 16 08:49:46 CEST 2006 +" Last Change: Thu Aug 7 21:22:48 CEST 2008 +" Version: 0.5 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" case is significant +" syn case ignore +" ProMeLa Keywords +syn keyword promelaStatement proctype if else while chan do od fi break goto unless +syn keyword promelaStatement active assert label atomic +syn keyword promelaFunctions skip timeout run +syn keyword promelaTodo contained TODO +" ProMeLa Types +syn keyword promelaType bit bool byte short int +" Operators and special characters +syn match promelaOperator "!" +syn match promelaOperator "?" +syn match promelaOperator "->" +syn match promelaOperator "=" +syn match promelaOperator "+" +syn match promelaOperator "*" +syn match promelaOperator "/" +syn match promelaOperator "-" +syn match promelaOperator "<" +syn match promelaOperator ">" +syn match promelaOperator "<=" +syn match promelaOperator ">=" +syn match promelaSpecial "\[" +syn match promelaSpecial "\]" +syn match promelaSpecial ";" +syn match promelaSpecial "::" +" ProMeLa Comments +syn region promelaComment start="/\*" end="\*/" contains=promelaTodo,@Spell +syn match promelaComment "//.*" contains=promelaTodo,@Spell + +" Class Linking +hi def link promelaStatement Statement +hi def link promelaType Type +hi def link promelaComment Comment +hi def link promelaOperator Type +hi def link promelaSpecial Special +hi def link promelaFunctions Special +hi def link promelaString String +hi def link promelaTodo Todo + +let b:current_syntax = "promela" diff --git a/runtime/syntax/proto.vim b/runtime/syntax/proto.vim new file mode 100644 index 0000000..0d2d2f2 --- /dev/null +++ b/runtime/syntax/proto.vim @@ -0,0 +1,83 @@ +" Protocol Buffers - Google's data interchange format +" Copyright 2008 Google Inc. All rights reserved. +" https://developers.google.com/protocol-buffers/ +" +" Redistribution and use in source and binary forms, with or without +" modification, are permitted provided that the following conditions are +" met: +" +" * Redistributions of source code must retain the above copyright +" notice, this list of conditions and the following disclaimer. +" * Redistributions in binary form must reproduce the above +" copyright notice, this list of conditions and the following disclaimer +" in the documentation and/or other materials provided with the +" distribution. +" * Neither the name of Google Inc. nor the names of its +" contributors may be used to endorse or promote products derived from +" this software without specific prior written permission. +" +" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +" This is the Vim syntax file for Google Protocol Buffers as found at +" https://github.com/protocolbuffers/protobuf +" Last update: 2020 Oct 29 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +syn keyword protoTodo contained TODO FIXME XXX +syn cluster protoCommentGrp contains=protoTodo + +syn keyword protoSyntax syntax import option +syn keyword protoStructure package message group oneof +syn keyword protoRepeat optional required repeated +syn keyword protoDefault default +syn keyword protoExtend extend extensions to max reserved +syn keyword protoRPC service rpc returns + +syn keyword protoType int32 int64 uint32 uint64 sint32 sint64 +syn keyword protoType fixed32 fixed64 sfixed32 sfixed64 +syn keyword protoType float double bool string bytes +syn keyword protoTypedef enum +syn keyword protoBool true false + +syn match protoInt /-\?\<\d\+\>/ +syn match protoInt /\<0[xX]\x+\>/ +syn match protoFloat /\<-\?\d*\(\.\d*\)\?/ +syn region protoComment start="\/\*" end="\*\/" contains=@pbCommentGrp,@Spell +syn region protoComment start="//" skip="\\$" end="$" keepend contains=@pbCommentGrp,@Spell +syn region protoString start=/"/ skip=/\\./ end=/"/ contains=@Spell +syn region protoString start=/'/ skip=/\\./ end=/'/ contains=@Spell + +hi def link protoTodo Todo + +hi def link protoSyntax Include +hi def link protoStructure Structure +hi def link protoRepeat Repeat +hi def link protoDefault Keyword +hi def link protoExtend Keyword +hi def link protoRPC Keyword +hi def link protoType Type +hi def link protoTypedef Typedef +hi def link protoBool Boolean + +hi def link protoInt Number +hi def link protoFloat Float +hi def link protoComment Comment +hi def link protoString String + +let b:current_syntax = "proto" diff --git a/runtime/syntax/protocols.vim b/runtime/syntax/protocols.vim new file mode 100644 index 0000000..f31ca5a --- /dev/null +++ b/runtime/syntax/protocols.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: protocols(5) - Internet protocols definition file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match protocolsBegin display '^' + \ nextgroup=protocolsName,protocolsComment + +syn match protocolsName contained display '[[:graph:]]\+' + \ nextgroup=protocolsPort skipwhite + +syn match protocolsPort contained display '\d\+' + \ nextgroup=protocolsAliases,protocolsComment + \ skipwhite + +syn match protocolsAliases contained display '\S\+' + \ nextgroup=protocolsAliases,protocolsComment + \ skipwhite + +syn keyword protocolsTodo contained TODO FIXME XXX NOTE + +syn region protocolsComment display oneline start='#' end='$' + \ contains=protocolsTodo,@Spell + +hi def link protocolsTodo Todo +hi def link protocolsComment Comment +hi def link protocolsName Identifier +hi def link protocolsPort Number +hi def link protocolsPPDiv Delimiter +hi def link protocolsPPDivDepr Error +hi def link protocolsProtocol Type +hi def link protocolsAliases Macro + +let b:current_syntax = "protocols" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/ps1.vim b/runtime/syntax/ps1.vim new file mode 100644 index 0000000..e8f6b2f --- /dev/null +++ b/runtime/syntax/ps1.vim @@ -0,0 +1,182 @@ +" Vim syntax file +" Language: Windows PowerShell +" URL: https://github.com/PProvost/vim-ps1 +" Last Change: 2020 Nov 24 +" +" The following settings are available for tuning syntax highlighting: +" let ps1_nofold_blocks = 1 +" let ps1_nofold_sig = 1 +" let ps1_nofold_region = 1 + +if exists("b:current_syntax") + finish +endif + +" Operators contain dashes +setlocal iskeyword+=- + +" PowerShell doesn't care about case +syn case ignore + +" Sync-ing method +syn sync minlines=100 + +" Certain tokens can't appear at the top level of the document +syn cluster ps1NotTop contains=@ps1Comment,ps1CDocParam,ps1FunctionDeclaration + +" Comments and special comment words +syn keyword ps1CommentTodo TODO FIXME XXX TBD HACK NOTE contained +syn match ps1CDocParam /.*/ contained +syn match ps1CommentDoc /^\s*\zs\.\w\+\>/ nextgroup=ps1CDocParam contained +syn match ps1CommentDoc /#\s*\zs\.\w\+\>/ nextgroup=ps1CDocParam contained +syn match ps1Comment /#.*/ contains=ps1CommentTodo,ps1CommentDoc,@Spell +syn region ps1Comment start="<#" end="#>" contains=ps1CommentTodo,ps1CommentDoc,@Spell + +" Language keywords and elements +syn keyword ps1Conditional if else elseif switch default +syn keyword ps1Repeat while for do until break continue foreach in +syn match ps1Repeat /\/ nextgroup=ps1Block skipwhite +syn match ps1Keyword /\/ nextgroup=ps1Block skipwhite +syn match ps1Keyword /\/ nextgroup=ps1Block skipwhite + +syn keyword ps1Exception begin process end exit inlinescript parallel sequence +syn keyword ps1Keyword try catch finally throw +syn keyword ps1Keyword return filter in trap param data dynamicparam +syn keyword ps1Constant $true $false $null +syn match ps1Constant +\$?+ +syn match ps1Constant +\$_+ +syn match ps1Constant +\$\$+ +syn match ps1Constant +\$^+ + +" Keywords reserved for future use +syn keyword ps1Keyword class define from using var + +" Function declarations +syn keyword ps1Keyword function nextgroup=ps1Function skipwhite +syn keyword ps1Keyword filter nextgroup=ps1Function skipwhite +syn keyword ps1Keyword workflow nextgroup=ps1Function skipwhite +syn keyword ps1Keyword configuration nextgroup=ps1Function skipwhite +syn keyword ps1Keyword class nextgroup=ps1Function skipwhite +syn keyword ps1Keyword enum nextgroup=ps1Function skipwhite + +" Function declarations and invocations +syn match ps1Cmdlet /\v(add|clear|close|copy|enter|exit|find|format|get|hide|join|lock|move|new|open|optimize|pop|push|redo|remove|rename|reset|search|select|Set|show|skip|split|step|switch|undo|unlock|watch)(-\w+)+/ contained +syn match ps1Cmdlet /\v(connect|disconnect|read|receive|send|write)(-\w+)+/ contained +syn match ps1Cmdlet /\v(backup|checkpoint|compare|compress|convert|convertfrom|convertto|dismount|edit|expand|export|group|import|initialize|limit|merge|mount|out|publish|restore|save|sync|unpublish|update)(-\w+)+/ contained +syn match ps1Cmdlet /\v(debug|measure|ping|repair|resolve|test|trace)(-\w+)+/ contained +syn match ps1Cmdlet /\v(approve|assert|build|complete|confirm|deny|deploy|disable|enable|install|invoke|register|request|restart|resume|start|stop|submit|suspend|uninstall|unregister|wait)(-\w+)+/ contained +syn match ps1Cmdlet /\v(block|grant|protect|revoke|unblock|unprotect)(-\w+)+/ contained +syn match ps1Cmdlet /\v(use)(-\w+)+/ contained + +" Other functions +syn match ps1Function /\w\+\(-\w\+\)\+/ contains=ps1Cmdlet + +" Type declarations +syn match ps1Type /\[[a-z_][a-z0-9_.,\[\]]\+\]/ + +" Variable references +syn match ps1ScopeModifier /\(global:\|local:\|private:\|script:\)/ contained +syn match ps1Variable /\$\w\+\(:\w\+\)\?/ contains=ps1ScopeModifier +syn match ps1Variable /\${\w\+\(:\?[[:alnum:]_()]\+\)\?}/ contains=ps1ScopeModifier + +" Operators +syn keyword ps1Operator -eq -ne -ge -gt -lt -le -like -notlike -match -notmatch -replace -split -contains -notcontains +syn keyword ps1Operator -ieq -ine -ige -igt -ile -ilt -ilike -inotlike -imatch -inotmatch -ireplace -isplit -icontains -inotcontains +syn keyword ps1Operator -ceq -cne -cge -cgt -clt -cle -clike -cnotlike -cmatch -cnotmatch -creplace -csplit -ccontains -cnotcontains +syn keyword ps1Operator -in -notin +syn keyword ps1Operator -is -isnot -as -join +syn keyword ps1Operator -and -or -not -xor -band -bor -bnot -bxor +syn keyword ps1Operator -f +syn match ps1Operator /!/ +syn match ps1Operator /=/ +syn match ps1Operator /+=/ +syn match ps1Operator /-=/ +syn match ps1Operator /\*=/ +syn match ps1Operator /\/=/ +syn match ps1Operator /%=/ +syn match ps1Operator /+/ +syn match ps1Operator /-\(\s\|\d\|\.\|\$\|(\)\@=/ +syn match ps1Operator /\*/ +syn match ps1Operator /\// +syn match ps1Operator /|/ +syn match ps1Operator /%/ +syn match ps1Operator /&/ +syn match ps1Operator /::/ +syn match ps1Operator /,/ +syn match ps1Operator /\(^\|\s\)\@<=\. \@=/ + +" Regular Strings +" These aren't precisely correct and could use some work +syn region ps1String start=/"/ skip=/`"/ end=/"/ contains=@ps1StringSpecial,@Spell +syn region ps1String start=/'/ skip=/''/ end=/'/ + +" Here-Strings +syn region ps1String start=/@"$/ end=/^"@/ contains=@ps1StringSpecial,@Spell +syn region ps1String start=/@'$/ end=/^'@/ + +" Interpolation +syn match ps1Escape /`./ +syn region ps1Interpolation matchgroup=ps1InterpolationDelimiter start="$(" end=")" contained contains=ALLBUT,@ps1NotTop +syn region ps1NestedParentheses start="(" skip="\\\\\|\\)" matchgroup=ps1Interpolation end=")" transparent contained +syn cluster ps1StringSpecial contains=ps1Escape,ps1Interpolation,ps1Variable,ps1Boolean,ps1Constant,ps1BuiltIn,@Spell + +" Numbers +syn match ps1Number "\(\<\|-\)\@<=\(0[xX]\x\+\|\d\+\)\([KMGTP][B]\)\=\(\>\|-\)\@=" +syn match ps1Number "\(\(\<\|-\)\@<=\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[dD]\=" +syn match ps1Number "\<\d\+[eE][-+]\=\d\+[dD]\=\>" +syn match ps1Number "\<\d\+\([eE][-+]\=\d\+\)\=[dD]\>" + +" Constants +syn match ps1Boolean "$\%(true\|false\)\>" +syn match ps1Constant /\$null\>/ +syn match ps1BuiltIn "$^\|$?\|$_\|$\$" +syn match ps1BuiltIn "$\%(args\|error\|foreach\|home\|input\)\>" +syn match ps1BuiltIn "$\%(match\(es\)\?\|myinvocation\|host\|lastexitcode\)\>" +syn match ps1BuiltIn "$\%(ofs\|shellid\|stacktrace\)\>" + +" Named Switch +syn match ps1Label /\s-\w\+/ + +" Folding blocks +if !exists('g:ps1_nofold_blocks') + syn region ps1Block start=/{/ end=/}/ transparent fold +endif + +if !exists('g:ps1_nofold_region') + syn region ps1Region start=/#region/ end=/#endregion/ transparent fold keepend extend +endif + +if !exists('g:ps1_nofold_sig') + syn region ps1Signature start=/# SIG # Begin signature block/ end=/# SIG # End signature block/ transparent fold +endif + +" Setup default color highlighting +hi def link ps1Number Number +hi def link ps1Block Block +hi def link ps1Region Region +hi def link ps1Exception Exception +hi def link ps1Constant Constant +hi def link ps1String String +hi def link ps1Escape SpecialChar +hi def link ps1InterpolationDelimiter Delimiter +hi def link ps1Conditional Conditional +hi def link ps1Cmdlet Function +hi def link ps1Function Identifier +hi def link ps1Variable Identifier +hi def link ps1Boolean Boolean +hi def link ps1Constant Constant +hi def link ps1BuiltIn StorageClass +hi def link ps1Type Type +hi def link ps1ScopeModifier StorageClass +hi def link ps1Comment Comment +hi def link ps1CommentTodo Todo +hi def link ps1CommentDoc Tag +hi def link ps1CDocParam Identifier +hi def link ps1Operator Operator +hi def link ps1Repeat Repeat +hi def link ps1RepeatAndCmdlet Repeat +hi def link ps1Keyword Keyword +hi def link ps1KeywordAndCmdlet Keyword +hi def link ps1Label Label + +let b:current_syntax = "ps1" diff --git a/runtime/syntax/ps1xml.vim b/runtime/syntax/ps1xml.vim new file mode 100644 index 0000000..6ca9ed0 --- /dev/null +++ b/runtime/syntax/ps1xml.vim @@ -0,0 +1,51 @@ +" Vim syntax file +" Language: Windows PowerShell +" URL: https://github.com/PProvost/vim-ps1 +" Last Change: 2013 Jun 24 + +if exists("b:current_syntax") + finish +endif + +let s:ps1xml_cpo_save = &cpo +set cpo&vim + +doau syntax xml +unlet b:current_syntax + +syn case ignore +syn include @ps1xmlScriptBlock :p:h/ps1.vim +unlet b:current_syntax + +syn region ps1xmlScriptBlock + \ matchgroup=xmlTag start="" + \ fold + \ contains=@ps1xmlScriptBlock + \ keepend +syn region ps1xmlScriptBlock + \ matchgroup=xmlTag start="" + \ matchgroup=xmlEndTag end="" + \ fold + \ contains=@ps1xmlScriptBlock + \ keepend +syn region ps1xmlScriptBlock + \ matchgroup=xmlTag start="" + \ matchgroup=xmlEndTag end="" + \ fold + \ contains=@ps1xmlScriptBlock + \ keepend +syn region ps1xmlScriptBlock + \ matchgroup=xmlTag start="" + \ matchgroup=xmlEndTag end="" + \ fold + \ contains=@ps1xmlScriptBlock + \ keepend + +syn cluster xmlRegionHook add=ps1xmlScriptBlock + +let b:current_syntax = "ps1xml" + +let &cpo = s:ps1xml_cpo_save +unlet s:ps1xml_cpo_save + diff --git a/runtime/syntax/psf.vim b/runtime/syntax/psf.vim new file mode 100644 index 0000000..0971fe9 --- /dev/null +++ b/runtime/syntax/psf.vim @@ -0,0 +1,91 @@ +" Vim syntax file +" Language: Software Distributor product specification file +" (POSIX 1387.2-1995). +" Maintainer: Rex Barzee +" Last change: 25 Apr 2001 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Product specification files are case sensitive +syn case match + +syn keyword psfObject bundle category control_file depot distribution +syn keyword psfObject end file fileset host installed_software media +syn keyword psfObject product root subproduct vendor + +syn match psfUnquotString +[^"# ][^#]*+ contained +syn region psfQuotString start=+"+ skip=+\\"+ end=+"+ contained + +syn match psfObjTag "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*" contained +syn match psfAttAbbrev ",\<\(fa\|fr\|[aclqrv]\)\(<\|>\|<=\|>=\|=\|==\)[^,]\+" contained +syn match psfObjTags "\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\(\s\+\<[-_+A-Z0-9a-z]\+\(\.[-_+A-Z0-9a-z]\+\)*\)*" contained + +syn match psfNumber "\<\d\+\>" contained +syn match psfFloat "\<\d\+\>\(\.\<\d\+\>\)*" contained + +syn match psfLongDate "\<\d\d\d\d\d\d\d\d\d\d\d\d\.\d\d\>" contained + +syn keyword psfState available configured corrupt installed transient contained +syn keyword psfPState applied committed superseded contained + +syn keyword psfBoolean false true contained + + +"Some of the attributes covered by attUnquotString and attQuotString: +" architecture category_tag control_directory copyright +" create_date description directory file_permissions install_source +" install_type location machine_type mod_date number os_name os_release +" os_version pose_as_os_name pose_as_os_release readme revision +" share_link title vendor_tag +syn region psfAttUnquotString matchgroup=psfAttrib start=~^\s*[^# ]\+\s\+[^#" ]~rs=e-1 contains=psfUnquotString,psfComment end=~$~ keepend oneline + +syn region psfAttQuotString matchgroup=psfAttrib start=~^\s*[^# ]\+\s\+"~rs=e-1 contains=psfQuotString,psfComment skip=~\\"~ matchgroup=psfQuotString end=~"~ keepend + + +" These regions are defined in attempt to do syntax checking for some +" of the attributes. +syn region psfAttTag matchgroup=psfAttrib start="^\s*tag\s\+" contains=psfObjTag,psfComment end="$" keepend oneline + +syn region psfAttSpec matchgroup=psfAttrib start="^\s*\(ancestor\|applied_patches\|applied_to\|contents\|corequisites\|exrequisites\|prerequisites\|software_spec\|supersedes\|superseded_by\)\s\+" contains=psfObjTag,psfAttAbbrev,psfComment end="$" keepend + +syn region psfAttTags matchgroup=psfAttrib start="^\s*all_filesets\s\+" contains=psfObjTags,psfComment end="$" keepend + +syn region psfAttNumber matchgroup=psfAttrib start="^\s*\(compressed_size\|instance_id\|media_sequence_number\|sequence_number\|size\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline + +syn region psfAttTime matchgroup=psfAttrib start="^\s*\(create_time\|ctime\|mod_time\|mtime\|timestamp\)\s\+" contains=psfNumber,psfComment end="$" keepend oneline + +syn region psfAttFloat matchgroup=psfAttrib start="^\s*\(data_model_revision\|layout_version\)\s\+" contains=psfFloat,psfComment end="$" keepend oneline + +syn region psfAttLongDate matchgroup=psfAttrib start="^\s*install_date\s\+" contains=psfLongDate,psfComment end="$" keepend oneline + +syn region psfAttState matchgroup=psfAttrib start="^\s*\(state\)\s\+" contains=psfState,psfComment end="$" keepend oneline + +syn region psfAttPState matchgroup=psfAttrib start="^\s*\(patch_state\)\s\+" contains=psfPState,psfComment end="$" keepend oneline + +syn region psfAttBoolean matchgroup=psfAttrib start="^\s*\(is_kernel\|is_locatable\|is_patch\|is_protected\|is_reboot\|is_reference\|is_secure\|is_sparse\)\s\+" contains=psfBoolean,psfComment end="$" keepend oneline + +syn match psfComment "#.*$" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link psfObject Statement +hi def link psfAttrib Type +hi def link psfQuotString String +hi def link psfObjTag Identifier +hi def link psfAttAbbrev PreProc +hi def link psfObjTags Identifier + +hi def link psfComment Comment + + +" Long descriptions and copyrights confuse the syntax highlighting, so +" force vim to backup at least 100 lines before the top visible line +" looking for a sync location. +syn sync lines=100 + +let b:current_syntax = "psf" diff --git a/runtime/syntax/psl.vim b/runtime/syntax/psl.vim new file mode 100644 index 0000000..ff6e833 --- /dev/null +++ b/runtime/syntax/psl.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: Property Specification Language (PSL) +" Maintainer: Daniel Kho +" Last Changed: 2021 Apr 17 by Daniel Kho + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read in VHDL syntax files +runtime! syntax/vhdl.vim +unlet b:current_syntax + +let s:cpo_save = &cpo +set cpo&vim + +" case is not significant +syn case ignore + +" Add ! character to keyword recognition. +setlocal iskeyword+=33 + +" PSL keywords +syn keyword pslOperator A AF AG AX +syn keyword pslOperator E EF EG EX +syn keyword pslOperator F G U W X X! +syn keyword pslOperator abort always assert assume async_abort +syn keyword pslOperator before before! before!_ before_ bit bitvector boolean +syn keyword pslOperator clock const countones cover +syn keyword pslOperator default +syn keyword pslOperator ended eventually! +syn keyword pslOperator fairness fell for forall +syn keyword pslOperator hdltype +syn keyword pslOperator in inf inherit isunknown +syn keyword pslOperator mutable +syn keyword pslOperator never next next! next_a next_a! next_e next_e! next_event next_event! next_event_a next_event_a! next_event_e next_event_e! nondet nondet_vector numeric +syn keyword pslOperator onehot onehot0 +syn keyword pslOperator property prev +syn keyword pslOperator report restrict restrict! rose +syn keyword pslOperator sequence stable string strong sync_abort +syn keyword pslOperator union until until! until!_ until_ +syn keyword pslOperator vmode vpkg vprop vunit +syn keyword pslOperator within +"" Common keywords with VHDL +"syn keyword pslOperator and is not or to + +" PSL operators +syn match pslOperator "=>\||=>" +syn match pslOperator "<-\|->" +syn match pslOperator "@" + + +"Modify the following as needed. The trade-off is performance versus functionality. +syn sync minlines=600 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link pslSpecial Special +hi def link pslStatement Statement +hi def link pslCharacter Character +hi def link pslString String +hi def link pslVector Number +hi def link pslBoolean Number +hi def link pslTodo Todo +hi def link pslFixme Fixme +hi def link pslComment Comment +hi def link pslNumber Number +hi def link pslTime Number +hi def link pslType Type +hi def link pslOperator Operator +hi def link pslError Error +hi def link pslAttribute Special +hi def link pslPreProc PreProc + + +let b:current_syntax = "psl" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/ptcap.vim b/runtime/syntax/ptcap.vim new file mode 100644 index 0000000..5db7bda --- /dev/null +++ b/runtime/syntax/ptcap.vim @@ -0,0 +1,95 @@ +" Vim syntax file +" Language: printcap/termcap database +" Maintainer: Haakon Riiser +" URL: http://folk.uio.no/hakonrk/vim/syntax/ptcap.vim +" Last Change: 2001 May 15 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Since I only highlight based on the structure of the databases, not +" specific keywords, case sensitivity isn't required +syn case ignore + +" Since everything that is not caught by the syntax patterns is assumed +" to be an error, we start parsing 20 lines up, unless something else +" is specified +if exists("ptcap_minlines") + exe "syn sync lines=".ptcap_minlines +else + syn sync lines=20 +endif + +" Highlight everything that isn't caught by the rules as errors, +" except blank lines +syn match ptcapError "^.*\S.*$" + +syn match ptcapLeadBlank "^\s\+" contained + +" `:' and `|' are delimiters for fields and names, and should not be +" highlighted. Hence, they are linked to `NONE' +syn match ptcapDelimiter "[:|]" contained + +" Escaped characters receive special highlighting +syn match ptcapEscapedChar "\\." contained +syn match ptcapEscapedChar "\^." contained +syn match ptcapEscapedChar "\\\o\{3}" contained + +" A backslash at the end of a line will suppress the newline +syn match ptcapLineCont "\\$" contained + +" A number follows the same rules as an integer in C +syn match ptcapNumber "#\(+\|-\)\=\d\+"lc=1 contained +syn match ptcapNumberError "#\d*[^[:digit:]:\\]"lc=1 contained +syn match ptcapNumber "#0x\x\{1,8}"lc=1 contained +syn match ptcapNumberError "#0x\X"me=e-1,lc=1 contained +syn match ptcapNumberError "#0x\x\{9}"lc=1 contained +syn match ptcapNumberError "#0x\x*[^[:xdigit:]:\\]"lc=1 contained + +" The `@' operator clears a flag (i.e., sets it to zero) +" The `#' operator assigns a following number to the flag +" The `=' operator assigns a string to the preceding flag +syn match ptcapOperator "[@#=]" contained + +" Some terminal capabilities have special names like `#5' and `@1', and we +" need special rules to match these properly +syn match ptcapSpecialCap "\W[#@]\d" contains=ptcapDelimiter contained + +" If editing a termcap file, an entry in the database is terminated by +" a (non-escaped) newline. Otherwise, it is terminated by a line which +" does not start with a colon (:) +if exists("b:ptcap_type") && b:ptcap_type[0] == 't' + syn region ptcapEntry start="^\s*[^[:space:]:]" end="[^\\]\(\\\\\)*$" end="^$" contains=ptcapNames,ptcapField,ptcapLeadBlank keepend +else + syn region ptcapEntry start="^\s*[^[:space:]:]"me=e-1 end="^\s*[^[:space:]:#]"me=e-1 contains=ptcapNames,ptcapField,ptcapLeadBlank,ptcapComment +endif +syn region ptcapNames start="^\s*[^[:space:]:]" skip="[^\\]\(\\\\\)*\\:" end=":"me=e-1 contains=ptcapDelimiter,ptcapEscapedChar,ptcapLineCont,ptcapLeadBlank,ptcapComment keepend contained +syn region ptcapField start=":" skip="[^\\]\(\\\\\)*\\$" end="[^\\]\(\\\\\)*:"me=e-1 end="$" contains=ptcapDelimiter,ptcapString,ptcapNumber,ptcapNumberError,ptcapOperator,ptcapLineCont,ptcapSpecialCap,ptcapLeadBlank,ptcapComment keepend contained +syn region ptcapString matchgroup=ptcapOperator start="=" skip="[^\\]\(\\\\\)*\\:" matchgroup=ptcapDelimiter end=":"me=e-1 matchgroup=NONE end="[^\\]\(\\\\\)*[^\\]$" end="^$" contains=ptcapEscapedChar,ptcapLineCont keepend contained +syn region ptcapComment start="^\s*#" end="$" contains=ptcapLeadBlank + + +hi def link ptcapComment Comment +hi def link ptcapDelimiter Delimiter +" The highlighting of "ptcapEntry" should always be overridden by +" its contents, so I use Todo highlighting to indicate that there +" is work to be done with the syntax file if you can see it :-) +hi def link ptcapEntry Todo +hi def link ptcapError Error +hi def link ptcapEscapedChar SpecialChar +hi def link ptcapField Type +hi def link ptcapLeadBlank NONE +hi def link ptcapLineCont Special +hi def link ptcapNames Label +hi def link ptcapNumber NONE +hi def link ptcapNumberError Error +hi def link ptcapOperator Operator +hi def link ptcapSpecialCap Type +hi def link ptcapString NONE + + +let b:current_syntax = "ptcap" + +" vim: sts=4 sw=4 ts=8 diff --git a/runtime/syntax/purifylog.vim b/runtime/syntax/purifylog.vim new file mode 100644 index 0000000..2143d9f --- /dev/null +++ b/runtime/syntax/purifylog.vim @@ -0,0 +1,106 @@ +" Vim syntax file +" Language: purify log files +" Maintainer: Gautam H. Mudunuri +" Last Change: 2003 May 11 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Purify header +syn match purifyLogHeader "^\*\*\*\*.*$" + +" Informational messages +syn match purifyLogFIU "^FIU:.*$" +syn match purifyLogMAF "^MAF:.*$" +syn match purifyLogMIU "^MIU:.*$" +syn match purifyLogSIG "^SIG:.*$" +syn match purifyLogWPF "^WPF:.*$" +syn match purifyLogWPM "^WPM:.*$" +syn match purifyLogWPN "^WPN:.*$" +syn match purifyLogWPR "^WPR:.*$" +syn match purifyLogWPW "^WPW:.*$" +syn match purifyLogWPX "^WPX:.*$" + +" Warning messages +syn match purifyLogABR "^ABR:.*$" +syn match purifyLogBSR "^BSR:.*$" +syn match purifyLogBSW "^BSW:.*$" +syn match purifyLogFMR "^FMR:.*$" +syn match purifyLogMLK "^MLK:.*$" +syn match purifyLogMSE "^MSE:.*$" +syn match purifyLogPAR "^PAR:.*$" +syn match purifyLogPLK "^PLK:.*$" +syn match purifyLogSBR "^SBR:.*$" +syn match purifyLogSOF "^SOF:.*$" +syn match purifyLogUMC "^UMC:.*$" +syn match purifyLogUMR "^UMR:.*$" + +" Corrupting messages +syn match purifyLogABW "^ABW:.*$" +syn match purifyLogBRK "^BRK:.*$" +syn match purifyLogFMW "^FMW:.*$" +syn match purifyLogFNH "^FNH:.*$" +syn match purifyLogFUM "^FUM:.*$" +syn match purifyLogMRE "^MRE:.*$" +syn match purifyLogSBW "^SBW:.*$" + +" Fatal messages +syn match purifyLogCOR "^COR:.*$" +syn match purifyLogNPR "^NPR:.*$" +syn match purifyLogNPW "^NPW:.*$" +syn match purifyLogZPR "^ZPR:.*$" +syn match purifyLogZPW "^ZPW:.*$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link purifyLogFIU purifyLogInformational +hi def link purifyLogMAF purifyLogInformational +hi def link purifyLogMIU purifyLogInformational +hi def link purifyLogSIG purifyLogInformational +hi def link purifyLogWPF purifyLogInformational +hi def link purifyLogWPM purifyLogInformational +hi def link purifyLogWPN purifyLogInformational +hi def link purifyLogWPR purifyLogInformational +hi def link purifyLogWPW purifyLogInformational +hi def link purifyLogWPX purifyLogInformational + +hi def link purifyLogABR purifyLogWarning +hi def link purifyLogBSR purifyLogWarning +hi def link purifyLogBSW purifyLogWarning +hi def link purifyLogFMR purifyLogWarning +hi def link purifyLogMLK purifyLogWarning +hi def link purifyLogMSE purifyLogWarning +hi def link purifyLogPAR purifyLogWarning +hi def link purifyLogPLK purifyLogWarning +hi def link purifyLogSBR purifyLogWarning +hi def link purifyLogSOF purifyLogWarning +hi def link purifyLogUMC purifyLogWarning +hi def link purifyLogUMR purifyLogWarning + +hi def link purifyLogABW purifyLogCorrupting +hi def link purifyLogBRK purifyLogCorrupting +hi def link purifyLogFMW purifyLogCorrupting +hi def link purifyLogFNH purifyLogCorrupting +hi def link purifyLogFUM purifyLogCorrupting +hi def link purifyLogMRE purifyLogCorrupting +hi def link purifyLogSBW purifyLogCorrupting + +hi def link purifyLogCOR purifyLogFatal +hi def link purifyLogNPR purifyLogFatal +hi def link purifyLogNPW purifyLogFatal +hi def link purifyLogZPR purifyLogFatal +hi def link purifyLogZPW purifyLogFatal + +hi def link purifyLogHeader Comment +hi def link purifyLogInformational PreProc +hi def link purifyLogWarning Type +hi def link purifyLogCorrupting Error +hi def link purifyLogFatal Error + + +let b:current_syntax = "purifylog" + +" vim:ts=8 diff --git a/runtime/syntax/pymanifest.vim b/runtime/syntax/pymanifest.vim new file mode 100644 index 0000000..26bdf79 --- /dev/null +++ b/runtime/syntax/pymanifest.vim @@ -0,0 +1,44 @@ +" Vim syntax file +" Language: PyPA manifest +" Maintainer: ObserverOfTime +" Filenames: MANIFEST.in +" Last Change: 2023 Aug 12 + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +syn iskeyword @,- + +" Comments +syn keyword pymanifestTodo contained TODO FIXME XXX +syn match pymanifestComment /\\\@1 +" URL: http://marcobari.altervista.org/pyrex_vim.html +" Last Change: 2009 Nov 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the Python syntax to start with +runtime! syntax/python.vim +unlet b:current_syntax + +" Pyrex extentions +syn keyword pyrexStatement cdef typedef ctypedef sizeof +syn keyword pyrexType int long short float double char object void +syn keyword pyrexType signed unsigned +syn keyword pyrexStructure struct union enum +syn keyword pyrexInclude include cimport +syn keyword pyrexAccess public private property readonly extern +" If someome wants Python's built-ins highlighted probably he +" also wants Pyrex's built-ins highlighted +if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins") + syn keyword pyrexBuiltin NULL +endif + +" This deletes "from" from the keywords and re-adds it as a +" match with lower priority than pyrexForFrom +syn clear pythonInclude +syn keyword pythonInclude import +syn match pythonInclude "from" + +" With "for[^:]*\zsfrom" VIM does not match "for" anymore, so +" I used the slower "\@<=" form +syn match pyrexForFrom "\(for[^:]*\)\@<=from" + +" Default highlighting +hi def link pyrexStatement Statement +hi def link pyrexType Type +hi def link pyrexStructure Structure +hi def link pyrexInclude PreCondit +hi def link pyrexAccess pyrexStatement +if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins") +hi def link pyrexBuiltin Function +endif +hi def link pyrexForFrom Statement + + +let b:current_syntax = "pyrex" diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim new file mode 100644 index 0000000..7aa82f1 --- /dev/null +++ b/runtime/syntax/python.vim @@ -0,0 +1,340 @@ +" Vim syntax file +" Language: Python +" Maintainer: Zvezdan Petkovic +" Last Change: 2023 Feb 28 +" Credits: Neil Schemenauer +" Dmitry Vasiliev +" +" This version is a major rewrite by Zvezdan Petkovic. +" +" - introduced highlighting of doctests +" - updated keywords, built-ins, and exceptions +" - corrected regular expressions for +" +" * functions +" * decorators +" * strings +" * escapes +" * numbers +" * space error +" +" - corrected synchronization +" - more highlighting is ON by default, except +" - space error highlighting is OFF by default +" +" Optional highlighting can be controlled using these variables. +" +" let python_no_builtin_highlight = 1 +" let python_no_doctest_code_highlight = 1 +" let python_no_doctest_highlight = 1 +" let python_no_exception_highlight = 1 +" let python_no_number_highlight = 1 +" let python_space_error_highlight = 1 +" +" All the options above can be switched on together. +" +" let python_highlight_all = 1 +" +" The use of Python 2 compatible syntax highlighting can be enforced. +" The straddling code (Python 2 and 3 compatible), up to Python 3.5, +" will be also supported. +" +" let python_use_python2_syntax = 1 +" +" This option will exclude all modern Python 3.6 or higher features. +" + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +" Use of Python 2 and 3.5 or lower requested. +if exists("python_use_python2_syntax") + runtime! syntax/python2.vim + finish +endif + +" We need nocompatible mode in order to continue lines with backslashes. +" Original setting will be restored. +let s:cpo_save = &cpo +set cpo&vim + +if exists("python_no_doctest_highlight") + let python_no_doctest_code_highlight = 1 +endif + +if exists("python_highlight_all") + if exists("python_no_builtin_highlight") + unlet python_no_builtin_highlight + endif + if exists("python_no_doctest_code_highlight") + unlet python_no_doctest_code_highlight + endif + if exists("python_no_doctest_highlight") + unlet python_no_doctest_highlight + endif + if exists("python_no_exception_highlight") + unlet python_no_exception_highlight + endif + if exists("python_no_number_highlight") + unlet python_no_number_highlight + endif + let python_space_error_highlight = 1 +endif + +" Keep Python keywords in alphabetical order inside groups for easy +" comparison with the table in the 'Python Language Reference' +" https://docs.python.org/reference/lexical_analysis.html#keywords. +" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt. +" Exceptions come last at the end of each group (class and def below). +" +" The list can be checked using: +" +" python3 -c 'import keyword, pprint; pprint.pprint(keyword.kwlist + keyword.softkwlist, compact=True)' +" +syn keyword pythonStatement False None True +syn keyword pythonStatement as assert break continue del global +syn keyword pythonStatement lambda nonlocal pass return with yield +syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite +syn keyword pythonConditional elif else if +syn keyword pythonRepeat for while +syn keyword pythonOperator and in is not or +syn keyword pythonException except finally raise try +syn keyword pythonInclude from import +syn keyword pythonAsync async await + +" Soft keywords +" These keywords do not mean anything unless used in the right context. +" See https://docs.python.org/3/reference/lexical_analysis.html#soft-keywords +" for more on this. +syn match pythonConditional "^\s*\zscase\%(\s\+.*:.*$\)\@=" +syn match pythonConditional "^\s*\zsmatch\%(\s\+.*:\s*\%(#.*\)\=$\)\@=" + +" Decorators +" A dot must be allowed because of @MyClass.myfunc decorators. +syn match pythonDecorator "@" display contained +syn match pythonDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator + +" Python 3.5 introduced the use of the same symbol for matrix multiplication: +" https://www.python.org/dev/peps/pep-0465/. We now have to exclude the +" symbol from highlighting when used in that context. +" Single line multiplication. +syn match pythonMatrixMultiply + \ "\%(\w\|[])]\)\s*@" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent +" Multiplication continued on the next line after backslash. +syn match pythonMatrixMultiply + \ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent +" Multiplication in a parenthesized expression over multiple lines with @ at +" the start of each continued line; very similar to decorators and complex. +syn match pythonMatrixMultiply + \ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent + +syn match pythonFunction "\h\w*" display contained + +syn match pythonComment "#.*$" contains=pythonTodo,@Spell +syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained + +" Triple-quoted strings can contain doctests. +syn region pythonString matchgroup=pythonQuotes + \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=pythonEscape,@Spell +syn region pythonString matchgroup=pythonTripleQuotes + \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend + \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell +syn region pythonRawString matchgroup=pythonQuotes + \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=@Spell +syn region pythonRawString matchgroup=pythonTripleQuotes + \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend + \ contains=pythonSpaceError,pythonDoctest,@Spell + +syn match pythonEscape +\\[abfnrtv'"\\]+ contained +syn match pythonEscape "\\\o\{1,3}" contained +syn match pythonEscape "\\x\x\{2}" contained +syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained +" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/ +syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained +syn match pythonEscape "\\$" + +" It is very important to understand all details before changing the +" regular expressions below or their order. +" The word boundaries are *not* the floating-point number boundaries +" because of a possible leading or trailing decimal point. +" The expressions below ensure that all valid number literals are +" highlighted, and invalid number literals are not. For example, +" +" - a decimal point in '4.' at the end of a line is highlighted, +" - a second dot in 1.0.0 is not highlighted, +" - 08 is not highlighted, +" - 08e0 or 08j are highlighted, +" +" and so on, as specified in the 'Python Language Reference'. +" https://docs.python.org/reference/lexical_analysis.html#numeric-literals +if !exists("python_no_number_highlight") + " numbers (including complex) + syn match pythonNumber "\<0[oO]\%(_\=\o\)\+\>" + syn match pythonNumber "\<0[xX]\%(_\=\x\)\+\>" + syn match pythonNumber "\<0[bB]\%(_\=[01]\)\+\>" + syn match pythonNumber "\<\%([1-9]\%(_\=\d\)*\|0\+\%(_\=0\)*\)\>" + syn match pythonNumber "\<\d\%(_\=\d\)*[jJ]\>" + syn match pythonNumber "\<\d\%(_\=\d\)*[eE][+-]\=\d\%(_\=\d\)*[jJ]\=\>" + syn match pythonNumber + \ "\<\d\%(_\=\d\)*\.\%([eE][+-]\=\d\%(_\=\d\)*\)\=[jJ]\=\%(\W\|$\)\@=" + syn match pythonNumber + \ "\%(^\|\W\)\zs\%(\d\%(_\=\d\)*\)\=\.\d\%(_\=\d\)*\%([eE][+-]\=\d\%(_\=\d\)*\)\=[jJ]\=\>" +endif + +" Group the built-ins in the order in the 'Python Library Reference' for +" easier comparison. +" https://docs.python.org/library/constants.html +" http://docs.python.org/library/functions.html +" Python built-in functions are in alphabetical order. +" +" The list can be checked using: +" +" python3 -c 'import builtins, pprint; pprint.pprint(dir(builtins), compact=True)' +" +" The constants added by the `site` module are not listed below because they +" should not be used in programs, only in interactive interpreter. +" Similarly for some other attributes and functions `__`-enclosed from the +" output of the above command. +" +if !exists("python_no_builtin_highlight") + " built-in constants + " 'False', 'True', and 'None' are also reserved words in Python 3 + syn keyword pythonBuiltin False True None + syn keyword pythonBuiltin NotImplemented Ellipsis __debug__ + " constants added by the `site` module + syn keyword pythonBuiltin quit exit copyright credits license + " built-in functions + syn keyword pythonBuiltin abs all any ascii bin bool breakpoint bytearray + syn keyword pythonBuiltin bytes callable chr classmethod compile complex + syn keyword pythonBuiltin delattr dict dir divmod enumerate eval exec + syn keyword pythonBuiltin filter float format frozenset getattr globals + syn keyword pythonBuiltin hasattr hash help hex id input int isinstance + syn keyword pythonBuiltin issubclass iter len list locals map max + syn keyword pythonBuiltin memoryview min next object oct open ord pow + syn keyword pythonBuiltin print property range repr reversed round set + syn keyword pythonBuiltin setattr slice sorted staticmethod str sum super + syn keyword pythonBuiltin tuple type vars zip __import__ + " avoid highlighting attributes as builtins + syn match pythonAttribute /\.\h\w*/hs=s+1 + \ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync + \ transparent +endif + +" From the 'Python Library Reference' class hierarchy at the bottom. +" http://docs.python.org/library/exceptions.html +if !exists("python_no_exception_highlight") + " builtin base exceptions (used mostly as base classes for other exceptions) + syn keyword pythonExceptions BaseException Exception + syn keyword pythonExceptions ArithmeticError BufferError LookupError + " builtin exceptions (actually raised) + syn keyword pythonExceptions AssertionError AttributeError EOFError + syn keyword pythonExceptions FloatingPointError GeneratorExit ImportError + syn keyword pythonExceptions IndentationError IndexError KeyError + syn keyword pythonExceptions KeyboardInterrupt MemoryError + syn keyword pythonExceptions ModuleNotFoundError NameError + syn keyword pythonExceptions NotImplementedError OSError OverflowError + syn keyword pythonExceptions RecursionError ReferenceError RuntimeError + syn keyword pythonExceptions StopAsyncIteration StopIteration SyntaxError + syn keyword pythonExceptions SystemError SystemExit TabError TypeError + syn keyword pythonExceptions UnboundLocalError UnicodeDecodeError + syn keyword pythonExceptions UnicodeEncodeError UnicodeError + syn keyword pythonExceptions UnicodeTranslateError ValueError + syn keyword pythonExceptions ZeroDivisionError + " builtin exception aliases for OSError + syn keyword pythonExceptions EnvironmentError IOError WindowsError + " builtin OS exceptions in Python 3 + syn keyword pythonExceptions BlockingIOError BrokenPipeError + syn keyword pythonExceptions ChildProcessError ConnectionAbortedError + syn keyword pythonExceptions ConnectionError ConnectionRefusedError + syn keyword pythonExceptions ConnectionResetError FileExistsError + syn keyword pythonExceptions FileNotFoundError InterruptedError + syn keyword pythonExceptions IsADirectoryError NotADirectoryError + syn keyword pythonExceptions PermissionError ProcessLookupError TimeoutError + " builtin warnings + syn keyword pythonExceptions BytesWarning DeprecationWarning FutureWarning + syn keyword pythonExceptions ImportWarning PendingDeprecationWarning + syn keyword pythonExceptions ResourceWarning RuntimeWarning + syn keyword pythonExceptions SyntaxWarning UnicodeWarning + syn keyword pythonExceptions UserWarning Warning +endif + +if exists("python_space_error_highlight") + " trailing whitespace + syn match pythonSpaceError display excludenl "\s\+$" + " mixed tabs and spaces + syn match pythonSpaceError display " \+\t" + syn match pythonSpaceError display "\t\+ " +endif + +" Do not spell doctests inside strings. +" Notice that the end of a string, either ''', or """, will end the contained +" doctest too. Thus, we do *not* need to have it as an end pattern. +if !exists("python_no_doctest_highlight") + if !exists("python_no_doctest_code_highlight") + syn region pythonDoctest + \ start="^\s*>>>\s" end="^\s*$" + \ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell + syn region pythonDoctestValue + \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$" + \ contained + else + syn region pythonDoctest + \ start="^\s*>>>" end="^\s*$" + \ contained contains=@NoSpell + endif +endif + +" Sync at the beginning of class, function, or method definition. +syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]" + +" The default highlight links. Can be overridden later. +hi def link pythonStatement Statement +hi def link pythonConditional Conditional +hi def link pythonRepeat Repeat +hi def link pythonOperator Operator +hi def link pythonException Exception +hi def link pythonInclude Include +hi def link pythonAsync Statement +hi def link pythonDecorator Define +hi def link pythonDecoratorName Function +hi def link pythonFunction Function +hi def link pythonComment Comment +hi def link pythonTodo Todo +hi def link pythonString String +hi def link pythonRawString String +hi def link pythonQuotes String +hi def link pythonTripleQuotes pythonQuotes +hi def link pythonEscape Special +if !exists("python_no_number_highlight") + hi def link pythonNumber Number +endif +if !exists("python_no_builtin_highlight") + hi def link pythonBuiltin Function +endif +if !exists("python_no_exception_highlight") + hi def link pythonExceptions Structure +endif +if exists("python_space_error_highlight") + hi def link pythonSpaceError Error +endif +if !exists("python_no_doctest_highlight") + hi def link pythonDoctest Special + hi def link pythonDoctestValue Define +endif + +let b:current_syntax = "python" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/python2.vim b/runtime/syntax/python2.vim new file mode 100644 index 0000000..3b30eab --- /dev/null +++ b/runtime/syntax/python2.vim @@ -0,0 +1,345 @@ +" Vim syntax file +" Language: Python 2 +" Maintainer: Zvezdan Petkovic +" Last Change: 2016 Oct 29 +" Credits: Neil Schemenauer +" Dmitry Vasiliev +" +" This version is a major rewrite by Zvezdan Petkovic. +" +" - introduced highlighting of doctests +" - updated keywords, built-ins, and exceptions +" - corrected regular expressions for +" +" * functions +" * decorators +" * strings +" * escapes +" * numbers +" * space error +" +" - corrected synchronization +" - more highlighting is ON by default, except +" - space error highlighting is OFF by default +" +" Optional highlighting can be controlled using these variables. +" +" let python_no_builtin_highlight = 1 +" let python_no_doctest_code_highlight = 1 +" let python_no_doctest_highlight = 1 +" let python_no_exception_highlight = 1 +" let python_no_number_highlight = 1 +" let python_space_error_highlight = 1 +" +" All the options above can be switched on together. +" +" let python_highlight_all = 1 +" +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" NOTE: This file is a copy of the last commit of runtime/syntax/python.vim +" that still supported Python 2. There is support for Python 3, up to 3.5, +" and it was kept in the file as is, because it supports the straddling code +" (Python 2 and 3 compatible) better. +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +" We need nocompatible mode in order to continue lines with backslashes. +" Original setting will be restored. +let s:cpo_save = &cpo +set cpo&vim + +if exists("python_no_doctest_highlight") + let python_no_doctest_code_highlight = 1 +endif + +if exists("python_highlight_all") + if exists("python_no_builtin_highlight") + unlet python_no_builtin_highlight + endif + if exists("python_no_doctest_code_highlight") + unlet python_no_doctest_code_highlight + endif + if exists("python_no_doctest_highlight") + unlet python_no_doctest_highlight + endif + if exists("python_no_exception_highlight") + unlet python_no_exception_highlight + endif + if exists("python_no_number_highlight") + unlet python_no_number_highlight + endif + let python_space_error_highlight = 1 +endif + +" Keep Python keywords in alphabetical order inside groups for easy +" comparison with the table in the 'Python Language Reference' +" https://docs.python.org/2/reference/lexical_analysis.html#keywords, +" https://docs.python.org/3/reference/lexical_analysis.html#keywords. +" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt. +" Exceptions come last at the end of each group (class and def below). +" +" Keywords 'with' and 'as' are new in Python 2.6 +" (use 'from __future__ import with_statement' in Python 2.5). +" +" Some compromises had to be made to support both Python 3 and 2. +" We include Python 3 features, but when a definition is duplicated, +" the last definition takes precedence. +" +" - 'False', 'None', and 'True' are keywords in Python 3 but they are +" built-ins in 2 and will be highlighted as built-ins below. +" - 'exec' is a built-in in Python 3 and will be highlighted as +" built-in below. +" - 'nonlocal' is a keyword in Python 3 and will be highlighted. +" - 'print' is a built-in in Python 3 and will be highlighted as +" built-in below (use 'from __future__ import print_function' in 2) +" - async and await were added in Python 3.5 and are soft keywords. +" +syn keyword pythonStatement False None True +syn keyword pythonStatement as assert break continue del exec global +syn keyword pythonStatement lambda nonlocal pass print return with yield +syn keyword pythonStatement class def nextgroup=pythonFunction skipwhite +syn keyword pythonConditional elif else if +syn keyword pythonRepeat for while +syn keyword pythonOperator and in is not or +syn keyword pythonException except finally raise try +syn keyword pythonInclude from import +syn keyword pythonAsync async await + +" Decorators (new in Python 2.4) +" A dot must be allowed because of @MyClass.myfunc decorators. +syn match pythonDecorator "@" display contained +syn match pythonDecoratorName "@\s*\h\%(\w\|\.\)*" display contains=pythonDecorator + +" Python 3.5 introduced the use of the same symbol for matrix multiplication: +" https://www.python.org/dev/peps/pep-0465/. We now have to exclude the +" symbol from highlighting when used in that context. +" Single line multiplication. +syn match pythonMatrixMultiply + \ "\%(\w\|[])]\)\s*@" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent +" Multiplication continued on the next line after backslash. +syn match pythonMatrixMultiply + \ "[^\\]\\\s*\n\%(\s*\.\.\.\s\)\=\s\+@" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent +" Multiplication in a parenthesized expression over multiple lines with @ at +" the start of each continued line; very similar to decorators and complex. +syn match pythonMatrixMultiply + \ "^\s*\%(\%(>>>\|\.\.\.\)\s\+\)\=\zs\%(\h\|\%(\h\|[[(]\).\{-}\%(\w\|[])]\)\)\s*\n\%(\s*\.\.\.\s\)\=\s\+@\%(.\{-}\n\%(\s*\.\.\.\s\)\=\s\+@\)*" + \ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue + \ transparent + +syn match pythonFunction "\h\w*" display contained + +syn match pythonComment "#.*$" contains=pythonTodo,@Spell +syn keyword pythonTodo FIXME NOTE NOTES TODO XXX contained + +" Triple-quoted strings can contain doctests. +syn region pythonString matchgroup=pythonQuotes + \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=pythonEscape,@Spell +syn region pythonString matchgroup=pythonTripleQuotes + \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend + \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell +syn region pythonRawString matchgroup=pythonQuotes + \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1" + \ contains=@Spell +syn region pythonRawString matchgroup=pythonTripleQuotes + \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend + \ contains=pythonSpaceError,pythonDoctest,@Spell + +syn match pythonEscape +\\[abfnrtv'"\\]+ contained +syn match pythonEscape "\\\o\{1,3}" contained +syn match pythonEscape "\\x\x\{2}" contained +syn match pythonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained +" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/ +syn match pythonEscape "\\N{\a\+\%(\s\a\+\)*}" contained +syn match pythonEscape "\\$" + +" It is very important to understand all details before changing the +" regular expressions below or their order. +" The word boundaries are *not* the floating-point number boundaries +" because of a possible leading or trailing decimal point. +" The expressions below ensure that all valid number literals are +" highlighted, and invalid number literals are not. For example, +" +" - a decimal point in '4.' at the end of a line is highlighted, +" - a second dot in 1.0.0 is not highlighted, +" - 08 is not highlighted, +" - 08e0 or 08j are highlighted, +" +" and so on, as specified in the 'Python Language Reference'. +" https://docs.python.org/2/reference/lexical_analysis.html#numeric-literals +" https://docs.python.org/3/reference/lexical_analysis.html#numeric-literals +if !exists("python_no_number_highlight") + " numbers (including longs and complex) + syn match pythonNumber "\<0[oO]\=\o\+[Ll]\=\>" + syn match pythonNumber "\<0[xX]\x\+[Ll]\=\>" + syn match pythonNumber "\<0[bB][01]\+[Ll]\=\>" + syn match pythonNumber "\<\%([1-9]\d*\|0\)[Ll]\=\>" + syn match pythonNumber "\<\d\+[jJ]\>" + syn match pythonNumber "\<\d\+[eE][+-]\=\d\+[jJ]\=\>" + syn match pythonNumber + \ "\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@=" + syn match pythonNumber + \ "\%(^\|\W\)\zs\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>" +endif + +" Group the built-ins in the order in the 'Python Library Reference' for +" easier comparison. +" https://docs.python.org/2/library/constants.html +" https://docs.python.org/3/library/constants.html +" http://docs.python.org/2/library/functions.html +" http://docs.python.org/3/library/functions.html +" http://docs.python.org/2/library/functions.html#non-essential-built-in-functions +" http://docs.python.org/3/library/functions.html#non-essential-built-in-functions +" Python built-in functions are in alphabetical order. +if !exists("python_no_builtin_highlight") + " built-in constants + " 'False', 'True', and 'None' are also reserved words in Python 3 + syn keyword pythonBuiltin False True None + syn keyword pythonBuiltin NotImplemented Ellipsis __debug__ + " built-in functions + syn keyword pythonBuiltin abs all any bin bool bytearray callable chr + syn keyword pythonBuiltin classmethod compile complex delattr dict dir + syn keyword pythonBuiltin divmod enumerate eval filter float format + syn keyword pythonBuiltin frozenset getattr globals hasattr hash + syn keyword pythonBuiltin help hex id input int isinstance + syn keyword pythonBuiltin issubclass iter len list locals map max + syn keyword pythonBuiltin memoryview min next object oct open ord pow + syn keyword pythonBuiltin print property range repr reversed round set + syn keyword pythonBuiltin setattr slice sorted staticmethod str + syn keyword pythonBuiltin sum super tuple type vars zip __import__ + " Python 2 only + syn keyword pythonBuiltin basestring cmp execfile file + syn keyword pythonBuiltin long raw_input reduce reload unichr + syn keyword pythonBuiltin unicode xrange + " Python 3 only + syn keyword pythonBuiltin ascii bytes exec + " non-essential built-in functions; Python 2 only + syn keyword pythonBuiltin apply buffer coerce intern + " avoid highlighting attributes as builtins + syn match pythonAttribute /\.\h\w*/hs=s+1 + \ contains=ALLBUT,pythonBuiltin,pythonFunction,pythonAsync + \ transparent +endif + +" From the 'Python Library Reference' class hierarchy at the bottom. +" http://docs.python.org/2/library/exceptions.html +" http://docs.python.org/3/library/exceptions.html +if !exists("python_no_exception_highlight") + " builtin base exceptions (used mostly as base classes for other exceptions) + syn keyword pythonExceptions BaseException Exception + syn keyword pythonExceptions ArithmeticError BufferError + syn keyword pythonExceptions LookupError + " builtin base exceptions removed in Python 3 + syn keyword pythonExceptions EnvironmentError StandardError + " builtin exceptions (actually raised) + syn keyword pythonExceptions AssertionError AttributeError + syn keyword pythonExceptions EOFError FloatingPointError GeneratorExit + syn keyword pythonExceptions ImportError IndentationError + syn keyword pythonExceptions IndexError KeyError KeyboardInterrupt + syn keyword pythonExceptions MemoryError NameError NotImplementedError + syn keyword pythonExceptions OSError OverflowError ReferenceError + syn keyword pythonExceptions RuntimeError StopIteration SyntaxError + syn keyword pythonExceptions SystemError SystemExit TabError TypeError + syn keyword pythonExceptions UnboundLocalError UnicodeError + syn keyword pythonExceptions UnicodeDecodeError UnicodeEncodeError + syn keyword pythonExceptions UnicodeTranslateError ValueError + syn keyword pythonExceptions ZeroDivisionError + " builtin OS exceptions in Python 3 + syn keyword pythonExceptions BlockingIOError BrokenPipeError + syn keyword pythonExceptions ChildProcessError ConnectionAbortedError + syn keyword pythonExceptions ConnectionError ConnectionRefusedError + syn keyword pythonExceptions ConnectionResetError FileExistsError + syn keyword pythonExceptions FileNotFoundError InterruptedError + syn keyword pythonExceptions IsADirectoryError NotADirectoryError + syn keyword pythonExceptions PermissionError ProcessLookupError + syn keyword pythonExceptions RecursionError StopAsyncIteration + syn keyword pythonExceptions TimeoutError + " builtin exceptions deprecated/removed in Python 3 + syn keyword pythonExceptions IOError VMSError WindowsError + " builtin warnings + syn keyword pythonExceptions BytesWarning DeprecationWarning FutureWarning + syn keyword pythonExceptions ImportWarning PendingDeprecationWarning + syn keyword pythonExceptions RuntimeWarning SyntaxWarning UnicodeWarning + syn keyword pythonExceptions UserWarning Warning + " builtin warnings in Python 3 + syn keyword pythonExceptions ResourceWarning +endif + +if exists("python_space_error_highlight") + " trailing whitespace + syn match pythonSpaceError display excludenl "\s\+$" + " mixed tabs and spaces + syn match pythonSpaceError display " \+\t" + syn match pythonSpaceError display "\t\+ " +endif + +" Do not spell doctests inside strings. +" Notice that the end of a string, either ''', or """, will end the contained +" doctest too. Thus, we do *not* need to have it as an end pattern. +if !exists("python_no_doctest_highlight") + if !exists("python_no_doctest_code_highlight") + syn region pythonDoctest + \ start="^\s*>>>\s" end="^\s*$" + \ contained contains=ALLBUT,pythonDoctest,pythonFunction,@Spell + syn region pythonDoctestValue + \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$" + \ contained + else + syn region pythonDoctest + \ start="^\s*>>>" end="^\s*$" + \ contained contains=@NoSpell + endif +endif + +" Sync at the beginning of class, function, or method definition. +syn sync match pythonSync grouphere NONE "^\%(def\|class\)\s\+\h\w*\s*[(:]" + +" The default highlight links. Can be overridden later. +hi def link pythonStatement Statement +hi def link pythonConditional Conditional +hi def link pythonRepeat Repeat +hi def link pythonOperator Operator +hi def link pythonException Exception +hi def link pythonInclude Include +hi def link pythonAsync Statement +hi def link pythonDecorator Define +hi def link pythonDecoratorName Function +hi def link pythonFunction Function +hi def link pythonComment Comment +hi def link pythonTodo Todo +hi def link pythonString String +hi def link pythonRawString String +hi def link pythonQuotes String +hi def link pythonTripleQuotes pythonQuotes +hi def link pythonEscape Special +if !exists("python_no_number_highlight") + hi def link pythonNumber Number +endif +if !exists("python_no_builtin_highlight") + hi def link pythonBuiltin Function +endif +if !exists("python_no_exception_highlight") + hi def link pythonExceptions Structure +endif +if exists("python_space_error_highlight") + hi def link pythonSpaceError Error +endif +if !exists("python_no_doctest_highlight") + hi def link pythonDoctest Special + hi def link pythonDoctestValue Define +endif + +let b:current_syntax = "python" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/qb64.vim b/runtime/syntax/qb64.vim new file mode 100644 index 0000000..a777e14 --- /dev/null +++ b/runtime/syntax/qb64.vim @@ -0,0 +1,409 @@ +" Vim syntax file +" Language: QB64 +" Maintainer: Doug Kearns +" Last Change: 2022 Jan 21 + +" Prelude {{{1 +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" syn iskeyword set after sourcing of basic.vim + +syn case ignore + +let s:prefix = search('\c^\s*$NOPREFIX\>', 'n') ? '_\=' : '_' + +" Statements {{{1 + +let s:statements =<< trim EOL " {{{2 + acceptfiledrop + allowfullscreen + assert + console + consolecursor + consolefont + consoletitle + continue + copypalette + define + delay + depthbuffer + displayorder + dontblend + echo + exit\s\+\%(select\|case\) + finishdrop + freefont + freeimage + icon + keyclear + limit + maptriangle + memcopy + memfill + memfree + memput + mousehide + mousemove + mouseshow + printimage + printstring + putimage + screenclick + screenhide + screenmove + screenprint + screenshow + setalpha + sndbal + sndclose + sndlimit + sndloop + sndpause + sndplay + sndplaycopy + sndplayfile + sndraw + sndrawdone + sndsetpos + sndstop + sndvol + title +EOL +" }}} + +for s in s:statements + exe 'syn match qb64Statement "\<' .. s:prefix .. s .. '\>" contained contains=qb64Underscore' +endfor + +" Functions {{{1 + +let s:functions =<< trim EOL " {{{2 + acos + acosh + alpha + alpha32 + arccot + arccsc + arcsec + asin + asinh + atan2 + atanh + axis + backgroundcolor + blue + blue32 + button + buttonchange + ceil + cinp + commandcount + connected + connectionaddress + connectionaddress$ + consoleinput + copyimage + cot + coth + cosh + csc + csch + cv + cwd$ + d2g + d2r + defaultcolor + deflate$ + desktopheight + desktopwidth + device$ + deviceinput + devices + dir$ + direxists + droppedfile + droppedfile$ + errorline + errormessage$ + exit + fileexists + fontheight + fontwidth + freetimer + g2d + g2r + green + green32 + height + hypot + inclerrorfile$ + inclerrorline + inflate$ + instrrev + keyhit + keydown + lastaxis + lastbutton + lastwheel + loadfont + loadimage + mem + memelement + memexists + memimage + memnew + memsound + mk$ + mousebutton + mouseinput + mousemovementx + mousemovementy + mousepipeopen + mousewheel + mousex + mousey + newimage + offset + openclient + os$ + pi + pixelsize + printwidth + r2d + r2g + red + red32 + readbit + resetbit + resizeheight + resizewidth + rgb + rgb32 + rgba + rgba32 + round + sec + sech + screenexists + screenimage + screenx + screeny + setbit + shellhide + shl + shr + sinh + sndcopy + sndgetpos + sndlen + sndopen + sndopenraw + sndpaused + sndplaying + sndrate + sndrawlen + startdir$ + strcmp + stricmp + tanh + title$ + togglebit + totaldroppedfiles + trim$ + wheel + width + windowhandle + windowhasfocus +EOL +" }}} + +for f in s:functions + exe 'syn match qb64Function "\<' .. s:prefix .. f .. '\>" contains=qb64Underscore' +endfor + +" Functions and statements (same name) {{{1 + +let s:common =<< trim EOL " {{{2 + autodisplay + blend + blink + capslock + clearcolor + clipboard$ + clipboardimage + controlchr + dest + display + font + fullscreen + mapunicode + memget + numlock + palettecolor + printmode + resize + screenicon + scrolllock + source +EOL +" }}} + +for c in s:common + exe 'syn match qb64Statement "\<' .. s:prefix .. c .. '\>" contains=qb64Underscore contained' + exe 'syn match qb64Function "\<' .. s:prefix .. c .. '\>" contains=qb64Underscore' +endfor + +" Keywords {{{1 + +" Non-prefixed keywords {{{2 +" TIMER FREE +" _DEPTH_BUFFER LOCK +syn keyword qb64Keyword free lock + +let s:keywords =<< trim EOL " {{{2 + all + anticlockwise + behind + clear + clip + console + dontwait + explicit + explicitarray + fillbackground + hardware + hardware1 + hide + keepbackground + middle + none + off + only + onlybackground + ontop + openconnection + openhost + preserve + seamless + smooth + smoothshrunk + smoothstretched + software + squarepixels + stretch + toggle +EOL +" }}} + +for k in s:keywords + exe 'syn match qb64Keyword "\<' .. s:prefix .. k .. '\>" contains=qb64Underscore' +endfor + +syn match qb64Underscore "\<_" contained conceal transparent + +" Source QuickBASIC syntax {{{1 +runtime! syntax/basic.vim + +" add after the BASIC syntax file is sourced so cluster already exists +syn cluster basicStatements add=qb64Statement,qb64Metacommand,qb64IfMetacommand +syn cluster basicLineIdentifier add=qb64LineLabel +syn cluster qb64NotTop contains=@basicNotTop,qb64Metavariable + +syn iskeyword @,48-57,.,_,!,#,$,%,&,` + +" Unsupported QuickBASIC features {{{1 +" TODO: add linux only missing features +syn keyword qb64Unsupported alias any byval calls cdecl erdev erdev$ fileattr +syn keyword qb64Unsupported fre ioctl ioctl$ pen play setmem signal uevent +syn keyword qb64Unsupported tron troff +syn match qb64Unsupported "\\)\@=" +syn match qb64Unsupported "\<\%(date\|time\)$\ze\s*=" " statements only +syn match qb64Unsupported "\" +syn match qb64Unsupported "\" + +" Types {{{1 +syn keyword qb64Type _BIT _BYTE _FLOAT _INTEGER64 _MEM _OFFSET _UNSIGNED + +" Type suffixes {{{1 +if exists("basic_type_suffixes") + " TODO: handle leading word boundary and __+ prefix + syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=\~\=`\%(\d\+\)\=" + syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=\~\=\%(%\|%%\|&\|&&\|%&\)" + syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=\%(!\|##\|#\)" + syn match qb64TypeSuffix "\%(\a[[:alnum:]._]*\)\@<=$\%(\d\+\)\=" +endif + +" Numbers {{{1 + +" Integers +syn match qb64Number "-\=&b[01]\+&\>\=" + +syn match qb64Number "-\=\<[01]\~\=`\>" +syn match qb64Number "-\=\<\d\+`\d\+\>" + +syn match qb64Number "-\=\<\d\+\%(%%\|&&\|%&\)\>" +syn match qb64Number "\<\d\+\~\%(%%\|&&\|%&\)\>" + +syn match qb64Number "-\=\<&b[01]\+\%(%%\|&&\|%&\)\>" +syn match qb64Number "\<&b[01]\+\~\%(%%\|&&\|%&\)\>" + +syn match qb64Number "-\=\<&o\=\o\+\%(%%\|&&\|%&\)\>" +syn match qb64Number "\<&o\=\o\+\~\%(%%\|&&\|%&\)\>" + +syn match qb64Number "-\=\<&h\x\+\%(%%\|&&\|%&\)\>" +syn match qb64Number "\<&h\x\+\~\%(%%\|&&\|%&\)\>" + +" Floats +syn match qb64Float "-\=\<\d\+\.\=\d*##\>" +syn match qb64Float "-\=\<\.\d\+##\>" + +" Line numbers and labels {{{1 +syn match qb64LineLabel "\%(_\{2,}\)\=\a[[:alnum:]._]*[[:alnum:]]\ze\s*:" nextgroup=@basicStatements skipwhite contained + +" Metacommands {{{1 +syn match qb64Metacommand contained "$NOPREFIX\>" +syn match qb64Metacommand contained "$ASSERTS\%(:CONSOLE\)\=\>" +syn match qb64Metacommand contained "$CHECKING:\%(ON\|OFF\)\>" +syn match qb64Metacommand contained "$COLOR:\%(0\|32\)\>" +syn match qb64Metacommand contained "$CONSOLE\%(:ONLY\)\=\>" +syn match qb64Metacommand contained "$EXEICON\s*:\s*'[^']\+'" +syn match qb64Metacommand contained "$ERROR\>" +syn match qb64Metacommand contained "$LET\>" +syn match qb64Metacommand contained "$RESIZE:\%(ON\|OFF\|STRETCH\|SMOOTH\)\>" +syn match qb64Metacommand contained "$SCREEN\%(HIDE\|SHOW\)\>" +syn match qb64Metacommand contained "$VERSIONINFO\s*:.*" +syn match qb64Metacommand contained "$VIRTUALKEYBOARD:\%(ON\|OFF\)\>" + +syn region qb64IfMetacommand contained matchgroup=qb64Metacommand start="$\%(IF\|ELSEIF\)\>" end="\" oneline transparent contains=qb64Metavariable +syn match qb64Metacommand contained "$\%(ELSE\|END\s*IF\)\>" + +syn keyword qb64Metavariable contained defined undefined +syn keyword qb64Metavariable contained windows win linux mac maxosx +syn keyword qb64Metavariable contained 32bit 64bit version + +" Default Highlighting {{{1 +hi def link qb64Float basicFloat +hi def link qb64Function Function +hi def link qb64Keyword Keyword +hi def link qb64LineLabel basicLineLabel +hi def link qb64Metacommand PreProc +hi def link qb64Metavariable Identifier +hi def link qb64Number basicNumber +hi def link qb64Statement Statement +hi def link qb64TypeSuffix basicTypeSuffix +hi def link qb64Type Type +hi def link qb64Unsupported Error + +" Postscript {{{1 +let b:current_syntax = "qb64" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: diff --git a/runtime/syntax/qf.vim b/runtime/syntax/qf.vim new file mode 100644 index 0000000..6f2ea6a --- /dev/null +++ b/runtime/syntax/qf.vim @@ -0,0 +1,25 @@ +" Vim syntax file +" Language: Quickfix window +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" A bunch of useful C keywords +syn match qfFileName "^[^|]*" nextgroup=qfSeparator +syn match qfSeparator "|" nextgroup=qfLineNr contained +syn match qfLineNr "[^|]*" contained contains=qfError +syn match qfError "error" contained + +" The default highlighting. +hi def link qfFileName Directory +hi def link qfLineNr LineNr +hi def link qfError Error + +let b:current_syntax = "qf" + +" vim: ts=8 diff --git a/runtime/syntax/qml.vim b/runtime/syntax/qml.vim new file mode 100644 index 0000000..d6f2abe --- /dev/null +++ b/runtime/syntax/qml.vim @@ -0,0 +1,1130 @@ +" Vim syntax file +" Language: QML +" Previous Maintainer: Peter Hoeg +" Maintainer: Chase Knowlden +" Changes: `git log` is your friend +" Last Change: 2023 Aug 16 +" +" This file is bassed on the original work done by Warwick Allison +" whose did about 99% of the work here. + +" Based on javascript syntax (as is QML) + +if exists("b:current_syntax") + finish +endif + +if !exists("main_syntax") + let main_syntax = 'qml' +endif + +" Drop fold if it set but vim doesn't support it. +if !has("folding") + unlet! qml_fold +endif + +syn case ignore + +syn cluster qmlExpr contains=qmlStringD,qmlStringS,qmlStringT,SqmlCharacter,qmlNumber,qmlObjectLiteralType,qmlBoolean,qmlType,qmlJsType,qmlNull,qmlGlobal,qmlFunction,qmlArrowFunction,qmlNullishCoalescing +syn keyword qmlCommentTodo TODO FIXME XXX TBD contained +syn match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo +syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" +syn region qmlComment start="/\*" end="\*/" contains=@Spell,qmlCommentTodo fold +syn match qmlSpecial "\\\d\d\d\|\\." +syn region qmlStringD start=+"+ skip=+\\\\\|\\"\|\\$+ end=+"+ keepend contains=qmlSpecial,@htmlPreproc,@Spell +syn region qmlStringS start=+'+ skip=+\\\\\|\\'\|\\$+ end=+'+ keepend contains=qmlSpecial,@htmlPreproc,@Spell +syn region qmlStringT start=+`+ skip=+\\\\\|\\`\|\\$+ end=+`+ keepend contains=qmlTemplateExpr,qmlSpecial,@htmlPreproc,@Spell + +syntax region qmlTemplateExpr contained matchgroup=qmlBraces start=+${+ end=+}+ keepend contains=@qmlExpr + +syn match qmlCharacter "'\\.'" +syn match qmlNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" +syn region qmlRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gi]\{0,2\}\s*$+ end=+/[gi]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline +syn match qmlObjectLiteralType "[A-Za-z][_A-Za-z0-9]*\s*\({\)\@=" +syn region qmlTernaryColon start="?" end=":" contains=@qmlExpr,qmlBraces,qmlParens,qmlLineComment +syn match qmlBindingProperty "\<[A-Za-z][_A-Za-z.0-9]*\s*:" +syn match qmlNullishCoalescing "??" + +syn keyword qmlConditional if else switch +syn keyword qmlRepeat while for do in +syn keyword qmlBranch break continue +syn keyword qmlOperator new delete instanceof typeof +syn keyword qmlJsType Array Boolean Date Function Number Object String RegExp +syn keyword qmlType action alias bool color date double enumeration font int list point real rect size string time url variant vector2d vector3d vector4d coordinate geocircle geopath geopolygon georectangle geoshape matrix4x4 palette quaternion +syn keyword qmlStatement return with +syn keyword qmlBoolean true false +syn keyword qmlNull null undefined +syn keyword qmlIdentifier arguments this var let const +syn keyword qmlLabel case default +syn keyword qmlException try catch finally throw +syn keyword qmlMessage alert confirm prompt status +syn keyword qmlGlobal self +syn keyword qmlDeclaration property signal component readonly required +syn keyword qmlReserved abstract boolean byte char class debugger enum export extends final float goto implements import interface long native package pragma private protected public short static super synchronized throws transient volatile + +syn case match + +" List extracted in alphabatical order from: https://doc.qt.io/qt-5/qmltypes.html +" Qt v5.15.1 + +" Begin Literal Types {{{ + +syntax keyword qmlObjectLiteralType Abstract3DSeries +syntax keyword qmlObjectLiteralType AbstractActionInput +syntax keyword qmlObjectLiteralType AbstractAnimation +syntax keyword qmlObjectLiteralType AbstractAxis +syntax keyword qmlObjectLiteralType AbstractAxis3D +syntax keyword qmlObjectLiteralType AbstractAxisInput +syntax keyword qmlObjectLiteralType AbstractBarSeries +syntax keyword qmlObjectLiteralType AbstractButton +syntax keyword qmlObjectLiteralType AbstractClipAnimator +syntax keyword qmlObjectLiteralType AbstractClipBlendNode +syntax keyword qmlObjectLiteralType AbstractDataProxy +syntax keyword qmlObjectLiteralType AbstractGraph3D +syntax keyword qmlObjectLiteralType AbstractInputHandler3D +syntax keyword qmlObjectLiteralType AbstractPhysicalDevice +syntax keyword qmlObjectLiteralType AbstractRayCaster +syntax keyword qmlObjectLiteralType AbstractSeries +syntax keyword qmlObjectLiteralType AbstractSkeleton +syntax keyword qmlObjectLiteralType AbstractTexture +syntax keyword qmlObjectLiteralType AbstractTextureImage +syntax keyword qmlObjectLiteralType Accelerometer +syntax keyword qmlObjectLiteralType AccelerometerReading +syntax keyword qmlObjectLiteralType Accessible +syntax keyword qmlObjectLiteralType Action +syntax keyword qmlObjectLiteralType ActionGroup +syntax keyword qmlObjectLiteralType ActionInput +syntax keyword qmlObjectLiteralType AdditiveClipBlend +syntax keyword qmlObjectLiteralType AdditiveColorGradient +syntax keyword qmlObjectLiteralType Address +syntax keyword qmlObjectLiteralType Affector +syntax keyword qmlObjectLiteralType Age +syntax keyword qmlObjectLiteralType AlphaCoverage +syntax keyword qmlObjectLiteralType AlphaTest +syntax keyword qmlObjectLiteralType Altimeter +syntax keyword qmlObjectLiteralType AltimeterReading +syntax keyword qmlObjectLiteralType AluminumAnodizedEmissiveMaterial +syntax keyword qmlObjectLiteralType AluminumAnodizedMaterial +syntax keyword qmlObjectLiteralType AluminumBrushedMaterial +syntax keyword qmlObjectLiteralType AluminumEmissiveMaterial +syntax keyword qmlObjectLiteralType AluminumMaterial +syntax keyword qmlObjectLiteralType AmbientLightReading +syntax keyword qmlObjectLiteralType AmbientLightSensor +syntax keyword qmlObjectLiteralType AmbientTemperatureReading +syntax keyword qmlObjectLiteralType AmbientTemperatureSensor +syntax keyword qmlObjectLiteralType AnalogAxisInput +syntax keyword qmlObjectLiteralType AnchorAnimation +syntax keyword qmlObjectLiteralType AnchorChanges +syntax keyword qmlObjectLiteralType AngleDirection +syntax keyword qmlObjectLiteralType AnimatedImage +syntax keyword qmlObjectLiteralType AnimatedSprite +syntax keyword qmlObjectLiteralType Animation +syntax keyword qmlObjectLiteralType AnimationController +syntax keyword qmlObjectLiteralType AnimationGroup +syntax keyword qmlObjectLiteralType Animator +syntax keyword qmlObjectLiteralType ApplicationWindow +syntax keyword qmlObjectLiteralType ApplicationWindowStyle +syntax keyword qmlObjectLiteralType AreaLight +syntax keyword qmlObjectLiteralType AreaSeries +syntax keyword qmlObjectLiteralType Armature +syntax keyword qmlObjectLiteralType AttenuationModelInverse +syntax keyword qmlObjectLiteralType AttenuationModelLinear +syntax keyword qmlObjectLiteralType Attractor +syntax keyword qmlObjectLiteralType Attribute +syntax keyword qmlObjectLiteralType Audio +syntax keyword qmlObjectLiteralType AudioCategory +syntax keyword qmlObjectLiteralType AudioEngine +syntax keyword qmlObjectLiteralType AudioListener +syntax keyword qmlObjectLiteralType AudioSample +syntax keyword qmlObjectLiteralType AuthenticationDialogRequest +syntax keyword qmlObjectLiteralType Axis +syntax keyword qmlObjectLiteralType AxisAccumulator +syntax keyword qmlObjectLiteralType AxisHelper +syntax keyword qmlObjectLiteralType AxisSetting + +syntax keyword qmlObjectLiteralType BackspaceKey +syntax keyword qmlObjectLiteralType Bar3DSeries +syntax keyword qmlObjectLiteralType BarCategoryAxis +syntax keyword qmlObjectLiteralType BarDataProxy +syntax keyword qmlObjectLiteralType Bars3D +syntax keyword qmlObjectLiteralType BarSeries +syntax keyword qmlObjectLiteralType BarSet +syntax keyword qmlObjectLiteralType BaseKey +syntax keyword qmlObjectLiteralType BasicTableView +syntax keyword qmlObjectLiteralType Behavior +syntax keyword qmlObjectLiteralType Binding +syntax keyword qmlObjectLiteralType Blend +syntax keyword qmlObjectLiteralType BlendedClipAnimator +syntax keyword qmlObjectLiteralType BlendEquation +syntax keyword qmlObjectLiteralType BlendEquationArguments +syntax keyword qmlObjectLiteralType Blending +syntax keyword qmlObjectLiteralType BlitFramebuffer +syntax keyword qmlObjectLiteralType BluetoothDiscoveryModel +syntax keyword qmlObjectLiteralType BluetoothService +syntax keyword qmlObjectLiteralType BluetoothSocket +syntax keyword qmlObjectLiteralType Blur +syntax keyword qmlObjectLiteralType bool +syntax keyword qmlObjectLiteralType BorderImage +syntax keyword qmlObjectLiteralType BorderImageMesh +syntax keyword qmlObjectLiteralType BoundaryRule +syntax keyword qmlObjectLiteralType Bounds +syntax keyword qmlObjectLiteralType BoxPlotSeries +syntax keyword qmlObjectLiteralType BoxSet +syntax keyword qmlObjectLiteralType BrightnessContrast +syntax keyword qmlObjectLiteralType BrushStrokes +syntax keyword qmlObjectLiteralType Buffer +syntax keyword qmlObjectLiteralType BufferBlit +syntax keyword qmlObjectLiteralType BufferCapture +syntax keyword qmlObjectLiteralType BufferInput +syntax keyword qmlObjectLiteralType BusyIndicator +syntax keyword qmlObjectLiteralType BusyIndicatorStyle +syntax keyword qmlObjectLiteralType Button +syntax keyword qmlObjectLiteralType ButtonAxisInput +syntax keyword qmlObjectLiteralType ButtonGroup +syntax keyword qmlObjectLiteralType ButtonStyle + +syntax keyword qmlObjectLiteralType Calendar +syntax keyword qmlObjectLiteralType CalendarModel +syntax keyword qmlObjectLiteralType CalendarStyle +syntax keyword qmlObjectLiteralType Camera +syntax keyword qmlObjectLiteralType Camera3D +syntax keyword qmlObjectLiteralType CameraCapabilities +syntax keyword qmlObjectLiteralType CameraCapture +syntax keyword qmlObjectLiteralType CameraExposure +syntax keyword qmlObjectLiteralType CameraFlash +syntax keyword qmlObjectLiteralType CameraFocus +syntax keyword qmlObjectLiteralType CameraImageProcessing +syntax keyword qmlObjectLiteralType CameraLens +syntax keyword qmlObjectLiteralType CameraRecorder +syntax keyword qmlObjectLiteralType CameraSelector +syntax keyword qmlObjectLiteralType CandlestickSeries +syntax keyword qmlObjectLiteralType CandlestickSet +syntax keyword qmlObjectLiteralType Canvas +syntax keyword qmlObjectLiteralType CanvasGradient +syntax keyword qmlObjectLiteralType CanvasImageData +syntax keyword qmlObjectLiteralType CanvasPixelArray +syntax keyword qmlObjectLiteralType Category +syntax keyword qmlObjectLiteralType CategoryAxis +syntax keyword qmlObjectLiteralType CategoryAxis3D +syntax keyword qmlObjectLiteralType CategoryModel +syntax keyword qmlObjectLiteralType CategoryRange +syntax keyword qmlObjectLiteralType ChangeLanguageKey +syntax keyword qmlObjectLiteralType ChartView +syntax keyword qmlObjectLiteralType CheckBox +syntax keyword qmlObjectLiteralType CheckBoxStyle +syntax keyword qmlObjectLiteralType CheckDelegate +syntax keyword qmlObjectLiteralType ChromaticAberration +syntax keyword qmlObjectLiteralType CircularGauge +syntax keyword qmlObjectLiteralType CircularGaugeStyle +syntax keyword qmlObjectLiteralType ClearBuffers +syntax keyword qmlObjectLiteralType ClipAnimator +syntax keyword qmlObjectLiteralType ClipBlendValue +syntax keyword qmlObjectLiteralType ClipPlane +syntax keyword qmlObjectLiteralType CloseEvent +syntax keyword qmlObjectLiteralType color +syntax keyword qmlObjectLiteralType ColorAnimation +syntax keyword qmlObjectLiteralType ColorDialog +syntax keyword qmlObjectLiteralType ColorDialogRequest +syntax keyword qmlObjectLiteralType ColorGradient +syntax keyword qmlObjectLiteralType ColorGradientStop +syntax keyword qmlObjectLiteralType Colorize +syntax keyword qmlObjectLiteralType ColorMask +syntax keyword qmlObjectLiteralType ColorMaster +syntax keyword qmlObjectLiteralType ColorOverlay +syntax keyword qmlObjectLiteralType Column +syntax keyword qmlObjectLiteralType ColumnLayout +syntax keyword qmlObjectLiteralType ComboBox +syntax keyword qmlObjectLiteralType ComboBoxStyle +syntax keyword qmlObjectLiteralType Command +syntax keyword qmlObjectLiteralType Compass +syntax keyword qmlObjectLiteralType CompassReading +syntax keyword qmlObjectLiteralType Component +syntax keyword qmlObjectLiteralType Component3D +syntax keyword qmlObjectLiteralType ComputeCommand +syntax keyword qmlObjectLiteralType ConeGeometry +syntax keyword qmlObjectLiteralType ConeMesh +syntax keyword qmlObjectLiteralType ConicalGradient +syntax keyword qmlObjectLiteralType Connections +syntax keyword qmlObjectLiteralType ContactDetail +syntax keyword qmlObjectLiteralType ContactDetails +syntax keyword qmlObjectLiteralType Container +syntax keyword qmlObjectLiteralType Context2D +syntax keyword qmlObjectLiteralType ContextMenuRequest +syntax keyword qmlObjectLiteralType Control +syntax keyword qmlObjectLiteralType coordinate +syntax keyword qmlObjectLiteralType CoordinateAnimation +syntax keyword qmlObjectLiteralType CopperMaterial +syntax keyword qmlObjectLiteralType CuboidGeometry +syntax keyword qmlObjectLiteralType CuboidMesh +syntax keyword qmlObjectLiteralType CullFace +syntax keyword qmlObjectLiteralType CullMode +syntax keyword qmlObjectLiteralType CumulativeDirection +syntax keyword qmlObjectLiteralType Custom3DItem +syntax keyword qmlObjectLiteralType Custom3DLabel +syntax keyword qmlObjectLiteralType Custom3DVolume +syntax keyword qmlObjectLiteralType CustomCamera +syntax keyword qmlObjectLiteralType CustomMaterial +syntax keyword qmlObjectLiteralType CustomParticle +syntax keyword qmlObjectLiteralType CylinderGeometry +syntax keyword qmlObjectLiteralType CylinderMesh + +syntax keyword qmlObjectLiteralType Date +syntax keyword qmlObjectLiteralType date +syntax keyword qmlObjectLiteralType DateTimeAxis +syntax keyword qmlObjectLiteralType DayOfWeekRow +syntax keyword qmlObjectLiteralType DebugView +syntax keyword qmlObjectLiteralType DefaultMaterial +syntax keyword qmlObjectLiteralType DelayButton +syntax keyword qmlObjectLiteralType DelayButtonStyle +syntax keyword qmlObjectLiteralType DelegateChoice +syntax keyword qmlObjectLiteralType DelegateChooser +syntax keyword qmlObjectLiteralType DelegateModel +syntax keyword qmlObjectLiteralType DelegateModelGroup +syntax keyword qmlObjectLiteralType DepthInput +syntax keyword qmlObjectLiteralType DepthOfFieldHQBlur +syntax keyword qmlObjectLiteralType DepthRange +syntax keyword qmlObjectLiteralType DepthTest +syntax keyword qmlObjectLiteralType Desaturate +syntax keyword qmlObjectLiteralType Dial +syntax keyword qmlObjectLiteralType Dialog +syntax keyword qmlObjectLiteralType DialogButtonBox +syntax keyword qmlObjectLiteralType DialStyle +syntax keyword qmlObjectLiteralType DiffuseMapMaterial +syntax keyword qmlObjectLiteralType DiffuseSpecularMapMaterial +syntax keyword qmlObjectLiteralType DiffuseSpecularMaterial +syntax keyword qmlObjectLiteralType Direction +syntax keyword qmlObjectLiteralType DirectionalBlur +syntax keyword qmlObjectLiteralType DirectionalLight +syntax keyword qmlObjectLiteralType DispatchCompute +syntax keyword qmlObjectLiteralType Displace +syntax keyword qmlObjectLiteralType DistanceReading +syntax keyword qmlObjectLiteralType DistanceSensor +syntax keyword qmlObjectLiteralType DistortionRipple +syntax keyword qmlObjectLiteralType DistortionSphere +syntax keyword qmlObjectLiteralType DistortionSpiral +syntax keyword qmlObjectLiteralType Dithering +syntax keyword qmlObjectLiteralType double +syntax keyword qmlObjectLiteralType DoubleValidator +syntax keyword qmlObjectLiteralType Drag +syntax keyword qmlObjectLiteralType DragEvent +syntax keyword qmlObjectLiteralType DragHandler +syntax keyword qmlObjectLiteralType Drawer +syntax keyword qmlObjectLiteralType DropArea +syntax keyword qmlObjectLiteralType DropShadow +syntax keyword qmlObjectLiteralType DwmFeatures +syntax keyword qmlObjectLiteralType DynamicParameter + +syntax keyword qmlObjectLiteralType EdgeDetect +syntax keyword qmlObjectLiteralType EditorialModel +syntax keyword qmlObjectLiteralType Effect +syntax keyword qmlObjectLiteralType EllipseShape +syntax keyword qmlObjectLiteralType Emboss +syntax keyword qmlObjectLiteralType Emitter +syntax keyword qmlObjectLiteralType EnterKey +syntax keyword qmlObjectLiteralType EnterKeyAction +syntax keyword qmlObjectLiteralType Entity +syntax keyword qmlObjectLiteralType EntityLoader +syntax keyword qmlObjectLiteralType enumeration +syntax keyword qmlObjectLiteralType EnvironmentLight +syntax keyword qmlObjectLiteralType EventConnection +syntax keyword qmlObjectLiteralType EventPoint +syntax keyword qmlObjectLiteralType EventTouchPoint +syntax keyword qmlObjectLiteralType ExclusiveGroup +syntax keyword qmlObjectLiteralType ExtendedAttributes +syntax keyword qmlObjectLiteralType ExtrudedTextGeometry +syntax keyword qmlObjectLiteralType ExtrudedTextMesh + +syntax keyword qmlObjectLiteralType FastBlur +syntax keyword qmlObjectLiteralType FileDialog +syntax keyword qmlObjectLiteralType FileDialogRequest +syntax keyword qmlObjectLiteralType FillerKey +syntax keyword qmlObjectLiteralType FilterKey +syntax keyword qmlObjectLiteralType FinalState +syntax keyword qmlObjectLiteralType FindTextResult +syntax keyword qmlObjectLiteralType FirstPersonCameraController +syntax keyword qmlObjectLiteralType Flickable +syntax keyword qmlObjectLiteralType Flip +syntax keyword qmlObjectLiteralType Flipable +syntax keyword qmlObjectLiteralType Flow +syntax keyword qmlObjectLiteralType FocusScope +syntax keyword qmlObjectLiteralType FolderDialog +syntax keyword qmlObjectLiteralType FolderListModel +syntax keyword qmlObjectLiteralType font +syntax keyword qmlObjectLiteralType FontDialog +syntax keyword qmlObjectLiteralType FontLoader +syntax keyword qmlObjectLiteralType FontMetrics +syntax keyword qmlObjectLiteralType FormValidationMessageRequest +syntax keyword qmlObjectLiteralType ForwardRenderer +syntax keyword qmlObjectLiteralType Frame +syntax keyword qmlObjectLiteralType FrameAction +syntax keyword qmlObjectLiteralType FrameGraphNode +syntax keyword qmlObjectLiteralType Friction +syntax keyword qmlObjectLiteralType FrontFace +syntax keyword qmlObjectLiteralType FrostedGlassMaterial +syntax keyword qmlObjectLiteralType FrostedGlassSinglePassMaterial +syntax keyword qmlObjectLiteralType FrustumCamera +syntax keyword qmlObjectLiteralType FrustumCulling +syntax keyword qmlObjectLiteralType FullScreenRequest +syntax keyword qmlObjectLiteralType Fxaa + +syntax keyword qmlObjectLiteralType Gamepad +syntax keyword qmlObjectLiteralType GamepadManager +syntax keyword qmlObjectLiteralType GammaAdjust +syntax keyword qmlObjectLiteralType Gauge +syntax keyword qmlObjectLiteralType GaugeStyle +syntax keyword qmlObjectLiteralType GaussianBlur +syntax keyword qmlObjectLiteralType geocircle +syntax keyword qmlObjectLiteralType GeocodeModel +syntax keyword qmlObjectLiteralType Geometry +syntax keyword qmlObjectLiteralType GeometryRenderer +syntax keyword qmlObjectLiteralType geopath +syntax keyword qmlObjectLiteralType geopolygon +syntax keyword qmlObjectLiteralType georectangle +syntax keyword qmlObjectLiteralType geoshape +syntax keyword qmlObjectLiteralType GestureEvent +syntax keyword qmlObjectLiteralType GlassMaterial +syntax keyword qmlObjectLiteralType GlassRefractiveMaterial +syntax keyword qmlObjectLiteralType Glow +syntax keyword qmlObjectLiteralType GoochMaterial +syntax keyword qmlObjectLiteralType Gradient +syntax keyword qmlObjectLiteralType GradientStop +syntax keyword qmlObjectLiteralType GraphicsApiFilter +syntax keyword qmlObjectLiteralType GraphicsInfo +syntax keyword qmlObjectLiteralType Gravity +syntax keyword qmlObjectLiteralType Grid +syntax keyword qmlObjectLiteralType GridGeometry +syntax keyword qmlObjectLiteralType GridLayout +syntax keyword qmlObjectLiteralType GridMesh +syntax keyword qmlObjectLiteralType GridView +syntax keyword qmlObjectLiteralType GroupBox +syntax keyword qmlObjectLiteralType GroupGoal +syntax keyword qmlObjectLiteralType Gyroscope +syntax keyword qmlObjectLiteralType GyroscopeReading + +syntax keyword qmlObjectLiteralType HandlerPoint +syntax keyword qmlObjectLiteralType HandwritingInputPanel +syntax keyword qmlObjectLiteralType HandwritingModeKey +syntax keyword qmlObjectLiteralType HBarModelMapper +syntax keyword qmlObjectLiteralType HBoxPlotModelMapper +syntax keyword qmlObjectLiteralType HCandlestickModelMapper +syntax keyword qmlObjectLiteralType HDRBloomTonemap +syntax keyword qmlObjectLiteralType HeightMapSurfaceDataProxy +syntax keyword qmlObjectLiteralType HideKeyboardKey +syntax keyword qmlObjectLiteralType HistoryState +syntax keyword qmlObjectLiteralType HolsterReading +syntax keyword qmlObjectLiteralType HolsterSensor +syntax keyword qmlObjectLiteralType HorizontalBarSeries +syntax keyword qmlObjectLiteralType HorizontalHeaderView +syntax keyword qmlObjectLiteralType HorizontalPercentBarSeries +syntax keyword qmlObjectLiteralType HorizontalStackedBarSeries +syntax keyword qmlObjectLiteralType Host +syntax keyword qmlObjectLiteralType HoverHandler +syntax keyword qmlObjectLiteralType HPieModelMapper +syntax keyword qmlObjectLiteralType HueSaturation +syntax keyword qmlObjectLiteralType HumidityReading +syntax keyword qmlObjectLiteralType HumiditySensor +syntax keyword qmlObjectLiteralType HXYModelMapper + +syntax keyword qmlObjectLiteralType Icon +syntax keyword qmlObjectLiteralType IdleInhibitManagerV1 +syntax keyword qmlObjectLiteralType Image +syntax keyword qmlObjectLiteralType ImageModel +syntax keyword qmlObjectLiteralType ImageParticle +syntax keyword qmlObjectLiteralType InnerShadow +syntax keyword qmlObjectLiteralType InputChord +syntax keyword qmlObjectLiteralType InputContext +syntax keyword qmlObjectLiteralType InputEngine +syntax keyword qmlObjectLiteralType InputHandler3D +syntax keyword qmlObjectLiteralType InputMethod +syntax keyword qmlObjectLiteralType InputModeKey +syntax keyword qmlObjectLiteralType InputPanel +syntax keyword qmlObjectLiteralType InputSequence +syntax keyword qmlObjectLiteralType InputSettings +syntax keyword qmlObjectLiteralType Instantiator +syntax keyword qmlObjectLiteralType int +syntax keyword qmlObjectLiteralType IntValidator +syntax keyword qmlObjectLiteralType InvokedServices +syntax keyword qmlObjectLiteralType IRProximityReading +syntax keyword qmlObjectLiteralType IRProximitySensor +syntax keyword qmlObjectLiteralType Item +syntax keyword qmlObjectLiteralType ItemDelegate +syntax keyword qmlObjectLiteralType ItemGrabResult +syntax keyword qmlObjectLiteralType ItemModelBarDataProxy +syntax keyword qmlObjectLiteralType ItemModelScatterDataProxy +syntax keyword qmlObjectLiteralType ItemModelSurfaceDataProxy +syntax keyword qmlObjectLiteralType ItemParticle +syntax keyword qmlObjectLiteralType ItemSelectionModel +syntax keyword qmlObjectLiteralType IviApplication +syntax keyword qmlObjectLiteralType IviSurface + +syntax keyword qmlObjectLiteralType JavaScriptDialogRequest +syntax keyword qmlObjectLiteralType Joint +syntax keyword qmlObjectLiteralType JumpList +syntax keyword qmlObjectLiteralType JumpListCategory +syntax keyword qmlObjectLiteralType JumpListDestination +syntax keyword qmlObjectLiteralType JumpListLink +syntax keyword qmlObjectLiteralType JumpListSeparator + +syntax keyword qmlObjectLiteralType Key +syntax keyword qmlObjectLiteralType KeyboardColumn +syntax keyword qmlObjectLiteralType KeyboardDevice +syntax keyword qmlObjectLiteralType KeyboardHandler +syntax keyword qmlObjectLiteralType KeyboardLayout +syntax keyword qmlObjectLiteralType KeyboardLayoutLoader +syntax keyword qmlObjectLiteralType KeyboardRow +syntax keyword qmlObjectLiteralType KeyboardStyle +syntax keyword qmlObjectLiteralType KeyEvent +syntax keyword qmlObjectLiteralType Keyframe +syntax keyword qmlObjectLiteralType KeyframeAnimation +syntax keyword qmlObjectLiteralType KeyframeGroup +syntax keyword qmlObjectLiteralType KeyIcon +syntax keyword qmlObjectLiteralType KeyNavigation +syntax keyword qmlObjectLiteralType KeyPanel +syntax keyword qmlObjectLiteralType Keys + +syntax keyword qmlObjectLiteralType Label +syntax keyword qmlObjectLiteralType Layer +syntax keyword qmlObjectLiteralType LayerFilter +syntax keyword qmlObjectLiteralType Layout +syntax keyword qmlObjectLiteralType LayoutMirroring +syntax keyword qmlObjectLiteralType Legend +syntax keyword qmlObjectLiteralType LerpClipBlend +syntax keyword qmlObjectLiteralType LevelAdjust +syntax keyword qmlObjectLiteralType LevelOfDetail +syntax keyword qmlObjectLiteralType LevelOfDetailBoundingSphere +syntax keyword qmlObjectLiteralType LevelOfDetailLoader +syntax keyword qmlObjectLiteralType LevelOfDetailSwitch +syntax keyword qmlObjectLiteralType LidReading +syntax keyword qmlObjectLiteralType LidSensor +syntax keyword qmlObjectLiteralType Light +syntax keyword qmlObjectLiteralType Light3D +syntax keyword qmlObjectLiteralType LightReading +syntax keyword qmlObjectLiteralType LightSensor +syntax keyword qmlObjectLiteralType LinearGradient +syntax keyword qmlObjectLiteralType LineSeries +syntax keyword qmlObjectLiteralType LineShape +syntax keyword qmlObjectLiteralType LineWidth +syntax keyword qmlObjectLiteralType list +syntax keyword qmlObjectLiteralType ListElement +syntax keyword qmlObjectLiteralType ListModel +syntax keyword qmlObjectLiteralType ListView +syntax keyword qmlObjectLiteralType Loader +syntax keyword qmlObjectLiteralType Loader3D +syntax keyword qmlObjectLiteralType Locale +syntax keyword qmlObjectLiteralType Location +syntax keyword qmlObjectLiteralType LoggingCategory +syntax keyword qmlObjectLiteralType LogicalDevice +syntax keyword qmlObjectLiteralType LogValueAxis +syntax keyword qmlObjectLiteralType LogValueAxis3DFormatter +syntax keyword qmlObjectLiteralType LottieAnimation + +syntax keyword qmlObjectLiteralType Magnetometer +syntax keyword qmlObjectLiteralType MagnetometerReading +syntax keyword qmlObjectLiteralType Map +syntax keyword qmlObjectLiteralType MapCircle +syntax keyword qmlObjectLiteralType MapCircleObject +syntax keyword qmlObjectLiteralType MapCopyrightNotice +syntax keyword qmlObjectLiteralType MapGestureArea +syntax keyword qmlObjectLiteralType MapIconObject +syntax keyword qmlObjectLiteralType MapItemGroup +syntax keyword qmlObjectLiteralType MapItemView +syntax keyword qmlObjectLiteralType MapObjectView +syntax keyword qmlObjectLiteralType MapParameter +syntax keyword qmlObjectLiteralType MapPinchEvent +syntax keyword qmlObjectLiteralType MapPolygon +syntax keyword qmlObjectLiteralType MapPolygonObject +syntax keyword qmlObjectLiteralType MapPolyline +syntax keyword qmlObjectLiteralType MapPolylineObject +syntax keyword qmlObjectLiteralType MapQuickItem +syntax keyword qmlObjectLiteralType MapRectangle +syntax keyword qmlObjectLiteralType MapRoute +syntax keyword qmlObjectLiteralType MapRouteObject +syntax keyword qmlObjectLiteralType MapType +syntax keyword qmlObjectLiteralType Margins +syntax keyword qmlObjectLiteralType MaskedBlur +syntax keyword qmlObjectLiteralType MaskShape +syntax keyword qmlObjectLiteralType Material +syntax keyword qmlObjectLiteralType Matrix4x4 +syntax keyword qmlObjectLiteralType matrix4x4 +syntax keyword qmlObjectLiteralType MediaPlayer +syntax keyword qmlObjectLiteralType mediaplayer-qml-dynamic +syntax keyword qmlObjectLiteralType MemoryBarrier +syntax keyword qmlObjectLiteralType Menu +syntax keyword qmlObjectLiteralType MenuBar +syntax keyword qmlObjectLiteralType MenuBarItem +syntax keyword qmlObjectLiteralType MenuBarStyle +syntax keyword qmlObjectLiteralType MenuItem +syntax keyword qmlObjectLiteralType MenuItemGroup +syntax keyword qmlObjectLiteralType MenuSeparator +syntax keyword qmlObjectLiteralType MenuStyle +syntax keyword qmlObjectLiteralType Mesh +syntax keyword qmlObjectLiteralType MessageDialog +syntax keyword qmlObjectLiteralType MetalRoughMaterial +syntax keyword qmlObjectLiteralType ModeKey +syntax keyword qmlObjectLiteralType Model +syntax keyword qmlObjectLiteralType MonthGrid +syntax keyword qmlObjectLiteralType MorphingAnimation +syntax keyword qmlObjectLiteralType MorphTarget +syntax keyword qmlObjectLiteralType MotionBlur +syntax keyword qmlObjectLiteralType MouseArea +syntax keyword qmlObjectLiteralType MouseDevice +syntax keyword qmlObjectLiteralType MouseEvent +syntax keyword qmlObjectLiteralType MouseHandler +syntax keyword qmlObjectLiteralType MultiPointHandler +syntax keyword qmlObjectLiteralType MultiPointTouchArea +syntax keyword qmlObjectLiteralType MultiSampleAntiAliasing + +syntax keyword qmlObjectLiteralType Navigator +syntax keyword qmlObjectLiteralType NdefFilter +syntax keyword qmlObjectLiteralType NdefMimeRecord +syntax keyword qmlObjectLiteralType NdefRecord +syntax keyword qmlObjectLiteralType NdefTextRecord +syntax keyword qmlObjectLiteralType NdefUriRecord +syntax keyword qmlObjectLiteralType NearField +syntax keyword qmlObjectLiteralType Node +syntax keyword qmlObjectLiteralType NodeInstantiator +syntax keyword qmlObjectLiteralType NoDepthMask +syntax keyword qmlObjectLiteralType NoDraw +syntax keyword qmlObjectLiteralType NoPicking +syntax keyword qmlObjectLiteralType NormalDiffuseMapAlphaMaterial +syntax keyword qmlObjectLiteralType NormalDiffuseMapMaterial +syntax keyword qmlObjectLiteralType NormalDiffuseSpecularMapMaterial +syntax keyword qmlObjectLiteralType Number +syntax keyword qmlObjectLiteralType NumberAnimation +syntax keyword qmlObjectLiteralType NumberKey + +syntax keyword qmlObjectLiteralType Object3D +syntax keyword qmlObjectLiteralType ObjectModel +syntax keyword qmlObjectLiteralType ObjectPicker +syntax keyword qmlObjectLiteralType OpacityAnimator +syntax keyword qmlObjectLiteralType OpacityMask +syntax keyword qmlObjectLiteralType OpenGLInfo +syntax keyword qmlObjectLiteralType OrbitCameraController +syntax keyword qmlObjectLiteralType OrientationReading +syntax keyword qmlObjectLiteralType OrientationSensor +syntax keyword qmlObjectLiteralType OrthographicCamera +syntax keyword qmlObjectLiteralType Overlay + +syntax keyword qmlObjectLiteralType Package +syntax keyword qmlObjectLiteralType Page +syntax keyword qmlObjectLiteralType PageIndicator +syntax keyword qmlObjectLiteralType palette +syntax keyword qmlObjectLiteralType Pane +syntax keyword qmlObjectLiteralType PaperArtisticMaterial +syntax keyword qmlObjectLiteralType PaperOfficeMaterial +syntax keyword qmlObjectLiteralType ParallelAnimation +syntax keyword qmlObjectLiteralType Parameter +syntax keyword qmlObjectLiteralType ParentAnimation +syntax keyword qmlObjectLiteralType ParentChange +syntax keyword qmlObjectLiteralType Particle +syntax keyword qmlObjectLiteralType ParticleExtruder +syntax keyword qmlObjectLiteralType ParticleGroup +syntax keyword qmlObjectLiteralType ParticlePainter +syntax keyword qmlObjectLiteralType ParticleSystem +syntax keyword qmlObjectLiteralType Pass +syntax keyword qmlObjectLiteralType Path +syntax keyword qmlObjectLiteralType PathAngleArc +syntax keyword qmlObjectLiteralType PathAnimation +syntax keyword qmlObjectLiteralType PathArc +syntax keyword qmlObjectLiteralType PathAttribute +syntax keyword qmlObjectLiteralType PathCubic +syntax keyword qmlObjectLiteralType PathCurve +syntax keyword qmlObjectLiteralType PathElement +syntax keyword qmlObjectLiteralType PathInterpolator +syntax keyword qmlObjectLiteralType PathLine +syntax keyword qmlObjectLiteralType PathMove +syntax keyword qmlObjectLiteralType PathMultiline +syntax keyword qmlObjectLiteralType PathPercent +syntax keyword qmlObjectLiteralType PathPolyline +syntax keyword qmlObjectLiteralType PathQuad +syntax keyword qmlObjectLiteralType PathSvg +syntax keyword qmlObjectLiteralType PathText +syntax keyword qmlObjectLiteralType PathView +syntax keyword qmlObjectLiteralType PauseAnimation +syntax keyword qmlObjectLiteralType PdfDocument +syntax keyword qmlObjectLiteralType PdfLinkModel +syntax keyword qmlObjectLiteralType PdfNavigationStack +syntax keyword qmlObjectLiteralType PdfSearchModel +syntax keyword qmlObjectLiteralType PdfSelection +syntax keyword qmlObjectLiteralType PercentBarSeries +syntax keyword qmlObjectLiteralType PerspectiveCamera +syntax keyword qmlObjectLiteralType PerVertexColorMaterial +syntax keyword qmlObjectLiteralType PhongAlphaMaterial +syntax keyword qmlObjectLiteralType PhongMaterial +syntax keyword qmlObjectLiteralType PickEvent +syntax keyword qmlObjectLiteralType PickingSettings +syntax keyword qmlObjectLiteralType PickLineEvent +syntax keyword qmlObjectLiteralType PickPointEvent +syntax keyword qmlObjectLiteralType PickResult +syntax keyword qmlObjectLiteralType PickTriangleEvent +syntax keyword qmlObjectLiteralType Picture +syntax keyword qmlObjectLiteralType PieMenu +syntax keyword qmlObjectLiteralType PieMenuStyle +syntax keyword qmlObjectLiteralType PieSeries +syntax keyword qmlObjectLiteralType PieSlice +syntax keyword qmlObjectLiteralType PinchArea +syntax keyword qmlObjectLiteralType PinchEvent +syntax keyword qmlObjectLiteralType PinchHandler +syntax keyword qmlObjectLiteralType Place +syntax keyword qmlObjectLiteralType PlaceAttribute +syntax keyword qmlObjectLiteralType PlaceSearchModel +syntax keyword qmlObjectLiteralType PlaceSearchSuggestionModel +syntax keyword qmlObjectLiteralType PlaneGeometry +syntax keyword qmlObjectLiteralType PlaneMesh +syntax keyword qmlObjectLiteralType PlasticStructuredRedEmissiveMaterial +syntax keyword qmlObjectLiteralType PlasticStructuredRedMaterial +syntax keyword qmlObjectLiteralType Playlist +syntax keyword qmlObjectLiteralType PlaylistItem +syntax keyword qmlObjectLiteralType PlayVariation +syntax keyword qmlObjectLiteralType Plugin +syntax keyword qmlObjectLiteralType PluginParameter +syntax keyword qmlObjectLiteralType point +syntax keyword qmlObjectLiteralType PointDirection +syntax keyword qmlObjectLiteralType PointerDevice +syntax keyword qmlObjectLiteralType PointerDeviceHandler +syntax keyword qmlObjectLiteralType PointerEvent +syntax keyword qmlObjectLiteralType PointerHandler +syntax keyword qmlObjectLiteralType PointerScrollEvent +syntax keyword qmlObjectLiteralType PointHandler +syntax keyword qmlObjectLiteralType PointLight +syntax keyword qmlObjectLiteralType PointSize +syntax keyword qmlObjectLiteralType PolarChartView +syntax keyword qmlObjectLiteralType PolygonOffset +syntax keyword qmlObjectLiteralType Popup +syntax keyword qmlObjectLiteralType Position +syntax keyword qmlObjectLiteralType Positioner +syntax keyword qmlObjectLiteralType PositionSource +syntax keyword qmlObjectLiteralType PressureReading +syntax keyword qmlObjectLiteralType PressureSensor +syntax keyword qmlObjectLiteralType PrincipledMaterial +syntax keyword qmlObjectLiteralType Product +syntax keyword qmlObjectLiteralType ProgressBar +syntax keyword qmlObjectLiteralType ProgressBarStyle +syntax keyword qmlObjectLiteralType PropertyAction +syntax keyword qmlObjectLiteralType PropertyAnimation +syntax keyword qmlObjectLiteralType PropertyChanges +syntax keyword qmlObjectLiteralType ProximityFilter +syntax keyword qmlObjectLiteralType ProximityReading +syntax keyword qmlObjectLiteralType ProximitySensor + +syntax keyword qmlObjectLiteralType QAbstractState +syntax keyword qmlObjectLiteralType QAbstractTransition +syntax keyword qmlObjectLiteralType QmlSensors +syntax keyword qmlObjectLiteralType QSignalTransition +syntax keyword qmlObjectLiteralType Qt +syntax keyword qmlObjectLiteralType QtMultimedia +syntax keyword qmlObjectLiteralType QtObject +syntax keyword qmlObjectLiteralType QtPositioning +syntax keyword qmlObjectLiteralType QtRemoteObjects +syntax keyword qmlObjectLiteralType quaternion +syntax keyword qmlObjectLiteralType QuaternionAnimation +syntax keyword qmlObjectLiteralType QuotaRequest + +syntax keyword qmlObjectLiteralType RadialBlur +syntax keyword qmlObjectLiteralType RadialGradient +syntax keyword qmlObjectLiteralType Radio +syntax keyword qmlObjectLiteralType RadioButton +syntax keyword qmlObjectLiteralType RadioButtonStyle +syntax keyword qmlObjectLiteralType RadioData +syntax keyword qmlObjectLiteralType RadioDelegate +syntax keyword qmlObjectLiteralType RangeSlider +syntax keyword qmlObjectLiteralType RasterMode +syntax keyword qmlObjectLiteralType Ratings +syntax keyword qmlObjectLiteralType RayCaster +syntax keyword qmlObjectLiteralType real +syntax keyword qmlObjectLiteralType rect +syntax keyword qmlObjectLiteralType Rectangle +syntax keyword qmlObjectLiteralType RectangleShape +syntax keyword qmlObjectLiteralType RectangularGlow +syntax keyword qmlObjectLiteralType RecursiveBlur +syntax keyword qmlObjectLiteralType RegExpValidator +syntax keyword qmlObjectLiteralType RegisterProtocolHandlerRequest +syntax keyword qmlObjectLiteralType RegularExpressionValidator +syntax keyword qmlObjectLiteralType RenderCapabilities +syntax keyword qmlObjectLiteralType RenderCapture +syntax keyword qmlObjectLiteralType RenderCaptureReply +syntax keyword qmlObjectLiteralType RenderPass +syntax keyword qmlObjectLiteralType RenderPassFilter +syntax keyword qmlObjectLiteralType RenderSettings +syntax keyword qmlObjectLiteralType RenderState +syntax keyword qmlObjectLiteralType RenderStateSet +syntax keyword qmlObjectLiteralType RenderStats +syntax keyword qmlObjectLiteralType RenderSurfaceSelector +syntax keyword qmlObjectLiteralType RenderTarget +syntax keyword qmlObjectLiteralType RenderTargetOutput +syntax keyword qmlObjectLiteralType RenderTargetSelector +syntax keyword qmlObjectLiteralType Repeater +syntax keyword qmlObjectLiteralType Repeater3D +syntax keyword qmlObjectLiteralType ReviewModel +syntax keyword qmlObjectLiteralType Rotation +syntax keyword qmlObjectLiteralType RotationAnimation +syntax keyword qmlObjectLiteralType RotationAnimator +syntax keyword qmlObjectLiteralType RotationReading +syntax keyword qmlObjectLiteralType RotationSensor +syntax keyword qmlObjectLiteralType RoundButton +syntax keyword qmlObjectLiteralType Route +syntax keyword qmlObjectLiteralType RouteLeg +syntax keyword qmlObjectLiteralType RouteManeuver +syntax keyword qmlObjectLiteralType RouteModel +syntax keyword qmlObjectLiteralType RouteQuery +syntax keyword qmlObjectLiteralType RouteSegment +syntax keyword qmlObjectLiteralType Row +syntax keyword qmlObjectLiteralType RowLayout + +syntax keyword qmlObjectLiteralType Scale +syntax keyword qmlObjectLiteralType ScaleAnimator +syntax keyword qmlObjectLiteralType Scatter +syntax keyword qmlObjectLiteralType Scatter3D +syntax keyword qmlObjectLiteralType Scatter3DSeries +syntax keyword qmlObjectLiteralType ScatterDataProxy +syntax keyword qmlObjectLiteralType ScatterSeries +syntax keyword qmlObjectLiteralType Scene2D +syntax keyword qmlObjectLiteralType Scene3D +syntax keyword qmlObjectLiteralType Scene3DView +syntax keyword qmlObjectLiteralType SceneEnvironment +syntax keyword qmlObjectLiteralType SceneLoader +syntax keyword qmlObjectLiteralType ScissorTest +syntax keyword qmlObjectLiteralType Screen +syntax keyword qmlObjectLiteralType ScreenRayCaster +syntax keyword qmlObjectLiteralType ScriptAction +syntax keyword qmlObjectLiteralType ScrollBar +syntax keyword qmlObjectLiteralType ScrollIndicator +syntax keyword qmlObjectLiteralType ScrollView +syntax keyword qmlObjectLiteralType ScrollViewStyle +syntax keyword qmlObjectLiteralType SCurveTonemap +syntax keyword qmlObjectLiteralType ScxmlStateMachine +syntax keyword qmlObjectLiteralType SeamlessCubemap +syntax keyword qmlObjectLiteralType SelectionListItem +syntax keyword qmlObjectLiteralType SelectionListModel +syntax keyword qmlObjectLiteralType Sensor +syntax keyword qmlObjectLiteralType SensorGesture +syntax keyword qmlObjectLiteralType SensorReading +syntax keyword qmlObjectLiteralType SequentialAnimation +syntax keyword qmlObjectLiteralType Settings +syntax keyword qmlObjectLiteralType SettingsStore +syntax keyword qmlObjectLiteralType SetUniformValue +syntax keyword qmlObjectLiteralType Shader +syntax keyword qmlObjectLiteralType ShaderEffect +syntax keyword qmlObjectLiteralType ShaderEffectSource +syntax keyword qmlObjectLiteralType ShaderImage +syntax keyword qmlObjectLiteralType ShaderInfo +syntax keyword qmlObjectLiteralType ShaderProgram +syntax keyword qmlObjectLiteralType ShaderProgramBuilder +syntax keyword qmlObjectLiteralType Shape +syntax keyword qmlObjectLiteralType ShapeGradient +syntax keyword qmlObjectLiteralType ShapePath +syntax keyword qmlObjectLiteralType SharedGLTexture +syntax keyword qmlObjectLiteralType ShellSurface +syntax keyword qmlObjectLiteralType ShellSurfaceItem +syntax keyword qmlObjectLiteralType ShiftHandler +syntax keyword qmlObjectLiteralType ShiftKey +syntax keyword qmlObjectLiteralType Shortcut +syntax keyword qmlObjectLiteralType SignalSpy +syntax keyword qmlObjectLiteralType SignalTransition +syntax keyword qmlObjectLiteralType SinglePointHandler +syntax keyword qmlObjectLiteralType size +syntax keyword qmlObjectLiteralType Skeleton +syntax keyword qmlObjectLiteralType SkeletonLoader +syntax keyword qmlObjectLiteralType SkyboxEntity +syntax keyword qmlObjectLiteralType Slider +syntax keyword qmlObjectLiteralType SliderStyle +syntax keyword qmlObjectLiteralType SmoothedAnimation +syntax keyword qmlObjectLiteralType SortPolicy +syntax keyword qmlObjectLiteralType Sound +syntax keyword qmlObjectLiteralType SoundEffect +syntax keyword qmlObjectLiteralType SoundInstance +syntax keyword qmlObjectLiteralType SpaceKey +syntax keyword qmlObjectLiteralType SphereGeometry +syntax keyword qmlObjectLiteralType SphereMesh +syntax keyword qmlObjectLiteralType SpinBox +syntax keyword qmlObjectLiteralType SpinBoxStyle +syntax keyword qmlObjectLiteralType SplineSeries +syntax keyword qmlObjectLiteralType SplitHandle +syntax keyword qmlObjectLiteralType SplitView +syntax keyword qmlObjectLiteralType SpotLight +syntax keyword qmlObjectLiteralType SpringAnimation +syntax keyword qmlObjectLiteralType Sprite +syntax keyword qmlObjectLiteralType SpriteGoal +syntax keyword qmlObjectLiteralType SpriteSequence +syntax keyword qmlObjectLiteralType Stack +syntax keyword qmlObjectLiteralType StackedBarSeries +syntax keyword qmlObjectLiteralType StackLayout +syntax keyword qmlObjectLiteralType StackView +syntax keyword qmlObjectLiteralType StackViewDelegate +syntax keyword qmlObjectLiteralType StandardPaths +syntax keyword qmlObjectLiteralType State +syntax keyword qmlObjectLiteralType StateChangeScript +syntax keyword qmlObjectLiteralType StateGroup +syntax keyword qmlObjectLiteralType StateMachine +syntax keyword qmlObjectLiteralType StateMachineLoader +syntax keyword qmlObjectLiteralType StatusBar +syntax keyword qmlObjectLiteralType StatusBarStyle +syntax keyword qmlObjectLiteralType StatusIndicator +syntax keyword qmlObjectLiteralType StatusIndicatorStyle +syntax keyword qmlObjectLiteralType SteelMilledConcentricMaterial +syntax keyword qmlObjectLiteralType StencilMask +syntax keyword qmlObjectLiteralType StencilOperation +syntax keyword qmlObjectLiteralType StencilOperationArguments +syntax keyword qmlObjectLiteralType StencilTest +syntax keyword qmlObjectLiteralType StencilTestArguments +syntax keyword qmlObjectLiteralType Store +syntax keyword qmlObjectLiteralType String +syntax keyword qmlObjectLiteralType string +syntax keyword qmlObjectLiteralType SubtreeEnabler +syntax keyword qmlObjectLiteralType Supplier +syntax keyword qmlObjectLiteralType Surface3D +syntax keyword qmlObjectLiteralType Surface3DSeries +syntax keyword qmlObjectLiteralType SurfaceDataProxy +syntax keyword qmlObjectLiteralType SwipeDelegate +syntax keyword qmlObjectLiteralType SwipeView +syntax keyword qmlObjectLiteralType Switch +syntax keyword qmlObjectLiteralType SwitchDelegate +syntax keyword qmlObjectLiteralType SwitchStyle +syntax keyword qmlObjectLiteralType SymbolModeKey +syntax keyword qmlObjectLiteralType SystemPalette +syntax keyword qmlObjectLiteralType SystemTrayIcon + +syntax keyword qmlObjectLiteralType Tab +syntax keyword qmlObjectLiteralType TabBar +syntax keyword qmlObjectLiteralType TabButton +syntax keyword qmlObjectLiteralType TableModel +syntax keyword qmlObjectLiteralType TableModelColumn +syntax keyword qmlObjectLiteralType TableView +syntax keyword qmlObjectLiteralType TableViewColumn +syntax keyword qmlObjectLiteralType TableViewStyle +syntax keyword qmlObjectLiteralType TabView +syntax keyword qmlObjectLiteralType TabViewStyle +syntax keyword qmlObjectLiteralType TapHandler +syntax keyword qmlObjectLiteralType TapReading +syntax keyword qmlObjectLiteralType TapSensor +syntax keyword qmlObjectLiteralType TargetDirection +syntax keyword qmlObjectLiteralType TaskbarButton +syntax keyword qmlObjectLiteralType Technique +syntax keyword qmlObjectLiteralType TechniqueFilter +syntax keyword qmlObjectLiteralType TestCase +syntax keyword qmlObjectLiteralType Text +syntax keyword qmlObjectLiteralType Text2DEntity +syntax keyword qmlObjectLiteralType TextArea +syntax keyword qmlObjectLiteralType TextAreaStyle +syntax keyword qmlObjectLiteralType TextEdit +syntax keyword qmlObjectLiteralType TextField +syntax keyword qmlObjectLiteralType TextFieldStyle +syntax keyword qmlObjectLiteralType TextInput +syntax keyword qmlObjectLiteralType TextMetrics +syntax keyword qmlObjectLiteralType Texture +syntax keyword qmlObjectLiteralType Texture1D +syntax keyword qmlObjectLiteralType Texture1DArray +syntax keyword qmlObjectLiteralType Texture2D +syntax keyword qmlObjectLiteralType Texture2DArray +syntax keyword qmlObjectLiteralType Texture2DMultisample +syntax keyword qmlObjectLiteralType Texture2DMultisampleArray +syntax keyword qmlObjectLiteralType Texture3D +syntax keyword qmlObjectLiteralType TextureBuffer +syntax keyword qmlObjectLiteralType TextureCubeMap +syntax keyword qmlObjectLiteralType TextureCubeMapArray +syntax keyword qmlObjectLiteralType TextureImage +syntax keyword qmlObjectLiteralType TextureInput +syntax keyword qmlObjectLiteralType TextureLoader +syntax keyword qmlObjectLiteralType TextureRectangle +syntax keyword qmlObjectLiteralType Theme3D +syntax keyword qmlObjectLiteralType ThemeColor +syntax keyword qmlObjectLiteralType ThresholdMask +syntax keyword qmlObjectLiteralType ThumbnailToolBar +syntax keyword qmlObjectLiteralType ThumbnailToolButton +syntax keyword qmlObjectLiteralType TiltReading +syntax keyword qmlObjectLiteralType TiltSensor +syntax keyword qmlObjectLiteralType TiltShift +syntax keyword qmlObjectLiteralType Timeline +syntax keyword qmlObjectLiteralType TimelineAnimation +syntax keyword qmlObjectLiteralType TimeoutTransition +syntax keyword qmlObjectLiteralType Timer +syntax keyword qmlObjectLiteralType ToggleButton +syntax keyword qmlObjectLiteralType ToggleButtonStyle +syntax keyword qmlObjectLiteralType ToolBar +syntax keyword qmlObjectLiteralType ToolBarStyle +syntax keyword qmlObjectLiteralType ToolButton +syntax keyword qmlObjectLiteralType ToolSeparator +syntax keyword qmlObjectLiteralType ToolTip +syntax keyword qmlObjectLiteralType TooltipRequest +syntax keyword qmlObjectLiteralType Torch +syntax keyword qmlObjectLiteralType TorusGeometry +syntax keyword qmlObjectLiteralType TorusMesh +syntax keyword qmlObjectLiteralType TouchEventSequence +syntax keyword qmlObjectLiteralType TouchInputHandler3D +syntax keyword qmlObjectLiteralType TouchPoint +syntax keyword qmlObjectLiteralType Trace +syntax keyword qmlObjectLiteralType TraceCanvas +syntax keyword qmlObjectLiteralType TraceInputArea +syntax keyword qmlObjectLiteralType TraceInputKey +syntax keyword qmlObjectLiteralType TraceInputKeyPanel +syntax keyword qmlObjectLiteralType TrailEmitter +syntax keyword qmlObjectLiteralType Transaction +syntax keyword qmlObjectLiteralType Transform +syntax keyword qmlObjectLiteralType Transition +syntax keyword qmlObjectLiteralType Translate +syntax keyword qmlObjectLiteralType TreeView +syntax keyword qmlObjectLiteralType TreeViewStyle +syntax keyword qmlObjectLiteralType Tumbler +syntax keyword qmlObjectLiteralType TumblerColumn +syntax keyword qmlObjectLiteralType TumblerStyle +syntax keyword qmlObjectLiteralType Turbulence + +syntax keyword qmlObjectLiteralType UniformAnimator +syntax keyword qmlObjectLiteralType url +syntax keyword qmlObjectLiteralType User + +syntax keyword qmlObjectLiteralType ValueAxis +syntax keyword qmlObjectLiteralType ValueAxis3D +syntax keyword qmlObjectLiteralType ValueAxis3DFormatter +syntax keyword qmlObjectLiteralType var +syntax keyword qmlObjectLiteralType variant +syntax keyword qmlObjectLiteralType VBarModelMapper +syntax keyword qmlObjectLiteralType VBoxPlotModelMapper +syntax keyword qmlObjectLiteralType VCandlestickModelMapper +syntax keyword qmlObjectLiteralType vector2d +syntax keyword qmlObjectLiteralType vector3d +syntax keyword qmlObjectLiteralType Vector3dAnimation +syntax keyword qmlObjectLiteralType vector4d +syntax keyword qmlObjectLiteralType VertexBlendAnimation +syntax keyword qmlObjectLiteralType VerticalHeaderView +syntax keyword qmlObjectLiteralType Video +syntax keyword qmlObjectLiteralType VideoOutput +syntax keyword qmlObjectLiteralType View3D +syntax keyword qmlObjectLiteralType Viewport +syntax keyword qmlObjectLiteralType ViewTransition +syntax keyword qmlObjectLiteralType Vignette +syntax keyword qmlObjectLiteralType VirtualKeyboardSettings +syntax keyword qmlObjectLiteralType VPieModelMapper +syntax keyword qmlObjectLiteralType VXYModelMapper + +syntax keyword qmlObjectLiteralType Wander +syntax keyword qmlObjectLiteralType WasdController +syntax keyword qmlObjectLiteralType WavefrontMesh +syntax keyword qmlObjectLiteralType WaylandClient +syntax keyword qmlObjectLiteralType WaylandCompositor +syntax keyword qmlObjectLiteralType WaylandHardwareLayer +syntax keyword qmlObjectLiteralType WaylandOutput +syntax keyword qmlObjectLiteralType WaylandQuickItem +syntax keyword qmlObjectLiteralType WaylandSeat +syntax keyword qmlObjectLiteralType WaylandSurface +syntax keyword qmlObjectLiteralType WaylandView +syntax keyword qmlObjectLiteralType Waypoint +syntax keyword qmlObjectLiteralType WebChannel +syntax keyword qmlObjectLiteralType WebEngine +syntax keyword qmlObjectLiteralType WebEngineAction +syntax keyword qmlObjectLiteralType WebEngineCertificateError +syntax keyword qmlObjectLiteralType WebEngineClientCertificateOption +syntax keyword qmlObjectLiteralType WebEngineClientCertificateSelection +syntax keyword qmlObjectLiteralType WebEngineDownloadItem +syntax keyword qmlObjectLiteralType WebEngineHistory +syntax keyword qmlObjectLiteralType WebEngineHistoryListModel +syntax keyword qmlObjectLiteralType WebEngineLoadRequest +syntax keyword qmlObjectLiteralType WebEngineNavigationRequest +syntax keyword qmlObjectLiteralType WebEngineNewViewRequest +syntax keyword qmlObjectLiteralType WebEngineNotification +syntax keyword qmlObjectLiteralType WebEngineProfile +syntax keyword qmlObjectLiteralType WebEngineScript +syntax keyword qmlObjectLiteralType WebEngineSettings +syntax keyword qmlObjectLiteralType WebEngineView +syntax keyword qmlObjectLiteralType WebSocket +syntax keyword qmlObjectLiteralType WebSocketServer +syntax keyword qmlObjectLiteralType WebView +syntax keyword qmlObjectLiteralType WebViewLoadRequest +syntax keyword qmlObjectLiteralType WeekNumberColumn +syntax keyword qmlObjectLiteralType WheelEvent +syntax keyword qmlObjectLiteralType WheelHandler +syntax keyword qmlObjectLiteralType Window +syntax keyword qmlObjectLiteralType WlScaler +syntax keyword qmlObjectLiteralType WlShell +syntax keyword qmlObjectLiteralType WlShellSurface +syntax keyword qmlObjectLiteralType WorkerScript + +syntax keyword qmlObjectLiteralType XAnimator +syntax keyword qmlObjectLiteralType XdgDecorationManagerV1 +syntax keyword qmlObjectLiteralType XdgOutputManagerV1 +syntax keyword qmlObjectLiteralType XdgPopup +syntax keyword qmlObjectLiteralType XdgPopupV5 +syntax keyword qmlObjectLiteralType XdgPopupV6 +syntax keyword qmlObjectLiteralType XdgShell +syntax keyword qmlObjectLiteralType XdgShellV5 +syntax keyword qmlObjectLiteralType XdgShellV6 +syntax keyword qmlObjectLiteralType XdgSurface +syntax keyword qmlObjectLiteralType XdgSurfaceV5 +syntax keyword qmlObjectLiteralType XdgSurfaceV6 +syntax keyword qmlObjectLiteralType XdgToplevel +syntax keyword qmlObjectLiteralType XdgToplevelV6 +syntax keyword qmlObjectLiteralType XmlListModel +syntax keyword qmlObjectLiteralType XmlRole +syntax keyword qmlObjectLiteralType XYPoint +syntax keyword qmlObjectLiteralType XYSeries + +syntax keyword qmlObjectLiteralType YAnimator + +syntax keyword qmlObjectLiteralType ZoomBlur + +" }}} + +if get(g:, 'qml_fold', 0) + syn match qmlFunction "\" + syn region qmlFunctionFold start="^\z(\s*\)\.*[^};]$" end="^\z1}.*$" transparent fold keepend + + syn sync match qmlSync grouphere qmlFunctionFold "\" + syn sync match qmlSync grouphere NONE "^}" + + setlocal foldmethod=syntax + setlocal foldtext=getline(v:foldstart) +else + syn keyword qmlFunction function + syn match qmlArrowFunction "=>" + syn match qmlBraces "[{}\[\]]" + syn match qmlParens "[()]" +endif + +syn sync fromstart +syn sync maxlines=100 + +if main_syntax == "qml" + syn sync ccomment qmlComment +endif + +hi def link qmlComment Comment +hi def link qmlLineComment Comment +hi def link qmlCommentTodo Todo +hi def link qmlSpecial Special +hi def link qmlStringS String +hi def link qmlStringD String +hi def link qmlStringT String +hi def link qmlCharacter Character +hi def link qmlNumber Number +hi def link qmlConditional Conditional +hi def link qmlRepeat Repeat +hi def link qmlBranch Conditional +hi def link qmlOperator Operator +hi def link qmlJsType Type +hi def link qmlType Type +hi def link qmlObjectLiteralType Type +hi def link qmlStatement Statement +hi def link qmlFunction Function +hi def link qmlArrowFunction Function +hi def link qmlBraces Function +hi def link qmlError Error +hi def link qmlNull Keyword +hi def link qmlBoolean Boolean +hi def link qmlRegexpString String +hi def link qmlNullishCoalescing Operator + +hi def link qmlIdentifier Identifier +hi def link qmlLabel Label +hi def link qmlException Exception +hi def link qmlMessage Keyword +hi def link qmlGlobal Keyword +hi def link qmlReserved Keyword +hi def link qmlDebug Debug +hi def link qmlConstant Label +hi def link qmlBindingProperty Label +hi def link qmlDeclaration Function + +let b:current_syntax = "qml" +if main_syntax == 'qml' + unlet main_syntax +endif diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim new file mode 100644 index 0000000..7db5310 --- /dev/null +++ b/runtime/syntax/quake.vim @@ -0,0 +1,170 @@ +" Vim syntax file +" Language: Quake[1-3] configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-17 +" quake_is_quake1 - the syntax is to be used for quake1 configs +" quake_is_quake2 - the syntax is to be used for quake2 configs +" quake_is_quake3 - the syntax is to be used for quake3 configs +" Credits: Tomasz Kalkosinski wrote the original quake3Colors stuff + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=-,+ + +syn keyword quakeTodo contained TODO FIXME XXX NOTE + +syn region quakeComment display oneline start='//' end='$' end=';' + \ keepend contains=quakeTodo,@Spell + +syn region quakeString display oneline start=+"+ skip=+\\\\\|\\"+ + \ end=+"\|$+ contains=quakeNumbers, + \ @quakeCommands,@quake3Colors + +syn case ignore + +syn match quakeNumbers display transparent '\<-\=\d\|\.\d' + \ contains=quakeNumber,quakeFloat, + \ quakeOctalError,quakeOctal +syn match quakeNumber contained display '\d\+\>' +syn match quakeFloat contained display '\d\+\.\d*' +syn match quakeFloat contained display '\.\d\+\>' + +if exists("quake_is_quake1") || exists("quake_is_quake2") + syn match quakeOctal contained display '0\o\+\>' + \ contains=quakeOctalZero + syn match quakeOctalZero contained display '\<0' + syn match quakeOctalError contained display '0\o*[89]\d*' +endif + +syn cluster quakeCommands contains=quakeCommand,quake1Command, + \ quake12Command,Quake2Command,Quake23Command, + \ Quake3Command + +syn keyword quakeCommand +attack +back +forward +left +lookdown +lookup +syn keyword quakeCommand +mlook +movedown +moveleft +moveright +moveup +syn keyword quakeCommand +right +speed +strafe -attack -back bind +syn keyword quakeCommand bindlist centerview clear connect cvarlist dir +syn keyword quakeCommand disconnect dumpuser echo error exec -forward +syn keyword quakeCommand god heartbeat joy_advancedupdate kick kill +syn keyword quakeCommand killserver -left -lookdown -lookup map +syn keyword quakeCommand messagemode messagemode2 -mlook modellist +syn keyword quakeCommand -movedown -moveleft -moveright -moveup play +syn keyword quakeCommand quit rcon reconnect record -right say say_team +syn keyword quakeCommand screenshot serverinfo serverrecord serverstop +syn keyword quakeCommand set sizedown sizeup snd_restart soundinfo +syn keyword quakeCommand soundlist -speed spmap status -strafe stopsound +syn keyword quakeCommand toggleconsole unbind unbindall userinfo pause +syn keyword quakeCommand vid_restart viewpos wait weapnext weapprev + +if exists("quake_is_quake1") + syn keyword quake1Command sv +endif + +if exists("quake_is_quake1") || exists("quake_is_quake2") + syn keyword quake12Command +klook alias cd impulse link load save + syn keyword quake12Command timerefresh changing info loading + syn keyword quake12Command pingservers playerlist players score +endif + +if exists("quake_is_quake2") + syn keyword quake2Command cmd demomap +use condump download drop gamemap + syn keyword quake2Command give gun_model setmaster sky sv_maplist wave + syn keyword quake2Command cmdlist gameversiona gun_next gun_prev invdrop + syn keyword quake2Command inven invnext invnextp invnextw invprev + syn keyword quake2Command invprevp invprevw invuse menu_addressbook + syn keyword quake2Command menu_credits menu_dmoptions menu_game + syn keyword quake2Command menu_joinserver menu_keys menu_loadgame + syn keyword quake2Command menu_main menu_multiplayer menu_options + syn keyword quake2Command menu_playerconfig menu_quit menu_savegame + syn keyword quake2Command menu_startserver menu_video + syn keyword quake2Command notarget precache prog togglechat vid_front + syn keyword quake2Command weaplast +endif + +if exists("quake_is_quake2") || exists("quake_is_quake3") + syn keyword quake23Command imagelist modellist path z_stats +endif + +if exists("quake_is_quake3") + syn keyword quake3Command +info +scores +zoom addbot arena banClient + syn keyword quake3Command banUser callteamvote callvote changeVectors + syn keyword quake3Command cinematic clientinfo clientkick cmd cmdlist + syn keyword quake3Command condump configstrings crash cvar_restart devmap + syn keyword quake3Command fdir follow freeze fs_openedList Fs_pureList + syn keyword quake3Command Fs_referencedList gfxinfo globalservers + syn keyword quake3Command hunk_stats in_restart -info levelshot + syn keyword quake3Command loaddeferred localservers map_restart mem_info + syn keyword quake3Command messagemode3 messagemode4 midiinfo model music + syn keyword quake3Command modelist net_restart nextframe nextskin noclip + syn keyword quake3Command notarget ping prevframe prevskin reset restart + syn keyword quake3Command s_disable_a3d s_enable_a3d s_info s_list s_stop + syn keyword quake3Command scanservers -scores screenshotJPEG sectorlist + syn keyword quake3Command serverstatus seta setenv sets setu setviewpos + syn keyword quake3Command shaderlist showip skinlist spdevmap startOribt + syn keyword quake3Command stats stopdemo stoprecord systeminfo togglemenu + syn keyword quake3Command tcmd team teamtask teamvote tell tell_attacker + syn keyword quake3Command tell_target testgun testmodel testshader toggle + syn keyword quake3Command touchFile vminfo vmprofile vmtest vosay + syn keyword quake3Command vosay_team vote votell vsay vsay_team vstr + syn keyword quake3Command vtaunt vtell vtell_attacker vtell_target weapon + syn keyword quake3Command writeconfig -zoom + syn match quake3Command display "\<[+-]button\(\d\|1[0-4]\)\>" +endif + +if exists("quake_is_quake3") + syn cluster quake3Colors contains=quake3Red,quake3Green,quake3Yellow, + \ quake3Blue,quake3Cyan,quake3Purple,quake3White, + \ quake3Orange,quake3Grey,quake3Black,quake3Shadow + + syn region quake3Red contained start=+\^1+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Green contained start=+\^2+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Yellow contained start=+\^3+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Blue contained start=+\^4+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Cyan contained start=+\^5+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Purple contained start=+\^6+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3White contained start=+\^7+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Orange contained start=+\^8+hs=e+1 end=+[$^\"\n]+he=e-1 + syn region quake3Grey contained start=+\^9+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Black contained start=+\^0+hs=e+1 end=+[$^"\n]+he=e-1 + syn region quake3Shadow contained start=+\^[Xx]+hs=e+1 end=+[$^"\n]+he=e-1 +endif + +hi def link quakeComment Comment +hi def link quakeTodo Todo +hi def link quakeString String +hi def link quakeNumber Number +hi def link quakeOctal Number +hi def link quakeOctalZero PreProc +hi def link quakeFloat Number +hi def link quakeOctalError Error +hi def link quakeCommand quakeCommands +hi def link quake1Command quakeCommands +hi def link quake12Command quakeCommands +hi def link quake2Command quakeCommands +hi def link quake23Command quakeCommands +hi def link quake3Command quakeCommands +hi def link quakeCommands Keyword + +if exists("quake_is_quake3") + hi quake3Red ctermfg=Red guifg=Red + hi quake3Green ctermfg=Green guifg=Green + hi quake3Yellow ctermfg=Yellow guifg=Yellow + hi quake3Blue ctermfg=Blue guifg=Blue + hi quake3Cyan ctermfg=Cyan guifg=Cyan + hi quake3Purple ctermfg=DarkMagenta guifg=Purple + hi quake3White ctermfg=White guifg=White + hi quake3Black ctermfg=Black guifg=Black + hi quake3Orange ctermfg=Brown guifg=Orange + hi quake3Grey ctermfg=LightGrey guifg=LightGrey + hi quake3Shadow cterm=underline gui=underline +endif + +let b:current_syntax = "quake" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/quarto.vim b/runtime/syntax/quarto.vim new file mode 100644 index 0000000..d5d4ee2 --- /dev/null +++ b/runtime/syntax/quarto.vim @@ -0,0 +1,17 @@ +" Language: Quarto (Markdown with chunks of R, Python and other languages) +" Provisory Maintainer: Jakson Aquino +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Fri Feb 24, 2023 08:26AM +" +" The developers of tools for Quarto maintain Vim runtime files in their +" Github repository and, if required, I will hand over the maintenance of +" this script for them. + +runtime syntax/rmd.vim + +syn match quartoShortarg /\S\+/ contained +syn keyword quartoShortkey var meta env pagebreak video include contained +syn region quartoShortcode matchgroup=PreProc start='{{< ' end=' >}}' contains=quartoShortkey,quartoShortarg transparent keepend + +hi def link quartoShortkey Include +hi def link quartoShortarg String diff --git a/runtime/syntax/r.vim b/runtime/syntax/r.vim new file mode 100644 index 0000000..1932d24 --- /dev/null +++ b/runtime/syntax/r.vim @@ -0,0 +1,386 @@ +" Vim syntax file +" Language: R (GNU S) +" Maintainer: Jakson Aquino +" Former Maintainers: Vaidotas Zemlys +" Tom Payne +" Contributor: Johannes Ranke +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Sun Dec 24, 2023 08:05AM +" Filenames: *.R *.r *.Rhistory *.Rt +" +" NOTE: The highlighting of R functions might be defined in +" runtime files created by a filetype plugin, if installed. +" +" CONFIGURATION: +" Syntax folding can be turned on by +" +" let r_syntax_folding = 1 +" +" ROxygen highlighting can be turned off by +" +" let r_syntax_hl_roxygen = 0 +" +" Some lines of code were borrowed from Zhuojun Chen. + +if exists("b:current_syntax") + finish +endif + +syn iskeyword @,48-57,_,. + +" The variables g:r_hl_roxygen and g:r_syn_minlines were renamed on April 8, 2017. +if exists("g:r_hl_roxygen") + let g:r_syntax_hl_roxygen = g:r_hl_roxygen +endif +if exists("g:r_syn_minlines") + let g:r_syntax_minlines = g:r_syn_minlines +endif + +if exists("g:r_syntax_folding") && g:r_syntax_folding + setlocal foldmethod=syntax +endif + +let g:r_syntax_hl_roxygen = get(g:, 'r_syntax_hl_roxygen', 1) + +syn case match + +" Comment +syn match rCommentTodo contained "\(BUG\|FIXME\|NOTE\|TODO\):" +syn match rTodoParen contained "\(BUG\|FIXME\|NOTE\|TODO\)\s*(.\{-})\s*:" contains=rTodoKeyw,rTodoInfo transparent +syn keyword rTodoKeyw BUG FIXME NOTE TODO contained +syn match rTodoInfo "(\zs.\{-}\ze)" contained +syn match rComment contains=@Spell,rCommentTodo,rTodoParen "#.*" + +" Roxygen +if g:r_syntax_hl_roxygen + " A roxygen block can start at the beginning of a file (first version) and + " after a blank line (second version). It ends when a line appears that does not + " contain a roxygen comment. In the following comments, any line containing + " a roxygen comment marker (one or two hash signs # followed by a single + " quote ' and preceded only by whitespace) is called a roxygen line. A + " roxygen line containing only a roxygen comment marker, optionally followed + " by whitespace is called an empty roxygen line. + + syn match rOCommentKey "^\s*#\{1,2}'" contained + syn region rOExamples start="^\s*#\{1,2}' @examples.*"rs=e+1,hs=e+1 end="^\(#\{1,2}' @.*\)\@=" end="^\(#\{1,2}'\)\@!" contained contains=rOTag fold + + " R6 classes may contain roxygen lines independent of roxygen blocks + syn region rOR6Class start=/R6Class(/ end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError fold + syn match rOR6Block "#\{1,2}'.*" contains=rOTag,rOExamples,@Spell containedin=rOR6Class contained + syn match rOR6Block "^\s*#\{1,2}'.*" contains=rOTag,rOExamples,@Spell containedin=rOR6Class contained + + " First we match all roxygen blocks as containing only a title. In case an + " empty roxygen line ending the title or a tag is found, this will be + " overridden later by the definitions of rOBlock. + syn match rOTitleBlock "\(\%^\|^\s*\n\)\@<=\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag + + " A title as part of a block is always at the beginning of the block, i.e. + " either at the start of a file or after a completely empty line. + syn match rOTitle "\(\%^\|^\s*\n\)\@<=\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag + syn match rOTitleTag contained "@title" + + " When a roxygen block has a title and additional content, the title + " consists of one or more roxygen lines (as little as possible are matched), + " followed either by an empty roxygen line + syn region rOBlock start="\(\%^\|^\s*\n\)\@<=\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold + + " or by a roxygen tag (we match everything starting with @ but not @@ which is used as escape sequence for a literal @). + syn region rOBlock start="\(\%^\|^\s*\n\)\@<=\(\s*#\{1,2}' .*\n\)\{-}\s*#\{1,2}' @\(@\)\@!" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold + + " If a block contains an @rdname, @describeIn tag, it may have paragraph breaks, but does not have a title + syn region rOBlockNoTitle start="\(\%^\|^\s*\n\)\@<=\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @rdname" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold + syn region rOBlockNoTitle start="\(\%^\|^\s*\n\)\@<=\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @describeIn" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold + + " rOTag list originally generated from the lists that were available in + " https://github.com/klutometis/roxygen/R/rd.R and + " https://github.com/klutometis/roxygen/R/namespace.R + " using s/^ \([A-Za-z0-9]*\) = .*/ syn match rOTag contained "@\1"/ + " Plus we need the @include tag + + " rd.R + syn match rOTag contained "@aliases" + syn match rOTag contained "@author" + syn match rOTag contained "@backref" + syn match rOTag contained "@concept" + syn match rOTag contained "@describeIn" + syn match rOTag contained "@description" + syn match rOTag contained "@details" + syn match rOTag contained "@docType" + syn match rOTag contained "@encoding" + syn match rOTag contained "@evalRd" + syn match rOTag contained "@example" + syn match rOTag contained "@examples" + syn match rOTag contained "@family" + syn match rOTag contained "@field" + syn match rOTag contained "@format" + syn match rOTag contained "@inherit" + syn match rOTag contained "@inheritParams" + syn match rOTag contained "@inheritDotParams" + syn match rOTag contained "@inheritSection" + syn match rOTag contained "@keywords" + syn match rOTag contained "@method" + syn match rOTag contained "@name" + syn match rOTag contained "@md" + syn match rOTag contained "@noMd" + syn match rOTag contained "@noRd" + syn match rOTag contained "@note" + syn match rOTag contained "@param" + syn match rOTag contained "@rdname" + syn match rOTag contained "@rawRd" + syn match rOTag contained "@references" + syn match rOTag contained "@return" + syn match rOTag contained "@section" + syn match rOTag contained "@seealso" + syn match rOTag contained "@slot" + syn match rOTag contained "@source" + syn match rOTag contained "@template" + syn match rOTag contained "@templateVar" + syn match rOTag contained "@title" + syn match rOTag contained "@usage" + " namespace.R + syn match rOTag contained "@export" + syn match rOTag contained "@exportClass" + syn match rOTag contained "@exportMethod" + syn match rOTag contained "@exportPattern" + syn match rOTag contained "@import" + syn match rOTag contained "@importClassesFrom" + syn match rOTag contained "@importFrom" + syn match rOTag contained "@importMethodsFrom" + syn match rOTag contained "@rawNamespace" + syn match rOTag contained "@S3method" + syn match rOTag contained "@useDynLib" + " other + syn match rOTag contained "@eval" + syn match rOTag contained "@include" + syn match rOTag contained "@includeRmd" + syn match rOTag contained "@order" +endif + + +if &filetype == "rhelp" + " string enclosed in double quotes + syn region rString contains=rSpecial,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/ + " string enclosed in single quotes + syn region rString contains=rSpecial,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/ +else + " string enclosed in double quotes + syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/ + " string enclosed in single quotes + syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/ +endif + +syn match rStrError display contained "\\." + + +" New line, carriage return, tab, backspace, bell, feed, vertical tab, backslash +syn match rSpecial display contained "\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\" + +" Hexadecimal and Octal digits +syn match rSpecial display contained "\\\(x\x\{1,2}\|[0-8]\{1,3}\)" + +" Unicode characters +syn match rSpecial display contained "\\u\x\{1,4}" +syn match rSpecial display contained "\\U\x\{1,8}" +syn match rSpecial display contained "\\u{\x\{1,4}}" +syn match rSpecial display contained "\\U{\x\{1,8}}" + +" Raw string +syn region rRawString matchgroup=rRawStrDelim start=/[rR]\z(['"]\)\z(-*\)(/ end=/)\z2\z1/ keepend +syn region rRawString matchgroup=rRawStrDelim start=/[rR]\z(['"]\)\z(-*\){/ end=/}\z2\z1/ keepend +syn region rRawString matchgroup=rRawStrDelim start=/[rR]\z(['"]\)\z(-*\)\[/ end=/\]\z2\z1/ keepend + +" Statement +syn keyword rStatement break next return +syn keyword rConditional if else +syn keyword rRepeat for in repeat while + +" Constant (not really) +syn keyword rConstant T F LETTERS letters month.abb month.name pi +syn keyword rConstant R.version.string + +syn keyword rNumber NA_integer_ NA_real_ NA_complex_ NA_character_ + +" Constants +syn keyword rConstant NULL +syn keyword rBoolean FALSE TRUE +syn keyword rNumber NA Inf NaN + +" integer +syn match rInteger "\<\d\+L" +syn match rInteger "\<0x\([0-9]\|[a-f]\|[A-F]\)\+L" +syn match rInteger "\<\d\+[Ee]+\=\d\+L" + +" number with no fractional part or exponent +syn match rNumber "\<\d\+\>" +" hexadecimal number +syn match rNumber "\<0x\([0-9]\|[a-f]\|[A-F]\)\+" + +" floating point number with integer and fractional parts and optional exponent +syn match rFloat "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=" +" floating point number with no integer part and optional exponent +syn match rFloat "\<\.\d\+\([Ee][-+]\=\d\+\)\=" +" floating point number with no fractional part and optional exponent +syn match rFloat "\<\d\+[Ee][-+]\=\d\+" + +" complex number +syn match rComplex "\<\d\+i" +syn match rComplex "\<\d\++\d\+i" +syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i" +syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i" +syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i" +syn match rComplex "\<\d\+[Ee][-+]\=\d\+i" + +syn match rAssign '=' +syn match rOperator "&" +syn match rOperator '-' +syn match rOperator '\*' +syn match rOperator '+' +if &filetype == "quarto" || &filetype == "rmd" || &filetype == "rrst" + syn match rOperator "[|!<>^~`/:]" +else + syn match rOperator "[|!<>^~/:]" +endif +syn match rOperator "%\{2}\|%\S\{-}%" +syn match rOperator '\([!><]\)\@<==' +syn match rOperator '==' +syn match rOperator '|>' +syn match rOpError '\*\{3}' +syn match rOpError '//' +syn match rOpError '&&&' +syn match rOpError '|||' +syn match rOpError '<<' +syn match rOpError '>>' + +syn match rAssign "<\{1,2}-" +syn match rAssign "->\{1,2}" + +" Special +syn match rDelimiter "[,;:]" + +" Error +if exists("g:r_syntax_folding") + syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError fold + syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError fold + syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError fold + syn region rSection matchgroup=Title start=/^#.*[-=#]\{4,}/ end=/^#.*[-=#]\{4,}/ms=s-2,me=s-1 transparent contains=ALL fold +else + syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError + syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError + syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError +endif + +syn match rError "[)\]}]" +syn match rBraceError "[)}]" contained +syn match rCurlyError "[)\]]" contained +syn match rParenError "[\]}]" contained + +" Use Nvim-R to highlight functions dynamically if it is installed +if !exists("g:r_syntax_fun_pattern") + let s:ff = split(substitute(globpath(&rtp, "R/functions.vim"), "functions.vim", "", "g"), "\n") + if len(s:ff) > 0 + let g:r_syntax_fun_pattern = 0 + else + let g:r_syntax_fun_pattern = 1 + endif +endif + +" Only use Nvim-R to highlight functions if they should not be highlighted +" according to a generic pattern +if g:r_syntax_fun_pattern == 1 + syn match rFunction '[0-9a-zA-Z_\.]\+\s*\ze(' +else + " Nvim-R: + runtime R/functions.vim +endif + +syn match rDollar display contained "\$" +syn match rDollar display contained "@" + +" List elements will not be highlighted as functions: +syn match rLstElmt "\$[a-zA-Z0-9\\._]*" contains=rDollar +syn match rLstElmt "@[a-zA-Z0-9\\._]*" contains=rDollar + +" Functions that may add new objects +syn keyword rPreProc library require attach detach source + +if &filetype == "rhelp" + syn match rHelpIdent '\\method' + syn match rHelpIdent '\\S4method' +endif + +" Type +syn match rType "\\" +syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame + +" Name of object with spaces +if &filetype == "rmd" || &filetype == "rrst" || &filetype == "quarto" + syn region rNameWSpace start="`" end="`" contains=rSpaceFun containedin=rmdrChunk +else + syn region rNameWSpace start="`" end="`" contains=rSpaceFun +endif + +if &filetype == "rhelp" + syn match rhPreProc "^#ifdef.*" + syn match rhPreProc "^#endif.*" + syn match rhSection "\\dontrun\>" +endif + +if exists("r_syntax_minlines") + exe "syn sync minlines=" . r_syntax_minlines +else + syn sync minlines=40 +endif + +" Define the default highlighting. +hi def link rAssign Statement +hi def link rBoolean Boolean +hi def link rBraceError Error +hi def link rComment Comment +hi def link rTodoParen Comment +hi def link rTodoInfo SpecialComment +hi def link rCommentTodo Todo +hi def link rTodoKeyw Todo +hi def link rComplex Number +hi def link rConditional Conditional +hi def link rConstant Constant +hi def link rCurlyError Error +hi def link rDelimiter Delimiter +hi def link rDollar SpecialChar +hi def link rError Error +hi def link rFloat Float +hi def link rFunction Function +hi def link rSpaceFun Function +hi def link rHelpIdent Identifier +hi def link rhPreProc PreProc +hi def link rhSection PreCondit +hi def link rInteger Number +hi def link rLstElmt Normal +hi def link rNameWSpace Normal +hi def link rNumber Number +hi def link rOperator Operator +hi def link rOpError Error +hi def link rParenError Error +hi def link rPreProc PreProc +hi def link rRawString String +hi def link rRawStrDelim Delimiter +hi def link rRepeat Repeat +hi def link rSpecial SpecialChar +hi def link rStatement Statement +hi def link rString String +hi def link rStrError Error +hi def link rType Type +if g:r_syntax_hl_roxygen + hi def link rOTitleTag Operator + hi def link rOTag Operator + hi def link rOTitleBlock Title + hi def link rOBlock Comment + hi def link rOBlockNoTitle Comment + hi def link rOR6Block Comment + hi def link rOTitle Title + hi def link rOCommentKey Comment + hi def link rOExamples SpecialComment +endif + +let b:current_syntax="r" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/racc.vim b/runtime/syntax/racc.vim new file mode 100644 index 0000000..2d4c176 --- /dev/null +++ b/runtime/syntax/racc.vim @@ -0,0 +1,142 @@ +" Vim default file +" Language: Racc input file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2008-06-22 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword raccTodo contained TODO FIXME XXX NOTE + +syn region raccComment start='/\*' end='\*/' + \ contains=raccTodo,@Spell +syn region raccComment display oneline start='#' end='$' + \ contains=raccTodo,@Spell + +syn region raccClass transparent matchgroup=raccKeyword + \ start='\' end='\'he=e-4 + \ contains=raccComment,raccPrecedence, + \ raccTokenDecl,raccExpect,raccOptions,raccConvert, + \ raccStart, + +syn region raccPrecedence transparent matchgroup=raccKeyword + \ start='\' end='\' + \ contains=raccComment,raccPrecSpec + +syn keyword raccPrecSpec contained nonassoc left right + \ nextgroup=raccPrecToken,raccPrecString skipwhite + \ skipnl + +syn match raccPrecToken contained '\<\u[A-Z0-9_]*\>' + \ nextgroup=raccPrecToken,raccPrecString skipwhite + \ skipnl + +syn region raccPrecString matchgroup=raccPrecString start=+"+ + \ skip=+\\\\\|\\"+ end=+"+ + \ contains=raccSpecial + \ nextgroup=raccPrecToken,raccPrecString skipwhite + \ skipnl +syn region raccPrecString matchgroup=raccPrecString start=+'+ + \ skip=+\\\\\|\\'+ end=+'+ contains=raccSpecial + \ nextgroup=raccPrecToken,raccPrecString skipwhite + \ skipnl + +syn keyword raccTokenDecl contained token + \ nextgroup=raccTokenR skipwhite skipnl + +syn match raccTokenR contained '\<\u[A-Z0-9_]*\>' + \ nextgroup=raccTokenR skipwhite skipnl + +syn keyword raccExpect contained expect + \ nextgroup=raccNumber skipwhite skipnl + +syn match raccNumber contained '\<\d\+\>' + +syn keyword raccOptions contained options + \ nextgroup=raccOptionsR skipwhite skipnl + +syn keyword raccOptionsR contained omit_action_call result_var + \ nextgroup=raccOptionsR skipwhite skipnl + +syn region raccConvert transparent contained matchgroup=raccKeyword + \ start='\' end='\' + \ contains=raccComment,raccConvToken skipwhite + \ skipnl + +syn match raccConvToken contained '\<\u[A-Z0-9_]*\>' + \ nextgroup=raccString skipwhite skipnl + +syn keyword raccStart contained start + \ nextgroup=raccTargetS skipwhite skipnl + +syn match raccTargetS contained '\<\l[a-z0-9_]*\>' + +syn match raccSpecial contained '\\["'\\]' + +syn region raccString start=+"+ skip=+\\\\\|\\"+ end=+"+ + \ contains=raccSpecial +syn region raccString start=+'+ skip=+\\\\\|\\'+ end=+'+ + \ contains=raccSpecial + +syn region raccRules transparent matchgroup=raccKeyword start='\' + \ end='\' contains=raccComment,raccString, + \ raccNumber,raccToken,raccTarget,raccDelimiter, + \ raccAction + +syn match raccTarget contained '\<\l[a-z0-9_]*\>' + +syn match raccDelimiter contained '[:|]' + +syn match raccToken contained '\<\u[A-Z0-9_]*\>' + +syn include @raccRuby syntax/ruby.vim + +syn region raccAction transparent matchgroup=raccDelimiter + \ start='{' end='}' contains=@raccRuby + +syn region raccHeader transparent matchgroup=raccPreProc + \ start='^---- header.*' end='^----'he=e-4 + \ contains=@raccRuby + +syn region raccInner transparent matchgroup=raccPreProc + \ start='^---- inner.*' end='^----'he=e-4 + \ contains=@raccRuby + +syn region raccFooter transparent matchgroup=raccPreProc + \ start='^---- footer.*' end='^----'he=e-4 + \ contains=@raccRuby + +syn sync match raccSyncHeader grouphere raccHeader '^---- header' +syn sync match raccSyncInner grouphere raccInner '^---- inner' +syn sync match raccSyncFooter grouphere raccFooter '^---- footer' + +hi def link raccTodo Todo +hi def link raccComment Comment +hi def link raccPrecSpec Type +hi def link raccPrecToken raccToken +hi def link raccPrecString raccString +hi def link raccTokenDecl Keyword +hi def link raccToken Identifier +hi def link raccTokenR raccToken +hi def link raccExpect Keyword +hi def link raccNumber Number +hi def link raccOptions Keyword +hi def link raccOptionsR Identifier +hi def link raccConvToken raccToken +hi def link raccStart Keyword +hi def link raccTargetS Type +hi def link raccSpecial special +hi def link raccString String +hi def link raccTarget Type +hi def link raccDelimiter Delimiter +hi def link raccPreProc PreProc +hi def link raccKeyword Keyword + +let b:current_syntax = "racc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/racket.vim b/runtime/syntax/racket.vim new file mode 100644 index 0000000..fcd64a7 --- /dev/null +++ b/runtime/syntax/racket.vim @@ -0,0 +1,657 @@ +" Vim syntax file +" Language: Racket +" Maintainer: D. Ben Knoble +" Previous Maintainer: Will Langstroth +" URL: https://github.com/benknoble/vim-racket +" Description: Contains all of the keywords in #lang racket +" Last Change: 2023 Sep 22 + +" Initializing: +if exists("b:current_syntax") + finish +endif + +" Highlight unmatched parens +syntax match racketError ,[]})], + +if version < 800 + set iskeyword=33,35-39,42-58,60-90,94,95,97-122,126,_ +else + " syntax iskeyword 33,35-39,42-58,60-90,94,95,97-122,126,_ + " converted from decimal to char + " :s/\d\+/\=submatch(0)->str2nr()->nr2char()/g + " but corrected to remove duplicate _, move ^ to end + syntax iskeyword @,!,#-',*-:,<-Z,a-z,~,_,^ + " expanded + " syntax iskeyword !,#,$,%,&,',*,+,,,-,.,/,0-9,:,<,=,>,?,@,A-Z,_,a-z,~,^ +endif + +" Forms in order of appearance at +" http://docs.racket-lang.org/reference/index.html +" +syntax keyword racketSyntax module module* module+ require provide quote +syntax keyword racketSyntax #%datum #%expression #%top #%variable-reference #%app +syntax keyword racketSyntax lambda case-lambda let let* letrec +syntax keyword racketSyntax let-values let*-values let-syntax letrec-syntax +syntax keyword racketSyntax let-syntaxes letrec-syntaxes letrec-syntaxes+values +syntax keyword racketSyntax local shared +syntax keyword racketSyntax if cond and or case define else => +syntax keyword racketSyntax define define-values define-syntax define-syntaxes +syntax keyword racketSyntax define-for-syntax define-require-syntax define-provide-syntax +syntax keyword racketSyntax define-syntax-rule +syntax keyword racketSyntax define-record-type +syntax keyword racketSyntax begin begin0 +syntax keyword racketSyntax begin-for-syntax +syntax keyword racketSyntax when unless +syntax keyword racketSyntax set! set!-values +syntax keyword racketSyntax for for/list for/vector for/hash for/hasheq for/hasheqv +syntax keyword racketSyntax for/and for/or for/lists for/first +syntax keyword racketSyntax for/last for/fold +syntax keyword racketSyntax for* for*/list for*/vector for*/hash for*/hasheq for*/hasheqv +syntax keyword racketSyntax for*/and for*/or for*/lists for*/first +syntax keyword racketSyntax for*/last for*/fold +syntax keyword racketSyntax for/fold/derived for*/fold/derived +syntax keyword racketSyntax define-sequence-syntax :do-in do +syntax keyword racketSyntax with-continuation-mark +syntax keyword racketSyntax quasiquote unquote unquote-splicing quote-syntax +syntax keyword racketSyntax #%top-interaction +syntax keyword racketSyntax define-package open-package package-begin +syntax keyword racketSyntax define* define*-values define*-syntax define*-syntaxes open*-package +syntax keyword racketSyntax package? package-exported-identifiers package-original-identifiers +syntax keyword racketSyntax block #%stratified-body + +" 8 Contracts +" 8.2 Function contracts +syntax keyword racketSyntax -> ->* ->i ->d case-> dynamic->* unconstrained-domain-> + +" 8.6.1 Nested Contract Boundaries +syntax keyword racketSyntax with-contract define/contract define-struct/contract +syntax keyword racketSyntax invariant-assertion current-contract-region + +" 9 Pattern Matching +syntax keyword racketSyntax match match* match/values define/match +syntax keyword racketSyntax match-lambda match-lambda* match-lambda** +syntax keyword racketSyntax match-let match-let* match-let-values match-let*-values +syntax keyword racketSyntax match-letrec match-define match-define-values + +" 10.2.3 Handling Exceptions +syntax keyword racketSyntax with-handlers with-handlers* + +" 10.4 Continuations +syntax keyword racketSyntax let/cc let/ec + +" 10.4.1 Additional Control Operators +syntax keyword racketSyntax % prompt control prompt-at control-at reset shift +syntax keyword racketSyntax reset-at shift-at prompt0 reset0 control0 shift0 +syntax keyword racketSyntax prompt0-at reset0-at control0-at shift0-at +syntax keyword racketSyntax set cupto + +" 11.3.2 Parameters +syntax keyword racketSyntax parameterize parameterize* + +" 12.5 Writing +syntax keyword racketSyntax write display displayln print +syntax keyword racketSyntax fprintf printf eprintf format +syntax keyword racketSyntax print-pair-curly-braces print-mpair-curly-braces print-unreadable +syntax keyword racketSyntax print-graph print-struct print-box print-vector-length print-hash-table +syntax keyword racketSyntax print-boolean-long-form print-reader-abbreviations print-as-expression print-syntax-width +syntax keyword racketSyntax current-write-relative-directory port-write-handler port-display-handler +syntax keyword racketSyntax port-print-handler global-port-print-handler + +" 13.7 Custodians +syntax keyword racketSyntax custodian? custodian-memory-accounting-available? custodian-box? +syntax keyword racketSyntax make-custodian custodian-shutdown-all current-custodian custodian-managed-list +syntax keyword racketSyntax custodian-require-memory custodian-limit-memory +syntax keyword racketSyntax make-custodian-box custodian-box-value + +" lambda sign +syntax match racketSyntax /\<[\u03bb]\>/ + + +" Functions ================================================================== + +syntax keyword racketFunc boolean? not equal? eqv? eq? equal?/recur immutable? +syntax keyword racketFunc true false symbol=? boolean=? false? +syntax keyword racketFunc number? complex? real? rational? integer? +syntax keyword racketFunc exact-integer? exact-nonnegative-integer? +syntax keyword racketFunc exact-positive-integer? inexact-real? +syntax keyword racketFunc fixnum? flonum? zero? positive? negative? +syntax keyword racketFunc even? odd? exact? inexact? +syntax keyword racketFunc inexact->exact exact->inexact + +" 3.2.2 General Arithmetic + +" 3.2.2.1 Arithmetic +syntax keyword racketFunc + - * / quotient remainder quotient/remainder modulo +syntax keyword racketFunc add1 sub1 abs max min gcd lcm round exact-round floor +syntax keyword racketFunc ceiling truncate numerator denominator rationalize + +" 3.2.2.2 Number Comparison +syntax keyword racketFunc = < <= > >= + +" 3.2.2.3 Powers and Roots +syntax keyword racketFunc sqrt integer-sqrt integer-sqrt/remainder +syntax keyword racketFunc expt exp log + +" 3.2.2.3 Trigonometric Functions +syntax keyword racketFunc sin cos tan asin acos atan + +" 3.2.2.4 Complex Numbers +syntax keyword racketFunc make-rectangular make-polar +syntax keyword racketFunc real-part imag-part magnitude angle +syntax keyword racketFunc bitwise-ior bitwise-and bitwise-xor bitwise-not +syntax keyword racketFunc bitwise-bit-set? bitwise-bit-field arithmetic-shift +syntax keyword racketFunc integer-length + +" 3.2.2.5 Random Numbers +syntax keyword racketFunc random random-seed +syntax keyword racketFunc make-pseudo-random-generator pseudo-random-generator? +syntax keyword racketFunc current-pseudo-random-generator pseudo-random-generator->vector +syntax keyword racketFunc vector->pseudo-random-generator vector->pseudo-random-generator! + +" 3.2.2.8 Number-String Conversions +syntax keyword racketFunc number->string string->number real->decimal-string +syntax keyword racketFunc integer->integer-bytes +syntax keyword racketFunc floating-point-bytes->real real->floating-point-bytes +syntax keyword racketFunc system-big-endian? + +" 3.2.2.9 Extra Constants and Functions +syntax keyword racketFunc pi sqr sgn conjugate sinh cosh tanh order-of-magnitude + +" 3.2.3 Flonums + +" 3.2.3.1 Flonum Arithmetic +syntax keyword racketFunc fl+ fl- fl* fl/ flabs +syntax keyword racketFunc fl= fl< fl> fl<= fl>= flmin flmax +syntax keyword racketFunc flround flfloor flceiling fltruncate +syntax keyword racketFunc flsin flcos fltan flasin flacos flatan +syntax keyword racketFunc fllog flexp flsqrt +syntax keyword racketFunc ->fl fl->exact-integer make-flrectangular +syntax keyword racketFunc flreal-part flimag-part + +" 3.2.3.2 Flonum Vectors +syntax keyword racketFunc flvector? flvector make-flvector flvector-length +syntax keyword racketFunc flvector-ref flvector-set! flvector-copy in-flvector +syntax keyword racketFunc shared-flvector make-shared-flvector +syntax keyword racketSyntax for/flvector for*/flvector + +" 3.2.4 Fixnums +syntax keyword racketFunc fx+ fx- fx* fxquotient fxremainder fxmodulo fxabs +syntax keyword racketFunc fxand fxior fxxor fxnot fxlshift fxrshift +syntax keyword racketFunc fx= fx< fx> fx<= fx>= fxmin fxmax fx->fl fl->fx + +" 3.2.4.2 Fixnum Vectors +syntax keyword racketFunc fxvector? fxvector make-fxvector fxvector-length +syntax keyword racketFunc fxvector-ref fxvector-set! fxvector-copy in-fxvector +syntax keyword racketFunc for/fxvector for*/fxvector +syntax keyword racketFunc shared-fxvector make-shared-fxvector + +" 3.3 Strings +syntax keyword racketFunc string? make-string string string->immutable-string string-length +syntax keyword racketFunc string-ref string-set! substring string-copy string-copy! +syntax keyword racketFunc string-fill! string-append string->list list->string +syntax keyword racketFunc build-string string=? string? string>=? +syntax keyword racketFunc string-ci=? string-ci? string-ci>=? +syntax keyword racketFunc string-upcase string-downcase string-titlecase string-foldcase +syntax keyword racketFunc string-normalize-nfd string-normalize-nfc string-normalize-nfkc +syntax keyword racketFunc string-normalize-spaces string-trim +syntax keyword racketFunc string-locale=? string-locale>? string-localeimmutable-bytes byte? +syntax keyword racketFunc bytes-length bytes-ref bytes-set! subbytes bytes-copy +syntax keyword racketFunc bytes-copy! bytes-fill! bytes-append bytes->list list->bytes +syntax keyword racketFunc make-shared-bytes shared-bytes +syntax keyword racketFunc bytes=? bytes? +syntax keyword racketFunc bytes->string/utf-8 bytes->string/latin-1 +syntax keyword racketFunc string->bytes/locale string->bytes/latin-1 string->bytes/utf-8 +syntax keyword racketFunc string-utf-8-length bytes-utf8-ref bytes-utf-8-index +syntax keyword racketFunc bytes-open-converter bytes-close-converter +syntax keyword racketFunc bytes-convert bytes-convert-end bytes-converter? +syntax keyword racketFunc locale-string-encoding + +" 3.5 Characters +syntax keyword racketFunc char? char->integer integer->char +syntax keyword racketFunc char=? char? char>=? +syntax keyword racketFunc char-ci=? char-ci? char-ci>=? +syntax keyword racketFunc char-alphabetic? char-lower-case? char-upper-case? char-title-case? +syntax keyword racketFunc char-numeric? char-symbolic? char-punctuation? char-graphic? +syntax keyword racketFunc char-whitespace? char-blank? +syntax keyword racketFunc char-iso-control? char-general-category +syntax keyword racketFunc make-known-char-range-list +syntax keyword racketFunc char-upcase char-downcase char-titlecase char-foldcase + +" 3.6 Symbols +syntax keyword racketFunc symbol? symbol-interned? symbol-unreadable? +syntax keyword racketFunc symbol->string string->symbol +syntax keyword racketFunc string->uninterned-symbol string->unreadable-symbol +syntax keyword racketFunc gensym + +" 3.7 Regular Expressions +syntax keyword racketFunc regexp? pregexp? byte-regexp? byte-pregexp? +syntax keyword racketFunc regexp pregexp byte-regexp byte-pregexp +syntax keyword racketFunc regexp-quote regexp-match regexp-match* +syntax keyword racketFunc regexp-try-match regexp-match-positions +syntax keyword racketFunc regexp-match-positions* regexp-match? +syntax keyword racketFunc regexp-match-peek-positions regexp-match-peek-immediate +syntax keyword racketFunc regexp-match-peek regexp-match-peek-positions* +syntax keyword racketFunc regexp-match/end regexp-match-positions/end +syntax keyword racketFunc regexp-match-peek-positions-immediat/end +syntax keyword racketFunc regexp-split regexp-replace regexp-replace* +syntax keyword racketFunc regexp-replace-quote + +" 3.8 Keywords +syntax keyword racketFunc keyword? keyword->string string->keyword keywordlist list->vector +syntax keyword racketFunc vector->immutable-vector vector-fill! vector-copy! +syntax keyword racketFunc vector->values build-vector vector-set*! vector-map +syntax keyword racketFunc vector-map! vector-append vector-take vector-take-right +syntax keyword racketFunc vector-drop vector-drop-right vector-split-at +syntax keyword racketFunc vector-split-at-right vector-copy vector-filter +syntax keyword racketFunc vector-filter-not vector-count vector-argmin vector-argmax +syntax keyword racketFunc vector-member vector-memv vector-memq + +" 3.12 Boxes +syntax keyword racketFunc box? box box-immutable unbox set-box! + +" 3.13 Hash Tables +syntax keyword racketFunc hash? hash-equal? hash-eqv? hash-eq? hash-weak? hash +syntax keyword racketFunc hasheq hasheqv +syntax keyword racketFunc make-hash make-hasheqv make-hasheq make-weak-hash make-weak-hasheqv +syntax keyword racketFunc make-weak-hasheq make-immutable-hash make-immutable-hasheqv +syntax keyword racketFunc make-immutable-hasheq +syntax keyword racketFunc hash-set! hash-set*! hash-set hash-set* hash-ref hash-ref! +syntax keyword racketFunc hash-has-key? hash-update! hash-update hash-remove! +syntax keyword racketFunc hash-remove hash-map hash-keys hash-values +syntax keyword racketFunc hash->list hash-for-each hash-count +syntax keyword racketFunc hash-iterate-first hash-iterate-next hash-iterate-key +syntax keyword racketFunc hash-iterate-value hash-copy eq-hash-code eqv-hash-code +syntax keyword racketFunc equal-hash-code equal-secondary-hash-code + +" 3.15 Dictionaries +syntax keyword racketFunc dict? dict-mutable? dict-can-remove-keys? dict-can-functional-set? +syntax keyword racketFunc dict-set! dict-set*! dict-set dict-set* dict-has-key? dict-ref +syntax keyword racketFunc dict-ref! dict-update! dict-update dict-remove! dict-remove +syntax keyword racketFunc dict-map dict-for-each dict-count dict-iterate-first dict-iterate-next +syntax keyword racketFunc dict-iterate-key dict-iterate-value in-dict in-dict-keys +syntax keyword racketFunc in-dict-values in-dict-pairs dict-keys dict-values +syntax keyword racketFunc dict->list prop: dict prop: dict/contract dict-key-contract +syntax keyword racketFunc dict-value-contract dict-iter-contract make-custom-hash +syntax keyword racketFunc make-immutable-custom-hash make-weak-custom-hash + +" 3.16 Sets +syntax keyword racketFunc set seteqv seteq set-empty? set-count set-member? +syntax keyword racketFunc set-add set-remove set-union set-intersect set-subtract +syntax keyword racketFunc set-symmetric-difference set=? subset? proper-subset? +syntax keyword racketFunc set-map set-for-each set? set-equal? set-eqv? set-eq? +syntax keyword racketFunc set/c in-set for/set for/seteq for/seteqv for*/set +syntax keyword racketFunc for*/seteq for*/seteqv list->set list->seteq +syntax keyword racketFunc list->seteqv set->list + +" 3.17 Procedures +syntax keyword racketFunc procedure? apply compose compose1 procedure-rename procedure->method +syntax keyword racketFunc keyword-apply procedure-arity procedure-arity? +syntax keyword racketFunc procedure-arity-includes? procedure-reduce-arity +syntax keyword racketFunc procedure-keywords make-keyword-procedure +syntax keyword racketFunc procedure-reduce-keyword-arity procedure-struct-type? +syntax keyword racketFunc procedure-extract-target checked-procedure-check-and-extract +syntax keyword racketFunc primitive? primitive-closure? primitive-result-arity +syntax keyword racketFunc identity const thunk thunk* negate curry curryr + +" 3.18 Void +syntax keyword racketFunc void void? + +" 4.1 Defining Structure Types +syntax keyword racketFunc struct struct-field-index define-struct define-struct define-struct/derived + +" 4.2 Creating Structure Types +syntax keyword racketFunc make-struct-type make-struct-field-accessor make-struct-field-mutator + +" 4.3 Structure Type Properties +syntax keyword racketFunc make-struct-type-property struct-type-property? struct-type-property-accessor-procedure? + +" 4.4 Copying and Updating Structures +syntax keyword racketFunc struct-copy + +" 4.5 Structure Utilities +syntax keyword racketFunc struct->vector struct? struct-type? +syntax keyword racketFunc struct-constructor-procedure? struct-predicate-procedure? struct-accessor-procedure? struct-mutator-procedure? +syntax keyword racketFunc prefab-struct-key make-prefab-struct prefab-key->struct-type + +" 4.6 Structure Type Transformer Binding +syntax keyword racketFunc struct-info? check-struct-info? make-struct-info extract-struct-info +syntax keyword racketFunc struct-auto-info? struct-auto-info-lists + +" 5.1 Creating Interfaces +syntax keyword racketFunc interface interface* + +" 5.2 Creating Classes +syntax keyword racketFunc class* class inspect +syntax keyword racketFunc init init-field field inherit field init-rest +syntax keyword racketFunc public public* pubment pubment* public-final public-final* +syntax keyword racketFunc override override* overment overment* override-final override-final* +syntax keyword racketFunc augride augride* augment augment* augment-final augment-final* +syntax keyword racketFunc abstract inherit inherit/super inherit/inner +syntax keyword racketFunc rename-inner rename-super +syntax keyword racketFunc define/public define/pubment define/public-final +syntax keyword racketFunc define/override define/overment define/override-final +syntax keyword racketFunc define/augride define/augment define/augment-final +syntax keyword racketFunc private* define/private + +" 5.2.3 Methods +syntax keyword racketFunc class/derived +syntax keyword racketFunc super inner define-local-member-name define-member-name +syntax keyword racketFunc member-name-key generate-member-key member-name-key? +syntax keyword racketFunc member-name-key=? member-name-key-hash-code + +" 5.3 Creating Objects +syntax keyword racketFunc make-object instantiate new +syntax keyword racketFunc super-make-object super-instantiate super-new + +"5.4 Field and Method Access +syntax keyword racketFunc method-id send send/apply send/keyword-apply dynamic-send send* +syntax keyword racketFunc get-field set-field! field-bound? +syntax keyword racketFunc class-field-accessor class-field-mutator + +"5.4.3 Generics +syntax keyword racketFunc generic send-generic make-generic + +" 8.1 Data-strucure contracts +syntax keyword racketFunc flat-contract-with-explanation flat-named-contract +" TODO where do any/c and none/c `value`s go? +syntax keyword racketFunc or/c first-or/c and/c not/c =/c /c <=/c >=/c +syntax keyword racketFunc between/c real-in integer-in char-in natural-number/c +syntax keyword racketFunc string-len/c printable/c one-of/c symbols vectorof +syntax keyword racketFunc vector-immutableof vector/c box/c box-immutable/c listof +syntax keyword racketFunc non-empty-listof list*of cons/c cons/dc list/c *list/c +syntax keyword racketFunc syntax/c struct/c struct/dc parameter/c +syntax keyword racketFunc procedure-arity-includes/c hash/c hash/dc channel/c +syntax keyword racketFunc prompt-tag/c continuation-mark-key/c evt/c promise/c +syntax keyword racketFunc flat-contract flat-contract-predicate suggest/c + +" 9.1 Multiple Values +syntax keyword racketFunc values call-with-values + +" 10.2.2 Raising Exceptions +syntax keyword racketFunc raise error raise-user-error raise-argument-error +syntax keyword racketFunc raise-result-error raise-argument-error raise-range-error +syntax keyword racketFunc raise-type-error raise-mismatch-error raise-arity-error +syntax keyword racketFunc raise-syntax-error + +" 10.2.3 Handling Exceptions +syntax keyword racketFunc call-with-exception-handler uncaught-exception-handler + +" 10.2.4 Configuring Default Handlers +syntax keyword racketFunc error-escape-handler error-display-handler error-print-width +syntax keyword racketFunc error-print-context-length error-values->string-handler +syntax keyword racketFunc error-print-source-location + +" 10.2.5 Built-in Exception Types +syntax keyword racketFunc exn exn:fail exn:fail:contract exn:fail:contract:arity +syntax keyword racketFunc exn:fail:contract:divide-by-zero exn:fail:contract:non-fixnum-result +syntax keyword racketFunc exn:fail:contract:continuation exn:fail:contract:variable +syntax keyword racketFunc exn:fail:syntax exn:fail:syntax:unbound exn:fail:syntax:missing-module +syntax keyword racketFunc exn:fail:read exn:fail:read:eof exn:fail:read:non-char +syntax keyword racketFunc exn:fail:filesystem exn:fail:filesystem:exists +syntax keyword racketFunc exn:fail:filesystem:version exn:fail:filesystem:errno +syntax keyword racketFunc exn:fail:filesystem:missing-module +syntax keyword racketFunc exn:fail:network exn:fail:network:errno exn:fail:out-of-memory +syntax keyword racketFunc exn:fail:unsupported exn:fail:user +syntax keyword racketFunc exn:break exn:break:hang-up exn:break:terminate + +" 10.3 Delayed Evaluation +syntax keyword racketFunc promise? delay lazy force promise-forced? promise-running? + +" 10.3.1 Additional Promise Kinds +syntax keyword racketFunc delay/name promise/name delay/strict delay/sync delay/thread delay/idle + +" 10.4 Continuations +syntax keyword racketFunc call-with-continuation-prompt abort-current-continuation make-continuation-prompt-tag +syntax keyword racketFunc default-continuation-prompt-tag call-with-current-continuation call/cc +syntax keyword racketFunc call-with-composable-continuation call-with-escape-continuation call/ec +syntax keyword racketFunc call-with-continuation-barrier continuation-prompt-available +syntax keyword racketFunc continuation? continuation-prompt-tag dynamic-wind + +" 10.4.1 Additional Control Operators +syntax keyword racketFunc call/prompt abort/cc call/comp abort fcontrol spawn splitter new-prompt + +" 11.3.2 Parameters +syntax keyword racketFunc make-parameter make-derived-parameter parameter? +syntax keyword racketFunc parameter-procedure=? current-parameterization +syntax keyword racketFunc call-with-parameterization parameterization? + +" 14.1.1 Manipulating Paths +syntax keyword racketFunc path? path-string? path-for-some-system? string->path path->string path->bytes +syntax keyword racketFunc string->path-element bytes->path-element path-element->string path-element->bytes +syntax keyword racketFunc path-convention-type system-path-convention-type build-type +syntax keyword racketFunc build-type/convention-type +syntax keyword racketFunc absolute-path? relative-path? complete-path? +syntax keyword racketFunc path->complete-path path->directory-path +syntax keyword racketFunc resolve-path cleanse-path expand-user-path simplify-path normal-case-path split-path +syntax keyword racketFunc path-replace-suffix path-add-suffix + +" 14.1.2 More Path Utilities +syntax keyword racketFunc explode-path file-name-from-path filename-extension find-relative-path normalize-path +syntax keyword racketFunc path-element? path-only simple-form-path some-simple-path->string string->some-system-path + +" 15.6 Time +syntax keyword racketFunc current-seconds current-inexact-milliseconds +syntax keyword racketFunc seconds->date current-milliseconds + + +syntax match racketDelimiter !\<\.\>! + +syntax cluster racketTop contains=racketSyntax,racketFunc,racketDelimiter + +syntax match racketConstant ,\<\*\k\+\*\>, +syntax match racketConstant ,\<<\k\+>\>, + +" Non-quoted lists, and strings +syntax region racketStruc matchgroup=racketParen start="("rs=s+1 end=")"re=e-1 contains=@racketTop +syntax region racketStruc matchgroup=racketParen start="#("rs=s+2 end=")"re=e-1 contains=@racketTop +syntax region racketStruc matchgroup=racketParen start="{"rs=s+1 end="}"re=e-1 contains=@racketTop +syntax region racketStruc matchgroup=racketParen start="#{"rs=s+2 end="}"re=e-1 contains=@racketTop +syntax region racketStruc matchgroup=racketParen start="\["rs=s+1 end="\]"re=e-1 contains=@racketTop +syntax region racketStruc matchgroup=racketParen start="#\["rs=s+2 end="\]"re=e-1 contains=@racketTop + +for lit in ['hash', 'hasheq', 'hasheqv'] + execute printf('syntax match racketLit "\<%s\>" nextgroup=@racketParen containedin=ALLBUT,.*String,.*Comment', '#'.lit) +endfor + +for lit in ['rx', 'rx#', 'px', 'px#'] + execute printf('syntax match racketRe "\<%s\>" nextgroup=@racketString containedin=ALLBUT,.*String,.*Comment,', '#'.lit) +endfor + +unlet lit + +" Simple literals + +" Strings + +syntax match racketStringEscapeError "\\." contained display + +syntax match racketStringEscape "\\[abtnvfre'"\\]" contained display +syntax match racketStringEscape "\\$" contained display +syntax match racketStringEscape "\\\o\{1,3}\|\\x\x\{1,2}" contained display + +syntax match racketUStringEscape "\\u\x\{1,4}\|\\U\x\{1,8}" contained display +syntax match racketUStringEscape "\\u\x\{4}\\u\x\{4}" contained display + +syntax region racketString start=/\%(\\\)\@" +syntax match racketContainedNumberError "\<#b\k*[^-+01delfinas#./@]\>" +syntax match racketContainedNumberError "\<#[ei]#[ei]" +syntax match racketContainedNumberError "\<#[xdob]#[xdob]" + +" start with the simpler sorts +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\d\+/\d\+[-+]\d\+\(/\d\+\)\?i\>" contains=racketContainedNumberError + +" different possible ways of expressing complex values +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?[-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?i\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[dobie]\)\{0,2}[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?\([sdlef][-+]\?\d\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError + +" hex versions of the above (separate because of the different possible exponent markers) +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\x\+/\x\+[-+]\x\+\(/\x\+\)\?i\>" + +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?[-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f][-+]\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?i\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?[-+]\(inf\|nan\)\.[0f]i\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\(inf\|nan\)\.[0f]@[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?\>" +syntax match racketNumber "\<\(#x\|#[ei]#x\|#x#[ei]\)[-+]\?\(\x\+\|\x\+#*\.\|\x*\.\x\+\)#*\(/\x\+#*\)\?\([sl][-+]\?\x\+#*\)\?@[-+]\(inf\|nan\)\.[0f]\>" + +" these work for any radix +syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]i\?\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f][-+]\(inf\|nan\)\.[0f]i\>" contains=racketContainedNumberError +syntax match racketNumber "\<\(#[xdobie]\)\{0,2}[-+]\(inf\|nan\)\.[0f]@[-+]\(inf\|nan\)\.[0f]\>" contains=racketContainedNumberError + +syntax keyword racketBoolean #t #f #true #false #T #F + +syntax match racketError "\<#\\\k*\>" + +syntax match racketChar "\<#\\.\w\@!" +syntax match racketChar "\<#\\space\>" +syntax match racketChar "\<#\\newline\>" +syntax match racketChar "\<#\\return\>" +syntax match racketChar "\<#\\null\?\>" +syntax match racketChar "\<#\\backspace\>" +syntax match racketChar "\<#\\tab\>" +syntax match racketChar "\<#\\linefeed\>" +syntax match racketChar "\<#\\vtab\>" +syntax match racketChar "\<#\\page\>" +syntax match racketChar "\<#\\rubout\>" +syntax match racketChar "\<#\\\o\{1,3}\>" +syntax match racketChar "\<#\\x\x\{1,2}\>" +syntax match racketChar "\<#\\u\x\{1,6}\>" + +syntax cluster racketTop add=racketNumber,racketBoolean,racketChar + +" Command-line parsing +syntax keyword racketExtFunc command-line current-command-line-arguments once-any help-labels multi once-each + +syntax match racketSyntax "#lang " +syntax match racketExtSyntax "#:\k\+" + +syntax cluster racketTop add=racketExtFunc,racketExtSyntax + +" syntax quoting, unquoting and quasiquotation +syntax match racketQuote "#\?['`]" + +syntax match racketUnquote "#," +syntax match racketUnquote "#,@" +syntax match racketUnquote "," +syntax match racketUnquote ",@" + +" Comments +syntax match racketSharpBang "\%^#![ /].*" display +syntax match racketComment /;.*$/ contains=racketTodo,racketNote,@Spell +syntax region racketMultilineComment start=/#|/ end=/|#/ contains=racketMultilineComment,racketTodo,racketNote,@Spell +syntax match racketFormComment "#;" nextgroup=@racketTop + +syntax match racketTodo /\C\<\(FIXME\|TODO\|XXX\)\ze:\?\>/ contained +syntax match racketNote /\CNOTE\ze:\?/ contained + +syntax cluster racketTop add=racketQuote,racketUnquote,racketComment,racketMultilineComment,racketFormComment + +" Synchronization and the wrapping up... +syntax sync match matchPlace grouphere NONE "^[^ \t]" +" ... i.e. synchronize on a line that starts at the left margin + +" Define the default highlighting. +highlight default link racketSyntax Statement +highlight default link racketFunc Function + +highlight default link racketString String +highlight default link racketStringEscape Special +highlight default link racketHereString String +highlight default link racketUStringEscape Special +highlight default link racketStringEscapeError Error +highlight default link racketChar Character +highlight default link racketBoolean Boolean + +highlight default link racketNumber Number +highlight default link racketNumberError Error +highlight default link racketContainedNumberError Error + +highlight default link racketQuote SpecialChar +highlight default link racketUnquote SpecialChar + +highlight default link racketDelimiter Delimiter +highlight default link racketParen Delimiter +highlight default link racketConstant Constant + +highlight default link racketLit Type +highlight default link racketRe Type + +highlight default link racketComment Comment +highlight default link racketMultilineComment Comment +highlight default link racketFormComment SpecialChar +highlight default link racketSharpBang Comment +highlight default link racketTodo Todo +highlight default link racketNote SpecialComment +highlight default link racketError Error + +highlight default link racketExtSyntax Type +highlight default link racketExtFunc PreProc + +let b:current_syntax = "racket" diff --git a/runtime/syntax/radiance.vim b/runtime/syntax/radiance.vim new file mode 100644 index 0000000..c49e339 --- /dev/null +++ b/runtime/syntax/radiance.vim @@ -0,0 +1,142 @@ +" Vim syntax file +" Language: Radiance Scene Description +" Maintainer: Georg Mischler +" Last change: 26. April. 2001 + +" Radiance is a lighting simulation software package written +" by Gregory Ward-Larson ("the computer artist formerly known +" as Greg Ward"), then at LBNL. +" +" http://radsite.lbl.gov/radiance/HOME.html +" +" Of course, there is also information available about it +" from http://www.schorsch.com/ + + +" We take a minimalist approach here, highlighting just the +" essential properties of each object, its type and ID, as well as +" comments, external command names and the null-modifier "void". + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" all printing characters except '#' and '!' are valid in names. +setlocal iskeyword=\",$-~ + +" The null-modifier +syn keyword radianceKeyword void + +" The different kinds of scene description object types +" Reference types +syn keyword radianceExtraType contained alias instance +" Surface types +syn keyword radianceSurfType contained ring polygon sphere bubble +syn keyword radianceSurfType contained cone cup cylinder tube source +" Emitting material types +syn keyword radianceLightType contained light glow illum spotlight +" Material types +syn keyword radianceMatType contained mirror mist prism1 prism2 +syn keyword radianceMatType contained metal plastic trans +syn keyword radianceMatType contained metal2 plastic2 trans2 +syn keyword radianceMatType contained metfunc plasfunc transfunc +syn keyword radianceMatType contained metdata plasdata transdata +syn keyword radianceMatType contained dielectric interface glass +syn keyword radianceMatType contained BRTDfunc antimatter +" Pattern modifier types +syn keyword radiancePatType contained colorfunc brightfunc +syn keyword radiancePatType contained colordata colorpict brightdata +syn keyword radiancePatType contained colortext brighttext +" Texture modifier types +syn keyword radianceTexType contained texfunc texdata +" Mixture types +syn keyword radianceMixType contained mixfunc mixdata mixpict mixtext + + +" Each type name is followed by an ID. +" This doesn't work correctly if the id is one of the type names of the +" same class (which is legal for radiance), in which case the id will get +" type color as well, and the int count (or alias reference) gets id color. + +syn region radianceID start="\" end="\<\k*\>" contains=radianceExtraType +syn region radianceID start="\" end="\<\k*\>" contains=radianceExtraType + +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType +syn region radianceID start="\" end="\<\k*\>" contains=radianceSurfType + +syn region radianceID start="\" end="\<\k*\>" contains=radianceLightType +syn region radianceID start="\" end="\<\k*\>" contains=radianceLightType +syn region radianceID start="\" end="\<\k*\>" contains=radianceLightType +syn region radianceID start="\" end="\<\k*\>" contains=radianceLightType + +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMatType + +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType +syn region radianceID start="\" end="\<\k*\>" contains=radiancePatType + +syn region radianceID start="\" end="\<\k*\>" contains=radianceTexType +syn region radianceID start="\" end="\<\k*\>" contains=radianceTexType + +syn region radianceID start="\" end="\<\k*\>" contains=radianceMixType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMixType +syn region radianceID start="\" end="\<\k*\>" contains=radianceMixType + +" external commands (generators, xform et al.) +syn match radianceCommand "^\s*!\s*[^\s]\+\>" + +" The usual suspects +syn keyword radianceTodo contained TODO XXX +syn match radianceComment "#.*$" contains=radianceTodo + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link radianceKeyword Keyword +hi def link radianceExtraType Type +hi def link radianceSurfType Type +hi def link radianceLightType Type +hi def link radianceMatType Type +hi def link radiancePatType Type +hi def link radianceTexType Type +hi def link radianceMixType Type +hi def link radianceComment Comment +hi def link radianceCommand Function +hi def link radianceID String +hi def link radianceTodo Todo + +let b:current_syntax = "radiance" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/raku.vim b/runtime/syntax/raku.vim new file mode 100644 index 0000000..1bf9b49 --- /dev/null +++ b/runtime/syntax/raku.vim @@ -0,0 +1,1971 @@ +" Vim syntax file +" Language: Raku +" Maintainer: vim-perl +" Homepage: https://github.com/Raku/vim-raku +" Bugs/requests: https://github.com/Raku/vim-raku/issues +" Last Change: 2021-04-16 + +" Contributors: Luke Palmer +" Moritz Lenz +" Hinrik Örn Sigurðsson +" +" This is a big undertaking. +" +" The ftdetect/raku.vim file in this repository takes care of setting the +" right filetype for Raku files. To set it explicitly you can also add this +" line near the bottom of your source file: +" # vim: filetype=raku + +" TODO: +" * Go over the list of keywords/types to see what's deprecated/missing +" * Add more support for folding (:help syn-fold) +" +" If you want to have Pir code inside Q:PIR// strings highlighted, do: +" let raku_embedded_pir=1 +" +" The above requires pir.vim, which you can find in Parrot's repository: +" https://github.com/parrot/parrot/tree/master/editor +" +" To highlight Perl 5 regexes (m:P5//): +" let raku_perl5_regexes=1 +" +" To enable folding: +" let raku_fold=1 + +if version < 704 | throw "raku.vim uses regex syntax which Vim <7.4 doesn't support. Try 'make fix_old_vim' in the vim-perl repository." | endif + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +" Patterns which will be interpolated by the preprocessor (tools/preproc.pl): +" +" @@IDENT_NONDIGIT@@ "[A-Za-z_\xC0-\xFF]" +" @@IDENT_CHAR@@ "[A-Za-z_\xC0-\xFF0-9]" +" @@IDENTIFIER@@ "\%(@@IDENT_NONDIGIT@@\%(@@IDENT_CHAR@@\|[-']@@IDENT_NONDIGIT@@\@=\)*\)" +" @@IDENTIFIER_START@@ "@@IDENT_CHAR@@\@1". +syn match rakuKeywordStart display "\%(\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\)\@!\)\@=[A-Za-z_\xC0-\xFF0-9]\@1" nextgroup=rakuDeclare,rakuIdentifier skipwhite skipempty +syn match rakuDeclare display "[.^]\@1" nextgroup=rakuIdentifier skipwhite skipempty +syn match rakuDeclareRegex display "[.^]\@1" nextgroup=rakuRegexName skipwhite skipempty + +syn match rakuTypeConstraint display "\%([.^]\|^\s*\)\@" +syn match rakuTypeConstraint display "\%([.^]\|^\s*\)\@».;\\∈∉∋∌∩∪≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖∅∘]" +syn match rakuOperator display "\%(:\@1][=+]\?\|cont\|elem\))" + +" Reverse, cross, and zip metaoperators +exec "syn match rakuRSXZOp display \"[RSXZ]:\\@!\\%(\\a\\@=\\%(". s:alpha_metaops_or . "\\)\\>\\|[[:alnum:]]\\@!\\%([.,]\\|[^[,.[:alnum:][:space:]]\\)\\+\\|\\s\\@=\\|$\\)\"" + +syn match rakuBlockLabel display "^\s*\zs\h\w*\s*::\@!\_s\@=" + +syn match rakuNumber display "[A-Za-z_\xC0-\xFF0-9]\@1" +syn match rakuContext display "\%(\$\|@\|%\|&\)(\@=" + +" Quoting + +" one cluster for every quote adverb +syn cluster rakuInterp_scalar + \ add=rakuInterpScalar + +syn cluster rakuInterp_array + \ add=rakuInterpArray + +syn cluster rakuInterp_hash + \ add=rakuInterpHash + +syn cluster rakuInterp_function + \ add=rakuInterpFunction + +syn cluster rakuInterp_closure + \ add=rakuInterpClosure + +syn cluster rakuInterp_q + \ add=rakuEscQQ + \ add=rakuEscBackSlash + +syn cluster rakuInterp_backslash + \ add=@rakuInterp_q + \ add=rakuEscape + \ add=rakuEscOpenCurly + \ add=rakuEscCodePoint + \ add=rakuEscHex + \ add=rakuEscOct + \ add=rakuEscOctOld + \ add=rakuEscNull + +syn cluster rakuInterp_qq + \ add=@rakuInterp_scalar + \ add=@rakuInterp_array + \ add=@rakuInterp_hash + \ add=@rakuInterp_function + \ add=@rakuInterp_closure + \ add=@rakuInterp_backslash + \ add=rakuMatchVarSigil + +syn region rakuInterpScalar + \ start="\ze\z(\$\%(\%(\%(\d\+\|!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" + \ start="\ze\z(\$\%(\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" + \ end="\z1\zs" + \ contained keepend + \ contains=TOP + +syn region rakuInterpArray + \ matchgroup=rakuContext + \ start="@\ze()\@!" + \ skip="([^)]*)" + \ end=")\zs" + \ contained + \ contains=TOP + +syn region rakuInterpHash + \ start="\ze\z(%\$*\%(\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" + \ end="\z1\zs" + \ contained keepend + \ contains=TOP + +syn region rakuInterpHash + \ matchgroup=rakuContext + \ start="%\ze()\@!" + \ skip="([^)]*)" + \ end=")\zs" + \ contained + \ contains=TOP + +syn region rakuInterpFunction + \ start="\ze\z(&\%(\%(!\|/\|¢\)\|\%(\%(\%([.^*?=!~]\|:\@1]*>\|«[^»]*»\|{[^}]*}\)\)*\)\.\?\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\)\)" + \ end="\z1\zs" + \ contained keepend + \ contains=TOP + +syn region rakuInterpFunction + \ matchgroup=rakuContext + \ start="&\ze()\@!" + \ skip="([^)]*)" + \ end=")\zs" + \ contained + \ contains=TOP + +syn region rakuInterpClosure + \ start="\\\@1" contained +syn match rakuEscCloseFrench display "\\»" contained +syn match rakuEscBackTick display "\\`" contained +syn match rakuEscForwardSlash display "\\/" contained +syn match rakuEscVerticalBar display "\\|" contained +syn match rakuEscExclamation display "\\!" contained +syn match rakuEscComma display "\\," contained +syn match rakuEscDollar display "\\\$" contained +syn match rakuEscCloseCurly display "\\}" contained +syn match rakuEscCloseBracket display "\\\]" contained + +" matches :key, :!key, :$var, :key, etc +" Since we don't know in advance how the adverb ends, we use a trick. +" Consume nothing with the start pattern (\ze at the beginning), +" while capturing the whole adverb into \z1 and then putting it before +" the match start (\zs) of the end pattern. +syn region rakuAdverb + \ start="\ze\z(:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\%(([^)]*)\|\[[^\]]*]\|<[^>]*>\|«[^»]*»\|{[^}]*}\)\?\)" + \ start="\ze\z(:!\?[@$%]\$*\%(::\|\%(\$\@1<=\d\+\|!\|/\|¢\)\|\%(\%([.^*?=!~]\|:\@1 +" Distinguishing this from the "less than" operator is tricky. For now, +" it matches if any of the following is true: +" +" * There is whitespace missing on either side of the "<", since +" people tend to put spaces around "less than". We make an exception +" for " = < ... >" assignments though. +" * It comes after "enum", "for", "any", "all", or "none" +" * It's the first or last thing on a line (ignoring whitespace) +" * It's preceded by "(\s*" or "=\s\+" +" * It's empty and terminated on the same line (e.g. <> and < >) +" +" It never matches when: +" +" * Preceded by [<+~=!] (e.g. <>, =<$foo>, * !< 3) +" * Followed by [-=] (e.g. <--, <=, <==, <->) +syn region rakuStringAngle + \ matchgroup=rakuQuote + \ start="\%(\<\%(enum\|for\|any\|all\|none\)\>\s*(\?\s*\)\@<=<\%(<\|=>\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" + \ start="\%(\s\|[<+~=!]\)\@\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" + \ start="[<+~=!]\@1\|\%([=-]\{1,2}>\|[=-]\{1,2}\)\)\@!" + \ start="\%(^\s*\)\@<=<\%(<\|=>\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" + \ start="[<+~=!]\@1\|\%([=-]\{1,2}>\|[=-]\{2}\)\)\@!" + \ start="<\%(\s*>\)\@=" + \ skip="\\\@1" + \ end=">" + \ contains=rakuInnerAnglesOne,rakuEscBackSlash,rakuEscCloseAngle + +syn region rakuStringAngleFixed + \ matchgroup=rakuQuote + \ start="<" + \ skip="\\\@1" + \ end=">" + \ contains=rakuInnerAnglesOne,rakuEscBackSlash,rakuEscCloseAngle + \ contained + +syn region rakuInnerAnglesOne + \ matchgroup=rakuStringAngle + \ start="\\\@1" + \ end=">" + \ transparent contained + \ contains=rakuInnerAnglesOne + +" <> +syn region rakuStringAngles + \ matchgroup=rakuQuote + \ start="<<=\@!" + \ skip="\\\@1" + \ end=">>" + \ contains=rakuInnerAnglesTwo,@rakuInterp_qq,rakuComment,rakuBracketComment,rakuEscHash,rakuEscCloseAngle,rakuAdverb,rakuStringSQ,rakuStringDQ + +syn region rakuInnerAnglesTwo + \ matchgroup=rakuStringAngles + \ start="<<" + \ skip="\\\@1" + \ end=">>" + \ transparent contained + \ contains=rakuInnerAnglesTwo + +" «words» +syn region rakuStringFrench + \ matchgroup=rakuQuote + \ start="«" + \ skip="\\\@1" and "«»" strings in order to override +" them, but before other types of strings, to avoid matching those delimiters +" as parts of hyperops. +syn match rakuHyperOp display #[^[:digit:][{('",:[:space:]][^[{('",:[:space:]]*\%(«\|<<\)# +syn match rakuHyperOp display "«\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+[«»]" +syn match rakuHyperOp display "»\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+\%(«\|»\?\)" +syn match rakuHyperOp display "<<\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+\%(<<\|>>\)" +syn match rakuHyperOp display ">>\%(\d\|[@%$][.?^=[:alpha:]]\)\@!\%(\.\|[^[{('".[:space:]]\)\+\%(<<\|\%(>>\)\?\)" + +" 'string' +syn region rakuStringSQ + \ matchgroup=rakuQuote + \ start="'" + \ skip="\\\@1", "rakuEscCloseAngle", "\\%(\\\\\\@1\\|<[^>]*>\\)"], + \ ["French", "«", "»", "rakuEscCloseFrench", "\\%(\\\\\\@1, @ +syn region rakuMatchVarSigil + \ matchgroup=rakuVariable + \ start="[$@]\%(<<\@!\)\@=" + \ end=">\@1<=" + \ contains=rakuMatchVar + +syn region rakuMatchVar + \ matchgroup=rakuTwigil + \ start="<" + \ end=">" + \ contained + +syn region rakuRxClosure + \ matchgroup=rakuNormal + \ start="{" + \ end="}" + \ contained + \ containedin=rakuRxClosure + \ contains=TOP +syn region rakuRxGroup + \ matchgroup=rakuStringSpecial2 + \ start="\[" + \ end="]" + \ contained + \ contains=@rakuRegexen,@rakuVariables,rakuMatchVarSigil +syn region rakuRxAssertion + \ matchgroup=rakuStringSpecial2 + \ start="<\%(?\?\%(before\|after\)\|\%(\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)=\)\|[+?*]\)\?" + \ end=">" + \ contained + \ contains=@rakuRegexen,rakuIdentifier,@rakuVariables,rakuRxCharClass,rakuRxAssertCall +syn region rakuRxAssertGroup + \ matchgroup=rakuStringSpecial2 + \ start="<\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)=\[" + \ skip="\\\@1" + \ contained keepend + \ contains=TOP +syn match rakuRxBoundary display contained "\%([«»]\|<<\|>>\)" +syn region rakuRxCharClass + \ matchgroup=rakuStringSpecial2 + \ start="\%(<[-!+?]\?\)\@2<=\[" + \ skip="\\]" + \ end="]" + \ contained + \ contains=rakuRxRange,rakuRxEscape,rakuEscHex,rakuEscOct,rakuEscCodePoint,rakuEscNull +syn region rakuRxQuoteWords + \ matchgroup=rakuStringSpecial2 + \ start="<\s" + \ end="\s\?>" + \ contained +syn region rakuRxAdverb + \ start="\ze\z(:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)" + \ end="\z1\zs" + \ contained keepend + \ contains=TOP +syn region rakuRxAdverbArg + \ start="\%(:!\?\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\)\@<=(" + \ skip="([^)]\{-})" + \ end=")" + \ contained + \ keepend + \ contains=TOP +syn region rakuRxStorage + \ matchgroup=rakuOperator + \ start="\%(^\s*\)\@<=:\%(my\>\|temp\>\)\@=" + \ end="$" + \ contains=TOP + \ contained + \ keepend + +" 'string' inside a regex +syn region rakuRxStringSQ + \ matchgroup=rakuQuote + \ start="'" + \ skip="\\\@1\)\)\@=" +syn match rakuVarSlash display "\$/" +syn match rakuVarExclam display "\$!" +syn match rakuVarMatch display "\$¢" +syn match rakuVarNum display "\$\d\+" +syn match rakuVariable display "self" +syn match rakuVariable display "[@$%&]\?[@&$%]\$*\%(::\|\%(\%([.^*?=!~]\|:\@1>\)" contained +syn match rakuTwigil display "\%([.^*?=!~]\|:\@1\|\<\%(if\|unless\|while\|when\|where\|so\)\)\s*\)\@<=/[/=]\@!" + \ skip="\\/" + \ end="/" + \ contains=@rakuRegexen,rakuVariable,rakuVarExclam,rakuVarMatch,rakuVarNum + +" m/foo/, m$foo$, m!foo!, etc +syn region rakuMatch + \ matchgroup=rakuQuote + \ start=+\z([/!$,|`"]\)+ + \ skip="\\\z1" + \ end="\z1" + \ contained + \ contains=@rakuRegexen,rakuVariable,rakuVarNum + +" m, m«foo», m{foo}, etc +for [s:name, s:start_delim, s:end_delim, s:end_group, s:skip] in s:bracketing_delims + exec "syn region rakuMatch matchgroup=rakuQuote start=\"".s:start_delim."\" skip=\"".s:skip."\" end=\"".s:end_delim."\" contained keepend contains=@rakuRegexen,@rakuVariables" +endfor +unlet s:name s:start_delim s:end_delim s:end_group s:skip + +" Substitutions + +" s/foo//, s$foo$$, s!foo!!, etc +syn region rakuSubstitution + \ matchgroup=rakuQuote + \ start=+\z([/!$,|`"]\)+ + \ skip="\\\z1" + \ end="\z1"me=e-1 + \ contained + \ contains=@rakuRegexen,rakuVariable,rakuVarNum + \ nextgroup=rakuReplacement + +syn region rakuReplacement + \ matchgroup=rakuQuote + \ start="\z(.\)" + \ skip="\\\z1" + \ end="\z1" + \ contained + \ contains=@rakuInterp_qq + +" s, s«foo»«bar», s{foo}{bar}, etc +for [s:name, s:start_delim, s:end_delim, s:end_group, s:skip] in s:bracketing_delims + exec "syn region rakuSubstitution matchgroup=rakuQuote start=\"".s:start_delim."\" skip=\"".s:skip."\" end=\"".s:end_delim."\" contained keepend contains=@rakuRegexen,@rakuVariables nextgroup=rakuRepl".s:name + exec "syn region rakuRepl".s:name." matchgroup=rakuQuote start=\"".s:start_delim."\" skip=\"".s:skip."\" end=\"".s:end_delim."\" contained keepend contains=@rakuInterp_qq" +endfor +unlet s:name s:start_delim s:end_delim s:end_group s:skip + +" Transliteration + +" tr/foo/bar/, tr|foo|bar, etc +syn region rakuTransliteration + \ matchgroup=rakuQuote + \ start=+\z([/!$,|`"]\)+ + \ skip="\\\z1" + \ end="\z1"me=e-1 + \ contained + \ contains=rakuRxRange + \ nextgroup=rakuTransRepl + +syn region rakuTransRepl + \ matchgroup=rakuQuote + \ start="\z(.\)" + \ skip="\\\z1" + \ end="\z1" + \ contained + \ contains=@rakuInterp_qq,rakuRxRange + +" tr, tr«foo»«bar», tr{foo}{bar}, etc +for [s:name, s:start_delim, s:end_delim, s:end_group, s:skip] in s:bracketing_delims + exec "syn region rakuTransliteration matchgroup=rakuQuote start=\"".s:start_delim."\" skip=\"".s:skip."\" end=\"".s:end_delim."\" contained keepend contains=rakuRxRange nextgroup=rakuTransRepl".s:name + exec "syn region rakuTransRepl".s:name." matchgroup=rakuQuote start=\"".s:start_delim."\" skip=\"".s:skip."\" end=\"".s:end_delim."\" contained keepend contains=@rakuInterp_qq,rakuRxRange" +endfor +unlet s:name s:start_delim s:end_delim s:end_group s:skip s:bracketing_delims + +if exists("raku_perl5_regexes") || exists("raku_extended_all") + +" Perl 5 regex regions + +syn cluster rakuRegexP5Base + \ add=rakuRxP5Escape + \ add=rakuRxP5Oct + \ add=rakuRxP5Hex + \ add=rakuRxP5EscMeta + \ add=rakuRxP5CodePoint + \ add=rakuRxP5Prop + +" normal regex stuff +syn cluster rakuRegexP5 + \ add=@rakuRegexP5Base + \ add=rakuRxP5Quantifier + \ add=rakuRxP5Meta + \ add=rakuRxP5QuoteMeta + \ add=rakuRxP5ParenMod + \ add=rakuRxP5Verb + \ add=rakuRxP5Count + \ add=rakuRxP5Named + \ add=rakuRxP5ReadRef + \ add=rakuRxP5WriteRef + \ add=rakuRxP5CharClass + \ add=rakuRxP5Anchor + +" inside character classes +syn cluster rakuRegexP5Class + \ add=@rakuRegexP5Base + \ add=rakuRxP5Posix + \ add=rakuRxP5Range + +syn match rakuRxP5Escape display contained "\\\S" +syn match rakuRxP5CodePoint display contained "\\c\S\@=" nextgroup=rakuRxP5CPId +syn match rakuRxP5CPId display contained "\S" +syn match rakuRxP5Oct display contained "\\\%(\o\{1,3}\)\@=" nextgroup=rakuRxP5OctSeq +syn match rakuRxP5OctSeq display contained "\o\{1,3}" +syn match rakuRxP5Anchor display contained "[\^$]" +syn match rakuRxP5Hex display contained "\\x\%({\x\+}\|\x\{1,2}\)\@=" nextgroup=rakuRxP5HexSeq +syn match rakuRxP5HexSeq display contained "\x\{1,2}" +syn region rakuRxP5HexSeq + \ matchgroup=rakuRxP5Escape + \ start="{" + \ end="}" + \ contained +syn region rakuRxP5Named + \ matchgroup=rakuRxP5Escape + \ start="\%(\\N\)\@2<={" + \ end="}" + \ contained +syn match rakuRxP5Quantifier display contained "\%([+*]\|(\@1" + \ contained +syn match rakuRxP5WriteRef display contained "\\g\%(\d\|{\)\@=" nextgroup=rakuRxP5WriteRefId +syn match rakuRxP5WriteRefId display contained "\d\+" +syn region rakuRxP5WriteRefId + \ matchgroup=rakuRxP5Escape + \ start="{" + \ end="}" + \ contained +syn match rakuRxP5Prop display contained "\\[pP]\%(\a\|{\)\@=" nextgroup=rakuRxP5PropId +syn match rakuRxP5PropId display contained "\a" +syn region rakuRxP5PropId + \ matchgroup=rakuRxP5Escape + \ start="{" + \ end="}" + \ contained +syn match rakuRxP5Meta display contained "[(|).]" +syn match rakuRxP5ParenMod display contained "(\@1<=?\@=" nextgroup=rakuRxP5Mod,rakuRxP5ModName,rakuRxP5Code +syn match rakuRxP5Mod display contained "?\%(<\?=\|<\?!\|[#:|]\)" +syn match rakuRxP5Mod display contained "?-\?[impsx]\+" +syn match rakuRxP5Mod display contained "?\%([-+]\?\d\+\|R\)" +syn match rakuRxP5Mod display contained "?(DEFINE)" +syn match rakuRxP5Mod display contained "?\%(&\|P[>=]\)" nextgroup=rakuRxP5ModDef +syn match rakuRxP5ModDef display contained "\h\w*" +syn region rakuRxP5ModName + \ matchgroup=rakuStringSpecial + \ start="?'" + \ end="'" + \ contained +syn region rakuRxP5ModName + \ matchgroup=rakuStringSpecial + \ start="?P\?<" + \ end=">" + \ contained +syn region rakuRxP5Code + \ matchgroup=rakuStringSpecial + \ start="??\?{" + \ end="})\@=" + \ contained + \ contains=TOP +syn match rakuRxP5EscMeta display contained "\\[?*.{}()[\]|\^$]" +syn match rakuRxP5Count display contained "\%({\d\+\%(,\%(\d\+\)\?\)\?}\)\@=" nextgroup=rakuRxP5CountId +syn region rakuRxP5CountId + \ matchgroup=rakuRxP5Escape + \ start="{" + \ end="}" + \ contained +syn match rakuRxP5Verb display contained "(\@1<=\*\%(\%(PRUNE\|SKIP\|THEN\)\%(:[^)]*\)\?\|\%(MARK\|\):[^)]*\|COMMIT\|F\%(AIL\)\?\|ACCEPT\)" +syn region rakuRxP5QuoteMeta + \ matchgroup=rakuRxP5Escape + \ start="\\Q" + \ end="\\E" + \ contained + \ contains=@rakuVariables,rakuEscBackSlash +syn region rakuRxP5CharClass + \ matchgroup=rakuStringSpecial + \ start="\[\^\?" + \ skip="\\]" + \ end="]" + \ contained + \ contains=@rakuRegexP5Class +syn region rakuRxP5Posix + \ matchgroup=rakuRxP5Escape + \ start="\[:" + \ end=":]" + \ contained +syn match rakuRxP5Range display contained "-" + +" m:P5// +syn region rakuMatch + \ matchgroup=rakuQuote + \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@2 +syn region rakuMatch + \ matchgroup=rakuQuote + \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@2\@!" + \ skip="\\>" + \ end=">" + \ contains=@rakuRegexP5,rakuVariables + +" m:P5«» +syn region rakuMatch + \ matchgroup=rakuQuote + \ start="\%(\%(::\|[$@%&][.!^:*?]\?\|\.\)\@2]*>" + \ end=">" + \ contains=rakuAttention,rakuBracketComment +syn region rakuBracketComment + \ start="#[`|=]«" + \ skip="«[^»]*»" + \ end="»" + \ contains=rakuAttention,rakuBracketComment + +" Comments with double and triple delimiters +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]((" + \ skip="((\%([^)\|))\@!]\)*))" + \ end="))" + \ contains=rakuAttention,rakuBracketComment +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=](((" + \ skip="(((\%([^)]\|)\%())\)\@!\)*)))" + \ end=")))" + \ contains=rakuAttention,rakuBracketComment + +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]\[\[" + \ skip="\[\[\%([^\]]\|]]\@!\)*]]" + \ end="]]" + \ contains=rakuAttention,rakuBracketComment +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]\[\[\[" + \ skip="\[\[\[\%([^\]]\|]\%(]]\)\@!\)*]]]" + \ end="]]]" + \ contains=rakuAttention,rakuBracketComment + +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]{{" + \ skip="{{\%([^}]\|}}\@!\)*}}" + \ end="}}" + \ contains=rakuAttention,rakuBracketComment +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]{{{" + \ skip="{{{\%([^}]\|}\%(}}\)\@!\)*}}}" + \ end="}}}" + \ contains=rakuAttention,rakuBracketComment + +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]<<" + \ skip="<<\%([^>]\|>>\@!\)*>>" + \ end=">>" + \ contains=rakuAttention,rakuBracketComment +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]<<<" + \ skip="<<<\%([^>]\|>\%(>>\)\@!\)*>>>" + \ end=">>>" + \ contains=rakuAttention,rakuBracketComment + +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]««" + \ skip="««\%([^»]\|»»\@!\)*»»" + \ end="»»" + \ contains=rakuAttention,rakuBracketComment +syn region rakuBracketComment + \ matchgroup=rakuBracketComment + \ start="#[`|=]«««" + \ skip="«««\%([^»]\|»\%(»»\)\@!\)*»»»" + \ end="»»»" + \ contains=rakuAttention,rakuBracketComment + +syn match rakuShebang display "\%^#!.*" + +" => autoquoting +syn match rakuStringAuto display "\.\@1" +syn match rakuStringAuto display "\.\@1" +syn match rakuStringAuto display "\.\@1" + +" Pod + +" Abbreviated blocks (implicit code forbidden) +syn region rakuPodAbbrRegion + \ matchgroup=rakuPodPrefix + \ start="^\s*\zs=\ze\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodAbbrNoCodeType + \ keepend + +syn region rakuPodAbbrNoCodeType + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodName,rakuPodAbbrNoCode + +syn match rakuPodName contained ".\+" contains=@rakuPodFormat +syn match rakuPodComment contained ".\+" + +syn region rakuPodAbbrNoCode + \ start="^" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=@rakuPodFormat + +" Abbreviated blocks (everything is code) +syn region rakuPodAbbrRegion + \ matchgroup=rakuPodPrefix + \ start="^\s*\zs=\zecode\>" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodAbbrCodeType + \ keepend + +syn region rakuPodAbbrCodeType + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodName,rakuPodAbbrCode + +syn region rakuPodAbbrCode + \ start="^" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + +" Abbreviated blocks (everything is a comment) +syn region rakuPodAbbrRegion + \ matchgroup=rakuPodPrefix + \ start="^=\zecomment\>" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodAbbrCommentType + \ keepend + +syn region rakuPodAbbrCommentType + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodComment,rakuPodAbbrNoCode + +" Abbreviated blocks (implicit code allowed) +syn region rakuPodAbbrRegion + \ matchgroup=rakuPodPrefix + \ start="^=\ze\%(pod\|item\|nested\|\u\+\)\>" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodAbbrType + \ keepend + +syn region rakuPodAbbrType + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodName,rakuPodAbbr + +syn region rakuPodAbbr + \ start="^" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=@rakuPodFormat,rakuPodImplicitCode + +" Abbreviated block to end-of-file +syn region rakuPodAbbrRegion + \ matchgroup=rakuPodPrefix + \ start="^=\zeEND\>" + \ end="\%$" + \ contains=rakuPodAbbrEOFType + \ keepend + +syn region rakuPodAbbrEOFType + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="\%$" + \ contained + \ contains=rakuPodName,rakuPodAbbrEOF + +syn region rakuPodAbbrEOF + \ start="^" + \ end="\%$" + \ contained + \ contains=@rakuPodNestedBlocks,@rakuPodFormat,rakuPodImplicitCode + +" Directives +syn region rakuPodDirectRegion + \ matchgroup=rakuPodPrefix + \ start="^=\%(config\|use\)\>" + \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" + \ contains=rakuPodDirectArgRegion + \ keepend + +syn region rakuPodDirectArgRegion + \ matchgroup=rakuPodType + \ start="\S\+" + \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" + \ contained + \ contains=rakuPodDirectConfigRegion + +syn region rakuPodDirectConfigRegion + \ start="" + \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" + \ contained + \ contains=@rakuPodConfig + +" =encoding is a special directive +syn region rakuPodDirectRegion + \ matchgroup=rakuPodPrefix + \ start="^=encoding\>" + \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" + \ contains=rakuPodEncodingArgRegion + \ keepend + +syn region rakuPodEncodingArgRegion + \ matchgroup=rakuPodName + \ start="\S\+" + \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" + \ contained + +" Paragraph blocks (implicit code forbidden) +syn region rakuPodParaRegion + \ matchgroup=rakuPodPrefix + \ start="^\s*\zs=for\>" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodParaNoCodeTypeRegion + \ keepend extend + +syn region rakuPodParaNoCodeTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodParaNoCode,rakuPodParaConfigRegion + +syn region rakuPodParaConfigRegion + \ start="" + \ end="^\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\@1\ze\s*code\>" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodParaCodeTypeRegion + \ keepend extend + +syn region rakuPodParaCodeTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodParaCode,rakuPodParaConfigRegion + +syn region rakuPodParaCode + \ start="^[^=]" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + +" Paragraph blocks (implicit code allowed) +syn region rakuPodParaRegion + \ matchgroup=rakuPodPrefix + \ start="^\s*\zs=for\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>" + \ end="^\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contains=rakuPodParaTypeRegion + \ keepend extend + +syn region rakuPodParaTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=rakuPodPara,rakuPodParaConfigRegion + +syn region rakuPodPara + \ start="^[^=]" + \ end="^\s*\zs\ze\%(\s*$\|=[A-Za-z_\xC0-\xFF]\)" + \ contained + \ contains=@rakuPodFormat,rakuPodImplicitCode + +" Paragraph block to end-of-file +syn region rakuPodParaRegion + \ matchgroup=rakuPodPrefix + \ start="^=for\>\ze\s\+END\>" + \ end="\%$" + \ contains=rakuPodParaEOFTypeRegion + \ keepend extend + +syn region rakuPodParaEOFTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="\%$" + \ contained + \ contains=rakuPodParaEOF,rakuPodParaConfigRegion + +syn region rakuPodParaEOF + \ start="^[^=]" + \ end="\%$" + \ contained + \ contains=@rakuPodNestedBlocks,@rakuPodFormat,rakuPodImplicitCode + +" Delimited blocks (implicit code forbidden) +syn region rakuPodDelimRegion + \ matchgroup=rakuPodPrefix + \ start="^\z(\s*\)\zs=begin\>" + \ end="^\z1\zs=end\>" + \ contains=rakuPodDelimNoCodeTypeRegion + \ keepend extend skipwhite + \ nextgroup=rakuPodType + +syn region rakuPodDelimNoCodeTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\s*\zs\ze=end\>" + \ contained + \ contains=rakuPodDelimNoCode,rakuPodDelimConfigRegion + +syn region rakuPodDelimConfigRegion + \ start="" + \ end="^\s*\zs\ze\%([^=]\|=[A-Za-z_\xC0-\xFF]\|\s*$\)" + \ contained + \ contains=@rakuPodConfig + +syn region rakuPodDelimNoCode + \ start="^" + \ end="^\s*\zs\ze=end\>" + \ contained + \ contains=@rakuPodNestedBlocks,@rakuPodFormat + +" Delimited blocks (everything is code) +syn region rakuPodDelimRegion + \ matchgroup=rakuPodPrefix + \ start="^\z(\s*\)\zs=begin\>\ze\s*code\>" + \ end="^\z1\zs=end\>" + \ contains=rakuPodDelimCodeTypeRegion + \ keepend extend skipwhite + \ nextgroup=rakuPodType + +syn region rakuPodDelimCodeTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\s*\zs\ze=end\>" + \ contained + \ contains=rakuPodDelimCode,rakuPodDelimConfigRegion + +syn region rakuPodDelimCode + \ start="^" + \ end="^\s*\zs\ze=end\>" + \ contained + \ contains=@rakuPodNestedBlocks + +" Delimited blocks (implicit code allowed) +syn region rakuPodDelimRegion + \ matchgroup=rakuPodPrefix + \ start="^\z(\s*\)\zs=begin\>\ze\s*\%(pod\|item\|nested\|\u\+\)\>" + \ end="^\z1\zs=end\>" + \ contains=rakuPodDelimTypeRegion + \ keepend extend skipwhite + \ nextgroup=rakuPodType + +syn region rakuPodDelimTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="^\s*\zs\ze=end\>" + \ contained + \ contains=rakuPodDelim,rakuPodDelimConfigRegion + +syn region rakuPodDelim + \ start="^" + \ end="^\s*\zs\ze=end\>" + \ contained + \ contains=@rakuPodNestedBlocks,@rakuPodFormat,rakuPodImplicitCode + +" Delimited block to end-of-file +syn region rakuPodDelimRegion + \ matchgroup=rakuPodPrefix + \ start="^=begin\>\ze\s\+END\>" + \ end="\%$" + \ extend + \ contains=rakuPodDelimEOFTypeRegion + +syn region rakuPodDelimEOFTypeRegion + \ matchgroup=rakuPodType + \ start="\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + \ end="\%$" + \ contained + \ contains=rakuPodDelimEOF,rakuPodDelimConfigRegion + +syn region rakuPodDelimEOF + \ start="^" + \ end="\%$" + \ contained + \ contains=@rakuPodNestedBlocks,@rakuPodFormat,rakuPodImplicitCode + +syn cluster rakuPodConfig + \ add=rakuPodConfigOperator + \ add=rakuPodExtraConfig + \ add=rakuStringAuto + \ add=rakuPodAutoQuote + \ add=rakuStringSQ + +syn region rakuPodParens + \ start="(" + \ end=")" + \ contained + \ contains=rakuNumber,rakuStringSQ + +syn match rakuPodAutoQuote display contained "=>" +syn match rakuPodConfigOperator display contained ":!\?" nextgroup=rakuPodConfigOption +syn match rakuPodConfigOption display contained "[^[:space:](<]\+" nextgroup=rakuPodParens,rakuStringAngle +syn match rakuPodExtraConfig display contained "^=" +syn match rakuPodVerticalBar display contained "|" +syn match rakuPodColon display contained ":" +syn match rakuPodSemicolon display contained ";" +syn match rakuPodComma display contained "," +syn match rakuPodImplicitCode display contained "^\s.*" +syn match rakuPodType display contained "\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)" + +" These may appear inside delimited blocks +syn cluster rakuPodNestedBlocks + \ add=rakuPodAbbrRegion + \ add=rakuPodDirectRegion + \ add=rakuPodParaRegion + \ add=rakuPodDelimRegion + +" Pod formatting codes + +syn cluster rakuPodFormat + \ add=rakuPodFormatOne + \ add=rakuPodFormatTwo + \ add=rakuPodFormatThree + \ add=rakuPodFormatFrench + +" Balanced angles found inside formatting codes. Ensures proper nesting. + +syn region rakuPodFormatAnglesOne + \ matchgroup=rakuPodFormat + \ start="<" + \ skip="<[^>]*>" + \ end=">" + \ transparent contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatAnglesOne + +syn region rakuPodFormatAnglesTwo + \ matchgroup=rakuPodFormat + \ start="<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ transparent contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatAnglesOne,rakuPodFormatAnglesTwo + +syn region rakuPodFormatAnglesThree + \ matchgroup=rakuPodFormat + \ start="<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ transparent contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatAnglesOne,rakuPodFormatAnglesTwo,rakuPodFormatAnglesThree + +syn region rakuPodFormatAnglesFrench + \ matchgroup=rakuPodFormat + \ start="«" + \ skip="«[^»]*»" + \ end="»" + \ transparent contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatAnglesOne,rakuPodFormatAnglesTwo,rakuPodFormatAnglesThree + +" All formatting codes + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="\u<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne,rakuPodFormatFrench,rakuPodFormatOne + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="\u<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAnglesTwo,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="\u<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="\u«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree + +" C<> and V<> don't allow nested formatting formatting codes + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="[CV]<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="[CV]<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAnglesTwo + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="[CV]<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="[CV]«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench + +" L<> can have a "|" separator + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="L<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne,rakuPodFormatFrench,rakuPodFormatOne,rakuPodVerticalBar + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="L<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAnglesTwo,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodVerticalBar + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="L<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodVerticalBar + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="L«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodVerticalBar + +" E<> can have a ";" separator + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="E<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne,rakuPodFormatFrench,rakuPodFormatOne,rakuPodSemiColon + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="E<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAnglesTwo,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodSemiColon + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="E<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodSemiColon + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="E«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodSemiColon + +" M<> can have a ":" separator + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="M<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne,rakuPodFormatFrench,rakuPodFormatOne,rakuPodColon + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="M<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAnglesTwo,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodColon + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="M<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodColon + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="M«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodColon + +" D<> can have "|" and ";" separators + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="D<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne,rakuPodFormatFrench,rakuPodFormatOne,rakuPodVerticalBar,rakuPodSemiColon + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="D<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAngleTwo,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodVerticalBar,rakuPodSemiColon + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="D<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodVerticalBar,rakuPodSemiColon + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="D«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodVerticalBar,rakuPodSemiColon + +" X<> can have "|", "," and ";" separators + +syn region rakuPodFormatOne + \ matchgroup=rakuPodFormatCode + \ start="X<" + \ skip="<[^>]*>" + \ end=">" + \ contained + \ contains=rakuPodFormatAnglesOne,rakuPodFormatFrench,rakuPodFormatOne,rakuPodVerticalBar,rakuPodSemiColon,rakuPodComma + +syn region rakuPodFormatTwo + \ matchgroup=rakuPodFormatCode + \ start="X<<" + \ skip="<<[^>]*>>" + \ end=">>" + \ contained + \ contains=rakuPodFormatAnglesTwo,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodVerticalBar,rakuPodSemiColon,rakuPodComma + +syn region rakuPodFormatThree + \ matchgroup=rakuPodFormatCode + \ start="X<<<" + \ skip="<<<[^>]*>>>" + \ end=">>>" + \ contained + \ contains=rakuPodFormatAnglesThree,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodVerticalBar,rakuPodSemiColon,rakuPodComma + +syn region rakuPodFormatFrench + \ matchgroup=rakuPodFormatCode + \ start="X«" + \ skip="«[^»]*»" + \ end="»" + \ contained + \ contains=rakuPodFormatAnglesFrench,rakuPodFormatFrench,rakuPodFormatOne,rakuPodFormatTwo,rakuPodFormatThree,rakuPodVerticalBar,rakuPodSemiColon,rakuPodComma + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_raku_syntax_inits") + if version < 508 + let did_raku_syntax_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink rakuEscOctOld rakuError + HiLink rakuPackageTwigil rakuTwigil + HiLink rakuStringAngle rakuString + HiLink rakuStringAngleFixed rakuString + HiLink rakuStringFrench rakuString + HiLink rakuStringAngles rakuString + HiLink rakuStringSQ rakuString + HiLink rakuStringDQ rakuString + HiLink rakuStringQ rakuString + HiLink rakuStringQ_q rakuString + HiLink rakuStringQ_qww rakuString + HiLink rakuStringQ_qq rakuString + HiLink rakuStringQ_to rakuString + HiLink rakuStringQ_qto rakuString + HiLink rakuStringQ_qqto rakuString + HiLink rakuRxStringSQ rakuString + HiLink rakuRxStringDQ rakuString + HiLink rakuReplacement rakuString + HiLink rakuReplCurly rakuString + HiLink rakuReplAngle rakuString + HiLink rakuReplFrench rakuString + HiLink rakuReplBracket rakuString + HiLink rakuReplParen rakuString + HiLink rakuTransliteration rakuString + HiLink rakuTransRepl rakuString + HiLink rakuTransReplCurly rakuString + HiLink rakuTransReplAngle rakuString + HiLink rakuTransReplFrench rakuString + HiLink rakuTransReplBracket rakuString + HiLink rakuTransReplParen rakuString + HiLink rakuStringAuto rakuString + HiLink rakuKey rakuString + HiLink rakuMatch rakuString + HiLink rakuSubstitution rakuString + HiLink rakuMatchBare rakuString + HiLink rakuRegexBlock rakuString + HiLink rakuRxP5CharClass rakuString + HiLink rakuRxP5QuoteMeta rakuString + HiLink rakuRxCharClass rakuString + HiLink rakuRxQuoteWords rakuString + HiLink rakuReduceOp rakuOperator + HiLink rakuSetOp rakuOperator + HiLink rakuRSXZOp rakuOperator + HiLink rakuHyperOp rakuOperator + HiLink rakuPostHyperOp rakuOperator + HiLink rakuQuoteQ rakuQuote + HiLink rakuQuoteQ_q rakuQuote + HiLink rakuQuoteQ_qww rakuQuote + HiLink rakuQuoteQ_qq rakuQuote + HiLink rakuQuoteQ_to rakuQuote + HiLink rakuQuoteQ_qto rakuQuote + HiLink rakuQuoteQ_qqto rakuQuote + HiLink rakuQuoteQ_PIR rakuQuote + HiLink rakuMatchStart_m rakuQuote + HiLink rakuMatchStart_s rakuQuote + HiLink rakuMatchStart_tr rakuQuote + HiLink rakuBareSigil rakuVariable + HiLink rakuRxRange rakuStringSpecial + HiLink rakuRxAnchor rakuStringSpecial + HiLink rakuRxBoundary rakuStringSpecial + HiLink rakuRxP5Anchor rakuStringSpecial + HiLink rakuCodePoint rakuStringSpecial + HiLink rakuRxMeta rakuStringSpecial + HiLink rakuRxP5Range rakuStringSpecial + HiLink rakuRxP5CPId rakuStringSpecial + HiLink rakuRxP5Posix rakuStringSpecial + HiLink rakuRxP5Mod rakuStringSpecial + HiLink rakuRxP5HexSeq rakuStringSpecial + HiLink rakuRxP5OctSeq rakuStringSpecial + HiLink rakuRxP5WriteRefId rakuStringSpecial + HiLink rakuHexSequence rakuStringSpecial + HiLink rakuOctSequence rakuStringSpecial + HiLink rakuRxP5Named rakuStringSpecial + HiLink rakuRxP5PropId rakuStringSpecial + HiLink rakuRxP5Quantifier rakuStringSpecial + HiLink rakuRxP5CountId rakuStringSpecial + HiLink rakuRxP5Verb rakuStringSpecial + HiLink rakuRxAssertGroup rakuStringSpecial2 + HiLink rakuEscape rakuStringSpecial2 + HiLink rakuEscNull rakuStringSpecial2 + HiLink rakuEscHash rakuStringSpecial2 + HiLink rakuEscQQ rakuStringSpecial2 + HiLink rakuEscQuote rakuStringSpecial2 + HiLink rakuEscDoubleQuote rakuStringSpecial2 + HiLink rakuEscBackTick rakuStringSpecial2 + HiLink rakuEscForwardSlash rakuStringSpecial2 + HiLink rakuEscVerticalBar rakuStringSpecial2 + HiLink rakuEscExclamation rakuStringSpecial2 + HiLink rakuEscDollar rakuStringSpecial2 + HiLink rakuEscOpenCurly rakuStringSpecial2 + HiLink rakuEscCloseCurly rakuStringSpecial2 + HiLink rakuEscCloseBracket rakuStringSpecial2 + HiLink rakuEscCloseAngle rakuStringSpecial2 + HiLink rakuEscCloseFrench rakuStringSpecial2 + HiLink rakuEscBackSlash rakuStringSpecial2 + HiLink rakuEscCodePoint rakuStringSpecial2 + HiLink rakuEscOct rakuStringSpecial2 + HiLink rakuEscHex rakuStringSpecial2 + HiLink rakuRxEscape rakuStringSpecial2 + HiLink rakuRxCapture rakuStringSpecial2 + HiLink rakuRxAlternation rakuStringSpecial2 + HiLink rakuRxP5 rakuStringSpecial2 + HiLink rakuRxP5ReadRef rakuStringSpecial2 + HiLink rakuRxP5Oct rakuStringSpecial2 + HiLink rakuRxP5Hex rakuStringSpecial2 + HiLink rakuRxP5EscMeta rakuStringSpecial2 + HiLink rakuRxP5Meta rakuStringSpecial2 + HiLink rakuRxP5Escape rakuStringSpecial2 + HiLink rakuRxP5CodePoint rakuStringSpecial2 + HiLink rakuRxP5WriteRef rakuStringSpecial2 + HiLink rakuRxP5Prop rakuStringSpecial2 + + HiLink rakuProperty Tag + HiLink rakuAttention Todo + HiLink rakuType Type + HiLink rakuError Error + HiLink rakuBlockLabel Label + HiLink rakuNormal Normal + HiLink rakuIdentifier Normal + HiLink rakuPackage Normal + HiLink rakuPackageScope Normal + HiLink rakuNumber Number + HiLink rakuOctNumber Number + HiLink rakuBinNumber Number + HiLink rakuHexNumber Number + HiLink rakuDecNumber Number + HiLink rakuString String + HiLink rakuRepeat Repeat + HiLink rakuPragma Keyword + HiLink rakuPreDeclare Keyword + HiLink rakuDeclare Keyword + HiLink rakuDeclareRegex Keyword + HiLink rakuVarStorage Special + HiLink rakuFlowControl Special + HiLink rakuOctBase Special + HiLink rakuBinBase Special + HiLink rakuHexBase Special + HiLink rakuDecBase Special + HiLink rakuTwigil Special + HiLink rakuStringSpecial2 Special + HiLink rakuVersion Special + HiLink rakuComment Comment + HiLink rakuBracketComment Comment + HiLink rakuInclude Include + HiLink rakuShebang PreProc + HiLink rakuClosureTrait PreProc + HiLink rakuOperator Operator + HiLink rakuContext Operator + HiLink rakuQuote Delimiter + HiLink rakuTypeConstraint PreCondit + HiLink rakuException Exception + HiLink rakuVariable Identifier + HiLink rakuVarSlash Identifier + HiLink rakuVarNum Identifier + HiLink rakuVarExclam Identifier + HiLink rakuVarMatch Identifier + HiLink rakuVarName Identifier + HiLink rakuMatchVar Identifier + HiLink rakuRxP5ReadRefId Identifier + HiLink rakuRxP5ModDef Identifier + HiLink rakuRxP5ModName Identifier + HiLink rakuConditional Conditional + HiLink rakuStringSpecial SpecialChar + + HiLink rakuPodAbbr rakuPod + HiLink rakuPodAbbrEOF rakuPod + HiLink rakuPodAbbrNoCode rakuPod + HiLink rakuPodAbbrCode rakuPodCode + HiLink rakuPodPara rakuPod + HiLink rakuPodParaEOF rakuPod + HiLink rakuPodParaNoCode rakuPod + HiLink rakuPodParaCode rakuPodCode + HiLink rakuPodDelim rakuPod + HiLink rakuPodDelimEOF rakuPod + HiLink rakuPodDelimNoCode rakuPod + HiLink rakuPodDelimCode rakuPodCode + HiLink rakuPodImplicitCode rakuPodCode + HiLink rakuPodExtraConfig rakuPodPrefix + HiLink rakuPodVerticalBar rakuPodFormatCode + HiLink rakuPodColon rakuPodFormatCode + HiLink rakuPodSemicolon rakuPodFormatCode + HiLink rakuPodComma rakuPodFormatCode + HiLink rakuPodFormatOne rakuPodFormat + HiLink rakuPodFormatTwo rakuPodFormat + HiLink rakuPodFormatThree rakuPodFormat + HiLink rakuPodFormatFrench rakuPodFormat + + HiLink rakuPodType Type + HiLink rakuPodConfigOption String + HiLink rakuPodCode PreProc + HiLink rakuPod Comment + HiLink rakuPodComment Comment + HiLink rakuPodAutoQuote Operator + HiLink rakuPodConfigOperator Operator + HiLink rakuPodPrefix Statement + HiLink rakuPodName Identifier + HiLink rakuPodFormatCode SpecialChar + HiLink rakuPodFormat SpecialComment + + delcommand HiLink +endif + +if exists("raku_fold") || exists("raku_extended_all") + setl foldmethod=syntax + syn region rakuBlockFold + \ start="^\z(\s*\)\%(my\|our\|augment\|multi\|proto\|only\)\?\s*\%(\%([A-Za-z_\xC0-\xFF]\%([A-Za-z_\xC0-\xFF0-9]\|[-'][A-Za-z_\xC0-\xFF]\@=\)*\)\s\+\)\?\<\%(CATCH\|try\|ENTER\|LEAVE\|CHECK\|INIT\|BEGIN\|END\|KEEP\|UNDO\|PRE\|POST\|module\|package\|enum\|subset\|class\|sub\%(method\)\?\|multi\|method\|slang\|grammar\|regex\|token\|rule\)\>[^{]\+\%({\s*\%(#.*\)\?\)\?$" + \ end="^\z1}" + \ transparent fold keepend extend +endif + +let b:current_syntax = "raku" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim:ts=8:sts=4:sw=4:expandtab:ft=vim diff --git a/runtime/syntax/raml.vim b/runtime/syntax/raml.vim new file mode 100644 index 0000000..062a71c --- /dev/null +++ b/runtime/syntax/raml.vim @@ -0,0 +1,106 @@ +" Vim syntax file +" Language: RAML (RESTful API Modeling Language) +" Maintainer: Eric Hopkins +" URL: https://github.com/in3d/vim-raml +" License: Same as Vim +" Last Change: 2018-11-03 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword ramlTodo contained TODO FIXME XXX NOTE + +syn region ramlComment display oneline start='\%(^\|\s\)#' end='$' + \ contains=ramlTodo,@Spell + +syn region ramlVersion display oneline start='#%RAML' end='$' + +syn match ramlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)' + +syn match ramlAnchor '&.\+' + +syn match ramlAlias '\*.\+' + +syn match ramlDelimiter '[-,:]' +syn match ramlBlock '[\[\]{}>|]' +syn match ramlOperator '[?+-]' +syn match ramlKey '\h\+\(?\)\?\ze\s*:' +syn match ramlKey '\w\+\(\s\+\w\+\)*\(?\)\?\ze\s*:' +syn match routeKey '\/\w\+\(\s\+\w\+\)*\ze\s*:' +syn match routeKey 'application\/\w\+\ze\s*:' +syn match routeParamKey '\/{\w\+}*\ze\s*:' + +syn region ramlString matchgroup=ramlStringDelimiter + \ start=+\s"+ skip=+\\"+ end=+"+ + \ contains=ramlEscape +syn region ramlString matchgroup=ramlStringDelimiter + \ start=+\s'+ skip=+''+ end=+'+ + \ contains=ramlStringEscape +syn region ramlParameter matchgroup=ramlParameterDelimiter + \ start=+<<+ skip=+''+ end=+>>+ +syn match ramlEscape contained display +\\[\\"abefnrtv^0_ NLP]+ +syn match ramlEscape contained display '\\x\x\{2}' +syn match ramlEscape contained display '\\u\x\{4}' +syn match ramlEscape contained display '\\U\x\{8}' +syn match ramlEscape display '\\\%(\r\n\|[\r\n]\)' +syn match ramlStringEscape contained +''+ + +syn match ramlNumber display + \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' +syn match ramlNumber display '0\o\+' +syn match ramlNumber display '0x\x\+' +syn match ramlNumber display '([+-]\=[iI]nf)' +syn match ramlNumber display '(NaN)' + +syn match ramlConstant '\<[~yn]\>' +syn keyword ramlConstant true True TRUE false False FALSE +syn keyword ramlConstant yes Yes on ON no No off OFF +syn keyword ramlConstant null Null NULL nil Nil NIL + +syn keyword httpVerbs get post put delete head patch options +syn keyword ramlTypes string number integer date boolean file + +syn match ramlTimestamp '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\=' + +syn region ramlDocumentHeader start='---' end='$' contains=ramlDirective +syn match ramlDocumentEnd '\.\.\.' + +syn match ramlDirective contained '%[^:]\+:.\+' + +hi def link ramlVersion String +hi def link routeInterpolation String +hi def link ramlInterpolation Constant +hi def link ramlTodo Todo +hi def link ramlComment Comment +hi def link ramlDocumentHeader PreProc +hi def link ramlDocumentEnd PreProc +hi def link ramlDirective Keyword +hi def link ramlNodeProperty Type +hi def link ramlAnchor Type +hi def link ramlAlias Type +hi def link ramlBlock Operator +hi def link ramlOperator Operator +hi def link routeParamKey SpecialChar +hi def link ramlKey Identifier +hi def link routeKey SpecialChar +hi def link ramlParameterDelimiter Type +hi def link ramlParameter Type +hi def link ramlString String +hi def link ramlStringDelimiter ramlString +hi def link ramlEscape SpecialChar +hi def link ramlStringEscape SpecialChar +hi def link ramlNumber Number +hi def link ramlConstant Constant +hi def link ramlTimestamp Number +hi def link httpVerbs Statement +hi def link ramlTypes Type +hi def link ramlDelimiter Delimiter + +let b:current_syntax = "raml" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/rapid.vim b/runtime/syntax/rapid.vim new file mode 100644 index 0000000..ed0da09 --- /dev/null +++ b/runtime/syntax/rapid.vim @@ -0,0 +1,687 @@ +" ABB Rapid Command syntax file for Vim +" Language: ABB Rapid Command +" Maintainer: Patrick Meiser-Knosowski +" Version: 2.3.0 +" Last Change: 21. Jul 2023 +" Credits: Thanks for beta testing to Thomas Baginski +" +" Suggestions of improvement are very welcome. Please email me! +" +" +" +" Note to self: +" for testing perfomance +" open a 1000 lines file. +" :syntime on +" G +" hold down CTRL-U until reaching top +" :syntime report +" +" +" TODO: - highlight rapid constants and maybe constants from common +" technology packages +" - optimize rapidErrorStringTooLong +" - error highlight for missing 2nd point in MoveCirc et al + +" Init {{{ +" Remove any old syntax stuff that was loaded (5.x) or quit when a syntax file +" was already loaded (6.x). +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +let s:keepcpo= &cpo +set cpo&vim + +" if colorscheme is tortus rapidNoHighLink defaults to 1 +if (get(g:,'colors_name'," ")=="tortus" || get(g:,'colors_name'," ")=="tortusless") + \&& !exists("g:rapidGroupName") + let g:rapidGroupName=1 +endif +" rapidGroupName defaults to 0 if it's not initialized yet or 0 +if !get(g:,"rapidGroupName",0) + let g:rapidGroupName=0 +endif + +" Rapid does ignore case +syn case ignore +" spell checking +syn spell notoplevel +" }}} init + +" common highlighting {{{ + +" Error {{{ +if get(g:,'rapidShowError',1) + " + " This error must be defined befor rapidCharCode and rapidEscapedBackSlash + " a string containing a single \ which is not a char code + syn match rapidErrorSingleBackslash /\\/ contained + highlight default link rapidErrorSingleBackslash Error + " +endif +" }}} Error + +" Constant values {{{ +" Boolean +syn keyword rapidBoolean TRUE FALSE Edge High Low +highlight default link rapidBoolean Boolean +" Float (num) +" syn match rapidFloat /\v%(\W|_)@1<=[+-]?\d+\.?\d*%(\s*[eE][+-]?\d+)?/ +syn match rapidFloat /\v\c%(<\d+\.|\.?<\d)\d*%(E[+-]?\d+)?>/ contains=rapidOperator +highlight default link rapidFloat Float +" integer in decimal, hexadecimal, octal and binary +syn match rapidDec /\<[0-9]\+\>/ +highlight default link rapidDec Number +syn match rapidHex /\<0x[0-9a-fA-F]\+\>/ +highlight default link rapidHex Number +syn match rapidOct /\<0o[0-7]\+\>/ +highlight default link rapidOct Number +syn match rapidBin /\<0b[01]\+\>/ +highlight default link rapidBin Number +" String. Note: Don't rename group rapidString. Indent depend on this +syn region rapidString matchgroup=rapidString start=/"/ skip=/""/ end=/"/ oneline contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash,rapidErrorStringTooLong,@Spell +highlight default link rapidString String +" two adjacent "" in string for one double quote +syn match rapidStringDoubleQuote /""/ contained +highlight default link rapidStringDoubleQuote SpecialChar +" character code in string +syn match rapidCharCode /\\\x\x/ contained +highlight default link rapidCharCode SpecialChar +" escaped \ in string +syn match rapidEscapedBackSlash /\\\\/ contained +highlight default link rapidEscapedBackSlash SpecialChar +" }}} Constant values + +" }}} common highlighting + +if bufname("%") =~ '\c\.cfg$' +" {{{ highlighting for *.cfg + + " special chars {{{ + " syn match rapidOperator /:\|[+-]\|\*\|\/\|\\/ + syn match rapidOperator /[-+*/:\\]/ + syn match rapidOperator /^#/ + highlight default link rapidOperator Operator + " }}} special chars + + " sections {{{ + syn match rapidException /^\w\+/ + syn match rapidException /CFG_\d\+/ + highlight default link rapidException Exception + " }}} sections + + " Error {{{ + if get(g:,'rapidShowError',1) + " + " This error must be defined after rapidString + " Any Name longer than 32 chars + syn match rapidErrorNameTooLong /-Name "[^"]\{33,}"/ + highlight default link rapidErrorNameTooLong Error + " + endif + " }}} Error + + " }}} highlighting for *.cfg +else + " highlighting for *.mod, *.sys and *.prg {{{ + + " sync for regions from a line comment or the start of a function + syn sync match rapidSync grouphere NONE /\v\c^\s*%(!|%(task\s+|local\s+)?%(module|proc|func|trap|record)>)/ + + " Comment {{{ + " TODO Comment + syn match rapidTodoComment contained /\\|\\|\/ + highlight default link rapidTodoComment Todo + " Debug comment + syn match rapidDebugComment contained /\/ + highlight default link rapidDebugComment Debug + " Line comment + syn match rapidComment /!.*$/ contains=rapidTodoComment,rapidDebugComment,@Spell + highlight default link rapidComment Comment + " }}} Comment + + " Header {{{ + syn match rapidHeader /^%%%/ + highlight default link rapidHeader PreProc + " }}} Header + + " Operator {{{ + " Boolean operator + syn keyword rapidOperator and or xor not div mod + " Arithmetic and compare operator + syn match rapidOperator /[-+*/<>:=]/ + " conditional argument + syn match rapidOperator /?/ + highlight default link rapidOperator Operator + " }}} Operator + + " Type, StorageClass and Typedef {{{ + " anytype (preceded by 'alias|pers|var|const|func' + " TODO: still missing are userdefined types which are part of a parameter: + " PROC message( mystring msMessagePart1{}, + " \ myvar msMsg4{}) + " TODO testing. Problem: does not highlight any type if it's part of an argument list + " syn match rapidAnyType /\v^\s*(global\s+|task\s+|local\s+)?(alias|pers|var|const|func)\s+\w+>/ contains=rapidStorageClass,rapidType,rapidTypeDef + " highlight default link rapidAnyType Type + syn keyword rapidType accdata aiotrigg bool btnres busstate buttondata byte + syn keyword rapidType cfgdomain clock cnvcmd confdata confsupdata corrdescr datapos deflectiondata dionum dir dnum + syn keyword rapidType egmframetype egmident egm_minmax egmstate egmstopmode errdomain errnum ErrorInfo errstr errtype event_type exec_level extjoint handler_type + syn keyword rapidType icondata identno inposdata intnum inttypes iodev iounit_state jointtarget + syn keyword rapidType listitem loaddata loadidnum loadsession mecunit motionprocessmode motsetdata + " syn keyword rapidType num + syn keyword rapidType opcalc opnum orient paridnum paridvalidnum pathrecid pnpdata pos pose proc_times progdisp o_jointtarget o_robtarget + syn keyword rapidType rawbytes restartdata rmqheader rmqmessage rmqslot robjoint robtarget + syn keyword rapidType searchdata sensor sensorstate sensorvardata shapedata signalai signalao signaldi signaldo signalgi signalgo signalorigin singdata socketdev socketstatus speeddata stopmovestartmove_mem stoppoint stoppointdata string stringdig sup_timeouts supervtype switch symnum syncident + syn keyword rapidType taskid tasks tasksatstart testsignal tooldata tpnum trapdata triggdata triggflag triggios triggiosdnum triggmode triggstrgo tsp_status tunegtype tunetype + syn keyword rapidType uishownum veldata visiondata wobjdata wzstationary wztemporary zonedata + " SoftMove data types + syn keyword rapidType css_offset_dir css_soft_dir cssframe + " arc data types + syn keyword rapidType advSeamData arcdata flystartdata seamdata arctrackdata opttrackdata weavedata welddata + " conveyor tracking data types + syn keyword rapidType indcnvdata + " Integrated Vision data types + syn keyword rapidType cameradev cameratarget + " arc Weldguide and MultiPass data types + syn keyword rapidType adaptdata trackdata multidata + " dispense data types + syn keyword rapidType beaddata equipdata + " Spot data types + syn keyword rapidType gundata gunnum spotdata forcedata simdata smeqdata smeqtype + " Tool change data types + syn keyword rapidType standno ToolInfo toolno + " Continuous Application Platform data types + syn keyword rapidType capaptrreferencedata capdata capevent caplatrackdata capmvsttim capspeeddata capspeeddata capstopmode captestno captrackdata capweavedata flypointdata processtimes restartblkdata supervtimeouts weavestartdata + " Bulls Eye data types + syn keyword rapidType be_device be_scan be_tooldesign + " Force Control data types + syn keyword rapidType fcboxvol fccondstatus fccylindervol fcdamping fcforcevector fcframe fclindir fcprocessdata fcplane fcrotdir fcspeedvector fcspherevol fcspdchgtunetype fcxyznum + " Discrete application platform data types + syn keyword rapidType dadescapp dadescprc daintdata + " VW Konzernstandard VWKS_1.07.02 + syn keyword rapidType merker + syn keyword rapidType frgnum frgwert robnum + syn keyword rapidType fmnum applid calibdatavorr stepdata + syn keyword rapidType tsmethode tsdaten teilspeicherdaten + syn keyword rapidType greiferdaten greiferposition bauteildaten bauteilkontrolle g_datenident g_sensor g_signal g_teilident g_ventil + syn keyword rapidType strgnum typnum + syn keyword rapidType hubnum kopfnum + syn keyword rapidType applservicetype + syn keyword rapidType applfraesdaten kwdionum + syn keyword rapidType butechnum + syn keyword rapidType toolnum dbnum + " das folgende sind datentypen aber das kann man doch nicht machen... + " syn keyword rapidType position wert + syn keyword rapidType camdata camlimitdata cammode camprotocoldata camstatus camsequence campositionstatus + syn keyword rapidType saposnum sabereichnum autofocusnum focusposnum lascaledata laleistungnum larobnum laprognum uebwnum dgbanum dgjobnum gasspuelnum davalve gasuebwnum + syn keyword rapidType lsfigurnum lsstarttype + syn keyword rapidType lwprognum lwdiodnum lsstarttype + syn keyword rapidType lztype diskrethubnum lztipnum + syn keyword rapidType gblmethod + syn keyword rapidType buatypenum buatechnum buadirnum + highlight default link rapidType Type + " Storage class + syn keyword rapidStorageClass LOCAL TASK VAR PERS CONST ALIAS NOVIEW NOSTEPIN VIEWONLY READONLY SYSMODULE INOUT + highlight default link rapidStorageClass StorageClass + " Not a typedef but I like to have those highlighted different then types, + " structures or strorage classes + syn keyword rapidTypeDef MODULE ENDMODULE PROC ERROR UNDO BACKWARD ENDPROC RECORD ENDRECORD TRAP ENDTRAP FUNC ENDFUNC + highlight default link rapidTypeDef TypeDef + " }}} Type, StorageClass and Typedef + + " Statements, keywords et al {{{ + " syn keyword rapidStatement + " highlight default link rapidStatement Statement + " Conditional + syn keyword rapidConditional if then elseif else endif test case default endtest + highlight default link rapidConditional Conditional + " Repeat + syn keyword rapidRepeat do + syn match rapidRepeat /\c\v^\s*%(|)%([^!]+)@=/ + syn keyword rapidRepeat from to step endfor endwhile + highlight default link rapidRepeat Repeat + " Label + syn keyword rapidLabel goto + syn match rapidLabel /\c\v^\s*[[:upper:][:lower:]]\k*\:\ze%([^=]|$)/ contains=rapidConditional,rapidOperator + highlight default link rapidLabel Label + " Keyword + syn keyword rapidKeyword AccSet ActEventBuffer ActUnit Add AliasCamera AliasIO AliasIOReset BitClear BitSet BookErrNo BrakeCheck + syn keyword rapidKeyword CallByVar CancelLoad CheckProgRef CirPathMode Clear ClearIOBuff ClearPath ClearRawBytes ClkReset ClkStart ClkStop Close CloseDir ConfJ ConfL CONNECT CopyFile CopyRawBytes CornerPathWarning CorrClear CorrCon CorrDiscon CorrWrite + syn keyword rapidKeyword CSSAct CSSDeact CSSForceOffsetAct CSSForceOffsetDeact CSSOffsetTune CyclicBrakeCheck + syn keyword rapidKeyword DeactEventBuffer DeactUnit Decr DitherAct DitherDeact DropSensor + syn keyword rapidKeyword EGMActJoint EGMActMove EGMActPose EGMGetId EGMReset EGMSetupAI EGMSetupAO EGMSetupGI EGMSetupLTAPP EGMSetupUC EOffsOff EOffsOn EOffsSet EraseModule ErrLog ErrWrite + syn keyword rapidKeyword FitCircle FricIdInit FricIdEvaluate FricIdSetFricLevels + syn keyword rapidKeyword GetDataVal GetGroupSignalInfo GetJointData GetSysData GetTorqueMargin GetTrapData GripLoad HollowWristReset + syn keyword rapidKeyword IDelete IDisable IEnable IError Incr IndReset InvertDO IOBusStart IOBusState IoCtrlAxis_RefSync IoCtrlAxis_RefSyncOff IoCtrlAxis_RefSyncOn IODisable IOEnable IPers IRMQMessage ISignalAI ISignalAO ISignalDI ISignalDO ISignalGI ISignalGO ISleep ITimer IVarValue IWatch + syn keyword rapidKeyword Load LoadId MakeDir ManLoadIdProc MatrixSolve MatrixSolveQR MatrixSVD MechUnitLoad MotionProcessModeSet MotionSup MToolRotCalib MToolTCPCalib Open OpenDir + syn keyword rapidKeyword PackDNHeader PackRawBytes PathAccLim PathLengthReset PathLengthStart PathLengthStop PathRecStart PathRecStop PathResol PDispOff PDispOn PDispSet ProcerrRecovery PrxActivAndStoreRecord PrxActivRecord PrxDbgStoreRecord PrxDeactRecord PrxResetPos PrxResetRecords PrxSetPosOffset PrxSetRecordSampleTime PrxSetSyncalarm PrxStartRecord PrxStopRecord PrxStoreRecord PrxUseFileRecord PulseDO + syn keyword rapidKeyword ReadAnyBin ReadBlock ReadCfgData ReadErrData ReadRawBytes ReadVarArr RemoveAllCyclicBool RemoveCyclicBool RemoveDir RemoveFile RenameFile Reset ResetAxisDistance ResetAxisMoveTime ResetPPMoved ResetRetryCount ResetTorqueMargin RestoPath Rewind RMQEmptyQueue RMQFindSlot RMQGetMessage RMQGetMsgData RMQGetMsgHeader RMQReadWait RMQSendMessage RMQSendWait + syn keyword rapidKeyword SafetyControllerSyncRequest Save SaveCfgData SCWrite SenDevice Set SetAllDataVal SetAO SetDataSearch SetDataVal SetDO SetGO SetLeadThrough SetSysData SetupCyclicBool SiConnect SiClose SiGetCyclic SingArea SiSetCyclic SkipWarn SocketAccept SocketBind SocketClose SocketConnect SocketCreate SocketListen SocketReceive SocketReceiveFrom SocketSend SocketSendTo SoftAct SoftDeact SoftElbow SpeedLimAxis SpeedLimCheckPoint SpeedRefresh SpyStart SpyStop StartLoad STCalib STClose STIndGun STIndGunReset SToolRotCalib SToolTCPCalib STOpen StorePath STTune STTuneReset SupSyncSensorOff SupSyncSensorOn SyncMoveOff SyncMoveOn SyncMoveResume SyncMoveSuspend SyncMoveUndo SyncToSensor SystemStopAction + syn keyword rapidKeyword TestSignDefine TestSignReset TextTabInstall TPErase TPReadDnum TPReadFK TPReadNum TPShow TPWrite TriggCheckIO TriggDataCopy TriggDataReset TriggEquip TriggInt TriggIO TriggRampAO TriggSpeed TriggStopProc TryInt TuneReset TuneServo + syn keyword rapidKeyword UIMsgBox UIMsgWrite UIMsgWriteAbort UIShow UnLoad UnpackRawBytes VelSet WaitAI WaitAO WaitDI WaitDO WaitGI WaitGO WaitLoad WaitRob WaitSensor WaitSyncTask WaitTestAndSet WaitTime WaitUntil WarmStart WITH WorldAccLim Write WriteAnyBin WriteBin WriteBlock WriteCfgData WriteRawBytes WriteStrBin WriteVar WriteVarArr WZBoxDef WZCylDef WZDisable WZDOSet WZEnable WZFree WZHomeJointDef WZLimJointDef WZLimSup WZSphDef + " arc instructions + syn keyword rapidKeyword ArcRefresh RecoveryMenu RecoveryMenuWR RecoveryPosSet RecoveryPosReset SetWRProcName + " conveyor tracking instructions + syn keyword rapidKeyword UseACCProfile WaitWObj DropWObj RecordProfile WaitAndRecProf StoreProfile LoadProfile ActivateProfile DeactProfile CnvGenInstr CnvSync CnvGenInstr IndCnvInit IndCnvEnable IndCnvDisable IndCnvReset IndCnvAddObject + syn keyword rapidKeyword UseReachableTargets GetMaxUsageTime ResetMaxUsageTime CnvPredictReach + " Integrated Vision instructions + syn keyword rapidKeyword CamFlush CamGetParameter CamGetResult CamLoadJob CamReqImage CamSetExposure CamSetParameter CamSetProgramMode CamSetRunMode CamStartLoadJob CamWaitLoadJob + " arc Weldguide and MultiPass instructions + syn keyword rapidKeyword MPSavePath MPLoadPath MPReadInPath MPOffsEaxOnPath + " Paint instructions + syn keyword rapidKeyword ConsoleWrite IpsSetParam PntProdUserLog SetBrush SetBrushFac + " Spot instructions + syn keyword rapidKeyword SetForce Calibrate ReCalcTCP IndGunMove IndGunMoveReset OpenHighLift CloseHighLift SwSetIntSpotData SwSetIntForceData SwSetIntGunData SwSetIntSimData SwGetCalibData SwGetFixTipData + " Tool change instructions + syn keyword rapidKeyword TcCloseCover TcDropOffTool TcLockTool TcOpenCover TcPickupTool TcUnlockTool + " dispense instructions + syn keyword rapidKeyword SetTmSignal SyncWWObj + " Continuous Application Platform instructions + syn keyword rapidKeyword CapAPTrSetup CapAPTrSetupAI CapAPTrSetupAO CapAPTrSetupPERS CapCondSetDO CapEquiDist CapNoProcess CapRefresh CAPSetStopMode CapWeaveSync ICap InitSuperv IPathPos RemoveSuperv SetupSuperv + " Bulls Eye instructions + syn keyword rapidKeyword BECheckTcp BEDebugState BERefPointer BESetupToolJ BETcpExtend BEUpdateTcp + " Force Control instructions + syn keyword rapidKeyword FCAct FCCalib FCCondForce FCCondOrient FCCondPos FCCondReoriSpeed FCCondTCPSpeed FCCondTorque FCCondWaitWhile FCDeact FCPress1LStart FCPressC FCPressEnd FCPressL FCRefCircle FCRefForce FCRefLine FCRefMoveFrame FCRefRot FCRefSpiral FCRefSprForceCart FCRefStart FCRefStop FCRefTorque FCResetDampingTune FCResetLPFilterTune FCSpdChgAct FCSpdChgDeact FCSpdChgTunSet FCSpdChgTunReset FCSetDampingTune FCSetLPFilterTune FCSupvForce FCSupvOrient FCSupvPos FCSupvReoriSpeed FCSupvTCPSpeed FCSupvTorque + " Discrete application platform instructions + syn keyword rapidKeyword DaActProc DaDeactAllProc DaDeactProc DaDefExtSig DaDefProcData DaDefProcSig DaDefUserData DaGetCurrData DaSetCurrData DaSetupAppBehav DaStartManAction DaGetAppDescr DaGetAppIndex DaGetNumOfProcs DaGetNumOfRob DaGetPrcDescr + " Production Manager instructions + syn keyword rapidKeyword ExecEngine PMgrGetNextPart PMgrSetNextPart PMgrRunMenu + " Homepos-Running instructions + syn keyword rapidKeyword HR_Exit HR_ExitCycle HR_SavePos HR_SetMoveToStartPos HR_SetTypeDIndex HR_SetTypeIndex + highlight default link rapidKeyword Keyword + " Exception + syn keyword rapidException Exit ErrRaise ExitCycle Raise RaiseToUser Retry Return TryNext + syn match rapidException /\s\+Stop\s*[\\;]/me=e-1 + highlight default link rapidException Exception + " }}} Statements, keywords et al + + " Special keyword for move command {{{ + " uncategorized yet + syn keyword rapidMovement MovePnP + syn keyword rapidMovement EGMMoveC EGMMoveL EGMRunJoint EGMRunPose EGMStop + syn keyword rapidMovement IndAMove IndCMove IndDMove IndRMove + " common instructions + syn keyword rapidMovement MoveAbsJ MoveC MoveExtJ MoveJ MoveL + syn keyword rapidMovement MoveCAO MoveCDO MoveCGO MoveCSync MoveJAO MoveJDO MoveJGO MoveJSync MoveLAO MoveLDO MoveLGO MoveLSync + syn keyword rapidMovement SearchC SearchExtJ SearchL + syn keyword rapidMovement TriggC TriggJ TriggL TriggJIOs TriggLIOs + " Arc instructions + syn keyword rapidMovement ArcC ArcC1 ArcC2 ArcCEnd ArcC1End ArcC2End ArcCStart ArcC1Start ArcC2Start + syn keyword rapidMovement ArcL ArcL1 ArcL2 ArcLEnd ArcL1End ArcL2End ArcLStart ArcL1Start ArcL2Start ArcMoveExtJ + " Arc Weldguide and MultiPass instructions + syn keyword rapidMovement ArcRepL ArcAdaptLStart ArcAdaptL ArcAdaptC ArcAdaptLEnd ArcAdaptCEnd ArcCalcLStart ArcCalcL ArcCalcC ArcCalcLEnd ArcCalcCEnd ArcAdaptRepL + syn keyword rapidMovement Break + " Continuous Application Platform instructions + syn keyword rapidMovement CapC CapL CapLATrSetup CSSDeactMoveL ContactL + " Dispense instructions + syn keyword rapidMovement DispL DispC + " Nut instructions" + syn keyword rapidMovement NutL NutJ + syn keyword rapidMovement PathRecMoveBwd PathRecMoveFwd + " Paint instructions" + syn keyword rapidMovement PaintL PaintLSig PaintLDO PaintC + syn keyword rapidMovement StartMove StartMoveRetry StepBwdPath StopMove StopMoveReset + " Spot instructions + syn keyword rapidMovement SpotL SpotJ SpotML SpotMJ CalibL CalibJ MeasureWearL + " Homepos-Running instructions + syn keyword rapidMovement SMoveJ SMoveJDO SMoveJGO SMoveJSync SMoveL SMoveLDO SMoveLGO SMoveLSync SSearchL STriggJ STriggL + syn keyword rapidMovement HR_ContMove HR_MoveBack HR_MoveRoutine HR_MoveTo HR_MoveToHome SCSSDeactMoveL + " Discrete application platform instructions + syn keyword rapidMovement DaProcML DaProcMJ + " VW Konzernstandard VWKS_1.07.02 + syn keyword rapidMovement MoveABS MoveABS_FB MoveABS_FRG MoveABS_ROB + syn keyword rapidMovement MoveCIRC MoveCIRC_FB MoveCIRC_FRG MoveCIRC_ROB + syn keyword rapidMovement MoveLIN MoveLIN_FB MoveLIN_FRG MoveLIN_ROB + syn keyword rapidMovement MovePTP MovePTP_FB MovePTP_FRG MovePTP_ROB + syn keyword rapidMovement SearchCIRC SearchCIRC_M + syn keyword rapidMovement SearchLIN SearchLIN_M + syn keyword rapidMovement MoveABS_AO MoveABS_DO MoveABS_GO + syn keyword rapidMovement MoveCIRC_AO MoveCIRC_DO MoveCIRC_GO + syn keyword rapidMovement MoveLIN_AO MoveLIN_DO MoveLIN_GO + syn keyword rapidMovement KW_LoesenLIN + syn keyword rapidMovement SPZ_FraesenLIN SPZ_FraesenPTP SPZ_MessenLIN SPZ_MessenPTP SPZ_LIN SPZ_PTP + syn keyword rapidMovement BZ_LIN BZ_PTP + syn keyword rapidMovement KL_LIN KL_CIRC + syn keyword rapidMovement BP_LIN BP_PTP + syn keyword rapidMovement BU_CIRC BU_LIN + syn keyword rapidMovement CZ_LIN CZ_LIN_V CZ_PTP CZ_PTP_V + syn keyword rapidMovement FD_LIN FD_PTP + syn keyword rapidMovement KG_LIN KG_PTP + syn keyword rapidMovement DA_LIN + syn keyword rapidMovement LK_CIRC LK_LIN + syn keyword rapidMovement LL_CIRC LL_LIN + syn keyword rapidMovement LS_CIRC LS_LIN LS_LIN_F LS_PTP_F + syn keyword rapidMovement LW_CIRC LW_LIN + syn keyword rapidMovement LZ_LIN LZ_PTP LZ_ReinigenLIN LZ_ReinigenPTP + syn keyword rapidMovement MS_CIRC MS_LIN MS_ReinigenLIN MS_SearchLIN MS_PTP_CS MS_LIN_CS GBL_LIN GBL_PTP GBL_RefPointLIN + syn keyword rapidMovement NK_LIN + syn keyword rapidMovement NZ_LIN NZ_LIN_V NZ_PTP NZ_PTP_V + syn keyword rapidMovement PR_LIN PR_PTP + syn keyword rapidMovement RF_CIRC RF_LIN + syn keyword rapidMovement STP_FraesenLIN STP_FraesenPTP STP_LIN STP_PTP + syn keyword rapidMovement SM_LIN SM_PTP + syn keyword rapidMovement BUA_CIRC BUA_LIN BUA_MessenLIN BUA_MessenPTP + syn keyword rapidMovement KE_LIN + if g:rapidGroupName + highlight default link rapidMovement Movement + else + highlight default link rapidMovement Special + endif + " }}} special keyword for move command + + " Any name {{{ + syn match rapidNames /\v[[:upper:][:lower:]](\k|\.)*/ + " }}} Any name + + " Attempt to avoid false highlight of num in case of parameter name: + " TPWrite "goPosNo="\num:=GOutput(goPosNo); + " Must follow after rapidNames in this file + syn match rapidType /\c\v\s*\ze[^ :]/ + + " Structure value {{{ + " rapid structrure values. added to be able to conceal them + syn region rapidConcealableString matchgroup=rapidConcealableString start=/"/ skip=/""/ end=/"/ oneline keepend extend contained contains=rapidStringDoubleQuote,rapidEscapedBackSlash,rapidCharCode,rapidErrorSingleBackslash,rapidErrorStringTooLong,@Spell conceal + highlight default link rapidConcealableString String + syn region rapidStructVal matchgroup=rapidStructDelimiter start=/\[/ end=/\]/ contains=rapidStructVal,rapidBoolean,rapidDec,rapidHex,rapidOct,rapidBin,rapidFloat,rapidConcealableString,rapidDelimiter,rapidConstant,rapidErrNo,rapidIntNo,rapidOperator keepend extend conceal cchar=* + highlight default link rapidStructDelimiter Delimiter + " check edge cases like this one: + " LOCAL CONST listitem lstAuswService{18}:=[["","Service Position"],["","Bremsentest"],["","Referenzfahrt"],["","Manuelles Abfahren"],["","Justagestellung"],["","Transportposition"], + " ["","Spitze-Spitze Greifer 1, [RT]"],["","Spitze-Spitze Greifer 2, [FT]"],["","Spitze-Spitze Pruefspitze"],["","Werkobjekt Ablage"],["","Werkobjekt Modul 1"], + " ["","Werkobjekt Modul 2"],["","TCP von Greifer 1 vermessen, [RT]"],["","TCP von Greifer 2 vermessen, [FT]"],["","TCP von Basisdorn vermessen"], + " ["","Greifer abdocken"],["","Greifer andocken"],["","Kollision Check (Ohne Greifer)"]]; + " }}} Structure value + + " Delimiter {{{ + syn match rapidDelimiter /[\\(){},;|]/ + highlight default link rapidDelimiter Delimiter + " }}} Delimiter + + " BuildInFunction {{{ + " dispense functions + syn keyword rapidBuildInFunction contained GetSignal GetSignalDnum + " Integrated Vision Platform functions + syn keyword rapidBuildInFunction contained CamGetExposure CamGetLoadedJob CamGetName CamNumberOfResults + " Continuous Application Platform functions + syn keyword rapidBuildInFunction contained CapGetFailSigs + syn keyword rapidBuildInFunction contained Abs AbsDnum ACos ACosDnum AInput AOutput ArgName ASin ASinDnum ATan ATanDnum ATan2 ATan2Dnum + syn keyword rapidBuildInFunction contained BitAnd BitAndDnum BitCheck BitCheckDnum BitLSh BitLShDnum BitNeg BitNegDnum BitOr BitOrDnum BitRSh BitRShDnum BitXOr BitXOrDnum ByteToStr + syn keyword rapidBuildInFunction contained CalcJointT CalcRobT CalcRotAxFrameZ CalcRotAxisFrame CDate CJointT ClkRead CorrRead Cos CosDnum CPos CRobT CrossProd CSpeedOverride CTime CTool CWObj + syn keyword rapidBuildInFunction contained DecToHex DefAccFrame DefDFrame DefFrame Dim DInput Distance DnumToNum DnumToStr DotProd DOutput + syn keyword rapidBuildInFunction contained EGMGetState EulerZYX EventType ExecHandler ExecLevel Exp + syn keyword rapidBuildInFunction contained FileSize FileTime FileTimeDnum FSSize + syn keyword rapidBuildInFunction contained GetAxisDistance GetAxisMoveTime GetMaxNumberOfCyclicBool GetMecUnitName GetModalPayLoadMode GetMotorTorque GetNextCyclicBool GetNextMechUnit GetNextSym GetNumberOfCyclicBool GetServiceInfo GetSignalOrigin GetSysInfo GetTaskName GetTime GetTSPStatus GetUASUserName GInput GInputDnum GOutput GOutputDnum + syn keyword rapidBuildInFunction contained HexToDec + syn keyword rapidBuildInFunction contained IndInpos IndSpeed IOUnitState IsBrakeCheckActive IsCyclicBool IsFile IsLeadThrough IsMechUnitActive IsPers IsStopMoveAct IsStopStateEvent IsSyncMoveOn IsSysId IsVar + syn keyword rapidBuildInFunction contained Max MaxExtLinearSpeed MaxExtReorientSpeed MaxRobReorientSpeed MaxRobSpeed Min MirPos ModExist ModTime ModTimeDnum MotionPlannerNo + syn keyword rapidBuildInFunction contained NonMotionMode NOrient NumToDnum NumToStr + syn keyword rapidBuildInFunction contained Offs OpMode OrientZYX ORobT + syn keyword rapidBuildInFunction contained ParIdPosValid ParIdRobValid PathLengthGet PathLevel PathRecValidBwd PathRecValidFwd PFRestart PoseInv PoseMult PoseVect Pow PowDnum PPMovedInManMode Present ProgMemFree PrxGetMaxRecordpos + syn keyword rapidBuildInFunction contained RawBytesLen ReadBin ReadDir ReadMotor ReadNum ReadStr ReadStrBin ReadVar RelTool RemainingRetries RMQGetSlotName RobName RobOS Round RoundDnum RunMode + syn keyword rapidBuildInFunction contained SafetyControllerGetChecksum SafetyControllerGetOpModePinCode SafetyControllerGetSWVersion SafetyControllerGetUserChecksum Sin SinDnum SocketGetStatus SocketPeek Sqrt SqrtDnum STCalcForce STCalcTorque STIsCalib STIsClosed STIsIndGun STIsOpen StrDigCalc StrDigCmp StrFind StrLen StrMap StrMatch StrMemb StrOrder StrPart StrToByte StrToVal + syn keyword rapidBuildInFunction contained Tan TanDnum TaskRunMec TaskRunRob TasksInSync TaskIsActive TaskIsExecuting TestAndSet TestDI TestSignRead TextGet TextTabFreeToUse TextTabGet TriggDataValid Trunc TruncDnum Type + syn keyword rapidBuildInFunction contained UIAlphaEntry UIClientExist UIDnumEntry UIDnumTune UIListView UIMessageBox UINumEntry UINumTune + syn keyword rapidBuildInFunction contained ValidIO ValToStr Vectmagn + " Bulls Eye functions + syn keyword rapidBuildInFunction contained OffsToolXYZ OffsToolPolar + " Force Control functions + syn keyword rapidBuildInFunction contained FCGetForce FCGetProcessData FCIsForceMode FCLoadID + " Discrete application platform functions + syn keyword rapidBuildInFunction contained DaGetFstTimeEvt DaCheckMMSOpt DaGetMP DaGetRobotName DaGetTaskName + " Production Manager functions + syn keyword rapidBuildInFunction contained PMgrAtSafe PMgrAtService PMgrAtState PMgrAtStation PMgrNextStation PMgrTaskNumber PMgrTaskName + " Spot functions + syn keyword rapidBuildInFunction contained SwGetCurrTargetName SwGetCurrSpotName + " Homepos-Running functions + syn keyword rapidBuildInFunction contained HR_RobotInHome HR_GetTypeDIndex HR_GetTypeIndex + " Paint functions + syn keyword rapidBuildInFunction contained IndexLookup IpsCommand IpsGetParam PaintCommand PntQueueExtraGet PntQueueExtraSet PntQueuePeek + if g:rapidGroupName + highlight default link rapidBuildInFunction BuildInFunction + else + highlight default link rapidBuildInFunction Function + endif + " }}} + + " Function {{{ + syn match rapidFunction contains=rapidBuildInFunction /\v\c%(<%(PROC|MODULE)\s+)@1032 chars are not possible in rapid. a234567890123456789012345 + syn match rapidErrorIdentifierNameTooLong /\k\{33,}/ containedin=rapidFunction,rapidNames,rapidLabel + highlight default link rapidErrorIdentifierNameTooLong Error + " + " a == b + 1 + syn match rapidErrorShouldBeColonEqual /\c\v%(^\s*%(%(TASK\s+|LOCAL\s+)?%(VAR|PERS|CONST)\s+\k+\s+)?\k+%(\k|[.{},*/+-])*\s*)@<=\=/ + highlight default link rapidErrorShouldBeColonEqual Error + " + " WaitUntil a==b + syn match rapidErrorShouldBeEqual /\c\v%(^\s*%(Return|WaitUntil|while)>[^!\\]+[^!<>])@<=%(\=|:)\=/ + syn match rapidErrorShouldBeEqual /\c\v%(^\s*%(if|elseif)>[^!\\]+[^!<>])@<=%(\=|:)\=\ze[^!\\]+/ + highlight default link rapidErrorShouldBeEqual Error + " + " WaitUntil a=>b + syn match rapidErrorShoudBeLessOrGreaterEqual /\c\v%(^\s*%(Return|WaitUntil|if|elseif|while)>[^!]+[^!<>])@<=\=[><]/ + highlight default link rapidErrorShoudBeLessOrGreaterEqual Error + " + " WaitUntil a>\s*\ +" URL: http://github.com/trapd00r/vim-syntax-ratpoison +" Last Change: 2021-04-12 13:46:04 +" Previous Maintainer: Doug Kearns + +if exists("b:current_syntax") + finish +endif + +syn match ratpoisonComment "^\s*#.*$" contains=ratpoisonTodo + +syn keyword ratpoisonTodo TODO NOTE FIXME XXX contained + +syn case ignore +syn keyword ratpoisonBooleanArg on off contained +syn case match + +syn keyword ratpoisonCommandArg abort addhook alias banish chdir contained +syn keyword ratpoisonCommandArg clrunmanaged cnext colon compat cother contained +syn keyword ratpoisonCommandArg cprev curframe dedicate definekey delete contained +syn keyword ratpoisonCommandArg delkmap describekey echo escape exec contained +syn keyword ratpoisonCommandArg fdump focus focusdown focuslast focusleft contained +syn keyword ratpoisonCommandArg focusprev focusright focusup frestore fselect contained +syn keyword ratpoisonCommandArg gdelete getenv getsel gmerge gmove contained +syn keyword ratpoisonCommandArg gnew gnewbg gnext gprev gravity contained +syn keyword ratpoisonCommandArg groups gselect help hsplit inext contained +syn keyword ratpoisonCommandArg info iother iprev kill lastmsg contained +syn keyword ratpoisonCommandArg license link listhook meta msgwait contained +syn keyword ratpoisonCommandArg newkmap newwm next nextscreen number contained +syn keyword ratpoisonCommandArg only other prev prevscreen prompt contained +syn keyword ratpoisonCommandArg putsel quit ratclick rathold ratrelwarp contained +syn keyword ratpoisonCommandArg ratwarp readkey redisplay redo remhook contained +syn keyword ratpoisonCommandArg remove resize restart rudeness sdump contained +syn keyword ratpoisonCommandArg select set setenv sfdump shrink contained +syn keyword ratpoisonCommandArg source sselect startup_message time title contained +syn keyword ratpoisonCommandArg tmpwm unalias undefinekey undo unmanage contained +syn keyword ratpoisonCommandArg unsetenv verbexec version vsplit warp contained +syn keyword ratpoisonCommandArg windows framefmt infofmt contained + +syn match ratpoisonGravityArg "\<\(n\|north\)\>" contained +syn match ratpoisonGravityArg "\<\(nw\|northwest\)\>" contained +syn match ratpoisonGravityArg "\<\(ne\|northeast\)\>" contained +syn match ratpoisonGravityArg "\<\(w\|west\)\>" contained +syn match ratpoisonGravityArg "\<\(c\|center\)\>" contained +syn match ratpoisonGravityArg "\<\(e\|east\)\>" contained +syn match ratpoisonGravityArg "\<\(s\|south\)\>" contained +syn match ratpoisonGravityArg "\<\(sw\|southwest\)\>" contained +syn match ratpoisonGravityArg "\<\(se\|southeast\)\>" contained +syn case match + +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(F[1-9][0-9]\=\|\(\a\|\d\)\)\>" contained nextgroup=ratpoisonCommandArg skipwhite + +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(space\|exclam\|quotedbl\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(numbersign\|dollar\|percent\|ampersand\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(apostrophe\|quoteright\|parenleft\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(parenright\|asterisk\|plus\|comma\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(minus\|period\|slash\|colon\|semicolon\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(less\|equal\|greater\|question\|at\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(bracketleft\|backslash\|bracketright\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(asciicircum\|underscore\|grave\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(quoteleft\|braceleft\|bar\|braceright\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(asciitilde\)\>" contained nextgroup=ratpoisonCommandArg skipwhite + +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(BackSpace\|Tab\|Linefeed\|Clear\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Return\|Pause\|Scroll_Lock\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Sys_Req\|Escape\|Delete\)\>" contained nextgroup=ratpoisonCommandArg skipwhite + +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Home\|Left\|Up\|Right\|Down\|Prior\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Page_Up\|Next\|Page_Down\|End\|Begin\)\>" contained nextgroup=ratpoisonCommandArg skipwhite + +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Select\|Print\|Execute\|Insert\|Undo\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Redo\|Menu\|Find\|Cancel\|Help\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=\(Break\|Mode_switch\|script_switch\|Num_Lock\)\>" contained nextgroup=ratpoisonCommandArg skipwhite + +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Space\|Tab\|Enter\|F[1234]\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Home\|Left\|Up\|Right\|Down\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Prior\|Page_Up\|Next\|Page_Down\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(End\|Begin\|Insert\|Delete\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Equal\|Multiply\|Add\|Separator\)\>" contained nextgroup=ratpoisonCommandArg skipwhite +syn match ratpoisonKeySeqArg "\<\([CMASH]\(-[CMASH]\)\{,4}-\)\=KP_\(Subtract\|Decimal\|Divide\|\d\)\>" contained nextgroup=ratpoisonCommandArg skipwhite + +syn match ratpoisonHookArg "\<\(key\|switchwin\|switchframe\|switchgroup\|quit\|restart\)\>" contained + +syn match ratpoisonNumberArg "\<\d\+\>" contained nextgroup=ratpoisonNumberArg skipwhite + +syn keyword ratpoisonSetArg barborder contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg bargravity contained nextgroup=ratpoisonGravityArg +syn keyword ratpoisonSetArg barpadding contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg bgcolor +syn keyword ratpoisonSetArg border contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg fgcolor +syn keyword ratpoisonSetArg framefmt contained nextgroup=ratpoisonWinFmtArg +syn keyword ratpoisonSetArg fwcolor +syn keyword ratpoisonSetArg framemsgwait contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg gravity contained nextgroup=ratpoisonGravityArg +syn keyword ratpoisonSetArg bwcolor +syn keyword ratpoisonSetArg gravity contained nextgroup=ratpoisonGravityArg +syn keyword ratpoisonSetArg historysize +syn keyword ratpoisonSetArg historycompaction +syn keyword ratpoisonSetArg historyexpansion +syn keyword ratpoisonSetArg infofmt contained nextgroup=ratpoisonWinFmtArg +syn keyword ratpoisonSetArg topkmap +syn keyword ratpoisonSetArg barinpadding +syn keyword ratpoisonSetArg font +syn keyword ratpoisonSetArg framesels +syn keyword ratpoisonSetArg maxundos +syn keyword ratpoisonSetArg inputwidth contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg maxsizegravity contained nextgroup=ratpoisonGravityArg +syn keyword ratpoisonSetArg msgwait contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg padding contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg resizeunit contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg startup_message +syn keyword ratpoisonSetArg transgravity contained nextgroup=ratpoisonGravityArg +syn keyword ratpoisonSetArg waitcursor contained nextgroup=ratpoisonNumberArg +syn keyword ratpoisonSetArg winfmt contained nextgroup=ratpoisonWinFmtArg +syn keyword ratpoisonSetArg wingravity contained nextgroup=ratpoisonGravityArg +syn keyword ratpoisonSetArg winliststyle contained nextgroup=ratpoisonWinListArg +syn keyword ratpoisonSetArg winname contained nextgroup=ratpoisonWinNameArg + +syn match ratpoisonWinFmtArg "%[nstacil]" contained nextgroup=ratpoisonWinFmtArg skipwhite +syn match ratpoisonFrameFmtArg "%[nstacil]" contained nextgroup=ratpoisonWinFmtArg skipwhite +syn match ratpoisonInfoFmtArg "%[nstacil]" contained nextgroup=ratpoisonWinFmtArg skipwhite + +syn match ratpoisonWinListArg "\<\(row\|column\)\>" contained + +syn match ratpoisonWinNameArg "\<\(name\|title\|class\)\>" contained + +syn match ratpoisonDefCommand "^\s*set\s*" nextgroup=ratpoisonSetArg +syn match ratpoisonDefCommand "^\s*defbarborder\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*defbargravity\s*" nextgroup=ratpoisonGravityArg +syn match ratpoisonDefCommand "^\s*defbarpadding\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*defbgcolor\s*" +syn match ratpoisonDefCommand "^\s*defborder\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*deffgcolor\s*" +syn match ratpoisonDefCommand "^\s*deffont\s*" +syn match ratpoisonDefCommand "^\s*defframefmt\s*" nextgroup=ratpoisonWinFmtArg +syn match ratpoisonDefCommand "^\s*defframesels\s*" +syn match ratpoisonDefCommand "^\s*definputwidth\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*defmaxsizegravity\s*" nextgroup=ratpoisonGravityArg +syn match ratpoisonDefCommand "^\s*defpadding\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*defresizeunit\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*deftransgravity\s*" nextgroup=ratpoisonGravityArg +syn match ratpoisonDefCommand "^\s*defwaitcursor\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonDefCommand "^\s*defwinfmt\s*" nextgroup=ratpoisonWinFmtArg +syn match ratpoisonDefCommand "^\s*defwingravity\s*" nextgroup=ratpoisonGravityArg +syn match ratpoisonDefCommand "^\s*defwinliststyle\s*" nextgroup=ratpoisonWinListArg +syn match ratpoisonDefCommand "^\s*defwinname\s*" nextgroup=ratpoisonWinNameArg +syn match ratpoisonDefCommand "^\s*msgwait\s*" nextgroup=ratpoisonNumberArg + +syn match ratpoisonStringCommand "^\s*\zsaddhook\ze\s*" nextgroup=ratpoisonHookArg +syn match ratpoisonStringCommand "^\s*\zsalias\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsbind\ze\s*" nextgroup=ratpoisonKeySeqArg +syn match ratpoisonStringCommand "^\s*\zschdir\ze\s*" +syn match ratpoisonStringCommand "^\s*\zscolon\ze\s*" nextgroup=ratpoisonCommandArg +syn match ratpoisonStringCommand "^\s*\zsdedicate\ze\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonStringCommand "^\s*\zsdefinekey\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsdelkmap\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsdescribekey\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsecho\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsescape\ze\s*" nextgroup=ratpoisonKeySeqArg +syn match ratpoisonStringCommand "^\s*\zsexec\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsfdump\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsfrestore\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsgdelete\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsgetenv\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsgravity\ze\s*" nextgroup=ratpoisonGravityArg +syn match ratpoisonStringCommand "^\s*\zsgselect\ze\s*" +syn match ratpoisonStringCommand "^\s*\zslink\ze\s*" nextgroup=ratpoisonKeySeqArg +syn match ratpoisonStringCommand "^\s*\zslisthook\ze\s*" nextgroup=ratpoisonHookArg +syn match ratpoisonStringCommand "^\s*\zsnewkmap\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsnewwm\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsnumber\ze\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonStringCommand "^\s*\zsprompt\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsratwarp\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsratrelwarp\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsratclick\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsrathold\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsreadkey\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsremhook\ze\s*" nextgroup=ratpoisonHookArg +syn match ratpoisonStringCommand "^\s*\zsresize\ze\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonStringCommand "^\s*\zsrudeness\ze\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonStringCommand "^\s*\zsselect\ze\s*" nextgroup=ratpoisonNumberArg +syn match ratpoisonStringCommand "^\s*\zssetenv\ze\s*" +syn match ratpoisonStringCommand "^\s*\zssource\ze\s*" +syn match ratpoisonStringCommand "^\s*\zssselect\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsstartup_message\ze\s*" nextgroup=ratpoisonBooleanArg +syn match ratpoisonStringCommand "^\s*\zstitle\ze\s*" +syn match ratpoisonStringCommand "^\s*\zstmpwm\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsunalias\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsunbind\ze\s*" nextgroup=ratpoisonKeySeqArg +syn match ratpoisonStringCommand "^\s*\zsundefinekey\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsunmanage\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsunsetenv\ze\s*" +syn match ratpoisonStringCommand "^\s*\zsverbexec\ze\s*" +syn match ratpoisonStringCommand "^\s*\zswarp\ze\s*" nextgroup=ratpoisonBooleanArg + +syn match ratpoisonVoidCommand "^\s*\zsabort\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsbanish\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsclrunmanaged\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zscnext\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zscompat\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zscother\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zscprev\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zscurframe\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsdelete\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocusdown\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocuslast\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocusleft\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocusprev\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocusright\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocusup\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfocus\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsfselect\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgetsel\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgmerge\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgmove\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgnewbg\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgnew\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgnext\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgprev\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsgroups\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zshelp\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zshsplit\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsinext\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsinfo\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsiother\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsiprev\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zskill\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zslastmsg\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zslicense\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsmeta\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsnextscreen\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsnext\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsonly\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsother\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsprevscreen\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsprev\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsputsel\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsquit\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsredisplay\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsredo\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsremove\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsrestart\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zssdump\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zssfdump\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsshrink\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zssplit\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zstime\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsundo\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsversion\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zsvsplit\ze\s*$" +syn match ratpoisonVoidCommand "^\s*\zswindows\ze\s*$" + +hi def link ratpoisonBooleanArg Boolean +hi def link ratpoisonCommandArg Keyword +hi def link ratpoisonComment Comment +hi def link ratpoisonDefCommand Identifier +hi def link ratpoisonFrameFmtArg Special +hi def link ratpoisonGravityArg Constant +hi def link ratpoisonInfoFmtArg Special +hi def link ratpoisonKeySeqArg Special +hi def link ratpoisonNumberArg Number +hi def link ratpoisonSetArg Keyword +hi def link ratpoisonStringCommand Identifier +hi def link ratpoisonTodo Todo +hi def link ratpoisonVoidCommand Identifier +hi def link ratpoisonWinFmtArg Special +hi def link ratpoisonWinNameArg Constant +hi def link ratpoisonWinListArg Constant + +let b:current_syntax = "ratpoison" + +" vim: ts=8 diff --git a/runtime/syntax/rc.vim b/runtime/syntax/rc.vim new file mode 100644 index 0000000..d69edd0 --- /dev/null +++ b/runtime/syntax/rc.vim @@ -0,0 +1,191 @@ +" Vim syntax file +" Language: M$ Resource files (*.rc) +" Maintainer: Christian Brabandt +" Last Change: 20220116 +" Repository: https://github.com/chrisbra/vim-rc-syntax +" License: Vim (see :h license) +" Previous Maintainer: Heiko Erhardt + +" This file is based on the c.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Common RC keywords +syn keyword rcLanguage LANGUAGE + +syn keyword rcMainObject TEXTINCLUDE VERSIONINFO BITMAP ICON CURSOR CURSOR +syn keyword rcMainObject MENU ACCELERATORS TOOLBAR DIALOG +syn keyword rcMainObject STRINGTABLE MESSAGETABLE RCDATA DLGINIT DESIGNINFO + +syn keyword rcSubObject POPUP MENUITEM SEPARATOR +syn keyword rcSubObject CONTROL LTEXT CTEXT RTEXT EDITTEXT +syn keyword rcSubObject BUTTON PUSHBUTTON DEFPUSHBUTTON GROUPBOX LISTBOX COMBOBOX +syn keyword rcSubObject FILEVERSION PRODUCTVERSION FILEFLAGSMASK FILEFLAGS FILEOS +syn keyword rcSubObject FILETYPE FILESUBTYPE + +syn keyword rcCaptionParam CAPTION +syn keyword rcParam CHARACTERISTICS CLASS STYLE EXSTYLE VERSION FONT + +syn keyword rcStatement BEGIN END BLOCK VALUE + +syn keyword rcCommonAttribute PRELOAD LOADONCALL FIXED MOVEABLE DISCARDABLE PURE IMPURE + +syn keyword rcAttribute WS_OVERLAPPED WS_POPUP WS_CHILD WS_MINIMIZE WS_VISIBLE WS_DISABLED WS_CLIPSIBLINGS +syn keyword rcAttribute WS_CLIPCHILDREN WS_MAXIMIZE WS_CAPTION WS_BORDER WS_DLGFRAME WS_VSCROLL WS_HSCROLL +syn keyword rcAttribute WS_SYSMENU WS_THICKFRAME WS_GROUP WS_TABSTOP WS_MINIMIZEBOX WS_MAXIMIZEBOX WS_TILED +syn keyword rcAttribute WS_ICONIC WS_SIZEBOX WS_TILEDWINDOW WS_OVERLAPPEDWINDOW WS_POPUPWINDOW WS_CHILDWINDOW +syn keyword rcAttribute WS_EX_DLGMODALFRAME WS_EX_NOPARENTNOTIFY WS_EX_TOPMOST WS_EX_ACCEPTFILES +syn keyword rcAttribute WS_EX_TRANSPARENT WS_EX_MDICHILD WS_EX_TOOLWINDOW WS_EX_WINDOWEDGE WS_EX_CLIENTEDGE +syn keyword rcAttribute WS_EX_CONTEXTHELP WS_EX_RIGHT WS_EX_LEFT WS_EX_RTLREADING WS_EX_LTRREADING +syn keyword rcAttribute WS_EX_LEFTSCROLLBAR WS_EX_RIGHTSCROLLBAR WS_EX_CONTROLPARENT WS_EX_STATICEDGE +syn keyword rcAttribute WS_EX_APPWINDOW WS_EX_OVERLAPPEDWINDOW WS_EX_PALETTEWINDOW +syn keyword rcAttribute ES_LEFT ES_CENTER ES_RIGHT ES_MULTILINE ES_UPPERCASE ES_LOWERCASE ES_PASSWORD +syn keyword rcAttribute ES_AUTOVSCROLL ES_AUTOHSCROLL ES_NOHIDESEL ES_OEMCONVERT ES_READONLY ES_WANTRETURN +syn keyword rcAttribute ES_NUMBER +syn keyword rcAttribute BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_RADIOBUTTON BS_3STATE +syn keyword rcAttribute BS_AUTO3STATE BS_GROUPBOX BS_USERBUTTON BS_AUTORADIOBUTTON BS_OWNERDRAW BS_LEFTTEXT +syn keyword rcAttribute BS_TEXT BS_ICON BS_BITMAP BS_LEFT BS_RIGHT BS_CENTER BS_TOP BS_BOTTOM BS_VCENTER +syn keyword rcAttribute BS_PUSHLIKE BS_MULTILINE BS_NOTIFY BS_FLAT BS_RIGHTBUTTON +syn keyword rcAttribute SS_LEFT SS_CENTER SS_RIGHT SS_ICON SS_BLACKRECT SS_GRAYRECT SS_WHITERECT +syn keyword rcAttribute SS_BLACKFRAME SS_GRAYFRAME SS_WHITEFRAME SS_USERITEM SS_SIMPLE SS_LEFTNOWORDWRAP +syn keyword rcAttribute SS_OWNERDRAW SS_BITMAP SS_ENHMETAFILE SS_ETCHEDHORZ SS_ETCHEDVERT SS_ETCHEDFRAME +syn keyword rcAttribute SS_TYPEMASK SS_NOPREFIX SS_NOTIFY SS_CENTERIMAGE SS_RIGHTJUST SS_REALSIZEIMAGE +syn keyword rcAttribute SS_SUNKEN SS_ENDELLIPSIS SS_PATHELLIPSIS SS_WORDELLIPSIS SS_ELLIPSISMASK +syn keyword rcAttribute DS_ABSALIGN DS_SYSMODAL DS_LOCALEDIT DS_SETFONT DS_MODALFRAME DS_NOIDLEMSG +syn keyword rcAttribute DS_SETFOREGROUND DS_3DLOOK DS_FIXEDSYS DS_NOFAILCREATE DS_CONTROL DS_CENTER +syn keyword rcAttribute DS_CENTERMOUSE DS_CONTEXTHELP +syn keyword rcAttribute LBS_NOTIFY LBS_SORT LBS_NOREDRAW LBS_MULTIPLESEL LBS_OWNERDRAWFIXED +syn keyword rcAttribute LBS_OWNERDRAWVARIABLE LBS_HASSTRINGS LBS_USETABSTOPS LBS_NOINTEGRALHEIGHT +syn keyword rcAttribute LBS_MULTICOLUMN LBS_WANTKEYBOARDINPUT LBS_EXTENDEDSEL LBS_DISABLENOSCROLL +syn keyword rcAttribute LBS_NODATA LBS_NOSEL LBS_STANDARD +syn keyword rcAttribute CBS_SIMPLE CBS_DROPDOWN CBS_DROPDOWNLIST CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLE +syn keyword rcAttribute CBS_AUTOHSCROLL CBS_OEMCONVERT CBS_SORT CBS_HASSTRINGS CBS_NOINTEGRALHEIGHT +syn keyword rcAttribute CBS_DISABLENOSCROLL CBS_UPPERCASE CBS_LOWERCASE +syn keyword rcAttribute SBS_HORZ SBS_VERT SBS_TOPALIGN SBS_LEFTALIGN SBS_BOTTOMALIGN SBS_RIGHTALIGN +syn keyword rcAttribute SBS_SIZEBOXTOPLEFTALIGN SBS_SIZEBOXBOTTOMRIGHTALIGN SBS_SIZEBOX SBS_SIZEGRIP +syn keyword rcAttribute CCS_TOP CCS_NOMOVEY CCS_BOTTOM CCS_NORESIZE CCS_NOPARENTALIGN CCS_ADJUSTABLE +syn keyword rcAttribute CCS_NODIVIDER +syn keyword rcAttribute LVS_ICON LVS_REPORT LVS_SMALLICON LVS_LIST LVS_TYPEMASK LVS_SINGLESEL LVS_SHOWSELALWAYS +syn keyword rcAttribute LVS_SORTASCENDING LVS_SORTDESCENDING LVS_SHAREIMAGELISTS LVS_NOLABELWRAP +syn keyword rcAttribute LVS_EDITLABELS LVS_OWNERDATA LVS_NOSCROLL LVS_TYPESTYLEMASK LVS_ALIGNTOP LVS_ALIGNLEFT +syn keyword rcAttribute LVS_ALIGNMASK LVS_OWNERDRAWFIXED LVS_NOCOLUMNHEADER LVS_NOSORTHEADER LVS_AUTOARRANGE +syn keyword rcAttribute TVS_HASBUTTONS TVS_HASLINES TVS_LINESATROOT TVS_EDITLABELS TVS_DISABLEDRAGDROP +syn keyword rcAttribute TVS_SHOWSELALWAYS +syn keyword rcAttribute TCS_FORCEICONLEFT TCS_FORCELABELLEFT TCS_TABS TCS_BUTTONS TCS_SINGLELINE TCS_MULTILINE +syn keyword rcAttribute TCS_RIGHTJUSTIFY TCS_FIXEDWIDTH TCS_RAGGEDRIGHT TCS_FOCUSONBUTTONDOWN +syn keyword rcAttribute TCS_OWNERDRAWFIXED TCS_TOOLTIPS TCS_FOCUSNEVER +syn keyword rcAttribute ACS_CENTER ACS_TRANSPARENT ACS_AUTOPLAY +syn keyword rcStdId IDI_APPLICATION IDI_HAND IDI_QUESTION IDI_EXCLAMATION IDI_ASTERISK IDI_WINLOGO IDI_WINLOGO +syn keyword rcStdId IDI_WARNING IDI_ERROR IDI_INFORMATION +syn keyword rcStdId IDCANCEL IDABORT IDRETRY IDIGNORE IDYES IDNO IDCLOSE IDHELP IDC_STATIC + +" Common RC keywords + +" Common RC keywords +syn keyword rcTodo contained TODO FIXME XXX + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match rcSpecial contained "\\[0-7][0-7][0-7]\=\|\\." +syn region rcString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rcSpecial +syn match rcCharacter "'[^\\]'" +syn match rcSpecialCharacter "'\\.'" +syn match rcSpecialCharacter "'\\[0-7][0-7]'" +syn match rcSpecialCharacter "'\\[0-7][0-7][0-7]'" + +"catch errors caused by wrong parenthesis +syn region rcParen transparent start='(' end=')' contains=ALLBUT,rcParenError,rcIncluded,rcSpecial,rcTodo +syn match rcParenError ")" +syn match rcInParen contained "[{}]" + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match rcNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" +"floating point number, with dot, optional exponent +syn match rcFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, starting with a dot, optional exponent +syn match rcFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match rcFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" +"hex number +syn match rcNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>" +"syn match rcIdentifier "\<[a-z_][a-z0-9_]*\>" +syn case match +" flag an octal number with wrong digits +syn match rcOctalError "\<0[0-7]*[89]" + +if exists("rc_comment_strings") + " A comment can contain rcString, rcCharacter and rcNumber. + " But a "*/" inside a rcString in a rcComment DOES end the comment! So we + " need to use a special type of rcString: rcCommentString, which also ends on + " "*/", and sees a "*" at the start of the line as comment again. + " Unfortunately this doesn't very well work for // type of comments :-( + syntax match rcCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region rcCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=rcSpecial,rcCommentSkip + syntax region rcComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=rcSpecial + syntax region rcComment start="/\*" end="\*/" contains=rcTodo,rcCommentString,rcCharacter,rcNumber,rcFloat + syntax match rcComment "//.*" contains=rcTodo,rcComment2String,rcCharacter,rcNumber +else + syn region rcComment start="/\*" end="\*/" contains=rcTodo + syn match rcComment "//.*" contains=rcTodo +endif +syntax match rcCommentError "\*/" + +syn region rcPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=rcComment,rcString,rcCharacter,rcNumber,rcCommentError +syn region rcIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match rcIncluded contained "<[^>]*>" +syn match rcInclude "^\s*#\s*include\>\s*["<]" contains=rcIncluded +"syn match rcLineSkip "\\$" +syn region rcDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen +syn region rcPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,rcPreCondit,rcIncluded,rcInclude,rcDefine,rcInParen + +syn sync ccomment rcComment minlines=10 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link rcCharacter Character +hi def link rcSpecialCharacter rcSpecial +hi def link rcNumber Number +hi def link rcFloat Float +hi def link rcOctalError rcError +hi def link rcParenError rcError +hi def link rcInParen rcError +hi def link rcCommentError rcError +hi def link rcInclude Include +hi def link rcPreProc PreProc +hi def link rcDefine Macro +hi def link rcIncluded rcString +hi def link rcError Error +hi def link rcPreCondit PreCondit +hi def link rcCommentString rcString +hi def link rcComment2String rcString +hi def link rcCommentSkip rcComment +hi def link rcString String +hi def link rcComment Comment +hi def link rcSpecial SpecialChar +hi def link rcTodo Todo + +hi def link rcAttribute rcCommonAttribute +hi def link rcStdId rcStatement +hi def link rcStatement Statement + +hi def link rcLanguage Constant +hi def link rcCaptionParam Constant +hi def link rcCommonAttribute Constant + +hi def link rcMainObject Identifier +hi def link rcSubObject Define +hi def link rcParam Constant +hi def link rcStatement Statement +" +"hi def link rcIdentifier Identifier + + + +let b:current_syntax = "rc" + +" vim: ts=8 diff --git a/runtime/syntax/rcs.vim b/runtime/syntax/rcs.vim new file mode 100644 index 0000000..5a34802 --- /dev/null +++ b/runtime/syntax/rcs.vim @@ -0,0 +1,63 @@ +" Vim syntax file +" Language: RCS file +" Maintainer: Dmitry Vasiliev +" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/rcs.vim +" Last Change: 2012-02-11 +" Filenames: *,v +" Version: 1.12 + +" Options: +" rcs_folding = 1 For folding strings + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +" RCS file must end with a newline. +syn match rcsEOFError ".\%$" containedin=ALL + +" Keywords. +syn keyword rcsKeyword head branch access symbols locks strict +syn keyword rcsKeyword comment expand date author state branches +syn keyword rcsKeyword next desc log +syn keyword rcsKeyword text nextgroup=rcsTextStr skipwhite skipempty + +" Revision numbers and dates. +syn match rcsNumber "\<[0-9.]\+\>" display + +" Strings. +if exists("rcs_folding") && has("folding") + " Folded strings. + syn region rcsString matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial + syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines +else + syn region rcsString matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial + syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines +endif +syn match rcsSpecial "@@" contained +syn match rcsDiffLines "[da]\d\+ \d\+$" contained + +" Synchronization. +syn sync clear +if exists("rcs_folding") && has("folding") + syn sync fromstart +else + " We have incorrect folding if following sync patterns is turned on. + syn sync match rcsSync grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1 + syn sync match rcsSync grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1 +endif + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet. + +hi def link rcsKeyword Keyword +hi def link rcsNumber Identifier +hi def link rcsString String +hi def link rcsTextStr String +hi def link rcsSpecial Special +hi def link rcsDiffLines Special +hi def link rcsEOFError Error + + +let b:current_syntax = "rcs" diff --git a/runtime/syntax/rcslog.vim b/runtime/syntax/rcslog.vim new file mode 100644 index 0000000..18f4593 --- /dev/null +++ b/runtime/syntax/rcslog.vim @@ -0,0 +1,25 @@ +" Vim syntax file +" Language: RCS log output +" Maintainer: Joe Karthauser +" Last Change: 2001 May 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match rcslogRevision "^revision.*$" +syn match rcslogFile "^RCS file:.*" +syn match rcslogDate "^date: .*$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link rcslogFile Type +hi def link rcslogRevision Constant +hi def link rcslogDate Identifier + + +let b:current_syntax = "rcslog" + +" vim: ts=8 diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim new file mode 100644 index 0000000..3831ae1 --- /dev/null +++ b/runtime/syntax/readline.vim @@ -0,0 +1,411 @@ +" Vim syntax file +" Language: readline(3) configuration file +" Maintainer: Daniel Moch +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2018-07-26 +" Add new functions for Readline 7 / Bash 4.4 +" (credit: Github user bewuethr) + +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=- + +syn match readlineKey contained + \ '\S' + \ nextgroup=readlineKeyTerminator + +syn match readlineBegin display '^' + \ nextgroup=readlineComment, + \ readlineConditional, + \ readlineInclude, + \ readlineKeyName, + \ readlineKey, + \ readlineKeySeq, + \ readlineKeyword + \ skipwhite + +syn region readlineComment contained display oneline + \ start='#' + \ end='$' + \ contains=readlineTodo, + \ @Spell + +syn keyword readlineTodo contained + \ TODO + \ FIXME + \ XXX + \ NOTE + +syn match readlineConditional contained + \ '$if\>' + \ nextgroup=readlineTest, + \ readlineTestApp + \ skipwhite + +syn keyword readlineTest contained + \ mode + \ nextgroup=readlineTestModeEq + +syn match readlineTestModeEq contained + \ '=' + \ nextgroup=readlineEditingMode + +syn keyword readlineTest contained + \ term + \ nextgroup=readlineTestTermEq + +syn match readlineTestTermEq contained + \ '=' + \ nextgroup=readlineTestTerm + +syn match readlineTestTerm contained + \ '\S\+' + +syn match readlineTestApp contained + \ '\S\+' + +syn match readlineConditional contained display + \ '$\%(else\|endif\)\>' + +syn match readlineInclude contained display + \ '$include\>' + \ nextgroup=readlinePath + +syn match readlinePath contained display + \ '.\+' + +syn case ignore +syn match readlineKeyName contained display + \ nextgroup=readlineKeySeparator, + \ readlineKeyTerminator + \ '\%(Control\|Del\|Esc\|Escape\|LFD\|Meta\|Newline\|Ret\|Return\|Rubout\|Space\|Spc\|Tab\)' +syn case match + +syn match readlineKeySeparator contained + \ '-' + \ nextgroup=readlineKeyName, + \ readlineKey + +syn match readlineKeyTerminator contained + \ ':' + \ nextgroup=readlineFunction + \ skipwhite + +syn region readlineKeySeq contained display oneline + \ start=+"+ + \ skip=+\\\\\|\\"+ + \ end=+"+ + \ contains=readlineKeyEscape + \ nextgroup=readlineKeyTerminator + +syn match readlineKeyEscape contained display + \ +\\\([CM]-\|[e\\"'abdfnrtv]\|\o\{3}\|x\x\{2}\)+ + +syn keyword readlineKeyword contained + \ set + \ nextgroup=readlineVariable + \ skipwhite + +syn keyword readlineVariable contained + \ nextgroup=readlineBellStyle + \ skipwhite + \ bell-style + +syn keyword readlineVariable contained + \ nextgroup=readlineBoolean + \ skipwhite + \ bind-tty-special-chars + \ blink-matching-paren + \ colored-completion-prefix + \ colored-stats + \ completion-ignore-case + \ completion-map-case + \ convert-meta + \ disable-completion + \ echo-control-characters + \ enable-bracketed-paste + \ enable-keypad + \ enable-meta-key + \ expand-tilde + \ history-preserve-point + \ horizontal-scroll-mode + \ input-meta + \ meta-flag + \ mark-directories + \ mark-modified-lines + \ mark-symlinked-directories + \ match-hidden-files + \ menu-complete-display-prefix + \ output-meta + \ page-completions + \ print-completions-horizontally + \ revert-all-at-newline + \ show-all-if-ambiguous + \ show-all-if-unmodified + \ show-mode-in-prompt + \ skip-completed-text + \ visible-stats + +syn keyword readlineVariable contained + \ nextgroup=readlineString + \ skipwhite + \ comment-begin + \ isearch-terminators + \ vi-cmd-mode-string + \ vi-ins-mode-string + \ emacs-mode-string + +syn keyword readlineVariable contained + \ nextgroup=readlineNumber + \ skipwhite + \ completion-display-width + \ completion-prefix-display-length + \ completion-query-items + \ history-size + \ keyseq-timeout + +syn keyword readlineVariable contained + \ nextgroup=readlineEditingMode + \ skipwhite + \ editing-mode + +syn keyword readlineVariable contained + \ nextgroup=readlineKeymap + \ skipwhite + \ keymap + +syn keyword readlineBellStyle contained + \ audible + \ visible + \ none + +syn case ignore +syn keyword readlineBoolean contained + \ on + \ off +syn case match + +syn region readlineString contained display oneline + \ matchgroup=readlineStringDelimiter + \ start=+"+ + \ skip=+\\\\\|\\"+ + \ end=+"+ + +syn match readlineNumber contained display + \ '[+-]\d\+\>' + +syn keyword readlineEditingMode contained + \ emacs + \ vi + +syn match readlineKeymap contained display + \ 'emacs\%(-\%(standard\|meta\|ctlx\)\)\=\|vi\%(-\%(move\|command\|insert\)\)\=' + +syn keyword readlineFunction contained + \ beginning-of-line + \ end-of-line + \ forward-char + \ backward-char + \ forward-word + \ backward-word + \ clear-screen + \ redraw-current-line + \ + \ accept-line + \ previous-history + \ next-history + \ beginning-of-history + \ end-of-history + \ reverse-search-history + \ forward-search-history + \ non-incremental-reverse-search-history + \ non-incremental-forward-search-history + \ history-search-forward + \ history-search-backward + \ yank-nth-arg + \ yank-last-arg + \ + \ delete-char + \ backward-delete-char + \ forward-backward-delete-char + \ quoted-insert + \ tab-insert + \ self-insert + \ transpose-chars + \ transpose-words + \ upcase-word + \ downcase-word + \ capitalize-word + \ overwrite-mode + \ + \ kill-line + \ backward-kill-line + \ unix-line-discard + \ kill-whole-line + \ kill-word + \ backward-kill-word + \ unix-word-rubout + \ unix-filename-rubout + \ delete-horizontal-space + \ kill-region + \ copy-region-as-kill + \ copy-backward-word + \ copy-forward-word + \ yank + \ yank-pop + \ + \ digit-argument + \ universal-argument + \ + \ complete + \ possible-completions + \ insert-completions + \ menu-complete + \ menu-complete-backward + \ delete-char-or-list + \ + \ start-kbd-macro + \ end-kbd-macro + \ call-last-kbd-macro + \ print-last-kbd-macro + \ + \ re-read-init-file + \ abort + \ do-uppercase-version + \ prefix-meta + \ undo + \ revert-line + \ tilde-expand + \ set-mark + \ exchange-point-and-mark + \ character-search + \ character-search-backward + \ skip-csi-sequence + \ insert-comment + \ dump-functions + \ dump-variables + \ dump-macros + \ emacs-editing-mode + \ vi-editing-mode + \ + \ vi-eof-maybe + \ vi-movement-mode + \ vi-undo + \ vi-match + \ vi-tilde-expand + \ vi-complete + \ vi-char-search + \ vi-redo + \ vi-search + \ vi-arg-digit + \ vi-append-eol + \ vi-prev-word + \ vi-change-to + \ vi-delete-to + \ vi-end-word + \ vi-char-search + \ vi-fetch-history + \ vi-insert-beg + \ vi-search-again + \ vi-put + \ vi-replace + \ vi-subst + \ vi-char-search + \ vi-next-word + \ vi-yank-to + \ vi-first-print + \ vi-yank-arg + \ vi-goto-mark + \ vi-append-mode + \ vi-prev-word + \ vi-change-to + \ vi-delete-to + \ vi-end-word + \ vi-char-search + \ vi-insert-mode + \ vi-set-mark + \ vi-search-again + \ vi-put + \ vi-change-char + \ vi-subst + \ vi-char-search + \ vi-undo + \ vi-next-word + \ vi-delete + \ vi-yank-to + \ vi-column + \ vi-change-case + +if exists("readline_has_bash") + syn keyword readlineFunction contained + \ shell-forward-word + \ shell-backward-word + \ shell-expand-line + \ history-expand-line + \ magic-space + \ alias-expand-line + \ history-and-alias-expand-line + \ insert-last-argument + \ operate-and-get-next + \ forward-backward-delete-char + \ shell-kill-word + \ shell-backward-kill-word + \ delete-char-or-list + \ complete-filename + \ possible-filename-completions + \ complete-username + \ possible-username-completions + \ complete-variable + \ possible-variable-completions + \ complete-hostname + \ possible-hostname-completions + \ complete-command + \ possible-command-completions + \ dynamic-complete-history + \ dabbrev-expand + \ complete-into-braces + \ glob-expand-word + \ glob-list-expansions + \ display-shell-version + \ glob-complete-word + \ edit-and-execute-command +endif + +hi def link readlineKey readlineKeySeq +hi def link readlineComment Comment +hi def link readlineTodo Todo +hi def link readlineConditional Conditional +hi def link readlineTest Type +hi def link readlineDelimiter Delimiter +hi def link readlineTestModeEq readlineEq +hi def link readlineTestTermEq readlineEq +hi def link readlineTestTerm readlineString +hi def link readlineTestAppEq readlineEq +hi def link readlineTestApp readlineString +hi def link readlineInclude Include +hi def link readlinePath String +hi def link readlineKeyName SpecialChar +hi def link readlineKeySeparator readlineKeySeq +hi def link readlineKeyTerminator readlineDelimiter +hi def link readlineKeySeq String +hi def link readlineKeyEscape SpecialChar +hi def link readlineKeyword Keyword +hi def link readlineVariable Identifier +hi def link readlineBellStyle Constant +hi def link readlineBoolean Boolean +hi def link readlineString String +hi def link readlineStringDelimiter readlineString +hi def link readlineNumber Number +hi def link readlineEditingMode Constant +hi def link readlineKeymap Constant +hi def link readlineFunction Function + +let b:current_syntax = 'readline' + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/rebol.vim b/runtime/syntax/rebol.vim new file mode 100644 index 0000000..a5d50c4 --- /dev/null +++ b/runtime/syntax/rebol.vim @@ -0,0 +1,199 @@ +" Vim syntax file +" Language: Rebol +" Maintainer: Mike Williams +" Filenames: *.r +" Last Change: 27th June 2002 +" URL: http://www.eandem.co.uk/mrw/vim +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Rebol is case insensitive +syn case ignore + +" As per current users documentation +setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~ + +" Yer TODO highlighter +syn keyword rebolTodo contained TODO + +" Comments +syn match rebolComment ";.*$" contains=rebolTodo + +" Words +syn match rebolWord "\a\k*" +syn match rebolWordPath "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1 + +" Booleans +syn keyword rebolBoolean true false on off yes no + +" Values +" Integers +syn match rebolInteger "\<[+-]\=\d\+\('\d*\)*\>" +" Decimals +syn match rebolDecimal "[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\=" +syn match rebolDecimal "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\=" +" Time +syn match rebolTime "[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>" +syn match rebolTime "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>" +" Dates +" DD-MMM-YY & YYYY format +syn match rebolDate "\d\{1,2}\([/-]\)\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\1\(\d\{2}\)\{1,2}\>" +" DD-month-YY & YYYY format +syn match rebolDate "\d\{1,2}\([/-]\)\(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\)\1\(\d\{2}\)\{1,2}\>" +" DD-MM-YY & YY format +syn match rebolDate "\d\{1,2}\([/-]\)\d\{1,2}\1\(\d\{2}\)\{1,2}\>" +" YYYY-MM-YY format +syn match rebolDate "\d\{4}-\d\{1,2}-\d\{1,2}\>" +" DD.MM.YYYY format +syn match rebolDate "\d\{1,2}\.\d\{1,2}\.\d\{4}\>" +" Money +syn match rebolMoney "\a*\$\d\+\('\d*\)*\([,.]\d\+\)\=" +" Strings +syn region rebolString oneline start=+"+ skip=+^"+ end=+"+ contains=rebolSpecialCharacter +syn region rebolString start=+[^#]{+ end=+}+ skip=+{[^}]*}+ contains=rebolSpecialCharacter +" Binary +syn region rebolBinary start=+\d*#{+ end=+}+ contains=rebolComment +" Email +syn match rebolEmail "\<\k\+@\(\k\+\.\)*\k\+\>" +" File +syn match rebolFile "%\(\k\+/\)*\k\+[/]\=" contains=rebolSpecialCharacter +syn region rebolFile oneline start=+%"+ end=+"+ contains=rebolSpecialCharacter +" URLs +syn match rebolURL "http://\k\+\(\.\k\+\)*\(:\d\+\)\=\(/\(\k\+/\)*\(\k\+\)\=\)*" +syn match rebolURL "file://\k\+\(\.\k\+\)*/\(\k\+/\)*\k\+" +syn match rebolURL "ftp://\(\k\+:\k\+@\)\=\k\+\(\.\k\+\)*\(:\d\+\)\=/\(\k\+/\)*\k\+" +syn match rebolURL "mailto:\k\+\(\.\k\+\)*@\k\+\(\.\k\+\)*" +" Issues +syn match rebolIssue "#\(\d\+-\)*\d\+" +" Tuples +syn match rebolTuple "\(\d\+\.\)\{2,}" + +" Characters +syn match rebolSpecialCharacter contained "\^[^[:space:][]" +syn match rebolSpecialCharacter contained "%\d\+" + + +" Operators +" Math operators +syn match rebolMathOperator "\(\*\{1,2}\|+\|-\|/\{1,2}\)" +syn keyword rebolMathFunction abs absolute add arccosine arcsine arctangent cosine +syn keyword rebolMathFunction divide exp log-10 log-2 log-e max maximum min +syn keyword rebolMathFunction minimum multiply negate power random remainder sine +syn keyword rebolMathFunction square-root subtract tangent +" Binary operators +syn keyword rebolBinaryOperator complement and or xor ~ +" Logic operators +syn match rebolLogicOperator "[<>=]=\=" +syn match rebolLogicOperator "<>" +syn keyword rebolLogicOperator not +syn keyword rebolLogicFunction all any +syn keyword rebolLogicFunction head? tail? +syn keyword rebolLogicFunction negative? positive? zero? even? odd? +syn keyword rebolLogicFunction binary? block? char? date? decimal? email? empty? +syn keyword rebolLogicFunction file? found? function? integer? issue? logic? money? +syn keyword rebolLogicFunction native? none? object? paren? path? port? series? +syn keyword rebolLogicFunction string? time? tuple? url? word? +syn keyword rebolLogicFunction exists? input? same? value? + +" Datatypes +syn keyword rebolType binary! block! char! date! decimal! email! file! +syn keyword rebolType function! integer! issue! logic! money! native! +syn keyword rebolType none! object! paren! path! port! string! time! +syn keyword rebolType tuple! url! word! +syn keyword rebolTypeFunction type? + +" Control statements +syn keyword rebolStatement break catch exit halt reduce return shield +syn keyword rebolConditional if else +syn keyword rebolRepeat for forall foreach forskip loop repeat while until do + +" Series statements +syn keyword rebolStatement change clear copy fifth find first format fourth free +syn keyword rebolStatement func function head insert last match next parse past +syn keyword rebolStatement pick remove second select skip sort tail third trim length? + +" Context +syn keyword rebolStatement alias bind use + +" Object +syn keyword rebolStatement import make make-object rebol info? + +" I/O statements +syn keyword rebolStatement delete echo form format import input load mold prin +syn keyword rebolStatement print probe read save secure send write +syn keyword rebolOperator size? modified? + +" Debug statement +syn keyword rebolStatement help probe trace + +" Misc statements +syn keyword rebolStatement func function free + +" Constants +syn keyword rebolConstant none + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link rebolTodo Todo + +hi def link rebolStatement Statement +hi def link rebolLabel Label +hi def link rebolConditional Conditional +hi def link rebolRepeat Repeat + +hi def link rebolOperator Operator +hi def link rebolLogicOperator rebolOperator +hi def link rebolLogicFunction rebolLogicOperator +hi def link rebolMathOperator rebolOperator +hi def link rebolMathFunction rebolMathOperator +hi def link rebolBinaryOperator rebolOperator +hi def link rebolBinaryFunction rebolBinaryOperator + +hi def link rebolType Type +hi def link rebolTypeFunction rebolOperator + +hi def link rebolWord Identifier +hi def link rebolWordPath rebolWord +hi def link rebolFunction Function + +hi def link rebolCharacter Character +hi def link rebolSpecialCharacter SpecialChar +hi def link rebolString String + +hi def link rebolNumber Number +hi def link rebolInteger rebolNumber +hi def link rebolDecimal rebolNumber +hi def link rebolTime rebolNumber +hi def link rebolDate rebolNumber +hi def link rebolMoney rebolNumber +hi def link rebolBinary rebolNumber +hi def link rebolEmail rebolString +hi def link rebolFile rebolString +hi def link rebolURL rebolString +hi def link rebolIssue rebolNumber +hi def link rebolTuple rebolNumber +hi def link rebolFloat Float +hi def link rebolBoolean Boolean + +hi def link rebolConstant Constant + +hi def link rebolComment Comment + +hi def link rebolError Error + + +if exists("my_rebol_file") + if file_readable(expand(my_rebol_file)) + execute "source " . my_rebol_file + endif +endif + +let b:current_syntax = "rebol" + +" vim: ts=8 diff --git a/runtime/syntax/redif.vim b/runtime/syntax/redif.vim new file mode 100644 index 0000000..3651922 --- /dev/null +++ b/runtime/syntax/redif.vim @@ -0,0 +1,970 @@ +" Vim syntax file +" Language: ReDIF +" Maintainer: Axel Castellane +" Last Change: 2021 Jul 28 +" Original Author: Axel Castellane +" Source: http://openlib.org/acmes/root/docu/redif_1.html +" File Extension: rdf +" Note: The ReDIF format is used by RePEc. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" ReDIF is case-insensitive +syntax case ignore + +" Structure: Some fields determine what fields can come next. For example: +" Template-Type +" *-Name +" File-URL +" *-Institution +" Those fields span a syntax region over several lines so that these regions +" can only contain their respective items. + +" Any line which is not a correct template or part of an argument is an error. +" This comes at the very beginning, so it has the lowest priority and will +" only match if nothing else did. +syntax match redifWrongLine /^.\+/ display + +highlight def link redifWrongLine redifError + +" Comments must start with # and it must be the first character of the line, +" otherwise I believe that they are considered as part of an argument. +syntax match redifComment /^#.*/ containedin=ALL display + +" Defines the 9 possible multi-lines regions of Template-Type and the fields +" they can contain. +syntax region redifRegionTemplatePaper start=/^Template-Type:\_s*ReDIF-Paper \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsPaper,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile fold +syntax region redifRegionTemplateArticle start=/^Template-Type:\_s*ReDIF-Article \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsArticle,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile fold +syntax region redifRegionTemplateChapter start=/^Template-Type:\_s*ReDIF-Chapter \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsChapter,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile,redifRegionClusterProvider,redifRegionClusterPublisher,redifRegionClusterEditor fold +syntax region redifRegionTemplateBook start=/^Template-Type:\_s*ReDIF-Book \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsBook,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile,redifRegionClusterProvider,redifRegionClusterPublisher,redifRegionClusterEditor fold +syntax region redifRegionTemplateSoftware start=/^Template-Type:\_s*ReDIF-Software \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsSoftware,redifWrongLine,redifRegionClusterAuthor,redifRegionClusterFile fold +syntax region redifRegionTemplateArchive start=/^Template-Type:\_s*ReDIF-Archive \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsArchive,redifWrongLine fold +syntax region redifRegionTemplateSeries start=/^Template-Type:\_s*ReDIF-Series \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsSeries,redifWrongLine,redifRegionClusterProvider,redifRegionClusterPublisher,redifRegionClusterEditor fold +syntax region redifRegionTemplateInstitution start=/^Template-Type:\_s*ReDIF-Institution \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsInstitution,redifWrongLine,redifRegionClusterPrimary,redifRegionClusterSecondary,redifRegionClusterTertiary,redifRegionClusterQuaternary fold +syntax region redifRegionTemplatePerson start=/^Template-Type:\_s*ReDIF-Person \d\+\.\d\+/ end=/^Template-Type:/me=s-1 contains=redifContainerFieldsPerson,redifWrongLine,redifRegionClusterWorkplace fold + +" All fields are foldable (These come before clusters, so they have lower +" priority). So they are contained in a foldable syntax region. +syntax region redifContainerFieldsPaper start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTitle,redifFieldHandleOfWork,redifFieldLanguage,redifFieldContactEmail,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldNumber,redifFieldCreationDate,redifFieldRevisionDate,redifFieldPublicationStatus,redifFieldNote,redifFieldLength,redifFieldSeries,redifFieldAvailability,redifFieldOrderURL,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldRestriction,redifFieldPrice,redifFieldNotification,redifFieldPublicationType,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsArticle start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTitle,redifFieldHandleOfWork,redifFieldLanguage,redifFieldContactEmail,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldNumber,redifFieldCreationDate,redifFieldPublicationStatus,redifFieldOrderURL,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldRestriction,redifFieldPrice,redifFieldNotification,redifFieldPublicationType,redifFieldJournal,redifFieldVolume,redifFieldYear,redifFieldIssue,redifFieldMonth,redifFieldPages,redifFieldNumber,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsChapter start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfWork,redifFieldTitle,redifFieldContactEmail,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldBookTitle,redifFieldYear,redifFieldMonth,redifFieldPages,redifFieldChapter,redifFieldVolume,redifFieldEdition,redifFieldSeries,redifFieldISBN,redifFieldPublicationStatus,redifFieldNote,redifFieldInBook,redifFieldOrderURL,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsBook start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTitle,redifFieldHandleOfWork,redifFieldContactEmail,redifFieldYear,redifFieldMonth,redifFieldVolume,redifFieldEdition,redifFieldSeries,redifFieldISBN,redifFieldPublicationStatus,redifFieldNote,redifFieldAbstract,redifFieldClassificationJEL,redifFieldKeywords,redifFieldHasChapter,redifFieldPrice,redifFieldOrderURL,redifFieldNumber,redifFieldCreationDate,redifFieldPublicationDate,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsSoftware start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfWork,redifFieldTitle,redifFieldProgrammingLanguage,redifFieldAbstract,redifFieldNumber,redifFieldVersion,redifFieldClassificationJEL,redifFieldKeywords,redifFieldSize,redifFieldSeries,redifFieldCreationDate,redifFieldRevisionDate,redifFieldNote,redifFieldRequires,redifFieldArticleHandle,redifFieldBookHandle,redifFieldChapterHandle,redifFieldPaperHandle,redifFieldSoftwareHandle,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsArchive start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfArchive,redifFieldURL,redifFieldMaintainerEmail,redifFieldName,redifFieldMaintainerName,redifFieldMaintainerPhone,redifFieldMaintainerFax,redifFieldClassificationJEL,redifFieldHomepage,redifFieldDescription,redifFieldNotification,redifFieldRestriction,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsSeries start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldName,redifFieldHandleOfSeries,redifFieldMaintainerEmail,redifFieldType,redifFieldOrderEmail,redifFieldOrderHomepage,redifFieldOrderPostal,redifFieldPrice,redifFieldRestriction,redifFieldMaintainerPhone,redifFieldMaintainerFax,redifFieldMaintainerName,redifFieldDescription,redifFieldClassificationJEL,redifFieldKeywords,redifFieldNotification,redifFieldISSN,redifFieldFollowup,redifFieldPredecessor,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsInstitution start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfInstitution,redifFieldPrimaryDefunct,redifFieldSecondaryDefunct,redifFieldTertiaryDefunct,redifFieldTemplateType,redifWrongLine contained transparent fold +syntax region redifContainerFieldsPerson start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldHandleOfPerson,redifFieldNameFull,redifFieldNameFirst,redifFieldNameLast,redifFieldNamePrefix,redifFieldNameMiddle,redifFieldNameSuffix,redifFieldNameASCII,redifFieldEmail,redifFieldHomepage,redifFieldFax,redifFieldPostal,redifFieldPhone,redifFieldWorkplaceOrganization,redifFieldAuthorPaper,redifFieldAuthorArticle,redifFieldAuthorSoftware,redifFieldAuthorBook,redifFieldAuthorChapter,redifFieldEditorBook,redifFieldEditorSeries,redifFieldClassificationJEL,redifFieldShortId,redifFieldLastLoginDate,redifFieldRegisteredDate,redifWrongLine contained transparent fold + +" Defines the 10 possible clusters and what they can contain +" A field not in the cluster ends the cluster. +syntax region redifRegionClusterWorkplace start=/^Workplace-Name:/ skip=/^Workplace-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsWorkplace fold +syntax region redifRegionClusterPrimary start=/^Primary-Name:/ skip=/^Primary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsPrimary fold +syntax region redifRegionClusterSecondary start=/^Secondary-Name:/ skip=/^Secondary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsSecondary fold +syntax region redifRegionClusterTertiary start=/^Tertiary-Name:/ skip=/^Tertiary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsTertiary fold +syntax region redifRegionClusterQuaternary start=/^Quaternary-Name:/ skip=/^Quaternary-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsQuaternary fold +syntax region redifRegionClusterProvider start=/^Provider-Name:/ skip=/^Provider-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsProvider fold +syntax region redifRegionClusterPublisher start=/^Publisher-Name:/ skip=/^Publisher-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsPublisher fold +syntax region redifRegionClusterAuthor start=/^Author-Name:/ skip=/^Author-\%(Name\%(-First\|-Last\)\|Homepage\|Email\|Fax\|Postal\|Phone\|Person\|Workplace-Name\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifRegionClusterAuthorWorkplace,redifContainerFieldsAuthor fold +syntax region redifRegionClusterEditor start=/^Editor-Name:/ skip=/^Editor-\%(Name\%(-First\|-Last\)\|Homepage\|Email\|Fax\|Postal\|Phone\|Person\|Workplace-Name\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifRegionClusterEditorWorkplace,redifContainerFieldsEditor fold +syntax region redifRegionClusterFile start=/^File-URL:/ skip=/^File-\%(Format\|Function\|Size\|Restriction\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsFile fold + +" The foldable containers of the clusters. +syntax region redifContainerFieldsWorkplace start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldWorkplaceName,redifFieldWorkplaceHomepage,redifFieldWorkplaceNameEnglish,redifFieldWorkplacePostal,redifFieldWorkplaceLocation,redifFieldWorkplaceEmail,redifFieldWorkplacePhone,redifFieldWorkplaceFax,redifFieldWorkplaceInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsPrimary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldPrimaryName,redifFieldPrimaryHomepage,redifFieldPrimaryNameEnglish,redifFieldPrimaryPostal,redifFieldPrimaryLocation,redifFieldPrimaryEmail,redifFieldPrimaryPhone,redifFieldPrimaryFax,redifFieldPrimaryInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsSecondary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldSecondaryName,redifFieldSecondaryHomepage,redifFieldSecondaryNameEnglish,redifFieldSecondaryPostal,redifFieldSecondaryLocation,redifFieldSecondaryEmail,redifFieldSecondaryPhone,redifFieldSecondaryFax,redifFieldSecondaryInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsTertiary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldTertiaryName,redifFieldTertiaryHomepage,redifFieldTertiaryNameEnglish,redifFieldTertiaryPostal,redifFieldTertiaryLocation,redifFieldTertiaryEmail,redifFieldTertiaryPhone,redifFieldTertiaryFax,redifFieldTertiaryInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsQuaternary start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldQuaternaryName,redifFieldQuaternaryHomepage,redifFieldQuaternaryNameEnglish,redifFieldQuaternaryPostal,redifFieldQuaternaryLocation,redifFieldQuaternaryEmail,redifFieldQuaternaryPhone,redifFieldQuaternaryFax,redifFieldQuaternaryInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsProvider start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldProviderName,redifFieldProviderHomepage,redifFieldProviderNameEnglish,redifFieldProviderPostal,redifFieldProviderLocation,redifFieldProviderEmail,redifFieldProviderPhone,redifFieldProviderFax,redifFieldProviderInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsPublisher start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldPublisherName,redifFieldPublisherHomepage,redifFieldPublisherNameEnglish,redifFieldPublisherPostal,redifFieldPublisherLocation,redifFieldPublisherEmail,redifFieldPublisherPhone,redifFieldPublisherFax,redifFieldPublisherInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsAuthor start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldAuthorName,redifFieldAuthorNameFirst,redifFieldAuthorNameLast,redifFieldAuthorHomepage,redifFieldAuthorEmail,redifFieldAuthorFax,redifFieldAuthorPostal,redifFieldAuthorPhone,redifFieldAuthorPerson,redifWrongLine contained transparent fold +syntax region redifContainerFieldsEditor start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldEditorName,redifFieldEditorNameFirst,redifFieldEditorNameLast,redifFieldEditorHomepage,redifFieldEditorEmail,redifFieldEditorFax,redifFieldEditorPostal,redifFieldEditorPhone,redifFieldEditorPerson,redifWrongLine contained transparent fold +syntax region redifContainerFieldsFile start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldFileURL,redifFieldFileFormat,redifFieldFileFunction,redifFieldFileSize,redifFieldFileRestriction,redifWrongLine contained transparent fold + +" The two clusters in cluster (must be presented after to have priority over +" fields containers) +syntax region redifRegionClusterAuthorWorkplace start=/^Author-Workplace-Name:/ skip=/^Author-Workplace-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsAuthorWorkplace fold +syntax region redifRegionClusterEditorWorkplace start=/^Editor-Workplace-Name:/ skip=/^Editor-Workplace-\%(Name-English\|Homepage\|Postal\|Location\|Email\|Phone\|Fax\|Institution\):/ end=/^\S\{-}:/me=s-1 contained contains=redifWrongLine,redifContainerFieldsEditorWorkplace fold + +" Their foldable fields containers +syntax region redifContainerFieldsAuthorWorkplace start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldAuthorWorkplaceName,redifFieldAuthorWorkplaceHomepage,redifFieldAuthorWorkplaceNameEnglish,redifFieldAuthorWorkplacePostal,redifFieldAuthorWorkplaceLocation,redifFieldAuthorWorkplaceEmail,redifFieldAuthorWorkplacePhone,redifFieldAuthorWorkplaceFax,redifFieldAuthorWorkplaceInstitution,redifWrongLine contained transparent fold +syntax region redifContainerFieldsEditorWorkplace start=/^\S\{-}:/ end=/^\S\{-}:/me=s-1 contains=redifFieldEditorWorkplaceName,redifFieldEditorWorkplaceHomepage,redifFieldEditorWorkplaceNameEnglish,redifFieldEditorWorkplacePostal,redifFieldEditorWorkplaceLocation,redifFieldEditorWorkplaceEmail,redifFieldEditorWorkplacePhone,redifFieldEditorWorkplaceFax,redifFieldEditorWorkplaceInstitution,redifWrongLine contained transparent fold + +" All the possible fields +" Note: The "Handle" field is handled a little bit differently, because it +" does not have the same meaning depending on the Template-Type. See: +" /redifFieldHandleOf.... +syntax match redifFieldAbstract /^Abstract:/ skipwhite skipempty nextgroup=redifArgumentAbstract contained +syntax match redifFieldArticleHandle /^Article-Handle:/ skipwhite skipempty nextgroup=redifArgumentArticleHandle contained +syntax match redifFieldAuthorArticle /^Author-Article:/ skipwhite skipempty nextgroup=redifArgumentAuthorArticle contained +syntax match redifFieldAuthorBook /^Author-Book:/ skipwhite skipempty nextgroup=redifArgumentAuthorBook contained +syntax match redifFieldAuthorChapter /^Author-Chapter:/ skipwhite skipempty nextgroup=redifArgumentAuthorChapter contained +syntax match redifFieldAuthorEmail /^Author-Email:/ skipwhite skipempty nextgroup=redifArgumentAuthorEmail contained +syntax match redifFieldAuthorFax /^Author-Fax:/ skipwhite skipempty nextgroup=redifArgumentAuthorFax contained +syntax match redifFieldAuthorHomepage /^Author-Homepage:/ skipwhite skipempty nextgroup=redifArgumentAuthorHomepage contained +syntax match redifFieldAuthorName /^Author-Name:/ skipwhite skipempty nextgroup=redifArgumentAuthorName contained +syntax match redifFieldAuthorNameFirst /^Author-Name-First:/ skipwhite skipempty nextgroup=redifArgumentAuthorNameFirst contained +syntax match redifFieldAuthorNameLast /^Author-Name-Last:/ skipwhite skipempty nextgroup=redifArgumentAuthorNameLast contained +syntax match redifFieldAuthorPaper /^Author-Paper:/ skipwhite skipempty nextgroup=redifArgumentAuthorPaper contained +syntax match redifFieldAuthorPerson /^Author-Person:/ skipwhite skipempty nextgroup=redifArgumentAuthorPerson contained +syntax match redifFieldAuthorPhone /^Author-Phone:/ skipwhite skipempty nextgroup=redifArgumentAuthorPhone contained +syntax match redifFieldAuthorPostal /^Author-Postal:/ skipwhite skipempty nextgroup=redifArgumentAuthorPostal contained +syntax match redifFieldAuthorSoftware /^Author-Software:/ skipwhite skipempty nextgroup=redifArgumentAuthorSoftware contained +syntax match redifFieldAuthorWorkplaceEmail /^Author-Workplace-Email:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceEmail contained +syntax match redifFieldAuthorWorkplaceFax /^Author-Workplace-Fax:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceFax contained +syntax match redifFieldAuthorWorkplaceHomepage /^Author-Workplace-Homepage:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceHomepage contained +syntax match redifFieldAuthorWorkplaceInstitution /^Author-Workplace-Institution:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceInstitution contained +syntax match redifFieldAuthorWorkplaceLocation /^Author-Workplace-Location:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceLocation contained +syntax match redifFieldAuthorWorkplaceName /^Author-Workplace-Name:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceName contained +syntax match redifFieldAuthorWorkplaceNameEnglish /^Author-Workplace-Name-English:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplaceNameEnglish contained +syntax match redifFieldAuthorWorkplacePhone /^Author-Workplace-Phone:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplacePhone contained +syntax match redifFieldAuthorWorkplacePostal /^Author-Workplace-Postal:/ skipwhite skipempty nextgroup=redifArgumentAuthorWorkplacePostal contained +syntax match redifFieldAvailability /^Availability:/ skipwhite skipempty nextgroup=redifArgumentAvailability contained +syntax match redifFieldBookHandle /^Book-Handle:/ skipwhite skipempty nextgroup=redifArgumentBookHandle contained +syntax match redifFieldBookTitle /^Book-Title:/ skipwhite skipempty nextgroup=redifArgumentBookTitle contained +syntax match redifFieldChapterHandle /^Chapter-Handle:/ skipwhite skipempty nextgroup=redifArgumentChapterHandle contained +syntax match redifFieldChapter /^Chapter:/ skipwhite skipempty nextgroup=redifArgumentChapter contained +syntax match redifFieldClassificationJEL /^Classification-JEL:/ skipwhite skipempty nextgroup=redifArgumentClassificationJEL contained +syntax match redifFieldContactEmail /^Contact-Email:/ skipwhite skipempty nextgroup=redifArgumentContactEmail contained +syntax match redifFieldCreationDate /^Creation-Date:/ skipwhite skipempty nextgroup=redifArgumentCreationDate contained +syntax match redifFieldDescription /^Description:/ skipwhite skipempty nextgroup=redifArgumentDescription contained +syntax match redifFieldEdition /^Edition:/ skipwhite skipempty nextgroup=redifArgumentEdition contained +syntax match redifFieldEditorBook /^Editor-Book:/ skipwhite skipempty nextgroup=redifArgumentEditorBook contained +syntax match redifFieldEditorEmail /^Editor-Email:/ skipwhite skipempty nextgroup=redifArgumentEditorEmail contained +syntax match redifFieldEditorFax /^Editor-Fax:/ skipwhite skipempty nextgroup=redifArgumentEditorFax contained +syntax match redifFieldEditorHomepage /^Editor-Homepage:/ skipwhite skipempty nextgroup=redifArgumentEditorHomepage contained +syntax match redifFieldEditorName /^Editor-Name:/ skipwhite skipempty nextgroup=redifArgumentEditorName contained +syntax match redifFieldEditorNameFirst /^Editor-Name-First:/ skipwhite skipempty nextgroup=redifArgumentEditorNameFirst contained +syntax match redifFieldEditorNameLast /^Editor-Name-Last:/ skipwhite skipempty nextgroup=redifArgumentEditorNameLast contained +syntax match redifFieldEditorPerson /^Editor-Person:/ skipwhite skipempty nextgroup=redifArgumentEditorPerson contained +syntax match redifFieldEditorPhone /^Editor-Phone:/ skipwhite skipempty nextgroup=redifArgumentEditorPhone contained +syntax match redifFieldEditorPostal /^Editor-Postal:/ skipwhite skipempty nextgroup=redifArgumentEditorPostal contained +syntax match redifFieldEditorSeries /^Editor-Series:/ skipwhite skipempty nextgroup=redifArgumentEditorSeries contained +syntax match redifFieldEditorWorkplaceEmail /^Editor-Workplace-Email:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceEmail contained +syntax match redifFieldEditorWorkplaceFax /^Editor-Workplace-Fax:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceFax contained +syntax match redifFieldEditorWorkplaceHomepage /^Editor-Workplace-Homepage:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceHomepage contained +syntax match redifFieldEditorWorkplaceInstitution /^Editor-Workplace-Institution:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceInstitution contained +syntax match redifFieldEditorWorkplaceLocation /^Editor-Workplace-Location:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceLocation contained +syntax match redifFieldEditorWorkplaceName /^Editor-Workplace-Name:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceName contained +syntax match redifFieldEditorWorkplaceNameEnglish /^Editor-Workplace-Name-English:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplaceNameEnglish contained +syntax match redifFieldEditorWorkplacePhone /^Editor-Workplace-Phone:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplacePhone contained +syntax match redifFieldEditorWorkplacePostal /^Editor-Workplace-Postal:/ skipwhite skipempty nextgroup=redifArgumentEditorWorkplacePostal contained +syntax match redifFieldEmail /^Email:/ skipwhite skipempty nextgroup=redifArgumentEmail contained +syntax match redifFieldFax /^Fax:/ skipwhite skipempty nextgroup=redifArgumentFax contained +syntax match redifFieldFileFormat /^File-Format:/ skipwhite skipempty nextgroup=redifArgumentFileFormat contained +syntax match redifFieldFileFunction /^File-Function:/ skipwhite skipempty nextgroup=redifArgumentFileFunction contained +syntax match redifFieldFileRestriction /^File-Restriction:/ skipwhite skipempty nextgroup=redifArgumentFileRestriction contained +syntax match redifFieldFileSize /^File-Size:/ skipwhite skipempty nextgroup=redifArgumentFileSize contained +syntax match redifFieldFileURL /^File-URL:/ skipwhite skipempty nextgroup=redifArgumentFileURL contained +syntax match redifFieldFollowup /^Followup:/ skipwhite skipempty nextgroup=redifArgumentFollowup contained +syntax match redifFieldHandleOfArchive /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfArchive contained +syntax match redifFieldHandleOfInstitution /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfInstitution contained +syntax match redifFieldHandleOfPerson /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfPerson contained +syntax match redifFieldHandleOfSeries /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfSeries contained +syntax match redifFieldHandleOfWork /^Handle:/ skipwhite skipempty nextgroup=redifArgumentHandleOfWork contained +syntax match redifFieldHasChapter /^HasChapter:/ skipwhite skipempty nextgroup=redifArgumentHasChapter contained +syntax match redifFieldHomepage /^Homepage:/ skipwhite skipempty nextgroup=redifArgumentHomepage contained +syntax match redifFieldInBook /^In-Book:/ skipwhite skipempty nextgroup=redifArgumentInBook contained +syntax match redifFieldISBN /^ISBN:/ skipwhite skipempty nextgroup=redifArgumentISBN contained +syntax match redifFieldISSN /^ISSN:/ skipwhite skipempty nextgroup=redifArgumentISSN contained +syntax match redifFieldIssue /^Issue:/ skipwhite skipempty nextgroup=redifArgumentIssue contained +syntax match redifFieldJournal /^Journal:/ skipwhite skipempty nextgroup=redifArgumentJournal contained +syntax match redifFieldKeywords /^Keywords:/ skipwhite skipempty nextgroup=redifArgumentKeywords contained +syntax match redifFieldKeywords /^Keywords:/ skipwhite skipempty nextgroup=redifArgumentKeywords contained +syntax match redifFieldLanguage /^Language:/ skipwhite skipempty nextgroup=redifArgumentLanguage contained +syntax match redifFieldLastLoginDate /^Last-Login-Date:/ skipwhite skipempty nextgroup=redifArgumentLastLoginDate contained +syntax match redifFieldLength /^Length:/ skipwhite skipempty nextgroup=redifArgumentLength contained +syntax match redifFieldMaintainerEmail /^Maintainer-Email:/ skipwhite skipempty nextgroup=redifArgumentMaintainerEmail contained +syntax match redifFieldMaintainerFax /^Maintainer-Fax:/ skipwhite skipempty nextgroup=redifArgumentMaintainerFax contained +syntax match redifFieldMaintainerName /^Maintainer-Name:/ skipwhite skipempty nextgroup=redifArgumentMaintainerName contained +syntax match redifFieldMaintainerPhone /^Maintainer-Phone:/ skipwhite skipempty nextgroup=redifArgumentMaintainerPhone contained +syntax match redifFieldMonth /^Month:/ skipwhite skipempty nextgroup=redifArgumentMonth contained +syntax match redifFieldNameASCII /^Name-ASCII:/ skipwhite skipempty nextgroup=redifArgumentNameASCII contained +syntax match redifFieldNameFirst /^Name-First:/ skipwhite skipempty nextgroup=redifArgumentNameFirst contained +syntax match redifFieldNameFull /^Name-Full:/ skipwhite skipempty nextgroup=redifArgumentNameFull contained +syntax match redifFieldNameLast /^Name-Last:/ skipwhite skipempty nextgroup=redifArgumentNameLast contained +syntax match redifFieldNameMiddle /^Name-Middle:/ skipwhite skipempty nextgroup=redifArgumentNameMiddle contained +syntax match redifFieldNamePrefix /^Name-Prefix:/ skipwhite skipempty nextgroup=redifArgumentNamePrefix contained +syntax match redifFieldNameSuffix /^Name-Suffix:/ skipwhite skipempty nextgroup=redifArgumentNameSuffix contained +syntax match redifFieldName /^Name:/ skipwhite skipempty nextgroup=redifArgumentName contained +syntax match redifFieldNote /^Note:/ skipwhite skipempty nextgroup=redifArgumentNote contained +syntax match redifFieldNotification /^Notification:/ skipwhite skipempty nextgroup=redifArgumentNotification contained +syntax match redifFieldNumber /^Number:/ skipwhite skipempty nextgroup=redifArgumentNumber contained +syntax match redifFieldOrderEmail /^Order-Email:/ skipwhite skipempty nextgroup=redifArgumentOrderEmail contained +syntax match redifFieldOrderHomepage /^Order-Homepage:/ skipwhite skipempty nextgroup=redifArgumentOrderHomepage contained +syntax match redifFieldOrderPostal /^Order-Postal:/ skipwhite skipempty nextgroup=redifArgumentOrderPostal contained +syntax match redifFieldOrderURL /^Order-URL:/ skipwhite skipempty nextgroup=redifArgumentOrderURL contained +syntax match redifFieldPages /^Pages:/ skipwhite skipempty nextgroup=redifArgumentPages contained +syntax match redifFieldPaperHandle /^Paper-Handle:/ skipwhite skipempty nextgroup=redifArgumentPaperHandle contained +syntax match redifFieldPhone /^Phone:/ skipwhite skipempty nextgroup=redifArgumentPhone contained +syntax match redifFieldPostal /^Postal:/ skipwhite skipempty nextgroup=redifArgumentPostal contained +syntax match redifFieldPredecessor /^Predecessor:/ skipwhite skipempty nextgroup=redifArgumentPredecessor contained +syntax match redifFieldPrice /^Price:/ skipwhite skipempty nextgroup=redifArgumentPrice contained +syntax match redifFieldPrimaryDefunct /^Primary-Defunct:/ skipwhite skipempty nextgroup=redifArgumentPrimaryDefunct contained +syntax match redifFieldPrimaryEmail /^Primary-Email:/ skipwhite skipempty nextgroup=redifArgumentPrimaryEmail contained +syntax match redifFieldPrimaryFax /^Primary-Fax:/ skipwhite skipempty nextgroup=redifArgumentPrimaryFax contained +syntax match redifFieldPrimaryHomepage /^Primary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentPrimaryHomepage contained +syntax match redifFieldPrimaryInstitution /^Primary-Institution:/ skipwhite skipempty nextgroup=redifArgumentPrimaryInstitution contained +syntax match redifFieldPrimaryLocation /^Primary-Location:/ skipwhite skipempty nextgroup=redifArgumentPrimaryLocation contained +syntax match redifFieldPrimaryName /^Primary-Name:/ skipwhite skipempty nextgroup=redifArgumentPrimaryName contained +syntax match redifFieldPrimaryNameEnglish /^Primary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentPrimaryNameEnglish contained +syntax match redifFieldPrimaryPhone /^Primary-Phone:/ skipwhite skipempty nextgroup=redifArgumentPrimaryPhone contained +syntax match redifFieldPrimaryPostal /^Primary-Postal:/ skipwhite skipempty nextgroup=redifArgumentPrimaryPostal contained +syntax match redifFieldProgrammingLanguage /^Programming-Language:/ skipwhite skipempty nextgroup=redifArgumentProgrammingLanguage contained +syntax match redifFieldProviderEmail /^Provider-Email:/ skipwhite skipempty nextgroup=redifArgumentProviderEmail contained +syntax match redifFieldProviderFax /^Provider-Fax:/ skipwhite skipempty nextgroup=redifArgumentProviderFax contained +syntax match redifFieldProviderHomepage /^Provider-Homepage:/ skipwhite skipempty nextgroup=redifArgumentProviderHomepage contained +syntax match redifFieldProviderInstitution /^Provider-Institution:/ skipwhite skipempty nextgroup=redifArgumentProviderInstitution contained +syntax match redifFieldProviderLocation /^Provider-Location:/ skipwhite skipempty nextgroup=redifArgumentProviderLocation contained +syntax match redifFieldProviderName /^Provider-Name:/ skipwhite skipempty nextgroup=redifArgumentProviderName contained +syntax match redifFieldProviderNameEnglish /^Provider-Name-English:/ skipwhite skipempty nextgroup=redifArgumentProviderNameEnglish contained +syntax match redifFieldProviderPhone /^Provider-Phone:/ skipwhite skipempty nextgroup=redifArgumentProviderPhone contained +syntax match redifFieldProviderPostal /^Provider-Postal:/ skipwhite skipempty nextgroup=redifArgumentProviderPostal contained +syntax match redifFieldPublicationDate /^Publication-Date:/ skipwhite skipempty nextgroup=redifArgumentPublicationDate contained +syntax match redifFieldPublicationStatus /^Publication-Status:/ skipwhite skipempty nextgroup=redifArgumentPublicationStatus contained +syntax match redifFieldPublicationType /^Publication-Type:/ skipwhite skipempty nextgroup=redifArgumentPublicationType contained +syntax match redifFieldQuaternaryEmail /^Quaternary-Email:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryEmail contained +syntax match redifFieldQuaternaryFax /^Quaternary-Fax:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryFax contained +syntax match redifFieldQuaternaryHomepage /^Quaternary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryHomepage contained +syntax match redifFieldQuaternaryInstitution /^Quaternary-Institution:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryInstitution contained +syntax match redifFieldQuaternaryLocation /^Quaternary-Location:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryLocation contained +syntax match redifFieldQuaternaryName /^Quaternary-Name:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryName contained +syntax match redifFieldQuaternaryNameEnglish /^Quaternary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryNameEnglish contained +syntax match redifFieldQuaternaryPhone /^Quaternary-Phone:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryPhone contained +syntax match redifFieldQuaternaryPostal /^Quaternary-Postal:/ skipwhite skipempty nextgroup=redifArgumentQuaternaryPostal contained +syntax match redifFieldRegisteredDate /^Registered-Date:/ skipwhite skipempty nextgroup=redifArgumentRegisteredDate contained +syntax match redifFieldRequires /^Requires:/ skipwhite skipempty nextgroup=redifArgumentRequires contained +syntax match redifFieldRestriction /^Restriction:/ skipwhite skipempty nextgroup=redifArgumentRestriction contained +syntax match redifFieldRevisionDate /^Revision-Date:/ skipwhite skipempty nextgroup=redifArgumentRevisionDate contained +syntax match redifFieldSecondaryDefunct /^Secondary-Defunct:/ skipwhite skipempty nextgroup=redifArgumentSecondaryDefunct contained +syntax match redifFieldSecondaryEmail /^Secondary-Email:/ skipwhite skipempty nextgroup=redifArgumentSecondaryEmail contained +syntax match redifFieldSecondaryFax /^Secondary-Fax:/ skipwhite skipempty nextgroup=redifArgumentSecondaryFax contained +syntax match redifFieldSecondaryHomepage /^Secondary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentSecondaryHomepage contained +syntax match redifFieldSecondaryInstitution /^Secondary-Institution:/ skipwhite skipempty nextgroup=redifArgumentSecondaryInstitution contained +syntax match redifFieldSecondaryLocation /^Secondary-Location:/ skipwhite skipempty nextgroup=redifArgumentSecondaryLocation contained +syntax match redifFieldSecondaryName /^Secondary-Name:/ skipwhite skipempty nextgroup=redifArgumentSecondaryName contained +syntax match redifFieldSecondaryNameEnglish /^Secondary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentSecondaryNameEnglish contained +syntax match redifFieldSecondaryPhone /^Secondary-Phone:/ skipwhite skipempty nextgroup=redifArgumentSecondaryPhone contained +syntax match redifFieldSecondaryPostal /^Secondary-Postal:/ skipwhite skipempty nextgroup=redifArgumentSecondaryPostal contained +syntax match redifFieldSeries /^Series:/ skipwhite skipempty nextgroup=redifArgumentSeries contained +syntax match redifFieldShortId /^Short-Id:/ skipwhite skipempty nextgroup=redifArgumentShortId contained +syntax match redifFieldSize /^Size:/ skipwhite skipempty nextgroup=redifArgumentSize contained +syntax match redifFieldSoftwareHandle /^Software-Handle:/ skipwhite skipempty nextgroup=redifArgumentSoftwareHandle contained +syntax match redifFieldTemplateType /^Template-Type:/ skipwhite skipempty nextgroup=redifArgumentTemplateType contained +syntax match redifFieldTertiaryDefunct /^Tertiary-Defunct:/ skipwhite skipempty nextgroup=redifArgumentTertiaryDefunct contained +syntax match redifFieldTertiaryEmail /^Tertiary-Email:/ skipwhite skipempty nextgroup=redifArgumentTertiaryEmail contained +syntax match redifFieldTertiaryFax /^Tertiary-Fax:/ skipwhite skipempty nextgroup=redifArgumentTertiaryFax contained +syntax match redifFieldTertiaryHomepage /^Tertiary-Homepage:/ skipwhite skipempty nextgroup=redifArgumentTertiaryHomepage contained +syntax match redifFieldTertiaryInstitution /^Tertiary-Institution:/ skipwhite skipempty nextgroup=redifArgumentTertiaryInstitution contained +syntax match redifFieldTertiaryLocation /^Tertiary-Location:/ skipwhite skipempty nextgroup=redifArgumentTertiaryLocation contained +syntax match redifFieldTertiaryName /^Tertiary-Name:/ skipwhite skipempty nextgroup=redifArgumentTertiaryName contained +syntax match redifFieldTertiaryNameEnglish /^Tertiary-Name-English:/ skipwhite skipempty nextgroup=redifArgumentTertiaryNameEnglish contained +syntax match redifFieldTertiaryPhone /^Tertiary-Phone:/ skipwhite skipempty nextgroup=redifArgumentTertiaryPhone contained +syntax match redifFieldTertiaryPostal /^Tertiary-Postal:/ skipwhite skipempty nextgroup=redifArgumentTertiaryPostal contained +syntax match redifFieldTitle /^Title:/ skipwhite skipempty nextgroup=redifArgumentTitle contained +syntax match redifFieldType /^Type:/ skipwhite skipempty nextgroup=redifArgumentType contained +syntax match redifFieldURL /^URL:/ skipwhite skipempty nextgroup=redifArgumentURL contained +syntax match redifFieldVersion /^Version:/ skipwhite skipempty nextgroup=redifArgumentVersion contained +syntax match redifFieldVolume /^Volume:/ skipwhite skipempty nextgroup=redifArgumentVolume contained +syntax match redifFieldWorkplaceEmail /^Workplace-Email:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceEmail contained +syntax match redifFieldWorkplaceFax /^Workplace-Fax:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceFax contained +syntax match redifFieldWorkplaceHomepage /^Workplace-Homepage:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceHomepage contained +syntax match redifFieldWorkplaceInstitution /^Workplace-Institution:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceInstitution contained +syntax match redifFieldWorkplaceLocation /^Workplace-Location:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceLocation contained +syntax match redifFieldWorkplaceName /^Workplace-Name:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceName contained +syntax match redifFieldWorkplaceNameEnglish /^Workplace-Name-English:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceNameEnglish contained +syntax match redifFieldWorkplaceOrganization /^Workplace-Organization:/ skipwhite skipempty nextgroup=redifArgumentWorkplaceOrganization contained +syntax match redifFieldWorkplacePhone /^Workplace-Phone:/ skipwhite skipempty nextgroup=redifArgumentWorkplacePhone contained +syntax match redifFieldWorkplacePostal /^Workplace-Postal:/ skipwhite skipempty nextgroup=redifArgumentWorkplacePostal contained +syntax match redifFieldYear /^Year:/ skipwhite skipempty nextgroup=redifArgumentYear contained + +highlight def link redifFieldAbstract redifField +highlight def link redifFieldArticleHandle redifField +highlight def link redifFieldAuthorArticle redifField +highlight def link redifFieldAuthorBook redifField +highlight def link redifFieldAuthorChapter redifField +highlight def link redifFieldAuthorEmail redifField +highlight def link redifFieldAuthorFax redifField +highlight def link redifFieldAuthorHomepage redifField +highlight def link redifFieldAuthorName redifField +highlight def link redifFieldAuthorNameFirst redifField +highlight def link redifFieldAuthorNameLast redifField +highlight def link redifFieldAuthorPaper redifField +highlight def link redifFieldAuthorPerson redifField +highlight def link redifFieldAuthorPhone redifField +highlight def link redifFieldAuthorPostal redifField +highlight def link redifFieldAuthorSoftware redifField +highlight def link redifFieldAuthorWorkplaceEmail redifField +highlight def link redifFieldAuthorWorkplaceFax redifField +highlight def link redifFieldAuthorWorkplaceHomepage redifField +highlight def link redifFieldAuthorWorkplaceInstitution redifField +highlight def link redifFieldAuthorWorkplaceLocation redifField +highlight def link redifFieldAuthorWorkplaceName redifField +highlight def link redifFieldAuthorWorkplaceNameEnglish redifField +highlight def link redifFieldAuthorWorkplacePhone redifField +highlight def link redifFieldAuthorWorkplacePostal redifField +highlight def link redifFieldAvailability redifField +highlight def link redifFieldBookHandle redifField +highlight def link redifFieldBookTitle redifField +highlight def link redifFieldChapterHandle redifField +highlight def link redifFieldChapter redifField +highlight def link redifFieldClassificationJEL redifField +highlight def link redifFieldContactEmail redifField +highlight def link redifFieldCreationDate redifField +highlight def link redifFieldDescription redifField +highlight def link redifFieldEdition redifField +highlight def link redifFieldEditorBook redifField +highlight def link redifFieldEditorEmail redifField +highlight def link redifFieldEditorFax redifField +highlight def link redifFieldEditorHomepage redifField +highlight def link redifFieldEditorName redifField +highlight def link redifFieldEditorNameFirst redifField +highlight def link redifFieldEditorNameLast redifField +highlight def link redifFieldEditorPerson redifField +highlight def link redifFieldEditorPhone redifField +highlight def link redifFieldEditorPostal redifField +highlight def link redifFieldEditorSeries redifField +highlight def link redifFieldEditorWorkplaceEmail redifField +highlight def link redifFieldEditorWorkplaceFax redifField +highlight def link redifFieldEditorWorkplaceHomepage redifField +highlight def link redifFieldEditorWorkplaceInstitution redifField +highlight def link redifFieldEditorWorkplaceLocation redifField +highlight def link redifFieldEditorWorkplaceName redifField +highlight def link redifFieldEditorWorkplaceNameEnglish redifField +highlight def link redifFieldEditorWorkplacePhone redifField +highlight def link redifFieldEditorWorkplacePostal redifField +highlight def link redifFieldEmail redifField +highlight def link redifFieldFax redifField +highlight def link redifFieldFileFormat redifField +highlight def link redifFieldFileFunction redifField +highlight def link redifFieldFileRestriction redifField +highlight def link redifFieldFileSize redifField +highlight def link redifFieldFileURL redifField +highlight def link redifFieldFollowup redifField +highlight def link redifFieldHandleOfArchive redifField +highlight def link redifFieldHandleOfInstitution redifField +highlight def link redifFieldHandleOfPerson redifField +highlight def link redifFieldHandleOfSeries redifField +highlight def link redifFieldHandleOfWork redifField +highlight def link redifFieldHasChapter redifField +highlight def link redifFieldHomepage redifField +highlight def link redifFieldInBook redifField +highlight def link redifFieldISBN redifField +highlight def link redifFieldISSN redifField +highlight def link redifFieldIssue redifField +highlight def link redifFieldJournal redifField +highlight def link redifFieldKeywords redifField +highlight def link redifFieldKeywords redifField +highlight def link redifFieldLanguage redifField +highlight def link redifFieldLastLoginDate redifField +highlight def link redifFieldLength redifField +highlight def link redifFieldMaintainerEmail redifField +highlight def link redifFieldMaintainerFax redifField +highlight def link redifFieldMaintainerName redifField +highlight def link redifFieldMaintainerPhone redifField +highlight def link redifFieldMonth redifField +highlight def link redifFieldNameASCII redifField +highlight def link redifFieldNameFirst redifField +highlight def link redifFieldNameFull redifField +highlight def link redifFieldNameLast redifField +highlight def link redifFieldNameMiddle redifField +highlight def link redifFieldNamePrefix redifField +highlight def link redifFieldNameSuffix redifField +highlight def link redifFieldName redifField +highlight def link redifFieldNote redifField +highlight def link redifFieldNotification redifField +highlight def link redifFieldNumber redifField +highlight def link redifFieldOrderEmail redifField +highlight def link redifFieldOrderHomepage redifField +highlight def link redifFieldOrderPostal redifField +highlight def link redifFieldOrderURL redifField +highlight def link redifFieldPages redifField +highlight def link redifFieldPaperHandle redifField +highlight def link redifFieldPhone redifField +highlight def link redifFieldPostal redifField +highlight def link redifFieldPredecessor redifField +highlight def link redifFieldPrice redifField +highlight def link redifFieldPrimaryDefunct redifField +highlight def link redifFieldPrimaryEmail redifField +highlight def link redifFieldPrimaryFax redifField +highlight def link redifFieldPrimaryHomepage redifField +highlight def link redifFieldPrimaryInstitution redifField +highlight def link redifFieldPrimaryLocation redifField +highlight def link redifFieldPrimaryName redifField +highlight def link redifFieldPrimaryNameEnglish redifField +highlight def link redifFieldPrimaryPhone redifField +highlight def link redifFieldPrimaryPostal redifField +highlight def link redifFieldProgrammingLanguage redifField +highlight def link redifFieldProviderEmail redifField +highlight def link redifFieldProviderFax redifField +highlight def link redifFieldProviderHomepage redifField +highlight def link redifFieldProviderInstitution redifField +highlight def link redifFieldProviderLocation redifField +highlight def link redifFieldProviderName redifField +highlight def link redifFieldProviderNameEnglish redifField +highlight def link redifFieldProviderPhone redifField +highlight def link redifFieldProviderPostal redifField +highlight def link redifFieldPublicationDate redifField +highlight def link redifFieldPublicationStatus redifField +highlight def link redifFieldPublicationType redifField +highlight def link redifFieldQuaternaryEmail redifField +highlight def link redifFieldQuaternaryFax redifField +highlight def link redifFieldQuaternaryHomepage redifField +highlight def link redifFieldQuaternaryInstitution redifField +highlight def link redifFieldQuaternaryLocation redifField +highlight def link redifFieldQuaternaryName redifField +highlight def link redifFieldQuaternaryNameEnglish redifField +highlight def link redifFieldQuaternaryPhone redifField +highlight def link redifFieldQuaternaryPostal redifField +highlight def link redifFieldRegisteredDate redifField +highlight def link redifFieldRequires redifField +highlight def link redifFieldRestriction redifField +highlight def link redifFieldRevisionDate redifField +highlight def link redifFieldSecondaryDefunct redifField +highlight def link redifFieldSecondaryEmail redifField +highlight def link redifFieldSecondaryFax redifField +highlight def link redifFieldSecondaryHomepage redifField +highlight def link redifFieldSecondaryInstitution redifField +highlight def link redifFieldSecondaryLocation redifField +highlight def link redifFieldSecondaryName redifField +highlight def link redifFieldSecondaryNameEnglish redifField +highlight def link redifFieldSecondaryPhone redifField +highlight def link redifFieldSecondaryPostal redifField +highlight def link redifFieldSeries redifField +highlight def link redifFieldShortId redifField +highlight def link redifFieldSize redifField +highlight def link redifFieldSoftwareHandle redifField +highlight def link redifFieldTemplateType redifField +highlight def link redifFieldTertiaryDefunct redifField +highlight def link redifFieldTertiaryEmail redifField +highlight def link redifFieldTertiaryFax redifField +highlight def link redifFieldTertiaryHomepage redifField +highlight def link redifFieldTertiaryInstitution redifField +highlight def link redifFieldTertiaryLocation redifField +highlight def link redifFieldTertiaryName redifField +highlight def link redifFieldTertiaryNameEnglish redifField +highlight def link redifFieldTertiaryPhone redifField +highlight def link redifFieldTertiaryPostal redifField +highlight def link redifFieldTitle redifField +highlight def link redifFieldTitle redifField +highlight def link redifFieldType redifField +highlight def link redifFieldURL redifField +highlight def link redifFieldVersion redifField +highlight def link redifFieldVolume redifField +highlight def link redifFieldWorkplaceEmail redifField +highlight def link redifFieldWorkplaceFax redifField +highlight def link redifFieldWorkplaceHomepage redifField +highlight def link redifFieldWorkplaceInstitution redifField +highlight def link redifFieldWorkplaceLocation redifField +highlight def link redifFieldWorkplaceName redifField +highlight def link redifFieldWorkplaceNameEnglish redifField +highlight def link redifFieldWorkplaceOrganization redifField +highlight def link redifFieldWorkplacePhone redifField +highlight def link redifFieldWorkplacePostal redifField +highlight def link redifFieldYear redifField + +" Deprecated +" same as Provider-* +" nextgroup=redifArgumentProvider* +syntax match redifFieldPublisherEmail /^Publisher-Email:/ skipwhite skipempty nextgroup=redifArgumentProviderEmail contained +syntax match redifFieldPublisherFax /^Publisher-Fax:/ skipwhite skipempty nextgroup=redifArgumentProviderFax contained +syntax match redifFieldPublisherHomepage /^Publisher-Homepage:/ skipwhite skipempty nextgroup=redifArgumentProviderHomepage contained +syntax match redifFieldPublisherInstitution /^Publisher-Institution:/ skipwhite skipempty nextgroup=redifArgumentProviderInstitution contained +syntax match redifFieldPublisherLocation /^Publisher-Location:/ skipwhite skipempty nextgroup=redifArgumentProviderLocation contained +syntax match redifFieldPublisherName /^Publisher-Name:/ skipwhite skipempty nextgroup=redifArgumentProviderName contained +syntax match redifFieldPublisherNameEnglish /^Publisher-Name-English:/ skipwhite skipempty nextgroup=redifArgumentProviderNameEnglish contained +syntax match redifFieldPublisherPhone /^Publisher-Phone:/ skipwhite skipempty nextgroup=redifArgumentProviderPhone contained +syntax match redifFieldPublisherPostal /^Publisher-Postal:/ skipwhite skipempty nextgroup=redifArgumentProviderPostal contained + +highlight def link redifFieldPublisherEmail redifFieldDeprecated +highlight def link redifFieldPublisherFax redifFieldDeprecated +highlight def link redifFieldPublisherHomepage redifFieldDeprecated +highlight def link redifFieldPublisherInstitution redifFieldDeprecated +highlight def link redifFieldPublisherLocation redifFieldDeprecated +highlight def link redifFieldPublisherName redifFieldDeprecated +highlight def link redifFieldPublisherNameEnglish redifFieldDeprecated +highlight def link redifFieldPublisherPhone redifFieldDeprecated +highlight def link redifFieldPublisherPostal redifFieldDeprecated + +" Standard arguments +" By default, they contain all the argument until another field is started: +" start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 +" For arguments that must not span more than one line, use a match: +" /\%(^\S\{-}:\)\@!\S.*/ +" AND ADD "display" +" This is faster. +" +" Those arguments are not highlighted so far. They are here for future +" extensions. +" TODO Find more RegEx for these arguments +" TODO Fax, Phone +" TODO URL, Homepage +" TODO Keywords +" TODO Classification-JEL +" TODO Short-Id, Author-Person, Editor-Person +" +" Arguments that may span several lines: +syntax region redifArgumentAuthorWorkplaceLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorWorkplacePostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplacePostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentFileFunction start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentIssue start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentJournal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentOrderPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrice start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentRequires start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSize start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentVersion start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplaceLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplacePhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplacePostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained + +" Arguments that may not span several lines: +" If you are sure that these arguments cannot span several lines, change +" them to a match: +" /\%(^\S\{-}:\)\@!\S.*/ +" AND ADD "display" after "contained" +" You can use this command on each line that you want to change: +" :s+\Vregion \(\w\+\) start=/\\%(^\\S\\{-}:\\)\\@!\\S/ end=/^\\S\\{-}:/me=s-1 contained+match \1 /\\%(^\\S\\{-}:\\)\\@!\\S.*/ contained display +syntax region redifArgumentAuthorFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorNameFirst start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorNameLast start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorPerson start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorPostal start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorWorkplaceFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorWorkplaceHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorWorkplaceName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorWorkplaceNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentAuthorWorkplacePhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorNameFirst start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorNameLast start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorPerson start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplaceFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplaceHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplaceLocation start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplaceName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplaceNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentEditorWorkplacePhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentFileURL start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentMaintainerFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentMaintainerName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentMaintainerPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNameFirst start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNameFull start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNameLast start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNameMiddle start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNamePrefix start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNameSuffix start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentNumber start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentOrderHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentOrderURL start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentPrimaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentProviderPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentQuaternaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSecondaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentSeries start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentShortId start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentTertiaryPhone start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentURL start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplaceFax start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplaceHomepage start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplaceName start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplaceNameEnglish start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained +syntax region redifArgumentWorkplaceOrganization start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contained + +" Special arguments +" Those arguments require special values +" TODO Improve some RegEx +" TODO Improve Emails +" TODO Improve ISBN +" TODO Improve ISSN +" TODO Improve spell check (add words from economics. +" expl=macroeconometrics, Schumpeterian, IS-LM, etc.) +" +" Template-Type +syntax match redifArgumentTemplateType /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectTemplateType contained display +syntax match redifCorrectTemplateType /ReDIF-\%(Paper\|Article\|Chapter\|Book\|Software\|Archive\|Series\|Institution\|Person\)/ nextgroup=redifTemplateVersionNumberContainer contained display +syntax match redifTemplateVersionNumberContainer /.\+/ contains=redifTemplateVersionNumber contained display +syntax match redifTemplateVersionNumber / \d\+\.\d\+/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentTemplateType redifError +highlight def link redifCorrectTemplateType Constant +highlight def link redifTemplateVersionNumber Number +highlight def link redifTemplateVersionNumberContainer redifError + +" Handles: +" +" Handles of Works: +syntax match redifArgumentHandleOfWork /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentAuthorArticle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentAuthorBook /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentAuthorChapter /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentAuthorPaper /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentAuthorSoftware /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentEditorBook /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentEditorSeries /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentInBook /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentHasChapter /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentArticleHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentBookHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentChapterHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentPaperHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifArgumentSoftwareHandle /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfWork contained display +syntax match redifCorrectHandleOfWork /RePEc:\a\a\a:\%(_\@!\w\)\{6}:\S\+/ contains=redifForbiddenCharactersInHandle,redifBestPracticeInHandle nextgroup=redifWrongLineEnding contained display +" TODO Are those characters really forbidden??? +syntax match redifForbiddenCharactersInHandle /[\/*?"<>|]/ contained display +syntax match redifBestPracticeInHandle /\<\%([vi]:[1-9]\d*\|y:[1-9]\d\{3}\|p:[1-9]\d*-[1-9]\d*\|i:\%(jan\|feb\|mar\|apr\|may\|jun\|jul\|aug\|sep\|oct\|nov\|dec\|spr\|sum\|aut\|win\|spe\|Q[1-4]\|\d\d-\d\d\)\|Q:[1-4]\)\>/ contained display + +highlight def link redifArgumentHandleOfWork redifError +highlight def link redifArgumentAuthorArticle redifError +highlight def link redifArgumentAuthorBook redifError +highlight def link redifArgumentAuthorChapter redifError +highlight def link redifArgumentAuthorPaper redifError +highlight def link redifArgumentAuthorSoftware redifError +highlight def link redifArgumentEditorBook redifError +highlight def link redifArgumentEditorSeries redifError +highlight def link redifArgumentInBook redifError +highlight def link redifArgumentHasChapter redifError +highlight def link redifArgumentArticleHandle redifError +highlight def link redifArgumentBookHandle redifError +highlight def link redifArgumentChapterHandle redifError +highlight def link redifArgumentPaperHandle redifError +highlight def link redifArgumentSoftwareHandle redifError +highlight def link redifForbiddenCharactersInHandle redifError +highlight def link redifBestPracticeInHandle redifSpecial + +" Handles of Series: +syntax match redifArgumentHandleOfSeries /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfSeries contained display +syntax match redifArgumentFollowup /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfSeries contained display +syntax match redifArgumentPredecessor /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfSeries contained display +syntax match redifCorrectHandleOfSeries /RePEc:\a\a\a:\%(_\@!\w\)\{6}/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentHandleOfSeries redifError +highlight def link redifArgumentFollowup redifError +highlight def link redifArgumentPredecessor redifError + +" Handles of Archives: +syntax match redifArgumentHandleOfArchive /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfArchive contained display +syntax match redifCorrectHandleOfArchive /RePEc:\a\a\a/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentHandleOfArchive redifError + +" Handles of Person: +syntax match redifArgumentHandleOfPerson /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfPerson contained display +syntax match redifCorrectHandleOfPerson /\%(\%(:\@!\S\)\{-}:\)\{2}[1-9]\d\{3}\%(-02\%(-[12]\d\|-0[1-9]\)\|-\%(0[469]\|11\)\%(-30\|-[12]\d\|-0[1-9]\)\|-\%(0[13578]\|1[02]\)\%(-3[01]\|-[12]\d\|-0[1-9]\)\):\S\+/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentHandleOfPerson redifError + +" Handles of Institution: +syntax match redifArgumentAuthorWorkplaceInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentEditorWorkplaceInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentPrimaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentProviderInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentPublisherInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentQuaternaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentSecondaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentTertiaryInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentWorkplaceInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentHandleOfInstitution /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentPrimaryDefunct /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentSecondaryDefunct /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +syntax match redifArgumentTertiaryDefunct /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectHandleOfInstitution contained display +" TODO Are digits authorized? Apparently not. +" Country codes: +" http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm +syntax match redifCorrectHandleOfInstitution /RePEc:\a\a\a:\a\{5}\(ea\|af\|ax\|al\|dz\|as\|ad\|ao\|ai\|aq\|ag\|ar\|am\|aw\|au\|at\|az\|bs\|bh\|bd\|bb\|by\|be\|bz\|bj\|bm\|bt\|bo\|bq\|ba\|bw\|bv\|br\|io\|bn\|bg\|bf\|bi\|kh\|cm\|ca\|cv\|ky\|cf\|td\|cl\|cn\|cx\|cc\|co\|km\|cg\|cd\|ck\|cr\|ci\|hr\|cu\|cw\|cy\|cz\|dk\|dj\|dm\|do\|ec\|eg\|sv\|gq\|er\|ee\|et\|fk\|fo\|fj\|fi\|fr\|gf\|pf\|tf\|ga\|gm\|ge\|de\|gh\|gi\|gr\|gl\|gd\|gp\|gu\|gt\|gg\|gn\|gw\|gy\|ht\|hm\|va\|hn\|hk\|hu\|is\|in\|id\|ir\|iq\|ie\|im\|il\|it\|jm\|jp\|je\|jo\|kz\|ke\|ki\|kp\|kr\|kw\|kg\|la\|lv\|lb\|ls\|lr\|ly\|li\|lt\|lu\|mo\|mk\|mg\|mw\|my\|mv\|ml\|mt\|mh\|mq\|mr\|mu\|yt\|mx\|fm\|md\|mc\|mn\|me\|ms\|ma\|mz\|mm\|na\|nr\|np\|nl\|nc\|nz\|ni\|ne\|ng\|nu\|nf\|mp\|no\|om\|pk\|pw\|ps\|pa\|pg\|py\|pe\|ph\|pn\|pl\|pt\|pr\|qa\|re\|ro\|ru\|rw\|bl\|sh\|kn\|lc\|mf\|pm\|vc\|ws\|sm\|st\|sa\|sn\|rs\|sc\|sl\|sg\|sx\|sk\|si\|sb\|so\|za\|gs\|ss\|es\|lk\|sd\|sr\|sj\|sz\|se\|ch\|sy\|tw\|tj\|tz\|th\|tl\|tg\|tk\|to\|tt\|tn\|tr\|tm\|tc\|tv\|ug\|ua\|ae\|gb\|us\|um\|uy\|uz\|vu\|ve\|vn\|vg\|vi\|wf\|eh\|ye\|zm\|zw\)/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentHandleOfInstitution redifError +highlight def link redifArgumentPrimaryDefunct redifError +highlight def link redifArgumentSecondaryDefunct redifError +highlight def link redifArgumentTertiaryDefunct redifError + +" Emails: +syntax match redifArgumentAuthorEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentAuthorWorkplaceEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentContactEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentEditorEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentEditorWorkplaceEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentMaintainerEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentOrderEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentPrimaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentProviderEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentPublisherEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentQuaternaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentSecondaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentTertiaryEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifArgumentWorkplaceEmail /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectEmail contained display +syntax match redifCorrectEmail /\%(@\@!\S\)\+@\%(@\@!\S\)\+/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentAuthorEmail redifError +highlight def link redifArgumentAuthorWorkplaceEmail redifError +highlight def link redifArgumentContactEmail redifError +highlight def link redifArgumentEditorEmail redifError +highlight def link redifArgumentEditorWorkplaceEmail redifError +highlight def link redifArgumentEmail redifError +highlight def link redifArgumentMaintainerEmail redifError +highlight def link redifArgumentOrderEmail redifError +highlight def link redifArgumentPrimaryEmail redifError +highlight def link redifArgumentProviderEmail redifError +highlight def link redifArgumentPublisherEmail redifError +highlight def link redifArgumentQuaternaryEmail redifError +highlight def link redifArgumentSecondaryEmail redifError +highlight def link redifArgumentTertiaryEmail redifError +highlight def link redifArgumentWorkplaceEmail redifError + +" Language +" Source: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes +syntax match redifArgumentLanguage /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectLanguage contained display +syntax match redifCorrectLanguage /\<\(aa\|ab\|af\|ak\|als\|am\|an\|ang\|ar\|arc\|as\|ast\|av\|ay\|az\|ba\|bar\|bat-smg\|bcl\|be\|be-x-old\|bg\|bh\|bi\|bm\|bn\|bo\|bpy\|br\|bs\|bug\|bxr\|ca\|ce\|ceb\|ch\|cho\|chr\|chy\|co\|cr\|cs\|csb\|cu\|cv\|cy\|da\|de\|diq\|dsb\|dv\|dz\|ee\|el\|en\|eo\|es\|et\|eu\|ext\|fa\|ff\|fi\|fiu-vro\|fj\|fo\|fr\|frp\|fur\|fy\|ga\|gd\|gil\|gl\|gn\|got\|gu\|gv\|ha\|haw\|he\|hi\|ho\|hr\|ht\|hu\|hy\|hz\|ia\|id\|ie\|ig\|ii\|ik\|ilo\|io\|is\|it\|iu\|ja\|jbo\|jv\|ka\|kg\|ki\|kj\|kk\|kl\|km\|kn\|khw\|ko\|kr\|ks\|ksh\|ku\|kv\|kw\|ky\|la\|lad\|lan\|lb\|lg\|li\|lij\|lmo\|ln\|lo\|lt\|lv\|map-bms\|mg\|mh\|mi\|mk\|ml\|mn\|mo\|mr\|ms\|mt\|mus\|my\|na\|nah\|nap\|nd\|nds\|nds-nl\|ne\|new\|ng\|nl\|nn\|no\|nr\|nso\|nrm\|nv\|ny\|oc\|oj\|om\|or\|os\|pa\|pag\|pam\|pap\|pdc\|pi\|pih\|pl\|pms\|ps\|pt\|qu\|rm\|rmy\|rn\|ro\|roa-rup\|ru\|rw\|sa\|sc\|scn\|sco\|sd\|se\|sg\|sh\|si\|simple\|sk\|sl\|sm\|sn\|so\|sq\|sr\|ss\|st\|su\|sv\|sw\|ta\|te\|tet\|tg\|th\|ti\|tk\|tl\|tlh\|tn\|to\|tpi\|tr\|ts\|tt\|tum\|tw\|ty\|udm\|ug\|uk\|ur\|uz\|ve\|vi\|vec\|vls\|vo\|wa\|war\|wo\|xal\|xh\|yi\|yo\|za\|zh\|zh-min-nan\|zh-yue\|zu\)\>/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentLanguage redifError +highlight def link redifCorrectLanguage redifSpecial + +" Length +" Based on the example in the documentation. But apparently any field is +" possible +syntax region redifArgumentLength start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=redifGoodLength contained +syntax match redifGoodLength /1 page\|[1-9]\d*\%( pages\)\=/ contained display + +highlight def link redifGoodLength redifSpecial + +" Publication-Type +syntax match redifArgumentPublicationType /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectPublicationType contained display +syntax match redifCorrectPublicationType /\<\(journal article\|book\|book chapter\|working paper\|conference paper\|report\|other\)\>/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentPublicationType redifError +highlight def link redifCorrectPublicationType redifSpecial + +" Publication-Status +syntax region redifArgumentPublicationStatus start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=redifSpecialPublicationStatus contained +syntax match redifSpecialPublicationStatus /published\|forthcoming/ nextgroup=redifCorrectPublicationStatus contained display +syntax region redifCorrectPublicationStatus start=/./ end=/^\S\{-}:/me=s-1 contained + +highlight def link redifArgumentPublicationStatus redifError +highlight def link redifSpecialPublicationStatus redifSpecial + +" Month +" TODO Are numbers also allowed? +syntax match redifArgumentMonth /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodMonth contained display +syntax match redifGoodMonth /\<\(Jan\%(uary\)\=\|Feb\%(ruary\)\=\|Mar\%(ch\)\=\|Apr\%(il\)\=\|May\|June\=\|July\=\|Aug\%(ust\)\=\|Sep\%(tember\)\=\|Oct\%(ober\)\=\|Nov\%(ember\)\=\|Dec\%(ember\)\=\)\>/ contained display + +highlight def link redifGoodMonth redifSpecial + +" Integers: Volume, Chapter +syntax match redifArgumentVolume /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectInteger contained display +syntax match redifArgumentChapter /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectInteger contained display +syntax match redifCorrectInteger /[1-9]\d*/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentVolume redifError +highlight def link redifArgumentChapter redifError + +" Year +syntax match redifArgumentYear /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectYear contained display +syntax match redifCorrectYear /[1-9]\d\{3}/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentYear redifError + +" Edition +" Based on the example in the documentation. +syntax match redifArgumentEdition /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodEdition contained display +syntax match redifGoodEdition /1st\|2nd\|3rd\|[4-9]th\|[1-9]\d*\%(1st\|2nd\|3rd\|[4-9]th\)\|[1-9]\d*/ contained display + +highlight def link redifGoodEdition redifSpecial + +" ISBN +syntax match redifArgumentISBN /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodISBN contained display +syntax match redifGoodISBN /\d[0-9-]\{8,15}\d/ contained display + +highlight def link redifGoodISBN redifSpecial + +" ISSN +syntax match redifArgumentISSN /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodISSN contained display +syntax match redifGoodISSN /\d\{4}-\d\{3}[0-9X]/ contained display + +highlight def link redifGoodISSN redifSpecial + +" File-Size +" Based on the example in the documentation. +syntax region redifArgumentFileSize start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=redifGoodSize contained +syntax match redifGoodSize /kb\|bytes/ contained display + +highlight def link redifGoodSize redifSpecial + +" Type +syntax match redifArgumentType /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectType contained display +syntax match redifCorrectType /ReDIF-Paper\|ReDIF-Software\|ReDIF-Article\|ReDIF-Chapter\|ReDIF-Book/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentType redifError +highlight def link redifCorrectType redifSpecial + +" Dates: Publication-Date, Creation-Date, Revision-Date, +" Last-Login-Date, Registration-Date +syntax match redifArgumentCreationDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display +syntax match redifArgumentLastLoginDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display +syntax match redifArgumentPublicationDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display +syntax match redifArgumentRegisteredDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display +syntax match redifArgumentRevisionDate /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectDate contained display +syntax match redifCorrectDate /[1-9]\d\{3}\%(-02\%(-[12]\d\|-0[1-9]\)\=\|-\%(0[469]\|11\)\%(-30\|-[12]\d\|-0[1-9]\)\=\|-\%(0[13578]\|1[02]\)\%(-3[01]\|-[12]\d\|-0[1-9]\)\=\)\=/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentCreationDate redifError +highlight def link redifArgumentLastLoginDate redifError +highlight def link redifArgumentPublicationDate redifError +highlight def link redifArgumentRegisteredDate redifError +highlight def link redifArgumentRevisionDate redifError + +" Classification-JEL +syntax match redifArgumentClassificationJEL /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectJEL contained display +syntax match redifCorrectJEL /\<\%(\u\d\{,2}[,; \t]\s*\)*\u\d\{,2}/ contains=redifSpecialJEL nextgroup=redifWrongLineEnding contained display +syntax match redifSpecialJEL /\<\u\d\{,2}/ contained display + +highlight def link redifArgumentClassificationJEL redifError +highlight def link redifSpecialJEL redifSpecial + +" Pages +syntax match redifArgumentPages /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectPages contained display +syntax match redifCorrectPages /[1-9]\d*-[1-9]\d*/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifArgumentPages redifError + +" Name-ASCII +syntax match redifArgumentNameASCII /\%(^\S\{-}:\)\@!\S.*/ contains=redifCorrectNameASCII contained display +syntax match redifCorrectNameASCII /[ -~]/ contained display + +highlight def link redifArgumentNameASCII redifError + +" Programming-Language +syntax match redifArgumentProgrammingLanguage /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodProgrammingLanguage contained display +syntax match redifGoodProgrammingLanguage /\/ nextgroup=redifWrongLineEnding contained display + +highlight def link redifGoodProgrammingLanguage redifSpecial + +" File-Format +" TODO The link in the documentation that gives the list of possible formats is broken. +" ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types +" These are based on the examples in the documentation. +syntax match redifArgumentFileFormat /\%(^\S\{-}:\)\@!\S.*/ contains=redifGoodFormat contained display +syntax match redifGoodFormat "\a\+/[[:alpha:]+-]\+" nextgroup=redifWrongLineEnding contains=redifSpecialFormat contained display +syntax match redifSpecialFormat "application/atom+xml\|application/ecmascript\|application/EDI-X12\|application/EDIFACT\|application/json\|application/javascript\|application/octet-stream\|application/ogg\|application/pdf\|application/postscript\|application/rdf+xml\|application/rss+xml\|application/soap+xml\|application/font-woff\|application/xhtml+xml\|application/xml\|application/xml-dtd\|application/xop+xml\|application/zip\|application/gzip\|audio/basic\|audio/L24\|audio/mp4\|audio/mpeg\|audio/ogg\|audio/vorbis\|audio/vnd.rn-realaudio\|audio/vnd.wave\|audio/webm\|image/gif\|image/jpeg\|image/pjpeg\|image/png\|image/svg+xml\|image/tiff\|image/vnd.microsoft.icon\|message/http\|message/imdn+xml\|message/partial\|message/rfc822\|model/example\|model/iges\|model/mesh\|model/vrml\|model/x3d+binary\|model/x3d+vrml\|model/x3d+xml\|multipart/mixed\|multipart/alternative\|multipart/related\|multipart/form-data\|multipart/signed\|multipart/encrypted\|text/cmd\|text/css\|text/csv\|text/html\|text/javascript\|text/plain\|text/vcard\|text/xml\|video/mpeg\|video/mp4\|video/ogg\|video/quicktime\|video/webm\|video/x-matroska\|video/x-ms-wmv\|video/x-flv" contained display + +highlight def link redifSpecialFormat redifSpecial +highlight def link redifArgumentFileFormat redifError + +" Keywords +" Spell checked +syntax match redifArgumentKeywords /\%(^\S\{-}:\)\@!\S.*/ contains=@Spell,redifKeywordsSemicolon contained +syntax match redifKeywordsSemicolon /;/ contained + +highlight def link redifKeywordsSemicolon redifSpecial + +" Other spell-checked arguments +" Very useful when copy-pasting abstracts that may contain hyphens or +" ligatures. +syntax region redifArgumentAbstract start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentAvailability start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentBookTitle start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentDescription start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentFileRestriction start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentNote start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentNotification start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentRestriction start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained +syntax region redifArgumentTitle start=/\%(^\S\{-}:\)\@!\S/ end=/^\S\{-}:/me=s-1 contains=@Spell contained + +" Wrong line ending +syntax match redifWrongLineEnding /.\+/ contained display + +highlight def link redifWrongLineEnding redifError + +" Final highlight +highlight def link redifComment Comment +highlight def link redifError Error +highlight def link redifField Identifier +highlight def link redifFieldDeprecated Identifier +highlight def link redifSpecial Special +" For deprecated fields: +highlight redifFieldDeprecated term=undercurl cterm=undercurl gui=undercurl guisp=DarkGrey + +" Sync: The template-type (ReDIF-Paper, ReDIF-Archive, etc.) influences which +" fields can follow. Thus sync must search backwards for it. +" +" I would like to simply ask VIM to search backward for the first occurrence of +" /^Template-Type:/, but it does not seem to be possible, so I have to start +" from the beginning of the file... This might slow down a lot for files that +" contain a lot of Template-Type statements. +syntax sync fromstart + +" The problem with syntax sync match (tried below), it is that, for example, +" it cannot realize when it is inside a Author-Name cluster, which is inside a +" Template-Type template... +" +" TODO Is this linecont pattern really useful? It seems to work anyway... +"syntax sync linecont /^\(Template-Type:\)\=\s*$/ +" TODO This sync is surprising... It seems to work on several lines even +" though I replaced \_s* by \s*, even without the linecont pattern... +"syntax sync match redifSyncForTemplatePaper groupthere redifRegionTemplatePaper /^Template-Type:\s*ReDIF-Paper \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateArticle groupthere redifRegionTemplateArticle /^Template-Type:\s*ReDIF-Article \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateChapter groupthere redifRegionTemplateChapter /^Template-Type:\s*ReDIF-Chapter \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateBook groupthere redifRegionTemplateBook /^Template-Type:\s*ReDIF-Book \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateSoftware groupthere redifRegionTemplateSoftware /^Template-Type:\s*ReDIF-Software \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateArchive groupthere redifRegionTemplateArchive /^Template-Type:\s*ReDIF-Archive \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateSeries groupthere redifRegionTemplateSeries /^Template-Type:\s*ReDIF-Series \d\+\.\d\+/ +"syntax sync match redifSyncForTemplateInstitution groupthere redifRegionTemplateInstitution /^Template-Type:\s*ReDIF-Institution \d\+\.\d\+/ +"syntax sync match redifSyncForTemplatePerson groupthere redifRegionTemplatePerson /^Template-Type:\s*ReDIF-Person \d\+\.\d\+/ + +" I do not really know how sync linebreaks works, but it helps when making +" changes on the argument when this argument is not on the same line than its +" field. I just assume that people won't leave more than one line of +" whitespace between fields and arguments (which is already very unlikely) +" hence the value of 2. +syntax sync linebreaks=2 + +" Since folding is defined by the syntax, set foldmethod to syntax. +set foldmethod=syntax + +" Set "b:current_syntax" to the name of the syntax at the end: +let b:current_syntax="redif" diff --git a/runtime/syntax/registry.vim b/runtime/syntax/registry.vim new file mode 100644 index 0000000..67b5e49 --- /dev/null +++ b/runtime/syntax/registry.vim @@ -0,0 +1,103 @@ +" Vim syntax file +" Language: Windows Registry export with regedit (*.reg) +" Maintainer: Dominique Stéphan (dominique@mggen.com) +" URL: http://www.mggen.com/vim/syntax/registry.zip (doesn't work) +" Last change: 2014 Oct 31 +" Included patch from Alexander A. Ulitin + +" clear any unwanted syntax defs +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" shut case off +syn case ignore + +" Head of regedit .reg files, it's REGEDIT4 on Win9#/NT +syn match registryHead "^REGEDIT[0-9]*\s*$\|^Windows Registry Editor Version \d*\.\d*\s*$" + +" Comment +syn match registryComment "^;.*$" + +" Registry Key constant +syn keyword registryHKEY HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_CURRENT_USER +syn keyword registryHKEY HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA +" Registry Key shortcuts +syn keyword registryHKEY HKLM HKCR HKCU HKU HKCC HKDD + +" Some values often found in the registry +" GUID (Global Unique IDentifier) +syn match registryGUID "{[0-9A-Fa-f]\{8}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{4}\-[0-9A-Fa-f]\{12}}" contains=registrySpecial + +" Disk +" syn match registryDisk "[a-zA-Z]:\\\\" + +" Special and Separator characters +syn match registrySpecial "\\" +syn match registrySpecial "\\\\" +syn match registrySpecial "\\\"" +syn match registrySpecial "\." +syn match registrySpecial "," +syn match registrySpecial "\/" +syn match registrySpecial ":" +syn match registrySpecial "-" + +" String +syn match registryString "\".*\"" contains=registryGUID,registrySpecial + +" Path +syn region registryPath start="\[" end="\]" contains=registryHKEY,registryGUID,registrySpecial + +" Path to remove +" like preceding path but with a "-" at begin +syn region registryRemove start="\[\-" end="\]" contains=registryHKEY,registryGUID,registrySpecial + +" Subkey +syn match registrySubKey "^\".*\"=" +" Default value +syn match registrySubKey "^@=" + +" Numbers + +" Hex or Binary +" The format can be precised between () : +" 0 REG_NONE +" 1 REG_SZ +" 2 REG_EXPAND_SZ +" 3 REG_BINARY +" 4 REG_DWORD, REG_DWORD_LITTLE_ENDIAN +" 5 REG_DWORD_BIG_ENDIAN +" 6 REG_LINK +" 7 REG_MULTI_SZ +" 8 REG_RESOURCE_LIST +" 9 REG_FULL_RESOURCE_DESCRIPTOR +" 10 REG_RESOURCE_REQUIREMENTS_LIST +" The value can take several lines, if \ ends the line +" The limit to 999 matches is arbitrary, it avoids Vim crashing on a very long +" line of hex values that ends in a comma. +"syn match registryHex "hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial +syn match registryHex "hex\(([0-9]\{0,2})\)\=:\([0-9a-fA-F]\{2},\)*\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial +syn match registryHex "^\s*\([0-9a-fA-F]\{2},\)\{0,999}\([0-9a-fA-F]\{2}\|\\\)$" contains=registrySpecial +" Dword (32 bits) +syn match registryDword "dword:[0-9a-fA-F]\{8}$" contains=registrySpecial + + +" The default methods for highlighting. Can be overridden later +hi def link registryComment Comment +hi def link registryHead Constant +hi def link registryHKEY Constant +hi def link registryPath Special +hi def link registryRemove PreProc +hi def link registryGUID Identifier +hi def link registrySpecial Special +hi def link registrySubKey Type +hi def link registryString String +hi def link registryHex Number +hi def link registryDword Number + + + +let b:current_syntax = "registry" + +" vim:ts=8 diff --git a/runtime/syntax/rego.vim b/runtime/syntax/rego.vim new file mode 100644 index 0000000..bc82030 --- /dev/null +++ b/runtime/syntax/rego.vim @@ -0,0 +1,120 @@ +" Vim syntax file +" Language: rego policy language +" Maintainer: Matt Dunford (zenmatic@gmail.com) +" URL: https://github.com/zenmatic/vim-syntax-rego +" Last Change: 2022 Dec 4 + +" https://www.openpolicyagent.org/docs/latest/policy-language/ + +" quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +syn keyword regoDirective package import allow deny +syn keyword regoKeywords as default else every false if import package not null true with some in print + +syn keyword regoFuncAggregates count sum product max min sort all any +syn match regoFuncArrays "\" +syn keyword regoFuncSets intersection union + +syn keyword regoFuncStrings concat /\/ endswith format_int indexof indexof_n lower replace split sprintf startswith substring trim trim_left trim_prefix trim_right trim_suffix trim_space upper +syn match regoFuncStrings2 "\" +syn match regoFuncStrings3 "\" + +syn keyword regoFuncRegex re_match +syn match regoFuncRegex2 "\" + +syn match regoFuncUuid "\" +syn match regoFuncBits "\" +syn match regoFuncObject "\" +syn match regoFuncGlob "\" +syn match regoFuncUnits "\" +syn keyword regoFuncTypes is_number is_string is_boolean is_array is_set is_object is_null type_name +syn match regoFuncEncoding1 "\" +syn match regoFuncEncoding2 "\" +syn match regoFuncEncoding3 "\" +syn match regoFuncEncoding4 "\<\(json\|yaml\)\.\(is_valid\|marshal\|unmarshal\)\>" +syn match regoFuncEncoding5 "\" +syn match regoFuncTokenSigning "\" +syn match regoFuncTokenVerification1 "\" +syn match regoFuncTokenVerification2 "\" +syn match regoFuncTime "\" +syn match regoFuncCryptography "\" +syn match regoFuncCryptography "\" +syn match regoFuncGraphQl "\" +syn match regoFuncHttp "\" +syn match regoFuncNet "\" +syn match regoFuncRego "\" +syn match regoFuncOpa "\" +syn keyword regoFuncDebugging trace +syn match regoFuncRand "\" + +syn match regoFuncNumbers "\" +syn keyword regoFuncNumbers round ceil floor abs + +syn match regoFuncSemver "\" +syn keyword regoFuncConversions to_number +syn match regoFuncHex "\" + +hi def link regoFuncUuid Statement +hi def link regoFuncBits Statement +hi def link regoDirective Statement +hi def link regoKeywords Statement +hi def link regoFuncAggregates Statement +hi def link regoFuncArrays Statement +hi def link regoFuncSets Statement +hi def link regoFuncStrings Statement +hi def link regoFuncStrings2 Statement +hi def link regoFuncStrings3 Statement +hi def link regoFuncRegex Statement +hi def link regoFuncRegex2 Statement +hi def link regoFuncGlob Statement +hi def link regoFuncUnits Statement +hi def link regoFuncTypes Statement +hi def link regoFuncEncoding1 Statement +hi def link regoFuncEncoding2 Statement +hi def link regoFuncEncoding3 Statement +hi def link regoFuncEncoding4 Statement +hi def link regoFuncEncoding5 Statement +hi def link regoFuncTokenSigning Statement +hi def link regoFuncTokenVerification1 Statement +hi def link regoFuncTokenVerification2 Statement +hi def link regoFuncTime Statement +hi def link regoFuncCryptography Statement +hi def link regoFuncGraphs Statement +hi def link regoFuncGraphQl Statement +hi def link regoFuncGraphs2 Statement +hi def link regoFuncHttp Statement +hi def link regoFuncNet Statement +hi def link regoFuncRego Statement +hi def link regoFuncOpa Statement +hi def link regoFuncDebugging Statement +hi def link regoFuncObject Statement +hi def link regoFuncNumbers Statement +hi def link regoFuncSemver Statement +hi def link regoFuncConversions Statement +hi def link regoFuncHex Statement +hi def link regoFuncRand Statement + +" https://www.openpolicyagent.org/docs/latest/policy-language/#strings +syn region regoString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region regoRawString start=+`+ end=+`+ + +hi def link regoString String +hi def link regoRawString String + +" Comments; their contents +syn keyword regoTodo contained TODO FIXME XXX BUG +syn cluster regoCommentGroup contains=regoTodo +syn region regoComment start="#" end="$" contains=@regoCommentGroup,@Spell + +hi def link regoComment Comment +hi def link regoTodo Todo + +let b:current_syntax = 'rego' diff --git a/runtime/syntax/remind.vim b/runtime/syntax/remind.vim new file mode 100644 index 0000000..9e7ff22 --- /dev/null +++ b/runtime/syntax/remind.vim @@ -0,0 +1,73 @@ +" Vim syntax file +" Language: Remind +" Maintainer: Davide Alberani +" Last Change: 02 Nov 2015 +" Version: 0.7 +" URL: http://ismito.it/vim/syntax/remind.vim +" +" Remind is a sophisticated calendar and alarm program. +" You can download remind from: +" https://www.roaringpenguin.com/products/remind +" +" Changelog +" version 0.7: updated email and link +" version 0.6: added THROUGH keyword (courtesy of Ben Orchard) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" shut case off. +syn case ignore + +syn keyword remindCommands REM OMIT SET FSET UNSET +syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH +syn keyword remindTag PRIORITY TAG +syn keyword remindTimed AT DURATION +syn keyword remindMove ONCE SKIP BEFORE AFTER +syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR +syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON +syn keyword remindConditional IF ELSE ENDIF IFTRIG +syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE +syn match remindComment "#.*$" +syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline +syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline +syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*" +syn match remindSubst "%[^ ]" +syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+" +" XXX: use different separators for dates and times? +syn match remindDateSeparators "[/:@\.-]" contained +syn match remindTimes "[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators +" XXX: why not match only valid dates? Ok, checking for 'Feb the 30' would +" be impossible, but at least check for valid months and times. +syn match remindDates "'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:\.][0-9]\{1,2}\)\?'" contains=remindDateSeparators +" This will match trailing whitespaces that seem to break rem2ps. +" Courtesy of Michael Dunn. +syn match remindWarning display excludenl "\S\s\+$"ms=s+1 + + + +hi def link remindCommands Function +hi def link remindExpiry Repeat +hi def link remindTag Label +hi def link remindTimed Statement +hi def link remindMove Statement +hi def link remindSpecial Include +hi def link remindRun Function +hi def link remindConditional Conditional +hi def link remindComment Comment +hi def link remindTimes String +hi def link remindString String +hi def link remindDebug Debug +hi def link remindVar Identifier +hi def link remindSubst Constant +hi def link remindAdvanceNumber Number +hi def link remindDateSeparators Comment +hi def link remindDates String +hi def link remindWarning Error + + +let b:current_syntax = "remind" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/resolv.vim b/runtime/syntax/resolv.vim new file mode 100644 index 0000000..9a2dec5 --- /dev/null +++ b/runtime/syntax/resolv.vim @@ -0,0 +1,119 @@ +" Vim syntax file +" Language: resolver configuration file +" Maintainer: Radu Dineiu +" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim +" Last Change: 2020 Mar 10 +" Version: 1.4 +" +" Credits: +" David Necas (Yeti) +" Stefano Zacchiroli +" DJ Lucas +" +" Changelog: +" - 1.4: Added IPv6 support for sortlist. +" - 1.3: Added IPv6 support for IPv4 dot-decimal notation. +" - 1.2: Added new options. +" - 1.1: Added IPv6 support. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Errors, comments and operators +syn match resolvError /./ +syn match resolvComment /\s*[#;].*$/ +syn match resolvOperator /[\/:]/ contained + +" IP +syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial +syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained +syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained + +" General +syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster +syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster +syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/ + +" Nameserver IPv4 +syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster + +" Nameserver IPv6 +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{6}\%(\x\{1,4}:\x\{1,4}\)\>/ +syn match resolvIPNameserver contained /\s\@<=::\%(\x\{1,4}:\)\{,6}\x\{1,4}\>/ +syn match resolvIPNameserver contained /\s\@<=::\%(\x\{1,4}:\)\{,5}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,5}\x\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,4}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,4}\x\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,3}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,3}\x\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,2}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,2}\x\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,1}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{5}:\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{6}:\x\{1,4}\>/ +syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1,7}:\%(\s\|;\|$\)\@=/ + +" Search hostname +syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/ + +" Sortlist IPv4 +syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster + +" Sortlist IPv6 +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{6}\%(\x\{1,4}:\x\{1,4}\)\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\s\@<=::\%(\x\{1,4}:\)\{,6}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\s\@<=::\%(\x\{1,4}:\)\{,5}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,5}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,4}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,4}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,3}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,3}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,2}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,2}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,1}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{5}:\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{6}:\x\{1,4}\%(\/\d\{1,3}\)\?\>/ +syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1,7}:\%(\s\|;\|$\)\@=\%(\/\d\{1,3}\)\?/ + +" Identifiers +syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite +syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite +syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite +syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite +syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite +syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite + +" Options +syn match resolvOption /\<\%(debug\|no_tld_query\|no-tld-query\|rotate\|no-check-names\|inet6\|ip6-bytestring\|\%(no-\)\?ip6-dotint\|edns0\|single-request\%(-reopen\)\?\|use-vc\)\>/ contained nextgroup=resolvOption skipwhite +syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite + +" Additional errors +syn match resolvError /^search .\{257,}/ + +hi def link resolvIP Number +hi def link resolvIPNetmask Number +hi def link resolvHostname String +hi def link resolvOption String + +hi def link resolvIPNameserver Number +hi def link resolvHostnameSearch String +hi def link resolvIPNetmaskSortList Number + +hi def link resolvNameServer Identifier +hi def link resolvLwserver Identifier +hi def link resolvDomain Identifier +hi def link resolvSearch Identifier +hi def link resolvSortList Identifier +hi def link resolvOptions Identifier + +hi def link resolvComment Comment +hi def link resolvOperator Operator +hi def link resolvError Error +hi def link resolvIPError Error +hi def link resolvIPSpecial Special + +let b:current_syntax = "resolv" + +" vim: ts=8 ft=vim diff --git a/runtime/syntax/reva.vim b/runtime/syntax/reva.vim new file mode 100644 index 0000000..39ad88d --- /dev/null +++ b/runtime/syntax/reva.vim @@ -0,0 +1,191 @@ +" Vim syntax file +" Language: Reva Forth +" Version: 2011.2 +" Last Change: 2019 Sep 27 +" Maintainer: Ron Aaron +" URL: http://ronware.org/reva/ +" Filetypes: *.rf *.frt +" NOTE: You should also have the ftplugin/reva.vim file to set 'isk' + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn clear + +" Synchronization method +syn sync ccomment +syn sync maxlines=100 + + +syn case ignore +" Some special, non-FORTH keywords +"syn keyword revaTodo contained todo fixme bugbug todo: bugbug: note: +syn match revaTodo contained '\(todo\|fixme\|bugbug\|note\)[:]*' +syn match revaTodo contained 'copyright\(\s(c)\)\=\(\s[0-9]\{2,4}\)\=' + +syn match revaHelpDesc '\S.*' contained +syn match revaHelpStuff '\<\(def\|stack\|ctx\|ver\|os\|related\):\s.*' +syn region revaHelpStuff start='\' end='^\S' contains=revaHelpDesc +syn region revaEOF start='\<|||\>' end='{$}' contains=revaHelpStuff + + +syn case match +" basic mathematical and logical operators +syn keyword revaoperators + - * / mod /mod negate abs min max umin umax +syn keyword revaoperators and or xor not invert 1+ 1- +syn keyword revaoperators m+ */ */mod m* um* m*/ um/mod fm/mod sm/rem +syn keyword revaoperators d+ d- dnegate dabs dmin dmax > < = >> << u< <> + + +" stack manipulations +syn keyword revastack drop nip dup over tuck swap rot -rot ?dup pick roll +syn keyword revastack 2drop 2nip 2dup 2over 2swap 2rot 3drop +syn keyword revastack >r r> r@ rdrop +" syn keyword revastack sp@ sp! rp@ rp! + +" address operations +syn keyword revamemory @ ! +! c@ c! 2@ 2! align aligned allot allocate here free resize +syn keyword revaadrarith chars char+ cells cell+ cell cell- 2cell+ 2cell- 3cell+ 4cell+ +syn keyword revamemblks move fill + +" conditionals +syn keyword revacond if else then =if >if if if0 ;; catch throw + +" iterations +syn keyword revaloop while repeat until again +syn keyword revaloop do loop i j leave unloop skip more + +" new words +syn match revaColonDef '\ immediate +syn keyword revadefine compile literal ' ['] + +" Built in words +com! -nargs=+ Builtin syn keyword revaBuiltin +Builtin execute ahead interp bye >body here pad words make +Builtin accept close cr creat delete ekey emit fsize ioerr key? +Builtin mtime open/r open/rw read rename seek space spaces stat +Builtin tell type type_ write (seek) (argv) (save) 0; 0drop; +Builtin >class >lz >name >xt alias alias: appname argc asciiz, asciizl, +Builtin body> clamp depth disassemble findprev fnvhash getenv here, +Builtin iterate last! last@ later link lz> lzmax os parse/ peek +Builtin peek-n pop prior push put rp@ rpick save setenv slurp +Builtin stack-empty? stack-iterate stack-size stack: THROW_BADFUNC +Builtin THROW_BADLIB THROW_GENERIC used xt>size z, +Builtin +lplace +place -chop /char /string bounds c+lplace c+place +Builtin chop cmp cmpi count lc lcount lplace place quote rsplit search split +Builtin zcount zt \\char +Builtin chdir g32 k32 u32 getcwd getpid hinst osname stdin stdout +Builtin (-lib) (bye) (call) (else) (find) (func) (here) (if (lib) (s0) (s^) +Builtin (to~) (while) >in >rel ?literal appstart cold compiling? context? d0 default_class +Builtin defer? dict dolstr dostr find-word h0 if) interp isa onexit +Builtin onstartup pdoes pop>ebx prompt rel> rp0 s0 src srcstr state str0 then,> then> tib +Builtin tp vector vector! word? xt? .ver revaver revaver# && '' 'constant 'context +Builtin 'create 'defer 'does 'forth 'inline 'macro 'macront 'notail 'value 'variable +Builtin (.r) (context) (create) (header) (hide) (inline) (p.r) (words~) (xfind) +Builtin ++ -- , -2drop -2nip -link -swap . .2x .classes .contexts .funcs .libs .needs .r +Builtin .rs .x 00; 0do 0if 1, 2, 3, 2* 2/ 2constant 2variable 3dup 4dup ;then >base >defer +Builtin >rr ? ?do @execute @rem appdir argv as back base base! between chain cleanup-libs +Builtin cmove> context?? ctrl-c ctx>name data: defer: defer@def dictgone do_cr eleave +Builtin endcase endof eval exception exec false find func: header heapgone help help/ +Builtin hex# hide inline{ last lastxt lib libdir literal, makeexename mnotail ms ms@ +Builtin newclass noop nosavedict notail nul of off on p: padchar parse parseln +Builtin parsews rangeof rdepth remains reset reva revaused rol8 rr> scratch setclass sp +Builtin strof super> temp time&date true turnkey? undo vfunc: w! w@ +Builtin xchg xchg2 xfind xt>name xwords { {{ }} } _+ _1+ _1- pathsep case \|| +" p[ [''] [ ['] + + +" debugging +syn keyword revadebug .s dump see + +" basic character operations +" syn keyword revaCharOps (.) CHAR EXPECT FIND WORD TYPE -TRAILING EMIT KEY +" syn keyword revaCharOps KEY? TIB CR +" syn match revaCharOps '\d >digit digit> >single >double >number >float + +" contexts +syn keyword revavocs forth macro inline +syn keyword revavocs context: +syn match revavocs /\<\~[^~ ]*/ +syn match revavocs /[^~ ]*\~\>/ + +" numbers +syn keyword revamath decimal hex base binary octal +syn match revainteger '\<-\=[0-9.]*[0-9.]\+\>' +" recognize hex and binary numbers, the '$' and '%' notation is for greva +syn match revainteger '\<\$\x*\x\+\>' " *1* --- dont't mess +syn match revainteger '\<\x*\d\x*\>' " *2* --- this order! +syn match revainteger '\<%[0-1]*[0-1]\+\>' +syn match revainteger "\<'.\>" + +" Strings +" syn region revaString start=+\.\?\"+ end=+"+ end=+$+ +syn region revaString start=/"/ skip=/\\"/ end=/"/ + +" Comments +syn region revaComment start='\\S\s' end='.*' contains=revaTodo +syn match revaComment '\.(\s[^)]\{-})' contains=revaTodo +syn region revaComment start='(\s' skip='\\)' end=')' contains=revaTodo +syn match revaComment '(\s[^\-]*\-\-[^\-]\{-})' contains=revaTodo +syn match revaComment '\<|\s.*$' contains=revaTodo +syn match revaColonDef '\<:m\?\s*[^ \t]\+\>' contains=revaComment + +" Include files +syn match revaInclude '\<\(include\|needs\)\s\+\S\+' + + +" Define the default highlighting. +if !exists("did_reva_syntax_inits") + let did_reva_syntax_inits=1 + " The default methods for highlighting. Can be overridden later. + hi def link revaEOF cIf0 + hi def link revaHelpStuff special + hi def link revaHelpDesc Comment + hi def link revaTodo Todo + hi def link revaOperators Operator + hi def link revaMath Number + hi def link revaInteger Number + hi def link revaStack Special + hi def link revaFStack Special + hi def link revaSP Special + hi def link revaMemory Operator + hi def link revaAdrArith Function + hi def link revaMemBlks Function + hi def link revaCond Conditional + hi def link revaLoop Repeat + hi def link revaColonDef Define + hi def link revaEndOfColonDef Define + hi def link revaDefine Define + hi def link revaDebug Debug + hi def link revaCharOps Character + hi def link revaConversion String + hi def link revaForth Statement + hi def link revaVocs Statement + hi def link revaString String + hi def link revaComment Comment + hi def link revaClassDef Define + hi def link revaEndOfClassDef Define + hi def link revaObjectDef Define + hi def link revaEndOfObjectDef Define + hi def link revaInclude Include + hi def link revaBuiltin Keyword +endif + +let b:current_syntax = "reva" +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8:sw=4:nocindent:smartindent: diff --git a/runtime/syntax/rexx.vim b/runtime/syntax/rexx.vim new file mode 100644 index 0000000..360fc8f --- /dev/null +++ b/runtime/syntax/rexx.vim @@ -0,0 +1,318 @@ +" Vim syntax file +" Language: Rexx +" Maintainer: Thomas Geulig +" Last Change: 2012 Sep 14, added support for new ooRexx 4.0 features +" URL: http://www.geulig.de/vim/rexx.vim +" Special Thanks to Dan Sharp and Rony G. Flatscher +" for comments and additions + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" add to valid identifier chars +setlocal iskeyword+=. +setlocal iskeyword+=! +setlocal iskeyword+=? + +" ---rgf, position important: must be before comments etc. ! +syn match rexxOperator "[=|\/\\\+\*\[\],;:<>&\~%\-]" + +" rgf syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>" +syn match rexxIdentifier "\<\K\k*\>" +syn match rexxEnvironmentSymbol "\<\.\k\+\>" + +" A Keyword is the first symbol in a clause. A clause begins at the start +" of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always +" followed by an implied semicolon. +syn match rexxClause "\(^\|;\|:\|then \|else \|when \|otherwise \)\s*\S*" contains=ALLBUT,rexxParse2,rexxRaise2,rexxForward2 + +" Considered keywords when used together in a phrase and begin a clause +syn match rexxParse "\\|version\)\>" containedin=rexxClause contains=rexxParse2 +syn match rexxParse2 "\" containedin=rexxParse + +syn match rexxKeyword contained "\" +syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\?\>" +syn match rexxKeyword contained "\" + +syn match rexxKeyword contained "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\(\s\+forever\)\?\>" +syn match rexxKeyword contained "\\s*\(strict\s*\)\?\" + +" Another keyword phrase, separated to aid highlighting in rexxFunction +syn match rexxRegularCallSignal contained "\<\(call\|signal\)\s\(\s*on\>\|\s*off\>\)\@!\(\k\+\ze\|\ze(\)\(\s*\|;\|$\|(\)" +syn region rexxLabel contained start="\<\(call\|signal\)\>\s*\zs\(\k*\|(\)" end="\ze\(\s*\|;\|$\|(\)" containedin=rexxRegularCallSignal + +syn match rexxExceptionHandling contained "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>.*\(;\|$\)" contains=rexxComment + +" hilite label given after keyword "name" +syn match rexxLabel "name\s\+\zs\k\+\ze" containedin=rexxExceptionHandling +" hilite condition name (serves as label) +syn match rexxLabel "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>\s*\zs\k\+\ze\s*\(;\|$\)" containedin=rexxExceptionHandling +" user exception handling, hilite user defined name +syn region rexxLabel contained start="user\s\+\zs\k" end="\ze\(\s\|;\|$\)" containedin=rexxExceptionHandling + +" Considered keywords when they begin a clause +syn match rexxKeywordStatements "\<\(arg\|catch\|do\|drop\|end\|exit\|expose\|finally\|forward\|if\|interpret\|iterate\|leave\|loop\|nop\)\>" +syn match rexxKeywordStatements "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>" + +" Conditional keywords starting a new statement +syn match rexxConditional "\<\(then\|else\|when\|otherwise\)\(\s*\|;\|\_$\|\)\>" contains=rexxKeywordStatements + +" Conditional phrases +syn match rexxLoopKeywords "\<\(to\|by\|for\|until\|while\|over\)\>" containedin=doLoopSelectLabelRegion + +" must be after Conditional phrases! +syn match doLoopSelectLabelRegion "\<\(do\|loop\|select\)\>\s\+\(label\s\+\)\?\(\s\+\k\+\s\+\zs\\)\?\k*\(\s\+forever\)\?\(\s\|;\|$\)" contains=doLoopSelectLabelRegion,rexxStartValueAssignment,rexxLoopKeywords + +" color label's name +syn match rexxLabel2 "\<\(do\|loop\|select\)\>\s\+label\s\+\zs\k*\ze" containedin=doLoopSelectLabelRegion + +" make sure control variable is normal +" TODO: re-activate ? +"rgf syn match rexxControlVariable "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\s\+\" containedin=doLoopSelectLabelRegion + +" make sure control variable assignment is normal +syn match rexxStartValueAssignment "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\(=.*\)\?\s\+\" containedin=doLoopSelectLabelRegion + +" highlight label name +syn match endIterateLeaveLabelRegion "\<\(end\|leave\|iterate\)\>\(\s\+\K\k*\)" contains=rexxLabel2 +syn match rexxLabel2 "\<\(end\|leave\|iterate\)\>\s\+\zs\k*\ze" containedin=endIterateLeaveLabelRegion + +" Guard statement +syn match rexxGuard "\(^\|;\|:\)\s*\\s\+\<\(on\|off\)\>" + +" Trace statement +syn match rexxTrace "\(^\|;\|:\)\s*\\s\+\<\K\k*\>" + +" Raise statement +" syn match rexxRaise "\(^\|;\|:\)\s\+\\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2 +syn match rexxRaise "\(^\|;\|:\)\s*\\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2 +syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|propagate\|return\)\>" containedin=rexxRaise + +" Forward statement +syn match rexxForward "\(^\|;\|:\)\\s*" contains=rexxForward2 +syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained + +" Functions/Procedures +syn match rexxFunction "\<\<[a-zA-Z\!\?_]\k*\>("me=e-1 +syn match rexxFunction "[()]" + +" String constants +syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\?+ oneline +syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\?+ oneline + +syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword +" Catch errors caused by wrong parenthesis +syn match rexxParenError ")" +syn match rexxInParen "[\\[\\]{}]" + +" Comments +syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment +syn match rexxCommentError "\*/" +syn region rexxLineComment start="--" end="\_$" oneline + +" Highlight User Labels +" check for labels between comments, labels stated in a statement in the middle of a line +syn match rexxLabel "\(\_^\|;\)\s*\(\/\*.*\*\/\)*\s*\k\+\s*\(\/\*.*\*\/\)*\s*:"me=e-1 contains=rexxTodo,rexxComment + +syn keyword rexxTodo contained TODO FIXME XXX + +" ooRexx messages +syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1 +syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator + +" line continuations, take care of (line-)comments after it +syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$" + +" the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one +syn match rexxLineContinue "-\ze-\@!\s*\(--.*\|\s*\/\*.*\)\?$" + +" Special Variables +syn keyword rexxSpecialVariable sigl rc result self super +syn keyword rexxSpecialVariable .environment .error .input .local .methods .output .rs .stderr .stdin .stdout .stdque + +" Constants +syn keyword rexxConst .true .false .nil .endOfLine .line .context + +" Rexx numbers +" int like number +syn match rexxNumber '\d\+' contained +syn match rexxNumber '[-+]\s*\d\+' contained + +" Floating point number with decimal +syn match rexxNumber '\d\+\.\d*' contained +syn match rexxNumber '[-+]\s*\d\+\.\d*' contained + +" Floating point like number with E +syn match rexxNumber '[-+]\s*\d*[eE][\-+]\d\+' contained +syn match rexxNumber '\d*[eE][\-+]\d\+' contained + +" Floating point like number with E and decimal point (+,-) +syn match rexxNumber '[-+]\s*\d*\.\d*[eE][\-+]\d\+' contained +syn match rexxNumber '\d*\.\d*[eE][\-+]\d\+' contained + + +" ooRexx builtin classes (as of version 3.2.0, fall 2007), first define dot to be o.k. in keywords +syn keyword rexxBuiltinClass .Alarm .ArgUtil .Array .Bag .CaselessColumnComparator +syn keyword rexxBuiltinClass .CaselessComparator .CaselessDescendingComparator .CircularQueue +syn keyword rexxBuiltinClass .Class .Collection .ColumnComparator .Comparable .Comparator +syn keyword rexxBuiltinClass .DateTime .DescendingComparator .Directory .File .InputOutputStream +syn keyword rexxBuiltinClass .InputStream .InvertingComparator .List .MapCollection +syn keyword rexxBuiltinClass .Message .Method .Monitor .MutableBuffer .Object +syn keyword rexxBuiltinClass .OrderedCollection .OutputStream .Package .Properties .Queue +syn keyword rexxBuiltinClass .RegularExpression .Relation .RexxContext .RexxQueue .Routine +syn keyword rexxBuiltinClass .Set .SetCollection .Stem .Stream +syn keyword rexxBuiltinClass .StreamSupplier .String .Supplier .Table .TimeSpan + +" Windows-only classes +syn keyword rexxBuiltinClass .AdvancedControls .AnimatedButton .BaseDialog .ButtonControl +syn keyword rexxBuiltinClass .CategoryDialog .CheckBox .CheckList .ComboBox .DialogControl +syn keyword rexxBuiltinClass .DialogExtensions .DlgArea .DlgAreaU .DynamicDialog +syn keyword rexxBuiltinClass .EditControl .InputBox .IntegerBox .ListBox .ListChoice +syn keyword rexxBuiltinClass .ListControl .MenuObject .MessageExtensions .MultiInputBox +syn keyword rexxBuiltinClass .MultiListChoice .OLEObject .OLEVariant +syn keyword rexxBuiltinClass .PasswordBox .PlainBaseDialog .PlainUserDialog +syn keyword rexxBuiltinClass .ProgressBar .ProgressIndicator .PropertySheet .RadioButton +syn keyword rexxBuiltinClass .RcDialog .ResDialog .ScrollBar .SingleSelection .SliderControl +syn keyword rexxBuiltinClass .StateIndicator .StaticControl .TabControl .TimedMessage +syn keyword rexxBuiltinClass .TreeControl .UserDialog .VirtualKeyCodes .WindowBase +syn keyword rexxBuiltinClass .WindowExtensions .WindowObject .WindowsClassesBase .WindowsClipboard +syn keyword rexxBuiltinClass .WindowsEventLog .WindowsManager .WindowsProgramManager .WindowsRegistry + +" BSF4ooRexx classes +syn keyword rexxBuiltinClass .BSF .bsf.dialog .bsf_proxy +syn keyword rexxBuiltinClass .UNO .UNO_ENUM .UNO_CONSTANTS .UNO_PROPERTIES + +" ooRexx directives, ---rgf location important, otherwise directives in top of file not matched! +syn region rexxClassDirective start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxMethodDirective start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxRequiresDirective start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxRoutineDirective start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxAttributeDirective start="::\s*attribute\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +" rgf, 2012-09-09 +syn region rexxOptionsDirective start="::\s*options\s*"ms=e+1 end="\ze\(\s\|;\|$\)" +syn region rexxConstantDirective start="::\s*constant\s*"ms=e+1 end="\ze\(\s\|;\|$\)" + +syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxNumber,rexxComment,rexxLineComment,rexxClassDirective,rexxMethodDirective,rexxRoutineDirective,rexxRequiresDirective,rexxAttributeDirective,rexxOptionsDirective,rexxConstantDirective keepend + +syn match rexxOptionsDirective2 "\<\(digits\|form\|fuzz\|trace\)\>" containedin = rexxOptionsDirective3 +syn region rexxOptionsDirective3 start="\(^\|;\)\s*::\s*options\s"ms=e+1 end="\($\|;\)" contains=rexxString,rexxNumber,rexxVariable,rexxComment,rexxLineComment containedin = rexxDirective + + +syn region rexxVariable start="\zs\<\(\.\)\@!\K\k\+\>\ze\s*\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)" end="\(\_$\|.\)"me=e-1 +syn match rexxVariable "\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)\s*\zs\K\k*\ze" + +" rgf, 2007-07-22: unfortunately, the entire region is colored (not only the +" patterns), hence useless (vim 7.0)! (syntax-docs hint that that should work) +" attempt: just colorize the parenthesis in matching colors, keep content +" transparent to keep the formatting already done to it! +" TODO: test on 7.3 +" syn region par1 matchgroup=par1 start="(" matchgroup=par1 end=")" transparent contains=par2 +" syn region par2 matchgroup=par2 start="(" matchgroup=par2 end=")" transparent contains=par3 contained +" syn region par3 matchgroup=par3 start="(" matchgroup=par3 end=")" transparent contains=par4 contained +" syn region par4 matchgroup=par4 start="(" matchgroup=par4 end=")" transparent contains=par5 contained +" syn region par5 matchgroup=par5 start="(" matchgroup=par5 end=")" transparent contains=par1 contained + +" this will colorize the entire region, removing any colorizing already done! +" syn region par1 matchgroup=par1 start="(" end=")" contains=par2 +" syn region par2 matchgroup=par2 start="(" end=")" contains=par3 contained +" syn region par3 matchgroup=par3 start="(" end=")" contains=par4 contained +" syn region par4 matchgroup=par4 start="(" end=")" contains=par5 contained +" syn region par5 matchgroup=par5 start="(" end=")" contains=par1 contained + +hi par1 ctermfg=red guifg=red "guibg=grey +hi par2 ctermfg=blue guifg=blue "guibg=grey +hi par3 ctermfg=darkgreen guifg=darkgreen "guibg=grey +hi par4 ctermfg=darkyellow guifg=darkyellow "guibg=grey +hi par5 ctermfg=darkgrey guifg=darkgrey "guibg=grey + +" line continuation (trailing comma or single dash) +syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$" + +" if !exists("rexx_minlines") +" let rexx_minlines = 500 +" endif +" exec "syn sync ccomment rexxComment minlines=" . rexx_minlines + +" always scan from start, PCs have long become to be powerful enough for that +exec "syn sync fromstart" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" make binary and hex strings stand out +hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold + +hi def link rexxLabel2 Function +hi def link doLoopSelectLabelRegion rexxKeyword +hi def link endIterateLeaveLabelRegion rexxKeyword +hi def link rexxLoopKeywords rexxKeyword " Todo + +hi def link rexxNumber Normal "DiffChange +" hi def link rexxIdentifier DiffChange + +hi def link rexxRegularCallSignal Statement +hi def link rexxExceptionHandling Statement + +hi def link rexxLabel Function +hi def link rexxCharacter Character +hi def link rexxParenError rexxError +hi def link rexxInParen rexxError +hi def link rexxCommentError rexxError +hi def link rexxError Error +hi def link rexxKeyword Statement +hi def link rexxKeywordStatements Statement + +hi def link rexxFunction Function +hi def link rexxString String +hi def link rexxComment Comment +hi def link rexxTodo Todo +hi def link rexxSpecialVariable Special +hi def link rexxConditional rexxKeyword + +hi def link rexxOperator Operator +hi def link rexxMessageOperator rexxOperator +hi def link rexxLineComment Comment + +hi def link rexxLineContinue WildMenu + +hi def link rexxDirective rexxKeyword +hi def link rexxClassDirective Type +hi def link rexxMethodDirective rexxFunction +hi def link rexxAttributeDirective rexxFunction +hi def link rexxRequiresDirective Include +hi def link rexxRoutineDirective rexxFunction + +" rgf, 2012-09-09 +hi def link rexxOptionsDirective rexxFunction +hi def link rexxOptionsDirective2 rexxOptionsDirective +hi def link rexxOptionsDirective3 Normal " rexxOptionsDirective + +hi def link rexxConstantDirective rexxFunction + +hi def link rexxConst Constant +hi def link rexxTypeSpecifier Type +hi def link rexxBuiltinClass rexxTypeSpecifier + +hi def link rexxEnvironmentSymbol rexxConst +hi def link rexxMessage rexxFunction + +hi def link rexxParse rexxKeyword +hi def link rexxParse2 rexxParse + +hi def link rexxGuard rexxKeyword +hi def link rexxTrace rexxKeyword + +hi def link rexxRaise rexxKeyword +hi def link rexxRaise2 rexxRaise + +hi def link rexxForward rexxKeyword +hi def link rexxForward2 rexxForward + + +let b:current_syntax = "rexx" + +"vim: ts=8 diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim new file mode 100644 index 0000000..8cac585 --- /dev/null +++ b/runtime/syntax/rhelp.vim @@ -0,0 +1,274 @@ +" Vim syntax file +" Language: R Help File +" Maintainer: Jakson Aquino +" Former Maintainer: Johannes Ranke +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Tue Jun 28, 2016 08:53AM +" Remarks: - Includes R syntax highlighting in the appropriate +" sections if an r.vim file is in the same directory or in the +" default debian location. +" - There is no Latex markup in equations +" - Thanks to Will Gray for finding and fixing a bug +" - No support for \var tag within quoted string + +" Version Clears: {{{1 +if exists("b:current_syntax") + finish +endif + +scriptencoding utf-8 + +syn case match + +" R help identifiers {{{1 +syn region rhelpIdentifier matchgroup=rhelpSection start="\\name{" end="}" +syn region rhelpIdentifier matchgroup=rhelpSection start="\\alias{" end="}" +syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}" contains=rhelpLink +syn region rhelpIdentifier matchgroup=rhelpSection start="\\CRANpkg{" end="}" contains=rhelpLink +syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end="}" contained +syn region rhelpIdentifier matchgroup=rhelpSection start="\\Rdversion{" end="}" + + +" Highlighting of R code using an existing r.vim syntax file if available {{{1 +syn include @R syntax/r.vim + +" Strings {{{1 +syn region rhelpString start=/"/ skip=/\\"/ end=/"/ contains=rhelpSpecialChar,rhelpCodeSpecial,rhelpLink contained + +" Special characters in R strings +syn match rhelpCodeSpecial display contained "\\\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\" + +" Special characters ( \$ \& \% \# \{ \} \_) +syn match rhelpSpecialChar "\\[$&%#{}_]" + + +" R code {{{1 +syn match rhelpDots "\\dots" containedin=@R +syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpLink,rhelpIdentifier,rhelpString,rhelpSpecialChar,rhelpSection +syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpIdentifier,rhelpS4method +syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end="}" contains=@R +syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end="}" contains=@R + +if v:version > 703 + syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@1" +syn match rhelpKeyword "\\ldots\>" +syn match rhelpKeyword "\\sspace\>" +syn match rhelpKeyword "--" +syn match rhelpKeyword "---" + +" Condition Keywords {{{2 +syn match rhelpKeyword "\\if\>" +syn match rhelpKeyword "\\ifelse\>" +syn match rhelpKeyword "\\out\>" +" Examples of usage: +" \ifelse{latex}{\eqn{p = 5 + 6 - 7 \times 8}}{\eqn{p = 5 + 6 - 7 * 8}} +" \ifelse{latex}{\out{$\alpha$}}{\ifelse{html}{\out{α}}{alpha}} + +" Keywords and operators valid only if in math mode {{{2 +syn match rhelpMathOp "<" contained +syn match rhelpMathOp ">" contained +syn match rhelpMathOp "+" contained +syn match rhelpMathOp "-" contained +syn match rhelpMathOp "=" contained + +" Conceal function based on syntax/tex.vim {{{2 +if exists("g:tex_conceal") + let s:tex_conceal = g:tex_conceal +else + let s:tex_conceal = 'gm' +endif +function s:HideSymbol(pat, cchar, hide) + if a:hide + exe "syn match rhelpMathSymb '" . a:pat . "' contained conceal cchar=" . a:cchar + else + exe "syn match rhelpMathSymb '" . a:pat . "' contained" + endif +endfunction + +" Math symbols {{{2 +if s:tex_conceal =~ 'm' + let s:hd = 1 +else + let s:hd = 0 +endif +call s:HideSymbol('\\infty\>', '∞', s:hd) +call s:HideSymbol('\\ge\>', '≥', s:hd) +call s:HideSymbol('\\le\>', '≤', s:hd) +call s:HideSymbol('\\prod\>', '∏', s:hd) +call s:HideSymbol('\\sum\>', '∑', s:hd) +syn match rhelpMathSymb "\\sqrt\>" contained + +" Greek letters {{{2 +if s:tex_conceal =~ 'g' + let s:hd = 1 +else + let s:hd = 0 +endif +call s:HideSymbol('\\alpha\>', 'α', s:hd) +call s:HideSymbol('\\beta\>', 'β', s:hd) +call s:HideSymbol('\\gamma\>', 'γ', s:hd) +call s:HideSymbol('\\delta\>', 'δ', s:hd) +call s:HideSymbol('\\epsilon\>', 'ϵ', s:hd) +call s:HideSymbol('\\zeta\>', 'ζ', s:hd) +call s:HideSymbol('\\eta\>', 'η', s:hd) +call s:HideSymbol('\\theta\>', 'θ', s:hd) +call s:HideSymbol('\\iota\>', 'ι', s:hd) +call s:HideSymbol('\\kappa\>', 'κ', s:hd) +call s:HideSymbol('\\lambda\>', 'λ', s:hd) +call s:HideSymbol('\\mu\>', 'μ', s:hd) +call s:HideSymbol('\\nu\>', 'ν', s:hd) +call s:HideSymbol('\\xi\>', 'ξ', s:hd) +call s:HideSymbol('\\pi\>', 'π', s:hd) +call s:HideSymbol('\\rho\>', 'ρ', s:hd) +call s:HideSymbol('\\sigma\>', 'σ', s:hd) +call s:HideSymbol('\\tau\>', 'τ', s:hd) +call s:HideSymbol('\\upsilon\>', 'υ', s:hd) +call s:HideSymbol('\\phi\>', 'ϕ', s:hd) +call s:HideSymbol('\\chi\>', 'χ', s:hd) +call s:HideSymbol('\\psi\>', 'ψ', s:hd) +call s:HideSymbol('\\omega\>', 'ω', s:hd) +call s:HideSymbol('\\Gamma\>', 'Γ', s:hd) +call s:HideSymbol('\\Delta\>', 'Δ', s:hd) +call s:HideSymbol('\\Theta\>', 'Θ', s:hd) +call s:HideSymbol('\\Lambda\>', 'Λ', s:hd) +call s:HideSymbol('\\Xi\>', 'Ξ', s:hd) +call s:HideSymbol('\\Pi\>', 'Π', s:hd) +call s:HideSymbol('\\Sigma\>', 'Σ', s:hd) +call s:HideSymbol('\\Upsilon\>', 'Υ', s:hd) +call s:HideSymbol('\\Phi\>', 'Φ', s:hd) +call s:HideSymbol('\\Psi\>', 'Ψ', s:hd) +call s:HideSymbol('\\Omega\>', 'Ω', s:hd) +delfunction s:HideSymbol +" Note: The letters 'omicron', 'Alpha', 'Beta', 'Epsilon', 'Zeta', 'Eta', +" 'Iota', 'Kappa', 'Mu', 'Nu', 'Omicron', 'Rho', 'Tau' and 'Chi' are listed +" at src/library/tools/R/Rd2txt.R because they are valid in HTML, although +" they do not make valid LaTeX code (e.g. Α versus \Alpha). + +" Links {{{1 +syn region rhelpLink matchgroup=rhelpType start="\\link{" end="}" contained keepend extend +syn region rhelpLink matchgroup=rhelpType start="\\link\[.\{-}\]{" end="}" contained keepend extend +syn region rhelpLink matchgroup=rhelpType start="\\linkS4class{" end="}" contained keepend extend +syn region rhelpLink matchgroup=rhelpType start="\\url{" end="}" contained keepend extend +syn region rhelpLink matchgroup=rhelpType start="\\href{" end="}" contained keepend extend +syn region rhelpLink matchgroup=rhelpType start="\\figure{" end="}" contained keepend extend + +" Verbatim like {{{1 +syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@1" +syn match rhelpType "\\strong\>" +syn match rhelpType "\\bold\>" +syn match rhelpType "\\sQuote\>" +syn match rhelpType "\\dQuote\>" +syn match rhelpType "\\preformatted\>" +syn match rhelpType "\\kbd\>" +syn match rhelpType "\\file\>" +syn match rhelpType "\\email\>" +syn match rhelpType "\\enc\>" +syn match rhelpType "\\var\>" +syn match rhelpType "\\env\>" +syn match rhelpType "\\option\>" +syn match rhelpType "\\command\>" +syn match rhelpType "\\newcommand\>" +syn match rhelpType "\\renewcommand\>" +syn match rhelpType "\\dfn\>" +syn match rhelpType "\\cite\>" +syn match rhelpType "\\acronym\>" +syn match rhelpType "\\doi\>" + +" rhelp sections {{{1 +syn match rhelpSection "\\encoding\>" +syn match rhelpSection "\\title\>" +syn match rhelpSection "\\item\>" +syn match rhelpSection "\\description\>" +syn match rhelpSection "\\concept\>" +syn match rhelpSection "\\arguments\>" +syn match rhelpSection "\\details\>" +syn match rhelpSection "\\value\>" +syn match rhelpSection "\\references\>" +syn match rhelpSection "\\note\>" +syn match rhelpSection "\\author\>" +syn match rhelpSection "\\seealso\>" +syn match rhelpSection "\\keyword\>" +syn match rhelpSection "\\docType\>" +syn match rhelpSection "\\format\>" +syn match rhelpSection "\\source\>" +syn match rhelpSection "\\itemize\>" +syn match rhelpSection "\\describe\>" +syn match rhelpSection "\\enumerate\>" +syn match rhelpSection "\\item " +syn match rhelpSection "\\item$" +syn match rhelpSection "\\tabular{[lcr]*}" +syn match rhelpSection "\\dontrun\>" +syn match rhelpSection "\\dontshow\>" +syn match rhelpSection "\\testonly\>" +syn match rhelpSection "\\donttest\>" + +" Freely named Sections {{{1 +syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end="}" +syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end="}" + +syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}" + +" R help file comments {{{1 +syn match rhelpComment /%.*$/ + +" Error {{{1 +syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim,rhelpEquation +syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim,rhelpEquation +syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim,rhelpEquation +syn match rhelpError /[)\]}]/ +syn match rhelpBraceError /[)}]/ contained +syn match rhelpCurlyError /[)\]]/ contained +syn match rhelpParenError /[\]}]/ contained + +syntax sync match rhelpSyncRcode grouphere rhelpRcode "\\examples{" + +" Define the default highlighting {{{1 +hi def link rhelpVerbatim String +hi def link rhelpDelimiter Delimiter +hi def link rhelpIdentifier Identifier +hi def link rhelpString String +hi def link rhelpCodeSpecial Special +hi def link rhelpKeyword Keyword +hi def link rhelpDots Keyword +hi def link rhelpLink Underlined +hi def link rhelpType Type +hi def link rhelpSection PreCondit +hi def link rhelpError Error +hi def link rhelpBraceError Error +hi def link rhelpCurlyError Error +hi def link rhelpParenError Error +hi def link rhelpPreProc PreProc +hi def link rhelpDelimiter Delimiter +hi def link rhelpComment Comment +hi def link rhelpRComment Comment +hi def link rhelpSpecialChar SpecialChar +hi def link rhelpMathSymb Special +hi def link rhelpMathOp Operator + +let b:current_syntax = "rhelp" + +" vim: foldmethod=marker sw=2 diff --git a/runtime/syntax/rib.vim b/runtime/syntax/rib.vim new file mode 100644 index 0000000..0ee6071 --- /dev/null +++ b/runtime/syntax/rib.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: Renderman Interface Bytestream +" Maintainer: Andrew Bromage +" Last Change: 2003 May 11 +" + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +" Comments +syn match ribLineComment "#.*$" +syn match ribStructureComment "##.*$" + +syn case ignore +syn match ribCommand /[A-Z][a-zA-Z]*/ +syn case match + +syn region ribString start=/"/ skip=/\\"/ end=/"/ + +syn match ribStructure "[A-Z][a-zA-Z]*Begin\>\|[A-Z][a-zA-Z]*End" +syn region ribSectionFold start="FrameBegin" end="FrameEnd" fold transparent keepend extend +syn region ribSectionFold start="WorldBegin" end="WorldEnd" fold transparent keepend extend +syn region ribSectionFold start="TransformBegin" end="TransformEnd" fold transparent keepend extend +syn region ribSectionFold start="AttributeBegin" end="AttributeEnd" fold transparent keepend extend +syn region ribSectionFold start="MotionBegin" end="MotionEnd" fold transparent keepend extend +syn region ribSectionFold start="SolidBegin" end="SolidEnd" fold transparent keepend extend +syn region ribSectionFold start="ObjectBegin" end="ObjectEnd" fold transparent keepend extend + +syn sync fromstart + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match ribNumbers display transparent "[-]\=\<\d\|\.\d" contains=ribNumber,ribFloat +syn match ribNumber display contained "[-]\=\d\+\>" +"floating point number, with dot, optional exponent +syn match ribFloat display contained "[-]\=\d\+\.\d*\(e[-+]\=\d\+\)\=" +"floating point number, starting with a dot, optional exponent +syn match ribFloat display contained "[-]\=\.\d\+\(e[-+]\=\d\+\)\=\>" +"floating point number, without dot, with exponent +syn match ribFloat display contained "[-]\=\d\+e[-+]\d\+\>" +syn case match + + +hi def link ribStructure Structure +hi def link ribCommand Statement + +hi def link ribStructureComment SpecialComment +hi def link ribLineComment Comment + +hi def link ribString String +hi def link ribNumber Number +hi def link ribFloat Float + + + +let b:current_syntax = "rib" + +" Options for vi: ts=8 sw=2 sts=2 nowrap noexpandtab ft=vim diff --git a/runtime/syntax/rmd.vim b/runtime/syntax/rmd.vim new file mode 100644 index 0000000..7b8b7fe --- /dev/null +++ b/runtime/syntax/rmd.vim @@ -0,0 +1,266 @@ +" Language: Markdown with chunks of R, Python and other languages +" Maintainer: Jakson Aquino +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Sun Dec 24, 2023 07:21AM +" +" For highlighting pandoc extensions to markdown like citations and TeX and +" many other advanced features like folding of markdown sections, it is +" recommended to install the vim-pandoc filetype plugin as well as the +" vim-pandoc-syntax filetype plugin from https://github.com/vim-pandoc. + + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +let g:rmd_include_latex = get(g:, 'rmd_include_latex', 1) +if g:rmd_include_latex == 0 || g:rmd_include_latex == 1 + let b:rmd_has_LaTeX = v:false +elseif g:rmd_include_latex == 2 + let b:rmd_has_LaTeX = v:true +endif + +" Highlight the header of the chunks as R code +let g:rmd_syn_hl_chunk = get(g:, 'rmd_syn_hl_chunk', 0) + +" Pandoc-syntax has more features, but it is slower. +" https://github.com/vim-pandoc/vim-pandoc-syntax + +" Don't waste time loading syntax that will be discarded: +let s:save_pandoc_lngs = get(g:, 'pandoc#syntax#codeblocks#embeds#langs', []) +let g:pandoc#syntax#codeblocks#embeds#langs = [] + +let g:rmd_dynamic_fenced_languages = get(g:, 'rmd_dynamic_fenced_languages', v:true) + +" Step_1: Source pandoc.vim if it is installed: +runtime syntax/pandoc.vim +if exists("b:current_syntax") + if hlexists('pandocDelimitedCodeBlock') + syn clear pandocDelimitedCodeBlock + endif + + if len(s:save_pandoc_lngs) > 0 && !exists('g:rmd_fenced_languages') + let g:rmd_fenced_languages = deepcopy(s:save_pandoc_lngs) + endif + + " Recognize inline R code + syn region rmdrInline matchgroup=rmdInlineDelim start="`r " end="`" contains=@Rmdr containedin=pandocLaTeXRegion,yamlFlowString keepend +else + " Step_2: Source markdown.vim if pandoc.vim is not installed + + " Configuration if not using pandoc syntax: + " Add syntax highlighting of YAML header + let g:rmd_syn_hl_yaml = get(g:, 'rmd_syn_hl_yaml', 1) + " Add syntax highlighting of citation keys + let g:rmd_syn_hl_citations = get(g:, 'rmd_syn_hl_citations', 1) + + " R chunks will not be highlighted by syntax/markdown because their headers + " follow a non standard pattern: "```{lang" instead of "^```lang". + " Make a copy of g:markdown_fenced_languages to highlight the chunks later: + if exists('g:markdown_fenced_languages') && !exists('g:rmd_fenced_languages') + let g:rmd_fenced_languages = deepcopy(g:markdown_fenced_languages) + endif + + if exists('g:markdown_fenced_languages') && len(g:markdown_fenced_languages) > 0 + let s:save_mfl = deepcopy(g:markdown_fenced_languages) + endif + " Don't waste time loading syntax that will be discarded: + let g:markdown_fenced_languages = [] + runtime syntax/markdown.vim + if exists('s:save_mfl') > 0 + let g:markdown_fenced_languages = deepcopy(s:save_mfl) + unlet s:save_mfl + endif + syn region rmdrInline matchgroup=rmdInlineDelim start="`r " end="`" contains=@Rmdr keepend + + " Step_2a: Add highlighting for both YAML and citations which are pandoc + " specific, but also used in Rmd files + + " You don't need this if either your markdown/syntax.vim already highlights + " the YAML header or you are writing standard markdown + if g:rmd_syn_hl_yaml + " Basic highlighting of YAML header + syn match rmdYamlFieldTtl /^\s*\zs\w\%(-\|\w\)*\ze:/ contained + syn match rmdYamlFieldTtl /^\s*-\s*\zs\w\%(-\|\w\)*\ze:/ contained + syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"' contains=yamlEscape,rmdrInline contained + syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''" end="'" contains=yamlSingleEscape,rmdrInline contained + syn match yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)' + syn match yamlSingleEscape contained "''" + syn match yamlComment /#.*/ contained + " A second colon is a syntax error, unless within a string or following !expr + syn match yamlColonError /:\s*[^'^"^!]*:/ contained + if &filetype == 'quarto' + syn region pandocYAMLHeader matchgroup=rmdYamlBlockDelim start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^---$/ keepend contains=rmdYamlFieldTtl,yamlFlowString,yamlComment,yamlColonError + else + syn region pandocYAMLHeader matchgroup=rmdYamlBlockDelim start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^\([-.]\)\1\{2}$/ keepend contains=rmdYamlFieldTtl,yamlFlowString,yamlComment,yamlColonError + endif + hi def link rmdYamlBlockDelim Delimiter + hi def link rmdYamlFieldTtl Identifier + hi def link yamlFlowString String + hi def link yamlComment Comment + hi def link yamlColonError Error + endif + + " Conceal char for manual line break + if &encoding ==# 'utf-8' + syn match rmdNewLine ' $' conceal cchar=↵ + endif + + " You don't need this if either your markdown/syntax.vim already highlights + " citations or you are writing standard markdown + if g:rmd_syn_hl_citations + " From vim-pandoc-syntax + " parenthetical citations + syn match pandocPCite /\^\@~\/]*.\{-}\]/ contains=pandocEmphasis,pandocStrong,pandocLatex,pandocCiteKey,@Spell,pandocAmpersandEscape display + " in-text citations with location + syn match pandocICite /@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*\s\[.\{-1,}\]/ contains=pandocCiteKey,@Spell display + " cite keys + syn match pandocCiteKey /\(-\=@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*\)/ containedin=pandocPCite,pandocICite contains=@NoSpell display + syn match pandocCiteAnchor /[-@]/ contained containedin=pandocCiteKey display + syn match pandocCiteLocator /[\[\]]/ contained containedin=pandocPCite,pandocICite + hi def link pandocPCite Operator + hi def link pandocICite Operator + hi def link pandocCiteKey Label + hi def link pandocCiteAnchor Operator + hi def link pandocCiteLocator Operator + endif +endif + +" Step_3: Highlight code blocks. + +syn region rmdCodeBlock matchgroup=rmdCodeDelim start="^\s*```\s*{.*}$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend +syn region rmdCodeBlock matchgroup=rmdCodeDelim start="^\s*```.+$" matchgroup=rmdCodeDelim end="^```$" keepend +hi link rmdCodeBlock Special + +" Now highlight chunks: +syn region knitrBodyOptions start='^#| ' end='$' contained containedin=rComment,pythonComment contains=knitrBodyVar,knitrBodyValue transparent +syn match knitrBodyValue ': \zs.*\ze$' keepend contained containedin=knitrBodyOptions +syn match knitrBodyVar '| \zs\S\{-}\ze:' contained containedin=knitrBodyOptions + +let g:rmd_fenced_languages = get(g:, 'rmd_fenced_languages', ['r']) + +let s:no_syntax_vim = [] +function s:IncludeLanguage(lng) + if a:lng =~ '=' + let ftpy = substitute(a:lng, '.*=', '', '') + let lnm = substitute(a:lng, '=.*', '', '') + else + let ftpy = a:lng + let lnm = a:lng + endif + if index(s:no_syntax_vim, ftpy) >= 0 + return + endif + if len(globpath(&rtp, "syntax/" . ftpy . ".vim")) + unlet! b:current_syntax + exe 'syn include @Rmd'.lnm.' syntax/'.ftpy.'.vim' + let b:current_syntax = "rmd" + if g:rmd_syn_hl_chunk + exe 'syn match knitrChunkDelim /```\s*{\s*'.lnm.'/ contained containedin=knitrChunkBrace contains=knitrChunkLabel' + exe 'syn match knitrChunkLabelDelim /```\s*{\s*'.lnm.',\=\s*[-[:alnum:]]\{-1,}[,}]/ contained containedin=knitrChunkBrace' + syn match knitrChunkDelim /}\s*$/ contained containedin=knitrChunkBrace + exe 'syn match knitrChunkBrace /```\s*{\s*'.lnm.'.*$/ contained containedin=rmd'.lnm.'Chunk contains=knitrChunkDelim,knitrChunkLabelDelim,@Rmd'.lnm + exe 'syn region rmd'.lnm.'Chunk start="^\s*```\s*{\s*=\?'.lnm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=knitrChunkBrace,@Rmd'.lnm + + hi link knitrChunkLabel Identifier + hi link knitrChunkDelim rmdCodeDelim + hi link knitrChunkLabelDelim rmdCodeDelim + else + exe 'syn region rmd'.lnm.'Chunk matchgroup=rmdCodeDelim start="^\s*```\s*{\s*=\?'.lnm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=@Rmd'.lnm + endif + else + " Avoid the cost of running globpath() whenever the buffer is saved + let s:no_syntax_vim += [ftpy] + endif +endfunction + +for s:type in g:rmd_fenced_languages + call s:IncludeLanguage(s:type) +endfor +unlet! s:type + +let s:LaTeX_included = v:false +function s:IncludeLaTeX() + let s:LaTeX_included = v:true + unlet! b:current_syntax + syn include @RmdLaTeX syntax/tex.vim + " From vim-pandoc-syntax + syn region rmdLaTeXInlineMath start=/\v\\@ 0 || + \ search('\\begin{', 'wn') > 0) || + \ search('\\[[:alpha:]]\+', 'wn') || + \ search('\$[^\$]\+\$', 'wn') + let b:rmd_has_LaTeX = v:true + endif + if b:rmd_has_LaTeX && !s:LaTeX_included + call s:IncludeLaTeX() + endif + endif +endfunction + +if g:rmd_dynamic_fenced_languages + call s:CheckRmdFencedLanguages() + augroup RmdSyntax + autocmd! + autocmd BufWritePost call s:CheckRmdFencedLanguages() + augroup END +endif + +" Step_4: Highlight code recognized by pandoc but not defined in pandoc.vim yet: +syn match pandocDivBegin '^:::\+ {.\{-}}' contains=pandocHeaderAttr +syn match pandocDivEnd '^:::\+$' + +hi def link knitrBodyVar PreProc +hi def link knitrBodyValue Constant +hi def link knitrBodyOptions rComment +hi def link pandocDivBegin Delimiter +hi def link pandocDivEnd Delimiter +hi def link rmdInlineDelim Delimiter +hi def link rmdCodeDelim Delimiter + +if len(s:save_pandoc_lngs) + let g:pandoc#syntax#codeblocks#embeds#langs = s:save_pandoc_lngs +endif +unlet s:save_pandoc_lngs +let &cpo = s:cpo_save +unlet s:cpo_save + +syntax iskeyword clear + +let b:current_syntax = "rmd" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/rnc.vim b/runtime/syntax/rnc.vim new file mode 100644 index 0000000..7d3907e --- /dev/null +++ b/runtime/syntax/rnc.vim @@ -0,0 +1,68 @@ +" Vim syntax file +" Language: Relax NG compact syntax +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-06-17 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +setlocal iskeyword+=-,. + +syn keyword rncTodo contained TODO FIXME XXX NOTE + +syn region rncComment display oneline start='^\s*#' end='$' + \ contains=rncTodo,@Spell + +syn match rncOperator display '[-|,&+?*~]' +syn match rncOperator display '\%(|&\)\==' +syn match rncOperator display '>>' + +syn match rncNamespace display '\<\k\+:' + +syn match rncQuoted display '\\\k\+\>' + +syn match rncSpecial display '\\x{\x\+}' + +syn region rncAnnotation transparent start='\[' end='\]' + \ contains=ALLBUT,rncComment,rncTodo + +syn region rncLiteral display oneline start=+"+ end=+"+ + \ contains=rncSpecial +syn region rncLiteral display oneline start=+'+ end=+'+ +syn region rncLiteral display oneline start=+"""+ end=+"""+ + \ contains=rncSpecial +syn region rncLiteral display oneline start=+'''+ end=+'''+ + +syn match rncDelimiter display '[{},()]' + +syn keyword rncKeyword datatypes default div empty external grammar +syn keyword rncKeyword include inherit list mixed name namespace +syn keyword rncKeyword notAllowed parent start string text token + +syn match rncIdentifier display '\k\+\_s*\%(=\|&=\||=\)\@=' + \ nextgroup=rncOperator +syn keyword rncKeyword element attribute + \ nextgroup=rncIdName skipwhite skipempty +syn match rncIdName contained '\k\+' + +hi def link rncTodo Todo +hi def link rncComment Comment +hi def link rncOperator Operator +hi def link rncNamespace Identifier +hi def link rncQuoted Special +hi def link rncSpecial SpecialChar +hi def link rncAnnotation Special +hi def link rncLiteral String +hi def link rncDelimiter Delimiter +hi def link rncKeyword Keyword +hi def link rncIdentifier Identifier +hi def link rncIdName Identifier + +let b:current_syntax = "rnc" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/rng.vim b/runtime/syntax/rng.vim new file mode 100644 index 0000000..1ef864c --- /dev/null +++ b/runtime/syntax/rng.vim @@ -0,0 +1,25 @@ +" Vim syntax file +" Language: RELAX NG +" Maintainer: Jaromir Hradilek +" URL: https://github.com/jhradilek/vim-rng +" Last Change: 25 March 2013 +" Description: A syntax file for RELAX NG, a schema language for XML + +if exists('b:current_syntax') + finish +endif + +do Syntax xml +syn spell toplevel +syn cluster xmlTagHook add=rngTagName +syn case match + +syn keyword rngTagName anyName attribute choice data define div contained +syn keyword rngTagName element empty except externalRef grammar contained +syn keyword rngTagName group include interleave list mixed name contained +syn keyword rngTagName notAllowed nsName oneOrMore optional param contained +syn keyword rngTagName parentRef ref start text value zeroOrMore contained + +hi def link rngTagName Statement + +let b:current_syntax = 'rng' diff --git a/runtime/syntax/rnoweb.vim b/runtime/syntax/rnoweb.vim new file mode 100644 index 0000000..749860a --- /dev/null +++ b/runtime/syntax/rnoweb.vim @@ -0,0 +1,52 @@ +" Vim syntax file +" Language: R noweb Files +" Maintainer: Johannes Ranke +" Last Change: Thu Apr 05, 2018 11:06PM +" Version: 0.9.1 +" Remarks: - This file is inspired by the proposal of +" Fernando Henrique Ferraz Pereira da Rosa +" http://www.ime.usp.br/~feferraz/en/sweavevim.html +" + +if exists("b:current_syntax") + finish +endif + +syn case match + +" Extension of Tex clusters {{{1 +runtime syntax/tex.vim +unlet! b:current_syntax + +syn cluster texMatchGroup add=@rnoweb +syn cluster texMathMatchGroup add=rnowebSexpr +syn cluster texMathZoneGroup add=rnowebSexpr +syn cluster texEnvGroup add=@rnoweb +syn cluster texFoldGroup add=@rnoweb +syn cluster texDocGroup add=@rnoweb +syn cluster texPartGroup add=@rnoweb +syn cluster texChapterGroup add=@rnoweb +syn cluster texSectionGroup add=@rnoweb +syn cluster texSubSectionGroup add=@rnoweb +syn cluster texSubSubSectionGroup add=@rnoweb +syn cluster texParaGroup add=@rnoweb + +" Highlighting of R code using an existing r.vim syntax file if available {{{1 +syn include @rnowebR syntax/r.vim +syn region rnowebChunk matchgroup=rnowebDelimiter start="^\s*<<.*>>=" matchgroup=rnowebDelimiter end="^@" contains=@rnowebR,rnowebChunkReference,rnowebChunk fold keepend +syn match rnowebChunkReference "^\s*<<.*>>$" contained +syn region rnowebSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter end="}" contains=@rnowebR contained + +" Sweave options command {{{1 +syn region rnowebSweaveopts matchgroup=Delimiter start="\\SweaveOpts{" matchgroup=Delimiter end="}" + +" rnoweb Cluster {{{1 +syn cluster rnoweb contains=rnowebChunk,rnowebChunkReference,rnowebDelimiter,rnowebSexpr,rnowebSweaveopts + +" Highlighting {{{1 +hi def link rnowebDelimiter Delimiter +hi def link rnowebSweaveOpts Statement +hi def link rnowebChunkReference Delimiter + +let b:current_syntax = "rnoweb" +" vim: foldmethod=marker: diff --git a/runtime/syntax/robots.vim b/runtime/syntax/robots.vim new file mode 100644 index 0000000..fcb9b02 --- /dev/null +++ b/runtime/syntax/robots.vim @@ -0,0 +1,57 @@ +" Vim syntax file +" Language: "Robots.txt" files +" Robots.txt files indicate to WWW robots which parts of a web site should not be accessed. +" Maintainer: Dominique Stéphan (dominique@mggen.com) +" URL: http://www.mggen.com/vim/syntax/robots.zip +" Last change: 2001 May 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +" shut case off +syn case ignore + +" Comment +syn match robotsComment "#.*$" contains=robotsUrl,robotsMail,robotsString + +" Star * (means all spiders) +syn match robotsStar "\*" + +" : +syn match robotsDelimiter ":" + + +" The keywords +" User-agent +syn match robotsAgent "^[Uu][Ss][Ee][Rr]\-[Aa][Gg][Ee][Nn][Tt]" +" Disallow +syn match robotsDisallow "^[Dd][Ii][Ss][Aa][Ll][Ll][Oo][Ww]" + +" Disallow: or User-Agent: and the rest of the line before an eventual comment +synt match robotsLine "\(^[Uu][Ss][Ee][Rr]\-[Aa][Gg][Ee][Nn][Tt]\|^[Dd][Ii][Ss][Aa][Ll][Ll][Oo][Ww]\):[^#]*" contains=robotsAgent,robotsDisallow,robotsStar,robotsDelimiter + +" Some frequent things in comments +syn match robotsUrl "http[s]\=://\S*" +syn match robotsMail "\S*@\S*" +syn region robotsString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ + + +hi def link robotsComment Comment +hi def link robotsAgent Type +hi def link robotsDisallow Statement +hi def link robotsLine Special +hi def link robotsStar Operator +hi def link robotsDelimiter Delimiter +hi def link robotsUrl String +hi def link robotsMail String +hi def link robotsString String + + + +let b:current_syntax = "robots" + +" vim: ts=8 sw=2 + diff --git a/runtime/syntax/routeros.vim b/runtime/syntax/routeros.vim new file mode 100644 index 0000000..b6effc9 --- /dev/null +++ b/runtime/syntax/routeros.vim @@ -0,0 +1,91 @@ +" Vim syntax file +" Language: MikroTik RouterOS Script +" Maintainer: zainin +" Original Author: ndbjorne @ MikroTik forums +" Last Change: 2021 Nov 14 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn iskeyword @,48-57,- + +" comments +syn match routerosComment /^\s*\zs#.*/ + +" options submenus: /interface ether1 etc +syn match routerosSubMenu "\([a-z]\)\@=!~^&.,]\ze " +syn match routerosOperator "[<>!]=" +syn match routerosOperator "<<\|>>" +syn match routerosOperator "[+-]\d\@=" + +syn keyword routerosOperator and or in + +" commands +syn keyword routerosCommands beep delay put len typeof pick log time set find environment +syn keyword routerosCommands terminal error parse resolve toarray tobool toid toip toip6 +syn keyword routerosCommands tonum tostr totime add remove enable disable where get print +syn keyword routerosCommands export edit find append as-value brief detail count-only file +syn keyword routerosCommands follow follow-only from interval terse value-list without-paging +syn keyword routerosCommands return + +" variable types +syn keyword routerosType global local + +" loop keywords +syn keyword routerosRepeat do while for foreach + +syn match routerosSpecial "[():[\]{|}]" + +syn match routerosLineContinuation "\\$" + +syn match routerosEscape "\\["\\nrt$?_abfv]" contained display +syn match routerosEscape "\\\x\x" contained display + +syn region routerosString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=routerosEscape,routerosLineContinuation + +hi link routerosComment Comment +hi link routerosSubMenu Function +hi link routerosVariable Identifier +hi link routerosDelimiter Operator +hi link routerosEscape Special +hi link routerosService Type +hi link routerosInterface Type +hi link routerosBoolean Boolean +hi link routerosConditional Conditional +hi link routerosOperator Operator +hi link routerosCommands Operator +hi link routerosType Type +hi link routerosRepeat Repeat +hi link routerosSpecial Delimiter +hi link routerosString String +hi link routerosLineContinuation Special + +let b:current_syntax = "routeros" diff --git a/runtime/syntax/rpcgen.vim b/runtime/syntax/rpcgen.vim new file mode 100644 index 0000000..60c9b8c --- /dev/null +++ b/runtime/syntax/rpcgen.vim @@ -0,0 +1,46 @@ +" Vim syntax file +" Language: rpcgen +" Maintainer: Charles E. Campbell +" Last Change: Aug 31, 2016 +" Version: 13 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_RPCGEN + +if exists("b:current_syntax") + finish +endif + +" Read the C syntax to start with +runtime! syntax/c.vim + +syn keyword rpcProgram program skipnl skipwhite nextgroup=rpcProgName +syn match rpcProgName contained "\<\i\I*\>" skipnl skipwhite nextgroup=rpcProgZone +syn region rpcProgZone contained matchgroup=Delimiter start="{" matchgroup=Delimiter end="}\s*=\s*\(\d\+\|0x[23]\x\{7}\)\s*;"me=e-1 contains=rpcVersion,cComment,rpcProgNmbrErr +syn keyword rpcVersion contained version skipnl skipwhite nextgroup=rpcVersName +syn match rpcVersName contained "\<\i\I*\>" skipnl skipwhite nextgroup=rpcVersZone +syn region rpcVersZone contained matchgroup=Delimiter start="{" matchgroup=Delimiter end="}\s*=\s*\d\+\s*;"me=e-1 contains=cType,cStructure,cStorageClass,rpcDecl,rpcProcNmbr,cComment +syn keyword rpcDecl contained string +syn match rpcProcNmbr contained "=\s*\d\+;"me=e-1 +syn match rpcProgNmbrErr contained "=\s*0x[^23]\x*"ms=s+1 +syn match rpcPassThru "^\s*%.*$" + +" Define the default highlighting. +if !exists("skip_rpcgen_syntax_inits") + + hi def link rpcProgName rpcName + hi def link rpcProgram rpcStatement + hi def link rpcVersName rpcName + hi def link rpcVersion rpcStatement + + hi def link rpcDecl cType + hi def link rpcPassThru cComment + + hi def link rpcName Special + hi def link rpcProcNmbr Delimiter + hi def link rpcProgNmbrErr Error + hi def link rpcStatement Statement + +endif + +let b:current_syntax = "rpcgen" + +" vim: ts=8 diff --git a/runtime/syntax/rpl.vim b/runtime/syntax/rpl.vim new file mode 100644 index 0000000..28c250b --- /dev/null +++ b/runtime/syntax/rpl.vim @@ -0,0 +1,483 @@ +" Vim syntax file +" Language: RPL/2 +" Version: 0.15.15 against RPL/2 version 4.00pre7i +" Last Change: 2012 Feb 03 by Thilo Six +" Maintainer: Joël BERTRAND +" URL: http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim +" Credits: Nothing + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Keyword characters (not used) +" set iskeyword=33-127 + +" Case sensitive +syntax case match + +" Constants +syntax match rplConstant "\(^\|\s\+\)\(e\|i\)\ze\($\|\s\+\)" + +" Any binary number +syntax match rplBinaryError "\(^\|\s\+\)#\s*\S\+b\ze" +syntax match rplBinary "\(^\|\s\+\)#\s*[01]\+b\ze\($\|\s\+\)" +syntax match rplOctalError "\(^\|\s\+\)#\s*\S\+o\ze" +syntax match rplOctal "\(^\|\s\+\)#\s*\o\+o\ze\($\|\s\+\)" +syntax match rplDecimalError "\(^\|\s\+\)#\s*\S\+d\ze" +syntax match rplDecimal "\(^\|\s\+\)#\s*\d\+d\ze\($\|\s\+\)" +syntax match rplHexadecimalError "\(^\|\s\+\)#\s*\S\+h\ze" +syntax match rplHexadecimal "\(^\|\s\+\)#\s*\x\+h\ze\($\|\s\+\)" + +" Case unsensitive +syntax case ignore + +syntax match rplControl "\(^\|\s\+\)abort\ze\($\|\s\+\)" +syntax match rplControl "\(^\|\s\+\)kill\ze\($\|\s\+\)" +syntax match rplControl "\(^\|\s\+\)cont\ze\($\|\s\+\)" +syntax match rplControl "\(^\|\s\+\)halt\ze\($\|\s\+\)" +syntax match rplControl "\(^\|\s\+\)cmlf\ze\($\|\s\+\)" +syntax match rplControl "\(^\|\s\+\)sst\ze\($\|\s\+\)" + +syntax match rplConstant "\(^\|\s\+\)pi\ze\($\|\s\+\)" + +syntax match rplStatement "\(^\|\s\+\)return\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)last\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)syzeval\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)wait\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)type\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)kind\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)eval\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)use\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)remove\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)external\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)dup\([2n]\|\)\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)drop\([2n]\|\)\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)depth\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)roll\(d\|\)\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)pick\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)rot\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)swap\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)over\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)clear\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)warranty\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)copyright\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)convert\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)date\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)time\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)mem\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)clmf\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)->num\ze\($\|\s\+\)" +syntax match rplStatement "\(^\|\s\+\)help\ze\($\|\s\+\)" + +syntax match rplStorage "\(^\|\s\+\)get\(i\|r\|c\|\)\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)put\(i\|r\|c\|\)\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)rcl\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)purge\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)sinv\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)sneg\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)sconj\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)steq\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)rceq\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)vars\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)clusr\ze\($\|\s\+\)" +syntax match rplStorage "\(^\|\s\+\)sto\([+-/\*]\|\)\ze\($\|\s\+\)" + +syntax match rplAlgConditional "\(^\|\s\+\)ift\(e\|\)\ze\($\|\s\+\)" + +syntax match rplOperator "\(^\|\s\+\)and\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)\(x\|\)or\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)not\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)same\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)==\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)<=\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)=<\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)=>\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)>=\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)<>\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)>\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)<\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)[+-]\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)[/\*]\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)\^\ze\($\|\s\+\)" +syntax match rplOperator "\(^\|\s\+\)\*\*\ze\($\|\s\+\)" + +syntax match rplBoolean "\(^\|\s\+\)true\ze\($\|\s\+\)" +syntax match rplBoolean "\(^\|\s\+\)false\ze\($\|\s\+\)" + +syntax match rplReadWrite "\(^\|\s\+\)store\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)recall\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\(\|wf\|un\)lock\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)open\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)close\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)delete\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)create\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)format\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)rewind\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)backspace\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\(\|re\)write\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)read\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)inquire\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)sync\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)append\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)suppress\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)seek\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)pr\(1\|int\|st\|stc\|lcd\|var\|usr\|md\)\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)paper\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)cr\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)erase\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)disp\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)input\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)prompt\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)key\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)cllcd\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\(\|re\)draw\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)drax\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)indep\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)depnd\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)res\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)axes\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)label\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)pmin\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)pmax\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)centr\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)persist\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)title\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\(slice\|auto\|log\|\)scale\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)eyept\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\(p\|s\)par\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)function\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)polar\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)scatter\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)plotter\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)wireframe\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)parametric\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)slice\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\*w\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\*h\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\*d\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)\*s\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)->lcd\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)lcd->\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)edit\ze\($\|\s\+\)" +syntax match rplReadWrite "\(^\|\s\+\)visit\ze\($\|\s\+\)" + +syntax match rplIntrinsic "\(^\|\s\+\)abs\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)arg\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)conj\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)re\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)im\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)mant\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)xpon\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)ceil\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)fact\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)fp\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)floor\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)inv\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)ip\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)max\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)min\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)mod\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)neg\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)relax\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)sign\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)sq\(\|rt\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)xroot\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)cos\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)sin\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)tan\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)tg\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)a\(\|rc\)cos\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)a\(\|rc\)sin\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)atan\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)arctg\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)cosh\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)sinh\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)tanh\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|arg\)th\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)arg[cst]h\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|a\)log\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)ln\(\|1\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)exp\(\|m\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)trn\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)con\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)idn\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)rdm\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)rsd\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)cnrm\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)cross\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)d[eo]t\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)[cr]swp\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)rci\(j\|\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(in\|de\)cr\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)bessel\ze\($\|\s\+\)" + +syntax match rplIntrinsic "\(^\|\s\+\)\(\|g\)egvl\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|g\)\(\|l\|r\)egv\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)rnrm\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(std\|fix\|sci\|eng\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(rad\|deg\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|n\)rand\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)rdz\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|i\)fft\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(dec\|bin\|oct\|hex\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)rclf\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)stof\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)[cs]f\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)chr\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)num\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)pos\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)sub\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)size\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(st\|rc\)ws\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(r\|s\)\(r\|l\)\(\|b\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)as\(r\|l\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(int\|der\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)stos\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|r\)cls\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)drws\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)scls\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)ns\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)tot\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)mean\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)sdev\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)var\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)maxs\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)mins\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)cov\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)cols\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)s\(x\(\|y\|2\)\|y\(\|2\)\)\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(x\|y\)col\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)corr\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)utp[cfnt]\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)comb\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)perm\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)\(\|p\)lu\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)[lu]chol\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)schur\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)%\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)%ch\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)%t\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)hms->\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)->hms\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)hms+\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)hms-\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)d->r\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)r->d\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)b->r\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)r->b\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)c->r\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)r->c\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)r->p\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)p->r\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)str->\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)->str\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)array->\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)->array\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)list->\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)->list\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)s+\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)s-\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)col-\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)col+\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)row-\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)row+\ze\($\|\s\+\)" +syntax match rplIntrinsic "\(^\|\s\+\)->q\ze\($\|\s\+\)" + +syntax match rplObsolete "\(^\|\s\+\)arry->\ze\($\|\s\+\)"hs=e-5 +syntax match rplObsolete "\(^\|\s\+\)->arry\ze\($\|\s\+\)"hs=e-5 + +" Conditional structures +syntax match rplConditionalError "\(^\|\s\+\)case\ze\($\|\s\+\)"hs=e-3 +syntax match rplConditionalError "\(^\|\s\+\)then\ze\($\|\s\+\)"hs=e-3 +syntax match rplConditionalError "\(^\|\s\+\)else\ze\($\|\s\+\)"hs=e-3 +syntax match rplConditionalError "\(^\|\s\+\)elseif\ze\($\|\s\+\)"hs=e-5 +syntax match rplConditionalError "\(^\|\s\+\)end\ze\($\|\s\+\)"hs=e-2 +syntax match rplConditionalError "\(^\|\s\+\)\(step\|next\)\ze\($\|\s\+\)"hs=e-3 +syntax match rplConditionalError "\(^\|\s\+\)until\ze\($\|\s\+\)"hs=e-4 +syntax match rplConditionalError "\(^\|\s\+\)repeat\ze\($\|\s\+\)"hs=e-5 +syntax match rplConditionalError "\(^\|\s\+\)default\ze\($\|\s\+\)"hs=e-6 + +" FOR/(CYCLE)/(EXIT)/NEXT +" FOR/(CYCLE)/(EXIT)/STEP +" START/(CYCLE)/(EXIT)/NEXT +" START/(CYCLE)/(EXIT)/STEP +syntax match rplCycle "\(^\|\s\+\)\(cycle\|exit\)\ze\($\|\s\+\)" +syntax region rplForNext matchgroup=rplRepeat start="\(^\|\s\+\)\(for\|start\)\ze\($\|\s\+\)" end="\(^\|\s\+\)\(next\|step\)\ze\($\|\s\+\)" contains=ALL keepend extend + +" ELSEIF/END +syntax region rplElseifEnd matchgroup=rplConditional start="\(^\|\s\+\)elseif\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd keepend + +" ELSE/END +syntax region rplElseEnd matchgroup=rplConditional start="\(^\|\s\+\)else\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained contains=ALLBUT,rplElseEnd,rplThenEnd,rplElseifEnd keepend + +" THEN/END +syntax region rplThenEnd matchgroup=rplConditional start="\(^\|\s\+\)then\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contained containedin=rplIfEnd contains=ALLBUT,rplThenEnd keepend + +" IF/END +syntax region rplIfEnd matchgroup=rplConditional start="\(^\|\s\+\)if\(err\|\)\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplElseEnd,rplElseifEnd keepend extend +" if end is accepted ! +" select end too ! + +" CASE/THEN +syntax region rplCaseThen matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)then\ze\($\|\s\+\)" contains=ALLBUT,rplCaseThen,rplCaseEnd,rplThenEnd keepend extend contained containedin=rplCaseEnd + +" CASE/END +syntax region rplCaseEnd matchgroup=rplConditional start="\(^\|\s\+\)case\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplCaseEnd,rplThenEnd,rplElseEnd keepend extend contained containedin=rplSelectEnd + +" DEFAULT/END +syntax region rplDefaultEnd matchgroup=rplConditional start="\(^\|\s\+\)default\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplDefaultEnd keepend contained containedin=rplSelectEnd + +" SELECT/END +syntax region rplSelectEnd matchgroup=rplConditional start="\(^\|\s\+\)select\ze\($\|\s\+\)" end="\(^\|\s\+\)end\ze\($\|\s\+\)" contains=ALLBUT,rplThenEnd keepend extend +" select end is accepted ! + +" DO/UNTIL/END +syntax region rplUntilEnd matchgroup=rplConditional start="\(^\|\s\+\)until\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplUntilEnd contained containedin=rplDoUntil extend keepend +syntax region rplDoUntil matchgroup=rplConditional start="\(^\|\s\+\)do\ze\($\|\s\+\)" end="\(^\|\s\+\)until\ze\($\|\s\+\)" contains=ALL keepend extend + +" WHILE/REPEAT/END +syntax region rplRepeatEnd matchgroup=rplConditional start="\(^\|\s\+\)repeat\ze\($\|\s\+\)" end="\(^\|\s\+\)\zsend\ze\($\|\s\+\)" contains=ALLBUT,rplRepeatEnd contained containedin=rplWhileRepeat extend keepend +syntax region rplWhileRepeat matchgroup=rplConditional start="\(^\|\s\+\)while\ze\($\|\s\+\)" end="\(^\|\s\+\)repeat\ze\($\|\s\+\)" contains=ALL keepend extend + +" Comments +syntax match rplCommentError "\*/" +syntax region rplCommentString contained start=+"+ end=+"+ end=+\*/+me=s-1 +syntax region rplCommentLine start="\(^\|\s\+\)//\ze" skip="\\$" end="$" contains=NONE keepend extend +syntax region rplComment start="\(^\|\s\+\)/\*\ze" end="\*/" contains=rplCommentString keepend extend + +" Catch errors caused by too many right parentheses +syntax region rplParen transparent start="(" end=")" contains=ALLBUT,rplParenError,rplComplex,rplIncluded keepend extend +syntax match rplParenError ")" + +" Subroutines +" Catch errors caused by too many right '>>' +syntax match rplSubError "\(^\|\s\+\)>>\ze\($\|\s\+\)"hs=e-1 +syntax region rplSub matchgroup=rplSubDelimitor start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageSub keepend extend + +" Expressions +syntax region rplExpr start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError + +" Local variables +syntax match rplStorageError "\(^\|\s\+\)->\ze\($\|\s\+\)"hs=e-1 +syntax region rplStorageSub matchgroup=rplStorage start="\(^\|\s\+\)<<\ze\($\|\s\+\)" end="\(^\|\s\+\)>>\ze\($\|\s\+\)" contains=ALLBUT,rplSubError,rplIncluded,rplDefaultEnd,rplStorageExpr contained containedin=rplLocalStorage keepend extend +syntax region rplStorageExpr matchgroup=rplStorage start="\(^\|\s\+\)'" end="'\ze\($\|\s\+\)" contains=rplParen,rplParenError extend contained containedin=rplLocalStorage +syntax region rplLocalStorage matchgroup=rplStorage start="\(^\|\s\+\)->\ze\($\|\s\+\)" end="\(^\|\s\+\)\(<<\ze\($\|\s\+\)\|'\)" contains=rplStorageSub,rplStorageExpr,rplComment,rplCommentLine keepend extend + +" Catch errors caused by too many right brackets +syntax match rplArrayError "\]" +syntax match rplArray "\]" contained containedin=rplArray +syntax region rplArray matchgroup=rplArray start="\[" end="\]" contains=ALLBUT,rplArrayError keepend extend + +" Catch errors caused by too many right '}' +syntax match rplListError "}" +syntax match rplList "}" contained containedin=rplList +syntax region rplList matchgroup=rplList start="{" end="}" contains=ALLBUT,rplListError,rplIncluded keepend extend + +" cpp is used by RPL/2 +syntax match rplPreProc "\_^#\s*\(define\|undef\)\>" +syntax match rplPreProc "\_^#\s*\(warning\|error\)\>" +syntax match rplPreCondit "\_^#\s*\(if\|ifdef\|ifndef\|elif\|else\|endif\)\>" +syntax match rplIncluded contained "\<<\s*\S*\s*>\>" +syntax match rplInclude "\_^#\s*include\>\s*["<]" contains=rplIncluded,rplString +"syntax match rplExecPath "\%^\_^#!\s*\S*" +syntax match rplExecPath "\%^\_^#!\p*\_$" + +" Any integer +syntax match rplInteger "\(^\|\s\+\)[-+]\=\d\+\ze\($\|\s\+\)" + +" Floating point number +" [S][ip].[fp] +syntax match rplFloat "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\(\d*\)\=\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign +" [S]ip[.fp]E[S]exp +syntax match rplFloat "\(^\|\s\+\)[-+]\=\d\+\([\.,]\d*\)\=[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign +" [S].fpE[S]exp +syntax match rplFloat "\(^\|\s\+\)[-+]\=\(\d*\)\=[\.,]\d\+[eE]\([-+]\)\=\d\+\ze\($\|\s\+\)" contains=ALLBUT,rplPoint,rplSign +syntax match rplPoint "\<[\.,]\>" +syntax match rplSign "\<[+-]\>" + +" Complex number +" (x,y) +syntax match rplComplex "\(^\|\s\+\)([-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=\s*,\s*[-+]\=\(\d*\)\=\.\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)" +" (x.y) +syntax match rplComplex "\(^\|\s\+\)([-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=\s*\.\s*[-+]\=\(\d*\)\=,\=\d*\([eE][-+]\=\d\+\)\=)\ze\($\|\s\+\)" + +" Strings +syntax match rplStringGuilles "\\\"" +syntax match rplStringAntislash "\\\\" +syntax region rplString start=+\(^\|\s\+\)"+ end=+"\ze\($\|\s\+\)+ contains=rplStringGuilles,rplStringAntislash + +syntax match rplTab "\t" transparent + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default highlighting. + +hi def link rplControl Statement +hi def link rplStatement Statement +hi def link rplAlgConditional Conditional +hi def link rplConditional Repeat +hi def link rplConditionalError Error +hi def link rplRepeat Repeat +hi def link rplCycle Repeat +hi def link rplUntil Repeat +hi def link rplIntrinsic Special +hi def link rplStorage StorageClass +hi def link rplStorageExpr StorageClass +hi def link rplStorageError Error +hi def link rplReadWrite rplIntrinsic + +hi def link rplOperator Operator + +hi def link rplList Special +hi def link rplArray Special +hi def link rplConstant Identifier +hi def link rplExpr Type + +hi def link rplString String +hi def link rplStringGuilles String +hi def link rplStringAntislash String + +hi def link rplBinary Boolean +hi def link rplOctal Boolean +hi def link rplDecimal Boolean +hi def link rplHexadecimal Boolean +hi def link rplInteger Number +hi def link rplFloat Float +hi def link rplComplex Float +hi def link rplBoolean Identifier + +hi def link rplObsolete Todo + +hi def link rplPreCondit PreCondit +hi def link rplInclude Include +hi def link rplIncluded rplString +hi def link rplInclude Include +hi def link rplExecPath Include +hi def link rplPreProc PreProc +hi def link rplComment Comment +hi def link rplCommentLine Comment +hi def link rplCommentString Comment +hi def link rplSubDelimitor rplStorage +hi def link rplCommentError Error +hi def link rplParenError Error +hi def link rplSubError Error +hi def link rplArrayError Error +hi def link rplListError Error +hi def link rplTab Error +hi def link rplBinaryError Error +hi def link rplOctalError Error +hi def link rplDecimalError Error +hi def link rplHexadecimalError Error + + +let b:current_syntax = "rpl" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 tw=132 diff --git a/runtime/syntax/rrst.vim b/runtime/syntax/rrst.vim new file mode 100644 index 0000000..3a56342 --- /dev/null +++ b/runtime/syntax/rrst.vim @@ -0,0 +1,43 @@ +" reStructured Text with R statements +" Language: reST with R code chunks +" Maintainer: Alex Zvoleff, azvoleff@mail.sdsu.edu +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Thu Apr 05, 2018 11:06PM +" +" CONFIGURATION: +" To highlight chunk headers as R code, put in your vimrc: +" let rrst_syn_hl_chunk = 1 + +if exists("b:current_syntax") + finish +endif + +" load all of the rst info +runtime syntax/rst.vim +unlet! b:current_syntax + +" load all of the r syntax highlighting rules into @R +syntax include @R syntax/r.vim + +" highlight R chunks +if exists("g:rrst_syn_hl_chunk") + " highlight R code inside chunk header + syntax match rrstChunkDelim "^\.\. {r" contained + syntax match rrstChunkDelim "}$" contained +else + syntax match rrstChunkDelim "^\.\. {r .*}$" contained +endif +syntax match rrstChunkDelim "^\.\. \.\.$" contained +syntax region rrstChunk start="^\.\. {r.*}$" end="^\.\. \.\.$" contains=@R,rrstChunkDelim keepend transparent fold + +" also highlight in-line R code +syntax match rrstInlineDelim "`" contained +syntax match rrstInlineDelim ":r:" contained +syntax region rrstInline start=":r: *`" skip=/\\\\\|\\`/ end="`" contains=@R,rrstInlineDelim keepend + +hi def link rrstChunkDelim Special +hi def link rrstInlineDelim Special + +let b:current_syntax = "rrst" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim new file mode 100644 index 0000000..a90c90b --- /dev/null +++ b/runtime/syntax/rst.vim @@ -0,0 +1,290 @@ +" Vim reST syntax file +" Language: reStructuredText documentation format +" Maintainer: Marshall Ward +" Previous Maintainer: Nikolai Weibull +" Website: https://github.com/marshallward/vim-restructuredtext +" Latest Revision: 2020-03-31 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +syn match rstTransition /^[=`:.'"~^_*+#-]\{4,}\s*$/ + +syn cluster rstCruft contains=rstEmphasis,rstStrongEmphasis, + \ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference, + \ rstInlineInternalTargets,rstFootnoteReference,rstHyperlinkReference + +syn region rstLiteralBlock matchgroup=rstDelimiter + \ start='\(^\z(\s*\).*\)\@<=::\n\s*\n' skip='^\s*$' end='^\(\z1\s\+\)\@!' + \ contains=@NoSpell + +syn region rstQuotedLiteralBlock matchgroup=rstDelimiter + \ start="::\_s*\n\ze\z([!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]\)" + \ end='^\z1\@!' contains=@NoSpell + +syn region rstDoctestBlock oneline display matchgroup=rstDelimiter + \ start='^>>>\s' end='^$' + +syn region rstTable transparent start='^\n\s*+[-=+]\+' end='^$' + \ contains=rstTableLines,@rstCruft +syn match rstTableLines contained display '|\|+\%(=\+\|-\+\)\=' + +syn region rstSimpleTable transparent + \ start='^\n\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$' + \ end='^$' + \ contains=rstSimpleTableLines,@rstCruft +syn match rstSimpleTableLines contained display + \ '^\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$' +syn match rstSimpleTableLines contained display + \ '^\%(\s*\)\@>\%(\%(-\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(-\+\)\@>\%(\s*\)\@>\)\+\)\@>$' + +syn cluster rstDirectives contains=rstFootnote,rstCitation, + \ rstHyperlinkTarget,rstExDirective + +syn match rstExplicitMarkup '^\s*\.\.\_s' + \ nextgroup=@rstDirectives,rstComment,rstSubstitutionDefinition + +" "Simple reference names are single words consisting of alphanumerics plus +" isolated (no two adjacent) internal hyphens, underscores, periods, colons +" and plus signs." +let s:ReferenceName = '[[:alnum:]]\%([-_.:+]\?[[:alnum:]]\+\)*' + +syn keyword rstTodo contained FIXME TODO XXX NOTE + +execute 'syn region rstComment contained' . + \ ' start=/.*/' + \ ' skip=+^$+' . + \ ' end=/^\s\@!/ contains=rstTodo' + +execute 'syn region rstFootnote contained matchgroup=rstDirective' . + \ ' start=+\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]\_s+' . + \ ' skip=+^$+' . + \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell' + +execute 'syn region rstCitation contained matchgroup=rstDirective' . + \ ' start=+\[' . s:ReferenceName . '\]\_s+' . + \ ' skip=+^$+' . + \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell' + +syn region rstHyperlinkTarget contained matchgroup=rstDirective + \ start='_\%(_\|[^:\\]*\%(\\.[^:\\]*\)*\):\_s' skip=+^$+ end=+^\s\@!+ + +syn region rstHyperlinkTarget contained matchgroup=rstDirective + \ start='_`[^`\\]*\%(\\.[^`\\]*\)*`:\_s' skip=+^$+ end=+^\s\@!+ + +syn region rstHyperlinkTarget matchgroup=rstDirective + \ start=+^__\_s+ skip=+^$+ end=+^\s\@!+ + +execute 'syn region rstExDirective contained matchgroup=rstDirective' . + \ ' start=+' . s:ReferenceName . '::\_s+' . + \ ' skip=+^$+' . + \ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock' + +execute 'syn match rstSubstitutionDefinition contained' . + \ ' /|.*|\_s\+/ nextgroup=@rstDirectives' + +function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_right) + " Only escape the first char of a multichar delimiter (e.g. \* inside **) + if a:start[0] == '\' + let first = a:start[0:1] + else + let first = a:start[0] + endif + + execute 'syn match rstEscape'.a:name.' +\\\\\|\\'.first.'+'.' contained' + + execute 'syn region rst' . a:name . + \ ' start=+' . a:char_left . '\zs' . a:start . + \ '\ze[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' . + \ a:middle . + \ ' end=+' . a:end . '\ze\%($\|\s\|[''"’)\]}>/:.,;!?\\-]\)+' . + \ ' contains=rstEscape' . a:name + + execute 'hi def link rstEscape'.a:name.' Special' +endfunction + +function! s:DefineInlineMarkup(name, start, middle, end) + let middle = a:middle != "" ? + \ (' skip=+\\\\\|\\' . a:middle . '\|\s' . a:middle . '+') : + \ "" + + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, "'", "'") + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '"', '"') + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '(', ')') + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\[', '\]') + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}') + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>') + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '’', '’') + " TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters + + call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|\%ua0\|[/:]\)', '') + + execute 'syn match rst' . a:name . + \ ' +\%(^\|\s\|\%ua0\|[''"([{/:.,;!?\\-]\)+' + + execute 'hi def link rst' . a:name . 'Delimiter' . ' rst' . a:name +endfunction + +call s:DefineInlineMarkup('Emphasis', '\*', '\*', '\*') +call s:DefineInlineMarkup('StrongEmphasis', '\*\*', '\*', '\*\*') +call s:DefineInlineMarkup('InterpretedTextOrHyperlinkReference', '`', '`', '`_\{0,2}') +call s:DefineInlineMarkup('InlineLiteral', '``', "", '``') +call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}') +call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`') + +" Sections are identified through their titles, which are marked up with +" adornment: "underlines" below the title text, or underlines and matching +" "overlines" above the title. An underline/overline is a single repeated +" punctuation character that begins in column 1 and forms a line extending at +" least as far as the right edge of the title text. +" +" It is difficult to count characters in a regex, but we at least special-case +" the case where the title has at least three characters to require the +" adornment to have at least three characters as well, in order to handle +" properly the case of a literal block: +" +" this is the end of a paragraph +" :: +" this is a literal block +syn match rstSections "\v^%(([=`:.'"~^_*+#-])\1+\n)?.{1,2}\n([=`:.'"~^_*+#-])\2+$" + \ contains=@Spell +syn match rstSections "\v^%(([=`:.'"~^_*+#-])\1{2,}\n)?.{3,}\n([=`:.'"~^_*+#-])\2{2,}$" + \ contains=@Spell + +" TODO: Can’t remember why these two can’t be defined like the ones above. +execute 'syn match rstFootnoteReference contains=@NoSpell' . + \ ' +\%(\s\|^\)\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]_+' + +execute 'syn match rstCitationReference contains=@NoSpell' . + \ ' +\%(\s\|^\)\[' . s:ReferenceName . '\]_\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+' + +execute 'syn match rstHyperlinkReference' . + \ ' /\<' . s:ReferenceName . '__\=\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)/' + +syn match rstStandaloneHyperlink contains=@NoSpell + \ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]" + +syn region rstCodeBlock contained matchgroup=rstDirective + \ start=+\%(sourcecode\|code\%(-block\)\=\)::\s*\(\S*\)\?\s*\n\%(\s*:.*:\s*.*\s*\n\)*\n\ze\z(\s\+\)+ + \ skip=+^$+ + \ end=+^\z1\@!+ + \ contains=@NoSpell +syn cluster rstDirectives add=rstCodeBlock + +if !exists('g:rst_syntax_code_list') + " A mapping from a Vim filetype to a list of alias patterns (pattern + " branches to be specific, see ':help /pattern'). E.g. given: + " + " let g:rst_syntax_code_list = { + " \ 'cpp': ['cpp', 'c++'], + " \ } + " + " then the respective contents of the following two rST directives: + " + " .. code:: cpp + " + " auto i = 42; + " + " .. code:: C++ + " + " auto i = 42; + " + " will both be highlighted as C++ code. As shown by the latter block + " pattern matching will be case-insensitive. + let g:rst_syntax_code_list = { + \ 'vim': ['vim'], + \ 'java': ['java'], + \ 'cpp': ['cpp', 'c++'], + \ 'lisp': ['lisp'], + \ 'php': ['php'], + \ 'python': ['python'], + \ 'perl': ['perl'], + \ 'sh': ['sh'], + \ } +elseif type(g:rst_syntax_code_list) == type([]) + " backward compatibility with former list format + let s:old_spec = g:rst_syntax_code_list + let g:rst_syntax_code_list = {} + for s:elem in s:old_spec + let g:rst_syntax_code_list[s:elem] = [s:elem] + endfor +endif + +for s:filetype in keys(g:rst_syntax_code_list) + unlet! b:current_syntax + " guard against setting 'isk' option which might cause problems (issue #108) + let prior_isk = &l:iskeyword + let s:alias_pattern = '' + \.'\%(' + \.join(g:rst_syntax_code_list[s:filetype], '\|') + \.'\)' + + exe 'syn include @rst'.s:filetype.' syntax/'.s:filetype.'.vim' + exe 'syn region rstDirective'.s:filetype + \.' matchgroup=rstDirective fold' + \.' start="\c\%(sourcecode\|code\%(-block\)\=\)::\s\+'.s:alias_pattern.'\_s*\n\ze\z(\s\+\)"' + \.' skip=#^$#' + \.' end=#^\z1\@!#' + \.' contains=@NoSpell,@rst'.s:filetype + exe 'syn cluster rstDirectives add=rstDirective'.s:filetype + + " reset 'isk' setting, if it has been changed + if &l:iskeyword !=# prior_isk + let &l:iskeyword = prior_isk + endif + unlet! prior_isk +endfor + +" Enable top level spell checking +syntax spell toplevel + +" TODO: Use better syncing. +syn sync minlines=50 linebreaks=2 + +hi def link rstTodo Todo +hi def link rstComment Comment +hi def link rstSections Title +hi def link rstTransition rstSections +hi def link rstLiteralBlock String +hi def link rstQuotedLiteralBlock String +hi def link rstDoctestBlock PreProc +hi def link rstTableLines rstDelimiter +hi def link rstSimpleTableLines rstTableLines +hi def link rstExplicitMarkup rstDirective +hi def link rstDirective Keyword +hi def link rstFootnote String +hi def link rstCitation String +hi def link rstHyperlinkTarget String +hi def link rstExDirective String +hi def link rstSubstitutionDefinition rstDirective +hi def link rstDelimiter Delimiter +hi def link rstInterpretedTextOrHyperlinkReference Identifier +hi def link rstInlineLiteral String +hi def link rstSubstitutionReference PreProc +hi def link rstInlineInternalTargets Identifier +hi def link rstFootnoteReference Identifier +hi def link rstCitationReference Identifier +hi def link rstHyperLinkReference Identifier +hi def link rstStandaloneHyperlink Identifier +hi def link rstCodeBlock String +if exists('g:rst_use_emphasis_colors') + " TODO: Less arbitrary color selection + hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic + hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold +else + hi def rstEmphasis term=italic cterm=italic gui=italic + hi def rstStrongEmphasis term=bold cterm=bold gui=bold +endif + +let b:current_syntax = "rst" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/rtf.vim b/runtime/syntax/rtf.vim new file mode 100644 index 0000000..f8e031b --- /dev/null +++ b/runtime/syntax/rtf.vim @@ -0,0 +1,75 @@ +" Vim syntax file +" Language: Rich Text Format +" "*.rtf" files +" +" The Rich Text Format (RTF) Specification is a method of encoding formatted +" text and graphics for easy transfer between applications. +" .hlp (windows help files) use compiled rtf files +" rtf documentation at http://night.primate.wisc.edu/software/RTF/ +" +" Maintainer: Dominique Stéphan (dominique@mggen.com) +" URL: http://www.mggen.com/vim/syntax/rtf.zip +" Last change: 2001 Mai 02 + +" TODO: render underline, italic, bold + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" case on (all controls must be lower case) +syn case match + +" Control Words +syn match rtfControlWord "\\[a-z]\+[\-]\=[0-9]*" + +" New Control Words (not in the 1987 specifications) +syn match rtfNewControlWord "\\\*\\[a-z]\+[\-]\=[0-9]*" + +" Control Symbol : any \ plus a non alpha symbol, *, \, { and } and ' +syn match rtfControlSymbol "\\[^a-zA-Z\*\{\}\\']" + +" { } and \ are special characters, to use them +" we add a backslash \ +syn match rtfCharacter "\\\\" +syn match rtfCharacter "\\{" +syn match rtfCharacter "\\}" +" Escaped characters (for 8 bytes characters upper than 127) +syn match rtfCharacter "\\'[A-Za-z0-9][A-Za-z0-9]" +" Unicode +syn match rtfUnicodeCharacter "\\u[0-9][0-9]*" + +" Color values, we will put this value in Red, Green or Blue +syn match rtfRed "\\red[0-9][0-9]*" +syn match rtfGreen "\\green[0-9][0-9]*" +syn match rtfBlue "\\blue[0-9][0-9]*" + +" Some stuff for help files +syn match rtfFootNote "[#$K+]{\\footnote.*}" contains=rtfControlWord,rtfNewControlWord + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + + +hi def link rtfControlWord Statement +hi def link rtfNewControlWord Special +hi def link rtfControlSymbol Constant +hi def link rtfCharacter Character +hi def link rtfUnicodeCharacter SpecialChar +hi def link rtfFootNote Comment + +" Define colors for the syntax file +hi rtfRed term=underline cterm=underline ctermfg=DarkRed gui=underline guifg=DarkRed +hi rtfGreen term=underline cterm=underline ctermfg=DarkGreen gui=underline guifg=DarkGreen +hi rtfBlue term=underline cterm=underline ctermfg=DarkBlue gui=underline guifg=DarkBlue + +hi def link rtfRed rtfRed +hi def link rtfGreen rtfGreen +hi def link rtfBlue rtfBlue + + + +let b:current_syntax = "rtf" + +" vim:ts=8 diff --git a/runtime/syntax/ruby.vim b/runtime/syntax/ruby.vim new file mode 100644 index 0000000..e19d61a --- /dev/null +++ b/runtime/syntax/ruby.vim @@ -0,0 +1,606 @@ +" Vim syntax file +" Language: Ruby +" Maintainer: Doug Kearns +" URL: https://github.com/vim-ruby/vim-ruby +" Release Coordinator: Doug Kearns +" Last Change: 2023 Mar 16 +" ---------------------------------------------------------------------------- +" +" 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 + +" eRuby Config {{{1 +if exists('main_syntax') && main_syntax == 'eruby' + let b:ruby_no_expensive = 1 +endif + +" 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, 'NONE') > -1 + return 0 + endif + + 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 + +function! s:run_syntax_fold(args) abort + let [_0, _1, groups, cmd; _] = matchlist(a:args, '\(["'']\)\(.\{-}\)\1\s\+\(.*\)') + if call('s:foldable', split(groups)) + let cmd .= ' fold' + endif + exe cmd +endfunction + +com! -nargs=* SynFold call s:run_syntax_fold() + +" Not-Top Cluster {{{1 +syn cluster rubyNotTop contains=@rubyCommentNotTop,@rubyStringNotTop,@rubyRegexpSpecial,@rubyDeclaration,@rubyExceptionHandler,@rubyClassOperator,rubyConditional,rubyModuleName,rubyClassName,rubySymbolDelimiter,rubyDoubleQuoteSymbolDelimiter,rubySingleQuoteSymbolDelimiter,rubyParentheses,@Spell + +" 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 + +syn match rubyEnglishBooleanOperator "\<\%(and\|or\|not\)\>" + +if exists("ruby_operators") || exists("ruby_pseudo_operators") + syn match rubyDotOperator "\.\|&\." + + syn match rubyTernaryOperator "\%(\w\|[^\x00-\x7F]\)\@1\@!" + syn match rubyComparisonOperator "<=>\|<=\|<\|>=\|[-=]\@1" + syn match rubyBitwiseOperator "[~^|]\|&\.\@!\|<<\|>>" + syn match rubyBooleanOperator "\%(\w\|[^\x00-\x7F]\)\@1\@!\|-=\|/=\|\*\*=\|\*=\|&&=\|&=\|||=\||=\|%=\|+=\|>>=\|<<=\|\^=" + syn match rubyAssignmentOperator "=>\@!" contained containedin=rubyBlockParameterList " TODO: this is inelegant + syn match rubyEqualityOperator "===\|==\|!=\|!\~\|=\~" + + syn region rubyBracketOperator matchgroup=rubyOperator start="\%(\%(\w\|[^\x00-\x7F]\)[?!]\=\|[]})]\)\@2<=\[" end="]" contains=ALLBUT,@rubyNotTop + + syn match rubyScopeOperator "::" + syn match rubySuperClassOperator "<" contained + syn match rubyEigenClassOperator "<<" contained + syn match rubyLambdaOperator "->" + syn match rubySplatOperator "\%([[{(|,=]\_s*\)\@<=\*" + syn match rubySplatOperator "\%(^\|\s\)\@1<=\*\%(\h\|[^\x00-\x7F]\|[:$@[]\)\@=" + syn match rubyDoubleSplatOperator "\%([{(|,]\_s*\)\@<=\*\*" + syn match rubyDoubleSplatOperator "\s\@1<=\*\*\%(\h\|[^\x00-\x7F]\|[:$@{]\)\@=" + syn match rubyProcOperator "\%([[(|,]\_s*\)\@<=&" + syn match rubyProcOperator "\s\@1<=&\%(\h\|[^\x00-\x7F]\|[:$@]\|->\)\@=" + + syn cluster rubyProperOperator contains=rubyTernaryOperator,rubyArithmeticOperator,rubyComparisonOperator,rubyBitwiseOperator,rubyBooleanOperator,rubyRangeOperator,rubyAssignmentOperator,rubyEqualityOperator,rubyDefinedOperator,rubyEnglishBooleanOperator + syn cluster rubyClassOperator contains=rubyEigenClassOperator,rubySuperClassOperator + syn cluster rubyPseudoOperator contains=rubyDotOperator,rubyScopeOperator,rubyEigenClassOperator,rubySuperClassOperator,rubyLambdaOperator,rubySplatOperator,rubyDoubleSplatOperator,rubyProcOperator + syn cluster rubyOperator contains=ruby.*Operator +endif + +" String Interpolation and Backslash Notation {{{1 +syn region rubyInterpolation matchgroup=rubyInterpolationDelimiter start="#{" end="}" contained contains=ALLBUT,@rubyNotTop +syn match rubyInterpolation "#\$\%(-\w\|[!$&"'*+,./0:;<>?@\`~_]\|\w\+\)" display contained contains=rubyInterpolationDelimiter,@rubyGlobalVariable +syn match rubyInterpolation "#@@\=\w\+" display contained contains=rubyInterpolationDelimiter,rubyInstanceVariable,rubyClassVariable +syn match rubyInterpolationDelimiter "#\ze[$@]" display contained + +syn match rubyStringEscape "\\\_." contained display +syn match rubyStringEscape "\\\o\{1,3}\|\\x\x\{1,2}" contained display +syn match rubyStringEscape "\\u\%(\x\{4}\|{\x\{1,6}\%(\s\+\x\{1,6}\)*}\)" contained display +syn match rubyStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=.\)" contained display + +syn match rubyBackslashEscape "\\\\" contained display +syn match rubyQuoteEscape "\\'" contained display +syn match rubySpaceEscape "\\ " contained display + +syn match rubyParenthesisEscape "\\[()]" contained display +syn match rubyCurlyBraceEscape "\\[{}]" contained display +syn match rubyAngleBracketEscape "\\[<>]" contained display +syn match rubySquareBracketEscape "\\[[\]]" contained display + +syn region rubyNestedParentheses start="(" skip="\\\\\|\\)" end=")" transparent contained +syn region rubyNestedCurlyBraces start="{" skip="\\\\\|\\}" end="}" transparent contained +syn region rubyNestedAngleBrackets start="<" skip="\\\\\|\\>" end=">" transparent contained +syn region rubyNestedSquareBrackets start="\[" skip="\\\\\|\\\]" end="\]" transparent contained + +syn cluster rubySingleCharEscape contains=rubyBackslashEscape,rubyQuoteEscape,rubySpaceEscape,rubyParenthesisEscape,rubyCurlyBraceEscape,rubyAngleBracketEscape,rubySquareBracketEscape +syn cluster rubyNestedBrackets contains=rubyNested.\+ +syn cluster rubyStringSpecial contains=rubyInterpolation,rubyStringEscape +syn cluster rubyStringNotTop contains=@rubyStringSpecial,@rubyNestedBrackets,@rubySingleCharEscape + +" Regular Expression Metacharacters {{{1 +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=rubyRegexpBrackets,rubyStringEscape,rubyRegexpEscape,rubyRegexpCharClass,rubyRegexpIntersection oneline +syn match rubyRegexpCharClass "\\[DdHhRSsWw]" contained display +syn match rubyRegexpCharClass "\[:\^\=\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|xdigit\):\]" contained +syn match rubyRegexpCharClass "\\[pP]{^\=.\{-}}" contained display +syn match rubyRegexpEscape "\\[].*?+^$|\\/(){}[]" contained " see commit e477f10 +syn match rubyRegexpQuantifier "[*?+][?+]\=" contained display +syn match rubyRegexpQuantifier "{\d\+\%(,\d*\)\=}?\=" contained display +syn match rubyRegexpAnchor "[$^]\|\\[ABbGZz]" contained display +syn match rubyRegexpDot "\.\|\\X" contained display +syn match rubyRegexpIntersection "&&" contained display +syn match rubyRegexpSpecial "\\K" 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 rubyRegexpSpecial contains=@rubyStringSpecial,rubyRegexpSpecial,rubyRegexpEscape,rubyRegexpBrackets,rubyRegexpCharClass,rubyRegexpDot,rubyRegexpQuantifier,rubyRegexpAnchor,rubyRegexpParens,rubyRegexpComment,rubyRegexpIntersection + +" Numbers {{{1 +syn match rubyInteger "\%(\%(\w\|[^\x00-\x7F]\|[]})\"']\s*\)\@" display +syn match rubyInteger "\%(\%(\w\|[^\x00-\x7F]\|[]})\"']\s*\)\@" display +syn match rubyInteger "\%(\%(\w\|[^\x00-\x7F]\|[]})\"']\s*\)\@" display +syn match rubyInteger "\%(\%(\w\|[^\x00-\x7F]\|[]})\"']\s*\)\@" display +syn match rubyFloat "\%(\%(\w\|[^\x00-\x7F]\|[]})\"']\s*\)\@" display +syn match rubyFloat "\%(\%(\w\|[^\x00-\x7F]\|[]})\"']\s*\)\@" display + +" Identifiers {{{1 +syn match rubyClassName "\%(\%(^\|[^.]\)\.\s*\)\@\%(\s*(\)\@!" contained +syn match rubyModuleName "\%(\%(^\|[^.]\)\.\s*\)\@\%(\s*(\)\@!" contained +syn match rubyConstant "\%(\%(^\|[^.]\)\.\s*\)\@\%(\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\@!\)\=" contains=rubySymbolDelimiter + +SynFold ':' syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':]\@1\%(\s*(\)\@=" + +syn region rubyParentheses start="(" end=")" contains=ALLBUT,@rubyNotTop contained containedin=rubyBlockParameterList +syn region rubyBlockParameterList start="\%(\%(\\|{\)\_s*\)\@32<=|" end="|" contains=ALLBUT,@rubyNotTop,@rubyProperOperator + +if exists('ruby_global_variable_error') + syn match rubyGlobalVariableError "$[^A-Za-z_]" display + syn match rubyGlobalVariableError "$-[^0FIKWadilpvw]" display +endif + +syn match rubyPredefinedVariable #$[!$&"'*+,./0:;<>?@\`~]# +syn match rubyPredefinedVariable "$\d\+" display +syn match rubyPredefinedVariable "$_\>" display +syn match rubyPredefinedVariable "$-[0FIWadilpvw]\>" display +syn match rubyPredefinedVariable "$\%(stderr\|stdin\|stdout\)\>" display +syn match rubyPredefinedVariable "$\%(DEBUG\|FILENAME\|LOADED_FEATURES\|LOAD_PATH\|PROGRAM_NAME\|SAFE\|VERBOSE\)\>" display +syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@\%(\s*(\)\@!" +syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@\%(\s*(\)\@!" + +" Deprecated/removed in 1.9 +syn match rubyPredefinedVariable "$=" +syn match rubyPredefinedVariable "$-K\>" display +syn match rubyPredefinedVariable "$\%(deferr\|defout\)\>" display +syn match rubyPredefinedVariable "$KCODE\>" display +" Deprecated/removed in 2.4 +syn match rubyPredefinedConstant "\%(\%(^\|[^.]\)\.\s*\)\@\%(\s*(\)\@!" + +syn cluster rubyGlobalVariable contains=rubyGlobalVariable,rubyPredefinedVariable,rubyGlobalVariableError + +" Normal Regular Expressions {{{1 +SynFold '/' syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(^\|\<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<>?:*+-]\)\s*\)\@<=/" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite +SynFold '/' syn region rubyRegexp matchgroup=rubyRegexpDelimiter start="\%(\%(\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\s\+\)\@<=/\%(=\|\_s\)\@!" end="/[iomxneus]*" skip="\\\\\|\\/" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite + +" Generalized Regular Expressions {{{1 +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r{" end="}[iomxneus]*" skip="\\\\\|\\}" contains=@rubyRegexpSpecial +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r<" end=">[iomxneus]*" skip="\\\\\|\\>" contains=@rubyRegexpSpecial,rubyNestedAngleBrackets +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r\[" end="\][iomxneus]*" skip="\\\\\|\\\]" contains=@rubyRegexpSpecial +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r(" end=")[iomxneus]*" skip="\\\\\|\\)" contains=@rubyRegexpSpecial +SynFold '%' syn region rubyRegexp matchgroup=rubyPercentRegexpDelimiter start="%r\z(\s\)" end="\z1[iomxneus]*" skip="\\\\\|\\\z1" contains=@rubyRegexpSpecial + +" Characters {{{1 +syn match rubyCharacter "\%(\w\|[^\x00-\x7F]\|[]})\"'/]\)\@1" skip="\\\\\|\\>" contains=rubyBackslashEscape,rubyAngleBracketEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q\[" end="\]" skip="\\\\\|\\\]" contains=rubyBackslashEscape,rubySquareBracketEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q(" end=")" skip="\\\\\|\\)" contains=rubyBackslashEscape,rubyParenthesisEscape,rubyNestedParentheses +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%q\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=rubyBackslashEscape,rubySpaceEscape + +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w{" end="}" skip="\\\\\|\\}" contains=rubyBackslashEscape,rubySpaceEscape,rubyCurlyBraceEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w<" end=">" skip="\\\\\|\\>" contains=rubyBackslashEscape,rubySpaceEscape,rubyAngleBracketEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w\[" end="\]" skip="\\\\\|\\\]" contains=rubyBackslashEscape,rubySpaceEscape,rubySquareBracketEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%w(" end=")" skip="\\\\\|\\)" contains=rubyBackslashEscape,rubySpaceEscape,rubyParenthesisEscape,rubyNestedParentheses + +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s{" end="}" skip="\\\\\|\\}" contains=rubyBackslashEscape,rubyCurlyBraceEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s<" end=">" skip="\\\\\|\\>" contains=rubyBackslashEscape,rubyAngleBracketEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s\[" end="\]" skip="\\\\\|\\\]" contains=rubyBackslashEscape,rubySquareBracketEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%s(" end=")" skip="\\\\\|\\)" contains=rubyBackslashEscape,rubyParenthesisEscape,rubyNestedParentheses +SynFold '%' syn region rubyString matchgroup=rubyPercentSymbolDelimiter start="%s\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=rubyBackslashEscape,rubySpaceEscape + +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i{" end="}" skip="\\\\\|\\}" contains=rubyBackslashEscape,rubySpaceEscape,rubyCurlyBraceEscape,rubyNestedCurlyBraces +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i<" end=">" skip="\\\\\|\\>" contains=rubyBackslashEscape,rubySpaceEscape,rubyAngleBracketEscape,rubyNestedAngleBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i\[" end="\]" skip="\\\\\|\\\]" contains=rubyBackslashEscape,rubySpaceEscape,rubySquareBracketEscape,rubyNestedSquareBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%i(" end=")" skip="\\\\\|\\)" contains=rubyBackslashEscape,rubySpaceEscape,rubyParenthesisEscape,rubyNestedParentheses + +" Generalized Double Quoted Strings, Array of Strings, Array of Symbols and Shell Command Output {{{1 +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="\%(\%(\w\|[^\x00-\x7F]\|]\)\s*\)\@" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses +SynFold '%' syn region rubyString matchgroup=rubyPercentStringDelimiter start="%[Qx]\z(\s\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial + +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial nextgroup=@rubyModifier skipwhite +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I{" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlyBraces +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngleBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedSquareBrackets +SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%I(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParentheses + +" Here Documents {{{1 +syn region rubyHeredocStart matchgroup=rubyHeredocDelimiter start=+\%(\%(class\|::\|\.\@1>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration + +syn cluster rubyDeclaration contains=rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyMethodName + +" Keywords {{{1 +" TODO: reorganise +syn match rubyControl "\%#=1\<\%(break\|in\|next\|redo\|retry\|return\)\>" +syn match rubyKeyword "\%#=1\<\%(super\|yield\)\>" +syn match rubyBoolean "\%#=1\<\%(true\|false\)\>[?!]\@!" +syn match rubyPseudoVariable "\%#=1\<\%(self\|nil\)\>[?!]\@!" +syn match rubyPseudoVariable "\%#=1\<__\%(ENCODING\|dir\|FILE\|LINE\|callee\|method\)__\>" +syn match rubyBeginEnd "\%#=1\<\%(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 "\" nextgroup=rubyAliasDeclaration skipwhite skipnl + syn match rubyDefine "\" nextgroup=rubyMethodDeclaration skipwhite skipnl + syn match rubyDefine "\" nextgroup=rubyMethodName skipwhite skipnl + syn match rubyClass "\" nextgroup=rubyClassDeclaration,rubyEigenClassOperator skipwhite skipnl + syn match rubyModule "\" nextgroup=rubyModuleDeclaration skipwhite skipnl + + SynFold 'def' syn region rubyMethodBlock start="\" matchgroup=rubyDefine skip="\" end="\" contains=ALLBUT,@rubyNotTop + SynFold 'class' syn region rubyClassBlock start="\" matchgroup=rubyClass skip="\" + syn match rubyRepeatModifier "\<\%(while\|until\)\>" + syn match rubyRescueModifier "\" + + syn cluster rubyModifier contains=rubyConditionalModifier,rubyRepeatModifier,rubyRescueModifier + + SynFold 'do' syn region rubyDoBlock matchgroup=rubyControl start="\" skip="\" contained containedin=rubyCaseExpression + syn match rubyConditional "\<\%(then\|else\|elsif\)\>" contained containedin=rubyConditionalExpression + + syn match rubyExceptionHandler "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>" contained containedin=rubyBlockExpression,rubyDoBlock + syn match rubyExceptionHandler2 "\<\%(\%(\%(;\|^\)\s*\)\@<=rescue\|else\|ensure\)\>" contained containedin=rubyModuleBlock,rubyClassBlock,rubyMethodBlock + syn cluster rubyExceptionHandler contains=rubyExceptionHandler,rubyExceptionHandler2 + + " statements with optional 'do' + syn region rubyOptionalDoLine matchgroup=rubyRepeat start="\" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\@" matchgroup=rubyOptionalDo end="\" end="\ze\%(;\|$\)" oneline contains=ALLBUT,@rubyNotTop + + SynFold 'for' syn region rubyRepeatExpression start="\" start="\%(\%(^\|\.\.\.\=\|[{:,;([<>~\*/%&^|+=-]\|\%(\<\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*\)\@" matchgroup=rubyRepeat skip="\" nextgroup=rubyMethodDeclaration skipwhite skipnl + syn match rubyControl "\" nextgroup=rubyClassDeclaration skipwhite skipnl + syn match rubyControl "\" nextgroup=rubyModuleDeclaration skipwhite skipnl + syn match rubyControl "\<\%(case\|begin\|do\|for\|if\|unless\|while\|until\|else\|elsif\|rescue\|ensure\|then\|when\|end\)\>" + syn match rubyKeyword "\<\%(alias\|undef\)\>" +endif + +if !exists("ruby_minlines") + let ruby_minlines = 500 +endif +exe "syn sync minlines=" . ruby_minlines + +" Special Methods {{{1 +if !exists("ruby_no_special_methods") + syn match rubyAccess "\<\%(public\|protected\|private\)\>" " use re=2 + syn match rubyAccess "\%#=1\<\%(public\|private\)_class_method\>" + syn match rubyAccess "\%#=1\<\%(public\|private\)_constant\>" + syn match rubyAccess "\%#=1\" + syn match rubyAttribute "\%#=1\%(\%(^\|;\)\s*\)\@<=attr\>\%(\s*[.=]\)\@!" " attr is a common variable name + syn match rubyAttribute "\%#=1\" + syn match rubyControl "\%#=1\<\%(abort\|at_exit\|exit\|fork\|loop\|trap\)\>" + syn match rubyEval "\%#=1\" + syn match rubyEval "\%#=1\<\%(class\|instance\|module\)_eval\>" + syn match rubyException "\%#=1\<\%(raise\|fail\|catch\|throw\)\>" + syn match rubyInclude "\%#=1\<\%(autoload\|gem\|load\|require\%(_relative\)\=\)\>" + syn match rubyKeyword "\%#=1\<\%(callcc\|caller\|lambda\|proc\)\>" + syn match rubyMacro "\%#=1\<\%(extend\|include\|prepend\|refine\|using\)\>" + syn match rubyMacro "\%#=1\<\%(alias\|define\|define_singleton\|remove\|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 rubyEncoding "[[:alnum:]-_]\+" contained display +syn match rubyMagicComment "\c\%<3l#\s*\zs\%(coding\|encoding\):" contained nextgroup=rubyEncoding skipwhite +syn match rubyMagicComment "\c\%<10l#\s*\zs\%(frozen[-_]string[-_]literal\|warn[-_]indent\|warn[-_]past[-_]scope\):" contained nextgroup=rubyBoolean skipwhite +syn match rubyMagicComment "\c\%<10l#\s*\zs\%(shareable[-_]constant[-_]value\):" contained nextgroup=rubyEncoding skipwhite +syn match rubyComment "#.*" contains=@rubyCommentSpecial,rubySpaceError,@Spell + +syn cluster rubyCommentSpecial contains=rubySharpBang,rubyTodo,rubyMagicComment +syn cluster rubyCommentNotTop contains=@rubyCommentSpecial,rubyEncoding + +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 + +" {{{1 Useless Line Continuations +syn match rubyUselessLineContinuation "\%([.:,;{([<>~\*%&^|+=-]\|%(\%(\w\|[^\x00-\x7F]\)\@1\)" transparent contains=rubyDotOperator,rubyScopeOperator + +" Bang and Predicate Methods and Operators {{{1 +syn match rubyBangPredicateMethod "\%(\h\|[^\x00-\x7F]\)\%(\w\|[^\x00-\x7F]\)*[?!]" + +if !exists("ruby_no_special_methods") + syn match rubyControl "\%#=1\ +" Maintainer: Ben Blum +" Maintainer: Chris Morgan +" Last Change: 2023-09-11 +" For bugs, patches and license go to https://github.com/rust-lang/rust.vim + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Syntax definitions {{{1 +" Basic keywords {{{2 +syn keyword rustConditional match if else +syn keyword rustRepeat loop while +" `:syn match` must be used to prioritize highlighting `for` keyword. +syn match rustRepeat /\/ +" Highlight `for` keyword in `impl ... for ... {}` statement. This line must +" be put after previous `syn match` line to overwrite it. +syn match rustKeyword /\%(\.\+\)\@<=\/ +syn keyword rustRepeat in +syn keyword rustTypedef type nextgroup=rustIdentifier skipwhite skipempty +syn keyword rustStructure struct enum nextgroup=rustIdentifier skipwhite skipempty +syn keyword rustUnion union nextgroup=rustIdentifier skipwhite skipempty contained +syn match rustUnionContextual /\/ +syn keyword rustAwait await +syn match rustKeyword /\!\@!/ display + +syn keyword rustPubScopeCrate crate contained +syn match rustPubScopeDelim /[()]/ contained +syn match rustPubScope /([^()]*)/ contained contains=rustPubScopeDelim,rustPubScopeCrate,rustSuper,rustModPath,rustModPathSep,rustSelf transparent + +syn keyword rustExternCrate crate contained nextgroup=rustIdentifier,rustExternCrateString skipwhite skipempty +" This is to get the `bar` part of `extern crate "foo" as bar;` highlighting. +syn match rustExternCrateString /".*"\_s*as/ contained nextgroup=rustIdentifier skipwhite transparent skipempty contains=rustString,rustOperator +syn keyword rustObsoleteExternMod mod contained nextgroup=rustIdentifier skipwhite skipempty + +syn match rustIdentifier contains=rustIdentifierPrime "\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained +syn match rustFuncName "\%(r#\)\=\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" display contained + +syn region rustMacroRepeat matchgroup=rustMacroRepeatDelimiters start="$(" end="),\=[*+]" contains=TOP +syn match rustMacroVariable "$\w\+" +syn match rustRawIdent "\(); + +" This is merely a convention; note also the use of [A-Z], restricting it to +" latin identifiers rather than the full Unicode uppercase. I have not used +" [:upper:] as it depends upon 'noignorecase' +"syn match rustCapsIdent display "[A-Z]\w\(\w\)*" + +syn match rustOperator display "\%(+\|-\|/\|*\|=\|\^\|&\||\|!\|>\|<\|%\)=\?" +" This one isn't *quite* right, as we could have binary-& with a reference +syn match rustSigil display /&\s\+[&~@*][^)= \t\r\n]/he=e-1,me=e-1 +syn match rustSigil display /[&~@*][^)= \t\r\n]/he=e-1,me=e-1 +" This isn't actually correct; a closure with no arguments can be `|| { }`. +" Last, because the & in && isn't a sigil +syn match rustOperator display "&&\|||" +" This is rustArrowCharacter rather than rustArrow for the sake of matchparen, +" so it skips the ->; see http://stackoverflow.com/a/30309949 for details. +syn match rustArrowCharacter display "->" +syn match rustQuestionMark display "?\([a-zA-Z]\+\)\@!" + +syn match rustMacro '\w\(\w\)*!' contains=rustAssert,rustPanic +syn match rustMacro '#\w\(\w\)*' contains=rustAssert,rustPanic + +syn match rustEscapeError display contained /\\./ +syn match rustEscape display contained /\\\([nrt0\\'"]\|x\x\{2}\)/ +syn match rustEscapeUnicode display contained /\\u{\%(\x_*\)\{1,6}}/ +syn match rustStringContinuation display contained /\\\n\s*/ +syn region rustString matchgroup=rustStringDelimiter start=+b"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeError,rustStringContinuation +syn region rustString matchgroup=rustStringDelimiter start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustStringContinuation,@Spell +syn region rustString matchgroup=rustStringDelimiter start='b\?r\z(#*\)"' end='"\z1' contains=@Spell + +" Match attributes with either arbitrary syntax or special highlighting for +" derives. We still highlight strings and comments inside of the attribute. +syn region rustAttribute start="#!\?\[" end="\]" contains=@rustAttributeContents,rustAttributeParenthesizedParens,rustAttributeParenthesizedCurly,rustAttributeParenthesizedBrackets,rustDerive +syn region rustAttributeParenthesizedParens matchgroup=rustAttribute start="\w\%(\w\)*("rs=e end=")"re=s transparent contained contains=rustAttributeBalancedParens,@rustAttributeContents +syn region rustAttributeParenthesizedCurly matchgroup=rustAttribute start="\w\%(\w\)*{"rs=e end="}"re=s transparent contained contains=rustAttributeBalancedCurly,@rustAttributeContents +syn region rustAttributeParenthesizedBrackets matchgroup=rustAttribute start="\w\%(\w\)*\["rs=e end="\]"re=s transparent contained contains=rustAttributeBalancedBrackets,@rustAttributeContents +syn region rustAttributeBalancedParens matchgroup=rustAttribute start="("rs=e end=")"re=s transparent contained contains=rustAttributeBalancedParens,@rustAttributeContents +syn region rustAttributeBalancedCurly matchgroup=rustAttribute start="{"rs=e end="}"re=s transparent contained contains=rustAttributeBalancedCurly,@rustAttributeContents +syn region rustAttributeBalancedBrackets matchgroup=rustAttribute start="\["rs=e end="\]"re=s transparent contained contains=rustAttributeBalancedBrackets,@rustAttributeContents +syn cluster rustAttributeContents contains=rustString,rustCommentLine,rustCommentBlock,rustCommentLineDocError,rustCommentBlockDocError +syn region rustDerive start="derive(" end=")" contained contains=rustDeriveTrait +" This list comes from src/libsyntax/ext/deriving/mod.rs +" Some are deprecated (Encodable, Decodable) or to be removed after a new snapshot (Show). +syn keyword rustDeriveTrait contained Clone Hash RustcEncodable RustcDecodable Encodable Decodable PartialEq Eq PartialOrd Ord Rand Show Debug Default FromPrimitive Send Sync Copy + +" dyn keyword: It's only a keyword when used inside a type expression, so +" we make effort here to highlight it only when Rust identifiers follow it +" (not minding the case of pre-2018 Rust where a path starting with :: can +" follow). +" +" This is so that uses of dyn variable names such as in 'let &dyn = &2' +" and 'let dyn = 2' will not get highlighted as a keyword. +syn match rustKeyword "\/ contains=rustGenericLifetimeCandidate +syn region rustGenericLifetimeCandidate display start=/\%(<\|,\s*\)\@<='/ end=/[[:cntrl:][:space:][:punct:]]\@=\|$/ contains=rustSigil,rustLifetime + +"rustLifetime must appear before rustCharacter, or chars will get the lifetime highlighting +syn match rustLifetime display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" +syn match rustLabel display "\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*:" +syn match rustLabel display "\%(\<\%(break\|continue\)\s*\)\@<=\'\%([^[:cntrl:][:space:][:punct:][:digit:]]\|_\)\%([^[:cntrl:][:punct:][:space:]]\|_\)*" +syn match rustCharacterInvalid display contained /b\?'\zs[\n\r\t']\ze'/ +" The groups negated here add up to 0-255 but nothing else (they do not seem to go beyond ASCII). +syn match rustCharacterInvalidUnicode display contained /b'\zs[^[:cntrl:][:graph:][:alnum:][:space:]]\ze'/ +syn match rustCharacter /b'\([^\\]\|\\\(.\|x\x\{2}\)\)'/ contains=rustEscape,rustEscapeError,rustCharacterInvalid,rustCharacterInvalidUnicode +syn match rustCharacter /'\([^\\]\|\\\(.\|x\x\{2}\|u{\%(\x_*\)\{1,6}}\)\)'/ contains=rustEscape,rustEscapeUnicode,rustEscapeError,rustCharacterInvalid + +syn match rustShebang /\%^#![^[].*/ +syn region rustCommentLine start="//" end="$" contains=rustTodo,@Spell +syn region rustCommentLineDoc start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell +syn region rustCommentLineDocError start="//\%(//\@!\|!\)" end="$" contains=rustTodo,@Spell contained +syn region rustCommentBlock matchgroup=rustCommentBlock start="/\*\%(!\|\*[*/]\@!\)\@!" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell +syn region rustCommentBlockDoc matchgroup=rustCommentBlockDoc start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,rustCommentBlockDocNest,rustCommentBlockDocRustCode,@Spell +syn region rustCommentBlockDocError matchgroup=rustCommentBlockDocError start="/\*\%(!\|\*[*/]\@!\)" end="\*/" contains=rustTodo,rustCommentBlockDocNestError,@Spell contained +syn region rustCommentBlockNest matchgroup=rustCommentBlock start="/\*" end="\*/" contains=rustTodo,rustCommentBlockNest,@Spell contained transparent +syn region rustCommentBlockDocNest matchgroup=rustCommentBlockDoc start="/\*" end="\*/" contains=rustTodo,rustCommentBlockDocNest,@Spell contained transparent +syn region rustCommentBlockDocNestError matchgroup=rustCommentBlockDocError start="/\*" end="\*/" contains=rustTodo,rustCommentBlockDocNestError,@Spell contained transparent + +" FIXME: this is a really ugly and not fully correct implementation. Most +" importantly, a case like ``/* */*`` should have the final ``*`` not being in +" a comment, but in practice at present it leaves comments open two levels +" deep. But as long as you stay away from that particular case, I *believe* +" the highlighting is correct. Due to the way Vim's syntax engine works +" (greedy for start matches, unlike Rust's tokeniser which is searching for +" the earliest-starting match, start or end), I believe this cannot be solved. +" Oh you who would fix it, don't bother with things like duplicating the Block +" rules and putting ``\*\@:p:h/rust.vim + unlet b:current_syntax_embed + + " Currently regions marked as ``` will not get + " highlighted at all. In the future, we can do as vim-markdown does and + " highlight with the other syntax. But for now, let's make sure we find + " the closing block marker, because the rules below won't catch it. + syn region rustCommentLinesDocNonRustCode matchgroup=rustCommentDocCodeFence start='^\z(\s*//[!/]\s*```\).\+$' end='^\z1$' keepend contains=rustCommentLineDoc + + " We borrow the rules from rust’s src/librustdoc/html/markdown.rs, so that + " we only highlight as Rust what it would perceive as Rust (almost; it’s + " possible to trick it if you try hard, and indented code blocks aren’t + " supported because Markdown is a menace to parse and only mad dogs and + " Englishmen would try to handle that case correctly in this syntax file). + syn region rustCommentLinesDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\s*//[!/]\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\|edition201[58]\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentLineDocLeader + syn region rustCommentBlockDocRustCode matchgroup=rustCommentDocCodeFence start='^\z(\%(\s*\*\)\?\s*```\)[^A-Za-z0-9_-]*\%(\%(should_panic\|no_run\|ignore\|allow_fail\|rust\|test_harness\|compile_fail\|E\d\{4}\|edition201[58]\)\%([^A-Za-z0-9_-]\+\|$\)\)*$' end='^\z1$' keepend contains=@RustCodeInComment,rustCommentBlockDocStar + " Strictly, this may or may not be correct; this code, for example, would + " mishighlight: + " + " /** + " ```rust + " println!("{}", 1 + " * 1); + " ``` + " */ + " + " … but I don’t care. Balance of probability, and all that. + syn match rustCommentBlockDocStar /^\s*\*\s\?/ contained + syn match rustCommentLineDocLeader "^\s*//\%(//\@!\|!\)" contained +endif + +" Default highlighting {{{1 +hi def link rustDecNumber rustNumber +hi def link rustHexNumber rustNumber +hi def link rustOctNumber rustNumber +hi def link rustBinNumber rustNumber +hi def link rustIdentifierPrime rustIdentifier +hi def link rustTrait rustType +hi def link rustDeriveTrait rustTrait + +hi def link rustMacroRepeatDelimiters Macro +hi def link rustMacroVariable Define +hi def link rustSigil StorageClass +hi def link rustEscape Special +hi def link rustEscapeUnicode rustEscape +hi def link rustEscapeError Error +hi def link rustStringContinuation Special +hi def link rustString String +hi def link rustStringDelimiter String +hi def link rustCharacterInvalid Error +hi def link rustCharacterInvalidUnicode rustCharacterInvalid +hi def link rustCharacter Character +hi def link rustNumber Number +hi def link rustBoolean Boolean +hi def link rustEnum rustType +hi def link rustEnumVariant rustConstant +hi def link rustConstant Constant +hi def link rustSelf Constant +hi def link rustFloat Float +hi def link rustArrowCharacter rustOperator +hi def link rustOperator Operator +hi def link rustKeyword Keyword +hi def link rustDynKeyword rustKeyword +hi def link rustTypedef Keyword " More precise is Typedef, but it doesn't feel right for Rust +hi def link rustStructure Keyword " More precise is Structure +hi def link rustUnion rustStructure +hi def link rustExistential rustKeyword +hi def link rustPubScopeDelim Delimiter +hi def link rustPubScopeCrate rustKeyword +hi def link rustSuper rustKeyword +hi def link rustUnsafeKeyword Exception +hi def link rustReservedKeyword Error +hi def link rustRepeat Conditional +hi def link rustConditional Conditional +hi def link rustIdentifier Identifier +hi def link rustCapsIdent rustIdentifier +hi def link rustModPath Include +hi def link rustModPathSep Delimiter +hi def link rustFunction Function +hi def link rustFuncName Function +hi def link rustFuncCall Function +hi def link rustShebang Comment +hi def link rustCommentLine Comment +hi def link rustCommentLineDoc SpecialComment +hi def link rustCommentLineDocLeader rustCommentLineDoc +hi def link rustCommentLineDocError Error +hi def link rustCommentBlock rustCommentLine +hi def link rustCommentBlockDoc rustCommentLineDoc +hi def link rustCommentBlockDocStar rustCommentBlockDoc +hi def link rustCommentBlockDocError Error +hi def link rustCommentDocCodeFence rustCommentLineDoc +hi def link rustAssert PreCondit +hi def link rustPanic PreCondit +hi def link rustMacro Macro +hi def link rustType Type +hi def link rustTodo Todo +hi def link rustAttribute PreProc +hi def link rustDerive PreProc +hi def link rustDefault StorageClass +hi def link rustStorage StorageClass +hi def link rustObsoleteStorage Error +hi def link rustLifetime Special +hi def link rustLabel Label +hi def link rustExternCrate rustKeyword +hi def link rustObsoleteExternMod Error +hi def link rustQuestionMark Special +hi def link rustAsync rustKeyword +hi def link rustAwait rustKeyword +hi def link rustAsmDirSpec rustKeyword +hi def link rustAsmSym rustKeyword +hi def link rustAsmOptions rustKeyword +hi def link rustAsmOptionsKey rustAttribute + +" Other Suggestions: +" hi rustAttribute ctermfg=cyan +" hi rustDerive ctermfg=cyan +" hi rustAssert ctermfg=yellow +" hi rustPanic ctermfg=red +" hi rustMacro ctermfg=magenta + +syn sync minlines=200 +syn sync maxlines=500 + +let b:current_syntax = "rust" + +" vim: set et sw=4 sts=4 ts=8: diff --git a/runtime/syntax/samba.vim b/runtime/syntax/samba.vim new file mode 100644 index 0000000..e096436 --- /dev/null +++ b/runtime/syntax/samba.vim @@ -0,0 +1,118 @@ +" Vim syntax file +" Language: samba configuration files (smb.conf) +" Maintainer: Rafael Garcia-Suarez +" URL: http://rgarciasuarez.free.fr/vim/syntax/samba.vim +" Last change: 2009 Aug 06 +" +" New maintainer wanted! +" +" Don't forget to run your config file through testparm(1)! + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +syn match sambaParameter /^[a-zA-Z \t]\+=/ contains=sambaKeyword +syn match sambaSection /^\s*\[[a-zA-Z0-9_\-.$ ]\+\]/ +syn match sambaMacro /%[SPugUGHvhmLMNpRdaITD]/ +syn match sambaMacro /%$([a-zA-Z0-9_]\+)/ +syn match sambaComment /^\s*[;#].*/ +syn match sambaContinue /\\$/ +syn keyword sambaBoolean true false yes no + +" Keywords for Samba 2.0.5a +syn keyword sambaKeyword contained account acl action add address admin aliases +syn keyword sambaKeyword contained allow alternate always announce anonymous +syn keyword sambaKeyword contained archive as auto available bind blocking +syn keyword sambaKeyword contained bmpx break browsable browse browseable ca +syn keyword sambaKeyword contained cache case casesignames cert certDir +syn keyword sambaKeyword contained certFile change char character chars chat +syn keyword sambaKeyword contained ciphers client clientcert code coding +syn keyword sambaKeyword contained command comment compatibility config +syn keyword sambaKeyword contained connections contention controller copy +syn keyword sambaKeyword contained create deadtime debug debuglevel default +syn keyword sambaKeyword contained delete deny descend dfree dir directory +syn keyword sambaKeyword contained disk dns domain domains dont dos dot drive +syn keyword sambaKeyword contained driver encrypt encrypted equiv exec fake +syn keyword sambaKeyword contained file files filetime filetimes filter follow +syn keyword sambaKeyword contained force fstype getwd group groups guest +syn keyword sambaKeyword contained hidden hide home homedir hosts include +syn keyword sambaKeyword contained interfaces interval invalid keepalive +syn keyword sambaKeyword contained kernel key ldap length level level2 limit +syn keyword sambaKeyword contained links list lm load local location lock +syn keyword sambaKeyword contained locking locks log logon logons logs lppause +syn keyword sambaKeyword contained lpq lpresume lprm machine magic mangle +syn keyword sambaKeyword contained mangled mangling map mask master max mem +syn keyword sambaKeyword contained message min mode modes mux name names +syn keyword sambaKeyword contained netbios nis notify nt null offset ok ole +syn keyword sambaKeyword contained only open oplock oplocks options order os +syn keyword sambaKeyword contained output packet page panic passwd password +syn keyword sambaKeyword contained passwords path permissions pipe port ports +syn keyword sambaKeyword contained postexec postscript prediction preexec +syn keyword sambaKeyword contained prefered preferred preload preserve print +syn keyword sambaKeyword contained printable printcap printer printers +syn keyword sambaKeyword contained printing program protocol proxy public +syn keyword sambaKeyword contained queuepause queueresume raw read readonly +syn keyword sambaKeyword contained realname remote require resign resolution +syn keyword sambaKeyword contained resolve restrict revalidate rhosts root +syn keyword sambaKeyword contained script security sensitive server servercert +syn keyword sambaKeyword contained service services set share shared short +syn keyword sambaKeyword contained size smb smbrun socket space ssl stack stat +syn keyword sambaKeyword contained status strict string strip suffix support +syn keyword sambaKeyword contained symlinks sync syslog system time timeout +syn keyword sambaKeyword contained times timestamp to trusted ttl unix update +syn keyword sambaKeyword contained use user username users valid version veto +syn keyword sambaKeyword contained volume wait wide wins workgroup writable +syn keyword sambaKeyword contained write writeable xmit + +" New keywords for Samba 2.0.6 +syn keyword sambaKeyword contained hook hires pid uid close rootpreexec + +" New keywords for Samba 2.0.7 +syn keyword sambaKeyword contained utmp wtmp hostname consolidate +syn keyword sambaKeyword contained inherit source environment + +" New keywords for Samba 2.2.0 +syn keyword sambaKeyword contained addprinter auth browsing deleteprinter +syn keyword sambaKeyword contained enhanced enumports filemode gid host jobs +syn keyword sambaKeyword contained lanman msdfs object os2 posix processes +syn keyword sambaKeyword contained scope separator shell show smbd template +syn keyword sambaKeyword contained total vfs winbind wizard + +" New keywords for Samba 2.2.1 +syn keyword sambaKeyword contained large obey pam readwrite restrictions +syn keyword sambaKeyword contained unreadable + +" New keywords for Samba 2.2.2 - 2.2.4 +syn keyword sambaKeyword contained acls allocate bytes count csc devmode +syn keyword sambaKeyword contained disable dn egd entropy enum extensions mmap +syn keyword sambaKeyword contained policy spin spoolss + +" Since Samba 3.0.2 +syn keyword sambaKeyword contained abort afs algorithmic backend +syn keyword sambaKeyword contained charset cups defer display +syn keyword sambaKeyword contained enable idmap kerberos lookups +syn keyword sambaKeyword contained methods modules nested NIS ntlm NTLMv2 +syn keyword sambaKeyword contained objects paranoid partners passdb +syn keyword sambaKeyword contained plaintext prefix primary private +syn keyword sambaKeyword contained profile quota realm replication +syn keyword sambaKeyword contained reported rid schannel sendfile sharing +syn keyword sambaKeyword contained shutdown signing special spnego +syn keyword sambaKeyword contained store unknown unwriteable + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +hi def link sambaParameter Normal +hi def link sambaKeyword Type +hi def link sambaSection Statement +hi def link sambaMacro PreProc +hi def link sambaComment Comment +hi def link sambaContinue Operator +hi def link sambaBoolean Constant + +let b:current_syntax = "samba" + +" vim: ts=8 diff --git a/runtime/syntax/sas.vim b/runtime/syntax/sas.vim new file mode 100644 index 0000000..fad6066 --- /dev/null +++ b/runtime/syntax/sas.vim @@ -0,0 +1,265 @@ +" Vim syntax file +" Language: SAS +" Maintainer: Zhen-Huan Hu +" Original Maintainer: James Kidd +" Version: 3.0.0 +" Last Change: Aug 26, 2017 +" +" 2017 Mar 7 +" +" Upgrade version number to 3.0. Improvements include: +" - Improve sync speed +" - Largely enhance precision +" - Update keywords in the latest SAS (as of Mar 2017) +" - Add syntaxes for date/time constants +" - Add syntax for data lines +" - Add (back) syntax for TODO in comments +" +" 2017 Feb 9 +" +" Add syntax folding +" +" 2016 Oct 10 +" +" Add highlighting for functions +" +" 2016 Sep 14 +" +" Change the implementation of syntaxing +" macro function names so that macro parameters same +" as SAS keywords won't be highlighted +" (Thank Joug Raw for the suggestion) +" Add section highlighting: +" - Use /** and **/ to define a section +" - It functions the same as a comment but +" with different highlighting +" +" 2016 Jun 14 +" +" Major changes so upgrade version number to 2.0 +" Overhaul the entire script (again). Improvements include: +" - Higher precision +" - Faster synchronization +" - Separate color for control statements +" - Highlight hash and java objects +" - Highlight macro variables in double quoted strings +" - Update all syntaxes based on SAS 9.4 +" - Add complete SAS/GRAPH and SAS/STAT procedure syntaxes +" - Add Proc TEMPLATE and GTL syntaxes +" - Add complete DS2 syntaxes +" - Add basic IML syntaxes +" - Many other improvements and bug fixes +" Drop support for VIM version < 600 + +if version < 600 + syntax clear +elseif exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore + +" Basic SAS syntaxes +syn keyword sasOperator and eq ge gt in le lt ne not of or +syn keyword sasReserved _all_ _automatic_ _char_ _character_ _data_ _infile_ _last_ _n_ _name_ _null_ _num_ _numeric_ _temporary_ _user_ _webout_ +" Strings +syn region sasString start=+'+ skip=+''+ end=+'+ contains=@Spell +syn region sasString start=+"+ skip=+""+ end=+"+ contains=sasMacroVariable,@Spell +" Constants +syn match sasNumber /\v<\d+%(\.\d+)=%(>|e[\-+]=\d+>)/ display +syn match sasDateTime /\v(['"])\d{2}%(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d{2}%(\d{2})=:\d{2}:\d{2}%(:\d{2})=%(am|pm)\1dt>/ display +syn match sasDateTime /\v(['"])\d{2}%(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d{2}%(\d{2})=\1d>/ display +syn match sasDateTime /\v(['"])\d{2}:\d{2}%(:\d{2})=%(am|pm)\1t>/ display +" Comments +syn keyword sasTodo todo tbd fixme contained +syn region sasComment start='/\*' end='\*/' contains=sasTodo +syn region sasComment start='\v%(^|;)\s*\zs\%=\*' end=';'me=s-1 contains=sasTodo +syn region sasSectLbl matchgroup=sasSectLblEnds start='/\*\*\s*' end='\s*\*\*/' concealends +" Macros +syn match sasMacroVariable '\v\&+\w+%(\.\w+)=' display +syn match sasMacroReserved '\v\%%(abort|by|copy|display|do|else|end|global|goto|if|include|input|let|list|local|macro|mend|put|return|run|symdel|syscall|sysexec|syslput|sysrput|then|to|until|window|while)>' display +syn region sasMacroFunction matchgroup=sasMacroFunctionName start='\v\%\w+\ze\(' end=')'he=s-1 contains=@sasBasicSyntax,sasMacroFunction +syn region sasMacroFunction matchgroup=sasMacroFunctionName start='\v\%q=sysfunc\ze\(' end=')'he=s-1 contains=@sasBasicSyntax,sasMacroFunction,sasDataStepFunction +" Syntax cluster for basic SAS syntaxes +syn cluster sasBasicSyntax contains=sasOperator,sasReserved,sasNumber,sasDateTime,sasString,sasComment,sasMacroReserved,sasMacroFunction,sasMacroVariable,sasSectLbl + +" Formats +syn match sasFormat '\v\$\w+\.' display contained +syn match sasFormat '\v<\w+\.%(\d+>)=' display contained +syn region sasFormatContext start='.' end=';'me=s-1 contained contains=@sasBasicSyntax,sasFormat + +" Define global statements that can be accessed out of data step or procedures +syn keyword sasGlobalStatementKeyword catname dm endsas filename footnote footnote1 footnote2 footnote3 footnote4 footnote5 footnote6 footnote7 footnote8 footnote9 footnote10 missing libname lock ods options page quit resetline run sasfile skip sysecho title title1 title2 title3 title4 title5 title6 title7 title8 title9 title10 contained +syn keyword sasGlobalStatementODSKeyword chtml csvall docbook document escapechar epub epub2 epub3 exclude excel graphics html html3 html5 htmlcss imode listing markup output package path pcl pdf preferences phtml powerpoint printer proclabel proctitle ps results rtf select show tagsets trace usegopt verify wml contained +syn match sasGlobalStatement '\v%(^|;)\s*\zs\h\w*>' display transparent contains=sasGlobalStatementKeyword +syn match sasGlobalStatement '\v%(^|;)\s*\zsods>' display transparent contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty + +" Data step statements, 9.4 +syn keyword sasDataStepFunctionName abs addr addrlong airy allcomb allperm anyalnum anyalpha anycntrl anydigit anyfirst anygraph anylower anyname anyprint anypunct anyspace anyupper anyxdigit arcos arcosh arsin arsinh artanh atan atan2 attrc attrn band beta betainv blackclprc blackptprc blkshclprc blkshptprc blshift bnot bor brshift bxor byte cat catq cats catt catx cdf ceil ceilz cexist char choosec choosen cinv close cmiss cnonct coalesce coalescec collate comb compare compbl compfuzz compged complev compound compress constant convx convxp cos cosh cot count countc countw csc css cumipmt cumprinc curobs cv daccdb daccdbsl daccsl daccsyd dacctab dairy datdif date datejul datepart datetime day dclose dcreate depdb depdbsl depsl depsyd deptab dequote deviance dhms dif digamma dim dinfo divide dnum dopen doptname doptnum dosubl dread dropnote dsname dsncatlgd dur durp effrate envlen erf erfc euclid exist exp fact fappend fclose fcol fcopy fdelete fetch fetchobs fexist fget fileexist filename fileref finance find findc findw finfo finv fipname fipnamel fipstate first floor floorz fmtinfo fnonct fnote fopen foptname foptnum fpoint fpos fput fread frewind frlen fsep fuzz fwrite gaminv gamma garkhclprc garkhptprc gcd geodist geomean geomeanz getoption getvarc getvarn graycode harmean harmeanz hbound hms holiday holidayck holidaycount holidayname holidaynx holidayny holidaytest hour htmldecode htmlencode ibessel ifc ifn index indexc indexw input inputc inputn int intcindex intck intcycle intfit intfmt intget intindex intnx intrr intseas intshift inttest intz iorcmsg ipmt iqr irr jbessel juldate juldate7 kurtosis lag largest lbound lcm lcomb left length lengthc lengthm lengthn lexcomb lexcombi lexperk lexperm lfact lgamma libname libref log log1px log10 log2 logbeta logcdf logistic logpdf logsdf lowcase lperm lpnorm mad margrclprc margrptprc max md5 mdy mean median min minute missing mod modexist module modulec modulen modz month mopen mort msplint mvalid contained +syn keyword sasDataStepFunctionName n netpv nliteral nmiss nomrate normal notalnum notalpha notcntrl notdigit note notfirst notgraph notlower notname notprint notpunct notspace notupper notxdigit npv nvalid nwkdom open ordinal pathname pctl pdf peek peekc peekclong peeklong perm pmt point poisson ppmt probbeta probbnml probbnrm probchi probf probgam probhypr probit probmc probnegb probnorm probt propcase prxchange prxmatch prxparen prxparse prxposn ptrlongadd put putc putn pvp qtr quantile quote ranbin rancau rand ranexp rangam range rank rannor ranpoi rantbl rantri ranuni rename repeat resolve reverse rewind right rms round rounde roundz saving savings scan sdf sec second sha256 sha256hex sha256hmachex sign sin sinh skewness sleep smallest soapweb soapwebmeta soapwipservice soapwipsrs soapws soapwsmeta soundex spedis sqrt squantile std stderr stfips stname stnamel strip subpad substr substrn sum sumabs symexist symget symglobl symlocal sysexist sysget sysmsg sysparm sysprocessid sysprocessname sysprod sysrc system tan tanh time timepart timevalue tinv tnonct today translate transtrn tranwrd trigamma trim trimn trunc tso typeof tzoneid tzonename tzoneoff tzones2u tzoneu2s uniform upcase urldecode urlencode uss uuidgen var varfmt varinfmt varlabel varlen varname varnum varray varrayx vartype verify vformat vformatd vformatdx vformatn vformatnx vformatw vformatwx vformatx vinarray vinarrayx vinformat vinformatd vinformatdx vinformatn vinformatnx vinformatw vinformatwx vinformatx vlabel vlabelx vlength vlengthx vname vnamex vtype vtypex vvalue vvaluex week weekday whichc whichn wto year yieldp yrdif yyq zipcity zipcitydistance zipfips zipname zipnamel zipstate contained +syn keyword sasDataStepCallRoutineName allcomb allcombi allperm cats catt catx compcost execute graycode is8601_convert label lexcomb lexcombi lexperk lexperm logistic missing module poke pokelong prxchange prxdebug prxfree prxnext prxposn prxsubstr ranbin rancau rancomb ranexp rangam rannor ranperk ranperm ranpoi rantbl rantri ranuni scan set sleep softmax sortc sortn stdize streaminit symput symputx system tanh tso vname vnext wto contained +syn region sasDataStepFunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasDataStepFunction +syn region sasDataStepFunctionFormatContext start='(' end=')' contained contains=@sasBasicSyntax,sasDataStepFunction,sasFormat +syn match sasDataStepFunction '\v<\w+\ze\(' contained contains=sasDataStepFunctionName,sasDataStepCallRoutineName nextgroup=sasDataStepFunctionContext +syn match sasDataStepFunction '\v%(input|put)\ze\(' contained contains=sasDataStepFunctionName nextgroup=sasDataStepFunctionFormatContext +syn keyword sasDataStepHashMethodName add check clear definedata definedone definekey delete do_over equals find find_next find_prev first has_next has_prev last next output prev ref remove removedup replace replacedup reset_dup setcur sum sumdup contained +syn region sasDataStepHashMethodContext start='(' end=')' contained contains=@sasBasicSyntax,sasDataStepFunction +syn match sasDataStepHashMethod '\v\.\w+\ze\(' contained contains=sasDataStepHashMethodName nextgroup=sasDataStepHashMethodContext +syn keyword sasDataStepHashAttributeName item_size num_items contained +syn match sasDataStepHashAttribute '\v\.\w+>\ze\_[^(]' display contained contains=sasDataStepHashAttributeName +syn keyword sasDataStepControl continue do end go goto if leave link otherwise over return select to until when while contained +syn keyword sasDataStepControl else then contained nextgroup=sasDataStepStatementKeyword skipwhite skipnl skipempty +syn keyword sasDataStepHashOperator _new_ contained +syn keyword sasDataStepStatementKeyword abort array attrib by call cards cards4 datalines datalines4 dcl declare delete describe display drop error execute file format infile informat input keep label length lines lines4 list lostcard merge modify output put putlog redirect remove rename replace retain set stop update where window contained +syn keyword sasDataStepStatementHashKeyword hash hiter javaobj contained +syn match sasDataStepStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasDataStepStatementKeyword,sasGlobalStatementKeyword +syn match sasDataStepStatement '\v%(^|;)\s*\zs%(dcl|declare)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataStepStatementHashKeyword skipwhite skipnl skipempty +syn match sasDataStepStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn match sasDataStepStatement '\v%(^|;)\s*\zs%(format|informat|input|put)>' display contained contains=sasDataStepStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty +syn match sasDataStepStatement '\v%(^|;)\s*\zs%(cards|datalines|lines)4=\s*;' display contained contains=sasDataStepStatementKeyword nextgroup=sasDataLine skipwhite skipnl skipempty +syn region sasDataLine start='^' end='^\s*;'me=s-1 contained +syn region sasDataStep matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsdata>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,@sasDataStepSyntax +syn cluster sasDataStepSyntax contains=sasDataStepFunction,sasDataStepHashOperator,sasDataStepHashAttribute,sasDataStepHashMethod,sasDataStepControl,sasDataStepStatement + +" Procedures, base SAS, 9.4 +syn keyword sasProcStatementKeyword abort age append array attrib audit block break by calid cdfplot change checkbox class classlev column compute contents copy create datarow dbencoding define delete deletefunc deletesubr delimiter device dialog dur endcomp exact exchange exclude explore fin fmtlib fontfile fontpath format formats freq function getnames guessingrows hbar hdfs histogram holidur holifin holistart holivar id idlabel informat inset invalue item key keylabel keyword label line link listfunc listsubr mapmiss mapreduce mean menu messages meta modify opentype outargs outdur outfin output outstart pageby partial picture pie pig plot ppplot printer probplot profile prompter qqplot radiobox ranks rbreak rbutton rebuild record remove rename repair report roptions save select selection separator source star start statistics struct submenu subroutine sum sumby table tables test text trantab truetype type1 types value var vbar ways weight where with write contained +syn match sasProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasProcStatementKeyword,sasGlobalStatementKeyword +syn match sasProcStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn match sasProcStatement '\v%(^|;)\s*\zs%(format|informat)>' display contained contains=sasProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty +syn region sasProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc%(\s+\h\w*)=>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasProcStatement +syn region sasProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(catalog|chart|datasets|document|plot)>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasProcStatement + +" Procedures, SAS/GRAPH, 9.4 +syn keyword sasGraphProcStatementKeyword add area axis bar block bubble2 byline cc ccopy cdef cdelete chart cmap choro copy delete device dial donut exclude flow format fs goptions gout grid group hbar hbar3d hbullet hslider htrafficlight id igout label legend list modify move nobyline note pattern pie pie3d plot plot2 preview prism quit rename replay select scatter speedometer star surface symbol tc tcopy tdef tdelete template tile toggle treplay vbar vbar3d vtrafficlight vbullet vslider where contained +syn match sasGraphProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasGraphProcStatementKeyword,sasGlobalStatementKeyword +syn match sasGraphProcStatement '\v%(^|;)\s*\zsformat>' display contained contains=sasGraphProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty +syn region sasGraphProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(g3d|g3grid|ganno|gcontour|gdevice|geocode|gfont|ginside|goptions|gproject|greduce|gremove|mapimport)>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasGraphProcStatement +syn region sasGraphProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(gareabar|gbarline|gchart|gkpi|gmap|gplot|gradar|greplay|gslide|gtile)>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasGraphProcStatement + +" Procedures, SAS/STAT, 14.1 +syn keyword sasAnalyticalProcStatementKeyword absorb add array assess baseline bayes beginnodata bivar bootstrap bounds by cdfplot cells class cluster code compute condition contrast control coordinates copy cosan cov covtest coxreg der design determ deviance direct directions domain effect effectplot effpart em endnodata equality estimate exact exactoptions factor factors fcs filter fitindex format freq fwdlink gender grid group grow hazardratio height hyperprior id impjoint inset insetgroup invar invlink ippplot lincon lineqs lismod lmtests location logistic loglin lpredplot lsmeans lsmestimate manova matings matrix mcmc mean means missmodel mnar model modelaverage modeleffects monotone mstruct mtest multreg name nlincon nloptions oddsratio onecorr onesamplefreq onesamplemeans onewayanova outfiles output paired pairedfreq pairedmeans parameters parent parms partial partition path pathdiagram pcov performance plot population poststrata power preddist predict predpplot priors process probmodel profile prune pvar ram random ratio reference refit refmodel renameparm repeated replicate repweights response restore restrict retain reweight ridge rmsstd roc roccontrast rules samplesize samplingunit seed size scale score selection show simtests simulate slice std stderr store strata structeq supplementary table tables test testclass testfreq testfunc testid time transform treatments trend twosamplefreq twosamplemeans towsamplesurvival twosamplewilcoxon uds units univar var variance varnames weight where with zeromodel contained +syn match sasAnalyticalProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasAnalyticalProcStatementKeyword,sasGlobalStatementKeyword +syn match sasAnalyticalProcStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn match sasAnalyticalProcStatement '\v%(^|;)\s*\zsformat>' display contained contains=sasAnalyticalProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty +syn region sasAnalyticalProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(aceclus|adaptivereg|bchoice|boxplot|calis|cancorr|candisc|cluster|corresp|discrim|distance|factor|fastclus|fmm|freq|gam|gampl|gee|genmod|glimmix|glmmod|glmpower|glmselect|hpcandisc|hpfmm|hpgenselect|hplmixed|hplogistic|hpmixed|hpnlmod|hppls|hpprincomp|hpquantselect|hpreg|hpsplit|iclifetest|icphreg|inbreed|irt|kde|krige2d|lattice|lifereg|lifetest|loess|logistic|mcmc|mds|mi|mianalyze|mixed|modeclus|multtest|nested|nlin|nlmixed|npar1way|orthoreg|phreg|plm|pls|power|princomp|prinqual|probit|quantlife|quantreg|quantselect|robustreg|rsreg|score|seqdesign|seqtest|sim2d|simnormal|spp|stdize|stdrate|stepdisc|surveyfreq|surveyimpute|surveylogistic|surveymeans|surveyphreg|surveyreg|surveyselect|tpspline|transreg|tree|ttest|varclus|varcomp|variogram)>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepControl,sasDataStepFunction,sasAnalyticalProcStatement +syn region sasAnalyticalProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(anova|arima|catmod|factex|glm|model|optex|plan|reg)>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepControl,sasDataStepFunction,sasAnalyticalProcStatement + +" Procedures, ODS graphics, 9.4 +syn keyword sasODSGraphicsProcStatementKeyword band block bubble by colaxis compare dattrvar density dot dropline dynamic ellipse ellipseparm format fringe gradlegend hbar hbarbasic hbarparm hbox heatmap heatmapparm highlow histogram hline inset keylegend label lineparm loess matrix needle parent panelby pbspline plot polygon refline reg rowaxis scatter series spline step style styleattrs symbolchar symbolimage text vbar vbarbasic vbarparm vbox vector vline waterfall where xaxis x2axis yaxis y2axis yaxistable contained +syn match sasODSGraphicsProcStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasODSGraphicsProcStatementKeyword,sasGlobalStatementKeyword +syn match sasODSGraphicsProcStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn match sasODSGraphicsProcStatement '\v%(^|;)\s*\zsformat>' display contained contains=sasODSGraphicsProcStatementKeyword nextgroup=sasFormatContext skipwhite skipnl skipempty +syn region sasODSGraphicsProc matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+%(sgdesign|sgpanel|sgplot|sgrender|sgscatter)>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDataStepFunction,sasODSGraphicsProcStatement + +" Proc TEMPLATE, 9.4 +syn keyword sasProcTemplateClause as into +syn keyword sasProcTemplateStatementKeyword block break cellstyle class close column compute continue define delete delstream do done dynamic edit else end eval flush footer header import iterate link list mvar ndent next nmvar notes open path put putl putlog putq putstream putvars replace set source stop style test text text2 text3 translate trigger unblock unset xdent contained +syn keyword sasProcTemplateStatementComplexKeyword cellvalue column crosstabs event footer header statgraph style table tagset contained +syn keyword sasProcTemplateGTLStatementKeyword axislegend axistable bandplot barchart barchartparm begingraph beginpolygon beginpolyline bihistogram3dparm blockplot boxplot boxplotparm bubbleplot continuouslegend contourplotparm dendrogram discretelegend drawarrow drawimage drawline drawoval drawrectangle drawtext dropline ellipse ellipseparm endgraph endinnermargin endlayout endpolygon endpolyline endsidebar entry entryfootnote entrytitle fringeplot heatmap heatmapparm highlowplot histogram histogramparm innermargin layout legenditem legendtextitems linechart lineparm loessplot mergedlegend modelband needleplot pbsplineplot polygonplot referenceline regressionplot scatterplot seriesplot sidebar stepplot surfaceplotparm symbolchar symbolimage textplot vectorplot waterfallchart contained +syn keyword sasProcTemplateGTLComplexKeyword datalattice datapanel globallegend gridded lattice overlay overlayequated overlay3d region contained +syn match sasProcTemplateStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasProcTemplateStatementKeyword,sasProcTemplateGTLStatementKeyword,sasGlobalStatementKeyword +syn match sasProcTemplateStatement '\v%(^|;)\s*\zsdefine>' display contained contains=sasProcTemplateStatementKeyword nextgroup=sasProcTemplateStatementComplexKeyword skipwhite skipnl skipempty +syn match sasProcTemplateStatement '\v%(^|;)\s*\zslayout>' display contained contains=sasProcTemplateGTLStatementKeyword nextgroup=sasProcTemplateGTLComplexKeyword skipwhite skipnl skipempty +syn match sasProcTemplateStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn region sasProcTemplate matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+template>' end='\v%(^|;)\s*%(run|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasProcTemplateClause,sasProcTemplateStatement + +" Proc SQL, 9.4 +syn keyword sasProcSQLFunctionName avg count css cv freq max mean median min n nmiss prt range std stderr sum sumwgt t uss var contained +syn region sasProcSQLFunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasProcSQLFunction +syn match sasProcSQLFunction '\v<\w+\ze\(' contained contains=sasProcSQLFunctionName,sasDataStepFunctionName nextgroup=sasProcSQLFunctionContext +syn keyword sasProcSQLClause add asc between by calculated cascade case check connection constraint cross desc distinct drop else end escape except exists foreign from full group having in inner intersect into is join key left libname like modify natural newline notrim null on order outer primary references restrict right separated set then to trimmed union unique user using values when where contained +syn keyword sasProcSQLClause as contained nextgroup=sasProcSQLStatementKeyword skipwhite skipnl skipempty +syn keyword sasProcSQLStatementKeyword connect delete disconnect execute insert reset select update validate contained +syn keyword sasProcSQLStatementComplexKeyword alter create describe drop contained nextgroup=sasProcSQLStatementNextKeyword skipwhite skipnl skipempty +syn keyword sasProcSQLStatementNextKeyword index table view contained +syn match sasProcSQLStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasProcSQLStatementKeyword,sasGlobalStatementKeyword +syn match sasProcSQLStatement '\v%(^|;)\s*\zs%(alter|create|describe|drop)>' display contained contains=sasProcSQLStatementComplexKeyword nextgroup=sasProcSQLStatementNextKeyword skipwhite skipnl skipempty +syn match sasProcSQLStatement '\v%(^|;)\s*\zsvalidate>' display contained contains=sasProcSQLStatementKeyword nextgroup=sasProcSQLStatementKeyword,sasProcSQLStatementComplexKeyword skipwhite skipnl skipempty +syn match sasProcSQLStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn region sasProcSQL matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+sql>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasProcSQLFunction,sasProcSQLClause,sasProcSQLStatement + +" SAS/DS2, 9.4 +syn keyword sasDS2FunctionName abs anyalnum anyalpha anycntrl anydigit anyfirst anygraph anylower anyname anyprint anypunct anyspace anyupper anyxdigit arcos arcosh arsin arsinh artanh atan atan2 band beta betainv blackclprc blackptprc blkshclprc blkshptprc blshift bnot bor brshift bxor byte cat cats catt catx ceil ceilz choosec choosen cmp cmpt coalesce coalescec comb compare compbl compfuzz compound compress constant convx convxp cos cosh count countc countw css cumipmt cumprinc cv datdif date datejul datepart datetime day dequote deviance dhms dif digamma dim divide dur durp effrate erf erfc exp fact find findc findw floor floorz fmtinfo fuzz gaminv gamma garkhclprc garkhptprc gcd geodist geomean geomeanz harmean harmeanz hbound hms holiday hour index indexc indexw inputc inputn int intcindex intck intcycle intdt intfit intget intindex intnest intnx intrr intseas intshift inttest intts intz ipmt iqr irr juldate juldate7 kcount kstrcat kstrip kupdate kupdates kurtosis lag largest lbound lcm left length lengthc lengthm lengthn lgamma log logbeta log10 log1px log2 lowcase mad margrclprc margrptprc max md5 mdy mean median min minute missing mod modz month mort n ndims netpv nmiss nomrate notalnum notalpha notcntrl notdigit notfirst notgraph notlower notname notprint notpunct notspace notupper notxdigit npv null nwkdom ordinal pctl perm pmt poisson power ppmt probbeta probbnml probbnrm probchi probdf probf probgam probhypr probit probmc probmed probnegb probnorm probt prxchange prxmatch prxparse prxposn put pvp qtr quote ranbin rancau rand ranexp rangam range rank rannor ranpoi rantbl rantri ranuni repeat reverse right rms round rounde roundz savings scan sec second sha256hex sha256hmachex sign sin sinh skewness sleep smallest sqlexec sqrt std stderr streaminit strip substr substrn sum sumabs tan tanh time timepart timevalue tinv to_date to_double to_time to_timestamp today translate transtrn tranwrd trigamma trim trimn trunc uniform upcase uss uuidgen var verify vformat vinarray vinformat vlabel vlength vname vtype week weekday whichc whichn year yieldp yrdif yyq contained +syn region sasDS2FunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasDS2Function +syn match sasDS2Function '\v<\w+\ze\(' contained contains=sasDS2FunctionName nextgroup=sasDS2FunctionContext +syn keyword sasDS2Control continue data dcl declare do drop else end enddata endpackage endthread from go goto if leave method otherwise package point return select then thread to until when while contained +syn keyword sasDS2StatementKeyword array by forward keep merge output put rename retain set stop vararray varlist contained +syn keyword sasDS2StatementComplexKeyword package thread contained +syn match sasDS2Statement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasDS2StatementKeyword,sasGlobalStatementKeyword +syn match sasDS2Statement '\v%(^|;)\s*\zs%(dcl|declare|drop)>' display contained contains=sasDS2StatementKeyword nextgroup=sasDS2StatementComplexKeyword skipwhite skipnl skipempty +syn match sasDS2Statement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn region sasDS2 matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+ds2>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasDS2Function,sasDS2Control,sasDS2Statement + +" SAS/IML, 14.1 +syn keyword sasIMLFunctionName abs all allcomb allperm any apply armasim bin blankstr block branks bspline btran byte char choose col colvec concat contents convexit corr corr2cov countmiss countn countunique cov cov2corr covlag cshape cusum cuprod cv cvexhull datasets design designf det diag dif dimension distance do duration echelon eigval eigvec element exp expmatrix expandgrid fft forward froot full gasetup geomean ginv hadamard half hankel harmean hdir hermite homogen i ifft insert int inv invupdt isempty isskipped j jroot kurtosis lag length loc log logabsdet mad magic mahalanobis max mean median min mod moduleic modulein name ncol ndx2sub nleng norm normal nrow num opscal orpol parentname palette polyroot prod product pv quartile rancomb randdirichlet randfun randmultinomial randmvt randnormal randwishart ranperk ranperm range rank ranktie rates ratio remove repeat root row rowcat rowcatc rowvec rsubstr sample setdif shape shapecol skewness solve sparse splinev spot sqrsym sqrt sqrvech ssq standard std storage sub2ndx substr sum sweep symsqr t toeplitz trace trisolv type uniform union unique uniqueby value var vecdiag vech xmult xsect yield contained +syn keyword sasIMLCallRoutineName appcort armacov armalik bar box change comport delete eigen execute exportdatasettor exportmatrixtor farmacov farmafit farmalik farmasim fdif gaend gagetmem gagetval gainit gareeval garegen gasetcro gasetmut gasetobj gasetsel gblkvp gblkvpd gclose gdelete gdraw gdrawl geneig ggrid ginclude gopen gpie gpiexy gpoint gpoly gport gportpop gportstk gscale gscript gset gshow gsorth gstart gstop gstrlen gtext gvtext gwindow gxaxis gyaxis heatmapcont heatmapdisc histogram importdatasetfromr importmatrixfromr ipf itsolver kalcvf kalcvs kaldff kaldfs lav lcp lms lp lpsolve lts lupdt marg maxqform mcd milpsolve modulei mve nlpcg nlpdd nlpfdd nlpfea nlphqn nlplm nlpnms nlpnra nlpnrr nlpqn nlpqua nlptr ode odsgraph ortvec pgraf push qntl qr quad queue randgen randseed rdodt rupdt rename rupdt rzlind scatter seq seqscale seqshift seqscale seqshift series solvelin sort sortndx sound spline splinec svd tabulate tpspline tpsplnev tsbaysea tsdecomp tsmlocar tsmlomar tsmulmar tspears tspred tsroot tstvcar tsunimar valset varmacov varmalik varmasim vnormal vtsroot wavft wavget wavift wavprint wavthrsh contained +syn region sasIMLFunctionContext start='(' end=')' contained contains=@sasBasicSyntax,sasIMLFunction +syn match sasIMLFunction '\v<\w+\ze\(' contained contains=sasIMLFunctionName,sasDataStepFunction nextgroup=sasIMLFunctionContext +syn keyword sasIMLControl abort by do else end finish goto if link pause quit resume return run start stop then to until while contained +syn keyword sasIMLStatementKeyword append call close closefile create delete display edit file find force free index infile input list load mattrib print purge read remove replace reset save setin setout show sort store summary use window contained +syn match sasIMLStatement '\v%(^|;)\s*\zs\h\w*>' display contained contains=sasIMLStatementKeyword,sasGlobalStatementKeyword +syn match sasIMLStatement '\v%(^|;)\s*\zsods>' display contained contains=sasGlobalStatementKeyword nextgroup=sasGlobalStatementODSKeyword skipwhite skipnl skipempty +syn region sasIML matchgroup=sasSectionKeyword start='\v%(^|;)\s*\zsproc\s+iml>' end='\v%(^|;)\s*%(quit|data|proc|endsas)>'me=s-1 fold contains=@sasBasicSyntax,sasIMLFunction,sasIMLControl,sasIMLStatement + +" Macro definition +syn region sasMacro start='\v\%macro>' end='\v\%mend>' fold keepend contains=@sasBasicSyntax,@sasDataStepSyntax,sasDataStep,sasProc,sasODSGraphicsProc,sasGraphProc,sasAnalyticalProc,sasProcTemplate,sasProcSQL,sasDS2,sasIML + +" Define default highlighting +hi def link sasComment Comment +hi def link sasTodo Delimiter +hi def link sasSectLbl Title +hi def link sasSectLblEnds Comment +hi def link sasNumber Number +hi def link sasDateTime Constant +hi def link sasString String +hi def link sasDataStepControl Keyword +hi def link sasProcTemplateClause Keyword +hi def link sasProcSQLClause Keyword +hi def link sasDS2Control Keyword +hi def link sasIMLControl Keyword +hi def link sasOperator Operator +hi def link sasGlobalStatementKeyword Statement +hi def link sasGlobalStatementODSKeyword Statement +hi def link sasSectionKeyword Statement +hi def link sasDataStepFunctionName Function +hi def link sasDataStepCallRoutineName Function +hi def link sasDataStepStatementKeyword Statement +hi def link sasDataStepStatementHashKeyword Statement +hi def link sasDataStepHashOperator Operator +hi def link sasDataStepHashMethodName Function +hi def link sasDataStepHashAttributeName Identifier +hi def link sasProcStatementKeyword Statement +hi def link sasODSGraphicsProcStatementKeyword Statement +hi def link sasGraphProcStatementKeyword Statement +hi def link sasAnalyticalProcStatementKeyword Statement +hi def link sasProcTemplateStatementKeyword Statement +hi def link sasProcTemplateStatementComplexKeyword Statement +hi def link sasProcTemplateGTLStatementKeyword Statement +hi def link sasProcTemplateGTLComplexKeyword Statement +hi def link sasProcSQLFunctionName Function +hi def link sasProcSQLStatementKeyword Statement +hi def link sasProcSQLStatementComplexKeyword Statement +hi def link sasProcSQLStatementNextKeyword Statement +hi def link sasDS2FunctionName Function +hi def link sasDS2StatementKeyword Statement +hi def link sasIMLFunctionName Function +hi def link sasIMLCallRoutineName Function +hi def link sasIMLStatementKeyword Statement +hi def link sasMacroReserved PreProc +hi def link sasMacroVariable Define +hi def link sasMacroFunctionName Define +hi def link sasDataLine SpecialChar +hi def link sasFormat SpecialChar +hi def link sasReserved Special + +" Syncronize from beginning to keep large blocks from losing +" syntax coloring while moving through code. +syn sync fromstart + +let b:current_syntax = "sas" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/sass.vim b/runtime/syntax/sass.vim new file mode 100644 index 0000000..8f41aba --- /dev/null +++ b/runtime/syntax/sass.vim @@ -0,0 +1,106 @@ +" Vim syntax file +" Language: Sass +" Maintainer: Tim Pope +" Filenames: *.sass +" Last Change: 2022 Mar 15 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/css.vim + +syn case ignore + +syn cluster sassCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp +syn cluster sassCssAttributes contains=css.*Attr,sassEndOfLineComment,scssComment,cssValue.*,cssColor,cssURL,sassDefault,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp + +syn region sassDefinition matchgroup=cssBraces start="{" end="}" contains=TOP + +syn match sassProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=sassCssAttribute contained containedin=sassDefinition +syn match sassProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute +syn match sassProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute +syn match sassCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@sassCssAttributes,sassVariable,sassFunction,sassInterpolation +syn match sassFlag "!\%(default\|global\|optional\)\>" contained +syn match sassVariable "$[[:alnum:]_-]\+" +syn match sassVariableAssignment "\%([!$][[:alnum:]_-]\+\s*\)\@<=\%(||\)\==" nextgroup=sassCssAttribute skipwhite +syn match sassVariableAssignment "\%([!$][[:alnum:]_-]\+\s*\)\@<=:" nextgroup=sassCssAttribute skipwhite + +syn match sassFunction "\<\%(rgb\|rgba\|red\|green\|blue\|mix\)\>(\@=" contained +syn match sassFunction "\<\%(hsl\|hsla\|hue\|saturation\|lightness\|adjust-hue\|lighten\|darken\|saturate\|desaturate\|grayscale\|complement\)\>(\@=" contained +syn match sassFunction "\<\%(alpha\|opacity\|rgba\|opacify\|fade-in\|transparentize\|fade-out\)\>(\@=" contained +syn match sassFunction "\<\%(unquote\|quote\)\>(\@=" contained +syn match sassFunction "\<\%(percentage\|round\|ceil\|floor\|abs\)\>(\@=" contained +syn match sassFunction "\<\%(type-of\|unit\|unitless\|comparable\)\>(\@=" contained + +syn region sassInterpolation matchgroup=sassInterpolationDelimiter start="#{" end="}" contains=@sassCssAttributes,sassVariable,sassFunction containedin=cssStringQ,cssStringQQ,cssPseudoClass,sassProperty + +syn match sassMixinName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute +syn match sassMixin "^=" nextgroup=sassMixinName skipwhite +syn match sassMixin "\%([{};]\s*\|^\s*\)\@<=@mixin" nextgroup=sassMixinName skipwhite +syn match sassMixing "^\s\+\zs+" nextgroup=sassMixinName +syn match sassMixing "\%([{};]\s*\|^\s*\)\@<=@include" nextgroup=sassMixinName skipwhite +syn match sassExtend "\%([{};]\s*\|^\s*\)\@<=@extend" + +syn match sassFunctionName "[[:alnum:]_-]\+" contained nextgroup=sassCssAttribute +syn match sassFunctionDecl "\%([{};]\s*\|^\s*\)\@<=@function" nextgroup=sassFunctionName skipwhite +syn match sassReturn "\%([{};]\s*\|^\s*\)\@<=@return" + +syn match sassEscape "^\s*\zs\\" +syn match sassIdChar "#[[:alnum:]_-]\@=" nextgroup=sassId +syn match sassId "[[:alnum:]_-]\+" contained +syn match sassClassChar "\.[[:alnum:]_-]\@=" nextgroup=sassClass +syn match sassPlaceholder "\%([{};]\s*\|^\s*\)\@<=%" nextgroup=sassClass +syn match sassClass "[[:alnum:]_-]\+" contained +syn match sassAmpersand "&" + +" TODO: Attribute namespaces +" TODO: Arithmetic (including strings and concatenation) + +syn region sassMediaQuery matchgroup=sassMedia start="@media" end="[{};]\@=\|$" contains=sassMediaOperators +syn region sassKeyframe matchgroup=cssAtKeyword start=/@\(-[a-z]\+-\)\=keyframes\>/ end=";\|$" contains=cssVendor,cssComment nextgroup=cssDefinition +syn keyword sassMediaOperators and not only contained +syn region sassCharset start="@charset" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType +syn region sassInclude start="@import" end=";\|$" contains=scssComment,cssStringQ,cssStringQQ,cssURL,cssUnicodeEscape,cssMediaType +syn region sassDebugLine end=";\|$" matchgroup=sassDebug start="@debug\>" contains=@sassCssAttributes,sassVariable,sassFunction +syn region sassWarnLine end=";\|$" matchgroup=sassWarn start="@warn\>" contains=@sassCssAttributes,sassVariable,sassFunction +syn region sassControlLine matchgroup=sassControl start="@\%(if\|else\%(\s\+if\)\=\|while\|for\|each\)\>" end="[{};]\@=\|$" contains=sassFor,@sassCssAttributes,sassVariable,sassFunction +syn keyword sassFor from to through in contained + +syn keyword sassTodo FIXME NOTE TODO OPTIMIZE XXX contained +syn region sassComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=sassTodo,@Spell +syn region sassCssComment start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=sassTodo,@Spell +syn match sassEndOfLineComment "//.*" contains=sassComment,sassTodo,@Spell + +hi def link sassEndOfLineComment sassComment +hi def link sassCssComment sassComment +hi def link sassComment Comment +hi def link sassFlag cssImportant +hi def link sassVariable Identifier +hi def link sassFunction Function +hi def link sassMixing PreProc +hi def link sassMixin PreProc +hi def link sassPlaceholder sassClassChar +hi def link sassExtend PreProc +hi def link sassFunctionDecl PreProc +hi def link sassReturn PreProc +hi def link sassTodo Todo +hi def link sassCharset PreProc +hi def link sassMedia PreProc +hi def link sassMediaOperators PreProc +hi def link sassInclude Include +hi def link sassDebug sassControl +hi def link sassWarn sassControl +hi def link sassControl PreProc +hi def link sassFor PreProc +hi def link sassEscape Special +hi def link sassIdChar Special +hi def link sassClassChar Special +hi def link sassInterpolationDelimiter Delimiter +hi def link sassAmpersand Character +hi def link sassId Identifier +hi def link sassClass Type + +let b:current_syntax = "sass" + +" vim:set sw=2: diff --git a/runtime/syntax/sather.vim b/runtime/syntax/sather.vim new file mode 100644 index 0000000..de8bdad --- /dev/null +++ b/runtime/syntax/sather.vim @@ -0,0 +1,92 @@ +" Vim syntax file +" Language: Sather/pSather +" Maintainer: Claudio Fleiner +" URL: http://www.fleiner.com/vim/syntax/sather.vim +" Last Change: 2003 May 11 + +" Sather is a OO-language developped at the International Computer Science +" Institute (ICSI) in Berkeley, CA. pSather is a parallel extension to Sather. +" Homepage: http://www.icsi.berkeley.edu/~sather +" Sather files use .sa as suffix + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" keyword definitions +syn keyword satherExternal extern +syn keyword satherBranch break continue +syn keyword satherLabel when then +syn keyword satherConditional if else elsif end case typecase assert with +syn match satherConditional "near$" +syn match satherConditional "far$" +syn match satherConditional "near *[^(]"he=e-1 +syn match satherConditional "far *[^(]"he=e-1 +syn keyword satherSynchronize lock guard sync +syn keyword satherRepeat loop parloop do +syn match satherRepeat "while!" +syn match satherRepeat "break!" +syn match satherRepeat "until!" +syn keyword satherBoolValue true false +syn keyword satherValue self here cluster +syn keyword satherOperator new "== != & ^ | && || +syn keyword satherOperator and or not +syn match satherOperator "[#!]" +syn match satherOperator ":-" +syn keyword satherType void attr where +syn match satherType "near *("he=e-1 +syn match satherType "far *("he=e-1 +syn keyword satherStatement return +syn keyword satherStorageClass static const +syn keyword satherExceptions try raise catch +syn keyword satherMethodDecl is pre post +syn keyword satherClassDecl abstract value class include +syn keyword satherScopeDecl public private readonly + + +syn match satherSpecial contained "\\\d\d\d\|\\." +syn region satherString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=satherSpecial +syn match satherCharacter "'[^\\]'" +syn match satherSpecialCharacter "'\\.'" +syn match satherNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>" +syn match satherCommentSkip contained "^\s*\*\($\|\s\+\)" +syn region satherComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+$\|"+ contains=satherSpecial +syn match satherComment "--.*" contains=satherComment2String,satherCharacter,satherNumber + + +syn sync ccomment satherComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link satherBranch satherStatement +hi def link satherLabel satherStatement +hi def link satherConditional satherStatement +hi def link satherSynchronize satherStatement +hi def link satherRepeat satherStatement +hi def link satherExceptions satherStatement +hi def link satherStorageClass satherDeclarative +hi def link satherMethodDecl satherDeclarative +hi def link satherClassDecl satherDeclarative +hi def link satherScopeDecl satherDeclarative +hi def link satherBoolValue satherValue +hi def link satherSpecial satherValue +hi def link satherString satherValue +hi def link satherCharacter satherValue +hi def link satherSpecialCharacter satherValue +hi def link satherNumber satherValue +hi def link satherStatement Statement +hi def link satherOperator Statement +hi def link satherComment Comment +hi def link satherType Type +hi def link satherValue String +hi def link satherString String +hi def link satherSpecial String +hi def link satherCharacter String +hi def link satherDeclarative Type +hi def link satherExternal PreCondit + +let b:current_syntax = "sather" + +" vim: ts=8 diff --git a/runtime/syntax/sbt.vim b/runtime/syntax/sbt.vim new file mode 100644 index 0000000..cbf73be --- /dev/null +++ b/runtime/syntax/sbt.vim @@ -0,0 +1,32 @@ +" Vim syntax file +" Language: sbt +" Maintainer: Steven Dobay +" Last Change: 2017.04.30 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/scala.vim + +syn region sbtString start="\"[^"]" skip="\\\"" end="\"" contains=sbtStringEscape +syn match sbtStringEscape "\\u[0-9a-fA-F]\{4}" contained +syn match sbtStringEscape "\\[nrfvb\\\"]" contained + +syn match sbtIdentitifer "^\S\+\ze\s*\(:=\|++=\|+=\|<<=\|<+=\)" +syn match sbtBeginningSeq "^[Ss]eq\>" + +syn match sbtSpecial "\(:=\|++=\|+=\|<<=\|<+=\)" + +syn match sbtLineComment "//.*" +syn region sbtComment start="/\*" end="\*/" +syn region sbtDocComment start="/\*\*" end="\*/" keepend + +hi link sbtString String +hi link sbtIdentitifer Keyword +hi link sbtBeginningSeq Keyword +hi link sbtSpecial Special +hi link sbtComment Comment +hi link sbtLineComment Comment +hi link sbtDocComment Comment + diff --git a/runtime/syntax/scala.vim b/runtime/syntax/scala.vim new file mode 100644 index 0000000..cc098ce --- /dev/null +++ b/runtime/syntax/scala.vim @@ -0,0 +1,233 @@ +" Vim syntax file +" Language: Scala +" Maintainer: Derek Wyatt +" URL: https://github.com/derekwyatt/vim-scala +" License: Same as Vim +" Last Change: 23 January 2022 +" ---------------------------------------------------------------------------- + +if !exists('main_syntax') + " quit when a syntax file was already loaded + if exists("b:current_syntax") + finish + endif + let main_syntax = 'scala' +endif + +scriptencoding utf-8 + +let b:current_syntax = "scala" + +" Allows for embedding, see #59; main_syntax convention instead? Refactor TOP +" +" The @Spell here is a weird hack, it means *exclude* if the first group is +" TOP. Otherwise we get spelling errors highlighted on code elements that +" match scalaBlock, even with `syn spell notoplevel`. +function! s:ContainedGroup() + try + silent syn list @scala + return '@scala,@NoSpell' + catch /E392/ + return 'TOP,@Spell' + endtry +endfunction + +unlet! b:current_syntax + +syn case match +syn sync minlines=200 maxlines=1000 + +syn keyword scalaKeyword catch do else final finally for forSome if +syn keyword scalaKeyword match return throw try while yield macro +syn keyword scalaKeyword class trait object extends with nextgroup=scalaInstanceDeclaration skipwhite +syn keyword scalaKeyword case nextgroup=scalaKeyword,scalaCaseFollowing skipwhite +syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skipwhite +syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite +hi def link scalaKeyword Keyword + +exe 'syn region scalaBlock start=/{/ end=/}/ contains=' . s:ContainedGroup() . ' fold' + +syn keyword scalaAkkaSpecialWord when goto using startWith initialize onTransition stay become unbecome +hi def link scalaAkkaSpecialWord PreProc + +syn keyword scalatestSpecialWord shouldBe +syn match scalatestShouldDSLA /^\s\+\zsit should/ +syn match scalatestShouldDSLB /\/ +hi def link scalatestSpecialWord PreProc +hi def link scalatestShouldDSLA PreProc +hi def link scalatestShouldDSLB PreProc + +syn match scalaSymbol /'[_A-Za-z0-9$]\+/ +hi def link scalaSymbol Number + +syn match scalaChar /'.'/ +syn match scalaChar /'\\[\\"'ntbrf]'/ contains=scalaEscapedChar +syn match scalaChar /'\\u[A-Fa-f0-9]\{4}'/ contains=scalaUnicodeChar +syn match scalaEscapedChar /\\[\\"'ntbrf]/ +syn match scalaUnicodeChar /\\u[A-Fa-f0-9]\{4}/ +hi def link scalaChar Character +hi def link scalaEscapedChar Special +hi def link scalaUnicodeChar Special + +syn match scalaOperator "||" +syn match scalaOperator "&&" +syn match scalaOperator "|" +syn match scalaOperator "&" +hi def link scalaOperator Special + +syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaPostNameDefinition,scalaVariableDeclarationList +syn match scalaNameDefinition /`[^`]\+`/ contained nextgroup=scalaPostNameDefinition +syn match scalaVariableDeclarationList /\s*,\s*/ contained nextgroup=scalaNameDefinition +syn match scalaPostNameDefinition /\_s*:\_s*/ contained nextgroup=scalaTypeDeclaration +hi def link scalaNameDefinition Function + +syn match scalaInstanceDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaInstanceHash +syn match scalaInstanceDeclaration /`[^`]\+`/ contained +syn match scalaInstanceHash /#/ contained nextgroup=scalaInstanceDeclaration +hi def link scalaInstanceDeclaration Special +hi def link scalaInstanceHash Type + +syn match scalaUnimplemented /???/ +hi def link scalaUnimplemented ERROR + +syn match scalaCapitalWord /\<[A-Z][A-Za-z0-9$]*\>/ +hi def link scalaCapitalWord Special + +" Handle type declarations specially +syn region scalaTypeStatement matchgroup=Keyword start=/\\)\ze/ contained nextgroup=scalaTypeTypeDeclaration contains=scalaTypeTypeExtension skipwhite +syn match scalaTypeTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypeExtension,scalaTypeTypeEquals skipwhite +syn match scalaTypeTypeEquals /=\ze[^>]/ contained nextgroup=scalaTypeTypePostDeclaration skipwhite +syn match scalaTypeTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeTypeDeclaration skipwhite +syn match scalaTypeTypePostDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeTypePostExtension skipwhite +syn match scalaTypeTypePostExtension /\%(⇒\|=>\|<:\|:>\|=:=\|::\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeTypePostDeclaration skipwhite +hi def link scalaTypeTypeDeclaration Type +hi def link scalaTypeTypeExtension Keyword +hi def link scalaTypeTypePostDeclaration Special +hi def link scalaTypeTypePostExtension Keyword + +syn match scalaTypeDeclaration /(/ contained nextgroup=scalaTypeExtension contains=scalaRoundBrackets skipwhite +syn match scalaTypeDeclaration /\%(⇒\|=>\)\ze/ contained nextgroup=scalaTypeDeclaration contains=scalaTypeExtension skipwhite +syn match scalaTypeDeclaration /\<[_\.A-Za-z0-9$]\+\>/ contained nextgroup=scalaTypeExtension skipwhite +syn match scalaTypeExtension /)\?\_s*\zs\%(⇒\|=>\|<:\|:>\|=:=\|::\|#\)/ contained contains=scalaTypeOperator nextgroup=scalaTypeDeclaration skipwhite +hi def link scalaTypeDeclaration Type +hi def link scalaTypeExtension Keyword +hi def link scalaTypePostExtension Keyword + +syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$\s]:\_s*\)\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration contains=scalaRoundBrackets +syn match scalaTypeAnnotation /)\_s*:\_s*\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration +hi clear scalaTypeAnnotation + +syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained contains=scalaCapitalWord +syn match scalaCaseFollowing /`[^`]\+`/ contained contains=scalaCapitalWord +hi def link scalaCaseFollowing Special + +syn keyword scalaKeywordModifier abstract override final lazy implicit private protected sealed null super +syn keyword scalaSpecialFunction implicitly require +hi def link scalaKeywordModifier Function +hi def link scalaSpecialFunction Function + +syn keyword scalaSpecial this true false ne eq +syn keyword scalaSpecial new nextgroup=scalaInstanceDeclaration skipwhite +syn match scalaSpecial "\%(=>\|⇒\|<-\|←\|->\|→\)" +syn match scalaSpecial /`[^`]\+`/ " Backtick literals +hi def link scalaSpecial PreProc + +syn keyword scalaExternal package import +hi def link scalaExternal Include + +syn match scalaStringEmbeddedQuote /\\"/ contained +syn region scalaString start=/"/ end=/"/ contains=scalaStringEmbeddedQuote,scalaEscapedChar,scalaUnicodeChar +hi def link scalaString String +hi def link scalaStringEmbeddedQuote String + +syn region scalaIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar +syn region scalaTripleIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\ze\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar +hi def link scalaIString String +hi def link scalaTripleIString String + +syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained +exe 'syn region scalaInterpolationB matchgroup=scalaInterpolationBoundary start=/\${/ end=/}/ contained contains=' . s:ContainedGroup() +hi def link scalaInterpolation Function +hi clear scalaInterpolationB + +syn region scalaFString matchgroup=scalaInterpolationBrackets start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar +syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained +exe 'syn region scalaFInterpolationB matchgroup=scalaInterpolationBoundary start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=' . s:ContainedGroup() +hi def link scalaFString String +hi def link scalaFInterpolation Function +hi clear scalaFInterpolationB + +syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar +syn region scalaTripleFString matchgroup=scalaInterpolationBrackets start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar +hi def link scalaTripleString String +hi def link scalaTripleFString String + +hi def link scalaInterpolationBrackets Special +hi def link scalaInterpolationBoundary Function + +syn match scalaNumber /\<0[dDfFlL]\?\>/ " Just a bare 0 +syn match scalaNumber /\<[1-9]\d*[dDfFlL]\?\>/ " A multi-digit number - octal numbers with leading 0's are deprecated in Scala +syn match scalaNumber /\<0[xX][0-9a-fA-F]\+[dDfFlL]\?\>/ " Hex number +syn match scalaNumber /\%(\<\d\+\.\d*\|\.\d\+\)\%([eE][-+]\=\d\+\)\=[fFdD]\=/ " exponential notation 1 +syn match scalaNumber /\<\d\+[eE][-+]\=\d\+[fFdD]\=\>/ " exponential notation 2 +syn match scalaNumber /\<\d\+\%([eE][-+]\=\d\+\)\=[fFdD]\>/ " exponential notation 3 +hi def link scalaNumber Number + +syn region scalaRoundBrackets start="(" end=")" skipwhite contained contains=scalaTypeDeclaration,scalaSquareBrackets,scalaRoundBrackets + +syn region scalaSquareBrackets matchgroup=scalaSquareBracketsBrackets start="\[" end="\]" skipwhite nextgroup=scalaTypeExtension contains=scalaTypeDeclaration,scalaSquareBrackets,scalaTypeOperator,scalaTypeAnnotationParameter,scalaString +syn match scalaTypeOperator /[-+=:<>]\+/ contained +syn match scalaTypeAnnotationParameter /@\<[`_A-Za-z0-9$]\+\>/ contained +hi def link scalaSquareBracketsBrackets Type +hi def link scalaTypeOperator Keyword +hi def link scalaTypeAnnotationParameter Function + +syn match scalaShebang "\%^#!.*" display +syn region scalaMultilineComment start="/\*" end="\*/" contains=scalaMultilineComment,scalaDocLinks,scalaParameterAnnotation,scalaCommentAnnotation,scalaTodo,scalaCommentCodeBlock,@Spell keepend fold +syn match scalaCommentAnnotation "@[_A-Za-z0-9$]\+" contained +syn match scalaParameterAnnotation "\%(@tparam\|@param\|@see\)" nextgroup=scalaParamAnnotationValue skipwhite contained +syn match scalaParamAnnotationValue /[.`_A-Za-z0-9$]\+/ contained +syn region scalaDocLinks start="\[\[" end="\]\]" contained +syn region scalaCommentCodeBlock matchgroup=Keyword start="{{{" end="}}}" contained +syn match scalaTodo "\vTODO|FIXME|XXX" contained +hi def link scalaShebang Comment +hi def link scalaMultilineComment Comment +hi def link scalaDocLinks Function +hi def link scalaParameterAnnotation Function +hi def link scalaParamAnnotationValue Keyword +hi def link scalaCommentAnnotation Function +hi def link scalaCommentCodeBlock String +hi def link scalaTodo Todo + +syn match scalaAnnotation /@\<[`_A-Za-z0-9$]\+\>/ +hi def link scalaAnnotation PreProc + +syn match scalaTrailingComment "//.*$" contains=scalaTodo,@Spell +hi def link scalaTrailingComment Comment + +syn match scalaAkkaFSM /goto([^)]*)\_s\+\/ contains=scalaAkkaFSMGotoUsing +syn match scalaAkkaFSM /stay\_s\+using/ +syn match scalaAkkaFSM /^\s*stay\s*$/ +syn match scalaAkkaFSM /when\ze([^)]*)/ +syn match scalaAkkaFSM /startWith\ze([^)]*)/ +syn match scalaAkkaFSM /initialize\ze()/ +syn match scalaAkkaFSM /onTransition/ +syn match scalaAkkaFSM /onTermination/ +syn match scalaAkkaFSM /whenUnhandled/ +syn match scalaAkkaFSMGotoUsing /\/ +syn match scalaAkkaFSMGotoUsing /\/ +hi def link scalaAkkaFSM PreProc +hi def link scalaAkkaFSMGotoUsing PreProc + +let b:current_syntax = 'scala' + +if main_syntax ==# 'scala' + unlet main_syntax +endif + +" vim:set sw=2 sts=2 ts=8 et: diff --git a/runtime/syntax/scdoc.vim b/runtime/syntax/scdoc.vim new file mode 100644 index 0000000..0180f35 --- /dev/null +++ b/runtime/syntax/scdoc.vim @@ -0,0 +1,63 @@ +" Syntax file for scdoc files +" Maintainer: Gregory Anders +" Last Updated: 2022-05-09 +" Upstream: https://github.com/gpanders/vim-scdoc + +if exists('b:current_syntax') + finish +endif +let b:current_syntax = 'scdoc' + +syntax match scdocFirstLineError "\%^.*$" +syntax match scdocFirstLineValid "\%^\S\+(\d[0-9A-Za-z]*)\%(\s\+\"[^"]*\"\%(\s\+\"[^"]*\"\)\=\)\=$" + +syntax region scdocCommentError start="^;\S" end="$" keepend +syntax region scdocComment start="^; " end="$" keepend + +syntax region scdocHeaderError start="^#\{3,}" end="$" keepend +syntax region scdocHeader start="^#\{1,2}" end="$" keepend + +syntax match scdocIndentError "^[ ]\+" + +syntax match scdocLineBreak "++$" + +syntax region scdocOrderedListItem matchgroup=scdocOrderedListMarker start="^\z(\s*\)\." skip="^\z1 .*$" end="^" contains=scdocBold,scdocUnderline +syntax region scdocListItem matchgroup=scdocListMarker start="^\z(\s*\)-" skip="^\z1 .*$" end="^" contains=scdocBold,scdocUnderline + +" Tables cannot start with a column +syntax match scdocTableError "^:" + +syntax region scdocTable matchgroup=scdocTableEntry start="^[\[|\]][\[\-\]<=>]" end="^$" contains=scdocTableEntry,scdocTableError,scdocTableContinuation,scdocBold,scdocUnderline,scdocPre +syntax match scdocTableError "^.*$" contained +syntax match scdocTableContinuation "^ \+\S\+" contained +syntax match scdocTableEntry "^[|:][\[\-\]<=> ]" contained +syntax match scdocTableError "^[|:][\[\-\]<=> ]\S.*$" contained + +syntax region scdocBold concealends matchgroup=scdocBoldDelimiter start="\\\@" +syntax region scdocPre matchgroup=scdocPreDelimiter start="^\t*```" end="^\t*```" + +syntax sync minlines=50 + +hi default link scdocFirstLineValid Comment +hi default link scdocComment Comment +hi default link scdocHeader Title +hi default link scdocOrderedListMarker Statement +hi default link scdocListMarker scdocOrderedListMarker +hi default link scdocLineBreak Special +hi default link scdocTableSpecifier Statement +hi default link scdocTableEntry Statement + +hi default link scdocFirstLineError Error +hi default link scdocCommentError Error +hi default link scdocHeaderError Error +hi default link scdocIndentError Error +hi default link scdocTableError Error +hi default link scdocTableError Error + +hi default link scdocPreDelimiter Delimiter + +hi default scdocBold term=bold cterm=bold gui=bold +hi default scdocUnderline term=underline cterm=underline gui=underline +hi default link scdocBoldDelimiter scdocBold +hi default link scdocUnderlineDelimiter scdocUnderline diff --git a/runtime/syntax/scheme.vim b/runtime/syntax/scheme.vim new file mode 100644 index 0000000..c4454fc --- /dev/null +++ b/runtime/syntax/scheme.vim @@ -0,0 +1,467 @@ +" Vim syntax file +" Language: Scheme (R7RS) +" Last Change: 2021-01-03 +" Author: Evan Hanson +" Maintainer: Evan Hanson +" Previous Author: Dirk van Deun +" Previous Maintainer: Sergey Khorev +" Repository: https://git.foldling.org/vim-scheme.git +" URL: https://foldling.org/vim/syntax/scheme.vim + +if exists('b:current_syntax') + finish +endif + +let s:cpo = &cpo +set cpo&vim + +syn spell notoplevel + +syn match schemeParentheses "[^ '`\t\n()\[\]";]\+" +syn match schemeParentheses "[)\]]" + +syn match schemeIdentifier /[^ '`\t\n()\[\]"|;][^ '`\t\n()\[\]"|;]*/ + +syn region schemeQuote matchgroup=schemeData start=/'[`']*/ end=/[ \t\n()\[\]";]/me=e-1 +syn region schemeQuote matchgroup=schemeData start=/'['`]*"/ skip=/\\[\\"]/ end=/"/ +syn region schemeQuote matchgroup=schemeData start=/'['`]*|/ skip=/\\[\\|]/ end=/|/ +syn region schemeQuote matchgroup=schemeData start=/'['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster + +syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*/ end=/[ \t\n()\[\]";]/me=e-1 +syn region schemeQuasiquote matchgroup=schemeData start=/`['`]*#\?(/ end=/)/ contains=ALLBUT,schemeQuote,schemeQuoteForm,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster + +syn region schemeUnquote matchgroup=schemeParentheses start=/,/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster +syn region schemeUnquote matchgroup=schemeParentheses start=/,@/ end=/[ `'\t\n\[\]()";]/me=e-1 contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster +syn region schemeUnquote matchgroup=schemeParentheses start=/,(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster +syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contained contains=ALLBUT,schemeDatumCommentForm,@schemeImportCluster + +syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster +syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster + +syn region schemeString start=/\(\\\)\@/ +syn match schemeNumber /#x[+\-]*[0-9a-fA-F]\+\>/ + +syn match schemeBoolean /#t\(rue\)\?/ +syn match schemeBoolean /#f\(alse\)\?/ + +syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/ +syn match schemeCharacter /#\\x[0-9a-fA-F]\+/ + +syn match schemeComment /;.*$/ contains=@Spell + +syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment,@Spell + +syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster +syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster + +syn region schemeVector matchgroup=schemeData start="#(" end=")" contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster +syn region schemeVector matchgroup=schemeData start="#[fsu]\d\+(" end=")" contains=schemeNumber,schemeComment,schemeDatumComment + +if exists('g:is_chicken') || exists('b:is_chicken') + syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\|import-syntax\|use\|require-extension\)\(-for-syntax\)\?\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment +else + syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment +endif + +syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\)\>" +syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster +syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword + +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*/ end=/[ \t\n()\[\]";]/me=e-1 +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*"/ skip=/\\[\\"]/ end=/"/ +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*|/ skip=/\\[\\|]/ end=/|/ +syn region schemeDatumComment matchgroup=schemeDatumComment start=/#;[ \t\n`']*\(#\([usf]\d\+\)\?\)\?(/ end=/)/ contains=schemeDatumCommentForm +syn region schemeDatumCommentForm start="(" end=")" contained contains=schemeDatumCommentForm + +syn cluster schemeSyntaxCluster contains=schemeFunction,schemeKeyword,schemeSyntax,schemeExtraSyntax,schemeLibrarySyntax,schemeSyntaxSyntax + +syn keyword schemeLibrarySyntax define-library +syn keyword schemeLibrarySyntax export +syn keyword schemeLibrarySyntax include +syn keyword schemeLibrarySyntax include-ci +syn keyword schemeLibrarySyntax include-library-declarations +syn keyword schemeLibrarySyntax library +syn keyword schemeLibrarySyntax cond-expand + +syn keyword schemeSyntaxSyntax define-syntax +syn keyword schemeSyntaxSyntax let-syntax +syn keyword schemeSyntaxSyntax letrec-syntax +syn keyword schemeSyntaxSyntax syntax-rules + +syn keyword schemeSyntax => +syn keyword schemeSyntax and +syn keyword schemeSyntax begin +syn keyword schemeSyntax case +syn keyword schemeSyntax case-lambda +syn keyword schemeSyntax cond +syn keyword schemeSyntax define +syn keyword schemeSyntax define-record-type +syn keyword schemeSyntax define-values +syn keyword schemeSyntax delay +syn keyword schemeSyntax delay-force +syn keyword schemeSyntax do +syn keyword schemeSyntax else +syn keyword schemeSyntax guard +syn keyword schemeSyntax if +syn keyword schemeSyntax lambda +syn keyword schemeSyntax let +syn keyword schemeSyntax let* +syn keyword schemeSyntax let*-values +syn keyword schemeSyntax let-values +syn keyword schemeSyntax letrec +syn keyword schemeSyntax letrec* +syn keyword schemeSyntax or +syn keyword schemeSyntax parameterize +syn keyword schemeSyntax quasiquote +syn keyword schemeSyntax quote +syn keyword schemeSyntax set! +syn keyword schemeSyntax unless +syn keyword schemeSyntax unquote +syn keyword schemeSyntax unquote-splicing +syn keyword schemeSyntax when + +syn keyword schemeFunction * +syn keyword schemeFunction + +syn keyword schemeFunction - +syn keyword schemeFunction / +syn keyword schemeFunction < +syn keyword schemeFunction <= +syn keyword schemeFunction = +syn keyword schemeFunction > +syn keyword schemeFunction >= +syn keyword schemeFunction abs +syn keyword schemeFunction acos +syn keyword schemeFunction acos +syn keyword schemeFunction angle +syn keyword schemeFunction append +syn keyword schemeFunction apply +syn keyword schemeFunction asin +syn keyword schemeFunction assoc +syn keyword schemeFunction assq +syn keyword schemeFunction assv +syn keyword schemeFunction atan +syn keyword schemeFunction binary-port? +syn keyword schemeFunction boolean=? +syn keyword schemeFunction boolean? +syn keyword schemeFunction bytevector +syn keyword schemeFunction bytevector-append +syn keyword schemeFunction bytevector-append +syn keyword schemeFunction bytevector-copy +syn keyword schemeFunction bytevector-copy! +syn keyword schemeFunction bytevector-length +syn keyword schemeFunction bytevector-u8-ref +syn keyword schemeFunction bytevector-u8-set! +syn keyword schemeFunction bytevector? +syn keyword schemeFunction caaaar +syn keyword schemeFunction caaadr +syn keyword schemeFunction caaar +syn keyword schemeFunction caadar +syn keyword schemeFunction caaddr +syn keyword schemeFunction caadr +syn keyword schemeFunction caar +syn keyword schemeFunction cadaar +syn keyword schemeFunction cadadr +syn keyword schemeFunction cadar +syn keyword schemeFunction caddar +syn keyword schemeFunction cadddr +syn keyword schemeFunction caddr +syn keyword schemeFunction cadr +syn keyword schemeFunction call-with-current-continuation +syn keyword schemeFunction call-with-input-file +syn keyword schemeFunction call-with-output-file +syn keyword schemeFunction call-with-port +syn keyword schemeFunction call-with-values +syn keyword schemeFunction call/cc +syn keyword schemeFunction car +syn keyword schemeFunction cdaaar +syn keyword schemeFunction cdaadr +syn keyword schemeFunction cdaar +syn keyword schemeFunction cdadar +syn keyword schemeFunction cdaddr +syn keyword schemeFunction cdadr +syn keyword schemeFunction cdar +syn keyword schemeFunction cddaar +syn keyword schemeFunction cddadr +syn keyword schemeFunction cddar +syn keyword schemeFunction cdddar +syn keyword schemeFunction cddddr +syn keyword schemeFunction cdddr +syn keyword schemeFunction cddr +syn keyword schemeFunction cdr +syn keyword schemeFunction ceiling +syn keyword schemeFunction char->integer +syn keyword schemeFunction char-alphabetic? +syn keyword schemeFunction char-ci<=? +syn keyword schemeFunction char-ci=? +syn keyword schemeFunction char-ci>? +syn keyword schemeFunction char-downcase +syn keyword schemeFunction char-foldcase +syn keyword schemeFunction char-lower-case? +syn keyword schemeFunction char-numeric? +syn keyword schemeFunction char-ready? +syn keyword schemeFunction char-upcase +syn keyword schemeFunction char-upper-case? +syn keyword schemeFunction char-whitespace? +syn keyword schemeFunction char<=? +syn keyword schemeFunction char=? +syn keyword schemeFunction char>? +syn keyword schemeFunction char? +syn keyword schemeFunction close-input-port +syn keyword schemeFunction close-output-port +syn keyword schemeFunction close-port +syn keyword schemeFunction command-line +syn keyword schemeFunction complex? +syn keyword schemeFunction cons +syn keyword schemeFunction cos +syn keyword schemeFunction current-error-port +syn keyword schemeFunction current-input-port +syn keyword schemeFunction current-jiffy +syn keyword schemeFunction current-output-port +syn keyword schemeFunction current-second +syn keyword schemeFunction delete-file +syn keyword schemeFunction denominator +syn keyword schemeFunction digit-value +syn keyword schemeFunction display +syn keyword schemeFunction dynamic-wind +syn keyword schemeFunction emergency-exit +syn keyword schemeFunction environment +syn keyword schemeFunction eof-object +syn keyword schemeFunction eof-object? +syn keyword schemeFunction eq? +syn keyword schemeFunction equal? +syn keyword schemeFunction eqv? +syn keyword schemeFunction error +syn keyword schemeFunction error-object-irritants +syn keyword schemeFunction error-object-message +syn keyword schemeFunction error-object? +syn keyword schemeFunction eval +syn keyword schemeFunction even? +syn keyword schemeFunction exact +syn keyword schemeFunction exact->inexact +syn keyword schemeFunction exact-integer-sqrt +syn keyword schemeFunction exact-integer? +syn keyword schemeFunction exact? +syn keyword schemeFunction exit +syn keyword schemeFunction exp +syn keyword schemeFunction expt +syn keyword schemeFunction features +syn keyword schemeFunction file-error? +syn keyword schemeFunction file-exists? +syn keyword schemeFunction finite? +syn keyword schemeFunction floor +syn keyword schemeFunction floor-quotient +syn keyword schemeFunction floor-remainder +syn keyword schemeFunction floor/ +syn keyword schemeFunction flush-output-port +syn keyword schemeFunction for-each +syn keyword schemeFunction force +syn keyword schemeFunction gcd +syn keyword schemeFunction get-environment-variable +syn keyword schemeFunction get-environment-variables +syn keyword schemeFunction get-output-bytevector +syn keyword schemeFunction get-output-string +syn keyword schemeFunction imag-part +syn keyword schemeFunction inexact +syn keyword schemeFunction inexact->exact +syn keyword schemeFunction inexact? +syn keyword schemeFunction infinite? +syn keyword schemeFunction input-port-open? +syn keyword schemeFunction input-port? +syn keyword schemeFunction integer->char +syn keyword schemeFunction integer? +syn keyword schemeFunction interaction-environment +syn keyword schemeFunction jiffies-per-second +syn keyword schemeFunction lcm +syn keyword schemeFunction length +syn keyword schemeFunction list +syn keyword schemeFunction list->string +syn keyword schemeFunction list->vector +syn keyword schemeFunction list-copy +syn keyword schemeFunction list-ref +syn keyword schemeFunction list-set! +syn keyword schemeFunction list-tail +syn keyword schemeFunction list? +syn keyword schemeFunction load +syn keyword schemeFunction log +syn keyword schemeFunction magnitude +syn keyword schemeFunction make-bytevector +syn keyword schemeFunction make-list +syn keyword schemeFunction make-parameter +syn keyword schemeFunction make-polar +syn keyword schemeFunction make-promise +syn keyword schemeFunction make-rectangular +syn keyword schemeFunction make-string +syn keyword schemeFunction make-vector +syn keyword schemeFunction map +syn keyword schemeFunction max +syn keyword schemeFunction member +syn keyword schemeFunction memq +syn keyword schemeFunction memv +syn keyword schemeFunction min +syn keyword schemeFunction modulo +syn keyword schemeFunction nan? +syn keyword schemeFunction negative? +syn keyword schemeFunction newline +syn keyword schemeFunction not +syn keyword schemeFunction null-environment +syn keyword schemeFunction null? +syn keyword schemeFunction number->string +syn keyword schemeFunction number? +syn keyword schemeFunction numerator +syn keyword schemeFunction odd? +syn keyword schemeFunction open-binary-input-file +syn keyword schemeFunction open-binary-output-file +syn keyword schemeFunction open-input-bytevector +syn keyword schemeFunction open-input-file +syn keyword schemeFunction open-input-string +syn keyword schemeFunction open-output-bytevector +syn keyword schemeFunction open-output-file +syn keyword schemeFunction open-output-string +syn keyword schemeFunction output-port-open? +syn keyword schemeFunction output-port? +syn keyword schemeFunction pair? +syn keyword schemeFunction peek-char +syn keyword schemeFunction peek-u8 +syn keyword schemeFunction port? +syn keyword schemeFunction positive? +syn keyword schemeFunction procedure? +syn keyword schemeFunction promise? +syn keyword schemeFunction quotient +syn keyword schemeFunction raise +syn keyword schemeFunction raise-continuable +syn keyword schemeFunction rational? +syn keyword schemeFunction rationalize +syn keyword schemeFunction read +syn keyword schemeFunction read-bytevector +syn keyword schemeFunction read-bytevector! +syn keyword schemeFunction read-char +syn keyword schemeFunction read-error? +syn keyword schemeFunction read-line +syn keyword schemeFunction read-string +syn keyword schemeFunction read-u8 +syn keyword schemeFunction real-part +syn keyword schemeFunction real? +syn keyword schemeFunction remainder +syn keyword schemeFunction reverse +syn keyword schemeFunction round +syn keyword schemeFunction scheme-report-environment +syn keyword schemeFunction set-car! +syn keyword schemeFunction set-cdr! +syn keyword schemeFunction sin +syn keyword schemeFunction sqrt +syn keyword schemeFunction square +syn keyword schemeFunction string +syn keyword schemeFunction string->list +syn keyword schemeFunction string->number +syn keyword schemeFunction string->symbol +syn keyword schemeFunction string->utf8 +syn keyword schemeFunction string->vector +syn keyword schemeFunction string-append +syn keyword schemeFunction string-ci<=? +syn keyword schemeFunction string-ci=? +syn keyword schemeFunction string-ci>? +syn keyword schemeFunction string-copy +syn keyword schemeFunction string-copy! +syn keyword schemeFunction string-downcase +syn keyword schemeFunction string-fill! +syn keyword schemeFunction string-foldcase +syn keyword schemeFunction string-for-each +syn keyword schemeFunction string-length +syn keyword schemeFunction string-map +syn keyword schemeFunction string-ref +syn keyword schemeFunction string-set! +syn keyword schemeFunction string-upcase +syn keyword schemeFunction string<=? +syn keyword schemeFunction string=? +syn keyword schemeFunction string>? +syn keyword schemeFunction string? +syn keyword schemeFunction substring +syn keyword schemeFunction symbol->string +syn keyword schemeFunction symbol=? +syn keyword schemeFunction symbol? +syn keyword schemeFunction syntax-error +syn keyword schemeFunction tan +syn keyword schemeFunction textual-port? +syn keyword schemeFunction transcript-off +syn keyword schemeFunction transcript-on +syn keyword schemeFunction truncate +syn keyword schemeFunction truncate-quotient +syn keyword schemeFunction truncate-remainder +syn keyword schemeFunction truncate/ +syn keyword schemeFunction u8-ready? +syn keyword schemeFunction utf8->string +syn keyword schemeFunction values +syn keyword schemeFunction vector +syn keyword schemeFunction vector->list +syn keyword schemeFunction vector->string +syn keyword schemeFunction vector-append +syn keyword schemeFunction vector-copy +syn keyword schemeFunction vector-copy! +syn keyword schemeFunction vector-fill! +syn keyword schemeFunction vector-for-each +syn keyword schemeFunction vector-length +syn keyword schemeFunction vector-map +syn keyword schemeFunction vector-ref +syn keyword schemeFunction vector-set! +syn keyword schemeFunction vector? +syn keyword schemeFunction with-exception-handler +syn keyword schemeFunction with-input-from-file +syn keyword schemeFunction with-output-to-file +syn keyword schemeFunction write +syn keyword schemeFunction write-bytevector +syn keyword schemeFunction write-char +syn keyword schemeFunction write-shared +syn keyword schemeFunction write-simple +syn keyword schemeFunction write-string +syn keyword schemeFunction write-u8 +syn keyword schemeFunction zero? + +hi def link schemeBoolean Boolean +hi def link schemeCharacter Character +hi def link schemeComment Comment +hi def link schemeConstant Constant +hi def link schemeData Delimiter +hi def link schemeDatumComment Comment +hi def link schemeDatumCommentForm Comment +hi def link schemeDelimiter Delimiter +hi def link schemeError Error +hi def link schemeExtraSyntax Underlined +hi def link schemeFunction Function +hi def link schemeIdentifier Normal +hi def link schemeImport PreProc +hi def link schemeImportKeyword PreProc +hi def link schemeKeyword Type +hi def link schemeLibrarySyntax PreProc +hi def link schemeMultilineComment Comment +hi def link schemeNumber Number +hi def link schemeParentheses Normal +hi def link schemeQuasiquote Delimiter +hi def link schemeQuote Delimiter +hi def link schemeSpecialSyntax Special +hi def link schemeString String +hi def link schemeSymbol Normal +hi def link schemeSyntax Statement +hi def link schemeSyntaxSyntax PreProc +hi def link schemeTypeSyntax Type + +let b:did_scheme_syntax = 1 + +if exists('b:is_chicken') || exists('g:is_chicken') + exe 'ru! syntax/chicken.vim' +endif + +unlet b:did_scheme_syntax +let b:current_syntax = 'scheme' +let &cpo = s:cpo +unlet s:cpo diff --git a/runtime/syntax/scilab.vim b/runtime/syntax/scilab.vim new file mode 100644 index 0000000..03e123b --- /dev/null +++ b/runtime/syntax/scilab.vim @@ -0,0 +1,102 @@ +" +" Vim syntax file +" Language : Scilab +" Maintainer : Benoit Hamelin +" File type : *.sci (see :help filetype) +" History +" 28jan2002 benoith 0.1 Creation. Adapted from matlab.vim. +" 04feb2002 benoith 0.5 Fixed bugs with constant highlighting. +" + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + +" Reserved words. +syn keyword scilabStatement abort clear clearglobal end exit global mode predef quit resume +syn keyword scilabStatement return +syn keyword scilabFunction function endfunction funptr +syn keyword scilabPredicate null iserror isglobal +syn keyword scilabKeyword typename +syn keyword scilabDebug debug pause what where whereami whereis who whos +syn keyword scilabRepeat for while break +syn keyword scilabConditional if then else elseif +syn keyword scilabMultiplex select case + +" Reserved constants. +syn match scilabConstant "\(%\)[0-9A-Za-z?!#$]\+" +syn match scilabBoolean "\(%\)[FTft]\>" + +" Delimiters and operators. +syn match scilabDelimiter "[][;,()]" +syn match scilabComparison "[=~]=" +syn match scilabComparison "[<>]=\=" +syn match scilabComparison "<>" +syn match scilabLogical "[&|~]" +syn match scilabAssignment "=" +syn match scilabArithmetic "[+-]" +syn match scilabArithmetic "\.\=[*/\\]\.\=" +syn match scilabArithmetic "\.\=^" +syn match scilabRange ":" +syn match scilabMlistAccess "\." + +syn match scilabLineContinuation "\.\{2,}" + +syn match scilabTransposition "[])a-zA-Z0-9?!_#$.]'"lc=1 + +" Comments and tools. +syn keyword scilabTodo TODO todo FIXME fixme TBD tbd contained +syn match scilabComment "//.*$" contains=scilabTodo + +" Constants. +syn match scilabNumber "[0-9]\+\(\.[0-9]*\)\=\([DEde][+-]\=[0-9]\+\)\=" +syn match scilabNumber "\.[0-9]\+\([DEde][+-]\=[0-9]\+\)\=" +syn region scilabString start=+'+ skip=+''+ end=+'+ oneline +syn region scilabString start=+"+ end=+"+ oneline + +" Identifiers. +syn match scilabIdentifier "\<[A-Za-z?!_#$][A-Za-z0-9?!_#$]*\>" +syn match scilabOverload "%[A-Za-z0-9?!_#$]\+_[A-Za-z0-9?!_#$]\+" + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link scilabStatement Statement +hi def link scilabFunction Keyword +hi def link scilabPredicate Keyword +hi def link scilabKeyword Keyword +hi def link scilabDebug Debug +hi def link scilabRepeat Repeat +hi def link scilabConditional Conditional +hi def link scilabMultiplex Conditional + +hi def link scilabConstant Constant +hi def link scilabBoolean Boolean + +hi def link scilabDelimiter Delimiter +hi def link scilabMlistAccess Delimiter +hi def link scilabComparison Operator +hi def link scilabLogical Operator +hi def link scilabAssignment Operator +hi def link scilabArithmetic Operator +hi def link scilabRange Operator +hi def link scilabLineContinuation Underlined +hi def link scilabTransposition Operator + +hi def link scilabTodo Todo +hi def link scilabComment Comment + +hi def link scilabNumber Number +hi def link scilabString String + +hi def link scilabIdentifier Identifier +hi def link scilabOverload Special + + +let b:current_syntax = "scilab" + +"EOF vim: ts=4 noet tw=100 sw=4 sts=0 diff --git a/runtime/syntax/screen.vim b/runtime/syntax/screen.vim new file mode 100644 index 0000000..d576d29 --- /dev/null +++ b/runtime/syntax/screen.vim @@ -0,0 +1,260 @@ +" Vim syntax file +" Language: screen(1) configuration file +" Maintainer: Dmitri Vereshchagin +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2015-09-24 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match screenEscape '\\.' + +syn keyword screenTodo contained TODO FIXME XXX NOTE + +syn region screenComment display oneline start='#' end='$' + \ contains=screenTodo,@Spell + +syn region screenString display oneline start=+"+ skip=+\\"+ end=+"+ + \ contains=screenVariable,screenSpecial + +syn region screenLiteral display oneline start=+'+ skip=+\\'+ end=+'+ + +syn match screenVariable contained display '$\%(\h\w*\|{\h\w*}\)' + +syn keyword screenBoolean on off + +syn match screenNumbers display '\<\d\+\>' + +syn match screenSpecials contained + \ '%\%([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)' + +syn keyword screenCommands + \ acladd + \ aclchg + \ acldel + \ aclgrp + \ aclumask + \ activity + \ addacl + \ allpartial + \ altscreen + \ at + \ attrcolor + \ autodetach + \ autonuke + \ backtick + \ bce + \ bd_bc_down + \ bd_bc_left + \ bd_bc_right + \ bd_bc_up + \ bd_bell + \ bd_braille_table + \ bd_eightdot + \ bd_info + \ bd_link + \ bd_lower_left + \ bd_lower_right + \ bd_ncrc + \ bd_port + \ bd_scroll + \ bd_skip + \ bd_start_braille + \ bd_type + \ bd_upper_left + \ bd_upper_right + \ bd_width + \ bell + \ bell_msg + \ bind + \ bindkey + \ blanker + \ blankerprg + \ break + \ breaktype + \ bufferfile + \ bumpleft + \ bumpright + \ c1 + \ caption + \ chacl + \ charset + \ chdir + \ cjkwidth + \ clear + \ collapse + \ colon + \ command + \ compacthist + \ console + \ copy + \ crlf + \ debug + \ defautonuke + \ defbce + \ defbreaktype + \ defc1 + \ defcharset + \ defencoding + \ defescape + \ defflow + \ defgr + \ defhstatus + \ defkanji + \ deflog + \ deflogin + \ defmode + \ defmonitor + \ defmousetrack + \ defnonblock + \ defobuflimit + \ defscrollback + \ defshell + \ defsilence + \ defslowpaste + \ defutf8 + \ defwrap + \ defwritelock + \ defzombie + \ detach + \ digraph + \ dinfo + \ displays + \ dumptermcap + \ echo + \ encoding + \ escape + \ eval + \ exec + \ fit + \ flow + \ focus + \ focusminsize + \ gr + \ group + \ hardcopy + \ hardcopy_append + \ hardcopydir + \ hardstatus + \ height + \ help + \ history + \ hstatus + \ idle + \ ignorecase + \ info + \ kanji + \ kill + \ lastmsg + \ layout + \ license + \ lockscreen + \ log + \ logfile + \ login + \ logtstamp + \ mapdefault + \ mapnotnext + \ maptimeout + \ markkeys + \ maxwin + \ meta + \ monitor + \ mousetrack + \ msgminwait + \ msgwait + \ multiuser + \ nethack + \ next + \ nonblock + \ number + \ obuflimit + \ only + \ other + \ partial + \ password + \ paste + \ pastefont + \ pow_break + \ pow_detach + \ pow_detach_msg + \ prev + \ printcmd + \ process + \ quit + \ readbuf + \ readreg + \ redisplay + \ register + \ remove + \ removebuf + \ rendition + \ reset + \ resize + \ screen + \ scrollback + \ select + \ sessionname + \ setenv + \ setsid + \ shell + \ shelltitle + \ silence + \ silencewait + \ sleep + \ slowpaste + \ sorendition + \ sort + \ source + \ split + \ startup_message + \ stuff + \ su + \ suspend + \ term + \ termcap + \ termcapinfo + \ terminfo + \ time + \ title + \ umask + \ unbindall + \ unsetenv + \ utf8 + \ vbell + \ vbell_msg + \ vbellwait + \ verbose + \ version + \ wall + \ width + \ windowlist + \ windows + \ wrap + \ writebuf + \ writelock + \ xoff + \ xon + \ zmodem + \ zombie + \ zombie_timeout + +hi def link screenEscape Special +hi def link screenComment Comment +hi def link screenTodo Todo +hi def link screenString String +hi def link screenLiteral String +hi def link screenVariable Identifier +hi def link screenBoolean Boolean +hi def link screenNumbers Number +hi def link screenSpecials Special +hi def link screenCommands Keyword + +let b:current_syntax = "screen" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/scss.vim b/runtime/syntax/scss.vim new file mode 100644 index 0000000..9d79dc5 --- /dev/null +++ b/runtime/syntax/scss.vim @@ -0,0 +1,25 @@ +" Vim syntax file +" Language: SCSS +" Maintainer: Tim Pope +" Filenames: *.scss +" Last Change: 2019 Dec 05 + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/sass.vim + +syn clear sassComment +syn clear sassCssComment +syn clear sassEndOfLineComment + +syn match scssComment "//.*" contains=sassTodo,@Spell +syn region scssCssComment start="/\*" end="\*/" contains=sassTodo,@Spell + +hi def link scssCssComment scssComment +hi def link scssComment Comment + +let b:current_syntax = "scss" + +" vim:set sw=2: diff --git a/runtime/syntax/sd.vim b/runtime/syntax/sd.vim new file mode 100644 index 0000000..b497ba5 --- /dev/null +++ b/runtime/syntax/sd.vim @@ -0,0 +1,71 @@ +" Language: streaming descriptor file +" Maintainer: Puria Nafisi Azizi (pna) +" License: This file can be redistribued and/or modified under the same terms +" as Vim itself. +" URL: http://netstudent.polito.it/vim_syntax/ +" Last Change: 2012 Feb 03 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" Always ignore case +syn case ignore + +" Comments +syn match sdComment /\s*[#;].*$/ + +" IP Adresses +syn cluster sdIPCluster contains=sdIPError,sdIPSpecial +syn match sdIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained +syn match sdIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained +syn match sdIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@sdIPCluster + +" Statements +syn keyword sdStatement AGGREGATE AUDIO_CHANNELS +syn keyword sdStatement BYTE_PER_PCKT BIT_PER_SAMPLE BITRATE +syn keyword sdStatement CLOCK_RATE CODING_TYPE CREATOR +syn match sdStatement /^\s*CODING_TYPE\>/ nextgroup=sdCoding skipwhite +syn match sdStatement /^\s*ENCODING_NAME\>/ nextgroup=sdEncoding skipwhite +syn keyword sdStatement FILE_NAME FRAME_LEN FRAME_RATE FORCE_FRAME_RATE +syn keyword sdStatement LICENSE +syn match sdStatement /^\s*MEDIA_SOURCE\>/ nextgroup=sdSource skipwhite +syn match sdStatement /^\s*MULTICAST\>/ nextgroup=sdIP skipwhite +syn keyword sdStatement PAYLOAD_TYPE PKT_LEN PRIORITY +syn keyword sdStatement SAMPLE_RATE +syn keyword sdStatement TITLE TWIN +syn keyword sdStatement VERIFY + +" Known Options +syn keyword sdEncoding H26L MPV MP2T MP4V-ES +syn keyword sdCoding FRAME SAMPLE +syn keyword sdSource STORED LIVE + +"Specials +syn keyword sdSpecial TRUE FALSE NULL +syn keyword sdDelimiter STREAM STREAM_END +syn match sdError /^search .\{257,}/ + + +hi def link sdIP Number +hi def link sdHostname Type +hi def link sdEncoding Identifier +hi def link sdCoding Identifier +hi def link sdSource Identifier +hi def link sdComment Comment +hi def link sdIPError Error +hi def link sdError Error +hi def link sdStatement Statement +hi def link sdIPSpecial Special +hi def link sdSpecial Special +hi def link sdDelimiter Delimiter + + +let b:current_syntax = "sd" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/sdc.vim b/runtime/syntax/sdc.vim new file mode 100644 index 0000000..dbfa35e --- /dev/null +++ b/runtime/syntax/sdc.vim @@ -0,0 +1,41 @@ +" Vim syntax file +" Language: SDC - Synopsys Design Constraints +" Maintainer: Maurizio Tranchero - maurizio.tranchero@gmail.com +" Last Change: Thu Mar 25 17:35:16 CET 2009 +" Credits: based on TCL Vim syntax file +" Version: 0.3 + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the TCL syntax to start with +runtime! syntax/tcl.vim + +" SDC-specific keywords +syn keyword sdcCollections foreach_in_collection +syn keyword sdcObjectsQuery get_clocks get_ports +syn keyword sdcObjectsInfo get_point_info get_node_info get_path_info +syn keyword sdcObjectsInfo get_timing_paths set_attribute +syn keyword sdcConstraints set_false_path +syn keyword sdcNonIdealities set_min_delay set_max_delay +syn keyword sdcNonIdealities set_input_delay set_output_delay +syn keyword sdcNonIdealities set_load set_min_capacitance set_max_capacitance +syn keyword sdcCreateOperations create_clock create_timing_netlist update_timing_netlist + +" command flags highlighting +syn match sdcFlags "[[:space:]]-[[:alpha:]_]*\>" + +" Define the default highlighting. +hi def link sdcCollections Repeat +hi def link sdcObjectsInfo Operator +hi def link sdcCreateOperations Operator +hi def link sdcObjectsQuery Operator +hi def link sdcConstraints Operator +hi def link sdcNonIdealities Operator +hi def link sdcFlags Special + +let b:current_syntax = "sdc" + +" vim: ts=8 diff --git a/runtime/syntax/sdl.vim b/runtime/syntax/sdl.vim new file mode 100644 index 0000000..7df38d1 --- /dev/null +++ b/runtime/syntax/sdl.vim @@ -0,0 +1,153 @@ +" Vim syntax file +" Language: SDL +" Maintainer: Michael Piefel +" Last Change: 2 May 2001 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +if !exists("sdl_2000") + syntax case ignore +endif + +" A bunch of useful SDL keywords +syn keyword sdlStatement task else nextstate +syn keyword sdlStatement in out with from interface +syn keyword sdlStatement to via env and use +syn keyword sdlStatement process procedure block system service type +syn keyword sdlStatement endprocess endprocedure endblock endsystem +syn keyword sdlStatement package endpackage connection endconnection +syn keyword sdlStatement channel endchannel connect +syn keyword sdlStatement synonym dcl signal gate timer signallist signalset +syn keyword sdlStatement create output set reset call +syn keyword sdlStatement operators literals +syn keyword sdlStatement active alternative any as atleast constants +syn keyword sdlStatement default endalternative endmacro endoperator +syn keyword sdlStatement endselect endsubstructure external +syn keyword sdlStatement if then fi for import macro macrodefinition +syn keyword sdlStatement macroid mod nameclass nodelay not operator or +syn keyword sdlStatement parent provided referenced rem +syn keyword sdlStatement select spelling substructure xor +syn keyword sdlNewState state endstate +syn keyword sdlInput input start stop return none save priority +syn keyword sdlConditional decision enddecision join +syn keyword sdlVirtual virtual redefined finalized adding inherits +syn keyword sdlExported remote exported export + +if !exists("sdl_no_96") + syn keyword sdlStatement all axioms constant endgenerator endrefinement endservice + syn keyword sdlStatement error fpar generator literal map noequality ordering + syn keyword sdlStatement refinement returns revealed reverse service signalroute + syn keyword sdlStatement view viewed + syn keyword sdlExported imported +endif + +if exists("sdl_2000") + syn keyword sdlStatement abstract aggregation association break choice composition + syn keyword sdlStatement continue endmethod handle method + syn keyword sdlStatement ordered private protected public + syn keyword sdlException exceptionhandler endexceptionhandler onexception + syn keyword sdlException catch new raise + " The same in uppercase + syn keyword sdlStatement TASK ELSE NEXTSTATE + syn keyword sdlStatement IN OUT WITH FROM INTERFACE + syn keyword sdlStatement TO VIA ENV AND USE + syn keyword sdlStatement PROCESS PROCEDURE BLOCK SYSTEM SERVICE TYPE + syn keyword sdlStatement ENDPROCESS ENDPROCEDURE ENDBLOCK ENDSYSTEM + syn keyword sdlStatement PACKAGE ENDPACKAGE CONNECTION ENDCONNECTION + syn keyword sdlStatement CHANNEL ENDCHANNEL CONNECT + syn keyword sdlStatement SYNONYM DCL SIGNAL GATE TIMER SIGNALLIST SIGNALSET + syn keyword sdlStatement CREATE OUTPUT SET RESET CALL + syn keyword sdlStatement OPERATORS LITERALS + syn keyword sdlStatement ACTIVE ALTERNATIVE ANY AS ATLEAST CONSTANTS + syn keyword sdlStatement DEFAULT ENDALTERNATIVE ENDMACRO ENDOPERATOR + syn keyword sdlStatement ENDSELECT ENDSUBSTRUCTURE EXTERNAL + syn keyword sdlStatement IF THEN FI FOR IMPORT MACRO MACRODEFINITION + syn keyword sdlStatement MACROID MOD NAMECLASS NODELAY NOT OPERATOR OR + syn keyword sdlStatement PARENT PROVIDED REFERENCED REM + syn keyword sdlStatement SELECT SPELLING SUBSTRUCTURE XOR + syn keyword sdlNewState STATE ENDSTATE + syn keyword sdlInput INPUT START STOP RETURN NONE SAVE PRIORITY + syn keyword sdlConditional DECISION ENDDECISION JOIN + syn keyword sdlVirtual VIRTUAL REDEFINED FINALIZED ADDING INHERITS + syn keyword sdlExported REMOTE EXPORTED EXPORT + + syn keyword sdlStatement ABSTRACT AGGREGATION ASSOCIATION BREAK CHOICE COMPOSITION + syn keyword sdlStatement CONTINUE ENDMETHOD ENDOBJECT ENDVALUE HANDLE METHOD OBJECT + syn keyword sdlStatement ORDERED PRIVATE PROTECTED PUBLIC + syn keyword sdlException EXCEPTIONHANDLER ENDEXCEPTIONHANDLER ONEXCEPTION + syn keyword sdlException CATCH NEW RAISE +endif + +" String and Character contstants +" Highlight special characters (those which have a backslash) differently +syn match sdlSpecial contained "\\\d\d\d\|\\." +syn region sdlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial +syn region sdlString start=+'+ skip=+''+ end=+'+ + +" No, this doesn't happen, I just wanted to scare you. SDL really allows all +" these characters for identifiers; fortunately, keywords manage without them. +" set iskeyword=@,48-57,_,192-214,216-246,248-255,- + +syn region sdlComment start="/\*" end="\*/" +syn region sdlComment start="comment" end=";" +syn region sdlComment start="--" end="--\|$" +syn match sdlCommentError "\*/" + +syn keyword sdlOperator present +syn keyword sdlType integer real natural duration pid boolean time +syn keyword sdlType character charstring ia5string +syn keyword sdlType self now sender offspring +syn keyword sdlStructure asntype endasntype syntype endsyntype struct + +if !exists("sdl_no_96") + syn keyword sdlStructure newtype endnewtype +endif + +if exists("sdl_2000") + syn keyword sdlStructure object endobject value endvalue + " The same in uppercase + syn keyword sdlStructure OBJECT ENDOBJECT VALUE ENDVALUE + syn keyword sdlOperator PRESENT + syn keyword sdlType INTEGER NATURAL DURATION PID BOOLEAN TIME + syn keyword sdlType CHARSTRING IA5STRING + syn keyword sdlType SELF NOW SENDER OFFSPRING + syn keyword sdlStructure ASNTYPE ENDASNTYPE SYNTYPE ENDSYNTYPE STRUCT +endif + +" ASN.1 in SDL +syn case match +syn keyword sdlType SET OF BOOLEAN INTEGER REAL BIT OCTET +syn keyword sdlType SEQUENCE CHOICE +syn keyword sdlType STRING OBJECT IDENTIFIER NULL + +syn sync ccomment sdlComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +command -nargs=+ Hi hi def + +hi def link sdlException Label +hi def link sdlConditional sdlStatement +hi def link sdlVirtual sdlStatement +hi def link sdlExported sdlFlag +hi def link sdlCommentError sdlError +hi def link sdlOperator Operator +hi def link sdlStructure sdlType +Hi sdlStatement term=bold ctermfg=4 guifg=Blue +Hi sdlFlag term=bold ctermfg=4 guifg=Blue gui=italic +Hi sdlNewState term=italic ctermfg=2 guifg=Magenta gui=underline +Hi sdlInput term=bold guifg=Red +hi def link sdlType Type +hi def link sdlString String +hi def link sdlComment Comment +hi def link sdlSpecial Special +hi def link sdlError Error + +delcommand Hi + +let b:current_syntax = "sdl" + +" vim: ts=8 diff --git a/runtime/syntax/sed.vim b/runtime/syntax/sed.vim new file mode 100644 index 0000000..d1f631d --- /dev/null +++ b/runtime/syntax/sed.vim @@ -0,0 +1,123 @@ +" Vim syntax file +" Language: sed +" Maintainer: Doug Kearns +" Previous Maintainer: Haakon Riiser +" Contributor: Jack Haden-Enneking +" Last Change: 2022 Oct 15 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword sedTodo contained TODO FIXME XXX + +syn match sedError "\S" + +syn match sedWhitespace "\s\+" contained +syn match sedSemicolon ";" +syn match sedAddress "[[:digit:]$]" +syn match sedAddress "\d\+\~\d\+" +syn region sedAddress matchgroup=Special start="[{,;]\s*/\%(\\/\)\="lc=1 skip="[^\\]\%(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta +syn region sedAddress matchgroup=Special start="^\s*/\%(\\/\)\=" skip="[^\\]\%(\\\\\)*\\/" end="/I\=" contains=sedTab,sedRegexpMeta +syn match sedFunction "[dDgGhHlnNpPqQx=]\s*\%($\|;\)" contains=sedSemicolon,sedWhitespace +if exists("g:sed_dialect") && g:sed_dialect ==? "bsd" + syn match sedComment "^\s*#.*$" contains=sedTodo +else + syn match sedFunction "[dDgGhHlnNpPqQx=]\s*\ze#" contains=sedSemicolon,sedWhitespace + syn match sedComment "#.*$" contains=sedTodo +endif +syn match sedLabel ":[^;]*" +syn match sedLineCont "^\%(\\\\\)*\\$" contained +syn match sedLineCont "[^\\]\%(\\\\\)*\\$"ms=e contained +syn match sedSpecial "[{},!]" + +" continue to silently support the old name +let s:highlight_tabs = v:false +if exists("g:highlight_sedtabs") || get(g:, "sed_highlight_tabs", 0) + let s:highlight_tabs = v:true + syn match sedTab "\t" contained +endif + +" Append/Change/Insert +syn region sedACI matchgroup=sedFunction start="[aci]\\$" matchgroup=NONE end="^.*$" contains=sedLineCont,sedTab + +syn region sedBranch matchgroup=sedFunction start="[bt]" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace +syn region sedRW matchgroup=sedFunction start="[rw]" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace + +" Substitution/transform with various delimiters +syn region sedFlagWrite matchgroup=sedFlag start="w" matchgroup=sedSemicolon end=";\|$" contains=sedWhitespace contained +syn match sedFlag "[[:digit:]gpI]*w\=" contains=sedFlagWrite contained +syn match sedRegexpMeta "[.*^$]" contained +syn match sedRegexpMeta "\\." contains=sedTab contained +syn match sedRegexpMeta "\[.\{-}\]" contains=sedTab contained +syn match sedRegexpMeta "\\{\d\*,\d*\\}" contained +syn match sedRegexpMeta "\\%(.\{-}\\)" contains=sedTab contained +syn match sedReplaceMeta "&\|\\\%($\|.\)" contains=sedTab contained + +" Metacharacters: $ * . \ ^ [ ~ +" @ is used as delimiter and treated on its own below +let s:at = char2nr("@") +let s:i = char2nr(" ") " ASCII: 32, EBCDIC: 64 +if has("ebcdic") + let s:last = 255 +else + let s:last = 126 +endif +let s:metacharacters = '$*.\^[~' +while s:i <= s:last + let s:delimiter = escape(nr2char(s:i), s:metacharacters) + if s:i != s:at + exe 'syn region sedAddress matchgroup=Special start=@\\'.s:delimiter.'\%(\\'.s:delimiter.'\)\=@ skip=@[^\\]\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'[IM]\=@ contains=sedTab' + exe 'syn region sedRegexp'.s:i 'matchgroup=Special start=@'.s:delimiter.'\%(\\\\\|\\'.s:delimiter.'\)*@ skip=@[^\\'.s:delimiter.']\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'@me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement'.s:i + exe 'syn region sedReplacement'.s:i 'matchgroup=Special start=@'.s:delimiter.'\%(\\\\\|\\'.s:delimiter.'\)*@ skip=@[^\\'.s:delimiter.']\%(\\\\\)*\\'.s:delimiter.'@ end=@'.s:delimiter.'@ contains=sedTab,sedReplaceMeta keepend contained nextgroup=@sedFlags' + endif + let s:i = s:i + 1 +endwhile +syn region sedAddress matchgroup=Special start=+\\@\%(\\@\)\=+ skip=+[^\\]\%(\\\\\)*\\@+ end=+@I\=+ contains=sedTab,sedRegexpMeta +syn region sedRegexp64 matchgroup=Special start=+@\%(\\\\\|\\@\)*+ skip=+[^\\@]\%(\\\\\)*\\@+ end=+@+me=e-1 contains=sedTab,sedRegexpMeta keepend contained nextgroup=sedReplacement64 +syn region sedReplacement64 matchgroup=Special start=+@\%(\\\\\|\\@\)*+ skip=+[^\\@]\%(\\\\\)*\\@+ end=+@+ contains=sedTab,sedReplaceMeta keepend contained nextgroup=sedFlag + +" Since the syntax for the substitution command is very similar to the +" syntax for the transform command, I use the same pattern matching +" for both commands. There is one problem -- the transform command +" (y) does not allow any flags. To save memory, I ignore this problem. +syn match sedST "[sy]" nextgroup=sedRegexp\d\+ + + +hi def link sedAddress Macro +hi def link sedACI NONE +hi def link sedBranch Label +hi def link sedComment Comment +hi def link sedDelete Function +hi def link sedError Error +hi def link sedFlag Type +hi def link sedFlagWrite Constant +hi def link sedFunction Function +hi def link sedLabel Label +hi def link sedLineCont Special +hi def link sedPutHoldspc Function +hi def link sedReplaceMeta Special +hi def link sedRegexpMeta Special +hi def link sedRW Constant +hi def link sedSemicolon Special +hi def link sedST Function +hi def link sedSpecial Special +hi def link sedTodo Todo +hi def link sedWhitespace NONE +if s:highlight_tabs + hi def link sedTab Todo +endif +let s:i = char2nr(" ") " ASCII: 32, EBCDIC: 64 +while s:i <= s:last + exe "hi def link sedRegexp".s:i "Macro" + exe "hi def link sedReplacement".s:i "NONE" + let s:i = s:i + 1 +endwhile + +unlet s:i s:last s:delimiter s:metacharacters s:at +unlet s:highlight_tabs + +let b:current_syntax = "sed" + +" vim: nowrap sw=2 sts=2 ts=8 noet: diff --git a/runtime/syntax/sendpr.vim b/runtime/syntax/sendpr.vim new file mode 100644 index 0000000..2541b95 --- /dev/null +++ b/runtime/syntax/sendpr.vim @@ -0,0 +1,37 @@ +" Vim syntax file +" Language: FreeBSD send-pr file +" Maintainer: Hendrik Scholz +" Last Change: 2022 Jun 14 +" +" http://raisdorf.net/files/misc/send-pr.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match sendprComment /^SEND-PR:/ +" email address +syn match sendprType /<[a-zA-Z0-9\-\_\.]*@[a-zA-Z0-9\-\_\.]*>/ +" ^> lines +syn match sendprString /^>[a-zA-Z\-]*:/ +syn region sendprLabel start="\[" end="\]" +syn match sendprString /^To:/ +syn match sendprString /^From:/ +syn match sendprString /^Reply-To:/ +syn match sendprString /^Cc:/ +syn match sendprString /^X-send-pr-version:/ +syn match sendprString /^X-GNATS-Notify:/ + +hi def link sendprComment Comment +hi def link sendprType Type +hi def link sendprString String +hi def link sendprLabel Label + +let b:current_syntax = 'sendpr' + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/sensors.vim b/runtime/syntax/sensors.vim new file mode 100644 index 0000000..f8bc4c6 --- /dev/null +++ b/runtime/syntax/sensors.vim @@ -0,0 +1,52 @@ +" Vim syntax file +" Language: sensors.conf(5) - libsensors configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword sensorsTodo contained TODO FIXME XXX NOTE + +syn region sensorsComment display oneline start='#' end='$' + \ contains=sensorsTodo,@Spell + + +syn keyword sensorsKeyword bus chip label compute ignore set + +syn region sensorsName display oneline + \ start=+"+ skip=+\\\\\|\\"+ end=+"+ + \ contains=sensorsNameSpecial +syn match sensorsName display '\w\+' + +syn match sensorsNameSpecial display '\\["\\rnt]' + +syn match sensorsLineContinue '\\$' + +syn match sensorsNumber display '\d*.\d\+\>' + +syn match sensorsRealWorld display '@' + +syn match sensorsOperator display '[+*/-]' + +syn match sensorsDelimiter display '[()]' + +hi def link sensorsTodo Todo +hi def link sensorsComment Comment +hi def link sensorsKeyword Keyword +hi def link sensorsName String +hi def link sensorsNameSpecial SpecialChar +hi def link sensorsLineContinue Special +hi def link sensorsNumber Number +hi def link sensorsRealWorld Identifier +hi def link sensorsOperator Normal +hi def link sensorsDelimiter Normal + +let b:current_syntax = "sensors" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/services.vim b/runtime/syntax/services.vim new file mode 100644 index 0000000..94e39ae --- /dev/null +++ b/runtime/syntax/services.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: services(5) - Internet network services list +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match servicesBegin display '^' + \ nextgroup=servicesName,servicesComment + +syn match servicesName contained display '[[:graph:]]\+' + \ nextgroup=servicesPort skipwhite + +syn match servicesPort contained display '\d\+' + \ nextgroup=servicesPPDiv,servicesPPDivDepr + \ skipwhite + +syn match servicesPPDiv contained display '/' + \ nextgroup=servicesProtocol skipwhite + +syn match servicesPPDivDepr contained display ',' + \ nextgroup=servicesProtocol skipwhite + +syn match servicesProtocol contained display '\S\+' + \ nextgroup=servicesAliases,servicesComment + \ skipwhite + +syn match servicesAliases contained display '\S\+' + \ nextgroup=servicesAliases,servicesComment + \ skipwhite + +syn keyword servicesTodo contained TODO FIXME XXX NOTE + +syn region servicesComment display oneline start='#' end='$' + \ contains=servicesTodo,@Spell + +hi def link servicesTodo Todo +hi def link servicesComment Comment +hi def link servicesName Identifier +hi def link servicesPort Number +hi def link servicesPPDiv Delimiter +hi def link servicesPPDivDepr Error +hi def link servicesProtocol Type +hi def link servicesAliases Macro + +let b:current_syntax = "services" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/setserial.vim b/runtime/syntax/setserial.vim new file mode 100644 index 0000000..967fa5f --- /dev/null +++ b/runtime/syntax/setserial.vim @@ -0,0 +1,120 @@ +" Vim syntax file +" Language: setserial(8) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match setserialBegin display '^' + \ nextgroup=setserialDevice,setserialComment + \ skipwhite + +syn match setserialDevice contained display '\%(/[^ \t/]*\)\+' + \ nextgroup=setserialParameter skipwhite + +syn keyword setserialParameter contained port irq baud_base divisor + \ close_delay closing_wait rx_trigger + \ tx_trigger flow_off flow_on rx_timeout + \ nextgroup=setserialNumber skipwhite + +syn keyword setserialParameter contained uart + \ nextgroup=setserialUARTType skipwhite + +syn keyword setserialParameter contained autoconfig auto_irq skip_test + \ spd_hi spd_vhi spd_shi spd_warp spd_cust + \ spd_normal sak fourport session_lockout + \ pgrp_lockout hup_notify split_termios + \ callout_nohup low_latency + \ nextgroup=setserialParameter skipwhite + +syn match setserialParameter contained display + \ '\^\%(auto_irq\|skip_test\|sak\|fourport\)' + \ contains=setserialNegation + \ nextgroup=setserialParameter skipwhite + +syn match setserialParameter contained display + \ '\^\%(session_lockout\|pgrp_lockout\)' + \ contains=setserialNegation + \ nextgroup=setserialParameter skipwhite + +syn match setserialParameter contained display + \ '\^\%(hup_notify\|split_termios\)' + \ contains=setserialNegation + \ nextgroup=setserialParameter skipwhite + +syn match setserialParameter contained display + \ '\^\%(callout_nohup\|low_latency\)' + \ contains=setserialNegation + \ nextgroup=setserialParameter skipwhite + +syn keyword setserialParameter contained set_multiport + \ nextgroup=setserialMultiport skipwhite + +syn match setserialNumber contained display '\<\d\+\>' + \ nextgroup=setserialParameter skipwhite +syn match setserialNumber contained display '0x\x\+' + \ nextgroup=setserialParameter skipwhite + +syn keyword setserialUARTType contained none + +syn match setserialUARTType contained display + \ '8250\|16[4789]50\|16550A\=\|16650\%(V2\)\=' + \ nextgroup=setserialParameter skipwhite + +syn match setserialUARTType contained display '166[59]4' + \ nextgroup=setserialParameter skipwhite + +syn match setserialNegation contained display '\^' + +syn match setserialMultiport contained '\' + \ nextgroup=setserialPort skipwhite + +syn match setserialPort contained display '\<\d\+\>' + \ nextgroup=setserialMask skipwhite +syn match setserialPort contained display '0x\x\+' + \ nextgroup=setserialMask skipwhite + +syn match setserialMask contained '\' + \ nextgroup=setserialBitMask skipwhite + +syn match setserialBitMask contained display '\<\d\+\>' + \ nextgroup=setserialMatch skipwhite +syn match setserialBitMask contained display '0x\x\+' + \ nextgroup=setserialMatch skipwhite + +syn match setserialMatch contained '\' + \ nextgroup=setserialMatchBits skipwhite + +syn match setserialMatchBits contained display '\<\d\+\>' + \ nextgroup=setserialMultiport skipwhite +syn match setserialMatchBits contained display '0x\x\+' + \ nextgroup=setserialMultiport skipwhite + +syn keyword setserialTodo contained TODO FIXME XXX NOTE + +syn region setserialComment display oneline start='^\s*#' end='$' + \ contains=setserialTodo,@Spell + +hi def link setserialTodo Todo +hi def link setserialComment Comment +hi def link setserialDevice Normal +hi def link setserialParameter Identifier +hi def link setserialNumber Number +hi def link setserialUARTType Type +hi def link setserialNegation Operator +hi def link setserialMultiport Type +hi def link setserialPort setserialNumber +hi def link setserialMask Type +hi def link setserialBitMask setserialNumber +hi def link setserialMatch Type +hi def link setserialMatchBits setserialNumber + +let b:current_syntax = "setserial" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/sexplib.vim b/runtime/syntax/sexplib.vim new file mode 100644 index 0000000..55dd3fb --- /dev/null +++ b/runtime/syntax/sexplib.vim @@ -0,0 +1,88 @@ +" Vim syntax file +" Language: S-expressions as used in Sexplib +" Filenames: *.sexp +" Maintainers: Markus Mottl +" URL: https://github.com/ocaml/vim-ocaml +" Last Change: 2020 Dec 31 - Updated header for Vim contribution (MM) +" 2017 Apr 11 - Improved matching of negative numbers (MM) +" 2012 Jun 20 - Fixed a block comment highlighting bug (MM) + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") && b:current_syntax == "sexplib" + finish +endif + +" Sexplib is case sensitive. +syn case match + +" Comments +syn keyword sexplibTodo contained TODO FIXME XXX NOTE +syn region sexplibBlockComment matchgroup=sexplibComment start="#|" matchgroup=sexplibComment end="|#" contains=ALLBUT,sexplibQuotedAtom,sexplibUnquotedAtom,sexplibEncl,sexplibComment +syn match sexplibSexpComment "#;" skipwhite skipempty nextgroup=sexplibQuotedAtomComment,sexplibUnquotedAtomComment,sexplibListComment,sexplibComment +syn region sexplibQuotedAtomComment start=+"+ skip=+\\\\\|\\"+ end=+"+ contained +syn match sexplibUnquotedAtomComment /\([^;()" \t#|]\|#[^;()" \t|]\||[^;()" \t#]\)[^;()" \t]*/ contained +syn region sexplibListComment matchgroup=sexplibComment start="(" matchgroup=sexplibComment end=")" contained contains=ALLBUT,sexplibEncl,sexplibString,sexplibQuotedAtom,sexplibUnquotedAtom,sexplibTodo,sexplibNumber,sexplibFloat +syn match sexplibComment ";.*" contains=sexplibTodo + +" Atoms +syn match sexplibUnquotedAtom /\([^;()" \t#|]\|#[^;()" \t|]\||[^;()" \t#]\)[^;()" \t]*/ +syn region sexplibQuotedAtom start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match sexplibNumber "-\=\<\d\(_\|\d\)*[l|L|n]\?\>" +syn match sexplibNumber "-\=\<0[x|X]\(\x\|_\)\+[l|L|n]\?\>" +syn match sexplibNumber "-\=\<0[o|O]\(\o\|_\)\+[l|L|n]\?\>" +syn match sexplibNumber "-\=\<0[b|B]\([01]\|_\)\+[l|L|n]\?\>" +syn match sexplibFloat "-\=\<\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>" + +" Lists +syn region sexplibEncl transparent matchgroup=sexplibEncl start="(" matchgroup=sexplibEncl end=")" contains=ALLBUT,sexplibParenErr + +" Errors +syn match sexplibUnquotedAtomErr /\([^;()" \t#|]\|#[^;()" \t|]\||[^;()" \t#]\)[^;()" \t]*\(#|\||#\)[^;()" \t]*/ +syn match sexplibParenErr ")" + +" Synchronization +syn sync minlines=50 +syn sync maxlines=500 + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_sexplib_syntax_inits") + if version < 508 + let did_sexplib_syntax_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + endif + + HiLink sexplibParenErr Error + HiLink sexplibUnquotedAtomErr Error + + HiLink sexplibComment Comment + HiLink sexplibSexpComment Comment + HiLink sexplibQuotedAtomComment Include + HiLink sexplibUnquotedAtomComment Comment + HiLink sexplibBlockComment Comment + HiLink sexplibListComment Comment + + HiLink sexplibBoolean Boolean + HiLink sexplibCharacter Character + HiLink sexplibNumber Number + HiLink sexplibFloat Float + HiLink sexplibUnquotedAtom Identifier + HiLink sexplibEncl Identifier + HiLink sexplibQuotedAtom Keyword + + HiLink sexplibTodo Todo + + HiLink sexplibEncl Keyword + + delcommand HiLink +endif + +let b:current_syntax = "sexplib" + +" vim: ts=8 diff --git a/runtime/syntax/sgml.vim b/runtime/syntax/sgml.vim new file mode 100644 index 0000000..ed8fa8c --- /dev/null +++ b/runtime/syntax/sgml.vim @@ -0,0 +1,334 @@ +" Vim syntax file +" Language: SGML +" Maintainer: Johannes Zellner +" Last Change: Tue, 27 Apr 2004 15:05:21 CEST +" Filenames: *.sgml,*.sgm +" $Id: sgml.vim,v 1.1 2004/06/13 17:52:57 vimboss Exp $ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:sgml_cpo_save = &cpo +set cpo&vim + +syn case match + +" mark illegal characters +syn match sgmlError "[<&]" + + +" unicode numbers: +" provide different highlithing for unicode characters +" inside strings and in plain text (character data). +" +" EXAMPLE: +" +" \u4e88 +" +syn match sgmlUnicodeNumberAttr +\\u\x\{4}+ contained contains=sgmlUnicodeSpecifierAttr +syn match sgmlUnicodeSpecifierAttr +\\u+ contained +syn match sgmlUnicodeNumberData +\\u\x\{4}+ contained contains=sgmlUnicodeSpecifierData +syn match sgmlUnicodeSpecifierData +\\u+ contained + + +" strings inside character data or comments +" +syn region sgmlString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=sgmlEntity,sgmlUnicodeNumberAttr display +syn region sgmlString contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=sgmlEntity,sgmlUnicodeNumberAttr display + +" punctuation (within attributes) e.g. +" ^ ^ +syn match sgmlAttribPunct +[:.]+ contained display + + +" no highlighting for sgmlEqual (sgmlEqual has no highlighting group) +syn match sgmlEqual +=+ + + +" attribute, everything before the '=' +" +" PROVIDES: @sgmlAttribHook +" +" EXAMPLE: +" +" +" ^^^^^^^^^^^^^ +" +syn match sgmlAttrib + \ +[^-'"<]\@<=\<[a-zA-Z0-9.:]\+\>\([^'">]\@=\|$\)+ + \ contained + \ contains=sgmlAttribPunct,@sgmlAttribHook + \ display + + +" UNQUOTED value (not including the '=' -- sgmlEqual) +" +" PROVIDES: @sgmlValueHook +" +" EXAMPLE: +" +" +" ^^^^^ +" +syn match sgmlValue + \ +[^"' =/!?<>][^ =/!?<>]*+ + \ contained + \ contains=sgmlEntity,sgmlUnicodeNumberAttr,@sgmlValueHook + \ display + + +" QUOTED value (not including the '=' -- sgmlEqual) +" +" PROVIDES: @sgmlValueHook +" +" EXAMPLE: +" +" +" ^^^^^^^ +" +" ^^^^^^^ +" +syn region sgmlValue contained start=+"+ skip=+\\\\\|\\"+ end=+"+ + \ contains=sgmlEntity,sgmlUnicodeNumberAttr,@sgmlValueHook +syn region sgmlValue contained start=+'+ skip=+\\\\\|\\'+ end=+'+ + \ contains=sgmlEntity,sgmlUnicodeNumberAttr,@sgmlValueHook + + +" value, everything after (and including) the '=' +" no highlighting! +" +" EXAMPLE: +" +" +" ^^^^^^^^^ +" +" ^^^^^^^ +" +syn match sgmlEqualValue + \ +=\s*[^ =/!?<>]\++ + \ contained + \ contains=sgmlEqual,sgmlString,sgmlValue + \ display + + +" start tag +" use matchgroup=sgmlTag to skip over the leading '<' +" see also sgmlEmptyTag below. +" +" PROVIDES: @sgmlTagHook +" +syn region sgmlTag + \ matchgroup=sgmlTag start=+<[^ /!?"']\@=+ + \ matchgroup=sgmlTag end=+>+ + \ contained + \ contains=sgmlError,sgmlAttrib,sgmlEqualValue,@sgmlTagHook + + +" tag content for empty tags. This is the same as sgmlTag +" above, except the `matchgroup=sgmlEndTag for highlighting +" the end '/>' differently. +" +" PROVIDES: @sgmlTagHook +" +syn region sgmlEmptyTag + \ matchgroup=sgmlTag start=+<[^ /!?"']\@=+ + \ matchgroup=sgmlEndTag end=+/>+ + \ contained + \ contains=sgmlError,sgmlAttrib,sgmlEqualValue,@sgmlTagHook + + +" end tag +" highlight everything but not the trailing '>' which +" was already highlighted by the containing sgmlRegion. +" +" PROVIDES: @sgmlTagHook +" (should we provide a separate @sgmlEndTagHook ?) +" +syn match sgmlEndTag + \ +"']\+>+ + \ contained + \ contains=@sgmlTagHook + + +" [-- SGML SPECIFIC --] + +" SGML specific +" tag content for abbreviated regions +" +" PROVIDES: @sgmlTagHook +" +syn region sgmlAbbrTag + \ matchgroup=sgmlTag start=+<[^ /!?"']\@=+ + \ matchgroup=sgmlTag end=+/+ + \ contained + \ contains=sgmlError,sgmlAttrib,sgmlEqualValue,@sgmlTagHook + + +" SGML specific +" just highlight the trailing '/' +syn match sgmlAbbrEndTag +/+ + + +" SGML specific +" abbreviated regions +" +" No highlighting, highlighting is done by contained elements. +" +" PROVIDES: @sgmlRegionHook +" +" EXAMPLE: +" +" "']\+/\_[^/]\+/+ + \ contains=sgmlAbbrTag,sgmlAbbrEndTag,sgmlCdata,sgmlComment,sgmlEntity,sgmlUnicodeNumberData,@sgmlRegionHook + +" [-- END OF SGML SPECIFIC --] + + +" real (non-empty) elements. We cannot do syntax folding +" as in xml, because end tags may be optional in sgml depending +" on the dtd. +" No highlighting, highlighting is done by contained elements. +" +" PROVIDES: @sgmlRegionHook +" +" EXAMPLE: +" +" +" +" +" +" some data +" +" +" SGML specific: +" compared to xmlRegion: +" - removed folding +" - added a single '/'in the start pattern +" +syn region sgmlRegion + \ start=+<\z([^ /!?>"']\+\)\(\(\_[^/>]*[^/!?]>\)\|>\)+ + \ end=++ + \ contains=sgmlTag,sgmlEndTag,sgmlCdata,@sgmlRegionCluster,sgmlComment,sgmlEntity,sgmlUnicodeNumberData,@sgmlRegionHook + \ keepend + \ extend + + +" empty tags. Just a container, no highlighting. +" Compare this with sgmlTag. +" +" EXAMPLE: +" +" +" +" TODO use sgmlEmptyTag instead of sgmlTag +syn match sgmlEmptyRegion + \ +<[^ /!?>"']\(\_[^"'<>]\|"\_[^"]*"\|'\_[^']*'\)*/>+ + \ contains=sgmlEmptyTag + + +" cluster which contains the above two elements +syn cluster sgmlRegionCluster contains=sgmlRegion,sgmlEmptyRegion,sgmlAbbrRegion + + +" &entities; compare with dtd +syn match sgmlEntity "&[^; \t]*;" contains=sgmlEntityPunct +syn match sgmlEntityPunct contained "[&.;]" + + +" The real comments (this implements the comments as defined by sgml, +" but not all sgml pages actually conform to it. Errors are flagged. +syn region sgmlComment start=++ contains=sgmlCommentPart,sgmlString,sgmlCommentError,sgmlTodo +syn keyword sgmlTodo contained TODO FIXME XXX display +syn match sgmlCommentError contained "[^>+ + \ contains=sgmlCdataStart,sgmlCdataEnd,@sgmlCdataHook + \ keepend + \ extend +" using the following line instead leads to corrupt folding at CDATA regions +" syn match sgmlCdata ++ contains=sgmlCdataStart,sgmlCdataEnd,@sgmlCdataHook +syn match sgmlCdataStart ++ contained + + +" Processing instructions +" This allows "?>" inside strings -- good idea? +syn region sgmlProcessing matchgroup=sgmlProcessingDelim start="" contains=sgmlAttrib,sgmlEqualValue + + +" DTD -- we use dtd.vim here +syn region sgmlDocType matchgroup=sgmlDocTypeDecl start="\c" contains=sgmlDocTypeKeyword,sgmlInlineDTD,sgmlString +syn keyword sgmlDocTypeKeyword contained DOCTYPE PUBLIC SYSTEM +syn region sgmlInlineDTD contained start="\[" end="]" contains=@sgmlDTD +syn include @sgmlDTD :p:h/dtd.vim + + +" synchronizing +" TODO !!! to be improved !!! + +syn sync match sgmlSyncDT grouphere sgmlDocType +\_.\(+ + +syn sync match sgmlSync grouphere sgmlRegion +\_.\(<[^ /!?>"']\+\)\@=+ +" syn sync match sgmlSync grouphere sgmlRegion "<[^ /!?>"']*>" +syn sync match sgmlSync groupthere sgmlRegion +"']\+>+ + +syn sync minlines=100 + + +" The default highlighting. +hi def link sgmlTodo Todo +hi def link sgmlTag Function +hi def link sgmlEndTag Identifier +" SGML specific +hi def link sgmlAbbrEndTag Identifier +hi def link sgmlEmptyTag Function +hi def link sgmlEntity Statement +hi def link sgmlEntityPunct Type + +hi def link sgmlAttribPunct Comment +hi def link sgmlAttrib Type + +hi def link sgmlValue String +hi def link sgmlString String +hi def link sgmlComment Comment +hi def link sgmlCommentPart Comment +hi def link sgmlCommentError Error +hi def link sgmlError Error + +hi def link sgmlProcessingDelim Comment +hi def link sgmlProcessing Type + +hi def link sgmlCdata String +hi def link sgmlCdataCdata Statement +hi def link sgmlCdataStart Type +hi def link sgmlCdataEnd Type + +hi def link sgmlDocTypeDecl Function +hi def link sgmlDocTypeKeyword Statement +hi def link sgmlInlineDTD Function +hi def link sgmlUnicodeNumberAttr Number +hi def link sgmlUnicodeSpecifierAttr SpecialChar +hi def link sgmlUnicodeNumberData Number +hi def link sgmlUnicodeSpecifierData SpecialChar + +let b:current_syntax = "sgml" + +let &cpo = s:sgml_cpo_save +unlet s:sgml_cpo_save + +" vim: ts=8 diff --git a/runtime/syntax/sgmldecl.vim b/runtime/syntax/sgmldecl.vim new file mode 100644 index 0000000..6c1cde1 --- /dev/null +++ b/runtime/syntax/sgmldecl.vim @@ -0,0 +1,72 @@ +" Vim syntax file +" Language: SGML (SGML Declaration ) +" Last Change: jueves, 28 de diciembre de 2000, 13:51:44 CLST +" Maintainer: "Daniel A. Molina W." +" You can modify and maintain this file, in other case send comments +" the maintainer email address. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn case ignore + +syn region sgmldeclDeclBlock transparent start=++ +syn region sgmldeclTagBlock transparent start=+<+ end=+>+ + \ contains=ALLBUT, + \ @sgmlTagError,@sgmlErrInTag +syn region sgmldeclComment contained start=+--+ end=+--+ + +syn keyword sgmldeclDeclKeys SGML CHARSET CAPACITY SCOPE SYNTAX + \ FEATURES + +syn keyword sgmldeclTypes BASESET DESCSET DOCUMENT NAMING DELIM + \ NAMES QUANTITY SHUNCHAR DOCTYPE + \ ELEMENT ENTITY ATTLIST NOTATION + \ TYPE + +syn keyword sgmldeclStatem CONTROLS FUNCTION NAMECASE MINIMIZE + \ LINK OTHER APPINFO REF ENTITIES + +syn keyword sgmldeclVariables TOTALCAP GRPCAP ENTCAP DATATAG OMITTAG RANK + \ SIMPLE IMPLICIT EXPLICIT CONCUR SUBDOC FORMAL ATTCAP + \ ATTCHCAP AVGRPCAP ELEMCAP ENTCHCAP IDCAP IDREFCAP + \ SHORTTAG + +syn match sgmldeclNConst contained +[0-9]\++ + +syn region sgmldeclString contained start=+"+ end=+"+ + +syn keyword sgmldeclBool YES NO + +syn keyword sgmldeclSpecial SHORTREF SGMLREF UNUSED NONE GENERAL + \ SEEALSO ANY + +syn sync lines=250 + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link sgmldeclDeclKeys Keyword +hi def link sgmldeclTypes Type +hi def link sgmldeclConst Constant +hi def link sgmldeclNConst Constant +hi def link sgmldeclString String +hi def link sgmldeclDeclBlock Normal +hi def link sgmldeclBool Boolean +hi def link sgmldeclSpecial Special +hi def link sgmldeclComment Comment +hi def link sgmldeclStatem Statement +hi def link sgmldeclVariables Type + + +let b:current_syntax = "sgmldecl" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim:set tw=78 ts=4: diff --git a/runtime/syntax/sgmllnx.vim b/runtime/syntax/sgmllnx.vim new file mode 100644 index 0000000..ccd78f4 --- /dev/null +++ b/runtime/syntax/sgmllnx.vim @@ -0,0 +1,54 @@ +" Vim syntax file +" Language: SGML-linuxdoc (supported by old sgmltools-1.x) +" Maintainer: SungHyun Nam +" Last Change: 2013 May 13 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" tags +syn region sgmllnxEndTag start=++ contains=sgmllnxTagN,sgmllnxTagError +syn region sgmllnxTag start=+<[^/]+ end=+>+ contains=sgmllnxTagN,sgmllnxTagError +syn match sgmllnxTagN contained +<\s*[-a-zA-Z0-9]\++ms=s+1 contains=sgmllnxTagName +syn match sgmllnxTagN contained ++ +syn region sgmllnxDocType start=++ + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link sgmllnxTag2 Function +hi def link sgmllnxTagN2 Function +hi def link sgmllnxTag Special +hi def link sgmllnxEndTag Special +hi def link sgmllnxParen Special +hi def link sgmllnxEntity Type +hi def link sgmllnxDocEnt Type +hi def link sgmllnxTagName Statement +hi def link sgmllnxComment Comment +hi def link sgmllnxSpecial Special +hi def link sgmllnxDocType PreProc +hi def link sgmllnxTagError Error + + +let b:current_syntax = "sgmllnx" + +" vim:set tw=78 ts=8 sts=2 sw=2 noet: diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim new file mode 100644 index 0000000..a83c020 --- /dev/null +++ b/runtime/syntax/sh.vim @@ -0,0 +1,813 @@ +" Vim syntax file +" Language: shell (sh) Korn shell (ksh) bash (sh) +" Maintainer: Charles E. Campbell +" Previous Maintainer: Lennart Schultz +" Last Change: Feb 28, 2023 +" Version: 208 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH +" For options and settings, please use: :help ft-sh-syntax +" This file includes many ideas from Eric Brunet (eric.brunet@ens.fr) and heredoc fixes from Felipe Contreras + +" quit when a syntax file was already loaded {{{1 +if exists("b:current_syntax") + finish +endif + +" If the shell script itself specifies which shell to use, use it +if getline(1) =~ '\' + let b:is_kornshell = 1 +elseif getline(1) =~ '\' + let b:is_bash = 1 +elseif getline(1) =~ '\' + let b:is_dash = 1 +elseif !exists("g:is_kornshell") && !exists("g:is_bash") && !exists("g:is_posix") && !exists("g:is_sh") && !exists("g:is_dash") + " user did not specify which shell to use, and + " the script itself does not specify which shell to use. FYI: /bin/sh is ambiguous. + " Assuming /bin/sh is executable, and if its a link, find out what it links to. + let s:shell = "" + if executable("/bin/sh") + let s:shell = resolve("/bin/sh") + elseif executable("/usr/bin/sh") + let s:shell = resolve("/usr/bin/sh") + endif + if s:shell =~ '\' + let b:is_kornshell= 1 + elseif s:shell =~ '\' + let b:is_bash = 1 + elseif s:shell =~ '\' + let b:is_dash = 1 + endif + unlet s:shell +endif + +" handling /bin/sh with is_kornshell/is_sh {{{1 +" b:is_sh will be set when "#! /bin/sh" is found; +" However, it often is just a masquerade by bash (typically Linux) +" or kornshell (typically workstations with Posix "sh"). +" So, when the user sets "g:is_bash", "g:is_kornshell", +" or "g:is_posix", a b:is_sh is converted into b:is_bash/b:is_kornshell, +" respectively. +if !exists("b:is_kornshell") && !exists("b:is_bash") && !exists("b:is_dash") + if exists("g:is_posix") && !exists("g:is_kornshell") + let g:is_kornshell= g:is_posix + endif + if exists("g:is_kornshell") + let b:is_kornshell= 1 + if exists("b:is_sh") + unlet b:is_sh + endif + elseif exists("g:is_bash") + let b:is_bash= 1 + if exists("b:is_sh") + unlet b:is_sh + endif + elseif exists("g:is_dash") + let b:is_dash= 1 + if exists("b:is_sh") + unlet b:is_sh + endif + else + let b:is_sh= 1 + endif +endif + +" if b:is_dash, set b:is_posix too +if exists("b:is_dash") + let b:is_posix= 1 +endif + +" set up default g:sh_fold_enabled {{{1 +" ================================ +if !exists("g:sh_fold_enabled") + let g:sh_fold_enabled= 0 +elseif g:sh_fold_enabled != 0 && !has("folding") + let g:sh_fold_enabled= 0 + echomsg "Ignoring g:sh_fold_enabled=".g:sh_fold_enabled."; need to re-compile vim for +fold support" +endif +let s:sh_fold_functions= and(g:sh_fold_enabled,1) +let s:sh_fold_heredoc = and(g:sh_fold_enabled,2) +let s:sh_fold_ifdofor = and(g:sh_fold_enabled,4) +if g:sh_fold_enabled && &fdm == "manual" + " Given that the user provided g:sh_fold_enabled + " AND g:sh_fold_enabled is manual (usual default) + " implies a desire for syntax-based folding + setl fdm=syntax +endif + +" set up the syntax-highlighting for iskeyword +if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704 + if !exists("g:sh_syntax_isk") || (exists("g:sh_syntax_isk") && g:sh_syntax_isk) + if exists("b:is_bash") + exe "syn iskeyword ".&iskeyword.",-,:" + else + exe "syn iskeyword ".&iskeyword.",-" + endif + endif +endif + +" Set up folding commands for shell {{{1 +" ================================= +sil! delc ShFoldFunctions +sil! delc ShFoldHereDoc +sil! delc ShFoldIfDoFor +if s:sh_fold_functions + com! -nargs=* ShFoldFunctions fold +else + com! -nargs=* ShFoldFunctions +endif +if s:sh_fold_heredoc + com! -nargs=* ShFoldHereDoc fold +else + com! -nargs=* ShFoldHereDoc +endif +if s:sh_fold_ifdofor + com! -nargs=* ShFoldIfDoFor fold +else + com! -nargs=* ShFoldIfDoFor +endif + +" sh syntax is case sensitive {{{1 +syn case match + +" Clusters: contains=@... clusters {{{1 +"================================== +syn cluster shErrorList contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK +if exists("b:is_kornshell") || exists("b:is_bash") + syn cluster ErrorList add=shDTestError +endif +syn cluster shArithParenList contains=shArithmetic,shArithParen,shCaseEsac,shComment,shDeref,shDo,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shExDoubleQuote,shHereString,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement,shIf,shFor,shFunctionKey,shFunctionOne,shFunctionTwo +syn cluster shArithList contains=@shArithParenList,shParenError +syn cluster shCaseEsacList contains=shCaseStart,shCaseLabel,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange +syn cluster shCaseList contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSubBQ,shComment,shDblBrace,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq +if exists("b:is_kornshell") || exists("b:is_bash") + syn cluster shCaseList add=shForPP,shDblParen +endif +syn cluster shCommandSubList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shComment,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable +syn cluster shCurlyList contains=shNumber,shComma,shDeref,shDerefSimple,shDerefSpecial +" COMBAK: removing shEscape from shDblQuoteList fails ksh04:43 -- Jun 09, 2022: I don't see the problem with ksh04, so am reinstating shEscape +syn cluster shDblQuoteList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shPosnParm,shCtrlSeq,shSpecial,shSpecialDQ +syn cluster shDerefList contains=shDeref,shDerefSimple,shDerefVar,shDerefSpecial,shDerefWordError,shDerefPSR,shDerefPPS +syn cluster shDerefVarList contains=shDerefOffset,shDerefOp,shDerefVarArray,shDerefOpError +syn cluster shEchoList contains=shArithmetic,shCommandSub,shCommandSubBQ,shDeref,shDerefSimple,shEscape,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote +syn cluster shExprList1 contains=shCharClass,shNumber,shOperator,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq +syn cluster shExprList2 contains=@shExprList1,@shCaseList,shTest +syn cluster shFunctionList contains=@shCommandSubList,shCaseEsac,shColon,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq +if exists("b:is_kornshell") || exists("b:is_bash") + syn cluster shFunctionList add=shRepeat,shDblBrace,shDblParen,shForPP + syn cluster shDerefList add=shCommandSubList,shEchoDeref +endif +syn cluster shHereBeginList contains=@shCommandSubList +syn cluster shHereList contains=shBeginHere,shHerePayload +syn cluster shHereListDQ contains=shBeginHere,@shDblQuoteList,shHerePayload +syn cluster shIdList contains=shArithmetic,shCommandSub,shCommandSubBQ,shWrapLineOperator,shSetOption,shComment,shDeref,shDerefSimple,shHereString,shNumber,shOperator,shRedir,shExSingleQuote,shExDoubleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial,shAtExpr +syn cluster shIfList contains=@shLoopList,shDblBrace,shDblParen,shFunctionKey,shFunctionOne,shFunctionTwo +syn cluster shLoopList contains=@shCaseList,@shErrorList,shCaseEsac,shConditional,shDblBrace,shExpr,shFor,shIf,shOption,shSet,shTest,shTestOpr,shTouch +if exists("b:is_kornshell") || exists("b:is_bash") + syn cluster shLoopList add=shForPP,shDblParen +endif +syn cluster shPPSLeftList contains=shAlias,shArithmetic,shCmdParenRegion,shCommandSub,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shEcho,shEscape,shExDoubleQuote,shExpr,shExSingleQuote,shHereDoc,shNumber,shOperator,shOption,shPosnParm,shHereString,shRedir,shSingleQuote,shSpecial,shStatement,shSubSh,shTest,shVariable +syn cluster shPPSRightList contains=shDeref,shDerefSimple,shEscape,shPosnParm +syn cluster shSubShList contains=@shCommandSubList,shCommandSubBQ,shCaseEsac,shColon,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shHereString,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator +syn cluster shTestList contains=shArithmetic,shCharClass,shCommandSub,shCommandSubBQ,shCtrlSeq,shDeref,shDerefSimple,shDoubleQuote,shSpecialDQ,shExDoubleQuote,shExpr,shExSingleQuote,shNumber,shOperator,shSingleQuote,shTest,shTestOpr +syn cluster shNoZSList contains=shSpecialNoZS +syn cluster shForList contains=shTestOpr,shNumber,shDerefSimple,shDeref,shCommandSub,shCommandSubBQ,shArithmetic + +" Echo: {{{1 +" ==== +" This one is needed INSIDE a CommandSub, so that `echo bla` be correct +syn region shEcho matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment +syn region shEcho matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|()`]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment +if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") + syn region shEchoDeref contained matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment + syn region shEchoDeref contained matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" end="[<>;&|()`}]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment +endif +syn match shEchoQuote contained '\%(\\\\\)*\\["`'()]' + +" This must be after the strings, so that ... \" will be correct +syn region shEmbeddedEcho contained matchgroup=shStatement start="\" skip="\\$" matchgroup=shEchoDelim end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shExDoubleQuote,shDoubleQuote,shCharClass,shCtrlSeq + +" Alias: {{{1 +" ===== +if exists("b:is_kornshell") || exists("b:is_bash") || exists("b:is_posix") + syn match shStatement "\" + syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]*\)\@=" skip="\\$" end="\>\|`" + syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]*=\)\@=" skip="\\$" end="=" +" syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]\+\)\@=" skip="\\$" end="\>\|`" +" syn region shAlias matchgroup=shStatement start="\\s\+\(\h[-._[:alnum:]]\+=\)\@=" skip="\\$" end="=" + + " Touch: {{{1 + " ===== + syn match shTouch '\[^;#]*' skipwhite nextgroup=shComment contains=shTouchCmd,shDoubleQuote,shSingleQuote,shDeref,shDerefSimple + syn match shTouchCmd '\' contained +endif + +" Error Codes: {{{1 +" ============ +if !exists("g:sh_no_error") + syn match shDoError "\" + syn match shIfError "\" + syn match shInError "\" + syn match shCaseError ";;" + syn match shEsacError "\" + syn match shCurlyError "}" + syn match shParenError ")" + syn match shOK '\.\(done\|fi\|in\|esac\)' + if exists("b:is_kornshell") || exists("b:is_bash") + syn match shDTestError "]]" + endif + syn match shTestError "]" +endif + +" Options: {{{1 +" ==================== +syn match shOption "\s\zs[-+][-_a-zA-Z#@]\+" +syn match shOption "\s\zs--[^ \t$=`'"|);]\+" + +" File Redirection Highlighted As Operators: {{{1 +"=========================================== +syn match shRedir "\d\=>\(&[-0-9]\)\=" +syn match shRedir "\d\=>>-\=" +syn match shRedir "\d\=<\(&[-0-9]\)\=" +syn match shRedir "\d<<-\=" + +" Operators: {{{1 +" ========== +syn match shOperator "<<\|>>" contained +syn match shOperator "[!&;|]" contained +syn match shOperator "\[[[^:]\|\]]" contained +syn match shOperator "[-=/*+%]\==" skipwhite nextgroup=shPattern +syn match shPattern "\<\S\+\())\)\@=" contained contains=shExSingleQuote,shSingleQuote,shExDoubleQuote,shDoubleQuote,shDeref + +" Subshells: {{{1 +" ========== +syn region shExpr transparent matchgroup=shExprRegion start="{" end="}" contains=@shExprList2 nextgroup=shSpecialNxt +syn region shSubSh transparent matchgroup=shSubShRegion start="[^(]\zs(" end=")" contains=@shSubShList nextgroup=shSpecialNxt + +" Tests: {{{1 +"======= +syn region shExpr matchgroup=shRange start="\[" skip=+\\\\\|\\$\|\[+ end="\]" contains=@shTestList,shSpecial +syn region shTest transparent matchgroup=shStatement start="\+ end="\<;\_s*then\>" end="\" contains=@shIfList +ShFoldIfDoFor syn region shFor matchgroup=shLoop start="\#\=" +syn match shNumber "\<-\=\.\=\d\+\>#\=" +syn match shCtrlSeq "\\\d\d\d\|\\[abcfnrtv0]" contained +if exists("b:is_bash") || exists("b:is_kornshell") + syn match shSpecial "[^\\]\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained + syn match shSpecial "^\(\\\\\)*\zs\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]" contained + syn region shExSingleQuote matchgroup=shQuote start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial,shSpecial nextgroup=shSpecialNxt + syn region shExDoubleQuote matchgroup=shQuote start=+\$"+ skip=+\\\\\|\\.\|\\"+ end=+"+ contains=@shDblQuoteList,shStringSpecial,shSpecial nextgroup=shSpecialNxt +elseif !exists("g:sh_no_error") + syn region shExSingleQuote matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+ contains=shStringSpecial + syn region shExDoubleQuote matchGroup=Error start=+\$"+ skip=+\\\\\|\\.+ end=+"+ contains=shStringSpecial +endif +syn region shSingleQuote matchgroup=shQuote start=+'+ end=+'+ contains=@Spell nextgroup=shSpecialStart,shSpecialSQ +syn region shDoubleQuote matchgroup=shQuote start=+\%(\%(\\\\\)*\\\)\@" +else + syn keyword shTodo contained COMBAK FIXME TODO XXX +endif +syn match shComment "^\s*\zs#.*$" contains=@shCommentGroup +syn match shComment "\s\zs#.*$" contains=@shCommentGroup +syn match shComment contained "#.*$" contains=@shCommentGroup +syn match shQuickComment contained "#.*$" contains=@shCommentGroup +syn match shBQComment contained "#.\{-}\ze`" contains=@shCommentGroup + +" Here Documents: {{{1 +" (modified by Felipe Contreras) +" ========================================= +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc01 start="<<\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc01 end="^\z1$" contains=@shDblQuoteList +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc02 start="<<-\s*\z([^ \t|>]\+\)" matchgroup=shHereDoc02 end="^\t*\z1$" contains=@shDblQuoteList +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc03 start="<<\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc03 end="^\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc04 start="<<-\s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc04 end="^\t*\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc05 start="<<\s*'\z([^']\+\)'" matchgroup=shHereDoc05 end="^\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc06 start="<<-\s*'\z([^']\+\)'" matchgroup=shHereDoc06 end="^\t*\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc07 start="<<\s*\"\z([^"]\+\)\"" matchgroup=shHereDoc07 end="^\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc08 start="<<-\s*\"\z([^"]\+\)\"" matchgroup=shHereDoc08 end="^\t*\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc09 start="<<\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc09 end="^\z1$" contains=@shDblQuoteList +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc10 start="<<-\s*\\\_$\_s*\z([^ \t|>]\+\)" matchgroup=shHereDoc10 end="^\t*\z1$" contains=@shDblQuoteList +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc11 start="<<\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc11 end="^\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc12 start="<<-\s*\\\_$\_s*\\\z([^ \t|>]\+\)" matchgroup=shHereDoc12 end="^\t*\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc13 start="<<\s*\\\_$\_s*'\z([^']\+\)'" matchgroup=shHereDoc13 end="^\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc14 start="<<-\s*\\\_$\_s*'\z([^']\+\)'" matchgroup=shHereDoc14 end="^\t*\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc15 start="<<\s*\\\_$\_s*\"\z([^"]\+\)\"" matchgroup=shHereDoc15 end="^\z1$" +ShFoldHereDoc syn region shHereDoc matchgroup=shHereDoc16 start="<<-\s*\\\_$\_s*\"\z([^"]\+\)\"" matchgroup=shHereDoc16 end="^\t*\z1$" + + +" Here Strings: {{{1 +" ============= +" available for: bash; ksh (really should be ksh93 only) but not if its a posix +if exists("b:is_bash") || (exists("b:is_kornshell") && !exists("b:is_posix")) + syn match shHereString "<<<" skipwhite nextgroup=shCmdParenRegion +endif + +" Identifiers: {{{1 +"============= +syn match shSetOption "\s\zs[-+][a-zA-Z0-9]\+\>" contained +syn match shVariable "\<\h\w*\ze=" nextgroup=shVarAssign +syn match shVarAssign "=" contained nextgroup=shCmdParenRegion,shPattern,shDeref,shDerefSimple,shDoubleQuote,shExDoubleQuote,shSingleQuote,shExSingleQuote,shVar +syn match shVar contained "\h\w*" +syn region shAtExpr contained start="@(" end=")" contains=@shIdList +if exists("b:is_bash") + syn match shSet "^\s*set\ze\s\+$" + syn region shSetList oneline matchgroup=shSet start="\<\%(declare\|local\|export\)\>\ze[/a-zA-Z_]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\)\>[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+=" contains=@shIdList nextgroup=shComment +elseif exists("b:is_kornshell") || exists("b:is_posix") + syn match shSet "^\s*set\ze\s\+$" + if exists("b:is_dash") + syn region shSetList oneline matchgroup=shSet start="\<\%(local\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList + endif + syn region shSetList oneline matchgroup=shSet start="\<\(export\)\>\ze[/]\@!" end="$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList + syn region shSetList oneline matchgroup=shSet start="\<\%(set\|unset\>\)\ze[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList nextgroup=shComment +else + syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[/a-zA-Z_]\@!" end="\ze[;|#)]\|$" matchgroup=shSetListDelim end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList +endif + +" KornShell namespace: {{{1 +if exists("b:is_kornshell") + syn keyword shFunctionKey namespace skipwhite skipnl nextgroup=shFunctionTwo +endif + +" Functions: {{{1 +if !exists("b:is_posix") + syn keyword shFunctionKey function skipwhite skipnl nextgroup=shFunctionTwo +endif + +if exists("b:is_bash") + ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment + ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment + ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*[A-Za-z_0-9:][-a-zA-Z_0-9:]*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment + ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\%(do\)\@!\&\<[A-Za-z_0-9:][-a-zA-Z_0-9:]*\>\s*\%(()\)\=\_s*)" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment +else + ShFoldFunctions syn region shFunctionOne matchgroup=shFunction start="^\s*\h\w*\s*()\_s*{" end="}" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment + ShFoldFunctions syn region shFunctionTwo matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*{" end="}" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment + ShFoldFunctions syn region shFunctionThree matchgroup=shFunction start="^\s*\h\w*\s*()\_s*(" end=")" contains=@shFunctionList skipwhite skipnl nextgroup=shFunctionStart,shQuickComment + ShFoldFunctions syn region shFunctionFour matchgroup=shFunction start="\%(do\)\@!\&\<\h\w*\>\s*\%(()\)\=\_s*(" end=")" contains=shFunctionKey,@shFunctionList contained skipwhite skipnl nextgroup=shFunctionStart,shQuickComment +endif + +" Parameter Dereferencing: {{{1 +" ======================== +" Note: sh04 failure with following line +"if !exists("g:sh_no_error") && !(exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix")) +if !exists("g:sh_no_error") + syn match shDerefWordError "[^}$[~]" contained +endif +syn match shDerefSimple "\$\%(\h\w*\|\d\)" nextgroup=@shNoZSList +syn region shDeref matchgroup=PreProc start="\${" end="}" contains=@shDerefList,shDerefVarArray nextgroup=shSpecialStart +syn match shDerefSimple "\$[-#*@!?]" nextgroup=@shNoZSList +syn match shDerefSimple "\$\$" nextgroup=@shNoZSList +syn match shDerefSimple "\${\d}" nextgroup=@shNoZSList nextgroup=shSpecialStart +if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix") + syn region shDeref matchgroup=PreProc start="\${##\=" end="}" contains=@shDerefList nextgroup=@shSpecialNoZS,shSpecialStart + syn region shDeref matchgroup=PreProc start="\${\$\$" end="}" contains=@shDerefList nextgroup=@shSpecialNoZS,shSpecialStart +endif + +" ksh: ${.sh.*} variables: {{{1 +" ======================================== +if exists("b:is_kornshell") + syn match shDerefVar contained "\.\+" nextgroup=@shDerefVarList +endif + +" ksh: ${!var[*]} array index list syntax: {{{1 +" ======================================== +if exists("b:is_kornshell") || exists("b:is_posix") + syn region shDeref matchgroup=PreProc start="\${!" end="}" contains=@shDerefVarArray +endif + +" bash: ${!prefix*} and ${#parameter}: {{{1 +" ==================================== +if exists("b:is_bash") + syn region shDeref matchgroup=PreProc start="\${!" end="\*\=}" contains=@shDerefList,shDerefOffset + syn match shDerefVar contained "{\@<=!\h\w*" nextgroup=@shDerefVarList +endif +if exists("b:is_kornshell") + syn match shDerefVar contained "{\@<=!\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList +endif + +syn match shDerefSpecial contained "{\@<=[-*@?0]" nextgroup=shDerefOp,shDerefOffset,shDerefOpError +syn match shDerefSpecial contained "\({[#!]\)\@<=[[:alnum:]*@_]\+" nextgroup=@shDerefVarList,shDerefOp +syn match shDerefVar contained "{\@<=\h\w*" nextgroup=@shDerefVarList +syn match shDerefVar contained '\d' nextgroup=@shDerefVarList +if exists("b:is_kornshell") || exists("b:is_posix") + syn match shDerefVar contained "{\@<=\h\w*[[:alnum:]_.]*" nextgroup=@shDerefVarList +endif + +" sh ksh bash : ${var[... ]...} array reference: {{{1 +syn region shDerefVarArray contained matchgroup=shDeref start="\[" end="]" contains=@shCommandSubList nextgroup=shDerefOp,shDerefOpError,shDerefOffset + +" Special ${parameter OPERATOR word} handling: {{{1 +" sh ksh bash : ${parameter:-word} word is default value +" sh ksh bash : ${parameter:=word} assign word as default value +" sh ksh bash : ${parameter:?word} display word if parameter is null +" sh ksh bash : ${parameter:+word} use word if parameter is not null, otherwise nothing +" ksh bash : ${parameter#pattern} remove small left pattern +" ksh bash : ${parameter##pattern} remove large left pattern +" ksh bash : ${parameter%pattern} remove small right pattern +" ksh bash : ${parameter%%pattern} remove large right pattern +" bash : ${parameter^pattern} Case modification +" bash : ${parameter^^pattern} Case modification +" bash : ${parameter,pattern} Case modification +" bash : ${parameter,,pattern} Case modification +" bash : ${@:start:qty} display command line arguments from start to start+qty-1 (inferred) +" bash : ${parameter@operator} transforms parameter (operator∈[uULqEPARa]) +syn cluster shDerefPatternList contains=shDerefPattern,shDerefString +if !exists("g:sh_no_error") + syn match shDerefOpError contained ":[[:punct:]]" +endif +syn match shDerefOp contained ":\=[-=?]" nextgroup=@shDerefPatternList +syn match shDerefOp contained ":\=+" nextgroup=@shDerefPatternList +if exists("b:is_bash") || exists("b:is_kornshell") || exists("b:is_posix") + syn match shDerefOp contained "#\{1,2}" nextgroup=@shDerefPatternList + syn match shDerefOp contained "%\{1,2}" nextgroup=@shDerefPatternList + syn match shDerefPattern contained "[^{}]\+" contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape nextgroup=shDerefPattern + syn region shDerefPattern contained start="{" end="}" contains=shDeref,shDerefSimple,shDerefString,shCommandSub nextgroup=shDerefPattern + syn match shDerefEscape contained '\%(\\\\\)*\\.' +endif +if exists("b:is_bash") + syn match shDerefOp contained "[,^]\{1,2}" nextgroup=@shDerefPatternList + syn match shDerefOp contained "@[uULQEPAKa]" +endif +syn region shDerefString contained matchgroup=shDerefDelim start=+\%(\\\)\@" +syn sync match shCaseEsacSync groupthere shCaseEsac "\" +syn sync match shDoSync grouphere shDo "\" +syn sync match shDoSync groupthere shDo "\" +syn sync match shForSync grouphere shFor "\" +syn sync match shForSync groupthere shFor "\" +syn sync match shIfSync grouphere shIf "\" +syn sync match shIfSync groupthere shIf "\" +syn sync match shUntilSync grouphere shRepeat "\" +syn sync match shWhileSync grouphere shRepeat "\" + +" Default Highlighting: {{{1 +" ===================== +if !exists("skip_sh_syntax_inits") + hi def link shArithRegion shShellVariables + hi def link shAstQuote shDoubleQuote + hi def link shAtExpr shSetList + hi def link shBkslshSnglQuote shSingleQuote + hi def link shBkslshDblQuote shDOubleQuote + hi def link shBeginHere shRedir + hi def link shCaseBar shConditional + hi def link shCaseCommandSub shCommandSub + hi def link shCaseDoubleQuote shDoubleQuote + hi def link shCaseIn shConditional + hi def link shQuote shOperator + hi def link shCaseSingleQuote shSingleQuote + hi def link shCaseStart shConditional + hi def link shCmdSubRegion shShellVariables + hi def link shColon shComment + hi def link shDerefOp shOperator + hi def link shDerefPOL shDerefOp + hi def link shDerefPPS shDerefOp + hi def link shDerefPSR shDerefOp + hi def link shDeref shShellVariables + hi def link shDerefDelim shOperator + hi def link shDerefSimple shDeref + hi def link shDerefSpecial shDeref + hi def link shDerefString shDoubleQuote + hi def link shDerefVar shDeref + hi def link shDoubleQuote shString + hi def link shEcho shString + hi def link shEchoDelim shOperator + hi def link shEchoQuote shString + hi def link shForPP shLoop + hi def link shFunction Function + hi def link shEmbeddedEcho shString + hi def link shEscape shCommandSub + hi def link shExDoubleQuote shDoubleQuote + hi def link shExSingleQuote shSingleQuote + hi def link shHereDoc shString + hi def link shHereString shRedir + hi def link shHerePayload shHereDoc + hi def link shLoop shStatement + hi def link shSpecialNxt shSpecial + hi def link shNoQuote shDoubleQuote + hi def link shOption shCommandSub + hi def link shPattern shString + hi def link shParen shArithmetic + hi def link shPosnParm shShellVariables + hi def link shQuickComment shComment + hi def link shBQComment shComment + hi def link shRange shOperator + hi def link shRedir shOperator + hi def link shSetListDelim shOperator + hi def link shSetOption shOption + hi def link shSingleQuote shString + hi def link shSource shOperator + hi def link shStringSpecial shSpecial + hi def link shSpecialStart shSpecial + hi def link shSubShRegion shOperator + hi def link shTestOpr shConditional + hi def link shTestPattern shString + hi def link shTestDoubleQuote shString + hi def link shTestSingleQuote shString + hi def link shTouchCmd shStatement + hi def link shVariable shSetList + hi def link shWrapLineOperator shOperator + + if exists("b:is_bash") + hi def link bashAdminStatement shStatement + hi def link bashSpecialVariables shShellVariables + hi def link bashStatement shStatement + hi def link shCharClass shSpecial + hi def link shDerefOffset shDerefOp + hi def link shDerefLen shDerefOffset + endif + if exists("b:is_kornshell") || exists("b:is_posix") + hi def link kshSpecialVariables shShellVariables + hi def link kshStatement shStatement + endif + + if !exists("g:sh_no_error") + hi def link shCaseError Error + hi def link shCondError Error + hi def link shCurlyError Error + hi def link shDerefOpError Error + hi def link shDerefWordError Error + hi def link shDoError Error + hi def link shEsacError Error + hi def link shIfError Error + hi def link shInError Error + hi def link shParenError Error + hi def link shTestError Error + if exists("b:is_kornshell") || exists("b:is_posix") + hi def link shDTestError Error + endif + endif + + hi def link shArithmetic Special + hi def link shCharClass Identifier + hi def link shSnglCase Statement + hi def link shCommandSub Special + hi def link shCommandSubBQ shCommandSub + hi def link shComment Comment + hi def link shConditional Conditional + hi def link shCtrlSeq Special + hi def link shExprRegion Delimiter + hi def link shFunctionKey Function + hi def link shFunctionName Function + hi def link shNumber Number + hi def link shOperator Operator + hi def link shRepeat Repeat + hi def link shSet Statement + hi def link shSetList Identifier + hi def link shShellVariables PreProc + hi def link shSpecial Special + hi def link shSpecialDQ Special + hi def link shSpecialSQ Special + hi def link shSpecialNoZS shSpecial + hi def link shStatement Statement + hi def link shString String + hi def link shTodo Todo + hi def link shAlias Identifier + hi def link shHereDoc01 shRedir + hi def link shHereDoc02 shRedir + hi def link shHereDoc03 shRedir + hi def link shHereDoc04 shRedir + hi def link shHereDoc05 shRedir + hi def link shHereDoc06 shRedir + hi def link shHereDoc07 shRedir + hi def link shHereDoc08 shRedir + hi def link shHereDoc09 shRedir + hi def link shHereDoc10 shRedir + hi def link shHereDoc11 shRedir + hi def link shHereDoc12 shRedir + hi def link shHereDoc13 shRedir + hi def link shHereDoc14 shRedir + hi def link shHereDoc15 shRedir + hi def link shHereDoc16 shRedir +endif + +" Delete shell folding commands {{{1 +" ============================= +delc ShFoldFunctions +delc ShFoldHereDoc +delc ShFoldIfDoFor + +" Set Current Syntax: {{{1 +" =================== +if exists("b:is_bash") + let b:current_syntax = "bash" +elseif exists("b:is_kornshell") + let b:current_syntax = "ksh" +elseif exists("b:is_posix") + let b:current_syntax = "posix" +else + let b:current_syntax = "sh" +endif + +" vim: ts=16 fdm=marker diff --git a/runtime/syntax/shared/README.txt b/runtime/syntax/shared/README.txt new file mode 100644 index 0000000..fade4b3 --- /dev/null +++ b/runtime/syntax/shared/README.txt @@ -0,0 +1,2 @@ +This directory "runtime/syntax/shared" contains Vim script files that are +generated or used by more than one syntax file. diff --git a/runtime/syntax/shared/context-data-context.vim b/runtime/syntax/shared/context-data-context.vim new file mode 100644 index 0000000..a8e124f --- /dev/null +++ b/runtime/syntax/shared/context-data-context.vim @@ -0,0 +1,340 @@ +vim9script + +# Vim syntax file +# Language: ConTeXt +# Automatically generated by mtx-interface (2023-12-26 16:40) + +syn keyword contextConstants zerocount minusone minustwo plusone plustwo contained +syn keyword contextConstants plusthree plusfour plusfive plussix plusseven contained +syn keyword contextConstants pluseight plusnine plusten pluseleven plustwelve contained +syn keyword contextConstants plussixteen plusfifty plushundred plusonehundred plustwohundred contained +syn keyword contextConstants plusfivehundred plusthousand plustenthousand plustwentythousand medcard contained +syn keyword contextConstants maxcard maxcardminusone maxiterator zeropoint onepoint contained +syn keyword contextConstants halfapoint onebasepoint maxcount maxdimen scaledpoint contained +syn keyword contextConstants thousandpoint points halfpoint zeroskip centeringskip contained +syn keyword contextConstants stretchingskip shrinkingskip centeringfillskip stretchingfillskip shrinkingfillskip contained +syn keyword contextConstants zeromuskip onemuskip pluscxxvii pluscxxviii pluscclv contained +syn keyword contextConstants pluscclvi normalpagebox binaryshiftedten binaryshiftedtwenty binaryshiftedthirty contained +syn keyword contextConstants thickermuskip directionlefttoright directionrighttoleft endoflinetoken outputnewlinechar contained +syn keyword contextConstants emptytoks empty undefined prerollrun voidbox contained +syn keyword contextConstants emptybox emptyvbox emptyhbox bigskipamount medskipamount contained +syn keyword contextConstants smallskipamount fmtname fmtversion texengine texenginename contained +syn keyword contextConstants texengineversion texenginefunctionality luatexengine pdftexengine xetexengine contained +syn keyword contextConstants unknownengine contextformat contextversion contextlmtxmode contextmark contained +syn keyword contextConstants mksuffix activecatcode bgroup egroup endline contained +syn keyword contextConstants conditionaltrue conditionalfalse attributeunsetvalue statuswrite uprotationangle contained +syn keyword contextConstants rightrotationangle downrotationangle leftrotationangle inicatcodes ctxcatcodes contained +syn keyword contextConstants texcatcodes notcatcodes txtcatcodes vrbcatcodes prtcatcodes contained +syn keyword contextConstants nilcatcodes luacatcodes tpacatcodes tpbcatcodes xmlcatcodes contained +syn keyword contextConstants ctdcatcodes rlncatcodes escapecatcode begingroupcatcode endgroupcatcode contained +syn keyword contextConstants mathshiftcatcode alignmentcatcode endoflinecatcode parametercatcode superscriptcatcode contained +syn keyword contextConstants subscriptcatcode ignorecatcode spacecatcode lettercatcode othercatcode contained +syn keyword contextConstants activecatcode commentcatcode invalidcatcode tabasciicode newlineasciicode contained +syn keyword contextConstants formfeedasciicode endoflineasciicode endoffileasciicode commaasciicode spaceasciicode contained +syn keyword contextConstants periodasciicode hashasciicode dollarasciicode commentasciicode ampersandasciicode contained +syn keyword contextConstants colonasciicode semicolonasciicode backslashasciicode circumflexasciicode underscoreasciicode contained +syn keyword contextConstants leftbraceasciicode barasciicode rightbraceasciicode tildeasciicode delasciicode contained +syn keyword contextConstants leftparentasciicode rightparentasciicode lessthanasciicode morethanasciicode doublecommentsignal contained +syn keyword contextConstants atsignasciicode exclamationmarkasciicode questionmarkasciicode doublequoteasciicode singlequoteasciicode contained +syn keyword contextConstants forwardslashasciicode primeasciicode hyphenasciicode percentasciicode leftbracketasciicode contained +syn keyword contextConstants rightbracketasciicode zeroasciicode nineasciicode alowercaseasciicode zlowercaseasciicode contained +syn keyword contextConstants hsizefrozenparcode skipfrozenparcode hangfrozenparcode indentfrozenparcode parfillfrozenparcode contained +syn keyword contextConstants adjustfrozenparcode protrudefrozenparcode tolerancefrozenparcode stretchfrozenparcode loosenessfrozenparcode contained +syn keyword contextConstants lastlinefrozenparcode linepenaltyfrozenparcode clubpenaltyfrozenparcode widowpenaltyfrozenparcode displaypenaltyfrozenparcode contained +syn keyword contextConstants brokenpenaltyfrozenparcode demeritsfrozenparcode shapefrozenparcode linefrozenparcode hyphenationfrozenparcode contained +syn keyword contextConstants shapingpenaltyfrozenparcode orphanpenaltyfrozenparcode allfrozenparcode emergencyfrozenparcode parpassesfrozenparcode contained +syn keyword contextConstants singlelinepenaltyfrozenparcode activemathcharcode activetabtoken activeformfeedtoken activeendoflinetoken contained +syn keyword contextConstants batchmodecode nonstopmodecode scrollmodecode errorstopmodecode bottomlevelgroupcode contained +syn keyword contextConstants simplegroupcode hboxgroupcode adjustedhboxgroupcode vboxgroupcode vtopgroupcode contained +syn keyword contextConstants aligngroupcode noaligngroupcode outputgroupcode mathgroupcode discretionarygroupcode contained +syn keyword contextConstants insertgroupcode vadjustgroupcode vcentergroupcode mathabovegroupcode mathchoicegroupcode contained +syn keyword contextConstants alsosimplegroupcode semisimplegroupcode mathshiftgroupcode mathleftgroupcode localboxgroupcode contained +syn keyword contextConstants splitoffgroupcode splitkeepgroupcode preamblegroupcode alignsetgroupcode finrowgroupcode contained +syn keyword contextConstants discretionarygroupcode markautomigrationcode insertautomigrationcode adjustautomigrationcode preautomigrationcode contained +syn keyword contextConstants postautomigrationcode charnodecode hlistnodecode vlistnodecode rulenodecode contained +syn keyword contextConstants insertnodecode marknodecode adjustnodecode ligaturenodecode discretionarynodecode contained +syn keyword contextConstants whatsitnodecode mathnodecode gluenodecode kernnodecode penaltynodecode contained +syn keyword contextConstants unsetnodecode mathsnodecode overrulemathcontrolcode underrulemathcontrolcode radicalrulemathcontrolcode contained +syn keyword contextConstants fractionrulemathcontrolcode accentskewhalfmathcontrolcode accentskewapplymathcontrolcode applyordinarykernpairmathcontrolcode applyverticalitalickernmathcontrolcode contained +syn keyword contextConstants applyordinaryitalickernmathcontrolcode applycharitalickernmathcontrolcode reboxcharitalickernmathcontrolcode applyboxeditalickernmathcontrolcode staircasekernmathcontrolcode contained +syn keyword contextConstants applytextitalickernmathcontrolcode applyscriptitalickernmathcontrolcode checkspaceitalickernmathcontrolcode checktextitalickernmathcontrolcode analyzescriptnucleuscharmathcontrolcode contained +syn keyword contextConstants analyzescriptnucleuslistmathcontrolcode analyzescriptnucleusboxmathcontrolcode accenttopskewwithoffsetmathcontrolcode ignorekerndimensionsmathcontrolcode ignoreflataccentsmathcontrolcode contained +syn keyword contextConstants extendaccentsmathcontrolcode extenddelimitersmathcontrolcode noligaturingglyphoptioncode nokerningglyphoptioncode noexpansionglyphoptioncode contained +syn keyword contextConstants noprotrusionglyphoptioncode noleftkerningglyphoptioncode noleftligaturingglyphoptioncode norightkerningglyphoptioncode norightligaturingglyphoptioncode contained +syn keyword contextConstants noitaliccorrectionglyphoptioncode islargeoperatorglyphoptioncode hasitalicshapeglyphoptioncode normalparcontextcode vmodeparcontextcode contained +syn keyword contextConstants vboxparcontextcode vtopparcontextcode vcenterparcontextcode vadjustparcontextcode insertparcontextcode contained +syn keyword contextConstants outputparcontextcode alignparcontextcode noalignparcontextcode spanparcontextcode resetparcontextcode contained +syn keyword contextConstants leftoriginlistanchorcode leftheightlistanchorcode leftdepthlistanchorcode rightoriginlistanchorcode rightheightlistanchorcode contained +syn keyword contextConstants rightdepthlistanchorcode centeroriginlistanchorcode centerheightlistanchorcode centerdepthlistanchorcode halfwaytotallistanchorcode contained +syn keyword contextConstants halfwayheightlistanchorcode halfwaydepthlistanchorcode halfwayleftlistanchorcode halfwayrightlistanchorcode negatexlistsigncode contained +syn keyword contextConstants negateylistsigncode negatelistsigncode fontslantperpoint fontinterwordspace fontinterwordstretch contained +syn keyword contextConstants fontinterwordshrink fontexheight fontemwidth fontextraspace slantperpoint contained +syn keyword contextConstants mathexheight mathemwidth interwordspace interwordstretch interwordshrink contained +syn keyword contextConstants exheight emwidth extraspace mathaxisheight muquad contained +syn keyword contextConstants startmode stopmode startnotmode stopnotmode startmodeset contained +syn keyword contextConstants stopmodeset doifmode doifelsemode doifmodeelse doifnotmode contained +syn keyword contextConstants startmodeset stopmodeset startallmodes stopallmodes startnotallmodes contained +syn keyword contextConstants stopnotallmodes doifallmodes doifelseallmodes doifallmodeselse doifnotallmodes contained +syn keyword contextConstants startenvironment stopenvironment environment startcomponent stopcomponent contained +syn keyword contextConstants component startlocalcomponent stoplocalcomponent startproduct stopproduct contained +syn keyword contextConstants product startproject stopproject project starttext contained +syn keyword contextConstants stoptext startnotext stopnotext startdocument stopdocument contained +syn keyword contextConstants documentvariable unexpandeddocumentvariable setupdocument presetdocument doifelsedocumentvariable contained +syn keyword contextConstants doifdocumentvariableelse doifdocumentvariable doifnotdocumentvariable startmodule stopmodule contained +syn keyword contextConstants usemodule usetexmodule useluamodule setupmodule currentmoduleparameter contained +syn keyword contextConstants moduleparameter everystarttext everystoptext everyforgetall luaenvironment contained +syn keyword contextConstants startTEXpage stopTEXpage enablemode disablemode preventmode contained +syn keyword contextConstants definemode globalenablemode globaldisablemode globalpreventmode pushmode contained +syn keyword contextConstants popmode typescriptone typescripttwo typescriptthree mathsizesuffix contained +syn keyword contextConstants mathordinarycode mathordcode mathoperatorcode mathopcode mathbinarycode contained +syn keyword contextConstants mathbincode mathrelationcode mathrelcode mathopencode mathclosecode contained +syn keyword contextConstants mathpunctuationcode mathpunctcode mathovercode mathundercode mathinnercode contained +syn keyword contextConstants mathradicalcode mathfractioncode mathmiddlecode mathaccentcode mathfencedcode contained +syn keyword contextConstants mathghostcode mathvariablecode mathactivecode mathvcentercode mathconstructcode contained +syn keyword contextConstants mathwrappedcode mathbegincode mathendcode mathexplicitcode mathdivisioncode contained +syn keyword contextConstants mathfactorialcode mathdimensioncode mathexperimentalcode mathtextpunctuationcode mathimaginarycode contained +syn keyword contextConstants mathdifferentialcode mathexponentialcode mathellipsiscode mathfunctioncode mathdigitcode contained +syn keyword contextConstants mathalphacode mathboxcode mathchoicecode mathnothingcode mathlimopcode contained +syn keyword contextConstants mathnolopcode mathunsetcode mathunspacedcode mathallcode mathfakecode contained +syn keyword contextConstants mathunarycode mathmaybeordinarycode mathmayberelationcode mathmaybebinarycode mathnumbergroupcode contained +syn keyword contextConstants mathchemicalbondcode constantnumber constantnumberargument constantdimen constantdimenargument contained +syn keyword contextConstants constantemptyargument luastringsep !!bs !!es lefttorightmark contained +syn keyword contextConstants righttoleftmark lrm rlm bidilre bidirle contained +syn keyword contextConstants bidipop bidilro bidirlo breakablethinspace nobreakspace contained +syn keyword contextConstants nonbreakablespace narrownobreakspace zerowidthnobreakspace ideographicspace ideographichalffillspace contained +syn keyword contextConstants twoperemspace threeperemspace fourperemspace fiveperemspace sixperemspace contained +syn keyword contextConstants figurespace punctuationspace hairspace enquad emquad contained +syn keyword contextConstants zerowidthspace zerowidthnonjoiner zerowidthjoiner zwnj zwj contained +syn keyword contextConstants optionalspace asciispacechar softhyphen autoinsertedspace Ux contained +syn keyword contextConstants eUx startlmtxmode stoplmtxmode startmkivmode stopmkivmode contained +syn keyword contextConstants wildcardsymbol normalhyphenationcode automatichyphenationcode explicithyphenationcode syllablehyphenationcode contained +syn keyword contextConstants uppercasehyphenationcode collapsehyphenationcode compoundhyphenationcode strictstarthyphenationcode strictendhyphenationcode contained +syn keyword contextConstants automaticpenaltyhyphenationcode explicitpenaltyhyphenationcode permitgluehyphenationcode permitallhyphenationcode permitmathreplacehyphenationcode contained +syn keyword contextConstants forcecheckhyphenationcode lazyligatureshyphenationcode forcehandlerhyphenationcode feedbackcompoundhyphenationcode ignoreboundshyphenationcode contained +syn keyword contextConstants partialhyphenationcode completehyphenationcode normalizelinenormalizecode parindentskipnormalizecode swaphangindentnormalizecode contained +syn keyword contextConstants swapparsshapenormalizecode breakafterdirnormalizecode removemarginkernsnormalizecode clipwidthnormalizecode flattendiscretionariesnormalizecode contained +syn keyword contextConstants discardzerotabskipsnormalizecode flattenhleadersnormalizecode normalizeparnormalizeparcode flattenvleadersnormalizeparcode limitprevgrafnormalizeparcode contained +syn keyword contextConstants nopreslackclassoptioncode nopostslackclassoptioncode lefttopkernclassoptioncode righttopkernclassoptioncode leftbottomkernclassoptioncode contained +syn keyword contextConstants rightbottomkernclassoptioncode lookaheadforendclassoptioncode noitaliccorrectionclassoptioncode defaultmathclassoptions checkligatureclassoptioncode contained +syn keyword contextConstants checkitaliccorrectionclassoptioncode checkkernpairclassoptioncode flattenclassoptioncode omitpenaltyclassoptioncode unpackclassoptioncode contained +syn keyword contextConstants raiseprimeclassoptioncode carryoverlefttopkernclassoptioncode carryoverleftbottomkernclassoptioncode carryoverrighttopkernclassoptioncode carryoverrightbottomkernclassoptioncode contained +syn keyword contextConstants preferdelimiterdimensionsclassoptioncode autoinjectclassoptioncode removeitaliccorrectionclassoptioncode operatoritaliccorrectionclassoptioncode shortinlineclassoptioncode contained +syn keyword contextConstants pushnestingclassoptioncode popnestingclassoptioncode obeynestingclassoptioncode noligaturingglyphoptioncode nokerningglyphoptioncode contained +syn keyword contextConstants noleftligatureglyphoptioncode noleftkernglyphoptioncode norightligatureglyphoptioncode norightkernglyphoptioncode noexpansionglyphoptioncode contained +syn keyword contextConstants noprotrusionglyphoptioncode noitaliccorrectionglyphoptioncode nokerningcode noligaturingcode indecentparpassclasses contained +syn keyword contextConstants looseparpassclasses tightparpassclasses verylooseparpassclass looseparpassclass semilooseparpassclass contained +syn keyword contextConstants decentparpassclass almostdecentparpassclasses semitightparpassclass tightparpassclass frozenflagcode contained +syn keyword contextConstants tolerantflagcode protectedflagcode primitiveflagcode permanentflagcode noalignedflagcode contained +syn keyword contextConstants immutableflagcode mutableflagcode globalflagcode overloadedflagcode immediateflagcode contained +syn keyword contextConstants conditionalflagcode valueflagcode instanceflagcode ordmathflattencode binmathflattencode contained +syn keyword contextConstants relmathflattencode punctmathflattencode innermathflattencode normalworddiscoptioncode preworddiscoptioncode contained +syn keyword contextConstants postworddiscoptioncode preferbreakdiscoptioncode prefernobreakdiscoptioncode continueifinputfile continuewhenlmtxmode contained +syn keyword contextConstants continuewhenmkivmode uunit contained +syn keyword contextHelpers startsetups stopsetups startxmlsetups stopxmlsetups startluasetups contained +syn keyword contextHelpers stopluasetups starttexsetups stoptexsetups startrawsetups stoprawsetups contained +syn keyword contextHelpers startlocalsetups stoplocalsetups starttexdefinition stoptexdefinition starttexcode contained +syn keyword contextHelpers stoptexcode startcontextcode stopcontextcode startcontextdefinitioncode stopcontextdefinitioncode contained +syn keyword contextHelpers texdefinition doifelsesetups doifsetupselse doifsetups doifnotsetups contained +syn keyword contextHelpers setup setups texsetup xmlsetup luasetup contained +syn keyword contextHelpers directsetup fastsetup copysetups resetsetups doifelsecommandhandler contained +syn keyword contextHelpers doifcommandhandlerelse doifnotcommandhandler doifcommandhandler newmode setmode contained +syn keyword contextHelpers resetmode newsystemmode setsystemmode resetsystemmode pushsystemmode contained +syn keyword contextHelpers popsystemmode globalsetmode globalresetmode globalsetsystemmode globalresetsystemmode contained +syn keyword contextHelpers booleanmodevalue newcount newdimen newskip newmuskip contained +syn keyword contextHelpers newbox newtoks newread newwrite newmarks contained +syn keyword contextHelpers newinsert newattribute newif newfloat newlanguage contained +syn keyword contextHelpers newfamily newfam newhelp newuserunit newinteger contained +syn keyword contextHelpers newdimension newgluespec newmugluespec newposit aliasinteger contained +syn keyword contextHelpers aliasdimension aliasposit then begcsname autorule contained +syn keyword contextHelpers tobits tohexa strippedcsname checkedstrippedcsname nofarguments contained +syn keyword contextHelpers firstargumentfalse firstargumenttrue secondargumentfalse secondargumenttrue thirdargumentfalse contained +syn keyword contextHelpers thirdargumenttrue fourthargumentfalse fourthargumenttrue fifthargumentfalse fifthargumenttrue contained +syn keyword contextHelpers sixthargumentfalse sixthargumenttrue seventhargumentfalse seventhargumenttrue doglobal contained +syn keyword contextHelpers dodoglobal redoglobal resetglobal donothing untraceddonothing contained +syn keyword contextHelpers dontcomplain moreboxtracing lessboxtracing noboxtracing forgetall contained +syn keyword contextHelpers donetrue donefalse foundtrue foundfalse inlineordisplaymath contained +syn keyword contextHelpers indisplaymath forcedisplaymath startforceddisplaymath stopforceddisplaymath startpickupmath contained +syn keyword contextHelpers stoppickupmath reqno forceinlinemath mathortext thebox contained +syn keyword contextHelpers htdp unvoidbox hfilll vfilll mathbox contained +syn keyword contextHelpers mathlimop mathnolop mathnothing mathalpha currentcatcodetable contained +syn keyword contextHelpers defaultcatcodetable catcodetablename newcatcodetable startcatcodetable stopcatcodetable contained +syn keyword contextHelpers startextendcatcodetable stopextendcatcodetable pushcatcodetable popcatcodetable restorecatcodes contained +syn keyword contextHelpers setcatcodetable letcatcodecommand defcatcodecommand uedcatcodecommand hglue contained +syn keyword contextHelpers vglue hfillneg vfillneg hfilllneg vfilllneg contained +syn keyword contextHelpers hsplit ruledhss ruledhfil ruledhfill ruledhfilll contained +syn keyword contextHelpers ruledhfilneg ruledhfillneg normalhfillneg normalhfilllneg ruledvss contained +syn keyword contextHelpers ruledvfil ruledvfill ruledvfilll ruledvfilneg ruledvfillneg contained +syn keyword contextHelpers normalvfillneg normalvfilllneg ruledhbox ruledvbox ruledvtop contained +syn keyword contextHelpers ruleddbox ruledvcenter ruledmbox ruledhpack ruledvpack contained +syn keyword contextHelpers ruledtpack ruleddpack ruledvsplit ruledtsplit ruleddsplit contained +syn keyword contextHelpers ruledhskip ruledvskip ruledkern ruledmskip ruledmkern contained +syn keyword contextHelpers ruledhglue ruledvglue normalhglue normalvglue ruledpenalty contained +syn keyword contextHelpers filledhboxb filledhboxr filledhboxg filledhboxc filledhboxm contained +syn keyword contextHelpers filledhboxy filledhboxk scratchstring scratchstringone scratchstringtwo contained +syn keyword contextHelpers tempstring scratchcounter globalscratchcounter privatescratchcounter scratchfloat contained +syn keyword contextHelpers globalscratchfloat privatescratchfloat scratchdimen globalscratchdimen privatescratchdimen contained +syn keyword contextHelpers scratchskip globalscratchskip privatescratchskip scratchmuskip globalscratchmuskip contained +syn keyword contextHelpers privatescratchmuskip scratchtoks globalscratchtoks privatescratchtoks scratchbox contained +syn keyword contextHelpers globalscratchbox privatescratchbox scratchmacro scratchmacroone scratchmacrotwo contained +syn keyword contextHelpers scratchconditiontrue scratchconditionfalse ifscratchcondition scratchconditiononetrue scratchconditiononefalse contained +syn keyword contextHelpers ifscratchconditionone scratchconditiontwotrue scratchconditiontwofalse ifscratchconditiontwo globalscratchcounterone contained +syn keyword contextHelpers globalscratchcountertwo globalscratchcounterthree groupedcommand groupedcommandcs triggergroupedcommand contained +syn keyword contextHelpers triggergroupedcommandcs simplegroupedcommand simplegroupedcommandcs pickupgroupedcommand pickupgroupedcommandcs contained +syn keyword contextHelpers mathgroupedcommandcs usedbaselineskip usedlineskip usedlineskiplimit availablehsize contained +syn keyword contextHelpers localhsize setlocalhsize distributedhsize hsizefraction next contained +syn keyword contextHelpers nexttoken nextbox dowithnextbox dowithnextboxcs dowithnextboxcontent contained +syn keyword contextHelpers dowithnextboxcontentcs flushnextbox boxisempty boxtostring contentostring contained +syn keyword contextHelpers prerolltostring givenwidth givenheight givendepth scangivendimensions contained +syn keyword contextHelpers scratchwidth scratchheight scratchdepth scratchoffset scratchdistance contained +syn keyword contextHelpers scratchtotal scratchitalic scratchhsize scratchvsize scratchxoffset contained +syn keyword contextHelpers scratchyoffset scratchhoffset scratchvoffset scratchxposition scratchyposition contained +syn keyword contextHelpers scratchtopoffset scratchbottomoffset scratchleftoffset scratchrightoffset scratchcounterone contained +syn keyword contextHelpers scratchcountertwo scratchcounterthree scratchcounterfour scratchcounterfive scratchcountersix contained +syn keyword contextHelpers scratchfloatone scratchfloattwo scratchfloatthree scratchfloatfour scratchfloatfive contained +syn keyword contextHelpers scratchfloatsix scratchdimenone scratchdimentwo scratchdimenthree scratchdimenfour contained +syn keyword contextHelpers scratchdimenfive scratchdimensix scratchskipone scratchskiptwo scratchskipthree contained +syn keyword contextHelpers scratchskipfour scratchskipfive scratchskipsix scratchmuskipone scratchmuskiptwo contained +syn keyword contextHelpers scratchmuskipthree scratchmuskipfour scratchmuskipfive scratchmuskipsix scratchtoksone contained +syn keyword contextHelpers scratchtokstwo scratchtoksthree scratchtoksfour scratchtoksfive scratchtokssix contained +syn keyword contextHelpers scratchboxone scratchboxtwo scratchboxthree scratchboxfour scratchboxfive contained +syn keyword contextHelpers scratchboxsix scratchnx scratchny scratchmx scratchmy contained +syn keyword contextHelpers scratchunicode scratchmin scratchmax scratchread scratchwrite contained +syn keyword contextHelpers pfsin pfcos pftan pfasin pfacos contained +syn keyword contextHelpers pfatan pfsinh pfcosh pftanh pfasinh contained +syn keyword contextHelpers pfacosh pfatanh pfsqrt pflog pfexp contained +syn keyword contextHelpers pfceil pffloor pfround pfabs pfrad contained +syn keyword contextHelpers pfdeg pfatantwo pfpow pfmod pfrem contained +syn keyword contextHelpers scratchleftskip scratchrightskip scratchtopskip scratchbottomskip doif contained +syn keyword contextHelpers doifnot doifelse firstinset doifinset doifnotinset contained +syn keyword contextHelpers doifelseinset doifinsetelse doifelsenextchar doifnextcharelse doifelsenextcharcs contained +syn keyword contextHelpers doifnextcharcselse doifelsenextoptional doifnextoptionalelse doifelsenextoptionalcs doifnextoptionalcselse contained +syn keyword contextHelpers doifelsefastoptionalcheck doiffastoptionalcheckelse doifelsefastoptionalcheckcs doiffastoptionalcheckcselse doifelsenextbgroup contained +syn keyword contextHelpers doifnextbgroupelse doifelsenextbgroupcs doifnextbgroupcselse doifelsenextparenthesis doifnextparenthesiselse contained +syn keyword contextHelpers doifelseundefined doifundefinedelse doifelsedefined doifdefinedelse doifundefined contained +syn keyword contextHelpers doifdefined doifelsevalue doifvalue doifnotvalue doifnothing contained +syn keyword contextHelpers doifsomething doifelsenothing doifnothingelse doifelsesomething doifsomethingelse contained +syn keyword contextHelpers doifvaluenothing doifvaluesomething doifelsevaluenothing doifvaluenothingelse doifelsedimension contained +syn keyword contextHelpers doifdimensionelse doifelsenumber doifnumberelse doifnumber doifnotnumber contained +syn keyword contextHelpers doifelsecommon doifcommonelse doifcommon doifnotcommon doifinstring contained +syn keyword contextHelpers doifnotinstring doifelseinstring doifinstringelse doifelseassignment doifassignmentelse contained +syn keyword contextHelpers docheckassignment doifelseassignmentcs doifassignmentelsecs validassignment novalidassignment contained +syn keyword contextHelpers doiftext doifelsetext doiftextelse doifnottext validtext contained +syn keyword contextHelpers quitcondition truecondition falsecondition tracingall tracingnone contained +syn keyword contextHelpers loggingall tracingcatcodes showluatokens aliasmacro removetoks contained +syn keyword contextHelpers appendtoks prependtoks appendtotoks prependtotoks to contained +syn keyword contextHelpers endgraf endpar reseteverypar finishpar empty contained +syn keyword contextHelpers null space quad enspace emspace contained +syn keyword contextHelpers charspace nbsp crlf obeyspaces obeylines contained +syn keyword contextHelpers obeytabs obeypages obeyedspace obeyedline obeyedtab contained +syn keyword contextHelpers obeyedpage normalspace naturalspace controlspace normalspaces contained +syn keyword contextHelpers ignoretabs ignorelines ignorepages ignoreeofs setcontrolspaces contained +syn keyword contextHelpers executeifdefined singleexpandafter doubleexpandafter tripleexpandafter dontleavehmode contained +syn keyword contextHelpers removelastspace removeunwantedspaces keepunwantedspaces removepunctuation ignoreparskip contained +syn keyword contextHelpers forcestrutdepth onlynonbreakablespace wait writestatus define contained +syn keyword contextHelpers defineexpandable redefine setmeasure setemeasure setgmeasure contained +syn keyword contextHelpers setxmeasure definemeasure freezemeasure measure measured contained +syn keyword contextHelpers directmeasure setquantity setequantity setgquantity setxquantity contained +syn keyword contextHelpers definequantity freezequantity quantity quantitied directquantity contained +syn keyword contextHelpers installcorenamespace getvalue getuvalue setvalue setevalue contained +syn keyword contextHelpers setgvalue setxvalue letvalue letgvalue resetvalue contained +syn keyword contextHelpers undefinevalue ignorevalue setuvalue setuevalue setugvalue contained +syn keyword contextHelpers setuxvalue globallet udef ugdef uedef contained +syn keyword contextHelpers uxdef checked unique getparameters geteparameters contained +syn keyword contextHelpers getgparameters getxparameters forgetparameters copyparameters getdummyparameters contained +syn keyword contextHelpers dummyparameter directdummyparameter setdummyparameter letdummyparameter setexpandeddummyparameter contained +syn keyword contextHelpers resetdummyparameter usedummystyleandcolor usedummystyleparameter usedummycolorparameter processcommalist contained +syn keyword contextHelpers processcommacommand quitcommalist quitprevcommalist processaction processallactions contained +syn keyword contextHelpers processfirstactioninset processallactionsinset unexpanded expanded startexpanded contained +syn keyword contextHelpers stopexpanded protect unprotect firstofoneargument firstoftwoarguments contained +syn keyword contextHelpers secondoftwoarguments firstofthreearguments secondofthreearguments thirdofthreearguments firstoffourarguments contained +syn keyword contextHelpers secondoffourarguments thirdoffourarguments fourthoffourarguments firstoffivearguments secondoffivearguments contained +syn keyword contextHelpers thirdoffivearguments fourthoffivearguments fifthoffivearguments firstofsixarguments secondofsixarguments contained +syn keyword contextHelpers thirdofsixarguments fourthofsixarguments fifthofsixarguments sixthofsixarguments firstofoneunexpanded contained +syn keyword contextHelpers firstoftwounexpanded secondoftwounexpanded firstofthreeunexpanded secondofthreeunexpanded thirdofthreeunexpanded contained +syn keyword contextHelpers gobbleoneargument gobbletwoarguments gobblethreearguments gobblefourarguments gobblefivearguments contained +syn keyword contextHelpers gobblesixarguments gobblesevenarguments gobbleeightarguments gobbleninearguments gobbletenarguments contained +syn keyword contextHelpers gobbleoneoptional gobbletwooptionals gobblethreeoptionals gobblefouroptionals gobblefiveoptionals contained +syn keyword contextHelpers dorecurse doloop exitloop dostepwiserecurse recurselevel contained +syn keyword contextHelpers recursedepth dofastloopcs fastloopindex fastloopfinal dowith contained +syn keyword contextHelpers doloopovermatch doloopovermatched doloopoverlist newconstant setnewconstant contained +syn keyword contextHelpers setconstant setconstantvalue newconditional settrue setfalse contained +syn keyword contextHelpers settruevalue setfalsevalue setconditional newmacro setnewmacro contained +syn keyword contextHelpers newfraction newsignal newboundary dosingleempty dodoubleempty contained +syn keyword contextHelpers dotripleempty doquadrupleempty doquintupleempty dosixtupleempty doseventupleempty contained +syn keyword contextHelpers dosingleargument dodoubleargument dotripleargument doquadrupleargument doquintupleargument contained +syn keyword contextHelpers dosixtupleargument doseventupleargument dosinglegroupempty dodoublegroupempty dotriplegroupempty contained +syn keyword contextHelpers doquadruplegroupempty doquintuplegroupempty permitspacesbetweengroups dontpermitspacesbetweengroups nopdfcompression contained +syn keyword contextHelpers maximumpdfcompression normalpdfcompression onlypdfobjectcompression nopdfobjectcompression modulonumber contained +syn keyword contextHelpers dividenumber getfirstcharacter doifelsefirstchar doiffirstcharelse mathclassvalue contained +syn keyword contextHelpers startnointerference stopnointerference twodigits threedigits leftorright contained +syn keyword contextHelpers offinterlineskip oninterlineskip nointerlineskip strut halfstrut contained +syn keyword contextHelpers quarterstrut depthstrut halflinestrut noheightstrut setstrut contained +syn keyword contextHelpers strutbox strutht strutdp strutwd struthtdp contained +syn keyword contextHelpers strutgap begstrut endstrut lineheight leftboundary contained +syn keyword contextHelpers rightboundary signalcharacter ascender descender capheight contained +syn keyword contextHelpers aligncontentleft aligncontentmiddle aligncontentright shiftbox vpackbox contained +syn keyword contextHelpers hpackbox vpackedbox hpackedbox normalreqno startimath contained +syn keyword contextHelpers stopimath normalstartimath normalstopimath startdmath stopdmath contained +syn keyword contextHelpers normalstartdmath normalstopdmath normalsuperscript normalsubscript normalnosuperscript contained +syn keyword contextHelpers normalnosubscript normalprimescript superscript subscript nosuperscript contained +syn keyword contextHelpers nosubscript primescript superprescript subprescript nosuperprescript contained +syn keyword contextHelpers nosubsprecript uncramped cramped mathstyletrigger triggermathstyle contained +syn keyword contextHelpers triggeredmathstyle mathstylefont mathsmallstylefont mathstyleface mathsmallstyleface contained +syn keyword contextHelpers mathstylecommand mathpalette mathstylehbox mathstylevbox mathstylevcenter contained +syn keyword contextHelpers mathstylevcenteredhbox mathstylevcenteredvbox mathtext setmathsmalltextbox setmathtextbox contained +syn keyword contextHelpers pushmathstyle popmathstyle triggerdisplaystyle triggertextstyle triggerscriptstyle contained +syn keyword contextHelpers triggerscriptscriptstyle triggeruncrampedstyle triggercrampedstyle triggersmallstyle triggeruncrampedsmallstyle contained +syn keyword contextHelpers triggercrampedsmallstyle triggerbigstyle triggeruncrampedbigstyle triggercrampedbigstyle luaexpr contained +syn keyword contextHelpers expelsedoif expdoif expdoifnot expdoifelsecommon expdoifcommonelse contained +syn keyword contextHelpers expdoifelseinset expdoifinsetelse glyphscaled ctxdirectlua ctxlatelua contained +syn keyword contextHelpers ctxsprint ctxwrite ctxcommand ctxdirectcommand ctxlatecommand contained +syn keyword contextHelpers ctxreport ctxlua luacode lateluacode directluacode contained +syn keyword contextHelpers registerctxluafile ctxloadluafile luaversion luamajorversion luaminorversion contained +syn keyword contextHelpers ctxluacode luaconditional luaexpanded ctxluamatch ctxluamatchfile contained +syn keyword contextHelpers startluaparameterset stopluaparameterset luaparameterset definenamedlua obeylualines contained +syn keyword contextHelpers obeyluatokens startluacode stopluacode startlua stoplua contained +syn keyword contextHelpers startctxfunction stopctxfunction ctxfunction startctxfunctiondefinition stopctxfunctiondefinition contained +syn keyword contextHelpers installctxfunction installprotectedctxfunction installprotectedctxscanner installctxscanner resetctxscanner contained +syn keyword contextHelpers cldprocessfile cldloadfile cldloadviafile cldcontext cldcommand contained +syn keyword contextHelpers carryoverpar freezeparagraphproperties defrostparagraphproperties setparagraphfreezing forgetparagraphfreezing contained +syn keyword contextHelpers updateparagraphproperties updateparagraphpenalties updateparagraphdemerits updateparagraphshapes updateparagraphlines contained +syn keyword contextHelpers updateparagraphpasses lastlinewidth assumelongusagecs righttolefthbox lefttorighthbox contained +syn keyword contextHelpers righttoleftvbox lefttorightvbox righttoleftvtop lefttorightvtop rtlhbox contained +syn keyword contextHelpers ltrhbox rtlvbox ltrvbox rtlvtop ltrvtop contained +syn keyword contextHelpers autodirhbox autodirvbox autodirvtop leftorrighthbox leftorrightvbox contained +syn keyword contextHelpers leftorrightvtop lefttoright righttoleft checkedlefttoright checkedrighttoleft contained +syn keyword contextHelpers synchronizelayoutdirection synchronizedisplaydirection synchronizeinlinedirection dirlre dirrle contained +syn keyword contextHelpers dirlro dirrlo rtltext ltrtext lesshyphens contained +syn keyword contextHelpers morehyphens nohyphens dohyphens dohyphencollapsing nohyphencollapsing contained +syn keyword contextHelpers compounddiscretionary Ucheckedstartdisplaymath Ucheckedstopdisplaymath break nobreak contained +syn keyword contextHelpers allowbreak goodbreak nospace nospacing dospacing contained +syn keyword contextHelpers naturalhbox naturalvbox naturalvtop naturalhpack naturalvpack contained +syn keyword contextHelpers naturaltpack reversehbox reversevbox reversevtop reversehpack contained +syn keyword contextHelpers reversevpack reversetpack hcontainer vcontainer tcontainer contained +syn keyword contextHelpers frule compoundhyphenpenalty start stop unsupportedcs contained +syn keyword contextHelpers openout closeout write openin closein contained +syn keyword contextHelpers read readline readlinedirect readfromterminal boxlines contained +syn keyword contextHelpers boxline setboxline copyboxline boxlinewd boxlineht contained +syn keyword contextHelpers boxlinedp boxlinenw boxlinenh boxlinend boxlinels contained +syn keyword contextHelpers boxliners boxlinelh boxlinerh boxlinelp boxlinerp contained +syn keyword contextHelpers boxlinein boxrangewd boxrangeht boxrangedp bitwiseset contained +syn keyword contextHelpers bitwiseand bitwiseor bitwisexor bitwisenot bitwisenil contained +syn keyword contextHelpers ifbitwiseand bitwise bitwiseshift bitwiseflip textdir contained +syn keyword contextHelpers linedir pardir boxdir prelistbox postlistbox contained +syn keyword contextHelpers prelistcopy postlistcopy setprelistbox setpostlistbox noligaturing contained +syn keyword contextHelpers nokerning noexpansion noprotrusion noleftkerning noleftligaturing contained +syn keyword contextHelpers norightkerning norightligaturing noitaliccorrection futureletnexttoken defbackslashbreak contained +syn keyword contextHelpers letbackslashbreak pushoverloadmode popoverloadmode pushrunstate poprunstate contained +syn keyword contextHelpers suggestedalias showboxhere discoptioncodestring flagcodestring frozenparcodestring contained +syn keyword contextHelpers glyphoptioncodestring groupcodestring hyphenationcodestring mathcontrolcodestring mathflattencodestring contained +syn keyword contextHelpers normalizecodestring parcontextcodestring newlocalcount newlocaldimen newlocalskip contained +syn keyword contextHelpers newlocalmuskip newlocaltoks newlocalbox newlocalwrite newlocalread contained +syn keyword contextHelpers setnewlocalcount setnewlocaldimen setnewlocalskip setnewlocalmuskip setnewlocaltoks contained +syn keyword contextHelpers setnewlocalbox ifexpression localcontrolledrepeating expandedrepeating unexpandedrepeating contained +syn keyword contextHelpers lastchkinteger ifchkinteger mathordinary mathoperator mathbinary contained +syn keyword contextHelpers mathrelation mathpunctuation mathfraction mathradical mathmiddle contained +syn keyword contextHelpers mathaccent mathfenced mathghost mathvariable mathactive contained +syn keyword contextHelpers mathvcenter mathimaginary mathdifferential mathexponential mathdigit contained +syn keyword contextHelpers mathdivision mathfactorial mathwrapped mathconstruct mathdimension contained +syn keyword contextHelpers mathunary mathchemicalbond filebasename filenameonly filedirname contained +syn keyword contextHelpers filesuffix setmathoption resetmathoption contained diff --git a/runtime/syntax/shared/context-data-interfaces.vim b/runtime/syntax/shared/context-data-interfaces.vim new file mode 100644 index 0000000..36ef059 --- /dev/null +++ b/runtime/syntax/shared/context-data-interfaces.vim @@ -0,0 +1,1185 @@ +vim9script + +# Vim syntax file +# Language: ConTeXt +# Automatically generated by mtx-interface (2023-12-26 16:40) + +syn keyword contextCommon AEacute AEligature AEmacron AMSTEX Aacute contained +syn keyword contextCommon Abreve Abreveacute Abrevedotbelow Abrevegrave Abrevehook contained +syn keyword contextCommon Abrevetilde Acaron Acircumflex Acircumflexacute Acircumflexdotbelow contained +syn keyword contextCommon Acircumflexgrave Acircumflexhook Acircumflextilde Adiaeresis Adiaeresismacron contained +syn keyword contextCommon Adotaccent Adotaccentmacron Adotbelow Adoublegrave AfterPar contained +syn keyword contextCommon Agrave Ahook Ainvertedbreve Alpha Alphabeticnumerals contained +syn keyword contextCommon AmSTeX Amacron And Angstrom Aogonek contained +syn keyword contextCommon Aring Aringacute Arrowvert Astroke Atilde contained +syn keyword contextCommon BeforePar Beta Bhook Big Bigg contained +syn keyword contextCommon Biggl Biggm Biggr Bigl Bigm contained +syn keyword contextCommon Bigr Box Bumpeq CONTEXT Cacute contained +syn keyword contextCommon Cap Caps Ccaron Ccedilla Ccircumflex contained +syn keyword contextCommon Cdotaccent Character Characters Chi Chook contained +syn keyword contextCommon ConTeXt Context ConvertConstantAfter ConvertToConstant Cstroke contained +syn keyword contextCommon Cup DAYLONG DAYSHORT DZcaronligature DZligature contained +syn keyword contextCommon Dafrican Dcaron Dd Ddownarrow Delta contained +syn keyword contextCommon Dhook Doteq Downarrow Dstroke Dzcaronligature contained +syn keyword contextCommon Dzligature ETEX Eacute Ebreve Ecaron contained +syn keyword contextCommon Ecedilla Ecircumflex Ecircumflexacute Ecircumflexdotbelow Ecircumflexgrave contained +syn keyword contextCommon Ecircumflexhook Ecircumflextilde Ediaeresis Edotaccent Edotbelow contained +syn keyword contextCommon Edoublegrave Egrave Ehook Einvertedbreve Emacron contained +syn keyword contextCommon Eogonek Epsilon Eta Eth Etilde contained +syn keyword contextCommon Eulerconst EveryLine EveryPar Fhook Finv contained +syn keyword contextCommon Gacute Game Gamma Gbreve Gcaron contained +syn keyword contextCommon Gcircumflex Gcommaaccent Gdotaccent GetPar Ghook contained +syn keyword contextCommon GotoPar Greeknumerals Gstroke Hcaron Hcircumflex contained +syn keyword contextCommon Hstroke IJligature INRSTEX Iacute Ibreve contained +syn keyword contextCommon Icaron Icircumflex Idiaeresis Idotaccent Idotbelow contained +syn keyword contextCommon Idoublegrave Igrave Ihook Iinvertedbreve Im contained +syn keyword contextCommon Imacron Iogonek Iota Istroke Itilde contained +syn keyword contextCommon JScode JSpreamble Jcircumflex Join Kappa contained +syn keyword contextCommon Kcaron Kcommaaccent Khook LAMSTEX LATEX contained +syn keyword contextCommon LJligature LUA LUAJITTEX LUAMETATEX LUATEX contained +syn keyword contextCommon LaTeX Lacute LamSTeX Lambda Lbar contained +syn keyword contextCommon Lcaron Lcommaaccent Ldotmiddle Ldsh Leftarrow contained +syn keyword contextCommon Leftrightarrow Ljligature Lleftarrow Longleftarrow Longleftrightarrow contained +syn keyword contextCommon Longmapsfrom Longmapsto Longrightarrow Lsh Lstroke contained +syn keyword contextCommon Lua LuaMetaTeX LuaTeX LuajitTeX METAFONT contained +syn keyword contextCommon METAFUN METAPOST MKII MKIV MKIX contained +syn keyword contextCommon MKLX MKVI MKXI MKXL MONTH contained +syn keyword contextCommon MONTHLONG MONTHSHORT MP MPII MPIV contained +syn keyword contextCommon MPLX MPVI MPXL MPanchor MPbetex contained +syn keyword contextCommon MPc MPclip MPcode MPcolor MPcoloronly contained +syn keyword contextCommon MPcolumn MPd MPdefinitions MPdrawing MPenvironment contained +syn keyword contextCommon MPextensions MPfontsizehskip MPgetmultipars MPgetmultishape MPgetposboxes contained +syn keyword contextCommon MPh MPinclusions MPinitializations MPleftskip MPll contained +syn keyword contextCommon MPlr MPls MPmenubuttons MPn MPoptions contained +syn keyword contextCommon MPoverlayanchor MPp MPpage MPpardata MPplus contained +syn keyword contextCommon MPpos MPpositiongraphic MPpositionmethod MPposset MPr contained +syn keyword contextCommon MPrawvar MPregion MPrest MPrightskip MPrs contained +syn keyword contextCommon MPrun MPstring MPtext MPtransparency MPul contained +syn keyword contextCommon MPur MPv MPvar MPvariable MPvv contained +syn keyword contextCommon MPw MPwhd MPx MPxy MPxywhd contained +syn keyword contextCommon MPy Mapsfrom Mapsto MetaFont MetaFun contained +syn keyword contextCommon MetaPost Mu NJligature Nacute Ncaron contained +syn keyword contextCommon Ncommaaccent Nearrow Neng Ngrave Njligature contained +syn keyword contextCommon NormalizeFontHeight NormalizeFontWidth NormalizeTextHeight NormalizeTextWidth Ntilde contained +syn keyword contextCommon Nu Numbers Nwarrow OEligature Oacute contained +syn keyword contextCommon Obreve Ocaron Ocircumflex Ocircumflexacute Ocircumflexdotbelow contained +syn keyword contextCommon Ocircumflexgrave Ocircumflexhook Ocircumflextilde Odiaeresis Odiaeresismacron contained +syn keyword contextCommon Odotaccent Odotaccentmacron Odotbelow Odoublegrave Ograve contained +syn keyword contextCommon Ohook Ohorn Ohornacute Ohorndotbelow Ohorngrave contained +syn keyword contextCommon Ohornhook Ohorntilde Ohungarumlaut Oinvertedbreve Omacron contained +syn keyword contextCommon Omega Omicron Oogonek Oogonekmacron Ostroke contained +syn keyword contextCommon Ostrokeacute Otilde Otildemacron P PARSEDXML contained +syn keyword contextCommon PDFETEX PDFTEX PDFcolor PICTEX PPCHTEX contained +syn keyword contextCommon PPCHTeX PRAGMA Phi Phook Pi contained +syn keyword contextCommon PiCTeX Plankconst PointsToBigPoints PointsToReal PointsToWholeBigPoints contained +syn keyword contextCommon PropertyLine Psi PtToCm Racute Rcaron contained +syn keyword contextCommon Rcommaaccent Rdoublegrave Rdsh Re ReadFile contained +syn keyword contextCommon Relbar Rho Rightarrow Rinvertedbreve Romannumerals contained +syn keyword contextCommon Rrightarrow Rsh S Sacute ScaledPointsToBigPoints contained +syn keyword contextCommon ScaledPointsToWholeBigPoints Scaron Scedilla Schwa Scircumflex contained +syn keyword contextCommon Scommaaccent Searrow Sigma Smallcapped Subset contained +syn keyword contextCommon Supset Swarrow TABLE TABLEbody TABLEfoot contained +syn keyword contextCommon TABLEhead TABLEnested TABLEnext TC TD contained +syn keyword contextCommon TDs TEX TEXpage TH TN contained +syn keyword contextCommon TR TRs TX TY TaBlE contained +syn keyword contextCommon Tau Tcaron Tcedilla Tcommaaccent TeX contained +syn keyword contextCommon TheNormalizedFontSize Theta Thook Thorn TransparencyHack contained +syn keyword contextCommon Tstroke Uacute Ubreve Ucaron Ucircumflex contained +syn keyword contextCommon Udiaeresis Udiaeresisacute Udiaeresiscaron Udiaeresisgrave Udiaeresismacron contained +syn keyword contextCommon Udotbelow Udoublegrave Ugrave Uhook Uhorn contained +syn keyword contextCommon Uhornacute Uhorndotbelow Uhorngrave Uhornhook Uhorntilde contained +syn keyword contextCommon Uhungarumlaut Uinvertedbreve Umacron Uogonek Uparrow contained +syn keyword contextCommon Updownarrow Upsilon Uring Utilde Uuparrow contained +syn keyword contextCommon VDash Vdash VerboseNumber Vert Vhook contained +syn keyword contextCommon Vvdash WEEKDAY WORD WORDS Wcircumflex contained +syn keyword contextCommon WidthSpanningText Word Words XETEX XML contained +syn keyword contextCommon XeTeX Xi Yacute Ycircumflex Ydiaeresis contained +syn keyword contextCommon Ydotbelow Ygrave Yhook Ymacron Ytilde contained +syn keyword contextCommon Zacute Zcaron Zdotaccent Zeta Zhook contained +syn keyword contextCommon Zstroke aacute abbreviation abjadnaivenumerals abjadnodotnumerals contained +syn keyword contextCommon abjadnumerals about abreve abreveacute abrevedotbelow contained +syn keyword contextCommon abrevegrave abrevehook abrevetilde acaron acircumflex contained +syn keyword contextCommon acircumflexacute acircumflexdotbelow acircumflexgrave acircumflexhook acircumflextilde contained +syn keyword contextCommon activatespacehandler actualday actualmonth actualyear actuarial contained +syn keyword contextCommon acute acwopencirclearrow adaptcollector adaptfontfeature adaptlayout contained +syn keyword contextCommon adaptpapersize addfeature addtoJSpreamble addtocommalist addvalue contained +syn keyword contextCommon adiaeresis adiaeresismacron adotaccent adotaccentmacron adotbelow contained +syn keyword contextCommon adoublegrave aeacute aeligature aemacron afghanicurrency contained +syn keyword contextCommon aftersplitstring aftertestandsplitstring agrave ahook ainvertedbreve contained +syn keyword contextCommon aleph align alignbottom aligned alignedbox contained +syn keyword contextCommon alignedline alignhere alignment alignmentcharacter allinputpaths contained +syn keyword contextCommon allmodes alpha alphabeticnumerals alwayscitation alwayscite contained +syn keyword contextCommon amacron amalg ampersand anchor angle contained +syn keyword contextCommon aogonek appendetoks appendgvalue appendices appendtocommalist contained +syn keyword contextCommon appendtoks appendtoksonce appendvalue apply applyalternativestyle contained +syn keyword contextCommon applyfunction applyprocessor applytocharacters applytofirstcharacter applytosplitstringchar contained +syn keyword contextCommon applytosplitstringcharspaced applytosplitstringline applytosplitstringlinespaced applytosplitstringword applytosplitstringwordspaced contained +syn keyword contextCommon applytowords approx approxEq approxeq approxnEq contained +syn keyword contextCommon arabicakbar arabicalayhe arabicallah arabicallallahou arabicasterisk contained +syn keyword contextCommon arabicbasmalah arabiccomma arabiccuberoot arabicdateseparator arabicdecimals contained +syn keyword contextCommon arabicdisputedendofayah arabicendofayah arabicexnumerals arabicfootnotemarker arabicfourthroot contained +syn keyword contextCommon arabichighain arabichighalayheassallam arabichigheqala arabichighesala arabichighfootnotemarker contained +syn keyword contextCommon arabichighjeem arabichighlamalef arabichighmadda arabichighmeemlong arabichighmeemshort contained +syn keyword contextCommon arabichighnisf arabichighnoon arabichighnoonkasra arabichighqaf arabichighqif contained +syn keyword contextCommon arabichighradiallahouanhu arabichighrahmatullahalayhe arabichighrubc arabichighsad arabichighsajda contained +syn keyword contextCommon arabichighsakta arabichighsallallahou arabichighseen arabichighsmallsafha arabichightah contained +syn keyword contextCommon arabichightakhallus arabichighthalatha arabichighwaqf arabichighyeh arabichighzain contained +syn keyword contextCommon arabicjallajalalouhou arabiclettermark arabiclowmeemlong arabiclownoonkasra arabiclowseen contained +syn keyword contextCommon arabicmisra arabicmuhammad arabicnumber arabicnumberabove arabicnumerals contained +syn keyword contextCommon arabicparenleft arabicparenright arabicpercent arabicperiod arabicpermille contained +syn keyword contextCommon arabicpertenthousand arabicpoeticverse arabicqala arabicquestion arabicrasoul contained +syn keyword contextCommon arabicray arabicrialsign arabicsafha arabicsajdah arabicsalla contained +syn keyword contextCommon arabicsamvat arabicsanah arabicsemicolon arabicshighthreedots arabicslcm contained +syn keyword contextCommon arabicstartofrubc arabictripledot arabicvowelwaw arabicvowelyeh arabicwasallam contained +syn keyword contextCommon arg aring aringacute arrangedpages asciimode contained +syn keyword contextCommon asciistr aside assignalfadimension assigndimen assigndimension contained +syn keyword contextCommon assignifempty assigntranslation assignvalue assignwidth assumelongusagecs contained +syn keyword contextCommon ast astype asymp at atilde contained +syn keyword contextCommon atleftmargin atpage atrightmargin attachment autocap contained +syn keyword contextCommon autodirhbox autodirvbox autodirvtop autoinsertnextspace autointegral contained +syn keyword contextCommon automathematics autoorientation autopagestaterealpage autopagestaterealpageorder autorule contained +syn keyword contextCommon autosetups availablehsize averagecharwidth backepsilon background contained +syn keyword contextCommon backgroundimage backgroundimagefill backgroundline backmatter backprime contained +syn keyword contextCommon backsim backslash bar barleftarrow barleftarrowrightarrowbar contained +syn keyword contextCommon barovernorthwestarrow barwedge basegrid baselinebottom baselineleftbox contained +syn keyword contextCommon baselinemiddlebox baselinerightbox bbordermatrix bbox because contained +syn keyword contextCommon beforesplitstring beforetestandsplitstring beta beth between contained +syn keyword contextCommon bhook big bigbodyfont bigcap bigcirc contained +syn keyword contextCommon bigcircle bigcup bigdiamond bigg bigger contained +syn keyword contextCommon biggl biggm biggr bigl bigm contained +syn keyword contextCommon bigodot bigoplus bigotimes bigr bigskip contained +syn keyword contextCommon bigsqcap bigsqcup bigsquare bigstar bigtimes contained +syn keyword contextCommon bigtriangledown bigtriangleup bigudot biguplus bigvee contained +syn keyword contextCommon bigwedge binom bitmapimage blacklozenge blackrule contained +syn keyword contextCommon blackrules blacksquare blacktriangle blacktriangledown blacktriangleleft contained +syn keyword contextCommon blacktriangleright blank blap bleed bleedheight contained +syn keyword contextCommon bleedwidth blockligatures blockquote blocksynctexfile blockuservariable contained +syn keyword contextCommon bodyfontenvironmentlist bodyfontsize bodymatter bold boldface contained +syn keyword contextCommon bolditalic boldslanted bookmark booleanmodevalue bordermatrix contained +syn keyword contextCommon bot bottombox bottomleftbox bottomrightbox bowtie contained +syn keyword contextCommon boxcursor boxdot boxedcolumns boxmarker boxminus contained +syn keyword contextCommon boxofsize boxplus boxreference boxtimes bpos contained +syn keyword contextCommon breakablethinspace breakhere breve bstroke btxabbreviatedjournal contained +syn keyword contextCommon btxaddjournal btxalwayscitation btxauthorfield btxdetail btxdirect contained +syn keyword contextCommon btxdoif btxdoifcombiinlistelse btxdoifelse btxdoifelsecombiinlist btxdoifelsesameasprevious contained +syn keyword contextCommon btxdoifelsesameaspreviouschecked btxdoifelseuservariable btxdoifnot btxdoifsameaspreviouscheckedelse btxdoifsameaspreviouselse contained +syn keyword contextCommon btxdoifuservariableelse btxexpandedjournal btxfield btxfieldname btxfieldtype contained +syn keyword contextCommon btxfirstofrange btxflush btxflushauthor btxflushauthorinverted btxflushauthorinvertedshort contained +syn keyword contextCommon btxflushauthorname btxflushauthornormal btxflushauthornormalshort btxflushsuffix btxfoundname contained +syn keyword contextCommon btxfoundtype btxhiddencitation btxhybridcite btxlabellanguage btxlabeltext contained +syn keyword contextCommon btxlistcitation btxloadjournalist btxoneorrange btxremapauthor btxrenderingdefinitions contained +syn keyword contextCommon btxsavejournalist btxsetup btxsingularorplural btxsingularplural btxtextcitation contained +syn keyword contextCommon buffer buildmathaccent buildtextaccent buildtextbottomcomma buildtextbottomdot contained +syn keyword contextCommon buildtextcedilla buildtextgrave buildtextmacron buildtextognek bullet contained +syn keyword contextCommon button cacute calligraphic camel cap contained +syn keyword contextCommon capital carriagereturn cases catcodetable catcodetablename contained +syn keyword contextCommon cbox ccaron ccedilla ccircumflex ccurl contained +syn keyword contextCommon cdot cdotaccent cdotp cdots centeraligned contained +syn keyword contextCommon centerbox centerdot centeredbox centeredlastline centerednextbox contained +syn keyword contextCommon centerline cfrac chapter character characteralign contained +syn keyword contextCommon characters chardescription charwidthlanguage check checkcharacteralign contained +syn keyword contextCommon checkedblank checkedchar checkedfences checkedfiller checkedstrippedcsname contained +syn keyword contextCommon checkinjector checkmark checknextindentation checknextinjector checkpage contained +syn keyword contextCommon checkparameters checkpreviousinjector checksoundtrack checktwopassdata checkvariables contained +syn keyword contextCommon chem chemical chemicalbottext chemicalmidtext chemicalsymbol contained +syn keyword contextCommon chemicaltext chemicaltoptext chi chineseallnumerals chinesecapnumerals contained +syn keyword contextCommon chinesenumerals chook circ circeq circlearrowleft contained +syn keyword contextCommon circlearrowright circledR circledS circledast circledcirc contained +syn keyword contextCommon circleddash circledequals circleonrightarrow citation cite contained +syn keyword contextCommon clap classfont cldcommand cldcontext cldloadfile contained +syn keyword contextCommon cldprocessfile cleftarrow clip clippedoverlayimage clonefield contained +syn keyword contextCommon clubsuit collect collectedtext collectexpanded collecting contained +syn keyword contextCommon colon coloncolonequals colonequals color colorbar contained +syn keyword contextCommon colorcomponents colored colorintent coloronly colorset contained +syn keyword contextCommon colorvalue column columnbreak columns columnset contained +syn keyword contextCommon columnsetspan columnsetspanwidth combination combinepages commalistelement contained +syn keyword contextCommon commalistsentence commalistsize comment comparecolorgroup comparedimension contained +syn keyword contextCommon comparedimensioneps comparepalet complement completebtxrendering completecontent contained +syn keyword contextCommon completeindex completelist completelistofabbreviations completelistofchemicals completelistoffigures contained +syn keyword contextCommon completelistofgraphics completelistofintermezzi completelistoflogos completelistofpublications completelistofsorts contained +syn keyword contextCommon completelistofsynonyms completelistoftables completepagenumber completeregister complexes contained +syn keyword contextCommon complexorsimple complexorsimpleempty component composedcollector composedlayer contained +syn keyword contextCommon compounddiscretionary compresult cong constantdimen constantdimenargument contained +syn keyword contextCommon constantemptyargument constantnumber constantnumberargument contentreference contextcode contained +syn keyword contextCommon contextdefinitioncode continuednumber continueifinputfile convertargument convertcommand contained +syn keyword contextCommon convertedcounter converteddimen convertedsubcounter convertmonth convertnumber contained +syn keyword contextCommon convertvalue convertvboxtohbox coprod copyboxfromcache copybtxlabeltext contained +syn keyword contextCommon copyfield copyheadtext copylabeltext copymathlabeltext copyoperatortext contained +syn keyword contextCommon copypages copyparameters copyposition copyprefixtext copyright contained +syn keyword contextCommon copysetups copysuffixtext copytaglabeltext copyunittext correctwhitespace contained +syn keyword contextCommon countersubs counttoken counttokens cramped crampedclap contained +syn keyword contextCommon crampedllap crampedrlap crightarrow crightoverleftarrow crlf contained +syn keyword contextCommon crlfplaceholder cstroke ctop ctxcommand ctxdirectcommand contained +syn keyword contextCommon ctxdirectlua ctxfunction ctxfunctiondefinition ctxlatecommand ctxlatelua contained +syn keyword contextCommon ctxloadluafile ctxlua ctxluabuffer ctxluacode ctxreport contained +syn keyword contextCommon ctxsprint cup curlyeqprec curlyeqsucc curlyvee contained +syn keyword contextCommon curlywedge currentassignmentlistkey currentassignmentlistvalue currentbtxuservariable currentcolor contained +syn keyword contextCommon currentcommalistitem currentcomponent currentdate currentenvironment currentfeaturetest contained +syn keyword contextCommon currentheadnumber currentinterface currentlanguage currentlistentrydestinationattribute currentlistentrylimitedtext contained +syn keyword contextCommon currentlistentrynumber currentlistentrypagenumber currentlistentryreferenceattribute currentlistentrytitle currentlistentrytitlerendered contained +syn keyword contextCommon currentlistentrywrapper currentlistsymbol currentmainlanguage currentmessagetext currentmoduleparameter contained +syn keyword contextCommon currentoutputstream currentproduct currentproject currentregime currentregisterpageuserdata contained +syn keyword contextCommon currentresponses currenttime currentvalue currentxtablecolumn currentxtablerow contained +syn keyword contextCommon curvearrowleft curvearrowright cwopencirclearrow cyrillicA cyrillicAE contained +syn keyword contextCommon cyrillicAbreve cyrillicAdiaeresis cyrillicB cyrillicBIGYUS cyrillicBIGYUSiotified contained +syn keyword contextCommon cyrillicC cyrillicCH cyrillicCHEDC cyrillicCHEDCabkhasian cyrillicCHEabkhasian contained +syn keyword contextCommon cyrillicCHEdiaeresis cyrillicCHEkhakassian cyrillicCHEvertstroke cyrillicD cyrillicDASIAPNEUMATA contained +syn keyword contextCommon cyrillicDJE cyrillicDZE cyrillicDZEabkhasian cyrillicDZHE cyrillicE contained +syn keyword contextCommon cyrillicELtail cyrillicEMtail cyrillicENDC cyrillicENGHE cyrillicENhook contained +syn keyword contextCommon cyrillicENtail cyrillicEREV cyrillicERY cyrillicERtick cyrillicEbreve contained +syn keyword contextCommon cyrillicEdiaeresis cyrillicEgrave cyrillicEiotified cyrillicF cyrillicFITA contained +syn keyword contextCommon cyrillicG cyrillicGHEmidhook cyrillicGHEstroke cyrillicGHEupturn cyrillicGJE contained +syn keyword contextCommon cyrillicH cyrillicHA cyrillicHADC cyrillicHRDSN cyrillicI contained +syn keyword contextCommon cyrillicIE cyrillicII cyrillicISHRT cyrillicISHRTtail cyrillicIZHITSA contained +syn keyword contextCommon cyrillicIZHITSAdoublegrave cyrillicIdiaeresis cyrillicIgrave cyrillicImacron cyrillicJE contained +syn keyword contextCommon cyrillicK cyrillicKADC cyrillicKAbashkir cyrillicKAhook cyrillicKAstroke contained +syn keyword contextCommon cyrillicKAvertstroke cyrillicKJE cyrillicKOPPA cyrillicKSI cyrillicL contained +syn keyword contextCommon cyrillicLITTLEYUS cyrillicLITTLEYUSiotified cyrillicLJE cyrillicM cyrillicN contained +syn keyword contextCommon cyrillicNJE cyrillicO cyrillicOMEGA cyrillicOMEGAround cyrillicOMEGAtitlo contained +syn keyword contextCommon cyrillicOT cyrillicObarred cyrillicObarreddiaeresis cyrillicOdiaeresis cyrillicP contained +syn keyword contextCommon cyrillicPALATALIZATION cyrillicPALOCHKA cyrillicPEmidhook cyrillicPSI cyrillicPSILIPNEUMATA contained +syn keyword contextCommon cyrillicR cyrillicS cyrillicSCHWA cyrillicSCHWAdiaeresis cyrillicSDSC contained +syn keyword contextCommon cyrillicSEMISOFT cyrillicSFTSN cyrillicSH cyrillicSHCH cyrillicSHHA contained +syn keyword contextCommon cyrillicT cyrillicTEDC cyrillicTETSE cyrillicTITLO cyrillicTSHE contained +syn keyword contextCommon cyrillicU cyrillicUK cyrillicUSHRT cyrillicUdiaeresis cyrillicUdoubleacute contained +syn keyword contextCommon cyrillicUmacron cyrillicV cyrillicYA cyrillicYAT cyrillicYERUdiaeresis contained +syn keyword contextCommon cyrillicYI cyrillicYO cyrillicYU cyrillicYstr cyrillicYstrstroke contained +syn keyword contextCommon cyrillicZ cyrillicZDSC cyrillicZEdiaeresis cyrillicZH cyrillicZHEbreve contained +syn keyword contextCommon cyrillicZHEdescender cyrillicZHEdiaeresis cyrillica cyrillicabreve cyrillicadiaeresis contained +syn keyword contextCommon cyrillicae cyrillicb cyrillicbigyus cyrillicbigyusiotified cyrillicc contained +syn keyword contextCommon cyrillicch cyrilliccheabkhasian cyrillicchedc cyrillicchedcabkhasian cyrillicchediaeresis contained +syn keyword contextCommon cyrillicchekhakassian cyrillicchevertstroke cyrillicd cyrillicdje cyrillicdze contained +syn keyword contextCommon cyrillicdzeabkhasian cyrillicdzhe cyrillice cyrillicebreve cyrillicediaeresis contained +syn keyword contextCommon cyrillicegrave cyrilliceiotified cyrilliceltail cyrillicemtail cyrillicendc contained +syn keyword contextCommon cyrillicenghe cyrillicenhook cyrillicentail cyrillicerev cyrillicertick contained +syn keyword contextCommon cyrillicery cyrillicf cyrillicfita cyrillicg cyrillicghemidhook contained +syn keyword contextCommon cyrillicghestroke cyrillicgheupturn cyrillicgje cyrillich cyrillicha contained +syn keyword contextCommon cyrillichadc cyrillichrdsn cyrillici cyrillicidiaeresis cyrillicie contained +syn keyword contextCommon cyrillicigrave cyrillicii cyrillicimacron cyrillicishrt cyrillicishrttail contained +syn keyword contextCommon cyrillicizhitsa cyrillicizhitsadoublegrave cyrillicje cyrillick cyrillickabashkir contained +syn keyword contextCommon cyrillickadc cyrillickahook cyrillickastroke cyrillickavertstroke cyrillickje contained +syn keyword contextCommon cyrillickoppa cyrillicksi cyrillicl cyrilliclittleyus cyrilliclittleyusiotified contained +syn keyword contextCommon cyrilliclje cyrillicm cyrillicn cyrillicnje cyrillico contained +syn keyword contextCommon cyrillicobarred cyrillicobarreddiaeresis cyrillicodiaeresis cyrillicomega cyrillicomegaround contained +syn keyword contextCommon cyrillicomegatitlo cyrillicot cyrillicp cyrillicpemidhook cyrillicpsi contained +syn keyword contextCommon cyrillicr cyrillics cyrillicschwa cyrillicschwadiaeresis cyrillicsdsc contained +syn keyword contextCommon cyrillicsemisoft cyrillicsftsn cyrillicsh cyrillicshch cyrillicshha contained +syn keyword contextCommon cyrillict cyrillictedc cyrillictetse cyrillictshe cyrillicu contained +syn keyword contextCommon cyrillicudiaeresis cyrillicudoubleacute cyrillicuk cyrillicumacron cyrillicushrt contained +syn keyword contextCommon cyrillicv cyrillicya cyrillicyat cyrillicyerudiaeresis cyrillicyi contained +syn keyword contextCommon cyrillicyo cyrillicystr cyrillicystrstroke cyrillicyu cyrillicz contained +syn keyword contextCommon cyrilliczdsc cyrilliczediaeresis cyrilliczh cyrilliczhebreve cyrilliczhedescender contained +syn keyword contextCommon cyrilliczhediaeresis d dag dagger daleth contained +syn keyword contextCommon dasharrow dashedleftarrow dashedrightarrow dashv datasetvariable contained +syn keyword contextCommon date daylong dayoftheweek dayshort dayspermonth contained +syn keyword contextCommon dbinom dcaron dcurl dd ddag contained +syn keyword contextCommon ddagger dddot ddot ddots decrement contained +syn keyword contextCommon decrementcounter decrementedcounter decrementpagenumber decrementsubpagenumber decrementvalue contained +syn keyword contextCommon defaultinterface defaultobjectpage defaultobjectreference defcatcodecommand defconvertedargument contained +syn keyword contextCommon defconvertedcommand defconvertedvalue define defineMPinstance defineTABLEsetup contained +syn keyword contextCommon defineaccent defineactivecharacter definealternativestyle defineanchor defineattachment contained +syn keyword contextCommon defineattribute definebackground definebar defineblock definebodyfont contained +syn keyword contextCommon definebodyfontenvironment definebodyfontswitch definebreakpoint definebreakpoints definebtx contained +syn keyword contextCommon definebtxdataset definebtxregister definebtxrendering definebuffer definebutton contained +syn keyword contextCommon definecapitals definecharacter definecharacterkerning definecharacterspacing definechemical contained +syn keyword contextCommon definechemicals definechemicalsymbol definecollector definecolor definecolorgroup contained +syn keyword contextCommon definecolumnbreak definecolumnset definecolumnsetarea definecolumnsetspan definecombination contained +syn keyword contextCommon definecombinedlist definecommand definecomment definecomplexorsimple definecomplexorsimpleempty contained +syn keyword contextCommon defineconversion defineconversionset definecounter definedataset definedate contained +syn keyword contextCommon definedelimitedtext definedeq definedescription definedfont definedocument contained +syn keyword contextCommon defineeffect defineenumeration defineexpandable defineexpansion defineexternalfigure contained +syn keyword contextCommon definefacingfloat definefallbackfamily definefield definefieldbody definefieldbodyset contained +syn keyword contextCommon definefieldcategory definefieldstack definefiguresymbol definefileconstant definefilefallback contained +syn keyword contextCommon definefilesynonym definefiller definefirstline definefittingpage definefloat contained +syn keyword contextCommon definefont definefontalternative definefontfallback definefontfamily definefontfamilypreset contained +syn keyword contextCommon definefontfeature definefontfile definefontsize definefontsolution definefontstyle contained +syn keyword contextCommon definefontsynonym defineformula defineformulaalternative defineformulaframed defineframed contained +syn keyword contextCommon defineframedcontent defineframedtable defineframedtext definefrozenfont defineglobalcolor contained +syn keyword contextCommon definegraphictypesynonym definegridsnapping definehbox definehead defineheadalternative contained +syn keyword contextCommon definehelp definehigh definehighlight definehspace definehyphenationfeatures contained +syn keyword contextCommon defineindentedtext defineindenting defineinitial defineinsertion defineinteraction contained +syn keyword contextCommon defineinteractionbar defineinteractionmenu defineinterfaceconstant defineinterfaceelement defineinterfacevariable contained +syn keyword contextCommon defineinterlinespace defineintermediatecolor defineitemgroup defineitems definelabel contained +syn keyword contextCommon definelabelclass definelayer definelayerpreset definelayout definelinefiller contained +syn keyword contextCommon definelinenote definelinenumbering definelines definelist definelistalternative contained +syn keyword contextCommon definelistextra definelow definelowhigh definelowmidhigh definemakeup contained +syn keyword contextCommon definemarginblock definemargindata definemarker definemarking definemathaccent contained +syn keyword contextCommon definemathalignment definemathcases definemathcommand definemathdouble definemathdoubleextensible contained +syn keyword contextCommon definemathematics definemathextensible definemathfence definemathfraction definemathframed contained +syn keyword contextCommon definemathmatrix definemathornament definemathover definemathoverextensible definemathovertextextensible contained +syn keyword contextCommon definemathradical definemathstackers definemathstyle definemathtriplet definemathunder contained +syn keyword contextCommon definemathunderextensible definemathundertextextensible definemathunstacked definemeasure definemessageconstant contained +syn keyword contextCommon definemixedcolumns definemode definemulticolumns definemultitonecolor definenamedcolor contained +syn keyword contextCommon definenamespace definenarrower definenote defineorientation defineornament contained +syn keyword contextCommon defineoutputroutine defineoutputroutinecommand defineoverlay definepage definepagebreak contained +syn keyword contextCommon definepagechecker definepagecolumns definepageinjection definepageinjectionalternative definepageshift contained +syn keyword contextCommon definepagestate definepairedbox definepalet definepapersize defineparagraph contained +syn keyword contextCommon defineparagraphs defineparallel defineparbuilder defineperiodkerning defineplaceholder contained +syn keyword contextCommon defineplacement definepositioning defineprefixset defineprocesscolor defineprocessor contained +syn keyword contextCommon defineprofile defineprogram definepushbutton definepushsymbol definereference contained +syn keyword contextCommon definereferenceformat defineregister definerenderingwindow defineresetset defineruby contained +syn keyword contextCommon definescale definescript definesection definesectionblock definesectionlevels contained +syn keyword contextCommon defineselector defineseparatorset defineshift definesidebar definesort contained +syn keyword contextCommon definesorting definespotcolor definestartstop definestyle definestyleinstance contained +syn keyword contextCommon definesubfield definesubformula definesymbol definesynonym definesynonyms contained +syn keyword contextCommon definesystemattribute definesystemconstant definesystemvariable definetabletemplate definetabulate contained +syn keyword contextCommon definetext definetextbackground definetextflow definetextnote definetokenlist contained +syn keyword contextCommon definetooltip definetransparency definetwopasslist definetype definetypeface contained +syn keyword contextCommon definetypescriptprefix definetypescriptsynonym definetypesetting definetyping defineunit contained +syn keyword contextCommon defineuserdata defineuserdataalternative defineviewerlayer definevspace definevspacing contained +syn keyword contextCommon definevspacingamount definextable defrostparagraphproperties delimited delimitedtext contained +syn keyword contextCommon delta depthofstring depthonlybox depthspanningtext depthstrut contained +syn keyword contextCommon determineheadnumber determinelistcharacteristics determinenoflines determineregistercharacteristics devanagarinumerals contained +syn keyword contextCommon dfrac dhook diameter diamond diamondsuit contained +syn keyword contextCommon differentialD differentiald digamma digits dimensiontocount contained +syn keyword contextCommon directboxfromcache directcolor directcolored directconvertedcounter directcopyboxfromcache contained +syn keyword contextCommon directdummyparameter directgetboxllx directgetboxlly directhighlight directlocalframed contained +syn keyword contextCommon directluacode directparwrapper directselect directsetbar directsetup contained +syn keyword contextCommon directsymbol directvspacing dis disabledirectives disableexperiments contained +syn keyword contextCommon disablemode disableoutputstream disableparpositions disableregime disabletrackers contained +syn keyword contextCommon displaymath displaymathematics displaymessage disposeluatable distributedhsize contained +syn keyword contextCommon div dividedsize divideontimes divides dmath contained +syn keyword contextCommon doadaptleftskip doadaptrightskip doaddfeature doassign doassignempty contained +syn keyword contextCommon doboundtext docheckassignment docheckedpair document documentvariable contained +syn keyword contextCommon dodoubleargument dodoubleargumentwithset dodoubleempty dodoubleemptywithset dodoublegroupempty contained +syn keyword contextCommon doeassign doexpandedrecurse dofastloopcs dogetattribute dogetattributeid contained +syn keyword contextCommon dogetcommacommandelement dogobbledoubleempty dogobblesingleempty dohyphens doif contained +syn keyword contextCommon doifMPgraphicelse doifallcommon doifallcommonelse doifalldefinedelse doifallmodes contained +syn keyword contextCommon doifallmodeselse doifassignmentelse doifassignmentelsecs doifblackelse doifbothsides contained +syn keyword contextCommon doifbothsidesoverruled doifboxelse doifbufferelse doifcheckedpagestate doifcolor contained +syn keyword contextCommon doifcolorelse doifcommandhandler doifcommandhandlerelse doifcommon doifcommonelse contained +syn keyword contextCommon doifcontent doifconversiondefinedelse doifconversionnumberelse doifcounter doifcounterelse contained +syn keyword contextCommon doifcurrentfonthasfeatureelse doifdefined doifdefinedcounter doifdefinedcounterelse doifdefinedelse contained +syn keyword contextCommon doifdimensionelse doifdimenstringelse doifdocumentargument doifdocumentargumentelse doifdocumentfilename contained +syn keyword contextCommon doifdocumentfilenameelse doifdocumentvariable doifdocumentvariableelse doifdrawingblackelse doifelse contained +syn keyword contextCommon doifelseMPgraphic doifelseallcommon doifelsealldefined doifelseallmodes doifelseassignment contained +syn keyword contextCommon doifelseassignmentcs doifelseblack doifelsebox doifelseboxincache doifelsebuffer contained +syn keyword contextCommon doifelsecolor doifelsecommandhandler doifelsecommon doifelseconversiondefined doifelseconversionnumber contained +syn keyword contextCommon doifelsecounter doifelsecurrentfonthasfeature doifelsecurrentsortingused doifelsecurrentsynonymshown doifelsecurrentsynonymused contained +syn keyword contextCommon doifelsedefined doifelsedefinedcounter doifelsedimension doifelsedimenstring doifelsedocumentargument contained +syn keyword contextCommon doifelsedocumentfilename doifelsedocumentvariable doifelsedrawingblack doifelseempty doifelseemptyvalue contained +syn keyword contextCommon doifelseemptyvariable doifelseenv doifelsefastoptionalcheck doifelsefastoptionalcheckcs doifelsefieldbody contained +syn keyword contextCommon doifelsefieldcategory doifelsefigure doifelsefile doifelsefiledefined doifelsefileexists contained +syn keyword contextCommon doifelsefirstchar doifelseflagged doifelsefontchar doifelsefontfeature doifelsefontpresent contained +syn keyword contextCommon doifelsefontsynonym doifelseframed doifelsehasspace doifelsehelp doifelseincsname contained +syn keyword contextCommon doifelseindented doifelseinelement doifelseinputfile doifelseinsertion doifelseinset contained +syn keyword contextCommon doifelseinstring doifelseinsymbolset doifelseintoks doifelseintwopassdata doifelseitalic contained +syn keyword contextCommon doifelselanguage doifelselayerdata doifelselayoutdefined doifelselayoutsomeline doifelselayouttextline contained +syn keyword contextCommon doifelseleapyear doifelselist doifelselocation doifelselocfile doifelsemainfloatbody contained +syn keyword contextCommon doifelsemarkedcontent doifelsemarkedpage doifelsemarking doifelsemeaning doifelsemessage contained +syn keyword contextCommon doifelsemode doifelsenextbgroup doifelsenextbgroupcs doifelsenextchar doifelsenextoptional contained +syn keyword contextCommon doifelsenextoptionalcs doifelsenextparenthesis doifelsenonzeropositive doifelsenoteonsamepage doifelsenothing contained +syn keyword contextCommon doifelsenumber doifelseobjectfound doifelseobjectreferencefound doifelseoddpage doifelseoddpagefloat contained +syn keyword contextCommon doifelseoldercontext doifelseolderversion doifelseorientation doifelseoverlapping doifelseoverlay contained +syn keyword contextCommon doifelseparallel doifelseparentfile doifelseparwrapper doifelsepath doifelsepathexists contained +syn keyword contextCommon doifelsepatterns doifelseposition doifelsepositionaction doifelsepositiononpage doifelsepositionsonsamepage contained +syn keyword contextCommon doifelsepositionsonthispage doifelsepositionsused doifelsereferencefound doifelserightpage doifelserightpagefloat contained +syn keyword contextCommon doifelserighttoleftinbox doifelsesamelinereference doifelsesamestring doifelsesetups doifelsesomebackground contained +syn keyword contextCommon doifelsesomespace doifelsesomething doifelsesometoks doifelsestringinstring doifelsestructurelisthasnumber contained +syn keyword contextCommon doifelsestructurelisthaspage doifelsesymboldefined doifelsesymbolset doifelsetext doifelsetextflow contained +syn keyword contextCommon doifelsetextflowcollector doifelsetopofpage doifelsetypingfile doifelseundefined doifelseurldefined contained +syn keyword contextCommon doifelsevalue doifelsevaluenothing doifelsevariable doifempty doifemptyelse contained +syn keyword contextCommon doifemptytoks doifemptyvalue doifemptyvalueelse doifemptyvariable doifemptyvariableelse contained +syn keyword contextCommon doifenv doifenvelse doiffastoptionalcheckcselse doiffastoptionalcheckelse doiffieldbodyelse contained +syn keyword contextCommon doiffieldcategoryelse doiffigureelse doiffile doiffiledefinedelse doiffileelse contained +syn keyword contextCommon doiffileexistselse doiffirstcharelse doifflaggedelse doiffontcharelse doiffontfeatureelse contained +syn keyword contextCommon doiffontpresentelse doiffontsynonymelse doifhasspaceelse doifhelpelse doifincsnameelse contained +syn keyword contextCommon doifinelementelse doifinputfileelse doifinsertionelse doifinset doifinsetelse contained +syn keyword contextCommon doifinstring doifinstringelse doifinsymbolset doifinsymbolsetelse doifintokselse contained +syn keyword contextCommon doifintwopassdataelse doifitalicelse doiflanguageelse doiflayerdataelse doiflayoutdefinedelse contained +syn keyword contextCommon doiflayoutsomelineelse doiflayouttextlineelse doifleapyearelse doiflistelse doiflocationelse contained +syn keyword contextCommon doiflocfileelse doifmainfloatbodyelse doifmarkingelse doifmeaningelse doifmessageelse contained +syn keyword contextCommon doifmode doifmodeelse doifnextbgroupcselse doifnextbgroupelse doifnextcharelse contained +syn keyword contextCommon doifnextoptionalcselse doifnextoptionalelse doifnextparenthesiselse doifnonzeropositiveelse doifnot contained +syn keyword contextCommon doifnotallcommon doifnotallmodes doifnotcommandhandler doifnotcommon doifnotcounter contained +syn keyword contextCommon doifnotdocumentargument doifnotdocumentfilename doifnotdocumentvariable doifnotempty doifnotemptyvalue contained +syn keyword contextCommon doifnotemptyvariable doifnotenv doifnoteonsamepageelse doifnotescollected doifnotfile contained +syn keyword contextCommon doifnotflagged doifnothing doifnothingelse doifnotinset doifnotinsidesplitfloat contained +syn keyword contextCommon doifnotinstring doifnotmode doifnotnumber doifnotsamestring doifnotsetups contained +syn keyword contextCommon doifnotvalue doifnotvariable doifnumber doifnumberelse doifobjectfoundelse contained +syn keyword contextCommon doifobjectreferencefoundelse doifoddpageelse doifoddpagefloatelse doifoldercontextelse doifolderversionelse contained +syn keyword contextCommon doifoutervmode doifoverlappingelse doifoverlayelse doifparallelelse doifparentfileelse contained +syn keyword contextCommon doifpathelse doifpathexistselse doifpatternselse doifposition doifpositionaction contained +syn keyword contextCommon doifpositionactionelse doifpositionelse doifpositiononpageelse doifpositionsonsamepageelse doifpositionsonthispageelse contained +syn keyword contextCommon doifpositionsusedelse doifreferencefoundelse doifrightpageelse doifrightpagefloatelse doifrighttoleftinboxelse contained +syn keyword contextCommon doifsamelinereferenceelse doifsamestring doifsamestringelse doifsetups doifsetupselse contained +syn keyword contextCommon doifsomebackground doifsomebackgroundelse doifsomespaceelse doifsomething doifsomethingelse contained +syn keyword contextCommon doifsometoks doifsometokselse doifstringinstringelse doifstructurelisthasnumberelse doifstructurelisthaspageelse contained +syn keyword contextCommon doifsymboldefinedelse doifsymbolsetelse doiftext doiftextelse doiftextflowcollectorelse contained +syn keyword contextCommon doiftextflowelse doiftopofpageelse doiftypingfileelse doifundefined doifundefinedcounter contained +syn keyword contextCommon doifundefinedelse doifunknownfontfeature doifurldefinedelse doifvalue doifvalueelse contained +syn keyword contextCommon doifvaluenothing doifvaluenothingelse doifvaluesomething doifvariable doifvariableelse contained +syn keyword contextCommon doindentation dollar doloop doloopoverlist donothing contained +syn keyword contextCommon dontconvertfont dontleavehmode dontpermitspacesbetweengroups dopositionaction doprocesslocalsetups contained +syn keyword contextCommon doquadrupleargument doquadrupleempty doquadruplegroupempty doquintupleargument doquintupleempty contained +syn keyword contextCommon doquintuplegroupempty dorechecknextindentation dorecurse dorepeatwithcommand doreplacefeature contained +syn keyword contextCommon doresetandafffeature doresetattribute dorotatebox dosetattribute dosetleftskipadaption contained +syn keyword contextCommon dosetrightskipadaption dosetupcheckedinterlinespace doseventupleargument doseventupleempty dosingleargument contained +syn keyword contextCommon dosingleempty dosinglegroupempty dosixtupleargument dosixtupleempty dosomebreak contained +syn keyword contextCommon dostepwiserecurse dosubtractfeature dot doteq doteqdot contained +syn keyword contextCommon dotfill dotfskip dotlessI dotlessJ dotlessi contained +syn keyword contextCommon dotlessj dotlessjstroke dotminus dotoks dotplus contained +syn keyword contextCommon dotripleargument dotripleargumentwithset dotripleempty dotripleemptywithset dotriplegroupempty contained +syn keyword contextCommon dots dottedcircle dottedrightarrow doublebar doublebond contained +syn keyword contextCommon doublebrace doublebracket doublecap doublecup doubleparent contained +syn keyword contextCommon doubleprime doubleverticalbar dowith dowithnextbox dowithnextboxcontent contained +syn keyword contextCommon dowithnextboxcontentcs dowithnextboxcs dowithpargument dowithrange dowithwargument contained +syn keyword contextCommon downarrow downdasharrow downdownarrows downharpoonleft downharpoonright contained +syn keyword contextCommon downuparrows downwhitearrow downzigzagarrow dpofstring dstroke contained +syn keyword contextCommon dtail dummydigit dummyparameter dzcaronligature dzligature contained +syn keyword contextCommon eTeX eacute ebreve ecaron ecedilla contained +syn keyword contextCommon ecircumflex ecircumflexacute ecircumflexdotbelow ecircumflexgrave ecircumflexhook contained +syn keyword contextCommon ecircumflextilde edefconvertedargument ediaeresis edotaccent edotbelow contained +syn keyword contextCommon edoublegrave ee efcmaxheight efcmaxwidth efcminheight contained +syn keyword contextCommon efcminwidth efcparameter effect egrave ehook contained +syn keyword contextCommon einvertedbreve elapsedseconds elapsedsteptime elapsedtime eleftarrowfill contained +syn keyword contextCommon eleftharpoondownfill eleftharpoonupfill eleftrightarrowfill element ell contained +syn keyword contextCommon em emacron embeddedxtable emdash emphasisboldface contained +syn keyword contextCommon emphasistypeface emptylines emptyset emquad emspace contained +syn keyword contextCommon enableasciimode enabledirectives enableexperiments enablemode enableoutputstream contained +syn keyword contextCommon enableparpositions enableregime enabletrackers endash endnote contained +syn keyword contextCommon endofline enquad enskip enspace env contained +syn keyword contextCommon environment envvar eogonek eoverbarfill eoverbracefill contained +syn keyword contextCommon eoverbracketfill eoverparentfill epos epsilon eq contained +syn keyword contextCommon eqcirc eqeq eqeqeq eqgtr eqless contained +syn keyword contextCommon eqsim eqslantgtr eqslantless equaldigits equalscolon contained +syn keyword contextCommon equiv erightarrowfill erightharpoondownfill erightharpoonupfill eta contained +syn keyword contextCommon eth ethiopic etilde etwoheadrightarrowfill eunderbarfill contained +syn keyword contextCommon eunderbracefill eunderbracketfill eunderparentfill exceptions exclamdown contained +syn keyword contextCommon executeifdefined exists exitloop exitloopnow expandcheckedcsname contained +syn keyword contextCommon expanded expandedcollect expandeddoif expandeddoifelse expandeddoifnot contained +syn keyword contextCommon expandfontsynonym expdoif expdoifcommonelse expdoifelse expdoifelsecommon contained +syn keyword contextCommon expdoifelseinset expdoifinsetelse expdoifnot exponentiale extendedcatcodetable contained +syn keyword contextCommon externalfigure externalfigurecollection externalfigurecollectionmaxheight externalfigurecollectionmaxwidth externalfigurecollectionminheight contained +syn keyword contextCommon externalfigurecollectionminwidth externalfigurecollectionparameter facingfloat fact fakebox contained +syn keyword contextCommon fallingdotseq fastdecrement fastincrement fastlocalframed fastloopfinal contained +syn keyword contextCommon fastloopindex fastscale fastsetup fastsetupwithargument fastsetupwithargumentswapped contained +syn keyword contextCommon fastswitchtobodyfont fastsxsy feature fence fenced contained +syn keyword contextCommon fetchallmarkings fetchallmarks fetchmark fetchmarking fetchonemark contained +syn keyword contextCommon fetchonemarking fetchruntinecommand fetchtwomarkings fetchtwomarks ffiligature contained +syn keyword contextCommon ffligature fflligature fhook field fieldbody contained +syn keyword contextCommon fieldstack fifthoffivearguments fifthofsixarguments figure figuredash contained +syn keyword contextCommon figurefilename figurefilepath figurefiletype figurefullname figureheight contained +syn keyword contextCommon figurenaturalheight figurenaturalwidth figurespace figuresymbol figuretext contained +syn keyword contextCommon figurewidth filename filigature filledhboxb filledhboxc contained +syn keyword contextCommon filledhboxg filledhboxk filledhboxm filledhboxr filledhboxy contained +syn keyword contextCommon filler fillinline fillinrules fillintext fillupto contained +syn keyword contextCommon filterfromnext filterfromvalue filterpages filterreference findtwopassdata contained +syn keyword contextCommon finishregisterentry firstcharacter firstcounter firstcountervalue firstinlist contained +syn keyword contextCommon firstoffivearguments firstoffourarguments firstofoneargument firstofoneunexpanded firstofsixarguments contained +syn keyword contextCommon firstofthreearguments firstofthreeunexpanded firstoftwoarguments firstoftwounexpanded firstrealpage contained +syn keyword contextCommon firstrealpagenumber firstsubcountervalue firstsubpage firstsubpagenumber firstuserpage contained +syn keyword contextCommon firstuserpagenumber fitfield fitfieldframed fittingpage fittopbaselinegrid contained +syn keyword contextCommon fiveeighths fivesixths fixed fixedspace fixedspaces contained +syn keyword contextCommon flag flat flligature floatcombination floatuserdataparameter contained +syn keyword contextCommon flushbox flushboxregister flushcollector flushedrightlastline flushlayer contained +syn keyword contextCommon flushlocalfloats flushnextbox flushnotes flushoutputstream flushshapebox contained +syn keyword contextCommon flushtextflow flushtokens flushtoks font fontalternative contained +syn keyword contextCommon fontbody fontchar fontcharbyindex fontclass fontclassname contained +syn keyword contextCommon fontface fontfeaturelist fontsize fontsolution fontstyle contained +syn keyword contextCommon footnote footnotetext forall forcecharacterstripping forcelocalfloats contained +syn keyword contextCommon forgeteverypar forgetparagraphfreezing forgetparameters forgetparskip forgetparwrapper contained +syn keyword contextCommon forgetragged formula formulanumber formulas foundbox contained +syn keyword contextCommon fourfifths fourperemspace fourthoffivearguments fourthoffourarguments fourthofsixarguments contained +syn keyword contextCommon frac framed framedcell framedcontent frameddimension contained +syn keyword contextCommon framedparameter framedrow framedtable framedtext freezedimenmacro contained +syn keyword contextCommon freezemeasure freezeparagraphproperties frenchspacing from fromlinenote contained +syn keyword contextCommon frontmatter frown frozenhbox frule gacute contained +syn keyword contextCommon gamma gbreve gcaron gcircumflex gcommaaccent contained +syn keyword contextCommon gdefconvertedargument gdefconvertedcommand gdotaccent ge geq contained +syn keyword contextCommon geqq geqslant getMPdrawing getMPlayer getboxfromcache contained +syn keyword contextCommon getboxllx getboxlly getbuffer getbufferdata getcommacommandsize contained +syn keyword contextCommon getcommalistsize getdatavalue getdayoftheweek getdayspermonth getdefinedbuffer contained +syn keyword contextCommon getdocumentargument getdocumentargumentdefault getdocumentfilename getdummyparameters getemptyparameters contained +syn keyword contextCommon geteparameters getexpandedparameters getfiguredimensions getfirstcharacter getfirsttwopassdata contained +syn keyword contextCommon getfromcommacommand getfromcommalist getfromluatable getfromtwopassdata getglyphdirect contained +syn keyword contextCommon getglyphstyled getgparameters getinlineuserdata getlasttwopassdata getlocalfloat contained +syn keyword contextCommon getlocalfloats getmarking getmessage getnamedglyphdirect getnamedglyphstyled contained +syn keyword contextCommon getnamedtwopassdatalist getnaturaldimensions getnoflines getobject getobjectdimensions contained +syn keyword contextCommon getpaletsize getparameters getparwrapper getprivatechar getprivateslot contained +syn keyword contextCommon getrandomcount getrandomdimen getrandomfloat getrandomnumber getrandomseed contained +syn keyword contextCommon getraweparameters getrawgparameters getrawnoflines getrawparameters getrawxparameters contained +syn keyword contextCommon getreference getreferenceentry getroundednoflines gets getsubstring contained +syn keyword contextCommon gettokenlist gettwopassdata gettwopassdatalist getuserdata getuvalue contained +syn keyword contextCommon getvalue getvariable getvariabledefault getxparameters gg contained +syn keyword contextCommon ggg gggtr gimel globaldisablemode globalenablemode contained +syn keyword contextCommon globalletempty globalpopbox globalpopmacro globalpreventmode globalprocesscommalist contained +syn keyword contextCommon globalpushbox globalpushmacro globalswapcounts globalswapdimens globalswapmacros contained +syn keyword contextCommon globalundefine glyphfontfile gnapprox gneqq gnsim contained +syn keyword contextCommon gobbledoubleempty gobbleeightarguments gobblefivearguments gobblefiveoptionals gobblefourarguments contained +syn keyword contextCommon gobblefouroptionals gobbleninearguments gobbleoneargument gobbleoneoptional gobblesevenarguments contained +syn keyword contextCommon gobblesingleempty gobblesixarguments gobblespacetokens gobbletenarguments gobblethreearguments contained +syn keyword contextCommon gobblethreeoptionals gobbletwoarguments gobbletwooptionals gobbleuntil gobbleuntilrelax contained +syn keyword contextCommon godown goto gotobox gotopage grabbufferdata contained +syn keyword contextCommon grabbufferdatadirect grabuntil graphictext grave graycolor contained +syn keyword contextCommon grayvalue greedysplitstring greekAlpha greekAlphadasia greekAlphadasiaperispomeni contained +syn keyword contextCommon greekAlphadasiatonos greekAlphadasiavaria greekAlphaiotasub greekAlphaiotasubdasia greekAlphaiotasubdasiaperispomeni contained +syn keyword contextCommon greekAlphaiotasubdasiatonos greekAlphaiotasubdasiavaria greekAlphaiotasubpsili greekAlphaiotasubpsiliperispomeni greekAlphaiotasubpsilitonos contained +syn keyword contextCommon greekAlphaiotasubpsilivaria greekAlphamacron greekAlphapsili greekAlphapsiliperispomeni greekAlphapsilitonos contained +syn keyword contextCommon greekAlphapsilivaria greekAlphatonos greekAlphavaria greekAlphavrachy greekBeta contained +syn keyword contextCommon greekChi greekCoronis greekDelta greekEpsilon greekEpsilondasia contained +syn keyword contextCommon greekEpsilondasiatonos greekEpsilondasiavaria greekEpsilonpsili greekEpsilonpsilitonos greekEpsilonpsilivaria contained +syn keyword contextCommon greekEpsilontonos greekEpsilonvaria greekEta greekEtadasia greekEtadasiaperispomeni contained +syn keyword contextCommon greekEtadasiatonos greekEtadasiavaria greekEtaiotasub greekEtaiotasubdasia greekEtaiotasubdasiaperispomeni contained +syn keyword contextCommon greekEtaiotasubdasiatonos greekEtaiotasubdasiavaria greekEtaiotasubpsili greekEtaiotasubpsiliperispomeni greekEtaiotasubpsilitonos contained +syn keyword contextCommon greekEtaiotasubpsilivaria greekEtapsili greekEtapsiliperispomeni greekEtapsilitonos greekEtapsilivaria contained +syn keyword contextCommon greekEtatonos greekEtavaria greekGamma greekIota greekIotadasia contained +syn keyword contextCommon greekIotadasiaperispomeni greekIotadasiatonos greekIotadasiavaria greekIotadialytika greekIotamacron contained +syn keyword contextCommon greekIotapsili greekIotapsiliperispomeni greekIotapsilitonos greekIotapsilivaria greekIotatonos contained +syn keyword contextCommon greekIotavaria greekIotavrachy greekKappa greekLambda greekMu contained +syn keyword contextCommon greekNu greekOmega greekOmegadasia greekOmegadasiaperispomeni greekOmegadasiatonos contained +syn keyword contextCommon greekOmegadasiavaria greekOmegaiotasub greekOmegaiotasubdasia greekOmegaiotasubdasiaperispomeni greekOmegaiotasubdasiatonos contained +syn keyword contextCommon greekOmegaiotasubdasiavaria greekOmegaiotasubpsili greekOmegaiotasubpsiliperispomeni greekOmegaiotasubpsilitonos greekOmegaiotasubpsilivaria contained +syn keyword contextCommon greekOmegapsili greekOmegapsiliperispomeni greekOmegapsilitonos greekOmegapsilivaria greekOmegatonos contained +syn keyword contextCommon greekOmegavaria greekOmicron greekOmicrondasia greekOmicrondasiatonos greekOmicrondasiavaria contained +syn keyword contextCommon greekOmicronpsili greekOmicronpsilitonos greekOmicronpsilivaria greekOmicrontonos greekOmicronvaria contained +syn keyword contextCommon greekPhi greekPi greekPsi greekRho greekRhodasia contained +syn keyword contextCommon greekSigma greekSigmalunate greekTau greekTheta greekUpsilon contained +syn keyword contextCommon greekUpsilondasia greekUpsilondasiaperispomeni greekUpsilondasiatonos greekUpsilondasiavaria greekUpsilondialytika contained +syn keyword contextCommon greekUpsilonmacron greekUpsilontonos greekUpsilonvaria greekUpsilonvrachy greekXi contained +syn keyword contextCommon greekZeta greekalpha greekalphadasia greekalphadasiaperispomeni greekalphadasiatonos contained +syn keyword contextCommon greekalphadasiavaria greekalphaiotasub greekalphaiotasubdasia greekalphaiotasubdasiaperispomeni greekalphaiotasubdasiatonos contained +syn keyword contextCommon greekalphaiotasubdasiavaria greekalphaiotasubperispomeni greekalphaiotasubpsili greekalphaiotasubpsiliperispomeni greekalphaiotasubpsilitonos contained +syn keyword contextCommon greekalphaiotasubpsilivaria greekalphaiotasubtonos greekalphaiotasubvaria greekalphamacron greekalphaoxia contained +syn keyword contextCommon greekalphaperispomeni greekalphapsili greekalphapsiliperispomeni greekalphapsilitonos greekalphapsilivaria contained +syn keyword contextCommon greekalphatonos greekalphavaria greekalphavrachy greekbeta greekbetaalt contained +syn keyword contextCommon greekchi greekdasia greekdasiaperispomeni greekdasiavaria greekdelta contained +syn keyword contextCommon greekdialytikaperispomeni greekdialytikatonos greekdialytikavaria greekdigamma greekepsilon contained +syn keyword contextCommon greekepsilonalt greekepsilondasia greekepsilondasiatonos greekepsilondasiavaria greekepsilonoxia contained +syn keyword contextCommon greekepsilonpsili greekepsilonpsilitonos greekepsilonpsilivaria greekepsilontonos greekepsilonvaria contained +syn keyword contextCommon greeketa greeketadasia greeketadasiaperispomeni greeketadasiatonos greeketadasiavaria contained +syn keyword contextCommon greeketaiotasub greeketaiotasubdasia greeketaiotasubdasiaperispomeni greeketaiotasubdasiatonos greeketaiotasubdasiavaria contained +syn keyword contextCommon greeketaiotasubperispomeni greeketaiotasubpsili greeketaiotasubpsiliperispomeni greeketaiotasubpsilitonos greeketaiotasubpsilivaria contained +syn keyword contextCommon greeketaiotasubtonos greeketaiotasubvaria greeketaoxia greeketaperispomeni greeketapsili contained +syn keyword contextCommon greeketapsiliperispomeni greeketapsilitonos greeketapsilivaria greeketatonos greeketavaria contained +syn keyword contextCommon greekfinalsigma greekgamma greekiota greekiotadasia greekiotadasiaperispomeni contained +syn keyword contextCommon greekiotadasiatonos greekiotadasiavaria greekiotadialytika greekiotadialytikaperispomeni greekiotadialytikatonos contained +syn keyword contextCommon greekiotadialytikavaria greekiotamacron greekiotaoxia greekiotaperispomeni greekiotapsili contained +syn keyword contextCommon greekiotapsiliperispomeni greekiotapsilitonos greekiotapsilivaria greekiotatonos greekiotavaria contained +syn keyword contextCommon greekiotavrachy greekkappa greekkoppa greeklambda greekmu contained +syn keyword contextCommon greeknu greeknumerals greeknumkoppa greekomega greekomegadasia contained +syn keyword contextCommon greekomegadasiaperispomeni greekomegadasiatonos greekomegadasiavaria greekomegaiotasub greekomegaiotasubdasia contained +syn keyword contextCommon greekomegaiotasubdasiaperispomeni greekomegaiotasubdasiatonos greekomegaiotasubdasiavaria greekomegaiotasubperispomeni greekomegaiotasubpsili contained +syn keyword contextCommon greekomegaiotasubpsiliperispomeni greekomegaiotasubpsilitonos greekomegaiotasubpsilivaria greekomegaiotasubtonos greekomegaiotasubvaria contained +syn keyword contextCommon greekomegaoxia greekomegaperispomeni greekomegapsili greekomegapsiliperispomeni greekomegapsilitonos contained +syn keyword contextCommon greekomegapsilivaria greekomegatonos greekomegavaria greekomicron greekomicrondasia contained +syn keyword contextCommon greekomicrondasiatonos greekomicrondasiavaria greekomicronoxia greekomicronpsili greekomicronpsilitonos contained +syn keyword contextCommon greekomicronpsilivaria greekomicrontonos greekomicronvaria greekoxia greekperispomeni contained +syn keyword contextCommon greekphi greekphialt greekpi greekpialt greekprosgegrammeni contained +syn keyword contextCommon greekpsi greekpsili greekpsiliperispomeni greekpsilivaria greekrho contained +syn keyword contextCommon greekrhoalt greekrhodasia greekrhopsili greeksampi greeksigma contained +syn keyword contextCommon greeksigmalunate greekstigma greektau greektheta greekthetaalt contained +syn keyword contextCommon greektonos greekupsilon greekupsilondasia greekupsilondasiaperispomeni greekupsilondasiatonos contained +syn keyword contextCommon greekupsilondasiavaria greekupsilondiaeresis greekupsilondialytikaperispomeni greekupsilondialytikatonos greekupsilondialytikavaria contained +syn keyword contextCommon greekupsilonmacron greekupsilonoxia greekupsilonperispomeni greekupsilonpsili greekupsilonpsiliperispomeni contained +syn keyword contextCommon greekupsilonpsilitonos greekupsilonpsilivaria greekupsilontonos greekupsilonvaria greekupsilonvrachy contained +syn keyword contextCommon greekvaria greekxi greekzeta grid gridsnapping contained +syn keyword contextCommon groupedcommand gsetboxllx gsetboxlly gstroke gt contained +syn keyword contextCommon gtrapprox gtrdot gtreqless gtreqqless gtrless contained +syn keyword contextCommon gtrsim guilsingleleft guilsingleright gujaratinumerals gurmurkhinumerals contained +syn keyword contextCommon hairline hairspace halflinestrut halfstrut halfwaybox contained +syn keyword contextCommon handletokens handwritten hanging hangul hanzi contained +syn keyword contextCommon hash hat hbar hbox hboxestohbox contained +syn keyword contextCommon hboxofvbox hboxreference hboxregister hcaron hcircumflex contained +syn keyword contextCommon hdofstring head headhbox headlanguage headnumber contained +syn keyword contextCommon headnumbercontent headnumberdistance headnumberwidth headreferenceattributes headsetupspacing contained +syn keyword contextCommon headtext headtextcontent headtextdistance headtexts headtextwidth contained +syn keyword contextCommon headvbox headwidth heartsuit hebrewAlef hebrewAyin contained +syn keyword contextCommon hebrewBet hebrewDalet hebrewGimel hebrewHe hebrewHet contained +syn keyword contextCommon hebrewKaf hebrewKaffinal hebrewLamed hebrewMem hebrewMemfinal contained +syn keyword contextCommon hebrewNun hebrewNunfinal hebrewPe hebrewPefinal hebrewQof contained +syn keyword contextCommon hebrewResh hebrewSamekh hebrewShin hebrewTav hebrewTet contained +syn keyword contextCommon hebrewTsadi hebrewTsadifinal hebrewVav hebrewYod hebrewZayin contained +syn keyword contextCommon hebrewnumerals heightanddepthofstring heightofstring heightspanningtext helptext contained +syn keyword contextCommon hexnumber hexstringtonumber hglue hiddenbar hiddencitation contained +syn keyword contextCommon hiddencite hideblocks hiding high highlight contained +syn keyword contextCommon highordinalstr hilo himilo hl hookleftarrow contained +syn keyword contextCommon hookrightarrow horizontalgrowingbar horizontalpositionbar hpackbox hpackedbox contained +syn keyword contextCommon hphantom hpos hsizefraction hslash hsmash contained +syn keyword contextCommon hsmashbox hsmashed hspace hstroke htdpofstring contained +syn keyword contextCommon htofstring hyphen hyphenatedcoloredword hyphenatedfile hyphenatedfilename contained +syn keyword contextCommon hyphenatedhbox hyphenatedpar hyphenatedurl hyphenatedword hyphenation contained +syn keyword contextCommon iacute ibox ibreve icaron icircumflex contained +syn keyword contextCommon ideographichalffillspace ideographicspace idiaeresis idotaccent idotbelow contained +syn keyword contextCommon idoublegrave idxfromluatable ifassignment iff ifinobject contained +syn keyword contextCommon ifinoutputstream ifparameters iftrialtypesetting ignoreimplicitspaces ignoretagsinexport contained +syn keyword contextCommon ignorevalue igrave ihook ii iiiint contained +syn keyword contextCommon iiiintop iiint iiintop iint iintop contained +syn keyword contextCommon iinvertedbreve ijligature imacron imaginaryi imaginaryj contained +syn keyword contextCommon imath immediatesavetwopassdata impliedby implies imply contained +syn keyword contextCommon in includemenu includesvgbuffer includesvgfile includeversioninfo contained +syn keyword contextCommon increment incrementcounter incrementedcounter incrementpagenumber incrementsubpagenumber contained +syn keyword contextCommon incrementvalue indentation indentedtext index infofont contained +syn keyword contextCommon infofontbold inframed infty infull inheritparameter contained +syn keyword contextCommon inhibitblank ininner ininneredge ininnermargin initializeboxstack contained +syn keyword contextCommon inleft inleftedge inleftmargin inline inlinebuffer contained +syn keyword contextCommon inlinedbox inlinemath inlinemathematics inlinemessage inlineordisplaymath contained +syn keyword contextCommon inlineprettyprintbuffer inlinerange inmargin inmframed innerflushshapebox contained +syn keyword contextCommon inother inouter inouteredge inoutermargin input contained +syn keyword contextCommon inputfilebarename inputfilename inputfilerealsuffix inputfilesuffix inputgivenfile contained +syn keyword contextCommon inright inrightedge inrightmargin insertpages inspectluatable contained +syn keyword contextCommon installactionhandler installactivecharacter installanddefineactivecharacter installattributestack installautocommandhandler contained +syn keyword contextCommon installautosetuphandler installbasicautosetuphandler installbasicparameterhandler installbottomframerenderer installcommandhandler contained +syn keyword contextCommon installcorenamespace installctxfunction installctxscanner installdefinehandler installdefinitionset contained +syn keyword contextCommon installdefinitionsetmember installdirectcommandhandler installdirectparameterhandler installdirectparametersethandler installdirectsetuphandler contained +syn keyword contextCommon installdirectstyleandcolorhandler installframedautocommandhandler installframedcommandhandler installglobalmacrostack installlanguage contained +syn keyword contextCommon installleftframerenderer installmacrostack installnamespace installoutputroutine installpagearrangement contained +syn keyword contextCommon installparameterhandler installparameterhashhandler installparametersethandler installparentinjector installprotectedctxfunction contained +syn keyword contextCommon installprotectedctxscanner installrightframerenderer installrootparameterhandler installsetuphandler installsetuponlycommandhandler contained +syn keyword contextCommon installshipoutmethod installsimplecommandhandler installsimpleframedcommandhandler installstyleandcolorhandler installswitchcommandhandler contained +syn keyword contextCommon installswitchsetuphandler installtexdirective installtextracker installtopframerenderer installunitsseparator contained +syn keyword contextCommon installunitsspace installversioninfo int intclockwise integerrounding contained +syn keyword contextCommon integers interaction interactionbar interactionbuttons interactionmenu contained +syn keyword contextCommon intercal interface intermezzotext intertext interwordspaceafter contained +syn keyword contextCommon interwordspacebefore interwordspaces interwordspacesafter interwordspacesbefore intop contained +syn keyword contextCommon invisiblecomma invisibleplus invisibletimes invokepagehandler iogonek contained +syn keyword contextCommon iota italic italicbold italiccorrection italicface contained +syn keyword contextCommon item itemgroup itemgroupcolumns itemize items contained +syn keyword contextCommon itemtag itilde jcaron jcircumflex ji contained +syn keyword contextCommon jmath jobfilename jobfilesuffix kap kappa contained +syn keyword contextCommon kcaron kcommaaccent keepblocks keeplinestogether keepunwantedspaces contained +syn keyword contextCommon kerncharacters khook kkra knockout koreancirclenumerals contained +syn keyword contextCommon koreannumerals koreannumeralsc koreannumeralsp koreanparentnumerals lVert contained +syn keyword contextCommon labellanguage labeltext labeltexts lacute lambda contained +syn keyword contextCommon lambdabar land langle language languageCharacters contained +syn keyword contextCommon languagecharacters languagecharwidth laplace lastcounter lastcountervalue contained +syn keyword contextCommon lastdigit lastlinewidth lastnaturalboxdp lastnaturalboxht lastnaturalboxwd contained +syn keyword contextCommon lastparwrapper lastpredefinedsymbol lastrealpage lastrealpagenumber lastsubcountervalue contained +syn keyword contextCommon lastsubpage lastsubpagenumber lasttwodigits lastuserpage lastuserpagenumber contained +syn keyword contextCommon lateluacode latin layeredtext layerheight layerwidth contained +syn keyword contextCommon layout lazysavetaggedtwopassdata lazysavetwopassdata lbar lbox contained +syn keyword contextCommon lbrace lbracket lcaron lceil lchexnumber contained +syn keyword contextCommon lchexnumbers lcommaaccent lcurl ldot ldotmiddle contained +syn keyword contextCommon ldotp ldots le leadsto left contained +syn keyword contextCommon leftaligned leftarrow leftarrowtail leftarrowtriangle leftbottombox contained +syn keyword contextCommon leftbox leftdasharrow leftguillemot leftharpoondown leftharpoonup contained +syn keyword contextCommon lefthbox leftheadtext leftlabeltext leftleftarrows leftline contained +syn keyword contextCommon leftmathlabeltext leftorrighthbox leftorrightvbox leftorrightvtop leftrightarrow contained +syn keyword contextCommon leftrightarrows leftrightarrowtriangle leftrightharpoons leftrightsquigarrow leftskipadaption contained +syn keyword contextCommon leftsquigarrow leftsubguillemot leftthreetimes lefttopbox lefttoright contained +syn keyword contextCommon lefttorighthbox lefttorightvbox lefttorightvtop leftwavearrow leftwhitearrow contained +syn keyword contextCommon legend leq leqq leqslant lessapprox contained +syn keyword contextCommon lessdot lesseqgtr lesseqqgtr lessgtr lesssim contained +syn keyword contextCommon letbeundefined letcatcodecommand letcscsname letcsnamecs letcsnamecsname contained +syn keyword contextCommon letdummyparameter letempty letgvalue letgvalueempty letgvalurelax contained +syn keyword contextCommon letterampersand letterat letterbackslash letterbar letterbgroup contained +syn keyword contextCommon letterclosebrace lettercolon letterdollar letterdoublequote letteregroup contained +syn keyword contextCommon letterescape letterexclamationmark letterhash letterhat letterleftbrace contained +syn keyword contextCommon letterleftbracket letterleftparenthesis letterless lettermore letteropenbrace contained +syn keyword contextCommon letterpercent letterquestionmark letterrightbrace letterrightbracket letterrightparenthesis contained +syn keyword contextCommon lettersinglequote letterslash letterspacing lettertilde letterunderscore contained +syn keyword contextCommon letvalue letvalueempty letvaluerelax lfence lfloor contained +syn keyword contextCommon lgroup lhbox lhooknwarrow lhooksearrow limitatefirstline contained +syn keyword contextCommon limitatelines limitatetext line linealignment linebox contained +syn keyword contextCommon linecorrection linefeed linefiller linefillerhbox linefillervbox contained +syn keyword contextCommon linefillervtop linenote linenumbering lines linespanningtext contained +syn keyword contextCommon linetable linetablebody linetablecell linetablehead linethickness contained +syn keyword contextCommon linterval listcitation listcite listlength listnamespaces contained +syn keyword contextCommon literalmode ljligature ll llangle llap contained +syn keyword contextCommon llbracket llcorner lll llless llointerval contained +syn keyword contextCommon lmoustache lnapprox lneq lneqq lnot contained +syn keyword contextCommon lnsim loadanyfile loadanyfileonce loadbtxdefinitionfile loadbtxreplacementfile contained +syn keyword contextCommon loadcldfile loadcldfileonce loadfontgoodies loadluafile loadluafileonce contained +syn keyword contextCommon loadspellchecklist loadtexfile loadtexfileonce loadtypescriptfile localfootnotes contained +syn keyword contextCommon localframed localframedwithsettings localheadsetup localhsize locallinecorrection contained +syn keyword contextCommon localnotes localpopbox localpopmacro localpushbox localpushmacro contained +syn keyword contextCommon localsetups localundefine locatedfilepath locatefilepath locfilename contained +syn keyword contextCommon logo lohi lointerval lomihi longleftarrow contained +syn keyword contextCommon longleftrightarrow longmapsfrom longmapsto longrightarrow longrightsquigarrow contained +syn keyword contextCommon looparrowleft looparrowright lor low lowerbox contained +syn keyword contextCommon lowercased lowercasestring lowercasing lowerleftdoubleninequote lowerleftsingleninequote contained +syn keyword contextCommon lowerrightdoubleninequote lowerrightsingleninequote lozenge lparent lrcorner contained +syn keyword contextCommon lrointerval lrtbbox lstroke lt ltimes contained +syn keyword contextCommon ltop ltrhbox ltrvbox ltrvtop lua contained +syn keyword contextCommon luaTeX luacode luaconditional luaenvironment luaexpanded contained +syn keyword contextCommon luaexpr luafunction luajitTeX luamajorversion luametaTeX contained +syn keyword contextCommon luaminorversion luaparameterset luasetup luasetups luaversion contained +syn keyword contextCommon lvert m mLeftarrow mLeftrightarrow mRightarrow contained +syn keyword contextCommon mVert mainlanguage makecharacteractive makerawcommalist makestrutofbox contained +syn keyword contextCommon makeup maltese mapfontsize mapsdown mapsfrom contained +syn keyword contextCommon mapsto mapsup marginblock margindata marginrule contained +syn keyword contextCommon margintext markcontent markedcontent markedpages marking contained +syn keyword contextCommon markinjector markpage markpages markreferencepage mat contained +syn keyword contextCommon math mathalignment mathampersand mathbf mathbi contained +syn keyword contextCommon mathblackboard mathbs mathcases mathdefault mathdollar contained +syn keyword contextCommon mathdouble mathematics mathfraktur mathfunction mathhash contained +syn keyword contextCommon mathhyphen mathit mathitalic mathlabellanguage mathlabeltext contained +syn keyword contextCommon mathlabeltexts mathmatrix mathmode mathop mathover contained +syn keyword contextCommon mathpercent mathrm mathscript mathsl mathss contained +syn keyword contextCommon mathstyle mathtext mathtextbf mathtextbi mathtextbs contained +syn keyword contextCommon mathtextit mathtextsl mathtexttf mathtf mathtriplet contained +syn keyword contextCommon mathtt mathunder mathupright mathword mathwordbf contained +syn keyword contextCommon mathwordbi mathwordbs mathwordit mathwordsl mathwordtf contained +syn keyword contextCommon matrices matrix maxaligned mbox mcframed contained +syn keyword contextCommon mdformula measure measured measuredangle measuredeq contained +syn keyword contextCommon medskip medspace menubutton mequal message contained +syn keyword contextCommon mfence mframed mfunction mfunctionlabeltext mhbox contained +syn keyword contextCommon mho mhookleftarrow mhookrightarrow mid midaligned contained +syn keyword contextCommon middle middlealigned middlebox middlemakeup midhbox contained +syn keyword contextCommon midsubsentence minimalhbox minus minuscolon mirror contained +syn keyword contextCommon mixedcaps mixedcolumns mkvibuffer mleftarrow mleftharpoondown contained +syn keyword contextCommon mleftharpoonup mleftrightarrow mleftrightharpoons mmapsto mode contained +syn keyword contextCommon models modeset module moduleparameter moduletestsection contained +syn keyword contextCommon molecule mono monobold mononormal month contained +syn keyword contextCommon monthlong monthshort mp mpformula mprandomnumber contained +syn keyword contextCommon mrel mrightarrow mrightharpoondown mrightharpoonup mrightleftharpoons contained +syn keyword contextCommon mrightoverleftarrow mtext mtriplerel mtwoheadleftarrow mtwoheadrightarrow contained +syn keyword contextCommon mu multicolumns multimap mvert nHdownarrow contained +syn keyword contextCommon nHuparrow nLeftarrow nLeftrightarrow nRightarrow nVDash contained +syn keyword contextCommon nVdash nVleftarrow nVleftrightarrow nVrightarrow nabla contained +syn keyword contextCommon nacute namedheadnumber namedsection namedstructureheadlocation namedstructureuservariable contained +syn keyword contextCommon namedstructurevariable namedsubformulas namedtaggedlabeltexts napostrophe napprox contained +syn keyword contextCommon napproxEq narrow narrower narrownobreakspace nasymp contained +syn keyword contextCommon natural naturalhbox naturalhpack naturalnumbers naturaltpack contained +syn keyword contextCommon naturalvbox naturalvcenter naturalvpack naturalvtop naturalwd contained +syn keyword contextCommon ncaron ncommaaccent ncong ncurl ndivides contained +syn keyword contextCommon ne nearrow neg negatecolorbox negated contained +syn keyword contextCommon negative negativesign negemspace negenspace negthinspace contained +syn keyword contextCommon neng neq nequiv neswarrow newattribute contained +syn keyword contextCommon newcatcodetable newcounter newevery newfrenchspacing newluatable contained +syn keyword contextCommon newmode newsignal newsystemmode nexists nextbox contained +syn keyword contextCommon nextboxdp nextboxht nextboxhtdp nextboxwd nextcounter contained +syn keyword contextCommon nextcountervalue nextdepth nextparagraphs nextrealpage nextrealpagenumber contained +syn keyword contextCommon nextsubcountervalue nextsubpage nextsubpagenumber nextuserpage nextuserpagenumber contained +syn keyword contextCommon ngeq ngrave ngtr ngtrless ngtrsim contained +syn keyword contextCommon ni nicelyfilledbox nihongo nin njligature contained +syn keyword contextCommon nleftarrow nleftrightarrow nleq nless nlessgtr contained +syn keyword contextCommon nlesssim nmid nni nobar nobreakspace contained +syn keyword contextCommon nocap nocharacteralign nocitation nocite nodetostring contained +syn keyword contextCommon noffigurepages noflines noflinesinbox noflocalfloats noheaderandfooterlines contained +syn keyword contextCommon noheightstrut nohyphens noindentation nointerference noitem contained +syn keyword contextCommon nonfrenchspacing nonmathematics nonvalidassignment normal normalboldface contained +syn keyword contextCommon normalframedwithsettings normalitalicface normalizebodyfontsize normalizedfontsize normalizefontdepth contained +syn keyword contextCommon normalizefontheight normalizefontline normalizefontwidth normalizetextdepth normalizetextheight contained +syn keyword contextCommon normalizetextline normalizetextwidth normalslantedface normaltypeface nospace contained +syn keyword contextCommon not notallmodes note notesymbol notext contained +syn keyword contextCommon notin notmode notopandbottomlines notragged nowns contained +syn keyword contextCommon nparallel nprec npreccurlyeq nrightarrow nsim contained +syn keyword contextCommon nsimeq nsqsubseteq nsqsupseteq nsubset nsubseteq contained +syn keyword contextCommon nsucc nsucccurlyeq nsupset nsupseteq ntilde contained +syn keyword contextCommon ntimes ntriangleleft ntrianglelefteq ntriangleright ntrianglerighteq contained +syn keyword contextCommon nu numberofpoints numbers nvDash nvdash contained +syn keyword contextCommon nvleftarrow nvleftrightarrow nvrightarrow nwarrow nwsearrow contained +syn keyword contextCommon oacute obeydepth objectdepth objectheight objectmargin contained +syn keyword contextCommon objectwidth obox obreve ocaron ocircumflex contained +syn keyword contextCommon ocircumflexacute ocircumflexdotbelow ocircumflexgrave ocircumflexhook ocircumflextilde contained +syn keyword contextCommon octnumber octstringtonumber odiaeresis odiaeresismacron odot contained +syn keyword contextCommon odotaccent odotaccentmacron odotbelow odoublegrave oeligature contained +syn keyword contextCommon offset offsetbox ograve ohm ohook contained +syn keyword contextCommon ohorn ohornacute ohorndotbelow ohorngrave ohornhook contained +syn keyword contextCommon ohorntilde ohungarumlaut oiiint oiint oint contained +syn keyword contextCommon ointclockwise ointctrclockwise oinvertedbreve omacron omega contained +syn keyword contextCommon omicron ominus onedigitrounding oneeighth onefifth contained +syn keyword contextCommon onehalf onequarter onesixth onesuperior onethird contained +syn keyword contextCommon oogonek oogonekmacron operatorlanguage operatortext oplus contained +syn keyword contextCommon opposite ordfeminine ordinaldaynumber ordinalstr ordmasculine contained +syn keyword contextCommon ornamenttext oslash ostroke ostrokeacute otilde contained +syn keyword contextCommon otildemacron otimes outputfilename outputstream outputstreambox contained +syn keyword contextCommon outputstreamcopy outputstreamunvbox outputstreamunvcopy over overbar contained +syn keyword contextCommon overbars overbartext overbarunderbar overbrace overbracetext contained +syn keyword contextCommon overbraceunderbrace overbracket overbrackettext overbracketunderbracket overlay contained +syn keyword contextCommon overlaybutton overlaycolor overlaydepth overlayfigure overlayheight contained +syn keyword contextCommon overlayimage overlaylinecolor overlaylinewidth overlayoffset overlayrollbutton contained +syn keyword contextCommon overlaywidth overleftarrow overleftharpoondown overleftharpoonup overleftrightarrow contained +syn keyword contextCommon overloaderror overparent overparenttext overparentunderparent overprint contained +syn keyword contextCommon overrightarrow overrightharpoondown overrightharpoonup overset overstrike contained +syn keyword contextCommon overstrikes overtwoheadleftarrow overtwoheadrightarrow owns packed contained +syn keyword contextCommon page pagearea pagebreak pagecolumns pagecomment contained +syn keyword contextCommon pagefigure pageinjection pagelayout pagemakeup pagenumber contained +syn keyword contextCommon pagereference pagestaterealpage pagestaterealpageorder paletsize par contained +syn keyword contextCommon paragraph paragraphmark paragraphs paragraphscell parallel contained +syn keyword contextCommon parbuilder part partial path pdfTeX contained +syn keyword contextCommon pdfactualtext pdfbackendactualtext pdfbackendcurrentresources pdfbackendsetcatalog pdfbackendsetcolorspace contained +syn keyword contextCommon pdfbackendsetextgstate pdfbackendsetinfo pdfbackendsetname pdfbackendsetpageattribute pdfbackendsetpageresource contained +syn keyword contextCommon pdfbackendsetpagesattribute pdfbackendsetpattern pdfbackendsetshade pdfcolor pdfeTeX contained +syn keyword contextCommon percent percentdimen periodcentered periods permitcaretescape contained +syn keyword contextCommon permitcircumflexescape permitspacesbetweengroups perp persiandecimals persiandecimalseparator contained +syn keyword contextCommon persiannumerals persianthousandsseparator perthousand phantom phantombox contained +syn keyword contextCommon phi phook pi pickupgroupedcommand pitchfork contained +syn keyword contextCommon placeattachments placebookmarks placebtxrendering placechemical placecitation contained +syn keyword contextCommon placecombinedlist placecomments placecontent placecurrentformulanumber placedbox contained +syn keyword contextCommon placefigure placefloat placefloatcaption placefloatwithsetups placefootnotes contained +syn keyword contextCommon placeformula placeframed placegraphic placeheadnumber placeheadtext contained +syn keyword contextCommon placehelp placeholder placeindex placeinitial placeintermezzo contained +syn keyword contextCommon placelayer placelayeredtext placelegend placelist placelistofabbreviations contained +syn keyword contextCommon placelistofchemicals placelistoffigures placelistofgraphics placelistofintermezzi placelistoflogos contained +syn keyword contextCommon placelistofpublications placelistofsorts placelistofsynonyms placelistoftables placelocalfootnotes contained +syn keyword contextCommon placelocalnotes placement placenamedfloat placenamedformula placenotes contained +syn keyword contextCommon placeongrid placeontopofeachother placepagenumber placepairedbox placeparallel contained +syn keyword contextCommon placerawheaddata placerawheadnumber placerawheadtext placerawlist placeregister contained +syn keyword contextCommon placerenderingwindow placesidebyside placesubformula placetable pm contained +syn keyword contextCommon popattribute popmacro popmode popsystemmode position contained +syn keyword contextCommon positioning positionoverlay positionregionoverlay positive positivesign contained +syn keyword contextCommon postponenotes postponing postponingnotes prec precapprox contained +syn keyword contextCommon preccurlyeq preceq preceqq precnapprox precneq contained +syn keyword contextCommon precneqq precnsim precsim predefinedfont predefinefont contained +syn keyword contextCommon predefinesymbol prefixedpagenumber prefixlanguage prefixtext prependetoks contained +syn keyword contextCommon prependgvalue prependtocommalist prependtoks prependtoksonce prependvalue contained +syn keyword contextCommon prerollblank presetbtxlabeltext presetdocument presetfieldsymbols presetheadtext contained +syn keyword contextCommon presetlabeltext presetmathlabeltext presetoperatortext presetprefixtext presetsuffixtext contained +syn keyword contextCommon presettaglabeltext presetunittext pretocommalist prettyprintbuffer prevcounter contained +syn keyword contextCommon prevcountervalue preventmode prevrealpage prevrealpagenumber prevsubcountervalue contained +syn keyword contextCommon prevsubpage prevsubpagenumber prevuserpage prevuserpagenumber prime contained +syn keyword contextCommon primes procent processMPbuffer processMPfigurefile processaction contained +syn keyword contextCommon processallactionsinset processassignlist processassignmentcommand processassignmentlist processbetween contained +syn keyword contextCommon processblocks processbodyfontenvironmentlist processcolorcomponents processcommacommand processcommalist contained +syn keyword contextCommon processcommalistwithparameters processcontent processfile processfilemany processfilenone contained +syn keyword contextCommon processfileonce processfirstactioninset processisolatedchars processisolatedwords processlinetablebuffer contained +syn keyword contextCommon processlinetablefile processlist processmonth processranges processseparatedlist contained +syn keyword contextCommon processtexbuffer processtokens processuntil processxtablebuffer processyear contained +syn keyword contextCommon prod product profiledbox profilegivenbox program contained +syn keyword contextCommon project propto protect protectedcolors pseudoMixedCapped contained +syn keyword contextCommon pseudoSmallCapped pseudoSmallcapped pseudosmallcapped psi publication contained +syn keyword contextCommon punctuation punctuationspace purenumber pushattribute pushbutton contained +syn keyword contextCommon pushmacro pushmode pushoutputstream pushsystemmode putboxincache contained +syn keyword contextCommon putnextboxincache qquad quad quadrupleprime quads contained +syn keyword contextCommon quarterstrut questiondown questionedeq quitcommalist quitprevcommalist contained +syn keyword contextCommon quittypescriptscanning quotation quote quotedbl quotedblbase contained +syn keyword contextCommon quotedblleft quotedblright quoteleft quoteright quotesingle contained +syn keyword contextCommon quotesinglebase rVert racute raggedbottom raggedcenter contained +syn keyword contextCommon raggedleft raggedright raggedwidecenter raisebox randomized contained +syn keyword contextCommon randomizetext randomnumber randomseed rangle rationals contained +syn keyword contextCommon rawcounter rawcountervalue rawdate rawdoifelseinset rawdoifinset contained +syn keyword contextCommon rawdoifinsetelse rawgetparameters rawprocessaction rawprocesscommacommand rawprocesscommalist contained +syn keyword contextCommon rawsetups rawstructurelistuservariable rawsubcountervalue rbox rbrace contained +syn keyword contextCommon rbracket rcaron rceil rcommaaccent rdoublegrave contained +syn keyword contextCommon readfile readfixfile readingfile readjobfile readlocfile contained +syn keyword contextCommon readsetfile readsysfile readtexfile readxmlfile realSmallCapped contained +syn keyword contextCommon realSmallcapped realpagenumber reals realsmallcapped recursedepth contained +syn keyword contextCommon recurselevel recursestring redoconvertfont ref reference contained +syn keyword contextCommon referencecolumnnumber referencepagedetail referencepagestate referenceprefix referencerealpage contained +syn keyword contextCommon referencesymbol referring regime registerattachment registerctxluafile contained +syn keyword contextCommon registered registerexternalfigure registerfontclass registerhyphenationexception registerhyphenationpattern contained +syn keyword contextCommon registermenubuttons registerparwrapper registerparwrapperreverse registersort registersynonym contained +syn keyword contextCommon registerunit regular relatemarking relateparameterhandlers relaxvalueifundefined contained +syn keyword contextCommon relbar remainingcharacters remark removebottomthings removedepth contained +syn keyword contextCommon removefromcommalist removelastskip removelastspace removemarkedcontent removepunctuation contained +syn keyword contextCommon removesubstring removetoks removeunwantedspaces repeathead replacefeature contained +syn keyword contextCommon replaceincommalist replaceword rescan rescanwithsetup resetMPdrawing contained +syn keyword contextCommon resetMPenvironment resetMPinstance resetallattributes resetandaddfeature resetbar contained +syn keyword contextCommon resetboxesincache resetbreakpoints resetbuffer resetcharacteralign resetcharacterkerning contained +syn keyword contextCommon resetcharacterspacing resetcharacterstripping resetcollector resetcounter resetctxscanner contained +syn keyword contextCommon resetdigitsmanipulation resetdirection resetfeature resetflag resetfontcolorsheme contained +syn keyword contextCommon resetfontfallback resetfontsolution resethyphenationfeatures resetinjector resetinteractionmenu contained +syn keyword contextCommon resetitaliccorrection resetlayer resetlocalfloats resetmarker resetmarking contained +syn keyword contextCommon resetmode resetpagenumber resetparallel resetpath resetpenalties contained +syn keyword contextCommon resetperiodkerning resetprofile resetrecurselevel resetreference resetreplacements contained +syn keyword contextCommon resetscript resetsetups resetshownsynonyms resetsubpagenumber resetsymbolset contained +syn keyword contextCommon resetsystemmode resettimer resettokenlist resettrackers resettrialtypesetting contained +syn keyword contextCommon resetusedsortings resetusedsynonyms resetuserpagenumber resetvalue resetvisualizers contained +syn keyword contextCommon reshapebox resolvedglyphdirect resolvedglyphstyled restartcounter restorebox contained +syn keyword contextCommon restorecatcodes restorecounter restorecurrentattributes restoreendofline restoreglobalbodyfont contained +syn keyword contextCommon restriction retestfeature reusableMPgraphic reuseMPgraphic reuserandomseed contained +syn keyword contextCommon reverseddoubleprime reversedprime reversedtripleprime reversehbox reversehpack contained +syn keyword contextCommon reversetpack reversevbox reversevboxcontent reversevpack reversevtop contained +syn keyword contextCommon revivefeature rfence rfloor rgroup rhbox contained +syn keyword contextCommon rho rhooknearrow rhookswarrow right rightaligned contained +syn keyword contextCommon rightangle rightarrow rightarrowbar rightarrowtail rightarrowtriangle contained +syn keyword contextCommon rightbottombox rightbox rightdasharrow rightguillemot rightharpoondown contained +syn keyword contextCommon rightharpoonup righthbox rightheadtext rightlabeltext rightleftarrows contained +syn keyword contextCommon rightleftharpoons rightline rightmathlabeltext rightorleftpageaction rightpageorder contained +syn keyword contextCommon rightrightarrows rightskipadaption rightsquigarrow rightsubguillemot rightthreearrows contained +syn keyword contextCommon rightthreetimes righttoleft righttolefthbox righttoleftvbox righttoleftvtop contained +syn keyword contextCommon righttopbox rightwavearrow rightwhitearrow ring rinterval contained +syn keyword contextCommon rinvertedbreve risingdotseq rlap rlointerval rmoustache contained +syn keyword contextCommon rneq robustaddtocommalist robustdoifelseinset robustdoifinsetelse robustpretocommalist contained +syn keyword contextCommon rointerval rollbutton roman romanC romanD contained +syn keyword contextCommon romanI romanII romanIII romanIV romanIX contained +syn keyword contextCommon romanL romanM romanV romanVI romanVII contained +syn keyword contextCommon romanVIII romanX romanXI romanXII romanc contained +syn keyword contextCommon romand romani romanii romaniii romaniv contained +syn keyword contextCommon romanix romanl romanm romannumerals romanv contained +syn keyword contextCommon romanvi romanvii romanviii romanx romanxi contained +syn keyword contextCommon romanxii rootradical rotate rparent rrangle contained +syn keyword contextCommon rrbracket rrointerval rtimes rtlhbox rtlvbox contained +syn keyword contextCommon rtlvtop rtop ruby ruledhbox ruledhpack contained +syn keyword contextCommon ruledmbox ruledtopv ruledtpack ruledvbox ruledvpack contained +syn keyword contextCommon ruledvtop runMPbuffer runninghbox russianNumerals russiannumerals contained +syn keyword contextCommon rvert sacute safechar samplefile sans contained +syn keyword contextCommon sansbold sansnormal sansserif savebox savebtxdataset contained +syn keyword contextCommon savebuffer savecounter savecurrentattributes savenormalmeaning savetaggedtwopassdata contained +syn keyword contextCommon savetwopassdata sbox scale scaron scedilla contained +syn keyword contextCommon schwa schwahook scircumflex scommaaccent screen contained +syn keyword contextCommon script sdformula searrow secondoffivearguments secondoffourarguments contained +syn keyword contextCommon secondofsixarguments secondofthreearguments secondofthreeunexpanded secondoftwoarguments secondoftwounexpanded contained +syn keyword contextCommon section sectionblock sectionblockenvironment sectionlevel sectionmark contained +syn keyword contextCommon seeindex select selectblocks serializecommalist serializedcommalist contained +syn keyword contextCommon serif serifbold serifnormal setJSpreamble setMPlayer contained +syn keyword contextCommon setMPpositiongraphic setMPpositiongraphicrange setMPtext setMPvariable setMPvariables contained +syn keyword contextCommon setautopagestaterealpageno setbar setbigbodyfont setboxllx setboxlly contained +syn keyword contextCommon setbreakpoints setcapstrut setcatcodetable setcharacteralign setcharacteraligndetail contained +syn keyword contextCommon setcharactercasing setcharactercleaning setcharacterkerning setcharacterspacing setcharacterstripping contained +syn keyword contextCommon setcharstrut setcollector setcolormodell setcounter setcounterown contained +syn keyword contextCommon setctxluafunction setcurrentfontclass setdataset setdatavalue setdefaultpenalties contained +syn keyword contextCommon setdigitsmanipulation setdirection setdocumentargument setdocumentargumentdefault setdocumentfilename contained +syn keyword contextCommon setdummyparameter setelementexporttag setemeasure setevalue setevariable contained +syn keyword contextCommon setevariables setexpansion setfirstline setfirstpasscharacteralign setflag contained +syn keyword contextCommon setfont setfontcolorsheme setfontfeature setfontsolution setfontstrut contained +syn keyword contextCommon setfractions setglobalscript setgmeasure setgvalue setgvariable contained +syn keyword contextCommon setgvariables sethboxregister sethyphenatedurlafter sethyphenatedurlbefore sethyphenatedurlnormal contained +syn keyword contextCommon sethyphenationfeatures setinitial setinjector setinteraction setinterfacecommand contained +syn keyword contextCommon setinterfaceconstant setinterfaceelement setinterfacemessage setinterfacevariable setinternalrendering contained +syn keyword contextCommon setitaliccorrection setlayer setlayerframed setlayertext setlinefiller contained +syn keyword contextCommon setlocalhsize setlocalscript setluatable setmainbodyfont setmainparbuilder contained +syn keyword contextCommon setmarker setmarking setmathstyle setmeasure setmessagetext contained +syn keyword contextCommon setminus setmode setnostrut setnote setnotetext contained +syn keyword contextCommon setobject setoldstyle setpagereference setpagestate setpagestaterealpageno contained +syn keyword contextCommon setparagraphfreezing setpenalties setpercentdimen setperiodkerning setposition contained +syn keyword contextCommon setpositionbox setpositiondata setpositiondataplus setpositiononly setpositionplus contained +syn keyword contextCommon setpositionstrut setprofile setrandomseed setreference setreferencedobject contained +syn keyword contextCommon setregisterentry setreplacements setrigidcolumnbalance setrigidcolumnhsize setscript contained +syn keyword contextCommon setsecondpasscharacteralign setsectionblock setsimplecolumnshsize setsmallbodyfont setsmallcaps contained +syn keyword contextCommon setstackbox setstructurepageregister setstrut setsuperiors setsystemmode contained +syn keyword contextCommon settabular settaggedmetadata settestcrlf settextcontent settightobject contained +syn keyword contextCommon settightreferencedobject settightstrut settightunreferencedobject settokenlist settrialtypesetting contained +syn keyword contextCommon setuevalue setugvalue setunreferencedobject setup setupMPgraphics contained +syn keyword contextCommon setupMPinstance setupMPpage setupMPvariables setupTABLE setupTEXpage contained +syn keyword contextCommon setupalign setupalternativestyles setuparranging setupattachment setupattachments contained +syn keyword contextCommon setupbackend setupbackground setupbackgrounds setupbar setupbars contained +syn keyword contextCommon setupblackrules setupblank setupbleeding setupblock setupbodyfont contained +syn keyword contextCommon setupbodyfontenvironment setupbookmark setupbottom setupbottomtexts setupbtx contained +syn keyword contextCommon setupbtxdataset setupbtxlabeltext setupbtxlist setupbtxregister setupbtxrendering contained +syn keyword contextCommon setupbuffer setupbutton setupcapitals setupcaption setupcaptions contained +syn keyword contextCommon setupcharacteralign setupcharacterkerning setupcharacterspacing setupchemical setupchemicalframed contained +syn keyword contextCommon setupclipping setupcollector setupcolor setupcolors setupcolumns contained +syn keyword contextCommon setupcolumnset setupcolumnsetarea setupcolumnsetareatext setupcolumnsetlines setupcolumnsetspan contained +syn keyword contextCommon setupcolumnsetstart setupcombination setupcombinedlist setupcomment setupcontent contained +syn keyword contextCommon setupcounter setupdataset setupdelimitedtext setupdescription setupdescriptions contained +syn keyword contextCommon setupdirections setupdocument setupeffect setupenumeration setupenumerations contained +syn keyword contextCommon setupenv setupexpansion setupexport setupexternalfigure setupexternalfigures contained +syn keyword contextCommon setupexternalsoundtracks setupfacingfloat setupfield setupfieldbody setupfieldcategory contained +syn keyword contextCommon setupfieldcontentframed setupfieldlabelframed setupfields setupfieldtotalframed setupfiller contained +syn keyword contextCommon setupfillinlines setupfillinrules setupfirstline setupfittingpage setupfloat contained +syn keyword contextCommon setupfloatframed setupfloats setupfloatsplitting setupfontexpansion setupfontprotrusion contained +syn keyword contextCommon setupfonts setupfontsolution setupfooter setupfootertexts setupfootnotes contained +syn keyword contextCommon setupforms setupformula setupformulae setupformulaframed setupframed contained +syn keyword contextCommon setupframedcontent setupframedtable setupframedtablecolumn setupframedtablerow setupframedtext contained +syn keyword contextCommon setupframedtexts setupglobalreferenceprefix setuphead setupheadalternative setupheader contained +syn keyword contextCommon setupheadertexts setupheadnumber setupheads setupheadtext setuphelp contained +syn keyword contextCommon setuphigh setuphighlight setuphyphenation setuphyphenmark setupindentedtext contained +syn keyword contextCommon setupindenting setupindex setupinitial setupinsertion setupinteraction contained +syn keyword contextCommon setupinteractionbar setupinteractionmenu setupinteractionscreen setupinterlinespace setupitaliccorrection contained +syn keyword contextCommon setupitemgroup setupitemizations setupitemize setupitems setuplabel contained +syn keyword contextCommon setuplabeltext setuplanguage setuplayer setuplayeredtext setuplayout contained +syn keyword contextCommon setuplayouttext setuplegend setuplinefiller setuplinefillers setuplinenote contained +syn keyword contextCommon setuplinenumbering setuplines setuplinetable setuplinewidth setuplist contained +syn keyword contextCommon setuplistalternative setuplistextra setuplocalfloats setuplocalinterlinespace setuplow contained +syn keyword contextCommon setuplowhigh setuplowmidhigh setupmakeup setupmarginblock setupmargindata contained +syn keyword contextCommon setupmarginframed setupmarginrule setupmarginrules setupmarking setupmathalignment contained +syn keyword contextCommon setupmathcases setupmathematics setupmathfence setupmathfraction setupmathfractions contained +syn keyword contextCommon setupmathframed setupmathlabeltext setupmathmatrix setupmathornament setupmathradical contained +syn keyword contextCommon setupmathstackers setupmathstyle setupmixedcolumns setupmodule setupmulticolumns contained +syn keyword contextCommon setupnarrower setupnotation setupnotations setupnote setupnotes contained +syn keyword contextCommon setupoffset setupoffsetbox setupoperatortext setupoppositeplacing setuporientation contained +syn keyword contextCommon setupoutput setupoutputroutine setuppagechecker setuppagecolumns setuppagecomment contained +syn keyword contextCommon setuppageinjection setuppageinjectionalternative setuppagenumber setuppagenumbering setuppageshift contained +syn keyword contextCommon setuppagestate setuppagetransitions setuppairedbox setuppalet setuppaper contained +syn keyword contextCommon setuppapersize setupparagraph setupparagraphintro setupparagraphnumbering setupparagraphs contained +syn keyword contextCommon setupparallel setupperiodkerning setupperiods setupplaceholder setupplacement contained +syn keyword contextCommon setuppositionbar setuppositioning setupprefixtext setupprocessor setupprofile contained +syn keyword contextCommon setupprograms setupquotation setupquote setuprealpagenumber setupreferenceformat contained +syn keyword contextCommon setupreferenceprefix setupreferencestructureprefix setupreferencing setupregister setupregisters contained +syn keyword contextCommon setuprenderingwindow setuprotate setupruby setups setupscale contained +syn keyword contextCommon setupscript setupscripts setupsectionblock setupselector setupshift contained +syn keyword contextCommon setupsidebar setupsorting setupspacing setupspellchecking setupstartstop contained +syn keyword contextCommon setupstretched setupstrut setupstyle setupsubformula setupsubformulas contained +syn keyword contextCommon setupsubpagenumber setupsuffixtext setupsymbols setupsymbolset setupsynctex contained +syn keyword contextCommon setupsynonyms setupsystem setuptables setuptabulate setuptagging contained +syn keyword contextCommon setuptaglabeltext setuptext setuptextbackground setuptextflow setuptextnote contained +syn keyword contextCommon setuptextrules setuptexttexts setupthinrules setuptolerance setuptooltip contained +syn keyword contextCommon setuptop setuptoptexts setuptype setuptyping setupunit contained +syn keyword contextCommon setupunittext setupurl setupuserdata setupuserdataalternative setupuserpagenumber contained +syn keyword contextCommon setupversion setupviewerlayer setupvspacing setupwhitespace setupwithargument contained +syn keyword contextCommon setupwithargumentswapped setupxml setupxtable setuvalue setuxvalue contained +syn keyword contextCommon setvalue setvariable setvariables setvboxregister setvisualizerfont contained +syn keyword contextCommon setvtopregister setwidthof setxmeasure setxvalue setxvariable contained +syn keyword contextCommon setxvariables seveneighths sfrac shapebox shapedhbox contained +syn keyword contextCommon sharp shift shiftbox shiftdown shiftup contained +syn keyword contextCommon showallmakeup showattributes showbodyfont showbodyfontenvironment showboxes contained +syn keyword contextCommon showbtxdatasetauthors showbtxdatasetcompleteness showbtxdatasetfields showbtxfields showbtxhashedauthors contained +syn keyword contextCommon showbtxtables showchardata showcharratio showcolor showcolorbar contained +syn keyword contextCommon showcolorcomponents showcolorgroup showcolorset showcolorstruts showcounter contained +syn keyword contextCommon showdirectives showdirsinmargin showedebuginfo showexperiments showfont contained +syn keyword contextCommon showfontdata showfontexpansion showfontitalics showfontkerns showfontparameters contained +syn keyword contextCommon showfontstrip showfontstyle showframe showglyphdata showglyphs contained +syn keyword contextCommon showgrid showgridsnapping showhelp showhyphenationtrace showhyphens contained +syn keyword contextCommon showinjector showjustification showkerning showlayout showlayoutcomponents contained +syn keyword contextCommon showligature showligatures showlogcategories showluatables showmakeup contained +syn keyword contextCommon showmargins showmessage showminimalbaseline shownextbox showotfcomposition contained +syn keyword contextCommon showpalet showparentchain showparwrapperstate showprint showsetups contained +syn keyword contextCommon showsetupsdefinition showstruts showsymbolset showtimer showtokens contained +syn keyword contextCommon showtrackers showvalue showvariable showwarning sidebar contained +syn keyword contextCommon sigma signalrightpage sim simeq simplealignedbox contained +syn keyword contextCommon simplealignedboxplus simplealignedspreadbox simplecolumns simplegroupedcommand simplereversealignedbox contained +syn keyword contextCommon simplereversealignedboxplus singalcharacteralign singlebond singleverticalbar sixperemspace contained +syn keyword contextCommon sixthofsixarguments slanted slantedbold slantedface slash contained +syn keyword contextCommon slicepages slong slovenianNumerals sloveniannumerals small contained +syn keyword contextCommon smallbodyfont smallbold smallbolditalic smallboldslanted smallcappedcharacters contained +syn keyword contextCommon smallcappedromannumerals smallcaps smaller smallitalicbold smallnormal contained +syn keyword contextCommon smallskip smallslanted smallslantedbold smalltype smash contained +syn keyword contextCommon smashbox smashboxed smashedhbox smashedvbox smile contained +syn keyword contextCommon snaptogrid softhyphen solidus someheadnumber somekindoftab contained +syn keyword contextCommon someline somelocalfloat somenamedheadnumber someplace somewhere contained +syn keyword contextCommon space spaceddigits spaceddigitsmethod spaceddigitsseparator spaceddigitssymbol contained +syn keyword contextCommon spadesuit spanishNumerals spanishnumerals specialitem speech contained +syn keyword contextCommon spformula sphericalangle splitatasterisk splitatcolon splitatcolons contained +syn keyword contextCommon splitatcomma splitatperiod splitdfrac splitfilename splitfloat contained +syn keyword contextCommon splitformula splitfrac splitoffbase splitofffull splitoffkind contained +syn keyword contextCommon splitoffname splitoffpath splitoffroot splitofftokens splitofftype contained +syn keyword contextCommon splitstring splittext spread spreadhbox sqcap contained +syn keyword contextCommon sqcup sqrt sqsubset sqsubseteq sqsubsetneq contained +syn keyword contextCommon sqsupset sqsupseteq sqsupsetneq square squaredots contained +syn keyword contextCommon ssharp stackrel stackscripts standardmakeup star contained +syn keyword contextCommon stareq startline startlinenote startregister startstructurepageregister contained +syn keyword contextCommon staticMPfigure staticMPgraphic stligature stopline stoplinenote contained +syn keyword contextCommon stretched strictdoifelsenextoptional strictdoifnextoptionalelse strictinspectnextcharacter stripcharacter contained +syn keyword contextCommon strippedcsname stripspaces structurelistuservariable structurenumber structuretitle contained +syn keyword contextCommon structureuservariable structurevariable strut strutdp strutgap contained +syn keyword contextCommon strutht struthtdp struttedbox strutwd style contained +syn keyword contextCommon styleinstance subformulas subject subjectlevel subpagenumber contained +syn keyword contextCommon subsection subsentence subset subseteq subseteqq contained +syn keyword contextCommon subsetneq subsetneqq substack substituteincommalist subsubject contained +syn keyword contextCommon subsubsection subsubsubject subsubsubsection subsubsubsubject subsubsubsubsection contained +syn keyword contextCommon subsubsubsubsubject subtractfeature succ succapprox succcurlyeq contained +syn keyword contextCommon succeq succeqq succnapprox succneq succneqq contained +syn keyword contextCommon succnsim succsim suffixlanguage suffixtext sum contained +syn keyword contextCommon supset supseteq supseteqq supsetneq supsetneqq contained +syn keyword contextCommon surd surdradical swapcounts swapdimens swapface contained +syn keyword contextCommon swapmacros swaptypeface swarrow switchstyleonly switchtobodyfont contained +syn keyword contextCommon switchtocolor switchtointerlinespace symbol symbolreference symbolset contained +syn keyword contextCommon synchronizeblank synchronizeindenting synchronizemarking synchronizeoutputstreams synchronizestrut contained +syn keyword contextCommon synchronizewhitespace synctexblockfilename synctexresetfilename synctexsetfilename systemlog contained +syn keyword contextCommon systemlogfirst systemloglast systemsetups tLeftarrow tLeftrightarrow contained +syn keyword contextCommon tRightarrow table tablehead tables tabletail contained +syn keyword contextCommon tabletext tabulate tabulateautoline tabulateautorule tabulatehead contained +syn keyword contextCommon tabulateline tabulaterule tabulatetail tagged taggedctxcommand contained +syn keyword contextCommon taggedlabeltexts taglabellanguage taglabeltext tau tbinom contained +syn keyword contextCommon tbox tcaron tcedilla tcommaaccent tcurl contained +syn keyword contextCommon tequal test testandsplitstring testcolumn testfeature contained +syn keyword contextCommon testfeatureonce testpage testpageonly testpagesync testtokens contained +syn keyword contextCommon tex texcode texdefinition texsetup text contained +syn keyword contextCommon textAngstrom textacute textampersand textasciicircum textasciitilde contained +syn keyword contextCommon textat textbackground textbackgroundmanual textbackslash textbar contained +syn keyword contextCommon textbottomcomma textbottomdot textbraceleft textbraceright textbreve contained +syn keyword contextCommon textbrokenbar textbullet textcaron textcedilla textcelsius contained +syn keyword contextCommon textcent textcircledP textcircumflex textcitation textcite contained +syn keyword contextCommon textcolor textcolorintent textcomma textcontrolspace textcurrency contained +syn keyword contextCommon textdag textddag textdegree textdiaeresis textdiv contained +syn keyword contextCommon textdollar textdong textdotaccent textellipsis texteuro contained +syn keyword contextCommon textflow textflowcollector textfraction textgrave texthash contained +syn keyword contextCommon texthorizontalbar texthungarumlaut texthyphen textkelvin textlognot contained +syn keyword contextCommon textmacron textmakeup textmath textmho textminus contained +syn keyword contextCommon textmp textmu textmultiply textnumero textogonek contained +syn keyword contextCommon textohm textormathchar textormathchars textounce textpercent contained +syn keyword contextCommon textperiod textplus textpm textreference textring contained +syn keyword contextCommon textrule textslash textsterling texttilde textunderscore contained +syn keyword contextCommon textvisiblespace textyen thai thainumerals thedatavalue contained +syn keyword contextCommon thefirstcharacter thematrix thenormalizedbodyfontsize theorientation therefore contained +syn keyword contextCommon theremainingcharacters theta thickspace thinrule thinrules contained +syn keyword contextCommon thinspace thirdoffivearguments thirdoffourarguments thirdofsixarguments thirdofthreearguments contained +syn keyword contextCommon thirdofthreeunexpanded thook thookleftarrow thookrightarrow thorn contained +syn keyword contextCommon threedigitrounding threeeighths threefifths threeperemspace threequarter contained +syn keyword contextCommon threesuperior tibetannumerals tightlayer tilde times contained +syn keyword contextCommon tinyfont title tlap tleftarrow tleftharpoondown contained +syn keyword contextCommon tleftharpoonup tleftrightarrow tleftrightharpoons tmapsto to contained +syn keyword contextCommon tochar tokenlist tokens tolinenote tooltip contained +syn keyword contextCommon top topbox topleftbox toplinebox toprightbox contained +syn keyword contextCommon topskippedbox tracecatcodetables tracedfontname tracedpagestate traceoutputroutines contained +syn keyword contextCommon tracepositions trademark translate transparencycomponents transparent[] contained +syn keyword contextCommon trel triangle triangledown triangleleft triangleq contained +syn keyword contextCommon triangleright trightarrow trightharpoondown trightharpoonup trightleftharpoons contained +syn keyword contextCommon trightoverleftarrow triplebond tripleprime tripleverticalbar truefilename contained +syn keyword contextCommon truefontname tstroke ttraggedright ttriplerel ttwoheadleftarrow contained +syn keyword contextCommon ttwoheadrightarrow turnediota twodigitrounding twofifths twoheaddownarrow contained +syn keyword contextCommon twoheadleftarrow twoheadrightarrow twoheadrightarrowtail twoheaduparrow twosuperior contained +syn keyword contextCommon twothirds tx txx typ type contained +syn keyword contextCommon typebuffer typedefinedbuffer typeface typefile typeinlinebuffer contained +syn keyword contextCommon typescript typescriptcollection typescriptone typescriptprefix typescriptthree contained +syn keyword contextCommon typescripttwo typesetbuffer typesetbufferonly typesetfile typing contained +syn keyword contextCommon uacute ubreve ucaron uchexnumber uchexnumbers contained +syn keyword contextCommon ucircumflex uconvertnumber udiaeresis udiaeresisacute udiaeresiscaron contained +syn keyword contextCommon udiaeresisgrave udiaeresismacron udotbelow udots udoublegrave contained +syn keyword contextCommon uedcatcodecommand ugrave uhook uhorn uhornacute contained +syn keyword contextCommon uhorndotbelow uhorngrave uhornhook uhorntilde uhungarumlaut contained +syn keyword contextCommon uinvertedbreve ulcorner umacron undefinevalue undepthed contained +syn keyword contextCommon underbar underbars underbartext underbrace underbracetext contained +syn keyword contextCommon underbracket underbrackettext underdash underdashes underdot contained +syn keyword contextCommon underdots underleftarrow underleftharpoondown underleftharpoonup underleftrightarrow contained +syn keyword contextCommon underparent underparenttext underrandom underrandoms underrightarrow contained +syn keyword contextCommon underrightharpoondown underrightharpoonup underset understrike understrikes contained +syn keyword contextCommon undertwoheadleftarrow undertwoheadrightarrow undoassign unexpandeddocumentvariable unframed contained +syn keyword contextCommon unhhbox unihex uniqueMPgraphic uniqueMPpagegraphic unit contained +syn keyword contextCommon unitlanguage unitshigh unitslow unittext unknown contained +syn keyword contextCommon unpacked unprotected unregisterhyphenationpattern unregisterparwrapper unspaceafter contained +syn keyword contextCommon unspaceargument unspaced unspacestring unstackscripts untexargument contained +syn keyword contextCommon untexcommand uogonek upand uparrow updasharrow contained +syn keyword contextCommon updateparagraphdemerits updateparagraphpenalties updateparagraphproperties updateparagraphshapes updownarrow contained +syn keyword contextCommon updownarrowbar updownarrows upharpoonleft upharpoonright uplus contained +syn keyword contextCommon uppercased uppercasestring uppercasing upperleftdoubleninequote upperleftdoublesixquote contained +syn keyword contextCommon upperleftsingleninequote upperleftsinglesixquote upperrightdoubleninequote upperrightdoublesixquote upperrightsingleninequote contained +syn keyword contextCommon upperrightsinglesixquote upsilon upuparrows upwhitearrow urcorner contained +syn keyword contextCommon uring url usableMPgraphic useJSscripts useMPenvironmentbuffer contained +syn keyword contextCommon useMPgraphic useMPlibrary useMPrun useMPvariables useURL contained +syn keyword contextCommon usealignparameter useblankparameter useblocks usebodyfont usebodyfontparameter contained +syn keyword contextCommon usebtxdataset usebtxdefinitions usecitation usecolors usecomponent contained +syn keyword contextCommon usedirectory usedummycolorparameter usedummystyleandcolor usedummystyleparameter useenvironment contained +syn keyword contextCommon useexternaldocument useexternalfigure useexternalrendering useexternalsoundtrack usefigurebase contained +syn keyword contextCommon usefile usefontpath usegridparameter usehyphensparameter useindentingparameter contained +syn keyword contextCommon useindentnextparameter useinterlinespaceparameter uselanguageparameter useluamodule useluatable contained +syn keyword contextCommon usemathstyleparameter usemodule useproduct useprofileparameter useproject contained +syn keyword contextCommon userdata usereferenceparameter userpagenumber usesetupsparameter usestaticMPfigure contained +syn keyword contextCommon usesubpath usesymbols usetexmodule usetypescript usetypescriptfile contained +syn keyword contextCommon useurl usezipfile usingbtxspecification utfchar utflower contained +syn keyword contextCommon utfupper utilde utilityregisterlength vDash validassignment contained +syn keyword contextCommon varTheta varepsilon varkappa varnothing varphi contained +syn keyword contextCommon varpi varrho varsigma vartheta vbox contained +syn keyword contextCommon vboxreference vboxregister vboxtohbox vboxtohboxseparator vdash contained +syn keyword contextCommon vdots vec vee veebar veeeq contained +syn keyword contextCommon verbatim verbatimstring verbosenumber version vert contained +syn keyword contextCommon verticalgrowingbar verticalpositionbar veryraggedcenter veryraggedleft veryraggedright contained +syn keyword contextCommon vglue viewerlayer vl vpackbox vpackedbox contained +syn keyword contextCommon vphantom vpos vsmash vsmashbox vsmashed contained +syn keyword contextCommon vspace vspacing vtop vtopregister wcircumflex contained +syn keyword contextCommon wdofstring wedge wedgeeq weekday whitearrowupfrombar contained +syn keyword contextCommon wideacute widebar widebreve widecheck wideddot contained +syn keyword contextCommon widedot widegrave widehat widering widetilde contained +syn keyword contextCommon widthofstring widthspanningtext withoutpt word wordright contained +syn keyword contextCommon words wordtonumber wp wr writebetweenlist contained +syn keyword contextCommon writedatatolist writestatus writetolist xLeftarrow xLeftrightarrow contained +syn keyword contextCommon xRightarrow xcell xcellgroup xcolumn xdefconvertedargument contained +syn keyword contextCommon xequal xfrac xgroup xhookleftarrow xhookrightarrow contained +syn keyword contextCommon xi xleftarrow xleftharpoondown xleftharpoonup xleftrightarrow contained +syn keyword contextCommon xleftrightharpoons xmapsto xmladdindex xmlafterdocumentsetup xmlaftersetup contained +syn keyword contextCommon xmlall xmlappenddocumentsetup xmlappendsetup xmlapplyselectors xmlatt contained +syn keyword contextCommon xmlattdef xmlattribute xmlattributedef xmlbadinclusions xmlbeforedocumentsetup contained +syn keyword contextCommon xmlbeforesetup xmlchainatt xmlchainattdef xmlchecknamespace xmlcommand contained +syn keyword contextCommon xmlconcat xmlconcatrange xmlcontext xmlcount xmldefaulttotext contained +syn keyword contextCommon xmldepth xmldirectives xmldirectivesafter xmldirectivesbefore xmldisplayverbatim contained +syn keyword contextCommon xmldoif xmldoifatt xmldoifelse xmldoifelseatt xmldoifelseempty contained +syn keyword contextCommon xmldoifelseselfempty xmldoifelsetext xmldoifelsevalue xmldoifnot xmldoifnotatt contained +syn keyword contextCommon xmldoifnotselfempty xmldoifnottext xmldoifselfempty xmldoiftext xmlelement contained +syn keyword contextCommon xmlfilter xmlfirst xmlflush xmlflushcontext xmlflushdocumentsetups contained +syn keyword contextCommon xmlflushlinewise xmlflushpure xmlflushspacewise xmlflushtext xmlinclude contained +syn keyword contextCommon xmlinclusion xmlinclusions xmlinfo xmlinjector xmlinlineprettyprint contained +syn keyword contextCommon xmlinlineprettyprinttext xmlinlineverbatim xmlinstalldirective xmllast xmllastatt contained +syn keyword contextCommon xmllastmatch xmllastpar xmlloadbuffer xmlloaddata xmlloaddirectives contained +syn keyword contextCommon xmlloadfile xmlloadonly xmlmain xmlmapvalue xmlname contained +syn keyword contextCommon xmlnamespace xmlnonspace xmlpar xmlparam xmlpath contained +syn keyword contextCommon xmlpos xmlposition xmlprependdocumentsetup xmlprependsetup xmlprettyprint contained +syn keyword contextCommon xmlprettyprinttext xmlprocessbuffer xmlprocessdata xmlprocessfile xmlpure contained +syn keyword contextCommon xmlraw xmlrefatt xmlregistereddocumentsetups xmlregisteredsetups xmlregisterns contained +syn keyword contextCommon xmlremapname xmlremapnamespace xmlremovedocumentsetup xmlremovesetup xmlresetdocumentsetups contained +syn keyword contextCommon xmlresetinjectors xmlresetsetups xmlsave xmlsetatt xmlsetattribute contained +syn keyword contextCommon xmlsetentity xmlsetfunction xmlsetinjectors xmlsetpar xmlsetparam contained +syn keyword contextCommon xmlsetsetup xmlsetup xmlsetups xmlshow xmlsnippet contained +syn keyword contextCommon xmlstrip xmlstripnolines xmlstripped xmlstrippednolines xmltag contained +syn keyword contextCommon xmltexentity xmltext xmltobuffer xmltobufferverbose xmltofile contained +syn keyword contextCommon xmlvalue xmlverbatim xrel xrightarrow xrightharpoondown contained +syn keyword contextCommon xrightharpoonup xrightleftharpoons xrightoverleftarrow xrow xrowgroup contained +syn keyword contextCommon xsplitstring xtable xtablebody xtablefoot xtablehead contained +syn keyword contextCommon xtablenext xtriplerel xtwoheadleftarrow xtwoheadrightarrow xxfrac contained +syn keyword contextCommon xypos yacute ycircumflex ydiaeresis ydotbelow contained +syn keyword contextCommon yen ygrave yhook yiddishnumerals ymacron contained +syn keyword contextCommon ytilde zacute zcaron zdotaccent zeronumberconversion contained +syn keyword contextCommon zerowidthnobreakspace zerowidthspace zeta zhook zstroke contained +syn keyword contextCommon zwj zwnj contained diff --git a/runtime/syntax/shared/context-data-metafun.vim b/runtime/syntax/shared/context-data-metafun.vim new file mode 100644 index 0000000..5dc3273 --- /dev/null +++ b/runtime/syntax/shared/context-data-metafun.vim @@ -0,0 +1,117 @@ +vim9script + +# Vim syntax file +# Language: ConTeXt +# Automatically generated by mtx-interface (2023-12-26 16:40) + +syn keyword metafunCommands loadfile loadimage loadmodule dispose nothing +syn keyword metafunCommands transparency tolist topath tocycle sqr +syn keyword metafunCommands log ln exp inv pow +syn keyword metafunCommands pi radian tand cotd sin +syn keyword metafunCommands cos tan cot atan asin +syn keyword metafunCommands acos invsin invcos invtan acosh +syn keyword metafunCommands asinh sinh cosh tanh zmod +syn keyword metafunCommands paired tripled unitcircle fulldiamond unitdiamond +syn keyword metafunCommands fullsquare unittriangle fulltriangle unitoctagon fulloctagon +syn keyword metafunCommands unithexagon fullhexagon llcircle lrcircle urcircle +syn keyword metafunCommands ulcircle tcircle bcircle lcircle rcircle +syn keyword metafunCommands lltriangle lrtriangle urtriangle ultriangle uptriangle +syn keyword metafunCommands downtriangle lefttriangle righttriangle triangle smoothed +syn keyword metafunCommands cornered superellipsed randomized randomizedcontrols squeezed +syn keyword metafunCommands enlonged shortened punked curved unspiked +syn keyword metafunCommands simplified blownup stretched enlarged leftenlarged +syn keyword metafunCommands topenlarged rightenlarged bottomenlarged crossed laddered +syn keyword metafunCommands randomshifted interpolated perpendicular paralleled cutends +syn keyword metafunCommands peepholed llenlarged lrenlarged urenlarged ulenlarged +syn keyword metafunCommands llmoved lrmoved urmoved ulmoved rightarrow +syn keyword metafunCommands leftarrow centerarrow drawdoublearrows boundingbox innerboundingbox +syn keyword metafunCommands outerboundingbox pushboundingbox popboundingbox boundingradius boundingcircle +syn keyword metafunCommands boundingpoint crossingunder insideof outsideof bottomboundary +syn keyword metafunCommands leftboundary topboundary rightboundary xsized ysized +syn keyword metafunCommands xysized sized xyscaled intersection_point intersection_found +syn keyword metafunCommands penpoint bbwidth bbheight withshade withcircularshade +syn keyword metafunCommands withlinearshade defineshade shaded shadedinto withshadecolors +syn keyword metafunCommands withshadedomain withshademethod withshadefactor withshadevector withshadecenter +syn keyword metafunCommands withshadedirection withshaderadius withshadetransform withshadecenterone withshadecentertwo +syn keyword metafunCommands withshadestep withshadefraction withshadeorigin shownshadevector shownshadeorigin +syn keyword metafunCommands shownshadedirection shownshadecenter cmyk spotcolor multitonecolor +syn keyword metafunCommands namedcolor drawfill undrawfill inverted uncolored +syn keyword metafunCommands softened grayed greyed onlayer along +syn keyword metafunCommands graphictext loadfigure externalfigure figure register +syn keyword metafunCommands outlinetext filloutlinetext drawoutlinetext outlinetexttopath checkedbounds +syn keyword metafunCommands checkbounds strut rule withmask bitmapimage +syn keyword metafunCommands colordecimals ddecimal dddecimal ddddecimal colordecimalslist +syn keyword metafunCommands textext thetextext rawtextext textextoffset texbox +syn keyword metafunCommands thetexbox rawtexbox istextext infotext rawmadetext +syn keyword metafunCommands validtexbox onetimetextext rawfmttext thefmttext fmttext +syn keyword metafunCommands onetimefmttext notcached keepcached verbatim thelabel +syn keyword metafunCommands label autoalign transparent[] withtransparency withopacity +syn keyword metafunCommands property properties withproperties asgroup withpattern +syn keyword metafunCommands withpatternscale withpatternfloat infont space crlf +syn keyword metafunCommands dquote percent SPACE CRLF DQUOTE +syn keyword metafunCommands PERCENT grayscale greyscale withgray withgrey +syn keyword metafunCommands colorpart colorlike readfile clearxy unitvector +syn keyword metafunCommands center epsed anchored originpath infinite +syn keyword metafunCommands break xstretched ystretched snapped pathconnectors +syn keyword metafunCommands function constructedfunction constructedpath constructedpairs straightfunction +syn keyword metafunCommands straightpath straightpairs curvedfunction curvedpath curvedpairs +syn keyword metafunCommands evenly oddly condition pushcurrentpicture popcurrentpicture +syn keyword metafunCommands arrowpath resetarrows tensecircle roundedsquare colortype +syn keyword metafunCommands whitecolor blackcolor basiccolors complementary complemented +syn keyword metafunCommands resolvedcolor normalfill normaldraw visualizepaths detailpaths +syn keyword metafunCommands naturalizepaths drawboundary drawwholepath drawpathonly visualizeddraw +syn keyword metafunCommands visualizedfill detaileddraw draworigin drawboundingbox drawpath +syn keyword metafunCommands drawpoint drawpoints drawcontrolpoints drawcontrollines drawpointlabels +syn keyword metafunCommands drawlineoptions drawpointoptions drawcontroloptions drawlabeloptions draworiginoptions +syn keyword metafunCommands drawboundoptions drawpathoptions resetdrawoptions undashed pencilled +syn keyword metafunCommands decorated redecorated undecorated passvariable passarrayvariable +syn keyword metafunCommands tostring topair format formatted quotation +syn keyword metafunCommands quote startpassingvariable stoppassingvariable eofill eoclip +syn keyword metafunCommands nofill dofill fillup eofillup nodraw +syn keyword metafunCommands dodraw enfill area addbackground shadedup +syn keyword metafunCommands shadeddown shadedleft shadedright sortlist copylist +syn keyword metafunCommands shapedlist listtocurves listtolines listsize listlast +syn keyword metafunCommands uniquelist circularpath squarepath linearpath theoffset +syn keyword metafunCommands texmode systemmode texvar texstr isarray +syn keyword metafunCommands prefix dimension getmacro getdimen getcount +syn keyword metafunCommands gettoks setmacro setdimen setcount settoks +syn keyword metafunCommands setglobalmacro setglobaldimen setglobalcount setglobaltoks positionpath +syn keyword metafunCommands positioncurve positionxy positionparagraph positioncolumn positionwhd +syn keyword metafunCommands positionpage positionregion positionbox positionx positiony +syn keyword metafunCommands positionanchor positioninregion positionatanchor positioncolumnbox overlaycolumnbox +syn keyword metafunCommands positioncolumnatx getposboxes getmultipars getpospage getposparagraph +syn keyword metafunCommands getposcolumn getposregion getposx getposy getposwidth +syn keyword metafunCommands getposheight getposdepth getposleftskip getposrightskip getposhsize +syn keyword metafunCommands getposparindent getposhangindent getposhangafter getposxy getposupperleft +syn keyword metafunCommands getposlowerleft getposupperright getposlowerright getposllx getposlly +syn keyword metafunCommands getposurx getposury wdpart htpart dppart +syn keyword metafunCommands texvar texstr inpath pointof leftof +syn keyword metafunCommands rightof utfnum utflen utfsub newhash +syn keyword metafunCommands disposehash inhash tohash fromhash isarray +syn keyword metafunCommands prefix isobject comment report lua +syn keyword metafunCommands lualist mp MP luacall mirrored +syn keyword metafunCommands mirroredabout xslanted yslanted scriptindex newscriptindex +syn keyword metafunCommands newcolor newrgbcolor newcmykcolor newnumeric newboolean +syn keyword metafunCommands newtransform newpath newpicture newstring newpair +syn keyword metafunCommands mpvard mpvarn mpvars mpvar withtolerance +syn keyword metafunCommands hatched withdashes processpath pencilled sortedintersectiontimes +syn keyword metafunCommands intersectionpath firstintersectionpath secondintersectionpath intersectionsfound cutbeforefirst +syn keyword metafunCommands cutafterfirst cutbeforelast cutafterlast xnormalized ynormalized +syn keyword metafunCommands xynormalized phantom scrutinized xshifted yshifted +syn keyword metafunInternals nocolormodel greycolormodel graycolormodel rgbcolormodel cmykcolormodel +syn keyword metafunInternals shadefactor shadeoffset textextoffset textextanchor normaltransparent +syn keyword metafunInternals multiplytransparent screentransparent overlaytransparent softlighttransparent hardlighttransparent +syn keyword metafunInternals colordodgetransparent colorburntransparent darkentransparent lightentransparent differencetransparent +syn keyword metafunInternals exclusiontransparent huetransparent saturationtransparent colortransparent luminositytransparent +syn keyword metafunInternals ahvariant ahdimple ahfactor ahscale metapostversion +syn keyword metafunInternals maxdimensions drawoptionsfactor dq sq crossingscale +syn keyword metafunInternals crossingoption crossingdebug contextlmtxmode metafunversion minifunversion +syn keyword metafunInternals getparameters presetparameters hasparameter hasoption getparameter +syn keyword metafunInternals getparameterdefault getparametercount getmaxparametercount getparameterpath getparameterpen +syn keyword metafunInternals getparametertext applyparameters mergeparameters pushparameters popparameters +syn keyword metafunInternals setluaparameter definecolor record newrecord setrecord +syn keyword metafunInternals getrecord cntrecord anchorxy anchorx anchory +syn keyword metafunInternals anchorht anchordp anchorul anchorll anchorlr +syn keyword metafunInternals anchorur localanchorbox localanchorcell localanchorspan anchorbox +syn keyword metafunInternals anchorcell anchorspan matrixbox matrixcell matrixspan +syn keyword metafunInternals pensilcolor pensilstep uu diff --git a/runtime/syntax/shared/context-data-tex.vim b/runtime/syntax/shared/context-data-tex.vim new file mode 100644 index 0000000..cd95af2 --- /dev/null +++ b/runtime/syntax/shared/context-data-tex.vim @@ -0,0 +1,250 @@ +vim9script + +# Vim syntax file +# Language: ConTeXt +# Automatically generated by mtx-interface (2023-12-26 16:40) + +syn keyword texAleph Alephminorversion Alephrevision Alephversion contained +syn keyword texEtex botmarks clubpenalties currentgrouplevel currentgrouptype currentifbranch contained +syn keyword texEtex currentiflevel currentiftype currentstacksize detokenize dimexpr contained +syn keyword texEtex displaywidowpenalties everyeof firstmarks fontchardp fontcharht contained +syn keyword texEtex fontcharic fontcharwd glueexpr glueshrink glueshrinkorder contained +syn keyword texEtex gluestretch gluestretchorder gluetomu ifcsname ifdefined contained +syn keyword texEtex iffontchar interactionmode interlinepenalties lastlinefit lastnodetype contained +syn keyword texEtex marks muexpr mutoglue numexpr pagediscards contained +syn keyword texEtex parshapedimen parshapeindent parshapelength predisplaydirection protected contained +syn keyword texEtex savinghyphcodes savingvdiscards scantokens showgroups showifs contained +syn keyword texEtex showtokens splitbotmarks splitdiscards splitfirstmarks topmarks contained +syn keyword texEtex tracingassigns tracinggroups tracingifs tracingnesting unexpanded contained +syn keyword texEtex unless widowpenalties contained +syn keyword texLuatex Uabove Uabovewithdelims Uatop Uatopwithdelims Uchar contained +syn keyword texLuatex Udelcode Udelimited Udelimiter Udelimiterover Udelimiterunder contained +syn keyword texLuatex Uhextensible Uleft Umathaccent Umathaccentbasedepth Umathaccentbaseheight contained +syn keyword texLuatex Umathaccentbottomovershoot Umathaccentbottomshiftdown Umathaccentextendmargin Umathaccentsuperscriptdrop Umathaccentsuperscriptpercent contained +syn keyword texLuatex Umathaccenttopovershoot Umathaccenttopshiftup Umathaccentvariant Umathadapttoleft Umathadapttoright contained +syn keyword texLuatex Umathaxis Umathbottomaccentvariant Umathchar Umathcharclass Umathchardef contained +syn keyword texLuatex Umathcharfam Umathcharslot Umathclass Umathcode Umathconnectoroverlapmin contained +syn keyword texLuatex Umathdegreevariant Umathdelimiterextendmargin Umathdelimiterovervariant Umathdelimiterpercent Umathdelimitershortfall contained +syn keyword texLuatex Umathdelimiterundervariant Umathdenominatorvariant Umathdict Umathdictdef Umathdiscretionary contained +syn keyword texLuatex Umathextrasubpreshift Umathextrasubprespace Umathextrasubshift Umathextrasubspace Umathextrasuppreshift contained +syn keyword texLuatex Umathextrasupprespace Umathextrasupshift Umathextrasupspace Umathflattenedaccentbasedepth Umathflattenedaccentbaseheight contained +syn keyword texLuatex Umathflattenedaccentbottomshiftdown Umathflattenedaccenttopshiftup Umathfractiondelsize Umathfractiondenomdown Umathfractiondenomvgap contained +syn keyword texLuatex Umathfractionnumup Umathfractionnumvgap Umathfractionrule Umathfractionvariant Umathhextensiblevariant contained +syn keyword texLuatex Umathlimitabovebgap Umathlimitabovekern Umathlimitabovevgap Umathlimitbelowbgap Umathlimitbelowkern contained +syn keyword texLuatex Umathlimitbelowvgap Umathlimits Umathnoaxis Umathnolimits Umathnolimitsubfactor contained +syn keyword texLuatex Umathnolimitsupfactor Umathnumeratorvariant Umathopenupdepth Umathopenupheight Umathoperatorsize contained +syn keyword texLuatex Umathoverbarkern Umathoverbarrule Umathoverbarvgap Umathoverdelimiterbgap Umathoverdelimitervariant contained +syn keyword texLuatex Umathoverdelimitervgap Umathoverlayaccentvariant Umathoverlinevariant Umathphantom Umathpresubshiftdistance contained +syn keyword texLuatex Umathpresupshiftdistance Umathprimeraise Umathprimeraisecomposed Umathprimeshiftdrop Umathprimeshiftup contained +syn keyword texLuatex Umathprimespaceafter Umathprimevariant Umathprimewidth Umathquad Umathradicaldegreeafter contained +syn keyword texLuatex Umathradicaldegreebefore Umathradicaldegreeraise Umathradicalextensibleafter Umathradicalextensiblebefore Umathradicalkern contained +syn keyword texLuatex Umathradicalrule Umathradicalvariant Umathradicalvgap Umathruledepth Umathruleheight contained +syn keyword texLuatex Umathskeweddelimitertolerance Umathskewedfractionhgap Umathskewedfractionvgap Umathsource Umathspaceafterscript contained +syn keyword texLuatex Umathspacebeforescript Umathstackdenomdown Umathstacknumup Umathstackvariant Umathstackvgap contained +syn keyword texLuatex Umathsubscriptvariant Umathsubshiftdistance Umathsubshiftdown Umathsubshiftdrop Umathsubsupshiftdown contained +syn keyword texLuatex Umathsubsupvgap Umathsubtopmax Umathsupbottommin Umathsuperscriptvariant Umathsupshiftdistance contained +syn keyword texLuatex Umathsupshiftdrop Umathsupshiftup Umathsupsubbottommax Umathtopaccentvariant Umathunderbarkern contained +syn keyword texLuatex Umathunderbarrule Umathunderbarvgap Umathunderdelimiterbgap Umathunderdelimitervariant Umathunderdelimitervgap contained +syn keyword texLuatex Umathunderlinevariant Umathuseaxis Umathvextensiblevariant Umathvoid Umathxscale contained +syn keyword texLuatex Umathyscale Umiddle Unosubprescript Unosubscript Unosuperprescript contained +syn keyword texLuatex Unosuperscript Uoperator Uover Uoverdelimiter Uoverwithdelims contained +syn keyword texLuatex Uprimescript Uradical Uright Uroot Urooted contained +syn keyword texLuatex Ushiftedsubprescript Ushiftedsubscript Ushiftedsuperprescript Ushiftedsuperscript Uskewed contained +syn keyword texLuatex Uskewedwithdelims Ustack Ustartdisplaymath Ustartmath Ustartmathmode contained +syn keyword texLuatex Ustopdisplaymath Ustopmath Ustopmathmode Ustretched Ustretchedwithdelims contained +syn keyword texLuatex Ustyle Usubprescript Usubscript Usuperprescript Usuperscript contained +syn keyword texLuatex Uunderdelimiter Uvextensible additionalpageskip adjustspacing adjustspacingshrink contained +syn keyword texLuatex adjustspacingstep adjustspacingstretch advanceby afterassigned aftergrouped contained +syn keyword texLuatex aliased aligncontent alignmark alignmentcellsource alignmentwrapsource contained +syn keyword texLuatex aligntab allcrampedstyles alldisplaystyles allmainstyles allmathstyles contained +syn keyword texLuatex allscriptscriptstyles allscriptstyles allsplitstyles alltextstyles alluncrampedstyles contained +syn keyword texLuatex allunsplitstyles amcode associateunit atendoffile atendoffiled contained +syn keyword texLuatex atendofgroup atendofgrouped attribute attributedef automaticdiscretionary contained +syn keyword texLuatex automatichyphenpenalty automigrationmode autoparagraphmode begincsname beginlocalcontrol contained +syn keyword texLuatex beginmathgroup beginsimplegroup boundary boxadapt boxanchor contained +syn keyword texLuatex boxanchors boxattribute boxdirection boxfreeze boxgeometry contained +syn keyword texLuatex boxlimitate boxorientation boxrepack boxshift boxshrink contained +syn keyword texLuatex boxsource boxstretch boxtarget boxtotal boxvadjust contained +syn keyword texLuatex boxxmove boxxoffset boxymove boxyoffset catcodetable contained +syn keyword texLuatex cdef cdefcsname cfcode clearmarks constant contained +syn keyword texLuatex constrained copymathatomrule copymathparent copymathspacing crampeddisplaystyle contained +syn keyword texLuatex crampedscriptscriptstyle crampedscriptstyle crampedtextstyle csactive csstring contained +syn keyword texLuatex currentloopiterator currentloopnesting currentmarks dbox defcsname contained +syn keyword texLuatex deferred detokened detokenized dimensiondef dimexpression contained +syn keyword texLuatex directlua discretionaryoptions divideby dpack dsplit contained +syn keyword texLuatex edefcsname edivide edivideby efcode emergencyleftskip contained +syn keyword texLuatex emergencyrightskip endlocalcontrol endmathgroup endsimplegroup enforced contained +syn keyword texLuatex etoks etoksapp etokspre eufactor everybeforepar contained +syn keyword texLuatex everymathatom everytab exceptionpenalty expand expandactive contained +syn keyword texLuatex expandafterpars expandafterspaces expandcstoken expanded expandedafter contained +syn keyword texLuatex expandeddetokenize expandedendless expandedloop expandedrepeat expandparameter contained +syn keyword texLuatex expandtoken expandtoks explicitdiscretionary explicithyphenpenalty firstvalidlanguage contained +syn keyword texLuatex float floatdef floatexpr flushmarks fontcharba contained +syn keyword texLuatex fontcharta fontid fontmathcontrol fontspecdef fontspecid contained +syn keyword texLuatex fontspecifiedname fontspecifiedsize fontspecscale fontspecxscale fontspecyscale contained +syn keyword texLuatex fonttextcontrol formatname frozen futurecsname futuredef contained +syn keyword texLuatex futureexpand futureexpandis futureexpandisap gdefcsname gleaders contained +syn keyword texLuatex glet gletcsname glettonothing gluespecdef glyph contained +syn keyword texLuatex glyphdatafield glyphoptions glyphscale glyphscriptfield glyphscriptscale contained +syn keyword texLuatex glyphscriptscriptscale glyphstatefield glyphtextscale glyphxoffset glyphxscale contained +syn keyword texLuatex glyphxscaled glyphyoffset glyphyscale glyphyscaled gtoksapp contained +syn keyword texLuatex gtokspre hccode hjcode hmcode holdingmigrations contained +syn keyword texLuatex hpack hpenalty hyphenationmin hyphenationmode ifabsdim contained +syn keyword texLuatex ifabsfloat ifabsnum ifarguments ifboolean ifchkdim contained +syn keyword texLuatex ifchkdimension ifchknum ifchknumber ifcmpdim ifcmpnum contained +syn keyword texLuatex ifcondition ifcstok ifdimexpression ifdimval ifempty contained +syn keyword texLuatex ifflags iffloat ifhaschar ifhastok ifhastoks contained +syn keyword texLuatex ifhasxtoks ifinalignment ifincsname ifinsert ifintervaldim contained +syn keyword texLuatex ifintervalfloat ifintervalnum ifmathparameter ifmathstyle ifnumexpression contained +syn keyword texLuatex ifnumval ifparameter ifparameters ifrelax iftok contained +syn keyword texLuatex ifzerodim ifzerofloat ifzeronum ignorearguments ignoredepthcriterion contained +syn keyword texLuatex ignorenestedupto ignorepars ignorerest ignoreupto immediate contained +syn keyword texLuatex immutable indexofcharacter indexofregister inherited initcatcodetable contained +syn keyword texLuatex initialpageskip initialtopskip insertbox insertcopy insertdepth contained +syn keyword texLuatex insertdistance insertheight insertheights insertlimit insertmaxdepth contained +syn keyword texLuatex insertmode insertmultiplier insertpenalty insertprogress insertstorage contained +syn keyword texLuatex insertstoring insertunbox insertuncopy insertwidth instance contained +syn keyword texLuatex integerdef lastarguments lastatomclass lastboundary lastchkdimension contained +syn keyword texLuatex lastchknumber lastleftclass lastloopiterator lastnamedcs lastnodesubtype contained +syn keyword texLuatex lastpageextra lastparcontext lastrightclass leftmarginkern letcharcode contained +syn keyword texLuatex letcsname letfrozen letmathatomrule letmathparent letmathspacing contained +syn keyword texLuatex letprotected lettolastnamedcs lettonothing linebreakcriterion linebreakoptional contained +syn keyword texLuatex linebreakpasses linedirection localbrokenpenalty localcontrol localcontrolled contained +syn keyword texLuatex localcontrolledendless localcontrolledloop localcontrolledrepeat localinterlinepenalty localleftbox contained +syn keyword texLuatex localleftboxbox localmiddlebox localmiddleboxbox localpretolerance localrightbox contained +syn keyword texLuatex localrightboxbox localtolerance lpcode luabytecode luabytecodecall contained +syn keyword texLuatex luacopyinputnodes luadef luaescapestring luafunction luafunctioncall contained +syn keyword texLuatex luatexbanner luatexrevision luatexversion mathatom mathatomglue contained +syn keyword texLuatex mathatomskip mathbackwardpenalties mathbeginclass mathboundary mathcheckfencesmode contained +syn keyword texLuatex mathdictgroup mathdictproperties mathdirection mathdisplaymode mathdisplaypenaltyfactor contained +syn keyword texLuatex mathdisplayskipmode mathdoublescriptmode mathendclass matheqnogapstep mathfontcontrol contained +syn keyword texLuatex mathforwardpenalties mathgluemode mathgroupingmode mathinlinepenaltyfactor mathleftclass contained +syn keyword texLuatex mathlimitsmode mathmainstyle mathnolimitsmode mathpenaltiesmode mathpretolerance contained +syn keyword texLuatex mathrightclass mathrulesfam mathrulesmode mathscale mathscriptsmode contained +syn keyword texLuatex mathslackmode mathspacingmode mathstackstyle mathstyle mathstylefontid contained +syn keyword texLuatex mathsurroundmode mathsurroundskip maththreshold mathtolerance meaningasis contained +syn keyword texLuatex meaningful meaningfull meaningles meaningless mugluespecdef contained +syn keyword texLuatex multiplyby mutable nestedloopiterator noaligned noatomruling contained +syn keyword texLuatex noboundary nohrule norelax normalizelinemode normalizeparmode contained +syn keyword texLuatex nospaces novrule numericscale numericscaled numexpression contained +syn keyword texLuatex optionalboundary orelse orphanpenalties orphanpenalty orunless contained +syn keyword texLuatex outputbox overloaded overloadmode overshoot pageboundary contained +syn keyword texLuatex pagedepth pageexcess pageextragoal pagefistretch pagelastdepth contained +syn keyword texLuatex pagelastfilllstretch pagelastfillstretch pagelastfilstretch pagelastheight pagelastshrink contained +syn keyword texLuatex pagelaststretch pagevsize parametercount parameterdef parameterindex contained +syn keyword texLuatex parametermark parametermode parattribute pardirection parfillleftskip contained +syn keyword texLuatex parfillrightskip parinitleftskip parinitrightskip parpasses permanent contained +syn keyword texLuatex pettymuskip positdef postexhyphenchar posthyphenchar postinlinepenalty contained +syn keyword texLuatex postshortinlinepenalty prebinoppenalty predisplaygapfactor preexhyphenchar prehyphenchar contained +syn keyword texLuatex preinlinepenalty prerelpenalty preshortinlinepenalty previousloopiterator protecteddetokenize contained +syn keyword texLuatex protectedexpandeddetokenize protrudechars protrusionboundary pxdimen quitloop contained +syn keyword texLuatex quitloopnow quitvmode rdivide rdivideby resetmathspacing contained +syn keyword texLuatex retained retokenized rightmarginkern rpcode savecatcodetable contained +syn keyword texLuatex scaledemwidth scaledexheight scaledextraspace scaledfontcharba scaledfontchardp contained +syn keyword texLuatex scaledfontcharht scaledfontcharic scaledfontcharta scaledfontcharwd scaledfontdimen contained +syn keyword texLuatex scaledinterwordshrink scaledinterwordspace scaledinterwordstretch scaledmathstyle scaledslantperpoint contained +syn keyword texLuatex scantextokens semiexpand semiexpanded semiprotected setdefaultmathcodes contained +syn keyword texLuatex setfontid setmathatomrule setmathdisplaypostpenalty setmathdisplayprepenalty setmathignore contained +syn keyword texLuatex setmathoptions setmathpostpenalty setmathprepenalty setmathspacing shapingpenaltiesmode contained +syn keyword texLuatex shapingpenalty shortinlinemaththreshold shortinlineorphanpenalty singlelinepenalty snapshotpar contained +syn keyword texLuatex spacefactormode spacefactorshrinklimit spacefactorstretchlimit srule supmarkmode contained +syn keyword texLuatex swapcsvalues tabsize textdirection thewithoutunit tinymuskip contained +syn keyword texLuatex todimension tohexadecimal tointeger tokenized toksapp contained +syn keyword texLuatex tokspre tolerant tomathstyle toscaled tosparsedimension contained +syn keyword texLuatex tosparsescaled tpack tracingadjusts tracingalignments tracingexpressions contained +syn keyword texLuatex tracingfonts tracingfullboxes tracinghyphenation tracinginserts tracinglevels contained +syn keyword texLuatex tracinglists tracingmarks tracingmath tracingnodes tracingpasses contained +syn keyword texLuatex tracingpenalties tsplit uleaders undent unexpandedendless contained +syn keyword texLuatex unexpandedloop unexpandedrepeat unhpack unletfrozen unletprotected contained +syn keyword texLuatex untraced unvpack variablefam virtualhrule virtualvrule contained +syn keyword texLuatex vpack vpenalty wordboundary wrapuppar xdefcsname contained +syn keyword texLuatex xtoks xtoksapp xtokspre contained +syn keyword texOmega Omegaminorversion Omegarevision Omegaversion contained +syn keyword texPdftex ifpdfabsdim ifpdfabsnum ifpdfprimitive pdfadjustspacing pdfannot contained +syn keyword texPdftex pdfcatalog pdfcolorstack pdfcolorstackinit pdfcompresslevel pdfcopyfont contained +syn keyword texPdftex pdfcreationdate pdfdecimaldigits pdfdest pdfdestmargin pdfdraftmode contained +syn keyword texPdftex pdfeachlinedepth pdfeachlineheight pdfendlink pdfendthread pdffirstlineheight contained +syn keyword texPdftex pdffontattr pdffontexpand pdffontname pdffontobjnum pdffontsize contained +syn keyword texPdftex pdfgamma pdfgentounicode pdfglyphtounicode pdfhorigin pdfignoreddimen contained +syn keyword texPdftex pdfignoreunknownimages pdfimageaddfilename pdfimageapplygamma pdfimagegamma pdfimagehicolor contained +syn keyword texPdftex pdfimageresolution pdfincludechars pdfinclusioncopyfonts pdfinclusionerrorlevel pdfinfo contained +syn keyword texPdftex pdfinfoomitdate pdfinsertht pdflastannot pdflastlinedepth pdflastlink contained +syn keyword texPdftex pdflastobj pdflastxform pdflastximage pdflastximagepages pdflastxpos contained +syn keyword texPdftex pdflastypos pdflinkmargin pdfliteral pdfmajorversion pdfmapfile contained +syn keyword texPdftex pdfmapline pdfminorversion pdfnames pdfnoligatures pdfnormaldeviate contained +syn keyword texPdftex pdfobj pdfobjcompresslevel pdfomitcharset pdfomitcidset pdfomitinfodict contained +syn keyword texPdftex pdfoutline pdfoutput pdfpageattr pdfpagebox pdfpageheight contained +syn keyword texPdftex pdfpageref pdfpageresources pdfpagesattr pdfpagewidth pdfpkfixeddpi contained +syn keyword texPdftex pdfpkmode pdfpkresolution pdfprimitive pdfprotrudechars pdfpxdimen contained +syn keyword texPdftex pdfrandomseed pdfrecompress pdfrefobj pdfrefxform pdfrefximage contained +syn keyword texPdftex pdfreplacefont pdfrestore pdfretval pdfsave pdfsavepos contained +syn keyword texPdftex pdfsetmatrix pdfsetrandomseed pdfstartlink pdfstartthread pdfsuppressoptionalinfo contained +syn keyword texPdftex pdfsuppressptexinfo pdftexbanner pdftexrevision pdftexversion pdfthread contained +syn keyword texPdftex pdfthreadmargin pdftracingfonts pdftrailer pdftrailerid pdfuniformdeviate contained +syn keyword texPdftex pdfuniqueresname pdfvorigin pdfxform pdfxformattr pdfxformmargin contained +syn keyword texPdftex pdfxformname pdfxformresources pdfximage contained +syn keyword texTex - / above abovedisplayshortskip contained +syn keyword texTex abovedisplayskip abovewithdelims accent adjdemerits advance contained +syn keyword texTex afterassignment aftergroup atop atopwithdelims badness contained +syn keyword texTex baselineskip batchmode begingroup belowdisplayshortskip belowdisplayskip contained +syn keyword texTex binoppenalty botmark box boxmaxdepth brokenpenalty contained +syn keyword texTex catcode char chardef cleaders clubpenalty contained +syn keyword texTex copy count countdef cr crcr contained +syn keyword texTex csname day deadcycles def defaulthyphenchar contained +syn keyword texTex defaultskewchar delcode delimiter delimiterfactor delimitershortfall contained +syn keyword texTex dimen dimendef discretionary displayindent displaylimits contained +syn keyword texTex displaystyle displaywidowpenalty displaywidth divide doubleadjdemerits contained +syn keyword texTex doublehyphendemerits dp dump edef else contained +syn keyword texTex emergencyextrastretch emergencystretch end endcsname endgroup contained +syn keyword texTex endinput endlinechar eofinput eqno errhelp contained +syn keyword texTex errmessage errorcontextlines errorstopmode escapechar everycr contained +syn keyword texTex everydisplay everyhbox everyjob everymath everypar contained +syn keyword texTex everyvbox exhyphenchar exhyphenpenalty expandafter fam contained +syn keyword texTex fi finalhyphendemerits firstmark floatingpenalty font contained +syn keyword texTex fontdimen fontname futurelet gdef global contained +syn keyword texTex globaldefs halign hangafter hangindent hbadness contained +syn keyword texTex hbox hfil hfill hfilneg hfuzz contained +syn keyword texTex hkern holdinginserts hrule hsize hskip contained +syn keyword texTex hss ht hyphenation hyphenchar hyphenpenalty contained +syn keyword texTex if ifcase ifcat ifdim iffalse contained +syn keyword texTex ifhbox ifhmode ifinner ifmmode ifnum contained +syn keyword texTex ifodd iftrue ifvbox ifvmode ifvoid contained +syn keyword texTex ifx ignorespaces indent input inputlineno contained +syn keyword texTex insert insertpenalties interlinepenalty jobname kern contained +syn keyword texTex language lastbox lastkern lastpenalty lastskip contained +syn keyword texTex lccode leaders left lefthyphenmin leftskip contained +syn keyword texTex leqno let limits linepenalty lineskip contained +syn keyword texTex lineskiplimit long looseness lower lowercase contained +syn keyword texTex mark mathaccent mathbin mathchar mathchardef contained +syn keyword texTex mathchoice mathclose mathcode mathinner mathop contained +syn keyword texTex mathopen mathord mathpunct mathrel mathsurround contained +syn keyword texTex maxdeadcycles maxdepth meaning medmuskip message contained +syn keyword texTex middle mkern month moveleft moveright contained +syn keyword texTex mskip multiply muskip muskipdef newlinechar contained +syn keyword texTex noalign noexpand noindent nolimits nonscript contained +syn keyword texTex nonstopmode nulldelimiterspace nullfont number omit contained +syn keyword texTex or outer output outputpenalty over contained +syn keyword texTex overfullrule overline overwithdelims pagefilllstretch pagefillstretch contained +syn keyword texTex pagefilstretch pagegoal pageshrink pagestretch pagetotal contained +syn keyword texTex par parfillskip parindent parshape parskip contained +syn keyword texTex patterns pausing penalty postdisplaypenalty predisplaypenalty contained +syn keyword texTex predisplaysize pretolerance prevdepth prevgraf radical contained +syn keyword texTex raise relax relpenalty right righthyphenmin contained +syn keyword texTex rightskip romannumeral scriptfont scriptscriptfont scriptscriptstyle contained +syn keyword texTex scriptspace scriptstyle scrollmode setbox setlanguage contained +syn keyword texTex sfcode shipout show showbox showboxbreadth contained +syn keyword texTex showboxdepth showlists shownodedetails showthe skewchar contained +syn keyword texTex skip skipdef spacefactor spaceskip span contained +syn keyword texTex splitbotmark splitfirstmark splitmaxdepth splittopskip string contained +syn keyword texTex tabskip textfont textstyle the thickmuskip contained +syn keyword texTex thinmuskip time toks toksdef tolerance contained +syn keyword texTex topmark topskip tracingcommands tracinglostchars tracingmacros contained +syn keyword texTex tracingonline tracingoutput tracingpages tracingparagraphs tracingrestores contained +syn keyword texTex tracingstats uccode uchyph unboundary underline contained +syn keyword texTex unhbox unhcopy unkern unpenalty unskip contained +syn keyword texTex unvbox unvcopy uppercase vadjust valign contained +syn keyword texTex vbadness vbox vcenter vfil vfill contained +syn keyword texTex vfilneg vfuzz vkern vrule vsize contained +syn keyword texTex vskip vsplit vss vtop wd contained +syn keyword texTex widowpenalty xdef xleaders xspaceskip year contained +syn keyword texXetex XeTeXversion contained diff --git a/runtime/syntax/shared/debversions.vim b/runtime/syntax/shared/debversions.vim new file mode 100644 index 0000000..6c944cd --- /dev/null +++ b/runtime/syntax/shared/debversions.vim @@ -0,0 +1,29 @@ +" Vim syntax file +" Language: Debian version information +" Maintainer: Debian Vim Maintainers +" Last Change: 2023 Nov 01 +" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/shared/debversions.vim + +let s:cpo = &cpo +set cpo-=C + +let g:debSharedSupportedVersions = [ + \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental', 'sid', 'rc-buggy', + \ 'bullseye', 'bookworm', 'trixie', 'forky', + \ + \ 'trusty', 'xenial', 'bionic', 'focal', 'jammy', 'lunar', 'mantic', 'noble', + \ 'devel' + \ ] +let g:debSharedUnsupportedVersions = [ + \ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', + \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy', + \ 'jessie', 'stretch', 'buster', + \ + \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty', + \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid', + \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy', + \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic', + \ 'disco', 'eoan', 'hirsute', 'impish', 'kinetic', 'groovy' + \ ] + +let &cpo=s:cpo diff --git a/runtime/syntax/shared/hgcommitDiff.vim b/runtime/syntax/shared/hgcommitDiff.vim new file mode 100644 index 0000000..949cdf0 --- /dev/null +++ b/runtime/syntax/shared/hgcommitDiff.vim @@ -0,0 +1,390 @@ +" Vim syntax file +" Language: Sapling / Mecurial Diff (context or unified) +" Maintainer: Max Coplan +" Translations by Jakson Alves de Aquino. +" Last Change: 2022-12-08 +" Copied from: runtime/syntax/diff.vim + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif +scriptencoding utf-8 + +syn match hgDiffOnly "^\%(SL\|HG\): Only in .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Files .* and .* are identical$" +syn match hgDiffDiffer "^\%(SL\|HG\): Files .* and .* differ$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binary files .* and .* differ$" +syn match hgDiffIsA "^\%(SL\|HG\): File .* is a .* while file .* is a .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ No newline at end of file .*" +syn match hgDiffCommon "^\%(SL\|HG\): Common subdirectories: .*" + +" Disable the translations by setting diff_translations to zero. +if !exists("diff_translations") || diff_translations + +" ca +syn match hgDiffOnly "^\%(SL\|HG\): Només a .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Els fitxers .* i .* són idèntics$" +syn match hgDiffDiffer "^\%(SL\|HG\): Els fitxers .* i .* difereixen$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Els fitxers .* i .* difereixen$" +syn match hgDiffIsA "^\%(SL\|HG\): El fitxer .* és un .* mentre que el fitxer .* és un .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ No hi ha cap caràcter de salt de línia al final del fitxer" +syn match hgDiffCommon "^\%(SL\|HG\): Subdirectoris comuns: .* i .*" + +" cs +syn match hgDiffOnly "^\%(SL\|HG\): Pouze v .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Soubory .* a .* jsou identické$" +syn match hgDiffDiffer "^\%(SL\|HG\): Soubory .* a .* jsou různé$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binární soubory .* a .* jsou rozdílné$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Soubory .* a .* jsou různé$" +syn match hgDiffIsA "^\%(SL\|HG\): Soubor .* je .* pokud soubor .* je .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Chybí znak konce řádku na konci souboru" +syn match hgDiffCommon "^\%(SL\|HG\): Společné podadresáře: .* a .*" + +" da +syn match hgDiffOnly "^\%(SL\|HG\): Kun i .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Filerne .* og .* er identiske$" +syn match hgDiffDiffer "^\%(SL\|HG\): Filerne .* og .* er forskellige$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binære filer .* og .* er forskellige$" +syn match hgDiffIsA "^\%(SL\|HG\): Filen .* er en .* mens filen .* er en .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Intet linjeskift ved filafslutning" +syn match hgDiffCommon "^\%(SL\|HG\): Identiske underkataloger: .* og .*" + +" de +syn match hgDiffOnly "^\%(SL\|HG\): Nur in .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Dateien .* und .* sind identisch.$" +syn match hgDiffDiffer "^\%(SL\|HG\): Dateien .* und .* sind verschieden.$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binärdateien .* and .* sind verschieden.$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binärdateien .* und .* sind verschieden.$" +syn match hgDiffIsA "^\%(SL\|HG\): Datei .* ist ein .* während Datei .* ein .* ist.$" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Kein Zeilenumbruch am Dateiende." +syn match hgDiffCommon "^\%(SL\|HG\): Gemeinsame Unterverzeichnisse: .* und .*.$" + +" el +syn match hgDiffOnly "^\%(SL\|HG\): Μόνο στο .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Τα αρχεία .* καί .* είναι πανομοιότυπα$" +syn match hgDiffDiffer "^\%(SL\|HG\): Τα αρχεία .* και .* διαφέρουν$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Τα αρχεία .* και .* διαφέρουν$" +syn match hgDiffIsA "^\%(SL\|HG\): Το αρχείο .* είναι .* ενώ το αρχείο .* είναι .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου" +syn match hgDiffCommon "^\%(SL\|HG\): Οι υποκατάλογοι .* και .* είναι ταυτόσημοι$" + +" eo +syn match hgDiffOnly "^\%(SL\|HG\): Nur en .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Dosieroj .* kaj .* estas samaj$" +syn match hgDiffDiffer "^\%(SL\|HG\): Dosieroj .* kaj .* estas malsamaj$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Dosieroj .* kaj .* estas malsamaj$" +syn match hgDiffIsA "^\%(SL\|HG\): Dosiero .* estas .*, dum dosiero .* estas .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Mankas linifino ĉe fino de dosiero" +syn match hgDiffCommon "^\%(SL\|HG\): Komunaj subdosierujoj: .* kaj .*" + +" es +syn match hgDiffOnly "^\%(SL\|HG\): Sólo en .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Los ficheros .* y .* son idénticos$" +syn match hgDiffDiffer "^\%(SL\|HG\): Los ficheros .* y .* son distintos$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Los ficheros binarios .* y .* son distintos$" +syn match hgDiffIsA "^\%(SL\|HG\): El fichero .* es un .* mientras que el .* es un .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ No hay ningún carácter de nueva línea al final del fichero" +syn match hgDiffCommon "^\%(SL\|HG\): Subdirectorios comunes: .* y .*" + +" fi +syn match hgDiffOnly "^\%(SL\|HG\): Vain hakemistossa .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Tiedostot .* ja .* ovat identtiset$" +syn match hgDiffDiffer "^\%(SL\|HG\): Tiedostot .* ja .* eroavat$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binääritiedostot .* ja .* eroavat$" +syn match hgDiffIsA "^\%(SL\|HG\): Tiedosto .* on .*, kun taas tiedosto .* on .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Ei rivinvaihtoa tiedoston lopussa" +syn match hgDiffCommon "^\%(SL\|HG\): Yhteiset alihakemistot: .* ja .*" + +" fr +syn match hgDiffOnly "^\%(SL\|HG\): Seulement dans .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Les fichiers .* et .* sont identiques.*" +syn match hgDiffDiffer "^\%(SL\|HG\): Les fichiers .* et .* sont différents.*" +syn match hgDiffBDiffer "^\%(SL\|HG\): Les fichiers binaires .* et .* sont différents.*" +syn match hgDiffIsA "^\%(SL\|HG\): Le fichier .* est un .* alors que le fichier .* est un .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Pas de fin de ligne à la fin du fichier.*" +syn match hgDiffCommon "^\%(SL\|HG\): Les sous-répertoires .* et .* sont identiques.*" + +" ga +syn match hgDiffOnly "^\%(SL\|HG\): I .* amháin: .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Is comhionann iad na comhaid .* agus .*" +syn match hgDiffDiffer "^\%(SL\|HG\): Tá difríocht idir na comhaid .* agus .*" +syn match hgDiffBDiffer "^\%(SL\|HG\): Tá difríocht idir na comhaid .* agus .*" +syn match hgDiffIsA "^\%(SL\|HG\): Tá comhad .* ina .* ach tá comhad .* ina .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Gan líne nua ag an chomhadchríoch" +syn match hgDiffCommon "^\%(SL\|HG\): Fochomhadlanna i gcoitianta: .* agus .*" + +" gl +syn match hgDiffOnly "^\%(SL\|HG\): Só en .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Os ficheiros .* e .* son idénticos$" +syn match hgDiffDiffer "^\%(SL\|HG\): Os ficheiros .* e .* son diferentes$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Os ficheiros binarios .* e .* son diferentes$" +syn match hgDiffIsA "^\%(SL\|HG\): O ficheiro .* é un .* mentres que o ficheiro .* é un .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Non hai un salto de liña na fin da liña" +syn match hgDiffCommon "^\%(SL\|HG\): Subdirectorios comúns: .* e .*" + +" he +" ^\%(SL\|HG\): .* are expansive patterns for long lines, so disabled unless we can match +" some specific hebrew chars +if search('\%u05d5\|\%u05d1', 'nw', '', 100) + syn match hgDiffOnly "^\%(SL\|HG\): .*-ב קר אצמנ .*" + syn match hgDiffIdentical "^\%(SL\|HG\): םיהז םניה .*-ו .* םיצבקה$" + syn match hgDiffDiffer "^\%(SL\|HG\): הזמ הז םינוש `.*'-ו `.*' םיצבקה$" + syn match hgDiffBDiffer "^\%(SL\|HG\): הזמ הז םינוש `.*'-ו `.*' םיירניב םיצבק$" + syn match hgDiffIsA "^\%(SL\|HG\): .* .*-ל .* .* תוושהל ןתינ אל$" + syn match hgDiffNoEOL "^\%(SL\|HG\): \\ ץבוקה ףוסב השד.-הרוש ות רס." + syn match hgDiffCommon "^\%(SL\|HG\): .*-ו .* :תוהז תויקית-תת$" +endif + +" hr +syn match hgDiffOnly "^\%(SL\|HG\): Samo u .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Datoteke .* i .* su identične$" +syn match hgDiffDiffer "^\%(SL\|HG\): Datoteke .* i .* se razlikuju$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binarne datoteke .* i .* se razlikuju$" +syn match hgDiffIsA "^\%(SL\|HG\): Datoteka .* je .*, a datoteka .* je .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Nema novog retka na kraju datoteke" +syn match hgDiffCommon "^\%(SL\|HG\): Uobičajeni poddirektoriji: .* i .*" + +" hu +syn match hgDiffOnly "^\%(SL\|HG\): Csak .* -ben: .*" +syn match hgDiffIdentical "^\%(SL\|HG\): .* és .* fájlok azonosak$" +syn match hgDiffDiffer "^\%(SL\|HG\): A(z) .* és a(z) .* fájlok különböznek$" +syn match hgDiffBDiffer "^\%(SL\|HG\): A(z) .* és a(z) .* fájlok különböznek$" +syn match hgDiffIsA "^\%(SL\|HG\): A(z) .* fájl egy .*, viszont a(z) .* fájl egy .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Nincs újsor a fájl végén" +syn match hgDiffCommon "^\%(SL\|HG\): Közös alkönyvtárak: .* és .*" + +" id +syn match hgDiffOnly "^\%(SL\|HG\): Hanya dalam .*" +syn match hgDiffIdentical "^\%(SL\|HG\): File .* dan .* identik$" +syn match hgDiffDiffer "^\%(SL\|HG\): Berkas .* dan .* berbeda$" +syn match hgDiffBDiffer "^\%(SL\|HG\): File biner .* dan .* berbeda$" +syn match hgDiffIsA "^\%(SL\|HG\): File .* adalah .* sementara file .* adalah .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Tidak ada baris-baru di akhir dari berkas" +syn match hgDiffCommon "^\%(SL\|HG\): Subdirektori sama: .* dan .*" + +" it +syn match hgDiffOnly "^\%(SL\|HG\): Solo in .*" +syn match hgDiffIdentical "^\%(SL\|HG\): I file .* e .* sono identici$" +syn match hgDiffDiffer "^\%(SL\|HG\): I file .* e .* sono diversi$" +syn match hgDiffBDiffer "^\%(SL\|HG\): I file .* e .* sono diversi$" +syn match hgDiffBDiffer "^\%(SL\|HG\): I file binari .* e .* sono diversi$" +syn match hgDiffIsA "^\%(SL\|HG\): File .* è un .* mentre file .* è un .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Manca newline alla fine del file" +syn match hgDiffCommon "^\%(SL\|HG\): Sottodirectory in comune: .* e .*" + +" ja +syn match hgDiffOnly "^\%(SL\|HG\): .*だけに発見: .*" +syn match hgDiffIdentical "^\%(SL\|HG\): ファイル.*と.*は同一$" +syn match hgDiffDiffer "^\%(SL\|HG\): ファイル.*と.*は違います$" +syn match hgDiffBDiffer "^\%(SL\|HG\): バイナリー・ファイル.*と.*は違います$" +syn match hgDiffIsA "^\%(SL\|HG\): ファイル.*は.*、ファイル.*は.*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ ファイル末尾に改行がありません" +syn match hgDiffCommon "^\%(SL\|HG\): 共通の下位ディレクトリー: .*と.*" + +" ja DiffUtils 3.3 +syn match hgDiffOnly "^\%(SL\|HG\): .* のみに存在: .*" +syn match hgDiffIdentical "^\%(SL\|HG\): ファイル .* と .* は同一です$" +syn match hgDiffDiffer "^\%(SL\|HG\): ファイル .* と .* は異なります$" +syn match hgDiffBDiffer "^\%(SL\|HG\): バイナリーファイル .* と.* は異なります$" +syn match hgDiffIsA "^\%(SL\|HG\): ファイル .* は .* です。一方、ファイル .* は .* です$" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ ファイル末尾に改行がありません" +syn match hgDiffCommon "^\%(SL\|HG\): 共通のサブディレクトリー: .* と .*" + +" lv +syn match hgDiffOnly "^\%(SL\|HG\): Tikai iekš .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Fails .* un .* ir identiski$" +syn match hgDiffDiffer "^\%(SL\|HG\): Faili .* un .* atšķiras$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Faili .* un .* atšķiras$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binārie faili .* un .* atšķiras$" +syn match hgDiffIsA "^\%(SL\|HG\): Fails .* ir .* kamēr fails .* ir .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Nav jaunu rindu faila beigās" +syn match hgDiffCommon "^\%(SL\|HG\): Kopējās apakšdirektorijas: .* un .*" + +" ms +syn match hgDiffOnly "^\%(SL\|HG\): Hanya dalam .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Fail .* dan .* adalah serupa$" +syn match hgDiffDiffer "^\%(SL\|HG\): Fail .* dan .* berbeza$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Fail .* dan .* berbeza$" +syn match hgDiffIsA "^\%(SL\|HG\): Fail .* adalah .* manakala fail .* adalah .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Tiada baris baru pada penghujung fail" +syn match hgDiffCommon "^\%(SL\|HG\): Subdirektori umum: .* dan .*" + +" nl +syn match hgDiffOnly "^\%(SL\|HG\): Alleen in .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Bestanden .* en .* zijn identiek$" +syn match hgDiffDiffer "^\%(SL\|HG\): Bestanden .* en .* zijn verschillend$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Bestanden .* en .* zijn verschillend$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binaire bestanden .* en .* zijn verschillend$" +syn match hgDiffIsA "^\%(SL\|HG\): Bestand .* is een .* terwijl bestand .* een .* is$" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Geen regeleindeteken (LF) aan einde van bestand" +syn match hgDiffCommon "^\%(SL\|HG\): Gemeenschappelijke submappen: .* en .*" + +" pl +syn match hgDiffOnly "^\%(SL\|HG\): Tylko w .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Pliki .* i .* są identyczne$" +syn match hgDiffDiffer "^\%(SL\|HG\): Pliki .* i .* różnią się$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Pliki .* i .* różnią się$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Binarne pliki .* i .* różnią się$" +syn match hgDiffIsA "^\%(SL\|HG\): Plik .* jest .*, podczas gdy plik .* jest .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Brak znaku nowej linii na końcu pliku" +syn match hgDiffCommon "^\%(SL\|HG\): Wspólne podkatalogi: .* i .*" + +" pt_BR +syn match hgDiffOnly "^\%(SL\|HG\): Somente em .*" +syn match hgDiffOnly "^\%(SL\|HG\): Apenas em .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Os aquivos .* e .* são idênticos$" +syn match hgDiffDiffer "^\%(SL\|HG\): Os arquivos .* e .* são diferentes$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Os arquivos binários .* e .* são diferentes$" +syn match hgDiffIsA "^\%(SL\|HG\): O arquivo .* é .* enquanto o arquivo .* é .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Falta o caracter nova linha no final do arquivo" +syn match hgDiffCommon "^\%(SL\|HG\): Subdiretórios idênticos: .* e .*" + +" ro +syn match hgDiffOnly "^\%(SL\|HG\): Doar în .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Fişierele .* şi .* sunt identice$" +syn match hgDiffDiffer "^\%(SL\|HG\): Fişierele .* şi .* diferă$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Fişierele binare .* şi .* diferă$" +syn match hgDiffIsA "^\%(SL\|HG\): Fişierul .* este un .* pe când fişierul .* este un .*.$" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Nici un element de linie nouă la sfârşitul fişierului" +syn match hgDiffCommon "^\%(SL\|HG\): Subdirectoare comune: .* şi .*.$" + +" ru +syn match hgDiffOnly "^\%(SL\|HG\): Только в .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Файлы .* и .* идентичны$" +syn match hgDiffDiffer "^\%(SL\|HG\): Файлы .* и .* различаются$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Файлы .* и .* различаются$" +syn match hgDiffIsA "^\%(SL\|HG\): Файл .* это .*, тогда как файл .* -- .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ В конце файла нет новой строки" +syn match hgDiffCommon "^\%(SL\|HG\): Общие подкаталоги: .* и .*" + +" sr +syn match hgDiffOnly "^\%(SL\|HG\): Само у .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Датотеке „.*“ и „.*“ се подударају$" +syn match hgDiffDiffer "^\%(SL\|HG\): Датотеке .* и .* различите$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Бинарне датотеке .* и .* различите$" +syn match hgDiffIsA "^\%(SL\|HG\): Датотека „.*“ је „.*“ док је датотека „.*“ „.*“$" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Без новог реда на крају датотеке" +syn match hgDiffCommon "^\%(SL\|HG\): Заједнички поддиректоријуми: .* и .*" + +" sv +syn match hgDiffOnly "^\%(SL\|HG\): Endast i .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Filerna .* och .* är lika$" +syn match hgDiffDiffer "^\%(SL\|HG\): Filerna .* och .* skiljer$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Filerna .* och .* skiljer$" +syn match hgDiffIsA "^\%(SL\|HG\): Fil .* är en .* medan fil .* är en .*" +syn match hgDiffBDiffer "^\%(SL\|HG\): De binära filerna .* och .* skiljer$" +syn match hgDiffIsA "^\%(SL\|HG\): Filen .* är .* medan filen .* är .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Ingen nyrad vid filslut" +syn match hgDiffCommon "^\%(SL\|HG\): Lika underkataloger: .* och .*" + +" tr +syn match hgDiffOnly "^\%(SL\|HG\): Yalnızca .*'da: .*" +syn match hgDiffIdentical "^\%(SL\|HG\): .* ve .* dosyaları birbirinin aynı$" +syn match hgDiffDiffer "^\%(SL\|HG\): .* ve .* dosyaları birbirinden farklı$" +syn match hgDiffBDiffer "^\%(SL\|HG\): .* ve .* dosyaları birbirinden farklı$" +syn match hgDiffBDiffer "^\%(SL\|HG\): İkili .* ve .* birbirinden farklı$" +syn match hgDiffIsA "^\%(SL\|HG\): .* dosyası, bir .*, halbuki .* dosyası bir .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Dosya sonunda yenisatır yok." +syn match hgDiffCommon "^\%(SL\|HG\): Ortak alt dizinler: .* ve .*" + +" uk +syn match hgDiffOnly "^\%(SL\|HG\): Лише у .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Файли .* та .* ідентичні$" +syn match hgDiffDiffer "^\%(SL\|HG\): Файли .* та .* відрізняються$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Файли .* та .* відрізняються$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Двійкові файли .* та .* відрізняються$" +syn match hgDiffIsA "^\%(SL\|HG\): Файл .* це .*, тоді як файл .* -- .*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Наприкінці файлу немає нового рядка" +syn match hgDiffCommon "^\%(SL\|HG\): Спільні підкаталоги: .* та .*" + +" vi +syn match hgDiffOnly "^\%(SL\|HG\): Chỉ trong .*" +syn match hgDiffIdentical "^\%(SL\|HG\): Hai tập tin .* và .* là bằng nhau.$" +syn match hgDiffIdentical "^\%(SL\|HG\): Cả .* và .* là cùng một tập tin$" +syn match hgDiffDiffer "^\%(SL\|HG\): Hai tập tin .* và .* là khác nhau.$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Hai tập tin nhị phân .* và .* khác nhau$" +syn match hgDiffIsA "^\%(SL\|HG\): Tập tin .* là một .* trong khi tập tin .* là một .*.$" +syn match hgDiffBDiffer "^\%(SL\|HG\): Hai tập tin .* và .* là khác nhau.$" +syn match hgDiffIsA "^\%(SL\|HG\): Tập tin .* là một .* còn tập tin .* là một .*.$" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ Không có ký tự dòng mới tại kêt thức tập tin." +syn match hgDiffCommon "^\%(SL\|HG\): Thư mục con chung: .* và .*" + +" zh_CN +syn match hgDiffOnly "^\%(SL\|HG\): 只在 .* 存在:.*" +syn match hgDiffIdentical "^\%(SL\|HG\): 檔案 .* 和 .* 相同$" +syn match hgDiffDiffer "^\%(SL\|HG\): 文件 .* 和 .* 不同$" +syn match hgDiffBDiffer "^\%(SL\|HG\): 文件 .* 和 .* 不同$" +syn match hgDiffIsA "^\%(SL\|HG\): 文件 .* 是.*而文件 .* 是.*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ 文件尾没有 newline 字符" +syn match hgDiffCommon "^\%(SL\|HG\): .* 和 .* 有共同的子目录$" + +" zh_TW +syn match hgDiffOnly "^\%(SL\|HG\): 只在 .* 存在:.*" +syn match hgDiffIdentical "^\%(SL\|HG\): 檔案 .* 和 .* 相同$" +syn match hgDiffDiffer "^\%(SL\|HG\): 檔案 .* 與 .* 不同$" +syn match hgDiffBDiffer "^\%(SL\|HG\): 二元碼檔 .* 與 .* 不同$" +syn match hgDiffIsA "^\%(SL\|HG\): 檔案 .* 是.*而檔案 .* 是.*" +syn match hgDiffNoEOL "^\%(SL\|HG\): \\ 檔案末沒有 newline 字元" +syn match hgDiffCommon "^\%(SL\|HG\): .* 和 .* 有共同的副目錄$" + +endif + + +syn match hgDiffRemoved "^\%(SL\|HG\): -.*" +syn match hgDiffRemoved "^\%(SL\|HG\): <.*" +syn match hgDiffAdded "^\%(SL\|HG\): +.*" +syn match hgDiffAdded "^\%(SL\|HG\): >.*" +syn match hgDiffChanged "^\%(SL\|HG\): ! .*" + +syn match hgDiffSubname " @@..*"ms=s+3 contained +syn match hgDiffLine "^\%(SL\|HG\): @.*" contains=hgDiffSubname +syn match hgDiffLine "^\%(SL\|HG\): \<\d\+\>.*" +syn match hgDiffLine "^\%(SL\|HG\): \*\*\*\*.*" +syn match hgDiffLine "^\%(SL\|HG\): ---$" + +" Some versions of diff have lines like "#c#" and "#d#" (where # is a number) +syn match hgDiffLine "^\%(SL\|HG\): \d\+\(,\d\+\)\=[cda]\d\+\>.*" + +syn match hgDiffFile "^\%(SL\|HG\): diff\>.*" +syn match hgDiffFile "^\%(SL\|HG\): Index: .*" +syn match hgDiffFile "^\%(SL\|HG\): ==== .*" + +if search('^\%(SL\|HG\): @@ -\S\+ +\S\+ @@', 'nw', '', 100) + " unified + syn match hgDiffOldFile "^\%(SL\|HG\): --- .*" + syn match hgDiffNewFile "^\%(SL\|HG\): +++ .*" +else + " context / old style + syn match hgDiffOldFile "^\%(SL\|HG\): \*\*\* .*" + syn match hgDiffNewFile "^\%(SL\|HG\): --- .*" +endif + +" Used by git +syn match hgDiffIndexLine "^\%(SL\|HG\): index \x\x\x\x.*" + +syn match hgDiffComment "^\%(SL\|HG\): #.*" + +" Define the default highlighting. +" Only used when an item doesn't have highlighting yet +hi def link hgDiffOldFile hgDiffFile +hi def link hgDiffNewFile hgDiffFile +hi def link hgDiffIndexLine PreProc +hi def link hgDiffFile Type +hi def link hgDiffOnly Constant +hi def link hgDiffIdentical Constant +hi def link hgDiffDiffer Constant +hi def link hgDiffBDiffer Constant +hi def link hgDiffIsA Constant +hi def link hgDiffNoEOL Constant +hi def link hgDiffCommon Constant +hi def link hgDiffRemoved Special +hi def link hgDiffChanged PreProc +hi def link hgDiffAdded Identifier +hi def link hgDiffLine Statement +hi def link hgDiffSubname PreProc +hi def link hgDiffComment Comment + +let b:current_syntax = "hgcommitDiff" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/shared/typescriptcommon.vim b/runtime/syntax/shared/typescriptcommon.vim new file mode 100644 index 0000000..d065251 --- /dev/null +++ b/runtime/syntax/shared/typescriptcommon.vim @@ -0,0 +1,2099 @@ +" Vim syntax file +" Language: TypeScript and TypeScriptReact +" Maintainer: Herrington Darkholme +" Last Change: 2023 Aug 24 +" Based On: Herrington Darkholme's yats.vim +" Changes: See https://github.com/HerringtonDarkholme/yats.vim +" Credits: See yats.vim on github + +if &cpo =~ 'C' + let s:cpo_save = &cpo + set cpo&vim +endif + + +" NOTE: this results in accurate highlighting, but can be slow. +syntax sync fromstart + +"Dollar sign is permitted anywhere in an identifier +setlocal iskeyword-=$ +if main_syntax == 'typescript' || main_syntax == 'typescriptreact' + setlocal iskeyword+=$ + " syntax cluster htmlJavaScript contains=TOP +endif +" For private field added from TypeScript 3.8 +setlocal iskeyword+=# + +" lowest priority on least used feature +syntax match typescriptLabel /[a-zA-Z_$]\k*:/he=e-1 contains=typescriptReserved nextgroup=@typescriptStatement skipwhite skipempty + +" other keywords like return,case,yield uses containedin +syntax region typescriptBlock matchgroup=typescriptBraces start=/{/ end=/}/ contains=@typescriptStatement,@typescriptComments fold +syntax cluster afterIdentifier contains= + \ typescriptDotNotation, + \ typescriptFuncCallArg, + \ typescriptTemplate, + \ typescriptIndexExpr, + \ @typescriptSymbols, + \ typescriptTypeArguments + +syntax match typescriptIdentifierName /\<\K\k*/ + \ nextgroup=@afterIdentifier + \ transparent + \ contains=@_semantic + \ skipnl skipwhite + +syntax match typescriptProp contained /\K\k*!\?/ + \ transparent + \ contains=@props + \ nextgroup=@afterIdentifier + \ skipwhite skipempty + +syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/rs=s+1 end=/]/he=e-1 contains=@typescriptValue nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty + +syntax match typescriptDotNotation /\.\|?\.\|!\./ nextgroup=typescriptProp skipnl +syntax match typescriptDotStyleNotation /\.style\./ nextgroup=typescriptDOMStyle transparent +" syntax match typescriptFuncCall contained /[a-zA-Z]\k*\ze(/ nextgroup=typescriptFuncCallArg +syntax region typescriptParenExp matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptComments,@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols skipwhite skipempty +syntax region typescriptFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptValue,@typescriptComments nextgroup=@typescriptSymbols,typescriptDotNotation skipwhite skipempty skipnl +syntax region typescriptEventFuncCallArg contained matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptEventExpression +syntax region typescriptEventString contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ contains=typescriptASCII,@events + +syntax region typescriptDestructureString + \ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ + \ contains=typescriptASCII + \ nextgroup=typescriptDestructureAs + \ contained skipwhite skipempty + +syntax cluster typescriptVariableDeclarations + \ contains=typescriptVariableDeclaration,@typescriptDestructures + +syntax match typescriptVariableDeclaration /[A-Za-z_$]\k*/ + \ nextgroup=typescriptTypeAnnotation,typescriptAssign + \ contained skipwhite skipempty + +syntax cluster typescriptDestructureVariables contains= + \ typescriptRestOrSpread, + \ typescriptDestructureComma, + \ typescriptDestructureLabel, + \ typescriptDestructureVariable, + \ @typescriptDestructures + +syntax match typescriptDestructureVariable /[A-Za-z_$]\k*/ contained + \ nextgroup=typescriptDefaultParam + \ contained skipwhite skipempty + +syntax match typescriptDestructureLabel /[A-Za-z_$]\k*\ze\_s*:/ + \ nextgroup=typescriptDestructureAs + \ contained skipwhite skipempty + +syntax match typescriptDestructureAs /:/ + \ nextgroup=typescriptDestructureVariable,@typescriptDestructures + \ contained skipwhite skipempty + +syntax match typescriptDestructureComma /,/ contained + +syntax cluster typescriptDestructures contains= + \ typescriptArrayDestructure, + \ typescriptObjectDestructure + +syntax region typescriptArrayDestructure matchgroup=typescriptBraces + \ start=/\[/ end=/]/ + \ contains=@typescriptDestructureVariables,@typescriptComments + \ nextgroup=typescriptTypeAnnotation,typescriptAssign + \ transparent contained skipwhite skipempty fold + +syntax region typescriptObjectDestructure matchgroup=typescriptBraces + \ start=/{/ end=/}/ + \ contains=typescriptDestructureString,@typescriptDestructureVariables,@typescriptComments + \ nextgroup=typescriptTypeAnnotation,typescriptAssign + \ transparent contained skipwhite skipempty fold + +"Syntax in the JavaScript code + +" String +syntax match typescriptASCII contained /\\\d\d\d/ + +syntax region typescriptTemplateSubstitution matchgroup=typescriptTemplateSB + \ start=/\${/ end=/}/ + \ contains=@typescriptValue + \ contained + + +syntax region typescriptString + \ start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+ + \ contains=typescriptSpecial,@Spell + \ extend + +syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)" + +" From vim runtime +" +syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuy]\{0,5\}\s*$+ end=+/[gimuy]\{0,5\}\s*[;.,)\]}:]+me=e-1 nextgroup=typescriptDotNotation oneline + +syntax region typescriptTemplate + \ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/ + \ contains=typescriptTemplateSubstitution,typescriptSpecial,@Spell + \ nextgroup=@typescriptSymbols + \ skipwhite skipempty + +"Array +syntax region typescriptArray matchgroup=typescriptBraces + \ start=/\[/ end=/]/ + \ contains=@typescriptValue,@typescriptComments + \ nextgroup=@typescriptSymbols,typescriptDotNotation + \ skipwhite skipempty fold + +" Number +syntax match typescriptNumber /\<0[bB][01][01_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty +syntax match typescriptNumber /\<0[oO][0-7][0-7_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty +syntax match typescriptNumber /\<0[xX][0-9a-fA-F][0-9a-fA-F_]*\>/ nextgroup=@typescriptSymbols skipwhite skipempty +syntax match typescriptNumber /\<\%(\d[0-9_]*\%(\.\d[0-9_]*\)\=\|\.\d[0-9_]*\)\%([eE][+-]\=\d[0-9_]*\)\=\>/ + \ nextgroup=@typescriptSymbols skipwhite skipempty + +syntax region typescriptObjectLiteral matchgroup=typescriptBraces + \ start=/{/ end=/}/ + \ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword + \ fold contained + +syntax keyword typescriptObjectAsyncKeyword async contained + +syntax match typescriptObjectLabel contained /\k\+\_s*/ + \ nextgroup=typescriptObjectColon,@typescriptCallImpl + \ skipwhite skipempty + +syntax region typescriptStringProperty contained + \ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1/ + \ nextgroup=typescriptObjectColon,@typescriptCallImpl + \ skipwhite skipempty + +" syntax region typescriptPropertyName contained start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1(/me=e-1 nextgroup=@typescriptCallSignature skipwhite skipempty oneline +syntax region typescriptComputedPropertyName contained matchgroup=typescriptBraces + \ start=/\[/rs=s+1 end=/]/ + \ contains=@typescriptValue + \ nextgroup=typescriptObjectColon,@typescriptCallImpl + \ skipwhite skipempty + +" syntax region typescriptComputedPropertyName contained matchgroup=typescriptPropertyName start=/\[/rs=s+1 end=/]\_s*:/he=e-1 contains=@typescriptValue nextgroup=@typescriptValue skipwhite skipempty +" syntax region typescriptComputedPropertyName contained matchgroup=typescriptPropertyName start=/\[/rs=s+1 end=/]\_s*(/me=e-1 contains=@typescriptValue nextgroup=@typescriptCallSignature skipwhite skipempty +" Value for object, statement for label statement +syntax match typescriptRestOrSpread /\.\.\./ contained +syntax match typescriptObjectSpread /\.\.\./ contained containedin=typescriptObjectLiteral,typescriptArray nextgroup=@typescriptValue + +syntax match typescriptObjectColon contained /:/ nextgroup=@typescriptValue skipwhite skipempty + +" + - ^ ~ +syntax match typescriptUnaryOp /[+\-~!]/ + \ nextgroup=@typescriptValue + \ skipwhite + +syntax region typescriptTernary matchgroup=typescriptTernaryOp start=/?[.?]\@!/ end=/:/ contained contains=@typescriptValue,@typescriptComments nextgroup=@typescriptValue skipwhite skipempty + +syntax match typescriptAssign /=/ nextgroup=@typescriptValue + \ skipwhite skipempty + +" 2: ==, === +syntax match typescriptBinaryOp contained /===\?/ nextgroup=@typescriptValue skipwhite skipempty +" 6: >>>=, >>>, >>=, >>, >=, > +syntax match typescriptBinaryOp contained />\(>>=\|>>\|>=\|>\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty +" 4: <<=, <<, <=, < +syntax match typescriptBinaryOp contained /<\(<=\|<\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty +" 3: ||, |=, |, ||= +syntax match typescriptBinaryOp contained /||\?=\?/ nextgroup=@typescriptValue skipwhite skipempty +" 4: &&, &=, &, &&= +syntax match typescriptBinaryOp contained /&&\?=\?/ nextgroup=@typescriptValue skipwhite skipempty +" 2: ??, ??= +syntax match typescriptBinaryOp contained /??=\?/ nextgroup=@typescriptValue skipwhite skipempty +" 2: *=, * +syntax match typescriptBinaryOp contained /\*=\?/ nextgroup=@typescriptValue skipwhite skipempty +" 2: %=, % +syntax match typescriptBinaryOp contained /%=\?/ nextgroup=@typescriptValue skipwhite skipempty +" 2: /=, / +syntax match typescriptBinaryOp contained +/\(=\|[^\*/]\@=\)+ nextgroup=@typescriptValue skipwhite skipempty +syntax match typescriptBinaryOp contained /!==\?/ nextgroup=@typescriptValue skipwhite skipempty +" 2: !=, !== +syntax match typescriptBinaryOp contained /+\(+\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty +" 3: +, ++, += +syntax match typescriptBinaryOp contained /-\(-\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty +" 3: -, --, -= + +" exponentiation operator +" 2: **, **= +syntax match typescriptBinaryOp contained /\*\*=\?/ nextgroup=@typescriptValue + +syntax cluster typescriptSymbols contains=typescriptBinaryOp,typescriptKeywordOp,typescriptTernary,typescriptAssign,typescriptCastKeyword + +" runtime syntax/basic/reserved.vim +"Import +syntax keyword typescriptImport from as +syntax keyword typescriptImport import + \ nextgroup=typescriptImportType + \ skipwhite +syntax keyword typescriptImportType type + \ contained +syntax keyword typescriptExport export + \ nextgroup=typescriptExportType + \ skipwhite +syntax match typescriptExportType /\" +syntax match shellbang "^#!.*iojs\>" + + +"JavaScript comments +syntax keyword typescriptCommentTodo TODO FIXME XXX TBD +syntax match typescriptMagicComment "@ts-\%(ignore\|expect-error\)\>" +syntax match typescriptLineComment "//.*" + \ contains=@Spell,typescriptCommentTodo,typescriptRef,typescriptMagicComment +syntax region typescriptComment + \ start="/\*" end="\*/" + \ contains=@Spell,typescriptCommentTodo extend +syntax cluster typescriptComments + \ contains=typescriptDocComment,typescriptComment,typescriptLineComment + +syntax match typescriptRef +///\s*$+ + \ contains=typescriptString +syntax match typescriptRef +///\s*$+ + \ contains=typescriptString +syntax match typescriptRef +///\s*$+ + \ contains=typescriptString + +"JSDoc +syntax case ignore + +syntax region typescriptDocComment matchgroup=typescriptComment + \ start="/\*\*" end="\*/" + \ contains=typescriptDocNotation,typescriptCommentTodo,@Spell + \ fold keepend +syntax match typescriptDocNotation contained /@/ nextgroup=typescriptDocTags + +syntax keyword typescriptDocTags contained constant constructor constructs function ignore inner private public readonly static +syntax keyword typescriptDocTags contained const dict expose inheritDoc interface nosideeffects override protected struct internal +syntax keyword typescriptDocTags contained example global +syntax keyword typescriptDocTags contained alpha beta defaultValue eventProperty experimental label +syntax keyword typescriptDocTags contained packageDocumentation privateRemarks remarks sealed typeParam + +" syntax keyword typescriptDocTags contained ngdoc nextgroup=typescriptDocNGDirective +syntax keyword typescriptDocTags contained ngdoc scope priority animations +syntax keyword typescriptDocTags contained ngdoc restrict methodOf propertyOf eventOf eventType nextgroup=typescriptDocParam skipwhite +syntax keyword typescriptDocNGDirective contained overview service object function method property event directive filter inputType error + +syntax keyword typescriptDocTags contained abstract virtual access augments + +syntax keyword typescriptDocTags contained arguments callback lends memberOf name type kind link mixes mixin tutorial nextgroup=typescriptDocParam skipwhite +syntax keyword typescriptDocTags contained variation nextgroup=typescriptDocNumParam skipwhite + +syntax keyword typescriptDocTags contained author class classdesc copyright default defaultvalue nextgroup=typescriptDocDesc skipwhite +syntax keyword typescriptDocTags contained deprecated description external host nextgroup=typescriptDocDesc skipwhite +syntax keyword typescriptDocTags contained file fileOverview overview namespace requires since version nextgroup=typescriptDocDesc skipwhite +syntax keyword typescriptDocTags contained summary todo license preserve nextgroup=typescriptDocDesc skipwhite + +syntax keyword typescriptDocTags contained borrows exports nextgroup=typescriptDocA skipwhite +syntax keyword typescriptDocTags contained param arg argument property prop module nextgroup=typescriptDocNamedParamType,typescriptDocParamName skipwhite +syntax keyword typescriptDocTags contained define enum extends implements this typedef nextgroup=typescriptDocParamType skipwhite +syntax keyword typescriptDocTags contained return returns throws exception nextgroup=typescriptDocParamType,typescriptDocParamName skipwhite +syntax keyword typescriptDocTags contained see nextgroup=typescriptDocRef skipwhite + +syntax keyword typescriptDocTags contained function func method nextgroup=typescriptDocName skipwhite +syntax match typescriptDocName contained /\h\w*/ + +syntax keyword typescriptDocTags contained fires event nextgroup=typescriptDocEventRef skipwhite +syntax match typescriptDocEventRef contained /\h\w*#\(\h\w*\:\)\?\h\w*/ + +syntax match typescriptDocNamedParamType contained /{.\+}/ nextgroup=typescriptDocParamName skipwhite +syntax match typescriptDocParamName contained /\[\?0-9a-zA-Z_\.]\+\]\?/ nextgroup=typescriptDocDesc skipwhite +syntax match typescriptDocParamType contained /{.\+}/ nextgroup=typescriptDocDesc skipwhite +syntax match typescriptDocA contained /\%(#\|\w\|\.\|:\|\/\)\+/ nextgroup=typescriptDocAs skipwhite +syntax match typescriptDocAs contained /\s*as\s*/ nextgroup=typescriptDocB skipwhite +syntax match typescriptDocB contained /\%(#\|\w\|\.\|:\|\/\)\+/ +syntax match typescriptDocParam contained /\%(#\|\w\|\.\|:\|\/\|-\)\+/ +syntax match typescriptDocNumParam contained /\d\+/ +syntax match typescriptDocRef contained /\%(#\|\w\|\.\|:\|\/\)\+/ +syntax region typescriptDocLinkTag contained matchgroup=typescriptDocLinkTag start=/{/ end=/}/ contains=typescriptDocTags + +syntax cluster typescriptDocs contains=typescriptDocParamType,typescriptDocNamedParamType,typescriptDocParam + +if exists("main_syntax") && main_syntax == "typescript" + syntax sync clear + syntax sync ccomment typescriptComment minlines=200 +endif + +syntax case match + +" Types +syntax match typescriptOptionalMark /?/ contained + +syntax cluster typescriptTypeParameterCluster contains= + \ typescriptTypeParameter, + \ typescriptGenericDefault + +syntax region typescriptTypeParameters matchgroup=typescriptTypeBrackets + \ start=// + \ contains=@typescriptTypeParameterCluster + \ contained + +syntax match typescriptTypeParameter /\K\k*/ + \ nextgroup=typescriptConstraint + \ contained skipwhite skipnl + +syntax keyword typescriptConstraint extends + \ nextgroup=@typescriptType + \ contained skipwhite skipnl + +syntax match typescriptGenericDefault /=/ + \ nextgroup=@typescriptType + \ contained skipwhite + +">< +" class A extend B {} // ClassBlock +" func() // FuncCallArg +syntax region typescriptTypeArguments matchgroup=typescriptTypeBrackets + \ start=/\>/ + \ contains=@typescriptType + \ nextgroup=typescriptFuncCallArg,@typescriptTypeOperator + \ contained skipwhite + + +syntax cluster typescriptType contains= + \ @typescriptPrimaryType, + \ typescriptUnion, + \ @typescriptFunctionType, + \ typescriptConstructorType + +" array type: A[] +" type indexing A['key'] +syntax region typescriptTypeBracket contained + \ start=/\[/ end=/\]/ + \ contains=typescriptString,typescriptNumber + \ nextgroup=@typescriptTypeOperator + \ skipwhite skipempty + +syntax cluster typescriptPrimaryType contains= + \ typescriptParenthesizedType, + \ typescriptPredefinedType, + \ typescriptTypeReference, + \ typescriptObjectType, + \ typescriptTupleType, + \ typescriptTypeQuery, + \ typescriptStringLiteralType, + \ typescriptTemplateLiteralType, + \ typescriptReadonlyArrayKeyword, + \ typescriptAssertType + +syntax region typescriptStringLiteralType contained + \ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/ + \ nextgroup=typescriptUnion + \ skipwhite skipempty + +syntax region typescriptTemplateLiteralType contained + \ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/ + \ contains=typescriptTemplateSubstitutionType + \ nextgroup=typescriptTypeOperator + \ skipwhite skipempty + +syntax region typescriptTemplateSubstitutionType matchgroup=typescriptTemplateSB + \ start=/\${/ end=/}/ + \ contains=@typescriptType + \ contained + +syntax region typescriptParenthesizedType matchgroup=typescriptParens + \ start=/(/ end=/)/ + \ contains=@typescriptType + \ nextgroup=@typescriptTypeOperator + \ contained skipwhite skipempty fold + +syntax match typescriptTypeReference /\K\k*\(\.\K\k*\)*/ + \ nextgroup=typescriptTypeArguments,@typescriptTypeOperator,typescriptUserDefinedType + \ skipwhite contained skipempty + +syntax keyword typescriptPredefinedType any number boolean string void never undefined null object unknown + \ nextgroup=@typescriptTypeOperator + \ contained skipwhite skipempty + +syntax match typescriptPredefinedType /unique symbol/ + \ nextgroup=@typescriptTypeOperator + \ contained skipwhite skipempty + +syntax region typescriptObjectType matchgroup=typescriptBraces + \ start=/{/ end=/}/ + \ contains=@typescriptTypeMember,typescriptEndColons,@typescriptComments,typescriptAccessibilityModifier,typescriptReadonlyModifier + \ nextgroup=@typescriptTypeOperator + \ contained skipwhite skipnl fold + +syntax cluster typescriptTypeMember contains= + \ @typescriptCallSignature, + \ typescriptConstructSignature, + \ typescriptIndexSignature, + \ @typescriptMembers + +syntax match typescriptTupleLable /\K\k*?\?:/ + \ contained + +syntax region typescriptTupleType matchgroup=typescriptBraces + \ start=/\[/ end=/\]/ + \ contains=@typescriptType,@typescriptComments,typescriptRestOrSpread,typescriptTupleLable + \ contained skipwhite + +syntax cluster typescriptTypeOperator + \ contains=typescriptUnion,typescriptTypeBracket,typescriptConstraint,typescriptConditionalType + +syntax match typescriptUnion /|\|&/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty + +syntax match typescriptConditionalType /?\|:/ contained nextgroup=@typescriptPrimaryType skipwhite skipempty + +syntax cluster typescriptFunctionType contains=typescriptGenericFunc,typescriptFuncType +syntax region typescriptGenericFunc matchgroup=typescriptTypeBrackets + \ start=// + \ contains=typescriptTypeParameter + \ nextgroup=typescriptFuncType + \ containedin=typescriptFunctionType + \ contained skipwhite skipnl + +syntax region typescriptFuncType matchgroup=typescriptParens + \ start=/(/ end=/)\s*=>/me=e-2 + \ contains=@typescriptParameterList + \ nextgroup=typescriptFuncTypeArrow + \ contained skipwhite skipnl oneline + +syntax match typescriptFuncTypeArrow /=>/ + \ nextgroup=@typescriptType + \ containedin=typescriptFuncType + \ contained skipwhite skipnl + + +syntax keyword typescriptConstructorType new + \ nextgroup=@typescriptFunctionType + \ contained skipwhite skipnl + +syntax keyword typescriptUserDefinedType is + \ contained nextgroup=@typescriptType skipwhite skipempty + +syntax keyword typescriptTypeQuery typeof keyof + \ nextgroup=typescriptTypeReference + \ contained skipwhite skipnl + +syntax keyword typescriptAssertType asserts + \ nextgroup=typescriptTypeReference + \ contained skipwhite skipnl + +syntax cluster typescriptCallSignature contains=typescriptGenericCall,typescriptCall +syntax region typescriptGenericCall matchgroup=typescriptTypeBrackets + \ start=// + \ contains=typescriptTypeParameter + \ nextgroup=typescriptCall + \ contained skipwhite skipnl +syntax region typescriptCall matchgroup=typescriptParens + \ start=/(/ end=/)/ + \ contains=typescriptDecorator,@typescriptParameterList,@typescriptComments + \ nextgroup=typescriptTypeAnnotation,typescriptBlock + \ contained skipwhite skipnl + +syntax match typescriptTypeAnnotation /:/ + \ nextgroup=@typescriptType + \ contained skipwhite skipnl + +syntax cluster typescriptParameterList contains= + \ typescriptTypeAnnotation, + \ typescriptAccessibilityModifier, + \ typescriptReadonlyModifier, + \ typescriptOptionalMark, + \ typescriptRestOrSpread, + \ typescriptFuncComma, + \ typescriptDefaultParam + +syntax match typescriptFuncComma /,/ contained + +syntax match typescriptDefaultParam /=/ + \ nextgroup=@typescriptValue + \ contained skipwhite + +syntax keyword typescriptConstructSignature new + \ nextgroup=@typescriptCallSignature + \ contained skipwhite + +syntax region typescriptIndexSignature matchgroup=typescriptBraces + \ start=/\[/ end=/\]/ + \ contains=typescriptPredefinedType,typescriptMappedIn,typescriptString + \ nextgroup=typescriptTypeAnnotation + \ contained skipwhite oneline + +syntax keyword typescriptMappedIn in + \ nextgroup=@typescriptType + \ contained skipwhite skipnl skipempty + +syntax keyword typescriptAliasKeyword type + \ nextgroup=typescriptAliasDeclaration + \ skipwhite skipnl skipempty + +syntax region typescriptAliasDeclaration matchgroup=typescriptUnion + \ start=/ / end=/=/ + \ nextgroup=@typescriptType + \ contains=typescriptConstraint,typescriptTypeParameters + \ contained skipwhite skipempty + +syntax keyword typescriptReadonlyArrayKeyword readonly + \ nextgroup=@typescriptPrimaryType + \ skipwhite + + +" extension +if get(g:, 'yats_host_keyword', 1) + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function Boolean + " use of nextgroup Suggested by Doug Kearns + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Error EvalError nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobal containedin=typescriptIdentifierName InternalError + syntax keyword typescriptGlobal containedin=typescriptIdentifierName RangeError ReferenceError + syntax keyword typescriptGlobal containedin=typescriptIdentifierName StopIteration + syntax keyword typescriptGlobal containedin=typescriptIdentifierName SyntaxError TypeError + syntax keyword typescriptGlobal containedin=typescriptIdentifierName URIError Date + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float32Array + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Float64Array + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int16Array Int32Array + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Int8Array Uint16Array + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint32Array Uint8Array + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Uint8ClampedArray + syntax keyword typescriptGlobal containedin=typescriptIdentifierName ParallelArray + syntax keyword typescriptGlobal containedin=typescriptIdentifierName ArrayBuffer DataView + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Iterator Generator + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect Proxy + syntax keyword typescriptGlobal containedin=typescriptIdentifierName arguments + hi def link typescriptGlobal Structure + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName eval uneval nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName isFinite nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName isNaN parseFloat nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName parseInt nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName decodeURI nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName decodeURIComponent nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName encodeURI nextgroup=typescriptFuncCallArg + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName encodeURIComponent nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptGlobalMethod + hi def link typescriptGlobalMethod Structure + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Number nextgroup=typescriptGlobalNumberDot,typescriptFuncCallArg + syntax match typescriptGlobalNumberDot /\./ contained nextgroup=typescriptNumberStaticProp,typescriptNumberStaticMethod,typescriptProp + syntax keyword typescriptNumberStaticProp contained EPSILON MAX_SAFE_INTEGER MAX_VALUE + syntax keyword typescriptNumberStaticProp contained MIN_SAFE_INTEGER MIN_VALUE NEGATIVE_INFINITY + syntax keyword typescriptNumberStaticProp contained NaN POSITIVE_INFINITY + hi def link typescriptNumberStaticProp Keyword + syntax keyword typescriptNumberStaticMethod contained isFinite isInteger isNaN isSafeInteger nextgroup=typescriptFuncCallArg + syntax keyword typescriptNumberStaticMethod contained parseFloat parseInt nextgroup=typescriptFuncCallArg + hi def link typescriptNumberStaticMethod Keyword + syntax keyword typescriptNumberMethod contained toExponential toFixed toLocaleString nextgroup=typescriptFuncCallArg + syntax keyword typescriptNumberMethod contained toPrecision toSource toString valueOf nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptNumberMethod + hi def link typescriptNumberMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName String nextgroup=typescriptGlobalStringDot,typescriptFuncCallArg + syntax match typescriptGlobalStringDot /\./ contained nextgroup=typescriptStringStaticMethod,typescriptProp + syntax keyword typescriptStringStaticMethod contained fromCharCode fromCodePoint raw nextgroup=typescriptFuncCallArg + hi def link typescriptStringStaticMethod Keyword + syntax keyword typescriptStringMethod contained anchor charAt charCodeAt codePointAt nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained concat endsWith includes indexOf lastIndexOf nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained link localeCompare match normalize nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained padStart padEnd repeat replace search nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained slice split startsWith substr substring nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained toLocaleLowerCase toLocaleUpperCase nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained toLowerCase toString toUpperCase trim nextgroup=typescriptFuncCallArg + syntax keyword typescriptStringMethod contained valueOf nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptStringMethod + hi def link typescriptStringMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Array nextgroup=typescriptGlobalArrayDot,typescriptFuncCallArg + syntax match typescriptGlobalArrayDot /\./ contained nextgroup=typescriptArrayStaticMethod,typescriptProp + syntax keyword typescriptArrayStaticMethod contained from isArray of nextgroup=typescriptFuncCallArg + hi def link typescriptArrayStaticMethod Keyword + syntax keyword typescriptArrayMethod contained concat copyWithin entries every fill nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained filter find findIndex forEach indexOf nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained includes join keys lastIndexOf map nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained pop push reduce reduceRight reverse nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained shift slice some sort splice toLocaleString nextgroup=typescriptFuncCallArg + syntax keyword typescriptArrayMethod contained toSource toString unshift nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptArrayMethod + hi def link typescriptArrayMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Object nextgroup=typescriptGlobalObjectDot,typescriptFuncCallArg + syntax match typescriptGlobalObjectDot /\./ contained nextgroup=typescriptObjectStaticMethod,typescriptProp + syntax keyword typescriptObjectStaticMethod contained create defineProperties defineProperty nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectStaticMethod contained entries freeze getOwnPropertyDescriptors nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectStaticMethod contained getOwnPropertyDescriptor getOwnPropertyNames nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectStaticMethod contained getOwnPropertySymbols getPrototypeOf nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectStaticMethod contained is isExtensible isFrozen isSealed nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectStaticMethod contained keys preventExtensions values nextgroup=typescriptFuncCallArg + hi def link typescriptObjectStaticMethod Keyword + syntax keyword typescriptObjectMethod contained getOwnPropertyDescriptors hasOwnProperty nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectMethod contained isPrototypeOf propertyIsEnumerable nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectMethod contained toLocaleString toString valueOf seal nextgroup=typescriptFuncCallArg + syntax keyword typescriptObjectMethod contained setPrototypeOf nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptObjectMethod + hi def link typescriptObjectMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Symbol nextgroup=typescriptGlobalSymbolDot,typescriptFuncCallArg + syntax match typescriptGlobalSymbolDot /\./ contained nextgroup=typescriptSymbolStaticProp,typescriptSymbolStaticMethod,typescriptProp + syntax keyword typescriptSymbolStaticProp contained length iterator match replace + syntax keyword typescriptSymbolStaticProp contained search split hasInstance isConcatSpreadable + syntax keyword typescriptSymbolStaticProp contained unscopables species toPrimitive + syntax keyword typescriptSymbolStaticProp contained toStringTag + hi def link typescriptSymbolStaticProp Keyword + syntax keyword typescriptSymbolStaticMethod contained for keyFor nextgroup=typescriptFuncCallArg + hi def link typescriptSymbolStaticMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Function + syntax keyword typescriptFunctionMethod contained apply bind call nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptFunctionMethod + hi def link typescriptFunctionMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Math nextgroup=typescriptGlobalMathDot,typescriptFuncCallArg + syntax match typescriptGlobalMathDot /\./ contained nextgroup=typescriptMathStaticProp,typescriptMathStaticMethod,typescriptProp + syntax keyword typescriptMathStaticProp contained E LN10 LN2 LOG10E LOG2E PI SQRT1_2 + syntax keyword typescriptMathStaticProp contained SQRT2 + hi def link typescriptMathStaticProp Keyword + syntax keyword typescriptMathStaticMethod contained abs acos acosh asin asinh atan nextgroup=typescriptFuncCallArg + syntax keyword typescriptMathStaticMethod contained atan2 atanh cbrt ceil clz32 cos nextgroup=typescriptFuncCallArg + syntax keyword typescriptMathStaticMethod contained cosh exp expm1 floor fround hypot nextgroup=typescriptFuncCallArg + syntax keyword typescriptMathStaticMethod contained imul log log10 log1p log2 max nextgroup=typescriptFuncCallArg + syntax keyword typescriptMathStaticMethod contained min pow random round sign sin nextgroup=typescriptFuncCallArg + syntax keyword typescriptMathStaticMethod contained sinh sqrt tan tanh trunc nextgroup=typescriptFuncCallArg + hi def link typescriptMathStaticMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Date nextgroup=typescriptGlobalDateDot,typescriptFuncCallArg + syntax match typescriptGlobalDateDot /\./ contained nextgroup=typescriptDateStaticMethod,typescriptProp + syntax keyword typescriptDateStaticMethod contained UTC now parse nextgroup=typescriptFuncCallArg + hi def link typescriptDateStaticMethod Keyword + syntax keyword typescriptDateMethod contained getDate getDay getFullYear getHours nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained getMilliseconds getMinutes getMonth nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained getSeconds getTime getTimezoneOffset nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained getUTCDate getUTCDay getUTCFullYear nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained getUTCHours getUTCMilliseconds getUTCMinutes nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained getUTCMonth getUTCSeconds setDate setFullYear nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained setHours setMilliseconds setMinutes nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained setMonth setSeconds setTime setUTCDate nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained setUTCFullYear setUTCHours setUTCMilliseconds nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained setUTCMinutes setUTCMonth setUTCSeconds nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained toDateString toISOString toJSON toLocaleDateString nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained toLocaleFormat toLocaleString toLocaleTimeString nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained toSource toString toTimeString toUTCString nextgroup=typescriptFuncCallArg + syntax keyword typescriptDateMethod contained valueOf nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptDateMethod + hi def link typescriptDateMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName JSON nextgroup=typescriptGlobalJSONDot,typescriptFuncCallArg + syntax match typescriptGlobalJSONDot /\./ contained nextgroup=typescriptJSONStaticMethod,typescriptProp + syntax keyword typescriptJSONStaticMethod contained parse stringify nextgroup=typescriptFuncCallArg + hi def link typescriptJSONStaticMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName RegExp nextgroup=typescriptGlobalRegExpDot,typescriptFuncCallArg + syntax match typescriptGlobalRegExpDot /\./ contained nextgroup=typescriptRegExpStaticProp,typescriptProp + syntax keyword typescriptRegExpStaticProp contained lastIndex + hi def link typescriptRegExpStaticProp Keyword + syntax keyword typescriptRegExpProp contained global ignoreCase multiline source sticky + syntax cluster props add=typescriptRegExpProp + hi def link typescriptRegExpProp Keyword + syntax keyword typescriptRegExpMethod contained exec test nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptRegExpMethod + hi def link typescriptRegExpMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Map WeakMap + syntax keyword typescriptES6MapProp contained size + syntax cluster props add=typescriptES6MapProp + hi def link typescriptES6MapProp Keyword + syntax keyword typescriptES6MapMethod contained clear delete entries forEach get has nextgroup=typescriptFuncCallArg + syntax keyword typescriptES6MapMethod contained keys set values nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptES6MapMethod + hi def link typescriptES6MapMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Set WeakSet + syntax keyword typescriptES6SetProp contained size + syntax cluster props add=typescriptES6SetProp + hi def link typescriptES6SetProp Keyword + syntax keyword typescriptES6SetMethod contained add clear delete entries forEach has nextgroup=typescriptFuncCallArg + syntax keyword typescriptES6SetMethod contained values nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptES6SetMethod + hi def link typescriptES6SetMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Proxy + syntax keyword typescriptProxyAPI contained getOwnPropertyDescriptor getOwnPropertyNames + syntax keyword typescriptProxyAPI contained defineProperty deleteProperty freeze seal + syntax keyword typescriptProxyAPI contained preventExtensions has hasOwn get set enumerate + syntax keyword typescriptProxyAPI contained iterate ownKeys apply construct + hi def link typescriptProxyAPI Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Promise nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg + syntax match typescriptGlobalPromiseDot /\./ contained nextgroup=typescriptPromiseStaticMethod,typescriptProp + syntax keyword typescriptPromiseStaticMethod contained resolve reject all race nextgroup=typescriptFuncCallArg + hi def link typescriptPromiseStaticMethod Keyword + syntax keyword typescriptPromiseMethod contained then catch finally nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptPromiseMethod + hi def link typescriptPromiseMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Reflect + syntax keyword typescriptReflectMethod contained apply construct defineProperty deleteProperty nextgroup=typescriptFuncCallArg + syntax keyword typescriptReflectMethod contained enumerate get getOwnPropertyDescriptor nextgroup=typescriptFuncCallArg + syntax keyword typescriptReflectMethod contained getPrototypeOf has isExtensible ownKeys nextgroup=typescriptFuncCallArg + syntax keyword typescriptReflectMethod contained preventExtensions set setPrototypeOf nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptReflectMethod + hi def link typescriptReflectMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Intl + syntax keyword typescriptIntlMethod contained Collator DateTimeFormat NumberFormat nextgroup=typescriptFuncCallArg + syntax keyword typescriptIntlMethod contained PluralRules nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptIntlMethod + hi def link typescriptIntlMethod Keyword + + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName global process + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName console Buffer + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName module exports + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName setTimeout + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName clearTimeout + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName setInterval + syntax keyword typescriptNodeGlobal containedin=typescriptIdentifierName clearInterval + hi def link typescriptNodeGlobal Structure + + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName describe + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName it test before + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName after beforeEach + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName afterEach + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName beforeAll + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName afterAll + syntax keyword typescriptTestGlobal containedin=typescriptIdentifierName expect assert + + syntax keyword typescriptBOM containedin=typescriptIdentifierName AbortController + syntax keyword typescriptBOM containedin=typescriptIdentifierName AbstractWorker AnalyserNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName App Apps ArrayBuffer + syntax keyword typescriptBOM containedin=typescriptIdentifierName ArrayBufferView + syntax keyword typescriptBOM containedin=typescriptIdentifierName Attr AudioBuffer + syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioBufferSourceNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioContext AudioDestinationNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioListener AudioNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName AudioParam BatteryManager + syntax keyword typescriptBOM containedin=typescriptIdentifierName BiquadFilterNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName BlobEvent BluetoothAdapter + syntax keyword typescriptBOM containedin=typescriptIdentifierName BluetoothDevice + syntax keyword typescriptBOM containedin=typescriptIdentifierName BluetoothManager + syntax keyword typescriptBOM containedin=typescriptIdentifierName CameraCapabilities + syntax keyword typescriptBOM containedin=typescriptIdentifierName CameraControl CameraManager + syntax keyword typescriptBOM containedin=typescriptIdentifierName CanvasGradient CanvasImageSource + syntax keyword typescriptBOM containedin=typescriptIdentifierName CanvasPattern CanvasRenderingContext2D + syntax keyword typescriptBOM containedin=typescriptIdentifierName CaretPosition CDATASection + syntax keyword typescriptBOM containedin=typescriptIdentifierName ChannelMergerNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName ChannelSplitterNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName CharacterData ChildNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName ChromeWorker Comment + syntax keyword typescriptBOM containedin=typescriptIdentifierName Connection Console + syntax keyword typescriptBOM containedin=typescriptIdentifierName ContactManager Contacts + syntax keyword typescriptBOM containedin=typescriptIdentifierName ConvolverNode Coordinates + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSS CSSConditionRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSGroupingRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSKeyframeRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSKeyframesRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSMediaRule CSSNamespaceRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSPageRule CSSRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSRuleList CSSStyleDeclaration + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSStyleRule CSSStyleSheet + syntax keyword typescriptBOM containedin=typescriptIdentifierName CSSSupportsRule + syntax keyword typescriptBOM containedin=typescriptIdentifierName DataTransfer DataView + syntax keyword typescriptBOM containedin=typescriptIdentifierName DedicatedWorkerGlobalScope + syntax keyword typescriptBOM containedin=typescriptIdentifierName DelayNode DeviceAcceleration + syntax keyword typescriptBOM containedin=typescriptIdentifierName DeviceRotationRate + syntax keyword typescriptBOM containedin=typescriptIdentifierName DeviceStorage DirectoryEntry + syntax keyword typescriptBOM containedin=typescriptIdentifierName DirectoryEntrySync + syntax keyword typescriptBOM containedin=typescriptIdentifierName DirectoryReader + syntax keyword typescriptBOM containedin=typescriptIdentifierName DirectoryReaderSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName Document DocumentFragment + syntax keyword typescriptBOM containedin=typescriptIdentifierName DocumentTouch DocumentType + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMCursor DOMError + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMException DOMHighResTimeStamp + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMImplementation + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMImplementationRegistry + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMParser DOMRequest + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMString DOMStringList + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMStringMap DOMTimeStamp + syntax keyword typescriptBOM containedin=typescriptIdentifierName DOMTokenList DynamicsCompressorNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName Element Entry EntrySync + syntax keyword typescriptBOM containedin=typescriptIdentifierName Extensions FileException + syntax keyword typescriptBOM containedin=typescriptIdentifierName Float32Array Float64Array + syntax keyword typescriptBOM containedin=typescriptIdentifierName FMRadio FormData + syntax keyword typescriptBOM containedin=typescriptIdentifierName GainNode Gamepad + syntax keyword typescriptBOM containedin=typescriptIdentifierName GamepadButton Geolocation + syntax keyword typescriptBOM containedin=typescriptIdentifierName History HTMLAnchorElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLAreaElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLAudioElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLBaseElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLBodyElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLBRElement HTMLButtonElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLCanvasElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLCollection HTMLDataElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLDataListElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLDivElement HTMLDListElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLDocument HTMLElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLEmbedElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLFieldSetElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLFormControlsCollection + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLFormElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLHeadElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLHeadingElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLHRElement HTMLHtmlElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLIFrameElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLImageElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLInputElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLKeygenElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLLabelElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLLegendElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLLIElement HTMLLinkElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLMapElement HTMLMediaElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLMetaElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLMeterElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLModElement HTMLObjectElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOListElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOptGroupElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOptionElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOptionsCollection + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLOutputElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLParagraphElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLParamElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLPreElement HTMLProgressElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLQuoteElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLScriptElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLSelectElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLSourceElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLSpanElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLStyleElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableCaptionElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableCellElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableColElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableDataCellElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableHeaderCellElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableRowElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTableSectionElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTextAreaElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTimeElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTitleElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLTrackElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLUListElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLUnknownElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName HTMLVideoElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBCursor IDBCursorSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBCursorWithValue + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBDatabase IDBDatabaseSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBEnvironment IDBEnvironmentSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBFactory IDBFactorySync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBIndex IDBIndexSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBKeyRange IDBObjectStore + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBObjectStoreSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBOpenDBRequest + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBRequest IDBTransaction + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBTransactionSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName IDBVersionChangeEvent + syntax keyword typescriptBOM containedin=typescriptIdentifierName ImageData IndexedDB + syntax keyword typescriptBOM containedin=typescriptIdentifierName Int16Array Int32Array + syntax keyword typescriptBOM containedin=typescriptIdentifierName Int8Array L10n LinkStyle + syntax keyword typescriptBOM containedin=typescriptIdentifierName LocalFileSystem + syntax keyword typescriptBOM containedin=typescriptIdentifierName LocalFileSystemSync + syntax keyword typescriptBOM containedin=typescriptIdentifierName Location LockedFile + syntax keyword typescriptBOM containedin=typescriptIdentifierName MediaQueryList MediaQueryListListener + syntax keyword typescriptBOM containedin=typescriptIdentifierName MediaRecorder MediaSource + syntax keyword typescriptBOM containedin=typescriptIdentifierName MediaStream MediaStreamTrack + syntax keyword typescriptBOM containedin=typescriptIdentifierName MutationObserver + syntax keyword typescriptBOM containedin=typescriptIdentifierName Navigator NavigatorGeolocation + syntax keyword typescriptBOM containedin=typescriptIdentifierName NavigatorID NavigatorLanguage + syntax keyword typescriptBOM containedin=typescriptIdentifierName NavigatorOnLine + syntax keyword typescriptBOM containedin=typescriptIdentifierName NavigatorPlugins + syntax keyword typescriptBOM containedin=typescriptIdentifierName Node NodeFilter + syntax keyword typescriptBOM containedin=typescriptIdentifierName NodeIterator NodeList + syntax keyword typescriptBOM containedin=typescriptIdentifierName Notification OfflineAudioContext + syntax keyword typescriptBOM containedin=typescriptIdentifierName OscillatorNode PannerNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName ParentNode Performance + syntax keyword typescriptBOM containedin=typescriptIdentifierName PerformanceNavigation + syntax keyword typescriptBOM containedin=typescriptIdentifierName PerformanceTiming + syntax keyword typescriptBOM containedin=typescriptIdentifierName Permissions PermissionSettings + syntax keyword typescriptBOM containedin=typescriptIdentifierName Plugin PluginArray + syntax keyword typescriptBOM containedin=typescriptIdentifierName Position PositionError + syntax keyword typescriptBOM containedin=typescriptIdentifierName PositionOptions + syntax keyword typescriptBOM containedin=typescriptIdentifierName PowerManager ProcessingInstruction + syntax keyword typescriptBOM containedin=typescriptIdentifierName PromiseResolver + syntax keyword typescriptBOM containedin=typescriptIdentifierName PushManager Range + syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCConfiguration + syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCPeerConnection + syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCPeerConnectionErrorCallback + syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCSessionDescription + syntax keyword typescriptBOM containedin=typescriptIdentifierName RTCSessionDescriptionCallback + syntax keyword typescriptBOM containedin=typescriptIdentifierName ScriptProcessorNode + syntax keyword typescriptBOM containedin=typescriptIdentifierName Selection SettingsLock + syntax keyword typescriptBOM containedin=typescriptIdentifierName SettingsManager + syntax keyword typescriptBOM containedin=typescriptIdentifierName SharedWorker StyleSheet + syntax keyword typescriptBOM containedin=typescriptIdentifierName StyleSheetList SVGAElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAngle SVGAnimateColorElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedAngle + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedBoolean + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedEnumeration + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedInteger + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedLength + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedLengthList + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedNumber + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedNumberList + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedPoints + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedPreserveAspectRatio + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedRect + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedString + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimatedTransformList + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimateElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimateMotionElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimateTransformElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGAnimationElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGCircleElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGClipPathElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGCursorElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGDefsElement SVGDescElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGElement SVGEllipseElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFilterElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontElement SVGFontFaceElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceFormatElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceNameElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceSrcElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGFontFaceUriElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGForeignObjectElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGGElement SVGGlyphElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGGradientElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGHKernElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGImageElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGLength SVGLengthList + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGLinearGradientElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGLineElement SVGMaskElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGMatrix SVGMissingGlyphElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGMPathElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGNumber SVGNumberList + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPathElement SVGPatternElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPoint SVGPolygonElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPolylineElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGPreserveAspectRatio + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGRadialGradientElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGRect SVGRectElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGScriptElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGSetElement SVGStopElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGStringList SVGStylable + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGStyleElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGSVGElement SVGSwitchElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGSymbolElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTests SVGTextElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTextPositioningElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTitleElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTransform SVGTransformable + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTransformList + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGTRefElement SVGTSpanElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGUseElement SVGViewElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName SVGVKernElement + syntax keyword typescriptBOM containedin=typescriptIdentifierName TCPServerSocket + syntax keyword typescriptBOM containedin=typescriptIdentifierName TCPSocket Telephony + syntax keyword typescriptBOM containedin=typescriptIdentifierName TelephonyCall Text + syntax keyword typescriptBOM containedin=typescriptIdentifierName TextDecoder TextEncoder + syntax keyword typescriptBOM containedin=typescriptIdentifierName TextMetrics TimeRanges + syntax keyword typescriptBOM containedin=typescriptIdentifierName Touch TouchList + syntax keyword typescriptBOM containedin=typescriptIdentifierName Transferable TreeWalker + syntax keyword typescriptBOM containedin=typescriptIdentifierName Uint16Array Uint32Array + syntax keyword typescriptBOM containedin=typescriptIdentifierName Uint8Array Uint8ClampedArray + syntax keyword typescriptBOM containedin=typescriptIdentifierName URLSearchParams + syntax keyword typescriptBOM containedin=typescriptIdentifierName URLUtilsReadOnly + syntax keyword typescriptBOM containedin=typescriptIdentifierName UserProximityEvent + syntax keyword typescriptBOM containedin=typescriptIdentifierName ValidityState VideoPlaybackQuality + syntax keyword typescriptBOM containedin=typescriptIdentifierName WaveShaperNode WebBluetooth + syntax keyword typescriptBOM containedin=typescriptIdentifierName WebGLRenderingContext + syntax keyword typescriptBOM containedin=typescriptIdentifierName WebSMS WebSocket + syntax keyword typescriptBOM containedin=typescriptIdentifierName WebVTT WifiManager + syntax keyword typescriptBOM containedin=typescriptIdentifierName Window Worker WorkerConsole + syntax keyword typescriptBOM containedin=typescriptIdentifierName WorkerLocation WorkerNavigator + syntax keyword typescriptBOM containedin=typescriptIdentifierName XDomainRequest XMLDocument + syntax keyword typescriptBOM containedin=typescriptIdentifierName XMLHttpRequestEventTarget + hi def link typescriptBOM Structure + + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName applicationCache + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName closed + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName Components + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName controllers + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName dialogArguments + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName document + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName frameElement + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName frames + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName fullScreen + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName history + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName innerHeight + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName innerWidth + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName length + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName location + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName locationbar + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName menubar + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName messageManager + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName name navigator + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName opener + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName outerHeight + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName outerWidth + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName pageXOffset + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName pageYOffset + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName parent + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName performance + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName personalbar + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName returnValue + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName screen + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName screenX + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName screenY + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollbars + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollMaxX + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollMaxY + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollX + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName scrollY + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName self sidebar + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName status + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName statusbar + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName toolbar + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName top visualViewport + syntax keyword typescriptBOMWindowProp containedin=typescriptIdentifierName window + syntax cluster props add=typescriptBOMWindowProp + hi def link typescriptBOMWindowProp Structure + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName alert nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName atob nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName blur nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName btoa nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName clearImmediate nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName clearInterval nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName clearTimeout nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName close nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName confirm nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName dispatchEvent nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName find nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName focus nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getAttention nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getAttentionWithCycleCount nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getComputedStyle nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getDefaulComputedStyle nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName getSelection nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName matchMedia nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName maximize nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName moveBy nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName moveTo nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName open nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName openDialog nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName postMessage nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName print nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName prompt nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName removeEventListener nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName resizeBy nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName resizeTo nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName restore nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scroll nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollBy nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollByLines nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollByPages nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName scrollTo nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setCursor nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setImmediate nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setInterval nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setResizable nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName setTimeout nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName showModalDialog nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName sizeToContent nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName stop nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMWindowMethod containedin=typescriptIdentifierName updateCommands nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptBOMWindowMethod + hi def link typescriptBOMWindowMethod Structure + syntax keyword typescriptBOMWindowEvent contained onabort onbeforeunload onblur onchange + syntax keyword typescriptBOMWindowEvent contained onclick onclose oncontextmenu ondevicelight + syntax keyword typescriptBOMWindowEvent contained ondevicemotion ondeviceorientation + syntax keyword typescriptBOMWindowEvent contained ondeviceproximity ondragdrop onerror + syntax keyword typescriptBOMWindowEvent contained onfocus onhashchange onkeydown onkeypress + syntax keyword typescriptBOMWindowEvent contained onkeyup onload onmousedown onmousemove + syntax keyword typescriptBOMWindowEvent contained onmouseout onmouseover onmouseup + syntax keyword typescriptBOMWindowEvent contained onmozbeforepaint onpaint onpopstate + syntax keyword typescriptBOMWindowEvent contained onreset onresize onscroll onselect + syntax keyword typescriptBOMWindowEvent contained onsubmit onunload onuserproximity + syntax keyword typescriptBOMWindowEvent contained onpageshow onpagehide + hi def link typescriptBOMWindowEvent Keyword + syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName DOMParser + syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName QueryInterface + syntax keyword typescriptBOMWindowCons containedin=typescriptIdentifierName XMLSerializer + hi def link typescriptBOMWindowCons Structure + + syntax keyword typescriptBOMNavigatorProp contained battery buildID connection cookieEnabled + syntax keyword typescriptBOMNavigatorProp contained doNotTrack maxTouchPoints oscpu + syntax keyword typescriptBOMNavigatorProp contained productSub push serviceWorker + syntax keyword typescriptBOMNavigatorProp contained vendor vendorSub + syntax cluster props add=typescriptBOMNavigatorProp + hi def link typescriptBOMNavigatorProp Keyword + syntax keyword typescriptBOMNavigatorMethod contained addIdleObserver geolocation nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMNavigatorMethod contained getDeviceStorage getDeviceStorages nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMNavigatorMethod contained getGamepads getUserMedia registerContentHandler nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMNavigatorMethod contained removeIdleObserver requestWakeLock nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMNavigatorMethod contained share vibrate watch registerProtocolHandler nextgroup=typescriptFuncCallArg + syntax keyword typescriptBOMNavigatorMethod contained sendBeacon nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptBOMNavigatorMethod + hi def link typescriptBOMNavigatorMethod Keyword + syntax keyword typescriptServiceWorkerMethod contained register nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptServiceWorkerMethod + hi def link typescriptServiceWorkerMethod Keyword + + syntax keyword typescriptBOMLocationProp contained href protocol host hostname port + syntax keyword typescriptBOMLocationProp contained pathname search hash username password + syntax keyword typescriptBOMLocationProp contained origin + syntax cluster props add=typescriptBOMLocationProp + hi def link typescriptBOMLocationProp Keyword + syntax keyword typescriptBOMLocationMethod contained assign reload replace toString nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptBOMLocationMethod + hi def link typescriptBOMLocationMethod Keyword + + syntax keyword typescriptBOMHistoryProp contained length current next previous state + syntax keyword typescriptBOMHistoryProp contained scrollRestoration + syntax cluster props add=typescriptBOMHistoryProp + hi def link typescriptBOMHistoryProp Keyword + syntax keyword typescriptBOMHistoryMethod contained back forward go pushState replaceState nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptBOMHistoryMethod + hi def link typescriptBOMHistoryMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName console + syntax keyword typescriptConsoleMethod contained count dir error group groupCollapsed nextgroup=typescriptFuncCallArg + syntax keyword typescriptConsoleMethod contained groupEnd info log time timeEnd trace nextgroup=typescriptFuncCallArg + syntax keyword typescriptConsoleMethod contained warn nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptConsoleMethod + hi def link typescriptConsoleMethod Keyword + + syntax keyword typescriptXHRGlobal containedin=typescriptIdentifierName XMLHttpRequest + hi def link typescriptXHRGlobal Structure + syntax keyword typescriptXHRProp contained onreadystatechange readyState response + syntax keyword typescriptXHRProp contained responseText responseType responseXML status + syntax keyword typescriptXHRProp contained statusText timeout ontimeout upload withCredentials + syntax cluster props add=typescriptXHRProp + hi def link typescriptXHRProp Keyword + syntax keyword typescriptXHRMethod contained abort getAllResponseHeaders getResponseHeader nextgroup=typescriptFuncCallArg + syntax keyword typescriptXHRMethod contained open overrideMimeType send setRequestHeader nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptXHRMethod + hi def link typescriptXHRMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Blob BlobBuilder + syntax keyword typescriptGlobal containedin=typescriptIdentifierName File FileReader + syntax keyword typescriptGlobal containedin=typescriptIdentifierName FileReaderSync + syntax keyword typescriptGlobal containedin=typescriptIdentifierName URL nextgroup=typescriptGlobalURLDot,typescriptFuncCallArg + syntax match typescriptGlobalURLDot /\./ contained nextgroup=typescriptURLStaticMethod,typescriptProp + syntax keyword typescriptGlobal containedin=typescriptIdentifierName URLUtils + syntax keyword typescriptFileMethod contained readAsArrayBuffer readAsBinaryString nextgroup=typescriptFuncCallArg + syntax keyword typescriptFileMethod contained readAsDataURL readAsText nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptFileMethod + hi def link typescriptFileMethod Keyword + syntax keyword typescriptFileReaderProp contained error readyState result + syntax cluster props add=typescriptFileReaderProp + hi def link typescriptFileReaderProp Keyword + syntax keyword typescriptFileReaderMethod contained abort readAsArrayBuffer readAsBinaryString nextgroup=typescriptFuncCallArg + syntax keyword typescriptFileReaderMethod contained readAsDataURL readAsText nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptFileReaderMethod + hi def link typescriptFileReaderMethod Keyword + syntax keyword typescriptFileListMethod contained item nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptFileListMethod + hi def link typescriptFileListMethod Keyword + syntax keyword typescriptBlobMethod contained append getBlob getFile nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptBlobMethod + hi def link typescriptBlobMethod Keyword + syntax keyword typescriptURLUtilsProp contained hash host hostname href origin password + syntax keyword typescriptURLUtilsProp contained pathname port protocol search searchParams + syntax keyword typescriptURLUtilsProp contained username + syntax cluster props add=typescriptURLUtilsProp + hi def link typescriptURLUtilsProp Keyword + syntax keyword typescriptURLStaticMethod contained createObjectURL revokeObjectURL nextgroup=typescriptFuncCallArg + hi def link typescriptURLStaticMethod Keyword + + syntax keyword typescriptCryptoGlobal containedin=typescriptIdentifierName crypto + hi def link typescriptCryptoGlobal Structure + syntax keyword typescriptSubtleCryptoMethod contained encrypt decrypt sign verify nextgroup=typescriptFuncCallArg + syntax keyword typescriptSubtleCryptoMethod contained digest nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptSubtleCryptoMethod + hi def link typescriptSubtleCryptoMethod Keyword + syntax keyword typescriptCryptoProp contained subtle + syntax cluster props add=typescriptCryptoProp + hi def link typescriptCryptoProp Keyword + syntax keyword typescriptCryptoMethod contained getRandomValues nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptCryptoMethod + hi def link typescriptCryptoMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Headers Request + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Response + syntax keyword typescriptGlobalMethod containedin=typescriptIdentifierName fetch nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptGlobalMethod + hi def link typescriptGlobalMethod Structure + syntax keyword typescriptHeadersMethod contained append delete get getAll has set nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptHeadersMethod + hi def link typescriptHeadersMethod Keyword + syntax keyword typescriptRequestProp contained method url headers context referrer + syntax keyword typescriptRequestProp contained mode credentials cache + syntax cluster props add=typescriptRequestProp + hi def link typescriptRequestProp Keyword + syntax keyword typescriptRequestMethod contained clone nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptRequestMethod + hi def link typescriptRequestMethod Keyword + syntax keyword typescriptResponseProp contained type url status statusText headers + syntax keyword typescriptResponseProp contained redirected + syntax cluster props add=typescriptResponseProp + hi def link typescriptResponseProp Keyword + syntax keyword typescriptResponseMethod contained clone nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptResponseMethod + hi def link typescriptResponseMethod Keyword + + syntax keyword typescriptServiceWorkerProp contained controller ready + syntax cluster props add=typescriptServiceWorkerProp + hi def link typescriptServiceWorkerProp Keyword + syntax keyword typescriptServiceWorkerMethod contained register getRegistration nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptServiceWorkerMethod + hi def link typescriptServiceWorkerMethod Keyword + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Cache + syntax keyword typescriptCacheMethod contained match matchAll add addAll put delete nextgroup=typescriptFuncCallArg + syntax keyword typescriptCacheMethod contained keys nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptCacheMethod + hi def link typescriptCacheMethod Keyword + + syntax keyword typescriptEncodingGlobal containedin=typescriptIdentifierName TextEncoder + syntax keyword typescriptEncodingGlobal containedin=typescriptIdentifierName TextDecoder + hi def link typescriptEncodingGlobal Structure + syntax keyword typescriptEncodingProp contained encoding fatal ignoreBOM + syntax cluster props add=typescriptEncodingProp + hi def link typescriptEncodingProp Keyword + syntax keyword typescriptEncodingMethod contained encode decode nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptEncodingMethod + hi def link typescriptEncodingMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName Geolocation + syntax keyword typescriptGeolocationMethod contained getCurrentPosition watchPosition nextgroup=typescriptFuncCallArg + syntax keyword typescriptGeolocationMethod contained clearWatch nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptGeolocationMethod + hi def link typescriptGeolocationMethod Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName NetworkInformation + syntax keyword typescriptBOMNetworkProp contained downlink downlinkMax effectiveType + syntax keyword typescriptBOMNetworkProp contained rtt type + syntax cluster props add=typescriptBOMNetworkProp + hi def link typescriptBOMNetworkProp Keyword + + syntax keyword typescriptGlobal containedin=typescriptIdentifierName PaymentRequest + syntax keyword typescriptPaymentMethod contained show abort canMakePayment nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptPaymentMethod + hi def link typescriptPaymentMethod Keyword + syntax keyword typescriptPaymentProp contained shippingAddress shippingOption result + syntax cluster props add=typescriptPaymentProp + hi def link typescriptPaymentProp Keyword + syntax keyword typescriptPaymentEvent contained onshippingaddresschange onshippingoptionchange + hi def link typescriptPaymentEvent Keyword + syntax keyword typescriptPaymentResponseMethod contained complete nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptPaymentResponseMethod + hi def link typescriptPaymentResponseMethod Keyword + syntax keyword typescriptPaymentResponseProp contained details methodName payerEmail + syntax keyword typescriptPaymentResponseProp contained payerPhone shippingAddress + syntax keyword typescriptPaymentResponseProp contained shippingOption + syntax cluster props add=typescriptPaymentResponseProp + hi def link typescriptPaymentResponseProp Keyword + syntax keyword typescriptPaymentAddressProp contained addressLine careOf city country + syntax keyword typescriptPaymentAddressProp contained country dependentLocality languageCode + syntax keyword typescriptPaymentAddressProp contained organization phone postalCode + syntax keyword typescriptPaymentAddressProp contained recipient region sortingCode + syntax cluster props add=typescriptPaymentAddressProp + hi def link typescriptPaymentAddressProp Keyword + syntax keyword typescriptPaymentShippingOptionProp contained id label amount selected + syntax cluster props add=typescriptPaymentShippingOptionProp + hi def link typescriptPaymentShippingOptionProp Keyword + + syntax keyword typescriptDOMNodeProp contained attributes baseURI baseURIObject childNodes + syntax keyword typescriptDOMNodeProp contained firstChild lastChild localName namespaceURI + syntax keyword typescriptDOMNodeProp contained nextSibling nodeName nodePrincipal + syntax keyword typescriptDOMNodeProp contained nodeType nodeValue ownerDocument parentElement + syntax keyword typescriptDOMNodeProp contained parentNode prefix previousSibling textContent + syntax cluster props add=typescriptDOMNodeProp + hi def link typescriptDOMNodeProp Keyword + syntax keyword typescriptDOMNodeMethod contained appendChild cloneNode compareDocumentPosition nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMNodeMethod contained getUserData hasAttributes hasChildNodes nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMNodeMethod contained insertBefore isDefaultNamespace isEqualNode nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMNodeMethod contained isSameNode isSupported lookupNamespaceURI nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMNodeMethod contained lookupPrefix normalize removeChild nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMNodeMethod contained replaceChild setUserData nextgroup=typescriptFuncCallArg + syntax match typescriptDOMNodeMethod contained /contains/ + syntax cluster props add=typescriptDOMNodeMethod + hi def link typescriptDOMNodeMethod Keyword + syntax keyword typescriptDOMNodeType contained ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE + syntax keyword typescriptDOMNodeType contained CDATA_SECTION_NODEN_NODE ENTITY_REFERENCE_NODE + syntax keyword typescriptDOMNodeType contained ENTITY_NODE PROCESSING_INSTRUCTION_NODEN_NODE + syntax keyword typescriptDOMNodeType contained COMMENT_NODE DOCUMENT_NODE DOCUMENT_TYPE_NODE + syntax keyword typescriptDOMNodeType contained DOCUMENT_FRAGMENT_NODE NOTATION_NODE + hi def link typescriptDOMNodeType Keyword + + syntax keyword typescriptDOMElemAttrs contained accessKey clientHeight clientLeft + syntax keyword typescriptDOMElemAttrs contained clientTop clientWidth id innerHTML + syntax keyword typescriptDOMElemAttrs contained length onafterscriptexecute onbeforescriptexecute + syntax keyword typescriptDOMElemAttrs contained oncopy oncut onpaste onwheel scrollHeight + syntax keyword typescriptDOMElemAttrs contained scrollLeft scrollTop scrollWidth tagName + syntax keyword typescriptDOMElemAttrs contained classList className name outerHTML + syntax keyword typescriptDOMElemAttrs contained style + hi def link typescriptDOMElemAttrs Keyword + syntax keyword typescriptDOMElemFuncs contained getAttributeNS getAttributeNode getAttributeNodeNS + syntax keyword typescriptDOMElemFuncs contained getBoundingClientRect getClientRects + syntax keyword typescriptDOMElemFuncs contained getElementsByClassName getElementsByTagName + syntax keyword typescriptDOMElemFuncs contained getElementsByTagNameNS hasAttribute + syntax keyword typescriptDOMElemFuncs contained hasAttributeNS insertAdjacentHTML + syntax keyword typescriptDOMElemFuncs contained matches querySelector querySelectorAll + syntax keyword typescriptDOMElemFuncs contained removeAttribute removeAttributeNS + syntax keyword typescriptDOMElemFuncs contained removeAttributeNode requestFullscreen + syntax keyword typescriptDOMElemFuncs contained requestPointerLock scrollIntoView + syntax keyword typescriptDOMElemFuncs contained setAttribute setAttributeNS setAttributeNode + syntax keyword typescriptDOMElemFuncs contained setAttributeNodeNS setCapture supports + syntax keyword typescriptDOMElemFuncs contained getAttribute + hi def link typescriptDOMElemFuncs Keyword + + syntax keyword typescriptDOMDocProp contained activeElement body cookie defaultView + syntax keyword typescriptDOMDocProp contained designMode dir domain embeds forms head + syntax keyword typescriptDOMDocProp contained images lastModified links location plugins + syntax keyword typescriptDOMDocProp contained postMessage readyState referrer registerElement + syntax keyword typescriptDOMDocProp contained scripts styleSheets title vlinkColor + syntax keyword typescriptDOMDocProp contained xmlEncoding characterSet compatMode + syntax keyword typescriptDOMDocProp contained contentType currentScript doctype documentElement + syntax keyword typescriptDOMDocProp contained documentURI documentURIObject firstChild + syntax keyword typescriptDOMDocProp contained implementation lastStyleSheetSet namespaceURI + syntax keyword typescriptDOMDocProp contained nodePrincipal ononline pointerLockElement + syntax keyword typescriptDOMDocProp contained popupNode preferredStyleSheetSet selectedStyleSheetSet + syntax keyword typescriptDOMDocProp contained styleSheetSets textContent tooltipNode + syntax cluster props add=typescriptDOMDocProp + hi def link typescriptDOMDocProp Keyword + syntax keyword typescriptDOMDocMethod contained caretPositionFromPoint close createNodeIterator nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained createRange createTreeWalker elementFromPoint nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained getElementsByName adoptNode createAttribute nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained createCDATASection createComment createDocumentFragment nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained createElement createElementNS createEvent nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained createExpression createNSResolver nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained createProcessingInstruction createTextNode nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained enableStyleSheetsForSet evaluate execCommand nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained exitPointerLock getBoxObjectFor getElementById nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained getElementsByClassName getElementsByTagName nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained getElementsByTagNameNS getSelection nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained hasFocus importNode loadOverlay open nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained queryCommandSupported querySelector nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMDocMethod contained querySelectorAll write writeln nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptDOMDocMethod + hi def link typescriptDOMDocMethod Keyword + + syntax keyword typescriptDOMEventTargetMethod contained addEventListener removeEventListener nextgroup=typescriptEventFuncCallArg + syntax keyword typescriptDOMEventTargetMethod contained dispatchEvent waitUntil nextgroup=typescriptEventFuncCallArg + syntax cluster props add=typescriptDOMEventTargetMethod + hi def link typescriptDOMEventTargetMethod Keyword + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName AnimationEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName AudioProcessingEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName BeforeInputEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName BeforeUnloadEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName BlobEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName ClipboardEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CloseEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CompositionEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CSSFontFaceLoadEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName CustomEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceLightEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceMotionEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceOrientationEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DeviceProximityEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DOMTransactionEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName DragEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName EditingBeforeInputEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName ErrorEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName FocusEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName GamepadEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName HashChangeEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName IDBVersionChangeEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName KeyboardEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MediaStreamEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MessageEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MouseEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName MutationEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName OfflineAudioCompletionEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName PageTransitionEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName PointerEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName PopStateEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName ProgressEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName RelatedEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName RTCPeerConnectionIceEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName SensorEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName StorageEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName SVGEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName SVGZoomEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TimeEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TouchEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TrackEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName TransitionEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName UIEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName UserProximityEvent + syntax keyword typescriptDOMEventCons containedin=typescriptIdentifierName WheelEvent + hi def link typescriptDOMEventCons Structure + syntax keyword typescriptDOMEventProp contained bubbles cancelable currentTarget defaultPrevented + syntax keyword typescriptDOMEventProp contained eventPhase target timeStamp type isTrusted + syntax keyword typescriptDOMEventProp contained isReload + syntax cluster props add=typescriptDOMEventProp + hi def link typescriptDOMEventProp Keyword + syntax keyword typescriptDOMEventMethod contained initEvent preventDefault stopImmediatePropagation nextgroup=typescriptEventFuncCallArg + syntax keyword typescriptDOMEventMethod contained stopPropagation respondWith default nextgroup=typescriptEventFuncCallArg + syntax cluster props add=typescriptDOMEventMethod + hi def link typescriptDOMEventMethod Keyword + + syntax keyword typescriptDOMStorage contained sessionStorage localStorage + hi def link typescriptDOMStorage Keyword + syntax keyword typescriptDOMStorageProp contained length + syntax cluster props add=typescriptDOMStorageProp + hi def link typescriptDOMStorageProp Keyword + syntax keyword typescriptDOMStorageMethod contained getItem key setItem removeItem nextgroup=typescriptFuncCallArg + syntax keyword typescriptDOMStorageMethod contained clear nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptDOMStorageMethod + hi def link typescriptDOMStorageMethod Keyword + + syntax keyword typescriptDOMFormProp contained acceptCharset action elements encoding + syntax keyword typescriptDOMFormProp contained enctype length method name target + syntax cluster props add=typescriptDOMFormProp + hi def link typescriptDOMFormProp Keyword + syntax keyword typescriptDOMFormMethod contained reportValidity reset submit nextgroup=typescriptFuncCallArg + syntax cluster props add=typescriptDOMFormMethod + hi def link typescriptDOMFormMethod Keyword + + syntax keyword typescriptDOMStyle contained alignContent alignItems alignSelf animation + syntax keyword typescriptDOMStyle contained animationDelay animationDirection animationDuration + syntax keyword typescriptDOMStyle contained animationFillMode animationIterationCount + syntax keyword typescriptDOMStyle contained animationName animationPlayState animationTimingFunction + syntax keyword typescriptDOMStyle contained appearance backfaceVisibility background + syntax keyword typescriptDOMStyle contained backgroundAttachment backgroundBlendMode + syntax keyword typescriptDOMStyle contained backgroundClip backgroundColor backgroundImage + syntax keyword typescriptDOMStyle contained backgroundOrigin backgroundPosition backgroundRepeat + syntax keyword typescriptDOMStyle contained backgroundSize border borderBottom borderBottomColor + syntax keyword typescriptDOMStyle contained borderBottomLeftRadius borderBottomRightRadius + syntax keyword typescriptDOMStyle contained borderBottomStyle borderBottomWidth borderCollapse + syntax keyword typescriptDOMStyle contained borderColor borderImage borderImageOutset + syntax keyword typescriptDOMStyle contained borderImageRepeat borderImageSlice borderImageSource + syntax keyword typescriptDOMStyle contained borderImageWidth borderLeft borderLeftColor + syntax keyword typescriptDOMStyle contained borderLeftStyle borderLeftWidth borderRadius + syntax keyword typescriptDOMStyle contained borderRight borderRightColor borderRightStyle + syntax keyword typescriptDOMStyle contained borderRightWidth borderSpacing borderStyle + syntax keyword typescriptDOMStyle contained borderTop borderTopColor borderTopLeftRadius + syntax keyword typescriptDOMStyle contained borderTopRightRadius borderTopStyle borderTopWidth + syntax keyword typescriptDOMStyle contained borderWidth bottom boxDecorationBreak + syntax keyword typescriptDOMStyle contained boxShadow boxSizing breakAfter breakBefore + syntax keyword typescriptDOMStyle contained breakInside captionSide caretColor caretShape + syntax keyword typescriptDOMStyle contained caret clear clip clipPath color columns + syntax keyword typescriptDOMStyle contained columnCount columnFill columnGap columnRule + syntax keyword typescriptDOMStyle contained columnRuleColor columnRuleStyle columnRuleWidth + syntax keyword typescriptDOMStyle contained columnSpan columnWidth content counterIncrement + syntax keyword typescriptDOMStyle contained counterReset cursor direction display + syntax keyword typescriptDOMStyle contained emptyCells flex flexBasis flexDirection + syntax keyword typescriptDOMStyle contained flexFlow flexGrow flexShrink flexWrap + syntax keyword typescriptDOMStyle contained float font fontFamily fontFeatureSettings + syntax keyword typescriptDOMStyle contained fontKerning fontLanguageOverride fontSize + syntax keyword typescriptDOMStyle contained fontSizeAdjust fontStretch fontStyle fontSynthesis + syntax keyword typescriptDOMStyle contained fontVariant fontVariantAlternates fontVariantCaps + syntax keyword typescriptDOMStyle contained fontVariantEastAsian fontVariantLigatures + syntax keyword typescriptDOMStyle contained fontVariantNumeric fontVariantPosition + syntax keyword typescriptDOMStyle contained fontWeight grad grid gridArea gridAutoColumns + syntax keyword typescriptDOMStyle contained gridAutoFlow gridAutoPosition gridAutoRows + syntax keyword typescriptDOMStyle contained gridColumn gridColumnStart gridColumnEnd + syntax keyword typescriptDOMStyle contained gridRow gridRowStart gridRowEnd gridTemplate + syntax keyword typescriptDOMStyle contained gridTemplateAreas gridTemplateRows gridTemplateColumns + syntax keyword typescriptDOMStyle contained height hyphens imageRendering imageResolution + syntax keyword typescriptDOMStyle contained imageOrientation imeMode inherit justifyContent + syntax keyword typescriptDOMStyle contained left letterSpacing lineBreak lineHeight + syntax keyword typescriptDOMStyle contained listStyle listStyleImage listStylePosition + syntax keyword typescriptDOMStyle contained listStyleType margin marginBottom marginLeft + syntax keyword typescriptDOMStyle contained marginRight marginTop marks mask maskType + syntax keyword typescriptDOMStyle contained maxHeight maxWidth minHeight minWidth + syntax keyword typescriptDOMStyle contained mixBlendMode objectFit objectPosition + syntax keyword typescriptDOMStyle contained opacity order orphans outline outlineColor + syntax keyword typescriptDOMStyle contained outlineOffset outlineStyle outlineWidth + syntax keyword typescriptDOMStyle contained overflow overflowWrap overflowX overflowY + syntax keyword typescriptDOMStyle contained overflowClipBox padding paddingBottom + syntax keyword typescriptDOMStyle contained paddingLeft paddingRight paddingTop pageBreakAfter + syntax keyword typescriptDOMStyle contained pageBreakBefore pageBreakInside perspective + syntax keyword typescriptDOMStyle contained perspectiveOrigin pointerEvents position + syntax keyword typescriptDOMStyle contained quotes resize right shapeImageThreshold + syntax keyword typescriptDOMStyle contained shapeMargin shapeOutside tableLayout tabSize + syntax keyword typescriptDOMStyle contained textAlign textAlignLast textCombineHorizontal + syntax keyword typescriptDOMStyle contained textDecoration textDecorationColor textDecorationLine + syntax keyword typescriptDOMStyle contained textDecorationStyle textIndent textOrientation + syntax keyword typescriptDOMStyle contained textOverflow textRendering textShadow + syntax keyword typescriptDOMStyle contained textTransform textUnderlinePosition top + syntax keyword typescriptDOMStyle contained touchAction transform transformOrigin + syntax keyword typescriptDOMStyle contained transformStyle transition transitionDelay + syntax keyword typescriptDOMStyle contained transitionDuration transitionProperty + syntax keyword typescriptDOMStyle contained transitionTimingFunction unicodeBidi unicodeRange + syntax keyword typescriptDOMStyle contained userSelect userZoom verticalAlign visibility + syntax keyword typescriptDOMStyle contained whiteSpace width willChange wordBreak + syntax keyword typescriptDOMStyle contained wordSpacing wordWrap writingMode zIndex + hi def link typescriptDOMStyle Keyword + + + + let typescript_props = 1 + syntax keyword typescriptAnimationEvent contained animationend animationiteration + syntax keyword typescriptAnimationEvent contained animationstart beginEvent endEvent + syntax keyword typescriptAnimationEvent contained repeatEvent + syntax cluster events add=typescriptAnimationEvent + hi def link typescriptAnimationEvent Title + syntax keyword typescriptCSSEvent contained CssRuleViewRefreshed CssRuleViewChanged + syntax keyword typescriptCSSEvent contained CssRuleViewCSSLinkClicked transitionend + syntax cluster events add=typescriptCSSEvent + hi def link typescriptCSSEvent Title + syntax keyword typescriptDatabaseEvent contained blocked complete error success upgradeneeded + syntax keyword typescriptDatabaseEvent contained versionchange + syntax cluster events add=typescriptDatabaseEvent + hi def link typescriptDatabaseEvent Title + syntax keyword typescriptDocumentEvent contained DOMLinkAdded DOMLinkRemoved DOMMetaAdded + syntax keyword typescriptDocumentEvent contained DOMMetaRemoved DOMWillOpenModalDialog + syntax keyword typescriptDocumentEvent contained DOMModalDialogClosed unload + syntax cluster events add=typescriptDocumentEvent + hi def link typescriptDocumentEvent Title + syntax keyword typescriptDOMMutationEvent contained DOMAttributeNameChanged DOMAttrModified + syntax keyword typescriptDOMMutationEvent contained DOMCharacterDataModified DOMContentLoaded + syntax keyword typescriptDOMMutationEvent contained DOMElementNameChanged DOMNodeInserted + syntax keyword typescriptDOMMutationEvent contained DOMNodeInsertedIntoDocument DOMNodeRemoved + syntax keyword typescriptDOMMutationEvent contained DOMNodeRemovedFromDocument DOMSubtreeModified + syntax cluster events add=typescriptDOMMutationEvent + hi def link typescriptDOMMutationEvent Title + syntax keyword typescriptDragEvent contained drag dragdrop dragend dragenter dragexit + syntax keyword typescriptDragEvent contained draggesture dragleave dragover dragstart + syntax keyword typescriptDragEvent contained drop + syntax cluster events add=typescriptDragEvent + hi def link typescriptDragEvent Title + syntax keyword typescriptElementEvent contained invalid overflow underflow DOMAutoComplete + syntax keyword typescriptElementEvent contained command commandupdate + syntax cluster events add=typescriptElementEvent + hi def link typescriptElementEvent Title + syntax keyword typescriptFocusEvent contained blur change DOMFocusIn DOMFocusOut focus + syntax keyword typescriptFocusEvent contained focusin focusout + syntax cluster events add=typescriptFocusEvent + hi def link typescriptFocusEvent Title + syntax keyword typescriptFormEvent contained reset submit + syntax cluster events add=typescriptFormEvent + hi def link typescriptFormEvent Title + syntax keyword typescriptFrameEvent contained DOMFrameContentLoaded + syntax cluster events add=typescriptFrameEvent + hi def link typescriptFrameEvent Title + syntax keyword typescriptInputDeviceEvent contained click contextmenu DOMMouseScroll + syntax keyword typescriptInputDeviceEvent contained dblclick gamepadconnected gamepaddisconnected + syntax keyword typescriptInputDeviceEvent contained keydown keypress keyup MozGamepadButtonDown + syntax keyword typescriptInputDeviceEvent contained MozGamepadButtonUp mousedown mouseenter + syntax keyword typescriptInputDeviceEvent contained mouseleave mousemove mouseout + syntax keyword typescriptInputDeviceEvent contained mouseover mouseup mousewheel MozMousePixelScroll + syntax keyword typescriptInputDeviceEvent contained pointerlockchange pointerlockerror + syntax keyword typescriptInputDeviceEvent contained wheel + syntax cluster events add=typescriptInputDeviceEvent + hi def link typescriptInputDeviceEvent Title + syntax keyword typescriptMediaEvent contained audioprocess canplay canplaythrough + syntax keyword typescriptMediaEvent contained durationchange emptied ended ended loadeddata + syntax keyword typescriptMediaEvent contained loadedmetadata MozAudioAvailable pause + syntax keyword typescriptMediaEvent contained play playing ratechange seeked seeking + syntax keyword typescriptMediaEvent contained stalled suspend timeupdate volumechange + syntax keyword typescriptMediaEvent contained waiting complete + syntax cluster events add=typescriptMediaEvent + hi def link typescriptMediaEvent Title + syntax keyword typescriptMenuEvent contained DOMMenuItemActive DOMMenuItemInactive + syntax cluster events add=typescriptMenuEvent + hi def link typescriptMenuEvent Title + syntax keyword typescriptNetworkEvent contained datachange dataerror disabled enabled + syntax keyword typescriptNetworkEvent contained offline online statuschange connectionInfoUpdate + syntax cluster events add=typescriptNetworkEvent + hi def link typescriptNetworkEvent Title + syntax keyword typescriptProgressEvent contained abort error load loadend loadstart + syntax keyword typescriptProgressEvent contained progress timeout uploadprogress + syntax cluster events add=typescriptProgressEvent + hi def link typescriptProgressEvent Title + syntax keyword typescriptResourceEvent contained cached error load + syntax cluster events add=typescriptResourceEvent + hi def link typescriptResourceEvent Title + syntax keyword typescriptScriptEvent contained afterscriptexecute beforescriptexecute + syntax cluster events add=typescriptScriptEvent + hi def link typescriptScriptEvent Title + syntax keyword typescriptSensorEvent contained compassneedscalibration devicelight + syntax keyword typescriptSensorEvent contained devicemotion deviceorientation deviceproximity + syntax keyword typescriptSensorEvent contained orientationchange userproximity + syntax cluster events add=typescriptSensorEvent + hi def link typescriptSensorEvent Title + syntax keyword typescriptSessionHistoryEvent contained pagehide pageshow popstate + syntax cluster events add=typescriptSessionHistoryEvent + hi def link typescriptSessionHistoryEvent Title + syntax keyword typescriptStorageEvent contained change storage + syntax cluster events add=typescriptStorageEvent + hi def link typescriptStorageEvent Title + syntax keyword typescriptSVGEvent contained SVGAbort SVGError SVGLoad SVGResize SVGScroll + syntax keyword typescriptSVGEvent contained SVGUnload SVGZoom + syntax cluster events add=typescriptSVGEvent + hi def link typescriptSVGEvent Title + syntax keyword typescriptTabEvent contained visibilitychange + syntax cluster events add=typescriptTabEvent + hi def link typescriptTabEvent Title + syntax keyword typescriptTextEvent contained compositionend compositionstart compositionupdate + syntax keyword typescriptTextEvent contained copy cut paste select text + syntax cluster events add=typescriptTextEvent + hi def link typescriptTextEvent Title + syntax keyword typescriptTouchEvent contained touchcancel touchend touchenter touchleave + syntax keyword typescriptTouchEvent contained touchmove touchstart + syntax cluster events add=typescriptTouchEvent + hi def link typescriptTouchEvent Title + syntax keyword typescriptUpdateEvent contained checking downloading error noupdate + syntax keyword typescriptUpdateEvent contained obsolete updateready + syntax cluster events add=typescriptUpdateEvent + hi def link typescriptUpdateEvent Title + syntax keyword typescriptValueChangeEvent contained hashchange input readystatechange + syntax cluster events add=typescriptValueChangeEvent + hi def link typescriptValueChangeEvent Title + syntax keyword typescriptViewEvent contained fullscreen fullscreenchange fullscreenerror + syntax keyword typescriptViewEvent contained resize scroll + syntax cluster events add=typescriptViewEvent + hi def link typescriptViewEvent Title + syntax keyword typescriptWebsocketEvent contained close error message open + syntax cluster events add=typescriptWebsocketEvent + hi def link typescriptWebsocketEvent Title + syntax keyword typescriptWindowEvent contained DOMWindowCreated DOMWindowClose DOMTitleChanged + syntax cluster events add=typescriptWindowEvent + hi def link typescriptWindowEvent Title + syntax keyword typescriptUncategorizedEvent contained beforeunload message open show + syntax cluster events add=typescriptUncategorizedEvent + hi def link typescriptUncategorizedEvent Title + syntax keyword typescriptServiceWorkerEvent contained install activate fetch + syntax cluster events add=typescriptServiceWorkerEvent + hi def link typescriptServiceWorkerEvent Title + + +endif + +" patch +" patch for generated code +syntax keyword typescriptGlobal Promise + \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline +syntax keyword typescriptGlobal Map WeakMap + \ nextgroup=typescriptGlobalPromiseDot,typescriptFuncCallArg,typescriptTypeArguments oneline + +syntax keyword typescriptConstructor contained constructor + \ nextgroup=@typescriptCallSignature + \ skipwhite skipempty + + +syntax cluster memberNextGroup contains=typescriptMemberOptionality,typescriptTypeAnnotation,@typescriptCallSignature + +syntax match typescriptMember /#\?\K\k*/ + \ nextgroup=@memberNextGroup + \ contained skipwhite + +syntax match typescriptMethodAccessor contained /\v(get|set)\s\K/me=e-1 + \ nextgroup=@typescriptMembers + +syntax cluster typescriptPropertyMemberDeclaration contains= + \ typescriptClassStatic, + \ typescriptAccessibilityModifier, + \ typescriptReadonlyModifier, + \ typescriptMethodAccessor, + \ @typescriptMembers + " \ typescriptMemberVariableDeclaration + +syntax match typescriptMemberOptionality /?\|!/ contained + \ nextgroup=typescriptTypeAnnotation,@typescriptCallSignature + \ skipwhite skipempty + +syntax cluster typescriptMembers contains=typescriptMember,typescriptStringMember,typescriptComputedMember + +syntax keyword typescriptClassStatic static + \ nextgroup=@typescriptMembers,typescriptAsyncFuncKeyword,typescriptReadonlyModifier + \ skipwhite contained + +syntax keyword typescriptAccessibilityModifier public private protected contained + +syntax keyword typescriptReadonlyModifier readonly contained + +syntax region typescriptStringMember contained + \ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1/ + \ nextgroup=@memberNextGroup + \ skipwhite skipempty + +syntax region typescriptComputedMember contained matchgroup=typescriptProperty + \ start=/\[/rs=s+1 end=/]/ + \ contains=@typescriptValue,typescriptMember,typescriptMappedIn + \ nextgroup=@memberNextGroup + \ skipwhite skipempty + +"don't add typescriptMembers to nextgroup, let outer scope match it +" so we won't match abstract method outside abstract class +syntax keyword typescriptAbstract abstract + \ nextgroup=typescriptClassKeyword + \ skipwhite skipnl +syntax keyword typescriptClassKeyword class + \ nextgroup=typescriptClassName,typescriptClassExtends,typescriptClassBlock + \ skipwhite + +syntax match typescriptClassName contained /\K\k*/ + \ nextgroup=typescriptClassBlock,typescriptClassExtends,typescriptClassTypeParameter + \ skipwhite skipnl + +syntax region typescriptClassTypeParameter + \ start=// + \ contains=@typescriptTypeParameterCluster + \ nextgroup=typescriptClassBlock,typescriptClassExtends + \ contained skipwhite skipnl + +syntax keyword typescriptClassExtends contained extends implements nextgroup=typescriptClassHeritage skipwhite skipnl + +syntax match typescriptClassHeritage contained /\v(\k|\.|\(|\))+/ + \ nextgroup=typescriptClassBlock,typescriptClassExtends,typescriptMixinComma,typescriptClassTypeArguments + \ contains=@typescriptValue + \ skipwhite skipnl + \ contained + +syntax region typescriptClassTypeArguments matchgroup=typescriptTypeBrackets + \ start=// + \ contains=@typescriptType + \ nextgroup=typescriptClassExtends,typescriptClassBlock,typescriptMixinComma + \ contained skipwhite skipnl + +syntax match typescriptMixinComma /,/ contained nextgroup=typescriptClassHeritage skipwhite skipnl + +" we need add arrowFunc to class block for high order arrow func +" see test case +syntax region typescriptClassBlock matchgroup=typescriptBraces start=/{/ end=/}/ + \ contains=@typescriptPropertyMemberDeclaration,typescriptAbstract,@typescriptComments,typescriptBlock,typescriptAssign,typescriptDecorator,typescriptAsyncFuncKeyword,typescriptArrowFunc + \ contained fold + +syntax keyword typescriptInterfaceKeyword interface nextgroup=typescriptInterfaceName skipwhite +syntax match typescriptInterfaceName contained /\k\+/ + \ nextgroup=typescriptObjectType,typescriptInterfaceExtends,typescriptInterfaceTypeParameter + \ skipwhite skipnl +syntax region typescriptInterfaceTypeParameter + \ start=// + \ contains=@typescriptTypeParameterCluster + \ nextgroup=typescriptObjectType,typescriptInterfaceExtends + \ contained + \ skipwhite skipnl + +syntax keyword typescriptInterfaceExtends contained extends nextgroup=typescriptInterfaceHeritage skipwhite skipnl + +syntax match typescriptInterfaceHeritage contained /\v(\k|\.)+/ + \ nextgroup=typescriptObjectType,typescriptInterfaceComma,typescriptInterfaceTypeArguments + \ skipwhite + +syntax region typescriptInterfaceTypeArguments matchgroup=typescriptTypeBrackets + \ start=// skip=/\s*,\s*/ + \ contains=@typescriptType + \ nextgroup=typescriptObjectType,typescriptInterfaceComma + \ contained skipwhite + +syntax match typescriptInterfaceComma /,/ contained nextgroup=typescriptInterfaceHeritage skipwhite skipnl + +"Block VariableStatement EmptyStatement ExpressionStatement IfStatement IterationStatement ContinueStatement BreakStatement ReturnStatement WithStatement LabelledStatement SwitchStatement ThrowStatement TryStatement DebuggerStatement +syntax cluster typescriptStatement + \ contains=typescriptBlock,typescriptVariable, + \ @typescriptTopExpression,typescriptAssign, + \ typescriptConditional,typescriptRepeat,typescriptBranch, + \ typescriptLabel,typescriptStatementKeyword, + \ typescriptFuncKeyword, + \ typescriptTry,typescriptExceptions,typescriptDebugger, + \ typescriptExport,typescriptInterfaceKeyword,typescriptEnum, + \ typescriptModule,typescriptAliasKeyword,typescriptImport + +syntax cluster typescriptPrimitive contains=typescriptString,typescriptTemplate,typescriptRegexpString,typescriptNumber,typescriptBoolean,typescriptNull,typescriptArray + +syntax cluster typescriptEventTypes contains=typescriptEventString,typescriptTemplate,typescriptNumber,typescriptBoolean,typescriptNull + +" top level expression: no arrow func +" also no func keyword. funcKeyword is contained in statement +" funcKeyword allows overloading (func without body) +" funcImpl requires body +syntax cluster typescriptTopExpression + \ contains=@typescriptPrimitive, + \ typescriptIdentifier,typescriptIdentifierName, + \ typescriptOperator,typescriptUnaryOp, + \ typescriptParenExp,typescriptRegexpString, + \ typescriptGlobal,typescriptAsyncFuncKeyword, + \ typescriptClassKeyword,typescriptTypeCast + +" no object literal, used in type cast and arrow func +" TODO: change func keyword to funcImpl +syntax cluster typescriptExpression + \ contains=@typescriptTopExpression, + \ typescriptArrowFuncDef, + \ typescriptFuncImpl + +syntax cluster typescriptValue + \ contains=@typescriptExpression,typescriptObjectLiteral + +syntax cluster typescriptEventExpression contains=typescriptArrowFuncDef,typescriptParenExp,@typescriptValue,typescriptRegexpString,@typescriptEventTypes,typescriptOperator,typescriptGlobal,jsxRegion + +syntax keyword typescriptAsyncFuncKeyword async + \ nextgroup=typescriptFuncKeyword,typescriptArrowFuncDef + \ skipwhite + +syntax keyword typescriptAsyncFuncKeyword await + \ nextgroup=@typescriptValue + \ skipwhite + +syntax keyword typescriptFuncKeyword function + \ nextgroup=typescriptAsyncFunc,typescriptFuncName,@typescriptCallSignature + \ skipwhite skipempty + +syntax match typescriptAsyncFunc contained /*/ + \ nextgroup=typescriptFuncName,@typescriptCallSignature + \ skipwhite skipempty + +syntax match typescriptFuncName contained /\K\k*/ + \ nextgroup=@typescriptCallSignature + \ skipwhite + +" destructuring ({ a: ee }) => +syntax match typescriptArrowFuncDef contained /(\(\s*\({\_[^}]*}\|\k\+\)\(:\_[^)]\)\?,\?\)\+)\s*=>/ + \ contains=typescriptArrowFuncArg,typescriptArrowFunc + \ nextgroup=@typescriptExpression,typescriptBlock + \ skipwhite skipempty + +" matches `(a) =>` or `([a]) =>` or +" `( +" a) =>` +syntax match typescriptArrowFuncDef contained /(\(\_s*[a-zA-Z\$_\[.]\_[^)]*\)*)\s*=>/ + \ contains=typescriptArrowFuncArg,typescriptArrowFunc + \ nextgroup=@typescriptExpression,typescriptBlock + \ skipwhite skipempty + +syntax match typescriptArrowFuncDef contained /\K\k*\s*=>/ + \ contains=typescriptArrowFuncArg,typescriptArrowFunc + \ nextgroup=@typescriptExpression,typescriptBlock + \ skipwhite skipempty + +" TODO: optimize this pattern +syntax region typescriptArrowFuncDef contained start=/(\_[^(^)]*):/ end=/=>/ + \ contains=typescriptArrowFuncArg,typescriptArrowFunc,typescriptTypeAnnotation + \ nextgroup=@typescriptExpression,typescriptBlock + \ skipwhite skipempty keepend + +syntax match typescriptArrowFunc /=>/ +syntax match typescriptArrowFuncArg contained /\K\k*/ +syntax region typescriptArrowFuncArg contained start=/<\|(/ end=/\ze=>/ contains=@typescriptCallSignature + +syntax region typescriptReturnAnnotation contained start=/:/ end=/{/me=e-1 contains=@typescriptType nextgroup=typescriptBlock + + +syntax region typescriptFuncImpl contained start=/function\>/ end=/{/me=e-1 + \ contains=typescriptFuncKeyword + \ nextgroup=typescriptBlock + +syntax cluster typescriptCallImpl contains=typescriptGenericImpl,typescriptParamImpl +syntax region typescriptGenericImpl matchgroup=typescriptTypeBrackets + \ start=// skip=/\s*,\s*/ + \ contains=typescriptTypeParameter + \ nextgroup=typescriptParamImpl + \ contained skipwhite +syntax region typescriptParamImpl matchgroup=typescriptParens + \ start=/(/ end=/)/ + \ contains=typescriptDecorator,@typescriptParameterList,@typescriptComments + \ nextgroup=typescriptReturnAnnotation,typescriptBlock + \ contained skipwhite skipnl + +syntax match typescriptDecorator /@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>/ + \ nextgroup=typescriptFuncCallArg,typescriptTypeArguments + \ contains=@_semantic,typescriptDotNotation + +" Define the default highlighting. +hi def link typescriptReserved Error + +hi def link typescriptEndColons Exception +hi def link typescriptSymbols Normal +hi def link typescriptBraces Function +hi def link typescriptParens Normal +hi def link typescriptComment Comment +hi def link typescriptLineComment Comment +hi def link typescriptDocComment Comment +hi def link typescriptCommentTodo Todo +hi def link typescriptMagicComment SpecialComment +hi def link typescriptRef Include +hi def link typescriptDocNotation SpecialComment +hi def link typescriptDocTags SpecialComment +hi def link typescriptDocNGParam typescriptDocParam +hi def link typescriptDocParam Function +hi def link typescriptDocNumParam Function +hi def link typescriptDocEventRef Function +hi def link typescriptDocNamedParamType Type +hi def link typescriptDocParamName Type +hi def link typescriptDocParamType Type +hi def link typescriptString String +hi def link typescriptSpecial Special +hi def link typescriptStringLiteralType String +hi def link typescriptTemplateLiteralType String +hi def link typescriptStringMember String +hi def link typescriptTemplate String +hi def link typescriptEventString String +hi def link typescriptDestructureString String +hi def link typescriptASCII Special +hi def link typescriptTemplateSB Label +hi def link typescriptRegexpString String +hi def link typescriptGlobal Constant +hi def link typescriptTestGlobal Function +hi def link typescriptPrototype Type +hi def link typescriptConditional Conditional +hi def link typescriptConditionalElse Conditional +hi def link typescriptCase Conditional +hi def link typescriptDefault typescriptCase +hi def link typescriptBranch Conditional +hi def link typescriptIdentifier Structure +hi def link typescriptVariable Identifier +hi def link typescriptDestructureVariable PreProc +hi def link typescriptEnumKeyword Identifier +hi def link typescriptRepeat Repeat +hi def link typescriptForOperator Repeat +hi def link typescriptStatementKeyword Statement +hi def link typescriptMessage Keyword +hi def link typescriptOperator Identifier +hi def link typescriptKeywordOp Identifier +hi def link typescriptCastKeyword Special +hi def link typescriptType Type +hi def link typescriptNull Boolean +hi def link typescriptNumber Number +hi def link typescriptBoolean Boolean +hi def link typescriptObjectLabel typescriptLabel +hi def link typescriptDestructureLabel Function +hi def link typescriptLabel Label +hi def link typescriptTupleLable Label +hi def link typescriptStringProperty String +hi def link typescriptImport Special +hi def link typescriptImportType Special +hi def link typescriptAmbientDeclaration Special +hi def link typescriptExport Special +hi def link typescriptExportType Special +hi def link typescriptModule Special +hi def link typescriptTry Special +hi def link typescriptExceptions Special + +hi def link typescriptMember Function +hi def link typescriptMethodAccessor Operator + +hi def link typescriptAsyncFuncKeyword Keyword +hi def link typescriptObjectAsyncKeyword Keyword +hi def link typescriptAsyncFor Keyword +hi def link typescriptFuncKeyword Keyword +hi def link typescriptAsyncFunc Keyword +hi def link typescriptArrowFunc Type +hi def link typescriptFuncName Function +hi def link typescriptFuncArg PreProc +hi def link typescriptArrowFuncArg PreProc +hi def link typescriptFuncComma Operator + +hi def link typescriptClassKeyword Keyword +hi def link typescriptClassExtends Keyword +" hi def link typescriptClassName Function +hi def link typescriptAbstract Special +" hi def link typescriptClassHeritage Function +" hi def link typescriptInterfaceHeritage Function +hi def link typescriptClassStatic StorageClass +hi def link typescriptReadonlyModifier Keyword +hi def link typescriptInterfaceKeyword Keyword +hi def link typescriptInterfaceExtends Keyword +hi def link typescriptInterfaceName Function + +hi def link shellbang Comment + +hi def link typescriptTypeParameter Identifier +hi def link typescriptConstraint Keyword +hi def link typescriptPredefinedType Type +hi def link typescriptReadonlyArrayKeyword Keyword +hi def link typescriptUnion Operator +hi def link typescriptFuncTypeArrow Function +hi def link typescriptConstructorType Function +hi def link typescriptTypeQuery Keyword +hi def link typescriptAccessibilityModifier Keyword +hi def link typescriptOptionalMark PreProc +hi def link typescriptFuncType Special +hi def link typescriptMappedIn Special +hi def link typescriptCall PreProc +hi def link typescriptParamImpl PreProc +hi def link typescriptConstructSignature Identifier +hi def link typescriptAliasDeclaration Identifier +hi def link typescriptAliasKeyword Keyword +hi def link typescriptUserDefinedType Keyword +hi def link typescriptTypeReference Identifier +hi def link typescriptConstructor Keyword +hi def link typescriptDecorator Special +hi def link typescriptAssertType Keyword + +hi link typeScript NONE + +if exists('s:cpo_save') + let &cpo = s:cpo_save + unlet s:cpo_save +endif diff --git a/runtime/syntax/sicad.vim b/runtime/syntax/sicad.vim new file mode 100644 index 0000000..20eb14c --- /dev/null +++ b/runtime/syntax/sicad.vim @@ -0,0 +1,390 @@ +" Vim syntax file +" Language: SiCAD (procedure language) +" Maintainer: Zsolt Branyiczky +" Last Change: 2003 May 11 +" URL: http://lmark.mgx.hu:81/download/vim/sicad.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" use SQL highlighting after 'sql' command +syn include @SQL syntax/sql.vim +unlet b:current_syntax + +" spaces are used in (auto)indents since sicad hates tabulator characters +setlocal expandtab + +" ignore case +syn case ignore + +" most important commands - not listed by ausku +syn keyword sicadStatement define +syn keyword sicadStatement dialog +syn keyword sicadStatement do +syn keyword sicadStatement dop contained +syn keyword sicadStatement end +syn keyword sicadStatement enddo +syn keyword sicadStatement endp +syn keyword sicadStatement erroff +syn keyword sicadStatement erron +syn keyword sicadStatement exitp +syn keyword sicadGoto goto contained +syn keyword sicadStatement hh +syn keyword sicadStatement if +syn keyword sicadStatement in +syn keyword sicadStatement msgsup +syn keyword sicadStatement out +syn keyword sicadStatement padd +syn keyword sicadStatement parbeg +syn keyword sicadStatement parend +syn keyword sicadStatement pdoc +syn keyword sicadStatement pprot +syn keyword sicadStatement procd +syn keyword sicadStatement procn +syn keyword sicadStatement psav +syn keyword sicadStatement psel +syn keyword sicadStatement psymb +syn keyword sicadStatement ptrace +syn keyword sicadStatement ptstat +syn keyword sicadStatement set +syn keyword sicadStatement sql contained +syn keyword sicadStatement step +syn keyword sicadStatement sys +syn keyword sicadStatement ww + +" functions +syn match sicadStatement "\"me=s+1 +syn match sicadStatement "\"me=s+1 + +" logical operators +syn match sicadOperator "\.and\." +syn match sicadOperator "\.ne\." +syn match sicadOperator "\.not\." +syn match sicadOperator "\.eq\." +syn match sicadOperator "\.ge\." +syn match sicadOperator "\.gt\." +syn match sicadOperator "\.le\." +syn match sicadOperator "\.lt\." +syn match sicadOperator "\.or\." +syn match sicadOperator "\.eqv\." +syn match sicadOperator "\.neqv\." + +" variable name +syn match sicadIdentifier "%g\=[irpt][0-9]\{1,2}\>" +syn match sicadIdentifier "%g\=l[0-9]\>" +syn match sicadIdentifier "%g\=[irptl]("me=e-1 +syn match sicadIdentifier "%error\>" +syn match sicadIdentifier "%nsel\>" +syn match sicadIdentifier "%nvar\>" +syn match sicadIdentifier "%scl\>" +syn match sicadIdentifier "%wd\>" +syn match sicadIdentifier "\$[irt][0-9]\{1,2}\>" contained + +" label +syn match sicadLabel1 "^ *\.[a-z][a-z0-9]\{0,7} \+[^ ]"me=e-1 +syn match sicadLabel1 "^ *\.[a-z][a-z0-9]\{0,7}\*"me=e-1 +syn match sicadLabel2 "\" contains=sicadGoto +syn match sicadLabel2 "\" contains=sicadGoto + +" boolean +syn match sicadBoolean "\.[ft]\." +" integer without sign +syn match sicadNumber "\<[0-9]\+\>" +" floating point number, with dot, optional exponent +syn match sicadFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\>" +" floating point number, starting with a dot, optional exponent +syn match sicadFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\>" +" floating point number, without dot, with exponent +syn match sicadFloat "\<[0-9]\+e[-+]\=[0-9]\+\>" + +" without this extraString definition a ' ; ' could stop the comment +syn region sicadString_ transparent start=+'+ end=+'+ oneline contained +" string +syn region sicadString start=+'+ end=+'+ oneline + +" comments - nasty ones in sicad + +" - ' * blabla' or ' * blabla;' +syn region sicadComment start="^ *\*" skip='\\ *$' end=";"me=e-1 end="$" contains=sicadString_ +" - ' .LABEL03 * blabla' or ' .LABEL03 * blabla;' +syn region sicadComment start="^ *\.[a-z][a-z0-9]\{0,7} *\*" skip='\\ *$' end=";"me=e-1 end="$" contains=sicadLabel1,sicadString_ +" - '; * blabla' or '; * blabla;' +syn region sicadComment start="; *\*"ms=s+1 skip='\\ *$' end=";"me=e-1 end="$" contains=sicadString_ +" - comments between docbeg and docend +syn region sicadComment matchgroup=sicadStatement start="\" end="\" + +" catch \ at the end of line +syn match sicadLineCont "\\ *$" + +" parameters in dop block - for the time being it is not used +"syn match sicadParameter " [a-z][a-z0-9]*[=:]"me=e-1 contained +" dop block - for the time being it is not used +syn region sicadDopBlock transparent matchgroup=sicadStatement start='\' skip='\\ *$' end=';'me=e-1 end='$' contains=ALL + +" sql block - new highlighting mode is used (see syn include) +syn region sicadSqlBlock transparent matchgroup=sicadStatement start='\' skip='\\ *$' end=';'me=e-1 end='$' contains=@SQL,sicadIdentifier,sicadLineCont + +" synchronizing +syn sync clear " clear sync used in sql.vim +syn sync match sicadSyncComment groupthere NONE "\" +syn sync match sicadSyncComment grouphere sicadComment "\" +" next line must be examined too +syn sync linecont "\\ *$" + +" catch error caused by tabulator key +syn match sicadError "\t" +" catch errors caused by wrong parenthesis +"syn region sicadParen transparent start='(' end=')' contains=ALLBUT,sicadParenError +syn region sicadParen transparent start='(' skip='\\ *$' end=')' end='$' contains=ALLBUT,sicadParenError +syn match sicadParenError ')' +"syn region sicadApostrophe transparent start=+'+ end=+'+ contains=ALLBUT,sicadApostropheError +"syn match sicadApostropheError +'+ +" not closed apostrophe +"syn region sicadError start=+'+ end=+$+ contains=ALLBUT,sicadApostropheError +"syn match sicadApostropheError +'[^']*$+me=s+1 contained + +" SICAD keywords +syn keyword sicadStatement abst add addsim adrin aib +syn keyword sicadStatement aibzsn aidump aifgeo aisbrk alknam +syn keyword sicadStatement alknr alksav alksel alktrc alopen +syn keyword sicadStatement ansbo aractiv ararea arareao ararsfs +syn keyword sicadStatement arbuffer archeck arcomv arcont arconv +syn keyword sicadStatement arcopy arcopyo arcorr arcreate arerror +syn keyword sicadStatement areval arflfm arflop arfrast argbkey +syn keyword sicadStatement argenf argraph argrapho arinters arkompfl +syn keyword sicadStatement arlasso arlcopy arlgraph arline arlining +syn keyword sicadStatement arlisly armakea armemo arnext aroverl +syn keyword sicadStatement arovers arparkmd arpars arrefp arselect +syn keyword sicadStatement arset arstruct arunify arupdate arvector +syn keyword sicadStatement arveinfl arvflfl arvoroni ausku basis +syn keyword sicadStatement basisaus basisdar basisnr bebos befl +syn keyword sicadStatement befla befli befls beo beorta +syn keyword sicadStatement beortn bep bepan bepap bepola +syn keyword sicadStatement bepoln bepsn bepsp ber berili +syn keyword sicadStatement berk bewz bkl bli bma +syn keyword sicadStatement bmakt bmakts bmbm bmerk bmerw +syn keyword sicadStatement bmerws bminit bmk bmorth bmos +syn keyword sicadStatement bmoss bmpar bmsl bmsum bmsums +syn keyword sicadStatement bmver bmvero bmw bo bta +syn keyword sicadStatement buffer bvl bw bza bzap +syn keyword sicadStatement bzd bzgera bzorth cat catel +syn keyword sicadStatement cdbdiff ce cgmparam close closesim +syn keyword sicadStatement comgener comp comp conclose conclose coninfo +syn keyword sicadStatement conopen conread contour conwrite cop +syn keyword sicadStatement copar coparp coparp2 copel cr +syn keyword sicadStatement cs cstat cursor d da +syn keyword sicadStatement dal dasp dasps dataout dcol +syn keyword sicadStatement dd defsr del delel deskrdef +syn keyword sicadStatement df dfn dfns dfpos dfr +syn keyword sicadStatement dgd dgm dgp dgr dh +syn keyword sicadStatement diag diaus dir disbsd dkl +syn keyword sicadStatement dktx dkur dlgfix dlgfre dma +syn keyword sicadStatement dprio dr druse dsel dskinfo +syn keyword sicadStatement dsr dv dve eba ebd +syn keyword sicadStatement ebdmod ebs edbsdbin edbssnin edbsvtin +syn keyword sicadStatement edt egaus egdef egdefs eglist +syn keyword sicadStatement egloe egloenp egloes egxx eib +syn keyword sicadStatement ekur ekuradd elel elpos epg +syn keyword sicadStatement esau esauadd esek eta etap +syn keyword sicadStatement etav feparam ficonv filse fl +syn keyword sicadStatement fli flin flini flinit flins +syn keyword sicadStatement flkor fln flnli flop flout +syn keyword sicadStatement flowert flparam flraster flsy flsyd +syn keyword sicadStatement flsym flsyms flsymt fmtatt fmtdia +syn keyword sicadStatement fmtlib fpg gbadddb gbaim gbanrs +syn keyword sicadStatement gbatw gbau gbaudit gbclosp gbcredic +syn keyword sicadStatement gbcreem gbcreld gbcresdb gbcretd gbde +syn keyword sicadStatement gbdeldb gbdeldic gbdelem gbdelld gbdelref +syn keyword sicadStatement gbdeltd gbdisdb gbdisem gbdisld gbdistd +syn keyword sicadStatement gbebn gbemau gbepsv gbgetdet gbgetes +syn keyword sicadStatement gbgetmas gbgqel gbgqelr gbgqsa gbgrant +syn keyword sicadStatement gbimpdic gbler gblerb gblerf gbles +syn keyword sicadStatement gblocdic gbmgmg gbmntdb gbmoddb gbnam +syn keyword sicadStatement gbneu gbopenp gbpoly gbpos gbpruef +syn keyword sicadStatement gbpruefg gbps gbqgel gbqgsa gbrefdic +syn keyword sicadStatement gbreftab gbreldic gbresem gbrevoke gbsav +syn keyword sicadStatement gbsbef gbsddk gbsicu gbsrt gbss +syn keyword sicadStatement gbstat gbsysp gbszau gbubp gbueb +syn keyword sicadStatement gbunmdb gbuseem gbw gbweg gbwieh +syn keyword sicadStatement gbzt gelp gera getvar hgw +syn keyword sicadStatement hpg hr0 hra hrar icclchan +syn keyword sicadStatement iccrecon icdescon icfree icgetcon icgtresp +syn keyword sicadStatement icopchan icputcon icreacon icreqd icreqnw +syn keyword sicadStatement icreqw icrespd icresrve icwricon imsget +syn keyword sicadStatement imsgqel imsmget imsplot imsprint inchk +syn keyword sicadStatement inf infd inst kbml kbmls +syn keyword sicadStatement kbmm kbmms kbmt kbmtdps kbmts +syn keyword sicadStatement khboe khbol khdob khe khetap +syn keyword sicadStatement khfrw khktk khlang khld khmfrp +syn keyword sicadStatement khmks khms khpd khpfeil khpl +syn keyword sicadStatement khprofil khrand khsa khsabs khsaph +syn keyword sicadStatement khsd khsdl khse khskbz khsna +syn keyword sicadStatement khsnum khsob khspos khsvph khtrn +syn keyword sicadStatement khver khzpe khzpl kib kldat +syn keyword sicadStatement klleg klsch klsym klvert kmpg +syn keyword sicadStatement kmtlage kmtp kmtps kodef kodefp +syn keyword sicadStatement kodefs kok kokp kolae kom +syn keyword sicadStatement kontly kopar koparp kopg kosy +syn keyword sicadStatement kp kr krsek krtclose krtopen +syn keyword sicadStatement ktk lad lae laesel language +syn keyword sicadStatement lasso lbdes lcs ldesk ldesks +syn keyword sicadStatement le leak leattdes leba lebas +syn keyword sicadStatement lebaznp lebd lebm lebv lebvaus +syn keyword sicadStatement lebvlist lede ledel ledepo ledepol +syn keyword sicadStatement ledepos leder ledist ledm lee +syn keyword sicadStatement leeins lees lege lekr lekrend +syn keyword sicadStatement lekwa lekwas lel lelh lell +syn keyword sicadStatement lelp lem lena lend lenm +syn keyword sicadStatement lep lepe lepee lepko lepl +syn keyword sicadStatement lepmko lepmkop lepos leposm leqs +syn keyword sicadStatement leqsl leqssp leqsv leqsvov les +syn keyword sicadStatement lesch lesr less lestd let +syn keyword sicadStatement letaum letl lev levm levtm +syn keyword sicadStatement levtp levtr lew lewm lexx +syn keyword sicadStatement lfs li lining lldes lmode +syn keyword sicadStatement loedk loepkt lop lose loses +syn keyword sicadStatement lp lppg lppruef lr ls +syn keyword sicadStatement lsop lsta lstat ly lyaus +syn keyword sicadStatement lz lza lzae lzbz lze +syn keyword sicadStatement lznr lzo lzpos ma ma0 +syn keyword sicadStatement ma1 mad map mapoly mcarp +syn keyword sicadStatement mccfr mccgr mcclr mccrf mcdf +syn keyword sicadStatement mcdma mcdr mcdrp mcdve mcebd +syn keyword sicadStatement mcgse mcinfo mcldrp md me +syn keyword sicadStatement mefd mefds minmax mipg ml +syn keyword sicadStatement mmcmdme mmdbf mmdellb mmdir mmdome +syn keyword sicadStatement mmfsb mminfolb mmlapp mmlbf mmlistlb +syn keyword sicadStatement mmloadcm mmmsg mmreadlb mmsetlb mmshowcm +syn keyword sicadStatement mmstatme mnp mpo mr mra +syn keyword sicadStatement ms msav msgout msgsnd msp +syn keyword sicadStatement mspf mtd nasel ncomp new +syn keyword sicadStatement nlist nlistlt nlistly nlistnp nlistpo +syn keyword sicadStatement np npa npdes npe npem +syn keyword sicadStatement npinfa npruef npsat npss npssa +syn keyword sicadStatement ntz oa oan odel odf +syn keyword sicadStatement odfx oj oja ojaddsk ojaed +syn keyword sicadStatement ojaeds ojaef ojaefs ojaen ojak +syn keyword sicadStatement ojaks ojakt ojakz ojalm ojatkis +syn keyword sicadStatement ojatt ojatw ojbsel ojcasel ojckon +syn keyword sicadStatement ojde ojdtl ojeb ojebd ojel +syn keyword sicadStatement ojelpas ojesb ojesbd ojex ojezge +syn keyword sicadStatement ojko ojlb ojloe ojlsb ojmerk +syn keyword sicadStatement ojmos ojnam ojpda ojpoly ojprae +syn keyword sicadStatement ojs ojsak ojsort ojstrukt ojsub +syn keyword sicadStatement ojtdef ojvek ojx old oldd +syn keyword sicadStatement op opa opa1 open opensim +syn keyword sicadStatement opnbsd orth osanz ot otp +syn keyword sicadStatement otrefp param paranf pas passw +syn keyword sicadStatement pcatchf pda pdadd pg pg0 +syn keyword sicadStatement pgauf pgaufsel pgb pgko pgm +syn keyword sicadStatement pgr pgvs pily pkpg plot +syn keyword sicadStatement plotf plotfr pmap pmdata pmdi +syn keyword sicadStatement pmdp pmeb pmep pminfo pmlb +syn keyword sicadStatement pmli pmlp pmmod pnrver poa +syn keyword sicadStatement pos posa posaus post printfr +syn keyword sicadStatement protect prs prssy prsym ps +syn keyword sicadStatement psadd psclose psopen psparam psprw +syn keyword sicadStatement psres psstat psw pswr qualif +syn keyword sicadStatement rahmen raster rasterd rbbackup rbchang2 +syn keyword sicadStatement rbchange rbcmd rbcoldst rbcolor rbcopy +syn keyword sicadStatement rbcut rbcut2 rbdbcl rbdbload rbdbop +syn keyword sicadStatement rbdbwin rbdefs rbedit rbfdel rbfill +syn keyword sicadStatement rbfill2 rbfload rbfload2 rbfnew rbfnew2 +syn keyword sicadStatement rbfpar rbfree rbg rbgetcol rbgetdst +syn keyword sicadStatement rbinfo rbpaste rbpixel rbrstore rbsnap +syn keyword sicadStatement rbsta rbtile rbtrpix rbvtor rcol +syn keyword sicadStatement rd rdchange re reb rebmod +syn keyword sicadStatement refunc ren renel rk rkpos +syn keyword sicadStatement rohr rohrpos rpr rr rr0 +syn keyword sicadStatement rra rrar rs samtosdb sav +syn keyword sicadStatement savd savesim savx scol scopy +syn keyword sicadStatement scopye sdbtosam sddk sdwr se +syn keyword sicadStatement selaus selpos seman semi sesch +syn keyword sicadStatement setscl setvar sfclntpf sfconn sffetchf +syn keyword sicadStatement sffpropi sfftypi sfqugeoc sfquwhcl sfself +syn keyword sicadStatement sfstat sftest sge sid sie +syn keyword sicadStatement sig sigp skk skks sn +syn keyword sicadStatement sn21 snpa snpar snparp snparps +syn keyword sicadStatement snpars snpas snpd snpi snpkor +syn keyword sicadStatement snpl snpm sob sob0 sobloe +syn keyword sicadStatement sobs sof sop split spr +syn keyword sicadStatement sqdadd sqdlad sqdold sqdsav +syn keyword sicadStatement sr sres srt sset stat +syn keyword sicadStatement stdtxt string strukt strupru suinfl +syn keyword sicadStatement suinflk suinfls supo supo1 sva +syn keyword sicadStatement svr sy sya syly sysout +syn keyword sicadStatement syu syux taa tabeg tabl +syn keyword sicadStatement tabm tam tanr tapg tapos +syn keyword sicadStatement tarkd tas tase tb tbadd +syn keyword sicadStatement tbd tbext tbget tbint tbout +syn keyword sicadStatement tbput tbsat tbsel tbstr tcaux +syn keyword sicadStatement tccable tcchkrep tccomm tccond tcdbg +syn keyword sicadStatement tcgbnr tcgrpos tcinit tclconv tcmodel +syn keyword sicadStatement tcnwe tcpairs tcpath tcrect tcrmdli +syn keyword sicadStatement tcscheme tcschmap tcse tcselc tcstar +syn keyword sicadStatement tcstrman tcsubnet tcsymbol tctable tcthrcab +syn keyword sicadStatement tctrans tctst tdb tdbdel tdbget +syn keyword sicadStatement tdblist tdbput tgmod titel tmoff +syn keyword sicadStatement tmon tp tpa tps tpta +syn keyword sicadStatement tra trans transkdo transopt transpro +syn keyword sicadStatement triangle trm trpg trrkd trs +syn keyword sicadStatement ts tsa tx txa txchk +syn keyword sicadStatement txcng txju txl txp txpv +syn keyword sicadStatement txtcmp txv txz uckon uiinfo +syn keyword sicadStatement uistatus umdk umdk1 umdka umge +syn keyword sicadStatement umges umr verbo verflli verif +syn keyword sicadStatement verly versinfo vfg vpactive vpcenter +syn keyword sicadStatement vpcreate vpdelete vpinfo vpmodify vpscroll +syn keyword sicadStatement vpsta wabsym wzmerk zdrhf zdrhfn +syn keyword sicadStatement zdrhfw zdrhfwn zefp zfl zflaus +syn keyword sicadStatement zka zlel zlels zortf zortfn +syn keyword sicadStatement zortfw zortfwn zortp zortpn zparb +syn keyword sicadStatement zparbn zparf zparfn zparfw zparfwn +syn keyword sicadStatement zparp zparpn zwinkp zwinkpn + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link sicadLabel PreProc +hi def link sicadLabel1 sicadLabel +hi def link sicadLabel2 sicadLabel +hi def link sicadConditional Conditional +hi def link sicadBoolean Boolean +hi def link sicadNumber Number +hi def link sicadFloat Float +hi def link sicadOperator Operator +hi def link sicadStatement Statement +hi def link sicadParameter sicadStatement +hi def link sicadGoto sicadStatement +hi def link sicadLineCont sicadStatement +hi def link sicadString String +hi def link sicadComment Comment +hi def link sicadSpecial Special +hi def link sicadIdentifier Type +" hi def link sicadIdentifier Identifier +hi def link sicadError Error +hi def link sicadParenError sicadError +hi def link sicadApostropheError sicadError +hi def link sicadStringError sicadError +hi def link sicadCommentError sicadError +" hi def link sqlStatement Special " modified highlight group in sql.vim + + +let b:current_syntax = "sicad" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim new file mode 100644 index 0000000..35b4dfb --- /dev/null +++ b/runtime/syntax/sieve.vim @@ -0,0 +1,55 @@ +" Vim syntax file +" Language: Sieve filtering language input file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2007-10-25 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword sieveTodo contained TODO FIXME XXX NOTE + +syn region sieveComment start='/\*' end='\*/' contains=sieveTodo,@Spell +syn region sieveComment display oneline start='#' end='$' + \ contains=sieveTodo,@Spell + +syn case ignore + +syn match sieveTag display ':\h\w*' + +syn match sieveNumber display '\<\d\+[KMG]\=\>' + +syn match sieveSpecial display '\\["\\]' + +syn region sieveString start=+"+ skip=+\\\\\|\\"+ end=+"+ + \ contains=sieveSpecial +syn region sieveString start='text:' end='\n.\n' + +syn keyword sieveConditional if elsif else +syn keyword sieveTest address allof anyof envelope exists false header + \ not size true +syn keyword sievePreProc require stop +syn keyword sieveAction reject fileinto redirect keep discard +syn keyword sieveKeyword vacation + +syn case match + +hi def link sieveTodo Todo +hi def link sieveComment Comment +hi def link sieveTag Type +hi def link sieveNumber Number +hi def link sieveSpecial Special +hi def link sieveString String +hi def link sieveConditional Conditional +hi def link sieveTest Keyword +hi def link sievePreProc PreProc +hi def link sieveAction Function +hi def link sieveKeyword Keyword + +let b:current_syntax = "sieve" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/sil.vim b/runtime/syntax/sil.vim new file mode 100644 index 0000000..43158da --- /dev/null +++ b/runtime/syntax/sil.vim @@ -0,0 +1,179 @@ +" This source file is part of the Swift.org open source project +" +" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors +" Licensed under Apache License v2.0 with Runtime Library Exception +" +" See https://swift.org/LICENSE.txt for license information +" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +" +" Vim syntax file +" Language: sil +" +" Vim maintainer: Emir SARI + +if exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +syn keyword silStage skipwhite nextgroup=silStages + \ sil_stage +syn keyword silStages + \ canonical + \ raw + +syn match silIdentifier skipwhite + \ /@\<[A-Za-z_0-9]\+\>/ + +syn match silConvention skipwhite + \ /$\?@convention/ +syn region silConvention contained contains=silConventions + \ start="@convention(" end=")" +syn keyword silConventions + \ block + \ c + \ method + \ objc_method + \ sil_differentiability_witness + \ thick + \ thin + \ witness_method + +syn match silFunctionType skipwhite + \ /@\(\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\|\\)/ +syn match silMetatypeType skipwhite + \ /@\(\\|\\|\\)/ + +" TODO: handle [tail_elems sil-type * sil-operand] +syn region silAttribute contains=silAttributes + \ start="\[" end="\]" +syn keyword silAttributes contained containedin=silAttribute + \ abort + \ deinit + \ delegatingself + \ derivedself + \ derivedselfonly + \ dynamic + \ exact + \ init + \ modify + \ mutating + \ objc + \ open + \ read + \ rootself + \ stack + \ static + \ strict + \ unknown + \ unsafe + \ var + +syn keyword swiftImport import skipwhite nextgroup=swiftImportModule +syn match swiftImportModule /\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent +syn match swiftImportComponent /\.\<[A-Za-z_][A-Za-z_0-9]*\>/ contained nextgroup=swiftImportComponent + +syn region swiftComment start="/\*" end="\*/" contains=swiftComment,swiftTodo +syn region swiftLineComment start="//" end="$" contains=swiftTodo + +syn match swiftLineComment /^#!.*/ +syn match swiftTypeName /\<[A-Z][a-zA-Z_0-9]*\>/ +syn match swiftDecimal /\<[-]\?[0-9]\+\>/ +syn match swiftDecimal /\<[-+]\?[0-9]\+\>/ + +syn match swiftTypeName /\$\*\<\?[A-Z][a-zA-Z0-9_]*\>/ +syn match swiftVarName /%\<[A-z[a-z_0-9]\+\(#[0-9]\+\)\?\>/ + +syn keyword swiftKeyword break case continue default do else for if in static switch repeat return where while skipwhite + +syn keyword swiftKeyword sil internal thunk skipwhite +syn keyword swiftKeyword public hidden private shared public_external hidden_external skipwhite +syn keyword swiftKeyword getter setter allocator initializer enumelt destroyer globalaccessor objc skipwhite +syn keyword swiftKeyword alloc_global alloc_stack alloc_ref alloc_ref_dynamic alloc_box alloc_existential_box alloc_value_buffer dealloc_stack dealloc_box dealloc_existential_box dealloc_ref dealloc_partial_ref dealloc_value_buffer skipwhite +syn keyword swiftKeyword debug_value debug_value_addr skipwhite +syn keyword swiftKeyword load load_unowned store assign mark_uninitialized mark_function_escape copy_addr destroy_addr index_addr index_raw_pointer bind_memory to skipwhite +syn keyword swiftKeyword strong_retain strong_release strong_retain_unowned ref_to_unowned unowned_to_ref unowned_retain unowned_release load_weak store_unowned store_weak fix_lifetime autorelease_value set_deallocating is_unique is_escaping_closure skipwhite +syn keyword swiftKeyword function_ref integer_literal float_literal string_literal global_addr skipwhite +syn keyword swiftKeyword class_method super_method witness_method objc_method objc_super_method skipwhite +syn keyword swiftKeyword partial_apply builtin skipwhite +syn keyword swiftApplyKeyword apply try_apply skipwhite +syn keyword swiftKeyword metatype value_metatype existential_metatype skipwhite +syn keyword swiftKeyword retain_value release_value retain_value_addr release_value_addr tuple tuple_extract tuple_element_addr struct struct_extract struct_element_addr ref_element_addr skipwhite +syn keyword swiftKeyword init_enum_data_addr unchecked_enum_data unchecked_take_enum_data_addr inject_enum_addr skipwhite +syn keyword swiftKeyword init_existential_addr init_existential_value init_existential_metatype deinit_existential_addr deinit_existential_value open_existential_addr open_existential_box open_existential_box_value open_existential_metatype init_existential_ref open_existential_ref open_existential_value skipwhite +syn keyword swiftKeyword upcast address_to_pointer pointer_to_address pointer_to_thin_function unchecked_addr_cast unchecked_ref_cast unchecked_ref_cast_addr ref_to_raw_pointer ref_to_bridge_object ref_to_unmanaged unmanaged_to_ref raw_pointer_to_ref skipwhite +syn keyword swiftKeyword convert_function thick_to_objc_metatype thin_function_to_pointer objc_to_thick_metatype thin_to_thick_function unchecked_ref_bit_cast unchecked_trivial_bit_cast bridge_object_to_ref bridge_object_to_word unchecked_bitwise_cast skipwhite +syn keyword swiftKeyword objc_existential_metatype_to_object objc_metatype_to_object objc_protocol skipwhite +syn keyword swiftKeyword unconditional_checked_cast unconditional_checked_cast_addr unconditional_checked_cast_value skipwhite +syn keyword swiftKeyword cond_fail skipwhite +syn keyword swiftKeyword unreachable return throw br cond_br switch_value select_enum select_enum_addr select_value switch_enum switch_enum_addr dynamic_method_br checked_cast_br checked_cast_value_br checked_cast_addr_br skipwhite +syn keyword swiftKeyword project_box project_existential_box project_value_buffer project_block_storage init_block_storage_header copy_block mark_dependence skipwhite + +syn keyword swiftTypeDefinition class extension protocol struct typealias enum skipwhite nextgroup=swiftTypeName +syn region swiftTypeAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftTypeName +syn match swiftTypeName /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ contained nextgroup=swiftTypeParameters + +syn region swiftTypeParameters start="<" end=">" skipwhite contained + +syn keyword swiftFuncDefinition func skipwhite nextgroup=swiftFuncAttributes,swiftFuncName,swiftOperator +syn region swiftFuncAttributes start="\[" end="\]" skipwhite contained nextgroup=swiftFuncName,swiftOperator +syn match swiftFuncName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained nextgroup=swiftTypeParameters +syn keyword swiftFuncKeyword subscript init destructor nextgroup=swiftTypeParameters + +syn keyword swiftVarDefinition var skipwhite nextgroup=swiftVarName +syn keyword swiftVarDefinition let skipwhite nextgroup=swiftVarName +syn match swiftVarName /\<[A-Za-z_][A-Za-z_0-9]*\>/ skipwhite contained + +syn keyword swiftDefinitionModifier static + +syn match swiftImplicitVarName /\$\<[A-Za-z_0-9]\+\>/ + +hi def link swiftImport Include +hi def link swiftImportModule Title +hi def link swiftImportComponent Identifier +hi def link swiftApplyKeyword Statement +hi def link swiftKeyword Statement +hi def link swiftTypeDefinition Define +hi def link swiftTypeName Type +hi def link swiftTypeParameters Special +hi def link swiftTypeAttributes PreProc +hi def link swiftFuncDefinition Define +hi def link swiftDefinitionModifier Define +hi def link swiftFuncName Function +hi def link swiftFuncAttributes PreProc +hi def link swiftFuncKeyword Function +hi def link swiftVarDefinition Define +hi def link swiftVarName Identifier +hi def link swiftImplicitVarName Identifier +hi def link swiftIdentifierKeyword Identifier +hi def link swiftTypeDeclaration Delimiter +hi def link swiftBoolean Boolean +hi def link swiftString String +hi def link swiftInterpolation Special +hi def link swiftComment Comment +hi def link swiftLineComment Comment +hi def link swiftDecimal Number +hi def link swiftHex Number +hi def link swiftOct Number +hi def link swiftBin Number +hi def link swiftOperator Function +hi def link swiftChar Character +hi def link swiftLabel Label +hi def link swiftNew Operator + +hi def link silStage Special +hi def link silStages Type +hi def link silConvention Special +hi def link silConventionParameter Special +hi def link silConventions Type +hi def link silIdentifier Identifier +hi def link silFunctionType Special +hi def link silMetatypeType Special +hi def link silAttribute PreProc + +let b:current_syntax = "sil" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/simula.vim b/runtime/syntax/simula.vim new file mode 100644 index 0000000..82f66d0 --- /dev/null +++ b/runtime/syntax/simula.vim @@ -0,0 +1,87 @@ +" Vim syntax file +" Language: Simula +" Maintainer: Haakon Riiser +" URL: http://folk.uio.no/hakonrk/vim/syntax/simula.vim +" Last Change: 2001 May 15 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" No case sensitivity in Simula +syn case ignore + +syn match simulaComment "^%.*$" contains=simulaTodo +syn region simulaComment start="!\|\" end=";" contains=simulaTodo + +" Text between the keyword 'end' and either a semicolon or one of the +" keywords 'end', 'else', 'when' or 'otherwise' is also a comment +syn region simulaComment start="\"lc=3 matchgroup=Statement end=";\|\<\(end\|else\|when\|otherwise\)\>" + +syn match simulaCharError "'.\{-2,}'" +syn match simulaCharacter "'.'" +syn match simulaCharacter "'!\d\{-}!'" contains=simulaSpecialChar +syn match simulaString '".\{-}"' contains=simulaSpecialChar,simulaTodo + +syn keyword simulaBoolean true false +syn keyword simulaCompound begin end +syn keyword simulaConditional else if otherwise then until when +syn keyword simulaConstant none notext +syn keyword simulaFunction procedure +syn keyword simulaOperator eq eqv ge gt imp in is le lt ne new not qua +syn keyword simulaRepeat while for +syn keyword simulaReserved activate after at before delay go goto label prior reactivate switch to +syn keyword simulaStatement do inner inspect step this +syn keyword simulaStorageClass external hidden name protected value +syn keyword simulaStructure class +syn keyword simulaType array boolean character integer long real short text virtual +syn match simulaAssigned "\<\h\w*\s*\((.*)\)\=\s*:\(=\|-\)"me=e-2 +syn match simulaOperator "[&:=<>+\-*/]" +syn match simulaOperator "\" +syn match simulaOperator "\" +syn match simulaReferenceType "\" +" Real with optional exponent +syn match simulaReal "-\=\<\d\+\(\.\d\+\)\=\(&&\=[+-]\=\d\+\)\=\>" +" Real starting with a `.', optional exponent +syn match simulaReal "-\=\.\d\+\(&&\=[+-]\=\d\+\)\=\>" + + +hi def link simulaAssigned Identifier +hi def link simulaBoolean Boolean +hi def link simulaCharacter Character +hi def link simulaCharError Error +hi def link simulaComment Comment +hi def link simulaCompound Statement +hi def link simulaConditional Conditional +hi def link simulaConstant Constant +hi def link simulaFunction Function +hi def link simulaNumber Number +hi def link simulaOperator Operator +hi def link simulaReal Float +hi def link simulaReferenceType Type +hi def link simulaRepeat Repeat +hi def link simulaReserved Error +hi def link simulaSemicolon Statement +hi def link simulaSpecial Special +hi def link simulaSpecialChar SpecialChar +hi def link simulaSpecialCharErr Error +hi def link simulaStatement Statement +hi def link simulaStorageClass StorageClass +hi def link simulaString String +hi def link simulaStructure Structure +hi def link simulaTodo Todo +hi def link simulaType Type + + +let b:current_syntax = "simula" +" vim: sts=4 sw=4 ts=8 diff --git a/runtime/syntax/sinda.vim b/runtime/syntax/sinda.vim new file mode 100644 index 0000000..a6e5b45 --- /dev/null +++ b/runtime/syntax/sinda.vim @@ -0,0 +1,129 @@ +" Vim syntax file +" Language: sinda85, sinda/fluint input file +" Maintainer: Adrian Nagle, anagle@ball.com +" Last Change: 2003 May 11 +" Filenames: *.sin +" URL: http://www.naglenet.org/vim/syntax/sinda.vim +" MAIN URL: http://www.naglenet.org/vim/ + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Ignore case +syn case ignore + + + +" +" +" Begin syntax definitions for sinda input and output files. +" + +" Force free-form fortran format +let fortran_free_source=1 + +" Load FORTRAN syntax file +runtime! syntax/fortran.vim +unlet b:current_syntax + + + +" Define keywords for SINDA +syn keyword sindaMacro BUILD BUILDF DEBON DEBOFF DEFMOD FSTART FSTOP + +syn keyword sindaOptions TITLE PPSAVE RSI RSO OUTPUT SAVE QMAP USER1 USER2 +syn keyword sindaOptions MODEL PPOUT NOLIST MLINE NODEBUG DIRECTORIES +syn keyword sindaOptions DOUBLEPR + +syn keyword sindaRoutine FORWRD FWDBCK STDSTL FASTIC + +syn keyword sindaControl ABSZRO ACCELX ACCELY ACCELZ ARLXCA ATMPCA +syn keyword sindaControl BACKUP CSGFAC DRLXCA DTIMEH DTIMEI DTIMEL +syn keyword sindaControl DTIMES DTMPCA EBALNA EBALSA EXTLIM ITEROT +syn keyword sindaControl ITERXT ITHOLD NLOOPS NLOOPT OUTPUT OPEITR +syn keyword sindaControl PATMOS SIGMA TIMEO TIMEND UID + +syn keyword sindaSubRoutine ASKERS ADARIN ADDARY ADDMOD ARINDV +syn keyword sindaSubRoutine RYINV ARYMPY ARYSUB ARYTRN BAROC +syn keyword sindaSubRoutine BELACC BNDDRV BNDGET CHENNB CHGFLD +syn keyword sindaSubRoutine CHGLMP CHGSUC CHGVOL CHKCHL CHKCHP +syn keyword sindaSubRoutine CNSTAB COMBAL COMPLQ COMPRS CONTRN +syn keyword sindaSubRoutine CPRINT CRASH CRVINT CRYTRN CSIFLX +syn keyword sindaSubRoutine CVTEMP D11CYL C11DAI D11DIM D11MCY +syn keyword sindaSubRoutine D11MDA D11MDI D11MDT D12CYL D12MCY +syn keyword sindaSubRoutine D12MDA D1D1DA D1D1IM D1D1WM D1D2DA +syn keyword sindaSubRoutine D1D2WM D1DEG1 D1DEG2 D1DG1I D1IMD1 +syn keyword sindaSubRoutine D1IMIM D1IMWM D1M1DA D1M2MD D1M2WM +syn keyword sindaSubRoutine D1MDG1 D1MDG2 D2D1WM D1DEG1 D2DEG2 +syn keyword sindaSubRoutine D2D2 + +syn keyword sindaIdentifier BIV CAL DIM DIV DPM DPV DTV GEN PER PIV PIM +syn keyword sindaIdentifier SIM SIV SPM SPV TVS TVD + + + +" Define matches for SINDA +syn match sindaFortran "^F[0-9 ]"me=e-1 +syn match sindaMotran "^M[0-9 ]"me=e-1 + +syn match sindaComment "^C.*$" +syn match sindaComment "^R.*$" +syn match sindaComment "\$.*$" + +syn match sindaHeader "^header[^,]*" + +syn match sindaIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude + +syn match sindaMacro "^PSTART" +syn match sindaMacro "^PSTOP" +syn match sindaMacro "^FAC" + +syn match sindaInteger "-\=\<[0-9]*\>" +syn match sindaFloat "-\=\<[0-9]*\.[0-9]*" +syn match sindaScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>" + +syn match sindaEndData "^END OF DATA" + +if exists("thermal_todo") + execute 'syn match sindaTodo ' . '"^'.thermal_todo.'.*$"' +else + syn match sindaTodo "^?.*$" +endif + + + +" Define the default highlighting +" Only when an item doesn't have highlighting yet + +hi def link sindaMacro Macro +hi def link sindaOptions Special +hi def link sindaRoutine Type +hi def link sindaControl Special +hi def link sindaSubRoutine Function +hi def link sindaIdentifier Identifier + +hi def link sindaFortran PreProc +hi def link sindaMotran PreProc + +hi def link sindaComment Comment +hi def link sindaHeader Typedef +hi def link sindaIncludeFile Type +hi def link sindaInteger Number +hi def link sindaFloat Float +hi def link sindaScientific Float + +hi def link sindaEndData Macro + +hi def link sindaTodo Todo + + + +let b:current_syntax = "sinda" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/sindacmp.vim b/runtime/syntax/sindacmp.vim new file mode 100644 index 0000000..88373eb --- /dev/null +++ b/runtime/syntax/sindacmp.vim @@ -0,0 +1,61 @@ +" Vim syntax file +" Language: sinda85, sinda/fluint compare file +" Maintainer: Adrian Nagle, anagle@ball.com +" Last Change: 2003 May 11 +" Filenames: *.cmp +" URL: http://www.naglenet.org/vim/syntax/sindacmp.vim +" MAIN URL: http://www.naglenet.org/vim/ + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Ignore case +syn case ignore + + + +" +" Begin syntax definitions for compare files. +" + +" Define keywords for sinda compare (sincomp) +syn keyword sindacmpUnit celsius fahrenheit + + + +" Define matches for sinda compare (sincomp) +syn match sindacmpTitle "Steady State Temperature Comparison" + +syn match sindacmpLabel "File [1-6] is" + +syn match sindacmpHeader "^ *Node\( *File \d\)* *Node Description" + +syn match sindacmpInteger "^ *-\=\<[0-9]*\>" +syn match sindacmpFloat "-\=\<[0-9]*\.[0-9]*" + + + +" Define the default highlighting +" Only when an item doesn't have highlighting yet + +hi def link sindacmpTitle Type +hi def link sindacmpUnit PreProc + +hi def link sindacmpLabel Statement + +hi def link sindacmpHeader sindaHeader + +hi def link sindacmpInteger Number +hi def link sindacmpFloat Special + + + +let b:current_syntax = "sindacmp" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/sindaout.vim b/runtime/syntax/sindaout.vim new file mode 100644 index 0000000..c362f19 --- /dev/null +++ b/runtime/syntax/sindaout.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: sinda85, sinda/fluint output file +" Maintainer: Adrian Nagle, anagle@ball.com +" Last Change: 2003 May 11 +" Filenames: *.out +" URL: http://www.naglenet.org/vim/syntax/sindaout.vim +" MAIN URL: http://www.naglenet.org/vim/ + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Ignore case +syn case match + + + +" Load SINDA syntax file +runtime! syntax/sinda.vim +unlet b:current_syntax + + + +" +" +" Begin syntax definitions for sinda output files. +" + +" Define keywords for sinda output +syn case match + +syn keyword sindaoutPos ON SI +syn keyword sindaoutNeg OFF ENG + + + +" Define matches for sinda output +syn match sindaoutFile ": \w*\.TAK"hs=s+2 + +syn match sindaoutInteger "T\=[0-9]*\>"ms=s+1 + +syn match sindaoutSectionDelim "[-<>]\{4,}" contains=sindaoutSectionTitle +syn match sindaoutSectionDelim ":\=\.\{4,}:\=" contains=sindaoutSectionTitle +syn match sindaoutSectionTitle "[-<:] \w[0-9A-Za-z_() ]\+ [->:]"hs=s+1,me=e-1 + +syn match sindaoutHeaderDelim "=\{5,}" +syn match sindaoutHeaderDelim "|\{5,}" +syn match sindaoutHeaderDelim "+\{5,}" + +syn match sindaoutLabel "Input File:" contains=sindaoutFile +syn match sindaoutLabel "Begin Solution: Routine" + +syn match sindaoutError "<<< Error >>>" + + +" Define the default highlighting +" Only when an item doesn't have highlighting yet + +hi sindaHeaderDelim ctermfg=Black ctermbg=Green guifg=Black guibg=Green + +hi def link sindaoutPos Statement +hi def link sindaoutNeg PreProc +hi def link sindaoutTitle Type +hi def link sindaoutFile sindaIncludeFile +hi def link sindaoutInteger sindaInteger + +hi def link sindaoutSectionDelim Delimiter +hi def link sindaoutSectionTitle Exception +hi def link sindaoutHeaderDelim SpecialComment +hi def link sindaoutLabel Identifier + +hi def link sindaoutError Error + + + +let b:current_syntax = "sindaout" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/sisu.vim b/runtime/syntax/sisu.vim new file mode 100644 index 0000000..264aae0 --- /dev/null +++ b/runtime/syntax/sisu.vim @@ -0,0 +1,275 @@ +" SiSU Vim syntax file +" SiSU Maintainer: Ralph Amissah +" SiSU Markup: SiSU (sisu-5.6.7) +" Last Change: 2017 Jun 22 +" URL: +" +"(originally looked at Ruby Vim by Mirko Nasato) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif +let s:cpo_save = &cpo +set cpo&vim + +"% "Errors: +syn match sisu_error contains=sisu_link,sisu_error_wspace "" + +"% "Markers Identifiers: +if !exists("sisu_no_identifiers") + syn match sisu_mark_endnote "\~^" + syn match sisu_break contains=@NoSpell " \\\\\( \|$\)\|
\|
" + syn match sisu_control contains=@NoSpell "^\(-\\\\-\|=\\\\=\|-\.\.-\|<:p[bn]>\)\s*$" + syn match sisu_control contains=@NoSpell "^<:\(bo\|---\)>\s*$" + syn match sisu_marktail contains=@NoSpell "^--[+~-]#\s*$" + syn match sisu_marktail "[~-]#" + syn match sisu_control "\"" + syn match sisu_underline "\(^\| \)_[a-zA-Z0-9]\+_\([ .,]\|$\)" + syn match sisu_number contains=@NoSpell "[0-9a-f]\{32\}\|[0-9a-f]\{64\}" + syn match sisu_link contains=@NoSpell "\(_\?https\?://\|\.\.\/\)\S\+" + syn match sisu_link " \*\~\S\+" + syn match sisu_require contains=@NoSpell "^<<\s*[a-zA-Z0-9^./_-]\+\.ss[it]$" + syn match sisu_structure "^:A\~$" + +"% "Document Sub Headers: + syn match sisu_sub_header_title "^\s\+:\(subtitle\|short\|edition\|language\|lang_char\|note\):\s" "group=sisu_header_content + syn match sisu_sub_header_creator "^\s\+:\(author\|editor\|contributor\|illustrator\|photographer\|translator\|digitized_by\|prepared_by\|audio\|video\):\s" " &hon &institution + syn match sisu_sub_header_rights "^\s\+:\(copyright\|text\|translation\|illustrations\|photographs\|preparation\|digitization\|audio\|video\|license\|all\):\s" " access_rights license + syn match sisu_sub_header_classify "^\s\+:\(topic_register\|keywords\|subject\|dewey\|loc\):\s" + syn match sisu_sub_header_identifier "^\s\+:\(oclc\|isbn\):\s" + syn match sisu_sub_header_date "^\s\+:\(added_to_site\|available\|created\|issued\|modified\|published\|valid\|translated\|original_publication\):\s" + syn match sisu_sub_header_original "^\s\+:\(publisher\|date\|language\|lang_char\|institution\|nationality\|source\):\s" + syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|substitute\|omit\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|stamp\|promo\|ad\|manpage\|home_button_text\|home_button_image\|cover_image\|footer\):\s" + syn match sisu_sub_header_notes "^\s\+:\(description\|abstract\|comment\|coverage\|relation\|source\|history\|type\|format\|prefix\|prefix_[ab]\|suffix\):\s" + syn match sisu_within_index_ignore "\S\+[:;]\(\s\+\|$\)" + syn match sisu_within_index "[:|;]\|+\d\+" + +"% "semantic markers: (ignore) + syn match sisu_sem_marker ";{\|};[a-z._]*[a-z]" + syn match sisu_sem_marker_block "\([a-z][a-z._]*\|\):{\|}:[a-z._]*[a-z]" + syn match sisu_sem_ex_marker ";\[\|\];[a-z._]*[a-z]" + syn match sisu_sem_ex_marker_block "\([a-z][a-z._]*\|\):\[\|\]:[a-z._]*[a-z]" + syn match sisu_sem_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):{[^}].\{-}}:\1" + syn match sisu_sem_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";{[^}].\{-}};[a-z]\+" + syn match sisu_sem_ex_block contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_mark_endnote,sisu_content_endnote "\([a-z]*\):\[[^}].\{-}\]:\1" + syn match sisu_sem_ex_content contains=sisu_error,sisu_error_wspace,sisu_content_alt,sisu_link,sisu_linked,sisu_break,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker ";\[[^}].\{-}\];[a-z]\+" +endif + +"% "URLs Numbers And ASCII Codes: +syn match sisu_number "\<\(0x\x\+\|0b[01]\+\|0\o\+\|0\.\d\+\|0\|[1-9][\.0-9_]*\)\>" +syn match sisu_number "?\(\\M-\\C-\|\\c\|\\C-\|\\M-\)\=\(\\\o\{3}\|\\x\x\{2}\|\\\=\w\)" + +"% "Tuned Error: (is error if not already matched) +syn match sisu_error contains=sisu_error "[\~/\*!_]{\|}[\~/\*!_]" +syn match sisu_error contains=sisu_error "
]" + +"% "Simple Paired Enclosed Markup: +"url/link +syn region sisu_link contains=sisu_error,sisu_error_wspace matchgroup=sisu_action start="^<<\s*|[a-zA-Z0-9^._-]\+|@|[a-zA-Z0-9^._-]\+|"rs=s+2 end="$" + +"% "Document Header: +" title +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_title matchgroup=sisu_header start="^[@]title:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" creator +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_creator matchgroup=sisu_header start="^[@]creator:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" dates +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_date matchgroup=sisu_header start="^[@]date:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" publisher +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_publisher matchgroup=sisu_header start="^[@]publisher:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" rights +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_rights matchgroup=sisu_header start="^[@]rights:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" classify document +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_classify matchgroup=sisu_header start="^[@]classify:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" identifier document +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_identifier matchgroup=sisu_header start="^[@]identifier:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" original language (depreciated) +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_original matchgroup=sisu_header start="^[@]original:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" notes +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_notes matchgroup=sisu_header start="^[@]notes:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" links of interest +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_linked,sisu_sub_header_links matchgroup=sisu_header start="^[@]links:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" +" make, processing instructions +syn region sisu_header_content contains=sisu_error,sisu_comment,sisu_break,sisu_link,sisu_sub_header_make matchgroup=sisu_header start="^[@]make:[+-]\?\(\s\|\n\)"rs=e-1 end="\n$" + +"% "Headings: +syn region sisu_heading contains=sisu_mark_endnote,sisu_content_endnote,sisu_marktail,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_ocn,sisu_error,sisu_error_wspace matchgroup=sisu_structure start="^\([1-4]\|:\?[A-D]\)\~\(\S\+\|[^-]\)" end="$" + +"% "Block Group Text: +" table +syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^table{.\+" end="}table" +" table +syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+table" end="^```\(\s\|$\)" +syn region sisu_content_alt contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^{\(t\|table\)\(\~h\)\?\(\sc[0-9]\+;\)\?[0-9; ]*}" end="\n$" +" block, group, poem, alt +syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^\z(block\|group\|poem\|alt\){" end="^}\z1" +syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+\(block\|group\|poem\|alt\)" end="^```\(\s\|$\)" +" box +syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^box\(\.[a-z]\+\)\?{" end="^}box" +syn region sisu_content_alt contains=sisu_mark_endnote,sisu_content_endnote,sisu_link,sisu_mark,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_contain start="^```\s\+\box\(\.[a-z]\+\)\?" end="^```\(\s\|$\)" +" code +syn region sisu_content_alt contains=sisu_error,@NoSpell matchgroup=sisu_contain start="^code\(\.[a-z][0-9a-z_]\+\)\?{" end="^}code" +syn region sisu_content_alt contains=sisu_error,@NoSpell matchgroup=sisu_contain start="^```\s\+code\(\.[a-z][0-9a-z_]\+\)\?" end="^```\(\s\|$\)" +" quote +syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_contain start="^```\s\+quote" end="^```\(\s\|$\)" + +"% "Endnotes: +" regular endnote or asterisk or plus sign endnote +syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker matchgroup=sisu_mark_endnote start="\~{[*+]*" end="}\~" skip="\n" +" numbered asterisk or plus sign endnote +syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n" +" endnote content marker (for binary content marking) +syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n$" + +"% "Links And Images: +" image with url link (and possibly footnote of url) +syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|:\|\.\.\/\|#\)\S\+" oneline +" sisu outputs, short notation +syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline +" image +syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline + +"% "Some Line Operations: +" bold line +syn region sisu_bold contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^!_ " end=" \\\\\|$" +" indent and bullet paragraph +syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\) " end="$" +" indent and bullet (bold start) paragraph +syn region sisu_bold contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_\([1-9*]\|[1-9]\*\)!_\? " end=" \\\\\|$" +" hanging indent paragraph [proposed] +syn region sisu_normal contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_[0-9]\?_[0-9] " end="$" +" hanging indent (bold start/ definition) paragraph [proposed] +syn region sisu_bold contains=sisu_fontface,sisu_bold,sisu_control,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^_[0-9]\?_[0-9]!_\? " end=" \\\\\|$" +" list numbering +syn region sisu_normal contains=sisu_strikeout,sisu_identifier,sisu_content_endnote,sisu_mark_endnote,sisu_link,sisu_linked,sisu_error,sisu_error_wspace matchgroup=sisu_markpara start="^\(#[ 1]\|_# \)" end="$" + +"% "Font Face Curly Brackets: +"syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline +" book index: +syn region sisu_index contains=sisu_within_index_ignore,sisu_within_index matchgroup=sisu_index_block start="^={" end="}" +" emphasis: +syn region sisu_bold contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*" +" bold: +syn region sisu_bold contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!" +" underscore: +syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_" +" italics: +syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="/{" end="}/" +" added: +syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="+{" end="}+" +" superscript: +syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\^{" end="}\^" +" subscript: +syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start=",{" end="}," +" monospace: +syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_bold,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="#{" end="}#" +" strikethrough: +syn region sisu_strikeout contains=sisu_error matchgroup=sisu_fontface start="-{" end="}-" + +"% "Single Words Bold Italicise Etc: (depreciated) +syn region sisu_bold contains=sisu_error matchgroup=sisu_bold start="\([ (]\|^\)\*[^\|{\n\~\\]"hs=e-1 end="\*"he=e-0 skip="[a-zA-Z0-9']" oneline +syn region sisu_identifier contains=sisu_error matchgroup=sisu_content_alt start="\([ ]\|^\)/[^{ \|\n\\]"hs=e-1 end="/\[ \.\]" skip="[a-zA-Z0-9']" oneline +"misc +syn region sisu_identifier contains=sisu_error matchgroup=sisu_fontface start="\^[^ {\|\n\\]"rs=s+1 end="\^[ ,.;:'})\\\n]" skip="[a-zA-Z0-9']" oneline + +"% "Expensive Mode: +if !exists("sisu_no_expensive") +else " not Expensive + syn region sisu_content_alt matchgroup=sisu_control start="^\s*def\s" matchgroup=NONE end="[?!]\|\>" skip="\.\|\(::\)" oneline +endif " Expensive? + +"% "Headers And Headings: (Document Instructions) +syn match sisu_control contains=sisu_error,sisu_error_wspace "4\~! \S\+" +syn region sisu_markpara contains=sisu_error,sisu_error_wspace start="^=begin" end="^=end.*$" + +"% "Errors: +syn match sisu_error_wspace contains=sisu_error_wspace "^\s\+[^:]" +syn match sisu_error_wspace contains=sisu_error_wspace "\s\s\+" +syn match sisu_error_wspace contains=sisu_error_wspace "\s\+$" +syn match sisu_error contains=sisu_error_wspace "\t\+" +syn match sisu_error contains=sisu_error,sisu_error_wspace "\([^ (][_\\]\||[^ (}]\)https\?:\S\+" +syn match sisu_error contains=sisu_error "_\?https\?:\S\+[}><]" +syn match sisu_error contains=sisu_error "\([!*/_\+,^]\){\([^(\}\1)]\)\{-}\n$" +syn match sisu_error contains=sisu_error "^[\~]{[^{]\{-}\n$" +syn match sisu_error contains=sisu_error "\s\+.{{" +syn match sisu_error contains=sisu_error "^\~\s*$" +syn match sisu_error contains=sisu_error "^0\~.*" +syn match sisu_error contains=sisu_error "^[1-9]\~\s*$" +syn match sisu_error contains=sisu_error "^[1-9]\~\S\+\s*$" +syn match sisu_error contains=sisu_error "[^{]\~\^[^ \)]" +syn match sisu_error contains=sisu_error "\~\^\s\+\.\s*" +syn match sisu_error contains=sisu_error "{\~^\S\+" +syn match sisu_error contains=sisu_error "[_/\*!^]{[ .,:;?><]*}[_/\*!^]" +syn match sisu_error contains=sisu_error "[^ (\"'(\[][_/\*!]{\|}[_/\*!][a-zA-Z0-9)\]\"']" +syn match sisu_error contains=sisu_error "
" +"errors for filetype sisu, though not error in 'metaverse': +syn match sisu_error contains=sisu_error,sisu_match,sisu_strikeout,sisu_contain,sisu_content_alt,sisu_mark,sisu_break,sisu_number "<[a-zA-Z\/]\+>" +syn match sisu_error "/\?<\([biu]\)>[^()]\{-}\n$" + +"% "Error Exceptions: +syn match sisu_control "\n$" "contains=ALL +"syn match sisu_control " //" +syn match sisu_error "%{" +syn match sisu_error "
_\?https\?:\S\+\|_\?https\?:\S\+
" +syn match sisu_error "[><]_\?https\?:\S\+\|_\?https\?:\S\+[><]" +syn match sisu_comment "^%\{1,2\}.\+" + +"% "Definitions Default Highlighting: +hi def link sisu_normal Normal +hi def link sisu_bold Statement +hi def link sisu_header PreProc +hi def link sisu_header_content Normal +hi def link sisu_sub_header_title Statement +hi def link sisu_sub_header_creator Statement +hi def link sisu_sub_header_date Statement +hi def link sisu_sub_header_publisher Statement +hi def link sisu_sub_header_rights Statement +hi def link sisu_sub_header_classify Statement +hi def link sisu_sub_header_identifier Statement +hi def link sisu_sub_header_original Statement +hi def link sisu_sub_header_links Statement +hi def link sisu_sub_header_notes Statement +hi def link sisu_sub_header_make Statement +hi def link sisu_heading Title +hi def link sisu_structure Operator +hi def link sisu_contain Include +hi def link sisu_mark_endnote Delimiter +hi def link sisu_require NonText +hi def link sisu_link NonText +hi def link sisu_linked String +hi def link sisu_fontface Delimiter +hi def link sisu_strikeout DiffDelete +hi def link sisu_content_alt Special +hi def link sisu_sem_content SpecialKey +hi def link sisu_sem_block Special +hi def link sisu_sem_marker Visual +"hi def link sisu_sem_marker Structure +hi def link sisu_sem_marker_block MatchParen +hi def link sisu_sem_ex_marker FoldColumn +hi def link sisu_sem_ex_marker_block Folded +hi def link sisu_sem_ex_content Comment +"hi def link sisu_sem_ex_content SpecialKey +hi def link sisu_sem_ex_block Comment +hi def link sisu_index SpecialKey +hi def link sisu_index_block Visual +hi def link sisu_content_endnote Special +hi def link sisu_control Delimiter +hi def link sisu_within_index Delimiter +hi def link sisu_within_index_ignore SpecialKey +hi def link sisu_ocn Include +hi def link sisu_number Number +hi def link sisu_identifier Function +hi def link sisu_underline Underlined +hi def link sisu_markpara Include +hi def link sisu_marktail Include +hi def link sisu_mark Identifier +hi def link sisu_break Structure +hi def link sisu_html Type +hi def link sisu_action Identifier +hi def link sisu_comment Comment +hi def link sisu_error_sem_marker Error +hi def link sisu_error_wspace Error +hi def link sisu_error Error +let b:current_syntax = "sisu" +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/skill.vim b/runtime/syntax/skill.vim new file mode 100644 index 0000000..47afffc --- /dev/null +++ b/runtime/syntax/skill.vim @@ -0,0 +1,549 @@ +" Vim syntax file +" Language: SKILL +" Maintainer: Toby Schaffer +" Last Change: 2003 May 11 +" Comments: SKILL is a Lisp-like programming language for use in EDA +" tools from Cadence Design Systems. It allows you to have +" a programming environment within the Cadence environment +" that gives you access to the complete tool set and design +" database. This file also defines syntax highlighting for +" certain Design Framework II interface functions. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword skillConstants t nil unbound + +" enumerate all the SKILL reserved words/functions +syn match skillFunction "(abs\>"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillConditional "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillConditional "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillRepeat "\"hs=s+1 +syn match skillFunction "\<[fs]\=printf("he=e-1 +syn match skillFunction "(f\=scanf\>"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillRepeat "\"hs=s+1 +syn match skillConditional "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\<[mn]\=procedure("he=e-1 +syn match skillFunction "(ncon[cs]\>"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillKeywords "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillConditional "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillConditional "\"hs=s+1 +syn match skillRepeat "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillFunction "\"hs=s+1 +syn match skillcdfFunctions "\"hs=s+1 +syn match skillgeFunctions "\"hs=s+1 +syn match skillhiFunctions "\"hs=s+1 +syn match skillleFunctions "\"hs=s+1 +syn match skilldbefFunctions "\"hs=s+1 +syn match skillddFunctions "\"hs=s+1 +syn match skillpcFunctions "\"hs=s+1 +syn match skilltechFunctions "\<\(tech\|tc\)\u\a\+("he=e-1 + +" strings +syn region skillString start=+"+ skip=+\\"+ end=+"+ + +syn keyword skillTodo contained TODO FIXME XXX +syn keyword skillNote contained NOTE IMPORTANT + +" comments are either C-style or begin with a semicolon +syn region skillComment start="/\*" end="\*/" contains=skillTodo,skillNote +syn match skillComment ";.*" contains=skillTodo,skillNote +syn match skillCommentError "\*/" + +syn sync ccomment skillComment minlines=10 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link skillcdfFunctions Function +hi def link skillgeFunctions Function +hi def link skillhiFunctions Function +hi def link skillleFunctions Function +hi def link skilldbefFunctions Function +hi def link skillddFunctions Function +hi def link skillpcFunctions Function +hi def link skilltechFunctions Function +hi def link skillConstants Constant +hi def link skillFunction Function +hi def link skillKeywords Statement +hi def link skillConditional Conditional +hi def link skillRepeat Repeat +hi def link skillString String +hi def link skillTodo Todo +hi def link skillNote Todo +hi def link skillComment Comment +hi def link skillCommentError Error + + +let b:current_syntax = "skill" + +" vim: ts=4 diff --git a/runtime/syntax/sl.vim b/runtime/syntax/sl.vim new file mode 100644 index 0000000..1f6c847 --- /dev/null +++ b/runtime/syntax/sl.vim @@ -0,0 +1,107 @@ +" Vim syntax file +" Language: Renderman shader language +" Maintainer: Dan Piponi +" Last Change: 2001 May 09 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" A bunch of useful Renderman keywords including special +" RenderMan control structures +syn keyword slStatement break return continue +syn keyword slConditional if else +syn keyword slRepeat while for +syn keyword slRepeat illuminance illuminate solar + +syn keyword slTodo contained TODO FIXME XXX + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match slSpecial contained "\\[0-9][0-9][0-9]\|\\." +syn region slString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=slSpecial +syn match slCharacter "'[^\\]'" +syn match slSpecialCharacter "'\\.'" +syn match slSpecialCharacter "'\\[0-9][0-9]'" +syn match slSpecialCharacter "'\\[0-9][0-9][0-9]'" + +"catch errors caused by wrong parenthesis +syn region slParen transparent start='(' end=')' contains=ALLBUT,slParenError,slIncluded,slSpecial,slTodo,slUserLabel +syn match slParenError ")" +syn match slInParen contained "[{}]" + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match slNumber "\<[0-9]\+\(u\=l\=\|lu\|f\)\>" +"floating point number, with dot, optional exponent +syn match slFloat "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=[fl]\=\>" +"floating point number, starting with a dot, optional exponent +syn match slFloat "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match slFloat "\<[0-9]\+e[-+]\=[0-9]\+[fl]\=\>" +"hex number +syn match slNumber "\<0x[0-9a-f]\+\(u\=l\=\|lu\)\>" +"syn match slIdentifier "\<[a-z_][a-z0-9_]*\>" +syn case match + +if exists("sl_comment_strings") + " A comment can contain slString, slCharacter and slNumber. + " But a "*/" inside a slString in a slComment DOES end the comment! So we + " need to use a special type of slString: slCommentString, which also ends on + " "*/", and sees a "*" at the start of the line as comment again. + " Unfortunately this doesn't very well work for // type of comments :-( + syntax match slCommentSkip contained "^\s*\*\($\|\s\+\)" + syntax region slCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=slSpecial,slCommentSkip + syntax region slComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=slSpecial + syntax region slComment start="/\*" end="\*/" contains=slTodo,slCommentString,slCharacter,slNumber +else + syn region slComment start="/\*" end="\*/" contains=slTodo +endif +syntax match slCommentError "\*/" + +syn keyword slOperator sizeof +syn keyword slType float point color string vector normal matrix void +syn keyword slStorageClass varying uniform extern +syn keyword slStorageClass light surface volume displacement transformation imager +syn keyword slVariable Cs Os P dPdu dPdv N Ng u v du dv s t +syn keyword slVariable L Cl Ol E I ncomps time Ci Oi +syn keyword slVariable Ps alpha +syn keyword slVariable dtime dPdtime + +syn sync ccomment slComment minlines=10 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link slLabel Label +hi def link slUserLabel Label +hi def link slConditional Conditional +hi def link slRepeat Repeat +hi def link slCharacter Character +hi def link slSpecialCharacter slSpecial +hi def link slNumber Number +hi def link slFloat Float +hi def link slParenError slError +hi def link slInParen slError +hi def link slCommentError slError +hi def link slOperator Operator +hi def link slStorageClass StorageClass +hi def link slError Error +hi def link slStatement Statement +hi def link slType Type +hi def link slCommentError slError +hi def link slCommentString slString +hi def link slComment2String slString +hi def link slCommentSkip slComment +hi def link slString String +hi def link slComment Comment +hi def link slSpecial SpecialChar +hi def link slTodo Todo +hi def link slVariable Identifier +"hi def link slIdentifier Identifier + + +let b:current_syntax = "sl" + +" vim: ts=8 diff --git a/runtime/syntax/slang.vim b/runtime/syntax/slang.vim new file mode 100644 index 0000000..53ede4d --- /dev/null +++ b/runtime/syntax/slang.vim @@ -0,0 +1,89 @@ +" Vim syntax file +" Language: S-Lang +" Maintainer: Jan Hlavacek +" Last Change: 980216 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword slangStatement break return continue EXECUTE_ERROR_BLOCK +syn match slangStatement "\" +syn keyword slangLabel case +syn keyword slangConditional !if if else switch +syn keyword slangRepeat while for _for loop do forever +syn keyword slangDefinition define typedef variable struct +syn keyword slangOperator or and andelse orelse shr shl xor not +syn keyword slangBlock EXIT_BLOCK ERROR_BLOCK +syn match slangBlock "\" +syn keyword slangConstant NULL +syn keyword slangType Integer_Type Double_Type Complex_Type String_Type Struct_Type Ref_Type Null_Type Array_Type DataType_Type + +syn match slangOctal "\<0\d\+\>" contains=slangOctalError +syn match slangOctalError "[89]\+" contained +syn match slangHex "\<0[xX][0-9A-Fa-f]*\>" +syn match slangDecimal "\<[1-9]\d*\>" +syn match slangFloat "\<\d\+\." +syn match slangFloat "\<\d\+\.\d\+\([Ee][-+]\=\d\+\)\=\>" +syn match slangFloat "\<\d\+\.[Ee][-+]\=\d\+\>" +syn match slangFloat "\<\d\+[Ee][-+]\=\d\+\>" +syn match slangFloat "\.\d\+\([Ee][-+]\=\d\+\)\=\>" +syn match slangImaginary "\.\d\+\([Ee][-+]\=\d*\)\=[ij]\>" +syn match slangImaginary "\<\d\+\(\.\d*\)\=\([Ee][-+]\=\d\+\)\=[ij]\>" + +syn region slangString oneline start='"' end='"' skip='\\"' +syn match slangCharacter "'[^\\]'" +syn match slangCharacter "'\\.'" +syn match slangCharacter "'\\[0-7]\{1,3}'" +syn match slangCharacter "'\\d\d\{1,3}'" +syn match slangCharacter "'\\x[0-7a-fA-F]\{1,2}'" + +syn match slangDelim "[][{};:,]" +syn match slangOperator "[-%+/&*=<>|!~^@]" + +"catch errors caused by wrong parenthesis +syn region slangParen matchgroup=slangDelim transparent start='(' end=')' contains=ALLBUT,slangParenError +syn match slangParenError ")" + +syn match slangComment "%.*$" +syn keyword slangOperator sizeof + +syn region slangPreCondit start="^\s*#\s*\(ifdef\>\|ifndef\>\|iftrue\>\|ifnfalse\>\|iffalse\>\|ifntrue\>\|if\$\|ifn\$\|\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=cComment,slangString,slangCharacter,slangNumber + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link slangDefinition Type +hi def link slangBlock slangDefinition +hi def link slangLabel Label +hi def link slangConditional Conditional +hi def link slangRepeat Repeat +hi def link slangCharacter Character +hi def link slangFloat Float +hi def link slangImaginary Float +hi def link slangDecimal slangNumber +hi def link slangOctal slangNumber +hi def link slangHex slangNumber +hi def link slangNumber Number +hi def link slangParenError Error +hi def link slangOctalError Error +hi def link slangOperator Operator +hi def link slangStructure Structure +hi def link slangInclude Include +hi def link slangPreCondit PreCondit +hi def link slangError Error +hi def link slangStatement Statement +hi def link slangType Type +hi def link slangString String +hi def link slangConstant Constant +hi def link slangRangeArray slangConstant +hi def link slangComment Comment +hi def link slangSpecial SpecialChar +hi def link slangTodo Todo +hi def link slangDelim Delimiter + + +let b:current_syntax = "slang" + +" vim: ts=8 diff --git a/runtime/syntax/slice.vim b/runtime/syntax/slice.vim new file mode 100644 index 0000000..3a57ece --- /dev/null +++ b/runtime/syntax/slice.vim @@ -0,0 +1,78 @@ +" Vim syntax file +" Language: Slice (ZeroC's Specification Language for Ice) +" Maintainer: Morel Bodin +" Last Change: 2005 Dec 03 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" The Slice keywords + +syn keyword sliceType bool byte double float int long short string void +syn keyword sliceQualifier const extends idempotent implements local nonmutating out throws +syn keyword sliceConstruct class enum exception dictionary interface module LocalObject Object sequence struct +syn keyword sliceQualifier const extends idempotent implements local nonmutating out throws +syn keyword sliceBoolean false true + +" Include directives +syn region sliceIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match sliceIncluded display contained "<[^>]*>" +syn match sliceInclude display "^\s*#\s*include\>\s*["<]" contains=sliceIncluded + +" Double-include guards +syn region sliceGuard start="^#\(define\|ifndef\|endif\)" end="$" + +" Strings and characters +syn region sliceString start=+"+ end=+"+ + +" Numbers (shamelessly ripped from c.vim, only slightly modified) +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match sliceNumbers display transparent "\<\d\|\.\d" contains=sliceNumber,sliceFloat,sliceOctal +syn match sliceNumber display contained "\d\+" +"hex number +syn match sliceNumber display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match sliceOctal display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=sliceOctalZero +syn match sliceOctalZero display contained "\<0" +syn match sliceFloat display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match sliceFloat display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match sliceFloat display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match sliceFloat display contained "\d\+e[-+]\=\d\+[fl]\=\>" +" flag an octal number with wrong digits +syn case match + + +" Comments +syn region sliceComment start="/\*" end="\*/" +syn match sliceComment "//.*" + +syn sync ccomment sliceComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link sliceComment Comment +hi def link sliceConstruct Keyword +hi def link sliceType Type +hi def link sliceString String +hi def link sliceIncluded String +hi def link sliceQualifier Keyword +hi def link sliceInclude Include +hi def link sliceGuard PreProc +hi def link sliceBoolean Boolean +hi def link sliceFloat Number +hi def link sliceNumber Number +hi def link sliceOctal Number +hi def link sliceOctalZero Special +hi def link sliceNumberError Special + + +let b:current_syntax = "slice" + +" vim: ts=8 diff --git a/runtime/syntax/slpconf.vim b/runtime/syntax/slpconf.vim new file mode 100644 index 0000000..712ba90 --- /dev/null +++ b/runtime/syntax/slpconf.vim @@ -0,0 +1,273 @@ +" Vim syntax file +" Language: RFC 2614 - An API for Service Location configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword slpconfTodo contained TODO FIXME XXX NOTE + +syn region slpconfComment display oneline start='^[#;]' end='$' + \ contains=slpconfTodo,@Spell + +syn match slpconfBegin display '^' + \ nextgroup=slpconfTag, + \ slpconfComment skipwhite + +syn keyword slpconfTag contained net + \ nextgroup=slpconfNetTagDot + +syn match slpconfNetTagDot contained display '.' + \ nextgroup=slpconfNetTag + +syn keyword slpconfNetTag contained slp + \ nextgroup=slpconfNetSlpTagdot + +syn match slpconfNetSlpTagDot contained display '.' + \ nextgroup=slpconfNetSlpTag + +syn keyword slpconfNetSlpTag contained isDA traceDATraffic traceMsg + \ traceDrop traceReg isBroadcastOnly + \ passiveDADetection securityEnabled + \ nextgroup=slpconfBooleanEq,slpconfBooleanHome + \ skipwhite + +syn match slpconfBooleanHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfBooleanEq skipwhite + +syn match slpconfBooleanEq contained display '=' + \ nextgroup=slpconfBoolean skipwhite + +syn keyword slpconfBoolean contained true false TRUE FALSE + +syn keyword slpconfNetSlpTag contained DAHeartBeat multicastTTL + \ DAActiveDiscoveryInterval + \ multicastMaximumWait multicastTimeouts + \ randomWaitBound MTU maxResults + \ nextgroup=slpconfIntegerEq,slpconfIntegerHome + \ skipwhite + +syn match slpconfIntegerHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfIntegerEq skipwhite + +syn match slpconfIntegerEq contained display '=' + \ nextgroup=slpconfInteger skipwhite + +syn match slpconfInteger contained display '\<\d\+\>' + +syn keyword slpconfNetSlpTag contained DAAttributes SAAttributes + \ nextgroup=slpconfAttrEq,slpconfAttrHome + \ skipwhite + +syn match slpconfAttrHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfAttrEq skipwhite + +syn match slpconfAttrEq contained display '=' + \ nextgroup=slpconfAttrBegin skipwhite + +syn match slpconfAttrBegin contained display '(' + \ nextgroup=slpconfAttrTag skipwhite + +syn match slpconfAttrTag contained display + \ '[^* \t_(),\\!<=>~[:cntrl:]]\+' + \ nextgroup=slpconfAttrTagEq skipwhite + +syn match slpconfAttrTagEq contained display '=' + \ nextgroup=@slpconfAttrValue skipwhite + +syn cluster slpconfAttrValueCon contains=slpconfAttrValueSep,slpconfAttrEnd + +syn cluster slpconfAttrValue contains=slpconfAttrIValue,slpconfAttrSValue, + \ slpconfAttrBValue,slpconfAttrSSValue + +syn match slpconfAttrSValue contained display '[^ (),\\!<=>~[:cntrl:]]\+' + \ nextgroup=@slpconfAttrValueCon skipwhite + +syn match slpconfAttrSSValue contained display '\\FF\%(\\\x\x\)\+' + \ nextgroup=@slpconfAttrValueCon skipwhite + +syn match slpconfAttrIValue contained display '[-]\=\d\+\>' + \ nextgroup=@slpconfAttrValueCon skipwhite + +syn keyword slpconfAttrBValue contained true false + \ nextgroup=@slpconfAttrValueCon skipwhite + +syn match slpconfAttrValueSep contained display ',' + \ nextgroup=@slpconfAttrValue skipwhite + +syn match slpconfAttrEnd contained display ')' + \ nextgroup=slpconfAttrSep skipwhite + +syn match slpconfAttrSep contained display ',' + \ nextgroup=slpconfAttrBegin skipwhite + +syn keyword slpconfNetSlpTag contained useScopes typeHint + \ nextgroup=slpconfStringsEq,slpconfStringsHome + \ skipwhite + +syn match slpconfStringsHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfStringsEq skipwhite + +syn match slpconfStringsEq contained display '=' + \ nextgroup=slpconfStrings skipwhite + +syn match slpconfStrings contained display + \ '\%([[:digit:][:alpha:]]\|[!-+./:-@[-`{-~-]\|\\\x\x\)\+' + \ nextgroup=slpconfStringsSep skipwhite + +syn match slpconfStringsSep contained display ',' + \ nextgroup=slpconfStrings skipwhite + +syn keyword slpconfNetSlpTag contained DAAddresses + \ nextgroup=slpconfAddressesEq,slpconfAddrsHome + \ skipwhite + +syn match slpconfAddrsHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfAddressesEq skipwhite + +syn match slpconfAddressesEq contained display '=' + \ nextgroup=@slpconfAddresses skipwhite + +syn cluster slpconfAddresses contains=slpconfFQDNs,slpconfHostnumbers + +syn match slpconfFQDNs contained display + \ '\a[[:alnum:]-]*[[:alnum:]]\|\a' + \ nextgroup=slpconfAddressesSep skipwhite + +syn match slpconfHostnumbers contained display + \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfAddressesSep skipwhite + +syn match slpconfAddressesSep contained display ',' + \ nextgroup=@slpconfAddresses skipwhite + +syn keyword slpconfNetSlpTag contained serializedRegURL + \ nextgroup=slpconfStringEq,slpconfStringHome + \ skipwhite + +syn match slpconfStringHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfStringEq skipwhite + +syn match slpconfStringEq contained display '=' + \ nextgroup=slpconfString skipwhite + +syn match slpconfString contained display + \ '\%([!-+./:-@[-`{-~-]\|\\\x\x\)\+\|[[:digit:][:alpha:]]' + +syn keyword slpconfNetSlpTag contained multicastTimeouts DADiscoveryTimeouts + \ datagramTimeouts + \ nextgroup=slpconfIntegersEq, + \ slpconfIntegersHome skipwhite + +syn match slpconfIntegersHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfIntegersEq skipwhite + +syn match slpconfIntegersEq contained display '=' + \ nextgroup=slpconfIntegers skipwhite + +syn match slpconfIntegers contained display '\<\d\+\>' + \ nextgroup=slpconfIntegersSep skipwhite + +syn match slpconfIntegersSep contained display ',' + \ nextgroup=slpconfIntegers skipwhite + +syn keyword slpconfNetSlpTag contained interfaces + \ nextgroup=slpconfHostnumsEq, + \ slpconfHostnumsHome skipwhite + +syn match slpconfHostnumsHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfHostnumsEq skipwhite + +syn match slpconfHostnumsEq contained display '=' + \ nextgroup=slpconfOHostnumbers skipwhite + +syn match slpconfOHostnumbers contained display + \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfHostnumsSep skipwhite + +syn match slpconfHostnumsSep contained display ',' + \ nextgroup=slpconfOHostnumbers skipwhite + +syn keyword slpconfNetSlpTag contained locale + \ nextgroup=slpconfLocaleEq,slpconfLocaleHome + \ skipwhite + +syn match slpconfLocaleHome contained display + \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}' + \ nextgroup=slpconfLocaleEq skipwhite + +syn match slpconfLocaleEq contained display '=' + \ nextgroup=slpconfLocale skipwhite + +syn match slpconfLocale contained display '\a\{1,8}\%(-\a\{1,8}\)\=' + +hi def link slpconfTodo Todo +hi def link slpconfComment Comment +hi def link slpconfTag Identifier +hi def link slpconfDelimiter Delimiter +hi def link slpconfNetTagDot slpconfDelimiter +hi def link slpconfNetTag slpconfTag +hi def link slpconfNetSlpTagDot slpconfNetTagDot +hi def link slpconfNetSlpTag slpconfTag +hi def link slpconfHome Special +hi def link slpconfBooleanHome slpconfHome +hi def link slpconfEq Operator +hi def link slpconfBooleanEq slpconfEq +hi def link slpconfBoolean Boolean +hi def link slpconfIntegerHome slpconfHome +hi def link slpconfIntegerEq slpconfEq +hi def link slpconfInteger Number +hi def link slpconfAttrHome slpconfHome +hi def link slpconfAttrEq slpconfEq +hi def link slpconfAttrBegin slpconfDelimiter +hi def link slpconfAttrTag slpconfTag +hi def link slpconfAttrTagEq slpconfEq +hi def link slpconfAttrIValue slpconfInteger +hi def link slpconfAttrSValue slpconfString +hi def link slpconfAttrBValue slpconfBoolean +hi def link slpconfAttrSSValue slpconfString +hi def link slpconfSeparator slpconfDelimiter +hi def link slpconfAttrValueSep slpconfSeparator +hi def link slpconfAttrEnd slpconfAttrBegin +hi def link slpconfAttrSep slpconfSeparator +hi def link slpconfStringsHome slpconfHome +hi def link slpconfStringsEq slpconfEq +hi def link slpconfStrings slpconfString +hi def link slpconfStringsSep slpconfSeparator +hi def link slpconfAddrsHome slpconfHome +hi def link slpconfAddressesEq slpconfEq +hi def link slpconfFQDNs String +hi def link slpconfHostnumbers Number +hi def link slpconfAddressesSep slpconfSeparator +hi def link slpconfStringHome slpconfHome +hi def link slpconfStringEq slpconfEq +hi def link slpconfString String +hi def link slpconfIntegersHome slpconfHome +hi def link slpconfIntegersEq slpconfEq +hi def link slpconfIntegers slpconfInteger +hi def link slpconfIntegersSep slpconfSeparator +hi def link slpconfHostnumsHome slpconfHome +hi def link slpconfHostnumsEq slpconfEq +hi def link slpconfOHostnumbers slpconfHostnumbers +hi def link slpconfHostnumsSep slpconfSeparator +hi def link slpconfLocaleHome slpconfHome +hi def link slpconfLocaleEq slpconfEq +hi def link slpconfLocale slpconfString + +let b:current_syntax = "slpconf" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/slpreg.vim b/runtime/syntax/slpreg.vim new file mode 100644 index 0000000..a177b06 --- /dev/null +++ b/runtime/syntax/slpreg.vim @@ -0,0 +1,122 @@ +" Vim syntax file +" Language: RFC 2614 - An API for Service Location registration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword slpregTodo contained TODO FIXME XXX NOTE + +syn region slpregComment display oneline start='^[#;]' end='$' + \ contains=slpregTodo,@Spell + +syn match slpregBegin display '^' + \ nextgroup=slpregServiceURL, + \ slpregComment + +syn match slpregServiceURL contained display 'service:' + \ nextgroup=slpregServiceType + +syn match slpregServiceType contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\=' + \ nextgroup=slpregServiceSAPCol + +syn match slpregServiceSAPCol contained display ':' + \ nextgroup=slpregSAP + +syn match slpregSAP contained '[^,]\+' + \ nextgroup=slpregLangSep +"syn match slpregSAP contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*' + +syn match slpregLangSep contained display ',' + \ nextgroup=slpregLang + +syn match slpregLang contained display '\a\{1,8}\%(-\a\{1,8\}\)\=' + \ nextgroup=slpregLTimeSep + +syn match slpregLTimeSep contained display ',' + \ nextgroup=slpregLTime + +syn match slpregLTime contained display '\d\{1,5}' + \ nextgroup=slpregType,slpregUNewline + +syn match slpregType contained display '\a[[:alpha:][:digit:]+-]*' + \ nextgroup=slpregUNewLine + +syn match slpregUNewLine contained '\s*\n' + \ nextgroup=slpregScopes,slpregAttrList skipnl + +syn keyword slpregScopes contained scopes + \ nextgroup=slpregScopesEq + +syn match slpregScopesEq contained '=' nextgroup=slpregScopeName + +syn match slpregScopeName contained '[^(),\\!<=>[:cntrl:];*+ ]\+' + \ nextgroup=slpregScopeNameSep, + \ slpregScopeNewline + +syn match slpregScopeNameSep contained ',' + \ nextgroup=slpregScopeName + +syn match slpregScopeNewline contained '\s*\n' + \ nextgroup=slpregAttribute skipnl + +syn match slpregAttribute contained '[^(),\\!<=>[:cntrl:]* \t_]\+' + \ nextgroup=slpregAttributeEq, + \ slpregScopeNewline + +syn match slpregAttributeEq contained '=' + \ nextgroup=@slpregAttrValue + +syn cluster slpregAttrValueCon contains=slpregAttribute,slpregAttrValueSep + +syn cluster slpregAttrValue contains=slpregAttrIValue,slpregAttrSValue, + \ slpregAttrBValue,slpregAttrSSValue + +syn match slpregAttrSValue contained display '[^(),\\!<=>~[:cntrl:]]\+' + \ nextgroup=@slpregAttrValueCon skipwhite skipnl + +syn match slpregAttrSSValue contained display '\\FF\%(\\\x\x\)\+' + \ nextgroup=@slpregAttrValueCon skipwhite skipnl + +syn match slpregAttrIValue contained display '[-]\=\d\+\>' + \ nextgroup=@slpregAttrValueCon skipwhite skipnl + +syn keyword slpregAttrBValue contained true false + \ nextgroup=@slpregAttrValueCon skipwhite skipnl + +syn match slpregAttrValueSep contained display ',' + \ nextgroup=@slpregAttrValue skipwhite skipnl + +hi def link slpregTodo Todo +hi def link slpregComment Comment +hi def link slpregServiceURL Type +hi def link slpregServiceType slpregServiceURL +hi def link slpregServiceSAPCol slpregServiceURL +hi def link slpregSAP slpregServiceURL +hi def link slpregDelimiter Delimiter +hi def link slpregLangSep slpregDelimiter +hi def link slpregLang String +hi def link slpregLTimeSep slpregDelimiter +hi def link slpregLTime Number +hi def link slpregType Type +hi def link slpregScopes Identifier +hi def link slpregScopesEq Operator +hi def link slpregScopeName String +hi def link slpregScopeNameSep slpregDelimiter +hi def link slpregAttribute Identifier +hi def link slpregAttributeEq Operator +hi def link slpregAttrSValue String +hi def link slpregAttrSSValue slpregAttrSValue +hi def link slpregAttrIValue Number +hi def link slpregAttrBValue Boolean +hi def link slpregAttrValueSep slpregDelimiter + +let b:current_syntax = "slpreg" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/slpspi.vim b/runtime/syntax/slpspi.vim new file mode 100644 index 0000000..eaeb02a --- /dev/null +++ b/runtime/syntax/slpspi.vim @@ -0,0 +1,39 @@ +" Vim syntax file +" Language: RFC 2614 - An API for Service Location SPI file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword slpspiTodo contained TODO FIXME XXX NOTE + +syn region slpspiComment display oneline start='^[#;]' end='$' + \ contains=slpspiTodo,@Spell + +syn match slpspiBegin display '^' + \ nextgroup=slpspiKeyType, + \ slpspiComment skipwhite + +syn keyword slpspiKeyType contained PRIVATE PUBLIC + \ nextgroup=slpspiString skipwhite + +syn match slpspiString contained '\S\+' + \ nextgroup=slpspiKeyFile skipwhite + +syn match slpspiKeyFile contained '\S\+' + +hi def link slpspiTodo Todo +hi def link slpspiComment Comment +hi def link slpspiKeyType Type +hi def link slpspiString Identifier +hi def link slpspiKeyFile String + +let b:current_syntax = "slpspi" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/slrnrc.vim b/runtime/syntax/slrnrc.vim new file mode 100644 index 0000000..004bdd1 --- /dev/null +++ b/runtime/syntax/slrnrc.vim @@ -0,0 +1,181 @@ +" Vim syntax file +" Language: Slrn setup file (based on slrn 0.9.8.1) +" Maintainer: Preben 'Peppe' Guldberg +" Last Change: 23 April 2006 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword slrnrcTodo contained Todo + +" In some places whitespace is illegal +syn match slrnrcSpaceError contained "\s" + +syn match slrnrcNumber contained "-\=\<\d\+\>" +syn match slrnrcNumber contained +'[^']\+'+ + +syn match slrnrcSpecKey contained +\(\\[er"']\|\^[^'"]\|\\\o\o\o\)+ + +syn match slrnrcKey contained "\S\+" contains=slrnrcSpecKey +syn region slrnrcKey contained start=+"+ skip=+\\"+ end=+"+ oneline contains=slrnrcSpecKey +syn region slrnrcKey contained start=+'+ skip=+\\'+ end=+'+ oneline contains=slrnrcSpecKey + +syn match slrnrcSpecChar contained +'+ +syn match slrnrcSpecChar contained +\\[n"]+ +syn match slrnrcSpecChar contained "%[dfmnrs%]" + +syn match slrnrcString contained /[^ \t%"']\+/ contains=slrnrcSpecChar +syn region slrnrcString contained start=+"+ skip=+\\"+ end=+"+ oneline contains=slrnrcSpecChar + +syn match slrnSlangPreCondit "^#\s*ifn\=\(def\>\|false\>\|true\>\|\$\)" +syn match slrnSlangPreCondit "^#\s*e\(lif\|lse\|ndif\)\>" + +syn match slrnrcComment "%.*$" contains=slrnrcTodo + +syn keyword slrnrcVarInt contained abort_unmodified_edits article_window_page_overlap auto_mark_article_as_read beep broken_xref broken_xref cc_followup check_new_groups +syn keyword slrnrcVarInt contained color_by_score confirm_actions custom_sort_by_threads display_cursor_bar drop_bogus_groups editor_uses_mime_charset emphasized_text_mask +syn keyword slrnrcVarInt contained emphasized_text_mode fold_headers fold_headers followup_strip_signature force_authentication force_authentication generate_date_header +syn keyword slrnrcVarInt contained generate_email_from generate_email_from generate_message_id grouplens_port hide_pgpsignature hide_quotes hide_signature +syn keyword slrnrcVarInt contained hide_verbatim_marks hide_verbatim_text highlight_unread_subjects highlight_urls ignore_signature kill_score lines_per_update +syn keyword slrnrcVarInt contained mail_editor_is_mua max_low_score max_queued_groups min_high_score mouse netiquette_warnings new_subject_breaks_threads no_autosave +syn keyword slrnrcVarInt contained no_backups prefer_head process_verbatim_marks query_next_article query_next_group query_read_group_cutoff read_active reject_long_lines +syn keyword slrnrcVarInt contained scroll_by_page show_article show_thread_subject simulate_graphic_chars smart_quote sorting_method spoiler_char spoiler_char +syn keyword slrnrcVarInt contained spoiler_display_mode spoiler_display_mode spool_check_up_on_nov spool_check_up_on_nov uncollapse_threads unsubscribe_new_groups use_blink +syn keyword slrnrcVarInt contained use_color use_flow_control use_grouplens use_grouplens use_header_numbers use_inews use_inews use_localtime use_metamail use_mime use_mime +syn keyword slrnrcVarInt contained use_recommended_msg_id use_slrnpull use_slrnpull use_tilde use_tmpdir use_uudeview use_uudeview warn_followup_to wrap_flags wrap_method +syn keyword slrnrcVarInt contained write_newsrc_flags + +" Listed for removal +syn keyword slrnrcVarInt contained author_display display_author_realname display_score group_dsc_start_column process_verbatum_marks prompt_next_group query_reconnect +syn keyword slrnrcVarInt contained show_descriptions use_xgtitle + +" Match as a "string" too +syn region slrnrcVarIntStr contained matchgroup=slrnrcVarInt start=+"+ end=+"+ oneline contains=slrnrcVarInt,slrnrcSpaceError + +syn keyword slrnrcVarStr contained Xbrowser art_help_line art_status_line cansecret_file cc_post_string charset custom_headers custom_sort_order decode_directory +syn keyword slrnrcVarStr contained editor_command failed_posts_file followup_custom_headers followup_date_format followup_string followupto_string group_help_line +syn keyword slrnrcVarStr contained group_status_line grouplens_host grouplens_pseudoname header_help_line header_status_line hostname inews_program macro_directory +syn keyword slrnrcVarStr contained mail_editor_command metamail_command mime_charset non_Xbrowser organization overview_date_format post_editor_command post_object +syn keyword slrnrcVarStr contained postpone_directory printer_name quote_string realname reply_custom_headers reply_string replyto save_directory save_posts save_replies +syn keyword slrnrcVarStr contained score_editor_command scorefile sendmail_command server_object signature signoff_string spool_active_file spool_activetimes_file +syn keyword slrnrcVarStr contained spool_inn_root spool_newsgroups_file spool_nov_file spool_nov_root spool_overviewfmt_file spool_root supersedes_custom_headers +syn keyword slrnrcVarStr contained top_status_line username + +" Listed for removal +syn keyword slrnrcVarStr contained followup cc_followup_string + +" Match as a "string" too +syn region slrnrcVarStrStr contained matchgroup=slrnrcVarStr start=+"+ end=+"+ oneline contains=slrnrcVarStr,slrnrcSpaceError + +" Various commands +syn region slrnrcCmdLine matchgroup=slrnrcCmd start="\<\(autobaud\|color\|compatible_charsets\|group_display_format\|grouplens_add\|header_display_format\|ignore_quotes\|include\|interpret\|mono\|nnrpaccess\|posting_host\|server\|set\|setkey\|strip_re_regexp\|strip_sig_regexp\|strip_was_regexp\|unsetkey\|visible_headers\)\>" end="$" oneline contains=slrnrc\(String\|Comment\) + +" Listed for removal +syn region slrnrcCmdLine matchgroup=slrnrcCmd start="\<\(cc_followup_string\|decode_directory\|editor_command\|followup\|hostname\|organization\|quote_string\|realname\|replyto\|scorefile\|signature\|username\)\>" end="$" oneline contains=slrnrc\(String\|Comment\) + +" Setting variables +syn keyword slrnrcSet contained set +syn match slrnrcSetStr "^\s*set\s\+\S\+" skipwhite nextgroup=slrnrcString contains=slrnrcSet,slrnrcVarStr\(Str\)\= +syn match slrnrcSetInt contained "^\s*set\s\+\S\+" contains=slrnrcSet,slrnrcVarInt\(Str\)\= +syn match slrnrcSetIntLine "^\s*set\s\+\S\+\s\+\(-\=\d\+\>\|'[^']\+'\)" contains=slrnrcSetInt,slrnrcNumber,slrnrcVarInt + +" Color definitions +syn match slrnrcColorObj contained "\" +syn keyword slrnrcColorObj contained article author boldtext box cursor date description error frame from_myself group grouplens_display header_name header_number headers +syn keyword slrnrcColorObj contained high_score italicstext menu menu_press message neg_score normal pgpsignature pos_score quotes response_char selection signature status +syn keyword slrnrcColorObj contained subject thread_number tilde tree underlinetext unread_subject url verbatim + +" Listed for removal +syn keyword slrnrcColorObj contained verbatum + +syn region slrnrcColorObjStr contained matchgroup=slrnrcColorObj start=+"+ end=+"+ oneline contains=slrnrcColorObj,slrnrcSpaceError +syn keyword slrnrcColorVal contained default +syn keyword slrnrcColorVal contained black blue brightblue brightcyan brightgreen brightmagenta brightred brown cyan gray green lightgray magenta red white yellow +syn region slrnrcColorValStr contained matchgroup=slrnrcColorVal start=+"+ end=+"+ oneline contains=slrnrcColorVal,slrnrcSpaceError +" Matching a function with three arguments +syn keyword slrnrcColor contained color +syn match slrnrcColorInit contained "^\s*color\s\+\S\+" skipwhite nextgroup=slrnrcColorVal\(Str\)\= contains=slrnrcColor\(Obj\|ObjStr\)\= +syn match slrnrcColorLine "^\s*color\s\+\S\+\s\+\S\+" skipwhite nextgroup=slrnrcColorVal\(Str\)\= contains=slrnrcColor\(Init\|Val\|ValStr\) + +" Mono settings +syn keyword slrnrcMonoVal contained blink bold none reverse underline +syn region slrnrcMonoValStr contained matchgroup=slrnrcMonoVal start=+"+ end=+"+ oneline contains=slrnrcMonoVal,slrnrcSpaceError +" Color object is inherited +" Mono needs at least one argument +syn keyword slrnrcMono contained mono +syn match slrnrcMonoInit contained "^\s*mono\s\+\S\+" contains=slrnrcMono,slrnrcColorObj\(Str\)\= +syn match slrnrcMonoLine "^\s*mono\s\+\S\+\s\+\S.*" contains=slrnrcMono\(Init\|Val\|ValStr\),slrnrcComment + +" Functions in article mode +syn keyword slrnrcFunArt contained article_bob article_eob article_left article_line_down article_line_up article_page_down article_page_up article_right article_search +syn keyword slrnrcFunArt contained author_search_backward author_search_forward browse_url cancel catchup catchup_all create_score decode delete delete_thread digit_arg +syn keyword slrnrcFunArt contained enlarge_article_window evaluate_cmd exchange_mark expunge fast_quit followup forward forward_digest get_children_headers get_parent_header +syn keyword slrnrcFunArt contained goto_article goto_last_read grouplens_rate_article header_bob header_eob header_line_down header_line_up header_page_down header_page_up +syn keyword slrnrcFunArt contained help hide_article locate_article mark_spot next next_high_score next_same_subject pipe post post_postponed previous print quit redraw +syn keyword slrnrcFunArt contained repeat_last_key reply request save show_spoilers shrink_article_window skip_quotes skip_to_next_group skip_to_previous_group +syn keyword slrnrcFunArt contained subject_search_backward subject_search_forward supersede suspend tag_header toggle_collapse_threads toggle_header_formats +syn keyword slrnrcFunArt contained toggle_header_tag toggle_headers toggle_pgpsignature toggle_quotes toggle_rot13 toggle_signature toggle_sort toggle_verbatim_marks +syn keyword slrnrcFunArt contained toggle_verbatim_text uncatchup uncatchup_all undelete untag_headers view_scores wrap_article zoom_article_window + +" Listed for removal +syn keyword slrnrcFunArt contained art_bob art_eob art_xpunge article_linedn article_lineup article_pagedn article_pageup down enlarge_window goto_beginning goto_end left +syn keyword slrnrcFunArt contained locate_header_by_msgid pagedn pageup pipe_article prev print_article right scroll_dn scroll_up shrink_window skip_to_prev_group +syn keyword slrnrcFunArt contained toggle_show_author up + +" Functions in group mode +syn keyword slrnrcFunGroup contained add_group bob catchup digit_arg eob evaluate_cmd group_search group_search_backward group_search_forward help line_down line_up move_group +syn keyword slrnrcFunGroup contained page_down page_up post post_postponed quit redraw refresh_groups repeat_last_key save_newsrc select_group subscribe suspend +syn keyword slrnrcFunGroup contained toggle_group_formats toggle_hidden toggle_list_all toggle_scoring transpose_groups uncatchup unsubscribe + +" Listed for removal +syn keyword slrnrcFunGroup contained down group_bob group_eob pagedown pageup toggle_group_display uncatch_up up + +" Functions in readline mode (actually from slang's slrline.c) +syn keyword slrnrcFunRead contained bdel bol complete cycle del delbol delbow deleol down enter eol left quoted_insert right self_insert trim up + +" Binding keys +syn keyword slrnrcSetkeyObj contained article group readline +syn region slrnrcSetkeyObjStr contained matchgroup=slrnrcSetkeyObj start=+"+ end=+"+ oneline contains=slrnrcSetkeyObj +syn match slrnrcSetkeyArt contained '\("\=\)\\1\s\+\S\+' skipwhite nextgroup=slrnrcKey contains=slrnrcSetKeyObj\(Str\)\=,slrnrcFunArt +syn match slrnrcSetkeyGroup contained '\("\=\)\\1\s\+\S\+' skipwhite nextgroup=slrnrcKey contains=slrnrcSetKeyObj\(Str\)\=,slrnrcFunGroup +syn match slrnrcSetkeyRead contained '\("\=\)\\1\s\+\S\+' skipwhite nextgroup=slrnrcKey contains=slrnrcSetKeyObj\(Str\)\=,slrnrcFunRead +syn match slrnrcSetkey "^\s*setkey\>" skipwhite nextgroup=slrnrcSetkeyArt,slrnrcSetkeyGroup,slrnrcSetkeyRead + +" Unbinding keys +syn match slrnrcUnsetkey '^\s*unsetkey\s\+\("\)\=\(article\|group\|readline\)\>\1' skipwhite nextgroup=slrnrcKey contains=slrnrcSetkeyObj\(Str\)\= + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link slrnrcTodo Todo +hi def link slrnrcSpaceError Error +hi def link slrnrcNumber Number +hi def link slrnrcSpecKey SpecialChar +hi def link slrnrcKey String +hi def link slrnrcSpecChar SpecialChar +hi def link slrnrcString String +hi def link slrnSlangPreCondit Special +hi def link slrnrcComment Comment +hi def link slrnrcVarInt Identifier +hi def link slrnrcVarStr Identifier +hi def link slrnrcCmd slrnrcSet +hi def link slrnrcSet Operator +hi def link slrnrcColor Keyword +hi def link slrnrcColorObj Identifier +hi def link slrnrcColorVal String +hi def link slrnrcMono Keyword +hi def link slrnrcMonoObj Identifier +hi def link slrnrcMonoVal String +hi def link slrnrcFunArt Macro +hi def link slrnrcFunGroup Macro +hi def link slrnrcFunRead Macro +hi def link slrnrcSetkeyObj Identifier +hi def link slrnrcSetkey Keyword +hi def link slrnrcUnsetkey slrnrcSetkey + + +let b:current_syntax = "slrnrc" + +"EOF vim: ts=8 noet tw=120 sw=8 sts=0 diff --git a/runtime/syntax/slrnsc.vim b/runtime/syntax/slrnsc.vim new file mode 100644 index 0000000..9f51cad --- /dev/null +++ b/runtime/syntax/slrnsc.vim @@ -0,0 +1,68 @@ +" Vim syntax file +" Language: Slrn score file (based on slrn 0.9.8.0) +" Maintainer: Preben 'Peppe' Guldberg +" Last Change: 8 Oct 2004 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" characters in newsgroup names +setlocal isk=@,48-57,.,-,_,+ + +syn match slrnscComment "%.*$" +syn match slrnscSectionCom ".].*"lc=2 + +syn match slrnscGroup contained "\(\k\|\*\)\+" +syn match slrnscNumber contained "\d\+" +syn match slrnscDate contained "\(\d\{1,2}[-/]\)\{2}\d\{4}" +syn match slrnscDelim contained ":" +syn match slrnscComma contained "," +syn match slrnscOper contained "\~" +syn match slrnscEsc contained "\\[ecC<>.]" +syn match slrnscEsc contained "[?^]" +syn match slrnscEsc contained "[^\\]$\s*$"lc=1 + +syn keyword slrnscInclude contained include +syn match slrnscIncludeLine "^\s*Include\s\+\S.*$" + +syn region slrnscSection matchgroup=slrnscSectionStd start="^\s*\[" end='\]' contains=slrnscGroup,slrnscComma,slrnscSectionCom +syn region slrnscSection matchgroup=slrnscSectionNot start="^\s*\[\~" end='\]' contains=slrnscGroup,slrnscCommas,slrnscSectionCom + +syn keyword slrnscItem contained Age Bytes Date Expires From Has-Body Lines Message-Id Newsgroup References Subject Xref + +syn match slrnscScoreItem contained "%.*$" skipempty nextgroup=slrnscScoreItem contains=slrnscComment +syn match slrnscScoreItem contained "^\s*Expires:\s*\(\d\{1,2}[-/]\)\{2}\d\{4}\s*$" skipempty nextgroup=slrnscScoreItem contains=slrnscItem,slrnscDelim,slrnscDate +syn match slrnscScoreItem contained "^\s*\~\=\(Age\|Bytes\|Has-Body\|Lines\):\s*\d\+\s*$" skipempty nextgroup=slrnscScoreItem contains=slrnscOper,slrnscItem,slrnscDelim,slrnscNumber +syn match slrnscScoreItemFill contained ".*$" skipempty nextgroup=slrnscScoreItem contains=slrnscEsc +syn match slrnscScoreItem contained "^\s*\~\=\(Date\|From\|Message-Id\|Newsgroup\|References\|Subject\|Xref\):" nextgroup=slrnscScoreItemFill contains=slrnscOper,slrnscItem,slrnscDelim +syn region slrnscScoreItem contained matchgroup=Special start="^\s*\~\={::\=" end="^\s*}" skipempty nextgroup=slrnscScoreItem contains=slrnscScoreItem + +syn keyword slrnscScore contained Score +syn match slrnscScoreIdent contained "%.*" +syn match slrnScoreLine "^\s*Score::\=\s\+=\=[-+]\=\d\+\s*\(%.*\)\=$" skipempty nextgroup=slrnscScoreItem contains=slrnscScore,slrnscDelim,slrnscOper,slrnscNumber,slrnscScoreIdent + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link slrnscComment Comment +hi def link slrnscSectionCom slrnscComment +hi def link slrnscGroup String +hi def link slrnscNumber Number +hi def link slrnscDate Special +hi def link slrnscDelim Delimiter +hi def link slrnscComma SpecialChar +hi def link slrnscOper SpecialChar +hi def link slrnscEsc String +hi def link slrnscSectionStd Type +hi def link slrnscSectionNot Delimiter +hi def link slrnscItem Statement +hi def link slrnscScore Keyword +hi def link slrnscScoreIdent Identifier +hi def link slrnscInclude Keyword + + +let b:current_syntax = "slrnsc" + +"EOF vim: ts=8 noet tw=200 sw=8 sts=0 diff --git a/runtime/syntax/sm.vim b/runtime/syntax/sm.vim new file mode 100644 index 0000000..a16575c --- /dev/null +++ b/runtime/syntax/sm.vim @@ -0,0 +1,80 @@ +" Vim syntax file +" Language: sendmail +" Maintainer: Charles E. Campbell +" Last Change: Oct 25, 2016 +" Version: 9 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SM +if exists("b:current_syntax") + finish +endif + +" Comments +syn match smComment "^#.*$" contains=@Spell + +" Definitions, Classes, Files, Options, Precedence, Trusted Users, Mailers +syn match smDefine "^[CDF]." +syn match smDefine "^O[AaBcdDeFfgHiLmNoQqrSsTtuvxXyYzZ]" +syn match smDefine "^O\s"he=e-1 +syn match smDefine "^M[a-zA-Z0-9]\+,"he=e-1 +syn match smDefine "^T" nextgroup=smTrusted +syn match smDefine "^P" nextgroup=smMesg +syn match smTrusted "\S\+$" contained +syn match smMesg "\S*="he=e-1 contained nextgroup=smPrecedence +syn match smPrecedence "-\=[0-9]\+" contained + +" Header Format H?list-of-mailer-flags?name: format +syn match smHeaderSep contained "[?:]" +syn match smHeader "^H\(?[a-zA-Z]\+?\)\=[-a-zA-Z_]\+:" contains=smHeaderSep + +" Variables +syn match smVar "\$[a-z\.\|]" + +" Rulesets +syn match smRuleset "^S\d*" + +" Rewriting Rules +syn match smRewrite "^R" skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsUser + +syn match smRewriteLhsUser contained "[^\t$]\+" skipwhite nextgroup=smRewriteLhsToken,smRewriteLhsSep +syn match smRewriteLhsToken contained "\(\$[-*+]\|\$[-=][A-Za-z]\|\$Y\)\+" skipwhite nextgroup=smRewriteLhsUser,smRewriteLhsSep + +syn match smRewriteLhsSep contained "\t\+" skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsUser + +syn match smRewriteRhsUser contained "[^\t$]\+" skipwhite nextgroup=smRewriteRhsToken,smRewriteRhsSep +syn match smRewriteRhsToken contained "\(\$\d\|\$>\d\|\$#\|\$@\|\$:[-_a-zA-Z]\+\|\$[[\]]\|\$@\|\$:\|\$[A-Za-z]\)\+" skipwhite nextgroup=smRewriteRhsUser,smRewriteRhsSep + +syn match smRewriteRhsSep contained "\t\+" skipwhite nextgroup=smRewriteComment,smRewriteRhsSep +syn match smRewriteRhsSep contained "$" + +syn match smRewriteComment contained "[^\t$]*$" + +" Clauses +syn match smClauseError "\$\." +syn match smElse contained "\$|" +syn match smClauseCont contained "^\t" +syn region smClause matchgroup=Delimiter start="\$?." matchgroup=Delimiter end="\$\." contains=smElse,smClause,smVar,smClauseCont + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link smClause Special +hi def link smClauseError Error +hi def link smComment Comment +hi def link smDefine Statement +hi def link smElse Delimiter +hi def link smHeader Statement +hi def link smHeaderSep String +hi def link smMesg Special +hi def link smPrecedence Number +hi def link smRewrite Statement +hi def link smRewriteComment Comment +hi def link smRewriteLhsToken String +hi def link smRewriteLhsUser Statement +hi def link smRewriteRhsToken String +hi def link smRuleset Preproc +hi def link smTrusted Special +hi def link smVar String + +let b:current_syntax = "sm" + +" vim: ts=18 diff --git a/runtime/syntax/smarty.vim b/runtime/syntax/smarty.vim new file mode 100644 index 0000000..a39c290 --- /dev/null +++ b/runtime/syntax/smarty.vim @@ -0,0 +1,76 @@ +" Vim syntax file +" Language: Smarty Templates +" Maintainer: Manfred Stienstra manfred.stienstra@dwerg.net +" Last Change: Mon Nov 4 11:42:23 CET 2002 +" Filenames: *.tpl +" URL: http://www.dwerg.net/projects/vim/smarty.vim + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if !exists("main_syntax") + " quit when a syntax file was already loaded + if exists("b:current_syntax") + finish + endif + let main_syntax = 'smarty' +endif + +syn case ignore + +runtime! syntax/html.vim +"syn cluster htmlPreproc add=smartyUnZone + +syn match smartyBlock contained "[\[\]]" + +syn keyword smartyTagName capture config_load include include_php +syn keyword smartyTagName insert if elseif else ldelim rdelim literal +syn keyword smartyTagName php section sectionelse foreach foreachelse +syn keyword smartyTagName strip assign counter cycle debug eval fetch +syn keyword smartyTagName html_options html_select_date html_select_time +syn keyword smartyTagName math popup_init popup html_checkboxes html_image +syn keyword smartyTagName html_radios html_table mailto textformat + +syn keyword smartyModifier cat capitalize count_characters count_paragraphs +syn keyword smartyModifier count_sentences count_words date_format default +syn keyword smartyModifier escape indent lower nl2br regex_replace replace +syn keyword smartyModifier spacify string_format strip strip_tags truncate +syn keyword smartyModifier upper wordwrap + +syn keyword smartyInFunc neq eq + +syn keyword smartyProperty contained "file=" +syn keyword smartyProperty contained "loop=" +syn keyword smartyProperty contained "name=" +syn keyword smartyProperty contained "include=" +syn keyword smartyProperty contained "skip=" +syn keyword smartyProperty contained "section=" + +syn keyword smartyConstant "\$smarty" + +syn keyword smartyDot . + +syn region smartyZone matchgroup=Delimiter start="{" end="}" contains=smartyProperty, smartyString, smartyBlock, smartyTagName, smartyConstant, smartyInFunc, smartyModifier + +syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,smartyZone +syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,smartyZone + syn region htmlLink start="\_[^>]*\" end="
"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc,smartyZone + + + +hi def link smartyTagName Identifier +hi def link smartyProperty Constant +" if you want the text inside the braces to be colored, then +" remove the comment in from of the next statement +"hi def link smartyZone Include +hi def link smartyInFunc Function +hi def link smartyBlock Constant +hi def link smartyDot SpecialChar +hi def link smartyModifier Function + +let b:current_syntax = "smarty" + +if main_syntax == 'smarty' + unlet main_syntax +endif + +" vim: ts=8 diff --git a/runtime/syntax/smcl.vim b/runtime/syntax/smcl.vim new file mode 100644 index 0000000..a5baa47 --- /dev/null +++ b/runtime/syntax/smcl.vim @@ -0,0 +1,307 @@ +" smcl.vim -- Vim syntax file for smcl files. +" Language: SMCL -- Stata Markup and Control Language +" Maintainer: Jeff Pitblado +" Last Change: 26apr2006 +" Version: 1.1.2 + +" Log: +" 20mar2003 updated the match definition for cmdab +" 14apr2006 'syntax clear' only under version control +" check for 'b:current_syntax', removed 'did_smcl_syntax_inits' +" 26apr2006 changed 'stata_smcl' to 'smcl' + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case match + +syn keyword smclCCLword current_date contained +syn keyword smclCCLword current_time contained +syn keyword smclCCLword rmsg_time contained +syn keyword smclCCLword stata_version contained +syn keyword smclCCLword version contained +syn keyword smclCCLword born_date contained +syn keyword smclCCLword flavor contained +syn keyword smclCCLword SE contained +syn keyword smclCCLword mode contained +syn keyword smclCCLword console contained +syn keyword smclCCLword os contained +syn keyword smclCCLword osdtl contained +syn keyword smclCCLword machine_type contained +syn keyword smclCCLword byteorder contained +syn keyword smclCCLword sysdir_stata contained +syn keyword smclCCLword sysdir_updates contained +syn keyword smclCCLword sysdir_base contained +syn keyword smclCCLword sysdir_site contained +syn keyword smclCCLword sysdir_plus contained +syn keyword smclCCLword sysdir_personal contained +syn keyword smclCCLword sysdir_oldplace contained +syn keyword smclCCLword adopath contained +syn keyword smclCCLword pwd contained +syn keyword smclCCLword dirsep contained +syn keyword smclCCLword max_N_theory contained +syn keyword smclCCLword max_N_current contained +syn keyword smclCCLword max_k_theory contained +syn keyword smclCCLword max_k_current contained +syn keyword smclCCLword max_width_theory contained +syn keyword smclCCLword max_width_current contained +syn keyword smclCCLword max_matsize contained +syn keyword smclCCLword min_matsize contained +syn keyword smclCCLword max_macrolen contained +syn keyword smclCCLword macrolen contained +syn keyword smclCCLword max_cmdlen contained +syn keyword smclCCLword cmdlen contained +syn keyword smclCCLword namelen contained +syn keyword smclCCLword mindouble contained +syn keyword smclCCLword maxdouble contained +syn keyword smclCCLword epsdouble contained +syn keyword smclCCLword minfloat contained +syn keyword smclCCLword maxfloat contained +syn keyword smclCCLword epsfloat contained +syn keyword smclCCLword minlong contained +syn keyword smclCCLword maxlong contained +syn keyword smclCCLword minint contained +syn keyword smclCCLword maxint contained +syn keyword smclCCLword minbyte contained +syn keyword smclCCLword maxbyte contained +syn keyword smclCCLword maxstrvarlen contained +syn keyword smclCCLword memory contained +syn keyword smclCCLword maxvar contained +syn keyword smclCCLword matsize contained +syn keyword smclCCLword N contained +syn keyword smclCCLword k contained +syn keyword smclCCLword width contained +syn keyword smclCCLword changed contained +syn keyword smclCCLword filename contained +syn keyword smclCCLword filedate contained +syn keyword smclCCLword more contained +syn keyword smclCCLword rmsg contained +syn keyword smclCCLword dp contained +syn keyword smclCCLword linesize contained +syn keyword smclCCLword pagesize contained +syn keyword smclCCLword logtype contained +syn keyword smclCCLword linegap contained +syn keyword smclCCLword scrollbufsize contained +syn keyword smclCCLword varlabelpos contained +syn keyword smclCCLword reventries contained +syn keyword smclCCLword graphics contained +syn keyword smclCCLword scheme contained +syn keyword smclCCLword printcolor contained +syn keyword smclCCLword adosize contained +syn keyword smclCCLword maxdb contained +syn keyword smclCCLword virtual contained +syn keyword smclCCLword checksum contained +syn keyword smclCCLword timeout1 contained +syn keyword smclCCLword timeout2 contained +syn keyword smclCCLword httpproxy contained +syn keyword smclCCLword h_current contained +syn keyword smclCCLword max_matsize contained +syn keyword smclCCLword min_matsize contained +syn keyword smclCCLword max_macrolen contained +syn keyword smclCCLword macrolen contained +syn keyword smclCCLword max_cmdlen contained +syn keyword smclCCLword cmdlen contained +syn keyword smclCCLword namelen contained +syn keyword smclCCLword mindouble contained +syn keyword smclCCLword maxdouble contained +syn keyword smclCCLword epsdouble contained +syn keyword smclCCLword minfloat contained +syn keyword smclCCLword maxfloat contained +syn keyword smclCCLword epsfloat contained +syn keyword smclCCLword minlong contained +syn keyword smclCCLword maxlong contained +syn keyword smclCCLword minint contained +syn keyword smclCCLword maxint contained +syn keyword smclCCLword minbyte contained +syn keyword smclCCLword maxbyte contained +syn keyword smclCCLword maxstrvarlen contained +syn keyword smclCCLword memory contained +syn keyword smclCCLword maxvar contained +syn keyword smclCCLword matsize contained +syn keyword smclCCLword N contained +syn keyword smclCCLword k contained +syn keyword smclCCLword width contained +syn keyword smclCCLword changed contained +syn keyword smclCCLword filename contained +syn keyword smclCCLword filedate contained +syn keyword smclCCLword more contained +syn keyword smclCCLword rmsg contained +syn keyword smclCCLword dp contained +syn keyword smclCCLword linesize contained +syn keyword smclCCLword pagesize contained +syn keyword smclCCLword logtype contained +syn keyword smclCCLword linegap contained +syn keyword smclCCLword scrollbufsize contained +syn keyword smclCCLword varlabelpos contained +syn keyword smclCCLword reventries contained +syn keyword smclCCLword graphics contained +syn keyword smclCCLword scheme contained +syn keyword smclCCLword printcolor contained +syn keyword smclCCLword adosize contained +syn keyword smclCCLword maxdb contained +syn keyword smclCCLword virtual contained +syn keyword smclCCLword checksum contained +syn keyword smclCCLword timeout1 contained +syn keyword smclCCLword timeout2 contained +syn keyword smclCCLword httpproxy contained +syn keyword smclCCLword httpproxyhost contained +syn keyword smclCCLword httpproxyport contained +syn keyword smclCCLword httpproxyauth contained +syn keyword smclCCLword httpproxyuser contained +syn keyword smclCCLword httpproxypw contained +syn keyword smclCCLword trace contained +syn keyword smclCCLword tracedepth contained +syn keyword smclCCLword tracesep contained +syn keyword smclCCLword traceindent contained +syn keyword smclCCLword traceexapnd contained +syn keyword smclCCLword tracenumber contained +syn keyword smclCCLword type contained +syn keyword smclCCLword level contained +syn keyword smclCCLword seed contained +syn keyword smclCCLword searchdefault contained +syn keyword smclCCLword pi contained +syn keyword smclCCLword rc contained + +" Directive for the contant and current-value class +syn region smclCCL start=/{ccl / end=/}/ oneline contains=smclCCLword + +" The order of the following syntax definitions is roughly that of the on-line +" documentation for smcl in Stata, from within Stata see help smcl. + +" Format directives for line and paragraph modes +syn match smclFormat /{smcl}/ +syn match smclFormat /{sf\(\|:[^}]\+\)}/ +syn match smclFormat /{it\(\|:[^}]\+\)}/ +syn match smclFormat /{bf\(\|:[^}]\+\)}/ +syn match smclFormat /{inp\(\|:[^}]\+\)}/ +syn match smclFormat /{input\(\|:[^}]\+\)}/ +syn match smclFormat /{err\(\|:[^}]\+\)}/ +syn match smclFormat /{error\(\|:[^}]\+\)}/ +syn match smclFormat /{res\(\|:[^}]\+\)}/ +syn match smclFormat /{result\(\|:[^}]\+\)}/ +syn match smclFormat /{txt\(\|:[^}]\+\)}/ +syn match smclFormat /{text\(\|:[^}]\+\)}/ +syn match smclFormat /{com\(\|:[^}]\+\)}/ +syn match smclFormat /{cmd\(\|:[^}]\+\)}/ +syn match smclFormat /{cmdab:[^:}]\+:[^:}()]*\(\|:\|:(\|:()\)}/ +syn match smclFormat /{hi\(\|:[^}]\+\)}/ +syn match smclFormat /{hilite\(\|:[^}]\+\)}/ +syn match smclFormat /{ul \(on\|off\)}/ +syn match smclFormat /{ul:[^}]\+}/ +syn match smclFormat /{hline\(\| \d\+\| -\d\+\|:[^}]\+\)}/ +syn match smclFormat /{dup \d\+:[^}]\+}/ +syn match smclFormat /{c [^}]\+}/ +syn match smclFormat /{char [^}]\+}/ +syn match smclFormat /{reset}/ + +" Formatting directives for line mode +syn match smclFormat /{title:[^}]\+}/ +syn match smclFormat /{center:[^}]\+}/ +syn match smclFormat /{centre:[^}]\+}/ +syn match smclFormat /{center \d\+:[^}]\+}/ +syn match smclFormat /{centre \d\+:[^}]\+}/ +syn match smclFormat /{right:[^}]\+}/ +syn match smclFormat /{lalign \d\+:[^}]\+}/ +syn match smclFormat /{ralign \d\+:[^}]\+}/ +syn match smclFormat /{\.\.\.}/ +syn match smclFormat /{col \d\+}/ +syn match smclFormat /{space \d\+}/ +syn match smclFormat /{tab}/ + +" Formatting directives for paragraph mode +syn match smclFormat /{bind:[^}]\+}/ +syn match smclFormat /{break}/ + +syn match smclFormat /{p}/ +syn match smclFormat /{p \d\+}/ +syn match smclFormat /{p \d\+ \d\+}/ +syn match smclFormat /{p \d\+ \d\+ \d\+}/ +syn match smclFormat /{pstd}/ +syn match smclFormat /{psee}/ +syn match smclFormat /{phang\(\|2\|3\)}/ +syn match smclFormat /{pmore\(\|2\|3\)}/ +syn match smclFormat /{pin\(\|2\|3\)}/ +syn match smclFormat /{p_end}/ + +syn match smclFormat /{opt \w\+\(\|:\w\+\)\(\|([^)}]*)\)}/ + +syn match smclFormat /{opth \w*\(\|:\w\+\)(\w*)}/ +syn match smclFormat /{opth "\w\+\((\w\+:[^)}]\+)\)"}/ +syn match smclFormat /{opth \w\+:\w\+(\w\+:[^)}]\+)}/ + +syn match smclFormat /{dlgtab\s*\(\|\d\+\|\d\+\s\+\d\+\):[^}]\+}/ + +syn match smclFormat /{p2colset\s\+\d\+\s\+\d\+\s\+\d\+\s\+\d\+}/ +syn match smclFormat /{p2col\s\+:[^{}]*}.*{p_end}/ +syn match smclFormat /{p2col\s\+:{[^{}]*}}.*{p_end}/ +syn match smclFormat /{p2coldent\s*:[^{}]*}.*{p_end}/ +syn match smclFormat /{p2coldent\s*:{[^{}]*}}.*{p_end}/ +syn match smclFormat /{p2line\s*\(\|\d\+\s\+\d\+\)}/ +syn match smclFormat /{p2colreset}/ + +syn match smclFormat /{synoptset\s\+\d\+\s\+\w\+}/ +syn match smclFormat /{synopt\s*:[^{}]*}.*{p_end}/ +syn match smclFormat /{synopt\s*:{[^{}]*}}.*{p_end}/ +syn match smclFormat /{syntab\s*:[^{}]*}/ +syn match smclFormat /{synopthdr}/ +syn match smclFormat /{synoptline}/ + +" Link directive for line and paragraph modes +syn match smclLink /{help [^}]\+}/ +syn match smclLink /{helpb [^}]\+}/ +syn match smclLink /{help_d:[^}]\+}/ +syn match smclLink /{search [^}]\+}/ +syn match smclLink /{search_d:[^}]\+}/ +syn match smclLink /{browse [^}]\+}/ +syn match smclLink /{view [^}]\+}/ +syn match smclLink /{view_d:[^}]\+}/ +syn match smclLink /{news:[^}]\+}/ +syn match smclLink /{net [^}]\+}/ +syn match smclLink /{net_d:[^}]\+}/ +syn match smclLink /{netfrom_d:[^}]\+}/ +syn match smclLink /{ado [^}]\+}/ +syn match smclLink /{ado_d:[^}]\+}/ +syn match smclLink /{update [^}]\+}/ +syn match smclLink /{update_d:[^}]\+}/ +syn match smclLink /{dialog [^}]\+}/ +syn match smclLink /{back:[^}]\+}/ +syn match smclLink /{clearmore:[^}]\+}/ +syn match smclLink /{stata [^}]\+}/ + +syn match smclLink /{newvar\(\|:[^}]\+\)}/ +syn match smclLink /{var\(\|:[^}]\+\)}/ +syn match smclLink /{varname\(\|:[^}]\+\)}/ +syn match smclLink /{vars\(\|:[^}]\+\)}/ +syn match smclLink /{varlist\(\|:[^}]\+\)}/ +syn match smclLink /{depvar\(\|:[^}]\+\)}/ +syn match smclLink /{depvars\(\|:[^}]\+\)}/ +syn match smclLink /{depvarlist\(\|:[^}]\+\)}/ +syn match smclLink /{indepvars\(\|:[^}]\+\)}/ + +syn match smclLink /{dtype}/ +syn match smclLink /{ifin}/ +syn match smclLink /{weight}/ + +" Comment +syn region smclComment start=/{\*/ end=/}/ oneline + +" Strings +syn region smclString matchgroup=Nothing start=/"/ end=/"/ oneline +syn region smclEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=smclEString + +" assign highlight groups + +hi def link smclEString smclString + +hi def link smclCCLword Statement +hi def link smclCCL Type +hi def link smclFormat Statement +hi def link smclLink Underlined +hi def link smclComment Comment +hi def link smclString String + +let b:current_syntax = "smcl" + +" vim: ts=8 diff --git a/runtime/syntax/smil.vim b/runtime/syntax/smil.vim new file mode 100644 index 0000000..4cf6e84 --- /dev/null +++ b/runtime/syntax/smil.vim @@ -0,0 +1,146 @@ +" Vim syntax file +" Language: SMIL (Synchronized Multimedia Integration Language) +" Maintainer: Herve Foucher +" URL: http://www.helio.org/vim/syntax/smil.vim +" Last Change: 2012 Feb 03 by Thilo Six + +" To learn more about SMIL, please refer to http://www.w3.org/AudioVideo/ +" and to http://www.helio.org/products/smil/tutorial/ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" SMIL is case sensitive +syn case match + +" illegal characters +syn match smilError "[<>&]" +syn match smilError "[()&]" + +if !exists("main_syntax") + let main_syntax = 'smil' +endif + +" tags +syn match smilSpecial contained "\\\d\d\d\|\\." +syn match smilSpecial contained "(" +syn match smilSpecial contained "id(" +syn match smilSpecial contained ")" +syn keyword smilSpecial contained remove freeze true false on off overdub caption new pause replace +syn keyword smilSpecial contained first last +syn keyword smilSpecial contained fill meet slice scroll hidden +syn region smilString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=smilSpecial +syn region smilString contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=smilSpecial +syn match smilValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 +syn region smilEndTag start=++ contains=smilTagN,smilTagError +syn region smilTag start=+<[^/]+ end=+>+ contains=smilTagN,smilString,smilArg,smilValue,smilTagError,smilEvent,smilCssDefinition +syn match smilTagN contained +<\s*[-a-zA-Z0-9]\++ms=s+1 contains=smilTagName,smilSpecialTagName +syn match smilTagN contained +]<"ms=s+1 + +" tag names +syn keyword smilTagName contained smil head body anchor a switch region layout meta +syn match smilTagName contained "root-layout" +syn keyword smilTagName contained par seq +syn keyword smilTagName contained animation video img audio ref text textstream +syn match smilTagName contained "\<\(head\|body\)\>" + + +" legal arg names +syn keyword smilArg contained dur begin end href target id coords show title abstract author copyright alt +syn keyword smilArg contained left top width height fit src name content fill longdesc repeat type +syn match smilArg contained "z-index" +syn match smilArg contained " end-sync" +syn match smilArg contained " region" +syn match smilArg contained "background-color" +syn match smilArg contained "system-bitrate" +syn match smilArg contained "system-captions" +syn match smilArg contained "system-overdub-or-caption" +syn match smilArg contained "system-language" +syn match smilArg contained "system-required" +syn match smilArg contained "system-screen-depth" +syn match smilArg contained "system-screen-size" +syn match smilArg contained "clip-begin" +syn match smilArg contained "clip-end" +syn match smilArg contained "skip-content" + + +" SMIL Boston ext. +" This are new SMIL functionnalities seen on www.w3.org on August 3rd 1999 + +" Animation +syn keyword smilTagName contained animate set move +syn keyword smilArg contained calcMode from to by additive values origin path +syn keyword smilArg contained accumulate hold attribute +syn match smilArg contained "xml:link" +syn keyword smilSpecial contained discrete linear spline parent layout +syn keyword smilSpecial contained top left simple + +" Linking +syn keyword smilTagName contained area +syn keyword smilArg contained actuate behavior inline sourceVolume +syn keyword smilArg contained destinationVolume destinationPlaystate tabindex +syn keyword smilArg contained class style lang dir onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup shape nohref accesskey onfocus onblur +syn keyword smilSpecial contained play pause stop rect circ poly child par seq + +" Media Object +syn keyword smilTagName contained rtpmap +syn keyword smilArg contained port transport encoding payload clipBegin clipEnd +syn match smilArg contained "fmt-list" + +" Timing and Synchronization +syn keyword smilTagName contained excl +syn keyword smilArg contained beginEvent endEvent eventRestart endSync repeatCount repeatDur +syn keyword smilArg contained syncBehavior syncTolerance +syn keyword smilSpecial contained canSlip locked + +" special characters +syn match smilSpecialChar "&[^;]*;" + +if exists("smil_wrong_comments") + syn region smilComment start=++ +else + syn region smilComment start=++ contains=smilCommentPart,smilCommentError + syn match smilCommentError contained "[^>+ + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link smilTag Function +hi def link smilEndTag Identifier +hi def link smilArg Type +hi def link smilTagName smilStatement +hi def link smilSpecialTagName Exception +hi def link smilValue Value +hi def link smilSpecialChar Special + +hi def link smilSpecial Special +hi def link smilSpecialChar Special +hi def link smilString String +hi def link smilStatement Statement +hi def link smilComment Comment +hi def link smilCommentPart Comment +hi def link smilPreProc PreProc +hi def link smilValue String +hi def link smilCommentError smilError +hi def link smilTagError smilError +hi def link smilError Error + + +let b:current_syntax = "smil" + +if main_syntax == 'smil' + unlet main_syntax +endif + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/runtime/syntax/smith.vim b/runtime/syntax/smith.vim new file mode 100644 index 0000000..b045d3b --- /dev/null +++ b/runtime/syntax/smith.vim @@ -0,0 +1,39 @@ +" Vim syntax file +" Language: SMITH +" Maintainer: Rafal M. Sulejman +" Last Change: 21.07.2000 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + + +syn match smithComment ";.*$" + +syn match smithNumber "\<[+-]*[0-9]\d*\>" + +syn match smithRegister "R[\[]*[0-9]*[\]]*" + +syn match smithKeyword "COR\|MOV\|MUL\|NOT\|STOP\|SUB\|NOP\|BLA\|REP" + +syn region smithString start=+"+ skip=+\\\\\|\\"+ end=+"+ + + +syn case match + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link smithRegister Identifier +hi def link smithKeyword Keyword +hi def link smithComment Comment +hi def link smithString String +hi def link smithNumber Number + + +let b:current_syntax = "smith" + +" vim: ts=2 diff --git a/runtime/syntax/sml.vim b/runtime/syntax/sml.vim new file mode 100644 index 0000000..8f1af3f --- /dev/null +++ b/runtime/syntax/sml.vim @@ -0,0 +1,220 @@ +" Vim syntax file +" Language: SML +" Filenames: *.sml *.sig +" Maintainer: Markus Mottl +" Previous Maintainer: Fabrizio Zeno Cornelli +" (invalid) +" Last Change: 2022 Apr 01 +" 2015 Aug 31 - Fixed opening of modules (Ramana Kumar) +" 2006 Oct 23 - Fixed character highlighting bug (MM) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Disable spell checking of syntax. +syn spell notoplevel + +" SML is case sensitive. +syn case match + +" lowercase identifier - the standard way to match +syn match smlLCIdentifier /\<\(\l\|_\)\(\w\|'\)*\>/ + +syn match smlKeyChar "|" + +" Errors +syn match smlBraceErr "}" +syn match smlBrackErr "\]" +syn match smlParenErr ")" +syn match smlCommentErr "\*)" +syn match smlThenErr "\" + +" Error-highlighting of "end" without synchronization: +" as keyword or as error (default) +if exists("sml_noend_error") + syn match smlKeyword "\" +else + syn match smlEndErr "\" +endif + +" Some convenient clusters +syn cluster smlAllErrs contains=smlBraceErr,smlBrackErr,smlParenErr,smlCommentErr,smlEndErr,smlThenErr + +syn cluster smlAENoParen contains=smlBraceErr,smlBrackErr,smlCommentErr,smlEndErr,smlThenErr + +syn cluster smlContained contains=smlTodo,smlPreDef,smlModParam,smlModParam1,smlPreMPRestr,smlMPRestr,smlMPRestr1,smlMPRestr2,smlMPRestr3,smlModRHS,smlFuncWith,smlFuncStruct,smlModTypeRestr,smlModTRWith,smlWith,smlWithRest,smlModType,smlFullMod + + +" Enclosing delimiters +syn region smlEncl transparent matchgroup=smlKeyword start="(" matchgroup=smlKeyword end=")" contains=ALLBUT,@smlContained,smlParenErr +syn region smlEncl transparent matchgroup=smlKeyword start="{" matchgroup=smlKeyword end="}" contains=ALLBUT,@smlContained,smlBraceErr +syn region smlEncl transparent matchgroup=smlKeyword start="\[" matchgroup=smlKeyword end="\]" contains=ALLBUT,@smlContained,smlBrackErr +syn region smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=smlKeyword end="\]" contains=ALLBUT,@smlContained,smlBrackErr + + +" Comments +syn region smlComment start="(\*" end="\*)" contains=smlComment,smlTodo,@Spell +syn keyword smlTodo contained TODO FIXME XXX + + +" let +syn region smlEnd matchgroup=smlKeyword start="\" matchgroup=smlKeyword end="\" contains=ALLBUT,@smlContained,smlEndErr + +" local +syn region smlEnd matchgroup=smlKeyword start="\" matchgroup=smlKeyword end="\" contains=ALLBUT,@smlContained,smlEndErr + +" abstype +syn region smlNone matchgroup=smlKeyword start="\" matchgroup=smlKeyword end="\" contains=ALLBUT,@smlContained,smlEndErr + +" begin +syn region smlEnd matchgroup=smlKeyword start="\" matchgroup=smlKeyword end="\" contains=ALLBUT,@smlContained,smlEndErr + +" if +syn region smlNone matchgroup=smlKeyword start="\" matchgroup=smlKeyword end="\" contains=ALLBUT,@smlContained,smlThenErr + + +"" Modules + +" "struct" +syn region smlStruct matchgroup=smlModule start="\" matchgroup=smlModule end="\" contains=ALLBUT,@smlContained,smlEndErr + +" "sig" +syn region smlSig matchgroup=smlModule start="\" matchgroup=smlModule end="\" contains=ALLBUT,@smlContained,smlEndErr,smlModule +syn region smlModSpec matchgroup=smlKeyword start="\" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr + +" "open" +syn region smlNone matchgroup=smlKeyword start="\" matchgroup=smlModule end="\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment + +" "structure" - somewhat complicated stuff ;-) +syn region smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDef +syn region smlPreDef start="."me=e-1 matchgroup=smlKeyword end="\l\|="me=e-1 contained contains=@smlAllErrs,smlComment,smlModParam,smlModTypeRestr,smlModTRWith nextgroup=smlModPreRHS +syn region smlModParam start="([^*]" end=")" contained contains=@smlAENoParen,smlModParam1 +syn match smlModParam1 "\<\u\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=smlPreMPRestr + +syn region smlPreMPRestr start="."me=e-1 end=")"me=e-1 contained contains=@smlAllErrs,smlComment,smlMPRestr,smlModTypeRestr + +syn region smlMPRestr start=":" end="."me=e-1 contained contains=@smlComment skipwhite skipempty nextgroup=smlMPRestr1,smlMPRestr2,smlMPRestr3 +syn region smlMPRestr1 matchgroup=smlModule start="\ssig\s\=" matchgroup=smlModule end="\" contained contains=ALLBUT,@smlContained,smlEndErr,smlModule +syn region smlMPRestr2 start="\sfunctor\(\s\|(\)\="me=e-1 matchgroup=smlKeyword end="->" contained contains=@smlAllErrs,smlComment,smlModParam skipwhite skipempty nextgroup=smlFuncWith +syn match smlMPRestr3 "\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*" contained +syn match smlModPreRHS "=" contained skipwhite skipempty nextgroup=smlModParam,smlFullMod +syn region smlModRHS start="." end=".\w\|([^*]"me=e-2 contained contains=smlComment skipwhite skipempty nextgroup=smlModParam,smlFullMod +syn match smlFullMod "\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*" contained skipwhite skipempty nextgroup=smlFuncWith + +syn region smlFuncWith start="([^*]"me=e-1 end=")" contained contains=smlComment,smlWith,smlFuncStruct +syn region smlFuncStruct matchgroup=smlModule start="[^a-zA-Z]struct\>"hs=s+1 matchgroup=smlModule end="\" contains=ALLBUT,@smlContained,smlEndErr + +syn match smlModTypeRestr "\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" contained +syn region smlModTRWith start=":\s*("hs=s+1 end=")" contained contains=@smlAENoParen,smlWith +syn match smlWith "\<\(\u\(\w\|'\)*\.\)*\w\(\w\|'\)*\>" contained skipwhite skipempty nextgroup=smlWithRest +syn region smlWithRest start="[^)]" end=")"me=e-1 contained contains=ALLBUT,@smlContained + +" "signature" +syn region smlKeyword start="\" matchgroup=smlModule end="\<\w\(\w\|'\)*\>" contains=smlComment skipwhite skipempty nextgroup=smlMTDef +syn match smlMTDef "=\s*\w\(\w\|'\)*\>"hs=s+1,me=s + +syn keyword smlKeyword and andalso case +syn keyword smlKeyword datatype else eqtype +syn keyword smlKeyword exception fn fun handle +syn keyword smlKeyword in infix infixl infixr +syn keyword smlKeyword match nonfix of orelse +syn keyword smlKeyword raise handle type +syn keyword smlKeyword val where while with withtype + +syn keyword smlType bool char exn int list option +syn keyword smlType real string unit + +syn keyword smlOperator div mod not or quot rem + +syn keyword smlBoolean true false +syn match smlConstructor "(\s*)" +syn match smlConstructor "\[\s*\]" +syn match smlConstructor "#\[\s*\]" +syn match smlConstructor "\u\(\w\|'\)*\>" + +" Module prefix +syn match smlModPath "\u\(\w\|'\)*\."he=e-1 + +syn match smlCharacter +#"\\""\|#"."\|#"\\\d\d\d"+ +syn match smlCharErr +#"\\\d\d"\|#"\\\d"+ +syn region smlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell + +syn match smlFunDef "=>" +syn match smlRefAssign ":=" +syn match smlTopStop ";;" +syn match smlOperator "\^" +syn match smlOperator "::" +syn match smlAnyVar "\<_\>" +syn match smlKeyChar "!" +syn match smlKeyChar ";" +syn match smlKeyChar "\*" +syn match smlKeyChar "=" + +syn match smlNumber "\<-\=\d\+\>" +syn match smlNumber "\<-\=0[x|X]\x\+\>" +syn match smlReal "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>" + +" Synchronization +syn sync minlines=20 +syn sync maxlines=500 + +syn sync match smlEndSync grouphere smlEnd "\" +syn sync match smlEndSync groupthere smlEnd "\" +syn sync match smlStructSync grouphere smlStruct "\" +syn sync match smlStructSync groupthere smlStruct "\" +syn sync match smlSigSync grouphere smlSig "\" +syn sync match smlSigSync groupthere smlSig "\" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link smlBraceErr Error +hi def link smlBrackErr Error +hi def link smlParenErr Error + +hi def link smlCommentErr Error + +hi def link smlEndErr Error +hi def link smlThenErr Error + +hi def link smlCharErr Error + +hi def link smlComment Comment + +hi def link smlModPath Include +hi def link smlModule Include +hi def link smlModParam1 Include +hi def link smlModType Include +hi def link smlMPRestr3 Include +hi def link smlFullMod Include +hi def link smlModTypeRestr Include +hi def link smlWith Include +hi def link smlMTDef Include + +hi def link smlConstructor Constant + +hi def link smlModPreRHS Keyword +hi def link smlMPRestr2 Keyword +hi def link smlKeyword Keyword +hi def link smlFunDef Keyword +hi def link smlRefAssign Keyword +hi def link smlKeyChar Keyword +hi def link smlAnyVar Keyword +hi def link smlTopStop Keyword +hi def link smlOperator Keyword + +hi def link smlBoolean Boolean +hi def link smlCharacter Character +hi def link smlNumber Number +hi def link smlReal Float +hi def link smlString String +hi def link smlType Type +hi def link smlTodo Todo +hi def link smlEncl Keyword + + +let b:current_syntax = "sml" + +" vim: ts=8 diff --git a/runtime/syntax/snnsnet.vim b/runtime/syntax/snnsnet.vim new file mode 100644 index 0000000..9dc9e06 --- /dev/null +++ b/runtime/syntax/snnsnet.vim @@ -0,0 +1,67 @@ +" Vim syntax file +" Language: SNNS network file +" Maintainer: Davide Alberani +" Last Change: 28 Apr 2001 +" Version: 0.2 +" URL: http://digilander.iol.it/alberanid/vim/syntax/snnsnet.vim +" +" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/ +" is a simulator for neural networks. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match snnsnetTitle "no\." +syn match snnsnetTitle "type name" +syn match snnsnetTitle "unit name" +syn match snnsnetTitle "act\( func\)\=" +syn match snnsnetTitle "out func" +syn match snnsnetTitle "site\( name\)\=" +syn match snnsnetTitle "site function" +syn match snnsnetTitle "source:weight" +syn match snnsnetTitle "unitNo\." +syn match snnsnetTitle "delta x" +syn match snnsnetTitle "delta y" +syn keyword snnsnetTitle typeName unitName bias st position subnet layer sites name target z LLN LUN Toff Soff Ctype + +syn match snnsnetType "SNNS network definition file [Vv]\d.\d.*" contains=snnsnetNumbers +syn match snnsnetType "generated at.*" contains=snnsnetNumbers +syn match snnsnetType "network name\s*:" +syn match snnsnetType "source files\s*:" +syn match snnsnetType "no\. of units\s*:.*" contains=snnsnetNumbers +syn match snnsnetType "no\. of connections\s*:.*" contains=snnsnetNumbers +syn match snnsnetType "no\. of unit types\s*:.*" contains=snnsnetNumbers +syn match snnsnetType "no\. of site types\s*:.*" contains=snnsnetNumbers +syn match snnsnetType "learning function\s*:" +syn match snnsnetType "pruning function\s*:" +syn match snnsnetType "subordinate learning function\s*:" +syn match snnsnetType "update function\s*:" + +syn match snnsnetSection "unit definition section" +syn match snnsnetSection "unit default section" +syn match snnsnetSection "site definition section" +syn match snnsnetSection "type definition section" +syn match snnsnetSection "connection definition section" +syn match snnsnetSection "layer definition section" +syn match snnsnetSection "subnet definition section" +syn match snnsnetSection "3D translation section" +syn match snnsnetSection "time delay section" + +syn match snnsnetNumbers "\d" contained +syn match snnsnetComment "#.*$" contains=snnsnetTodo +syn keyword snnsnetTodo TODO XXX FIXME contained + + +hi def link snnsnetType Type +hi def link snnsnetComment Comment +hi def link snnsnetNumbers Number +hi def link snnsnetSection Statement +hi def link snnsnetTitle Label +hi def link snnsnetTodo Todo + + +let b:current_syntax = "snnsnet" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/snnspat.vim b/runtime/syntax/snnspat.vim new file mode 100644 index 0000000..cb6e9c5 --- /dev/null +++ b/runtime/syntax/snnspat.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: SNNS pattern file +" Maintainer: Davide Alberani +" Last Change: 2012 Feb 03 by Thilo Six +" Version: 0.2 +" URL: http://digilander.iol.it/alberanid/vim/syntax/snnspat.vim +" +" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/ +" is a simulator for neural networks. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" anything that isn't part of the header, a comment or a number +" is wrong +syn match snnspatError ".*" +" hoping that matches any kind of notation... +syn match snnspatAccepted "\([-+]\=\(\d\+\.\|\.\)\=\d\+\([Ee][-+]\=\d\+\)\=\)" +syn match snnspatAccepted "\s" +syn match snnspatBrac "\[\s*\d\+\(\s\|\d\)*\]" contains=snnspatNumbers + +" the accepted fields in the header +syn match snnspatNoHeader "No\. of patterns\s*:\s*" contained +syn match snnspatNoHeader "No\. of input units\s*:\s*" contained +syn match snnspatNoHeader "No\. of output units\s*:\s*" contained +syn match snnspatNoHeader "No\. of variable input dimensions\s*:\s*" contained +syn match snnspatNoHeader "No\. of variable output dimensions\s*:\s*" contained +syn match snnspatNoHeader "Maximum input dimensions\s*:\s*" contained +syn match snnspatNoHeader "Maximum output dimensions\s*:\s*" contained +syn match snnspatGen "generated at.*" contained contains=snnspatNumbers +syn match snnspatGen "SNNS pattern definition file [Vv]\d\.\d" contained contains=snnspatNumbers + +" the header, what is not an accepted field, is an error +syn region snnspatHeader start="^SNNS" end="^\s*[-+\.]\=[0-9#]"me=e-2 contains=snnspatNoHeader,snnspatNumbers,snnspatGen,snnspatBrac + +" numbers inside the header +syn match snnspatNumbers "\d" contained +syn match snnspatComment "#.*$" contains=snnspatTodo +syn keyword snnspatTodo TODO XXX FIXME contained + + +hi def link snnspatGen Statement +hi def link snnspatHeader Error +hi def link snnspatNoHeader Define +hi def link snnspatNumbers Number +hi def link snnspatComment Comment +hi def link snnspatError Error +hi def link snnspatTodo Todo +hi def link snnspatAccepted NONE +hi def link snnspatBrac NONE + + +let b:current_syntax = "snnspat" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 sw=2 diff --git a/runtime/syntax/snnsres.vim b/runtime/syntax/snnsres.vim new file mode 100644 index 0000000..2f19b67 --- /dev/null +++ b/runtime/syntax/snnsres.vim @@ -0,0 +1,50 @@ +" Vim syntax file +" Language: SNNS result file +" Maintainer: Davide Alberani +" Last Change: 28 Apr 2001 +" Version: 0.2 +" URL: http://digilander.iol.it/alberanid/vim/syntax/snnsres.vim +" +" SNNS http://www-ra.informatik.uni-tuebingen.de/SNNS/ +" is a simulator for neural networks. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" the accepted fields in the header +syn match snnsresNoHeader "No\. of patterns\s*:\s*" contained +syn match snnsresNoHeader "No\. of input units\s*:\s*" contained +syn match snnsresNoHeader "No\. of output units\s*:\s*" contained +syn match snnsresNoHeader "No\. of variable input dimensions\s*:\s*" contained +syn match snnsresNoHeader "No\. of variable output dimensions\s*:\s*" contained +syn match snnsresNoHeader "Maximum input dimensions\s*:\s*" contained +syn match snnsresNoHeader "Maximum output dimensions\s*:\s*" contained +syn match snnsresNoHeader "startpattern\s*:\s*" contained +syn match snnsresNoHeader "endpattern\s*:\s*" contained +syn match snnsresNoHeader "input patterns included" contained +syn match snnsresNoHeader "teaching output included" contained +syn match snnsresGen "generated at.*" contained contains=snnsresNumbers +syn match snnsresGen "SNNS result file [Vv]\d\.\d" contained contains=snnsresNumbers + +" the header, what is not an accepted field, is an error +syn region snnsresHeader start="^SNNS" end="^\s*[-+\.]\=[0-9#]"me=e-2 contains=snnsresNoHeader,snnsresNumbers,snnsresGen + +" numbers inside the header +syn match snnsresNumbers "\d" contained +syn match snnsresComment "#.*$" contains=snnsresTodo +syn keyword snnsresTodo TODO XXX FIXME contained + + +hi def link snnsresGen Statement +hi def link snnsresHeader Statement +hi def link snnsresNoHeader Define +hi def link snnsresNumbers Number +hi def link snnsresComment Comment +hi def link snnsresTodo Todo + + +let b:current_syntax = "snnsres" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/snobol4.vim b/runtime/syntax/snobol4.vim new file mode 100644 index 0000000..11ce2e0 --- /dev/null +++ b/runtime/syntax/snobol4.vim @@ -0,0 +1,113 @@ +" Vim syntax file +" Language: SNOBOL4 +" Maintainer: Rafal Sulejman +" Site: http://rms.republika.pl/vim/syntax/snobol4.vim +" Last change: : Thu, 25 Jan 2018 14:21:24 +0100 +" Changes: +" - system variables updated for SNOBOL4 2.0+ +" - strict snobol4 mode (set snobol4_strict_mode to activate) +" - incorrect HL of dots in strings corrected +" - incorrect HL of dot-variables in parens corrected +" - one character labels weren't displayed correctly. +" - nonexistent Snobol4 keywords displayed as errors. + +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case ignore + +" Snobol4 keywords +syn keyword snobol4Keyword any apply arb arbno arg array +syn keyword snobol4Keyword break +syn keyword snobol4Keyword char clear code collect convert copy +syn keyword snobol4Keyword data datatype date define detach differ dump dupl +syn keyword snobol4Keyword endfile eq eval +syn keyword snobol4Keyword field +syn keyword snobol4Keyword ge gt ident +syn keyword snobol4Keyword input integer item +syn keyword snobol4Keyword le len lgt local lpad lt +syn keyword snobol4Keyword ne notany +syn keyword snobol4Keyword opsyn output +syn keyword snobol4Keyword pos prototype +syn keyword snobol4Keyword remdr replace rpad rpos rtab rewind +syn keyword snobol4Keyword size span stoptr +syn keyword snobol4Keyword tab table time trace trim terminal +syn keyword snobol4Keyword unload +syn keyword snobol4Keyword value + +" CSNOBOL keywords +syn keyword snobol4ExtKeyword breakx +syn keyword snobol4ExtKeyword char chop +syn keyword snobol4ExtKeyword date delete +syn keyword snobol4ExtKeyword exp +syn keyword snobol4ExtKeyword freeze function +syn keyword snobol4ExtKeyword host +syn keyword snobol4ExtKeyword io_findunit +syn keyword snobol4ExtKeyword label lpad leq lge lle llt lne log +syn keyword snobol4ExtKeyword ord +syn keyword snobol4ExtKeyword reverse rpad rsort rename +syn keyword snobol4ExtKeyword serv_listen sset set sort sqrt substr +syn keyword snobol4ExtKeyword thaw +syn keyword snobol4ExtKeyword vdiffer + +syn region snobol4String matchgroup=Quote start=+"+ end=+"+ +syn region snobol4String matchgroup=Quote start=+'+ end=+'+ +syn match snobol4BogusStatement "^-[^ ][^ ]*" +syn match snobol4Statement "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)" +syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1 +syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError +syn match snobol4Number "\<\d*\(\.\d\d*\)*\>" +syn match snobol4BogusSysVar "&\w\{1,}" +syn match snobol4SysVar "&\<\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|digits\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)\>" +syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)" +syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*" +syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)" + +" Parens matching +syn cluster snobol4ParenGroup contains=snobol4ParenError +syn region snobol4Paren transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket +syn match snobol4ParenError display "[\])]" +syn match snobol4ErrInParen display contained "[\]{}]\|<%\|%>" +syn region snobol4Bracket transparent start='\[\|<:' end=']\|:>' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInParen +syn match snobol4ErrInBracket display contained "[){}]\|<%\|%>" + +" optional shell shebang line +" syn match snobol4Comment "^\#\!.*$" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link snobol4Constant Constant +hi def link snobol4Label Label +hi def link snobol4Goto Repeat +hi def link snobol4Conditional Conditional +hi def link snobol4Repeat Repeat +hi def link snobol4Number Number +hi def link snobol4Error Error +hi def link snobol4Statement PreProc +hi def link snobol4BogusStatement snobol4Error +hi def link snobol4String String +hi def link snobol4Comment Comment +hi def link snobol4Special Special +hi def link snobol4Todo Todo +hi def link snobol4Keyword Keyword +hi def link snobol4Function Function +hi def link snobol4MathsOperator Operator +hi def link snobol4ParenError snobol4Error +hi def link snobol4ErrInParen snobol4Error +hi def link snobol4ErrInBracket snobol4Error +hi def link snobol4SysVar Keyword +hi def link snobol4BogusSysVar snobol4Error +if exists("snobol4_strict_mode") + hi def link snobol4ExtSysVar WarningMsg + hi def link snobol4ExtKeyword WarningMsg +else + hi def link snobol4ExtSysVar snobol4SysVar + hi def link snobol4ExtKeyword snobol4Keyword +endif + + +let b:current_syntax = "snobol4" +" vim: ts=8 diff --git a/runtime/syntax/solidity.vim b/runtime/syntax/solidity.vim new file mode 100644 index 0000000..a46d041 --- /dev/null +++ b/runtime/syntax/solidity.vim @@ -0,0 +1,173 @@ +" Vim syntax file +" Language: Solidity +" Maintainer: Cothi (jiungdev@gmail.com) +" Original Author: tomlion (https://github.com/tomlion/vim-solidity/blob/master/syntax/solidity.vim) +" Last Change: 2022 Sep 27 +" +" Contributors: +" Modified by thesis (https://github.com/thesis/vim-solidity/blob/main/indent/solidity.vim) + +if exists("b:current_syntax") + finish +endif + +" keyword +syn keyword solKeyword abstract anonymous as break calldata case catch constant constructor continue default switch revert require +syn keyword solKeyword ecrecover addmod mulmod keccak256 +syn keyword solKeyword delete do else emit enum external final for function if immutable import in indexed inline +syn keyword solKeyword interface internal is let match memory modifier new of payable pragma private public pure override virtual +syn keyword solKeyword relocatable return returns static storage struct throw try type typeof using +syn keyword solKeyword var view while + +syn keyword solConstant true false wei szabo finney ether seconds minutes hours days weeks years now +syn keyword solConstant abi block blockhash msg tx this super selfdestruct + +syn keyword solBuiltinType mapping address bool +syn keyword solBuiltinType int int8 int16 int24 int32 int40 int48 int56 int64 int72 int80 int88 int96 int104 int112 int120 int128 int136 int144 int152 int160 int168 int178 int184 int192 int200 int208 int216 int224 int232 int240 int248 int256 +syn keyword solBuiltinType uint uint8 uint16 uint24 uint32 uint40 uint48 uint56 uint64 uint72 uint80 uint88 uint96 uint104 uint112 uint120 uint128 uint136 uint144 uint152 uint160 uint168 uint178 uint184 uint192 uint200 uint208 uint216 uint224 uint232 uint240 uint248 uint256 +syn keyword solBuiltinType fixed +syn keyword solBuiltinType fixed0x8 fixed0x16 fixed0x24 fixed0x32 fixed0x40 fixed0x48 fixed0x56 fixed0x64 fixed0x72 fixed0x80 fixed0x88 fixed0x96 fixed0x104 fixed0x112 fixed0x120 fixed0x128 fixed0x136 fixed0x144 fixed0x152 fixed0x160 fixed0x168 fixed0x178 fixed0x184 fixed0x192 fixed0x200 fixed0x208 fixed0x216 fixed0x224 fixed0x232 fixed0x240 fixed0x248 fixed0x256 +syn keyword solBuiltinType fixed8x8 fixed8x16 fixed8x24 fixed8x32 fixed8x40 fixed8x48 fixed8x56 fixed8x64 fixed8x72 fixed8x80 fixed8x88 fixed8x96 fixed8x104 fixed8x112 fixed8x120 fixed8x128 fixed8x136 fixed8x144 fixed8x152 fixed8x160 fixed8x168 fixed8x178 fixed8x184 fixed8x192 fixed8x200 fixed8x208 fixed8x216 fixed8x224 fixed8x232 fixed8x240 fixed8x248 +syn keyword solBuiltinType fixed16x8 fixed16x16 fixed16x24 fixed16x32 fixed16x40 fixed16x48 fixed16x56 fixed16x64 fixed16x72 fixed16x80 fixed16x88 fixed16x96 fixed16x104 fixed16x112 fixed16x120 fixed16x128 fixed16x136 fixed16x144 fixed16x152 fixed16x160 fixed16x168 fixed16x178 fixed16x184 fixed16x192 fixed16x200 fixed16x208 fixed16x216 fixed16x224 fixed16x232 fixed16x240 +syn keyword solBuiltinType fixed24x8 fixed24x16 fixed24x24 fixed24x32 fixed24x40 fixed24x48 fixed24x56 fixed24x64 fixed24x72 fixed24x80 fixed24x88 fixed24x96 fixed24x104 fixed24x112 fixed24x120 fixed24x128 fixed24x136 fixed24x144 fixed24x152 fixed24x160 fixed24x168 fixed24x178 fixed24x184 fixed24x192 fixed24x200 fixed24x208 fixed24x216 fixed24x224 fixed24x232 +syn keyword solBuiltinType fixed32x8 fixed32x16 fixed32x24 fixed32x32 fixed32x40 fixed32x48 fixed32x56 fixed32x64 fixed32x72 fixed32x80 fixed32x88 fixed32x96 fixed32x104 fixed32x112 fixed32x120 fixed32x128 fixed32x136 fixed32x144 fixed32x152 fixed32x160 fixed32x168 fixed32x178 fixed32x184 fixed32x192 fixed32x200 fixed32x208 fixed32x216 fixed32x224 +syn keyword solBuiltinType fixed40x8 fixed40x16 fixed40x24 fixed40x32 fixed40x40 fixed40x48 fixed40x56 fixed40x64 fixed40x72 fixed40x80 fixed40x88 fixed40x96 fixed40x104 fixed40x112 fixed40x120 fixed40x128 fixed40x136 fixed40x144 fixed40x152 fixed40x160 fixed40x168 fixed40x178 fixed40x184 fixed40x192 fixed40x200 fixed40x208 fixed40x216 +syn keyword solBuiltinType fixed48x8 fixed48x16 fixed48x24 fixed48x32 fixed48x40 fixed48x48 fixed48x56 fixed48x64 fixed48x72 fixed48x80 fixed48x88 fixed48x96 fixed48x104 fixed48x112 fixed48x120 fixed48x128 fixed48x136 fixed48x144 fixed48x152 fixed48x160 fixed48x168 fixed48x178 fixed48x184 fixed48x192 fixed48x200 fixed48x208 +syn keyword solBuiltinType fixed56x8 fixed56x16 fixed56x24 fixed56x32 fixed56x40 fixed56x48 fixed56x56 fixed56x64 fixed56x72 fixed56x80 fixed56x88 fixed56x96 fixed56x104 fixed56x112 fixed56x120 fixed56x128 fixed56x136 fixed56x144 fixed56x152 fixed56x160 fixed56x168 fixed56x178 fixed56x184 fixed56x192 fixed56x200 +syn keyword solBuiltinType fixed64x8 fixed64x16 fixed64x24 fixed64x32 fixed64x40 fixed64x48 fixed64x56 fixed64x64 fixed64x72 fixed64x80 fixed64x88 fixed64x96 fixed64x104 fixed64x112 fixed64x120 fixed64x128 fixed64x136 fixed64x144 fixed64x152 fixed64x160 fixed64x168 fixed64x178 fixed64x184 fixed64x192 +syn keyword solBuiltinType fixed72x8 fixed72x16 fixed72x24 fixed72x32 fixed72x40 fixed72x48 fixed72x56 fixed72x64 fixed72x72 fixed72x80 fixed72x88 fixed72x96 fixed72x104 fixed72x112 fixed72x120 fixed72x128 fixed72x136 fixed72x144 fixed72x152 fixed72x160 fixed72x168 fixed72x178 fixed72x184 +syn keyword solBuiltinType fixed80x8 fixed80x16 fixed80x24 fixed80x32 fixed80x40 fixed80x48 fixed80x56 fixed80x64 fixed80x72 fixed80x80 fixed80x88 fixed80x96 fixed80x104 fixed80x112 fixed80x120 fixed80x128 fixed80x136 fixed80x144 fixed80x152 fixed80x160 fixed80x168 fixed80x178 +syn keyword solBuiltinType fixed88x8 fixed88x16 fixed88x24 fixed88x32 fixed88x40 fixed88x48 fixed88x56 fixed88x64 fixed88x72 fixed88x80 fixed88x88 fixed88x96 fixed88x104 fixed88x112 fixed88x120 fixed88x128 fixed88x136 fixed88x144 fixed88x152 fixed88x160 fixed88x168 +syn keyword solBuiltinType fixed96x8 fixed96x16 fixed96x24 fixed96x32 fixed96x40 fixed96x48 fixed96x56 fixed96x64 fixed96x72 fixed96x80 fixed96x88 fixed96x96 fixed96x104 fixed96x112 fixed96x120 fixed96x128 fixed96x136 fixed96x144 fixed96x152 fixed96x160 +syn keyword solBuiltinType fixed104x8 fixed104x16 fixed104x24 fixed104x32 fixed104x40 fixed104x48 fixed104x56 fixed104x64 fixed104x72 fixed104x80 fixed104x88 fixed104x96 fixed104x104 fixed104x112 fixed104x120 fixed104x128 fixed104x136 fixed104x144 fixed104x152 +syn keyword solBuiltinType fixed112x8 fixed112x16 fixed112x24 fixed112x32 fixed112x40 fixed112x48 fixed112x56 fixed112x64 fixed112x72 fixed112x80 fixed112x88 fixed112x96 fixed112x104 fixed112x112 fixed112x120 fixed112x128 fixed112x136 fixed112x144 +syn keyword solBuiltinType fixed120x8 fixed120x16 fixed120x24 fixed120x32 fixed120x40 fixed120x48 fixed120x56 fixed120x64 fixed120x72 fixed120x80 fixed120x88 fixed120x96 fixed120x104 fixed120x112 fixed120x120 fixed120x128 fixed120x136 +syn keyword solBuiltinType fixed128x8 fixed128x16 fixed128x24 fixed128x32 fixed128x40 fixed128x48 fixed128x56 fixed128x64 fixed128x72 fixed128x80 fixed128x88 fixed128x96 fixed128x104 fixed128x112 fixed128x120 fixed128x128 +syn keyword solBuiltinType fixed136x8 fixed136x16 fixed136x24 fixed136x32 fixed136x40 fixed136x48 fixed136x56 fixed136x64 fixed136x72 fixed136x80 fixed136x88 fixed136x96 fixed136x104 fixed136x112 fixed136x120 +syn keyword solBuiltinType fixed144x8 fixed144x16 fixed144x24 fixed144x32 fixed144x40 fixed144x48 fixed144x56 fixed144x64 fixed144x72 fixed144x80 fixed144x88 fixed144x96 fixed144x104 fixed144x112 +syn keyword solBuiltinType fixed152x8 fixed152x16 fixed152x24 fixed152x32 fixed152x40 fixed152x48 fixed152x56 fixed152x64 fixed152x72 fixed152x80 fixed152x88 fixed152x96 fixed152x104 +syn keyword solBuiltinType fixed160x8 fixed160x16 fixed160x24 fixed160x32 fixed160x40 fixed160x48 fixed160x56 fixed160x64 fixed160x72 fixed160x80 fixed160x88 fixed160x96 +syn keyword solBuiltinType fixed168x8 fixed168x16 fixed168x24 fixed168x32 fixed168x40 fixed168x48 fixed168x56 fixed168x64 fixed168x72 fixed168x80 fixed168x88 +syn keyword solBuiltinType fixed176x8 fixed176x16 fixed176x24 fixed176x32 fixed176x40 fixed176x48 fixed176x56 fixed176x64 fixed176x72 fixed176x80 +syn keyword solBuiltinType fixed184x8 fixed184x16 fixed184x24 fixed184x32 fixed184x40 fixed184x48 fixed184x56 fixed184x64 fixed184x72 +syn keyword solBuiltinType fixed192x8 fixed192x16 fixed192x24 fixed192x32 fixed192x40 fixed192x48 fixed192x56 fixed192x64 +syn keyword solBuiltinType fixed200x8 fixed200x16 fixed200x24 fixed200x32 fixed200x40 fixed200x48 fixed200x56 +syn keyword solBuiltinType fixed208x8 fixed208x16 fixed208x24 fixed208x32 fixed208x40 fixed208x48 +syn keyword solBuiltinType fixed216x8 fixed216x16 fixed216x24 fixed216x32 fixed216x40 +syn keyword solBuiltinType fixed224x8 fixed224x16 fixed224x24 fixed224x32 +syn keyword solBuiltinType fixed232x8 fixed232x16 fixed232x24 +syn keyword solBuiltinType fixed240x8 fixed240x16 +syn keyword solBuiltinType fixed248x8 +syn keyword solBuiltinType ufixed +syn keyword solBuiltinType ufixed0x8 ufixed0x16 ufixed0x24 ufixed0x32 ufixed0x40 ufixed0x48 ufixed0x56 ufixed0x64 ufixed0x72 ufixed0x80 ufixed0x88 ufixed0x96 ufixed0x104 ufixed0x112 ufixed0x120 ufixed0x128 ufixed0x136 ufixed0x144 ufixed0x152 ufixed0x160 ufixed0x168 ufixed0x178 ufixed0x184 ufixed0x192 ufixed0x200 ufixed0x208 ufixed0x216 ufixed0x224 ufixed0x232 ufixed0x240 ufixed0x248 ufixed0x256 +syn keyword solBuiltinType ufixed8x8 ufixed8x16 ufixed8x24 ufixed8x32 ufixed8x40 ufixed8x48 ufixed8x56 ufixed8x64 ufixed8x72 ufixed8x80 ufixed8x88 ufixed8x96 ufixed8x104 ufixed8x112 ufixed8x120 ufixed8x128 ufixed8x136 ufixed8x144 ufixed8x152 ufixed8x160 ufixed8x168 ufixed8x178 ufixed8x184 ufixed8x192 ufixed8x200 ufixed8x208 ufixed8x216 ufixed8x224 ufixed8x232 ufixed8x240 ufixed8x248 +syn keyword solBuiltinType ufixed16x8 ufixed16x16 ufixed16x24 ufixed16x32 ufixed16x40 ufixed16x48 ufixed16x56 ufixed16x64 ufixed16x72 ufixed16x80 ufixed16x88 ufixed16x96 ufixed16x104 ufixed16x112 ufixed16x120 ufixed16x128 ufixed16x136 ufixed16x144 ufixed16x152 ufixed16x160 ufixed16x168 ufixed16x178 ufixed16x184 ufixed16x192 ufixed16x200 ufixed16x208 ufixed16x216 ufixed16x224 ufixed16x232 ufixed16x240 +syn keyword solBuiltinType ufixed24x8 ufixed24x16 ufixed24x24 ufixed24x32 ufixed24x40 ufixed24x48 ufixed24x56 ufixed24x64 ufixed24x72 ufixed24x80 ufixed24x88 ufixed24x96 ufixed24x104 ufixed24x112 ufixed24x120 ufixed24x128 ufixed24x136 ufixed24x144 ufixed24x152 ufixed24x160 ufixed24x168 ufixed24x178 ufixed24x184 ufixed24x192 ufixed24x200 ufixed24x208 ufixed24x216 ufixed24x224 ufixed24x232 +syn keyword solBuiltinType ufixed32x8 ufixed32x16 ufixed32x24 ufixed32x32 ufixed32x40 ufixed32x48 ufixed32x56 ufixed32x64 ufixed32x72 ufixed32x80 ufixed32x88 ufixed32x96 ufixed32x104 ufixed32x112 ufixed32x120 ufixed32x128 ufixed32x136 ufixed32x144 ufixed32x152 ufixed32x160 ufixed32x168 ufixed32x178 ufixed32x184 ufixed32x192 ufixed32x200 ufixed32x208 ufixed32x216 ufixed32x224 +syn keyword solBuiltinType ufixed40x8 ufixed40x16 ufixed40x24 ufixed40x32 ufixed40x40 ufixed40x48 ufixed40x56 ufixed40x64 ufixed40x72 ufixed40x80 ufixed40x88 ufixed40x96 ufixed40x104 ufixed40x112 ufixed40x120 ufixed40x128 ufixed40x136 ufixed40x144 ufixed40x152 ufixed40x160 ufixed40x168 ufixed40x178 ufixed40x184 ufixed40x192 ufixed40x200 ufixed40x208 ufixed40x216 +syn keyword solBuiltinType ufixed48x8 ufixed48x16 ufixed48x24 ufixed48x32 ufixed48x40 ufixed48x48 ufixed48x56 ufixed48x64 ufixed48x72 ufixed48x80 ufixed48x88 ufixed48x96 ufixed48x104 ufixed48x112 ufixed48x120 ufixed48x128 ufixed48x136 ufixed48x144 ufixed48x152 ufixed48x160 ufixed48x168 ufixed48x178 ufixed48x184 ufixed48x192 ufixed48x200 ufixed48x208 +syn keyword solBuiltinType ufixed56x8 ufixed56x16 ufixed56x24 ufixed56x32 ufixed56x40 ufixed56x48 ufixed56x56 ufixed56x64 ufixed56x72 ufixed56x80 ufixed56x88 ufixed56x96 ufixed56x104 ufixed56x112 ufixed56x120 ufixed56x128 ufixed56x136 ufixed56x144 ufixed56x152 ufixed56x160 ufixed56x168 ufixed56x178 ufixed56x184 ufixed56x192 ufixed56x200 +syn keyword solBuiltinType ufixed64x8 ufixed64x16 ufixed64x24 ufixed64x32 ufixed64x40 ufixed64x48 ufixed64x56 ufixed64x64 ufixed64x72 ufixed64x80 ufixed64x88 ufixed64x96 ufixed64x104 ufixed64x112 ufixed64x120 ufixed64x128 ufixed64x136 ufixed64x144 ufixed64x152 ufixed64x160 ufixed64x168 ufixed64x178 ufixed64x184 ufixed64x192 +syn keyword solBuiltinType ufixed72x8 ufixed72x16 ufixed72x24 ufixed72x32 ufixed72x40 ufixed72x48 ufixed72x56 ufixed72x64 ufixed72x72 ufixed72x80 ufixed72x88 ufixed72x96 ufixed72x104 ufixed72x112 ufixed72x120 ufixed72x128 ufixed72x136 ufixed72x144 ufixed72x152 ufixed72x160 ufixed72x168 ufixed72x178 ufixed72x184 +syn keyword solBuiltinType ufixed80x8 ufixed80x16 ufixed80x24 ufixed80x32 ufixed80x40 ufixed80x48 ufixed80x56 ufixed80x64 ufixed80x72 ufixed80x80 ufixed80x88 ufixed80x96 ufixed80x104 ufixed80x112 ufixed80x120 ufixed80x128 ufixed80x136 ufixed80x144 ufixed80x152 ufixed80x160 ufixed80x168 ufixed80x178 +syn keyword solBuiltinType ufixed88x8 ufixed88x16 ufixed88x24 ufixed88x32 ufixed88x40 ufixed88x48 ufixed88x56 ufixed88x64 ufixed88x72 ufixed88x80 ufixed88x88 ufixed88x96 ufixed88x104 ufixed88x112 ufixed88x120 ufixed88x128 ufixed88x136 ufixed88x144 ufixed88x152 ufixed88x160 ufixed88x168 +syn keyword solBuiltinType ufixed96x8 ufixed96x16 ufixed96x24 ufixed96x32 ufixed96x40 ufixed96x48 ufixed96x56 ufixed96x64 ufixed96x72 ufixed96x80 ufixed96x88 ufixed96x96 ufixed96x104 ufixed96x112 ufixed96x120 ufixed96x128 ufixed96x136 ufixed96x144 ufixed96x152 ufixed96x160 +syn keyword solBuiltinType ufixed104x8 ufixed104x16 ufixed104x24 ufixed104x32 ufixed104x40 ufixed104x48 ufixed104x56 ufixed104x64 ufixed104x72 ufixed104x80 ufixed104x88 ufixed104x96 ufixed104x104 ufixed104x112 ufixed104x120 ufixed104x128 ufixed104x136 ufixed104x144 ufixed104x152 +syn keyword solBuiltinType ufixed112x8 ufixed112x16 ufixed112x24 ufixed112x32 ufixed112x40 ufixed112x48 ufixed112x56 ufixed112x64 ufixed112x72 ufixed112x80 ufixed112x88 ufixed112x96 ufixed112x104 ufixed112x112 ufixed112x120 ufixed112x128 ufixed112x136 ufixed112x144 +syn keyword solBuiltinType ufixed120x8 ufixed120x16 ufixed120x24 ufixed120x32 ufixed120x40 ufixed120x48 ufixed120x56 ufixed120x64 ufixed120x72 ufixed120x80 ufixed120x88 ufixed120x96 ufixed120x104 ufixed120x112 ufixed120x120 ufixed120x128 ufixed120x136 +syn keyword solBuiltinType ufixed128x8 ufixed128x16 ufixed128x24 ufixed128x32 ufixed128x40 ufixed128x48 ufixed128x56 ufixed128x64 ufixed128x72 ufixed128x80 ufixed128x88 ufixed128x96 ufixed128x104 ufixed128x112 ufixed128x120 ufixed128x128 +syn keyword solBuiltinType ufixed136x8 ufixed136x16 ufixed136x24 ufixed136x32 ufixed136x40 ufixed136x48 ufixed136x56 ufixed136x64 ufixed136x72 ufixed136x80 ufixed136x88 ufixed136x96 ufixed136x104 ufixed136x112 ufixed136x120 +syn keyword solBuiltinType ufixed144x8 ufixed144x16 ufixed144x24 ufixed144x32 ufixed144x40 ufixed144x48 ufixed144x56 ufixed144x64 ufixed144x72 ufixed144x80 ufixed144x88 ufixed144x96 ufixed144x104 ufixed144x112 +syn keyword solBuiltinType ufixed152x8 ufixed152x16 ufixed152x24 ufixed152x32 ufixed152x40 ufixed152x48 ufixed152x56 ufixed152x64 ufixed152x72 ufixed152x80 ufixed152x88 ufixed152x96 ufixed152x104 +syn keyword solBuiltinType ufixed160x8 ufixed160x16 ufixed160x24 ufixed160x32 ufixed160x40 ufixed160x48 ufixed160x56 ufixed160x64 ufixed160x72 ufixed160x80 ufixed160x88 ufixed160x96 +syn keyword solBuiltinType ufixed168x8 ufixed168x16 ufixed168x24 ufixed168x32 ufixed168x40 ufixed168x48 ufixed168x56 ufixed168x64 ufixed168x72 ufixed168x80 ufixed168x88 +syn keyword solBuiltinType ufixed176x8 ufixed176x16 ufixed176x24 ufixed176x32 ufixed176x40 ufixed176x48 ufixed176x56 ufixed176x64 ufixed176x72 ufixed176x80 +syn keyword solBuiltinType ufixed184x8 ufixed184x16 ufixed184x24 ufixed184x32 ufixed184x40 ufixed184x48 ufixed184x56 ufixed184x64 ufixed184x72 +syn keyword solBuiltinType ufixed192x8 ufixed192x16 ufixed192x24 ufixed192x32 ufixed192x40 ufixed192x48 ufixed192x56 ufixed192x64 +syn keyword solBuiltinType ufixed200x8 ufixed200x16 ufixed200x24 ufixed200x32 ufixed200x40 ufixed200x48 ufixed200x56 +syn keyword solBuiltinType ufixed208x8 ufixed208x16 ufixed208x24 ufixed208x32 ufixed208x40 ufixed208x48 +syn keyword solBuiltinType ufixed216x8 ufixed216x16 ufixed216x24 ufixed216x32 ufixed216x40 +syn keyword solBuiltinType ufixed224x8 ufixed224x16 ufixed224x24 ufixed224x32 +syn keyword solBuiltinType ufixed232x8 ufixed232x16 ufixed232x24 +syn keyword solBuiltinType ufixed240x8 ufixed240x16 +syn keyword solBuiltinType ufixed248x8 +syn keyword solBuiltinType string string1 string2 string3 string4 string5 string6 string7 string8 string9 string10 string11 string12 string13 string14 string15 string16 string17 string18 string19 string20 string21 string22 string23 string24 string25 string26 string27 string28 string29 string30 string31 string32 +syn keyword solBuiltinType byte bytes bytes1 bytes2 bytes3 bytes4 bytes5 bytes6 bytes7 bytes8 bytes9 bytes10 bytes11 bytes12 bytes13 bytes14 bytes15 bytes16 bytes17 bytes18 bytes19 bytes20 bytes21 bytes22 bytes23 bytes24 bytes25 bytes26 bytes27 bytes28 bytes29 bytes30 bytes31 bytes32 + +hi def link solKeyword Keyword +hi def link solConstant Constant +hi def link solBuiltinType Type +hi def link solBuiltinFunction Keyword + +syn match solOperator /\(!\||\|&\|+\|-\|<\|>\|=\|%\|\/\|*\|\~\|\^\)/ +syn match solNumber /\<-\=\d\+L\=\>\|\<0[xX]\x\+\>/ +syn match solFloat /\<-\=\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ + +syn region solString start=+"+ skip=+\\\\\|\\$"\|\\"+ end=+"+ +syn region solString start=+'+ skip=+\\\\\|\\$'\|\\'+ end=+'+ + +hi def link solOperator Operator +hi def link solNumber Number +hi def link solFloat Float +hi def link solString String + +" Function +syn match solFunction /\/ nextgroup=solFuncName,solFuncArgs skipwhite +syn match solFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=solFuncArgs skipwhite + +syn region solFuncArgs contained matchgroup=solFuncParens start='(' end=')' contains=solFuncArgCommas,solBuiltinType nextgroup=solModifierName,solFuncReturns,solFuncBody keepend skipwhite skipempty +syn match solModifierName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=solModifierArgs,solModifierName skipwhite +syn region solModifierArgs contained matchgroup=solFuncParens start='(' end=')' contains=solFuncArgCommas nextgroup=solModifierName,solFuncReturns,solFuncBody skipwhite +syn region solFuncReturns contained matchgroup=solFuncParens nextgroup=solFuncBody start='(' end=')' contains=solFuncArgCommas,solBuiltinType skipwhite + +syn match solFuncArgCommas contained ',' +syn region solFuncBody start="{" end="}" fold transparent + +hi def link solFunction Type +hi def link solFuncName Function +hi def link solModifierName Function + +" Yul blocks +syn match yul /\/ skipwhite skipempty nextgroup=yulBody +syn region yulBody contained start='{' end='}' fold contains=yulAssemblyOp,solNumber,yulVarDeclaration,solLineComment,solComment skipwhite skipempty +syn keyword yulAssemblyOp contained stop add sub mul div sdiv mod smod exp not lt gt slt sgt eq iszero and or xor byte shl shr sar addmod mulmod signextend keccak256 pc pop mload mstore mstore8 sload sstore msize gas address balance selfbalance caller callvalue calldataload calldatasize calldatacopy codesize codecopy extcodesize extcodecopy returndatasize returndatacopy extcodehash create create2 call callcode delegatecall staticcall return revert selfdestruct invalid log0 log1 log2 log3 log4 chainid basefee origin gasprice blockhash coinbase timestamp number difficulty gaslimit +syn keyword yulVarDeclaration contained let + +hi def link yul Keyword +hi def link yulVarDeclaration Keyword +hi def link yulAssemblyOp Keyword + +" Contract +syn match solContract /\<\%(contract\|library\|interface\)\>/ nextgroup=solContractName skipwhite +syn match solContractName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=solContractParent skipwhite +syn region solContractParent contained start='is' end='{' contains=solContractName,solContractNoise,solContractCommas skipwhite skipempty +syn match solContractNoise contained 'is' containedin=solContractParent +syn match solContractCommas contained ',' + +hi def link solContract Type +hi def link solContractName Function + +" Event +syn match solEvent /\/ nextgroup=solEventName,solEventArgs skipwhite +syn match solEventName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup=solEventArgs skipwhite +syn region solEventArgs contained matchgroup=solFuncParens start='(' end=')' contains=solEventArgCommas,solBuiltinType,solEventArgSpecial skipwhite skipempty +syn match solEventArgCommas contained ',' +syn match solEventArgSpecial contained 'indexed' + +hi def link solEvent Type +hi def link solEventName Function +hi def link solEventArgSpecial Label + +" Comment +syn keyword solCommentTodo TODO FIXME XXX TBD contained +syn match solNatSpec contained /@title\|@author\|@notice\|@dev\|@param\|@inheritdoc\|@return/ +syn region solLineComment start=+\/\/+ end=+$+ contains=solCommentTodo,solNatSpec,@Spell +syn region solLineComment start=+^\s*\/\/+ skip=+\n\s*\/\/+ end=+$+ contains=solCommentTodo,solNatSpec,@Spell fold +syn region solComment start="/\*" end="\*/" contains=solCommentTodo,solNatSpec,@Spell fold + +hi def link solCommentTodo Todo +hi def link solNatSpec Label +hi def link solLineComment Comment +hi def link solComment Comment + +let b:current_syntax = "solidity" diff --git a/runtime/syntax/spec.vim b/runtime/syntax/spec.vim new file mode 100644 index 0000000..aed04bc --- /dev/null +++ b/runtime/syntax/spec.vim @@ -0,0 +1,226 @@ +" Filename: spec.vim +" Purpose: Vim syntax file +" Language: SPEC: Build/install scripts for Linux RPM packages +" Maintainer: Igor Gnatenko i.gnatenko.brain@gmail.com +" Former Maintainer: Donovan Rebbechi elflord@panix.com (until March 2014) +" Last Change: 2020 May 25 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn sync minlines=1000 + +syn match specSpecialChar contained '[][!$()\\|>^;:{}]' +syn match specColon contained ':' +syn match specPercent contained '%' + +syn match specVariables contained '\$\h\w*' contains=specSpecialVariablesNames,specSpecialChar +syn match specVariables contained '\${\w*}' contains=specSpecialVariablesNames,specSpecialChar + +syn match specMacroIdentifier contained '%\h\w*' contains=specMacroNameLocal,specMacroNameOther,specPercent +syn match specMacroIdentifier contained '%{\w*}' contains=specMacroNameLocal,specMacroNameOther,specPercent,specSpecialChar + +syn match specSpecialVariables contained '\$[0-9]\|\${[0-9]}' +syn match specCommandOpts contained '\s\(-\w\+\|--\w[a-zA-Z_-]\+\)'ms=s+1 +syn match specComment '^\s*#.*$' + + +syn case match + + +"matches with no highlight +syn match specNoNumberHilite 'X11\|X11R6\|[a-zA-Z]*\.\d\|[a-zA-Z][-/]\d' +syn match specManpageFile '[a-zA-Z]\.1' + +"Day, Month and most used license acronyms +syn keyword specLicense contained GPL LGPL BSD MIT GNU +syn keyword specWeekday contained Mon Tue Wed Thu Fri Sat Sun +syn keyword specMonth contained Jan Feb Mar Apr Jun Jul Aug Sep Oct Nov Dec +syn keyword specMonth contained January February March April May June July August September October November December + +"#, @, www +syn match specNumber '\(^-\=\|[ \t]-\=\|-\)[0-9.-]*[0-9]' +syn match specEmail contained "<\=\<[A-Za-z0-9_.-]\+@\([A-Za-z0-9_-]\+\.\)\+[A-Za-z]\+\>>\=" +syn match specURL contained '\<\(\(https\{0,1}\|ftp\)://\|\(www[23]\{0,1}\.\|ftp\.\)\)[A-Za-z0-9._/~:,#-]\+\>' +syn match specURLMacro contained '\<\(\(https\{0,1}\|ftp\)://\|\(www[23]\{0,1}\.\|ftp\.\)\)[A-Za-z0-9._/~:,#%{}-]\+\>' contains=specMacroIdentifier + +"TODO take specSpecialVariables out of the cluster for the sh* contains (ALLBUT) +"Special system directories +syn match specListedFilesPrefix contained '/\(usr\|local\|opt\|X11R6\|X11\)/'me=e-1 +syn match specListedFilesBin contained '/s\=bin/'me=e-1 +syn match specListedFilesLib contained '/\(lib\|include\)/'me=e-1 +syn match specListedFilesDoc contained '/\(man\d*\|doc\|info\)\>' +syn match specListedFilesEtc contained '/etc/'me=e-1 +syn match specListedFilesShare contained '/share/'me=e-1 +syn cluster specListedFiles contains=specListedFilesBin,specListedFilesLib,specListedFilesDoc,specListedFilesEtc,specListedFilesShare,specListedFilesPrefix,specVariables,specSpecialChar + +"specCommands +syn match specConfigure contained '\./configure' +syn match specTarCommand contained '\' + +"valid _macro names from /usr/lib/rpm/macros +syn keyword specMacroNameLocal contained _arch _binary_payload _bindir _build _build_alias _build_cpu _builddir _build_os _buildshell _buildsubdir _build_vendor _bzip2bin _datadir _dbpath _dbpath_rebuild _defaultdocdir _docdir _excludedocs _exec_prefix _fixgroup _fixowner _fixperms _ftpport _ftpproxy _gpg_path _gzipbin _host _host_alias _host_cpu _host_os _host_vendor _httpport _httpproxy _includedir _infodir _install_langs _install_script_path _instchangelog _langpatt _lib _libdir _libexecdir _localstatedir _mandir _netsharedpath _oldincludedir _os _pgpbin _pgp_path _prefix _preScriptEnvironment _provides _rpmdir _rpmfilename _sbindir _sharedstatedir _signature _sourcedir _source_payload _specdir _srcrpmdir _sysconfdir _target _target_alias _target_cpu _target_os _target_platform _target_vendor _timecheck _tmppath _topdir _usr _unitdir _usrsrc _var _vendor + + +"------------------------------------------------------------------------------ +" here's is all the spec sections definitions: PreAmble, Description, Package, +" Scripts, Files and Changelog + +"One line macros - valid in all ScriptAreas +"tip: remember do include new items on specScriptArea's skip section +syn region specSectionMacroArea oneline matchgroup=specSectionMacro start='^%\(define\|global\|patch\d*\|setup\|autosetup\|autopatch\|configure\|GNUconfigure\|find_lang\|make_build\|makeinstall\|make_install\|include\)\>' end='$' contains=specCommandOpts,specMacroIdentifier +syn region specSectionMacroBracketArea oneline matchgroup=specSectionMacro start='^%{\(configure\|GNUconfigure\|find_lang\|make_build\|makeinstall\|make_install\)}' end='$' contains=specCommandOpts,specMacroIdentifier + +"%% Files Section %% +"TODO %config valid parameters: missingok\|noreplace +"TODO %verify valid parameters: \(not\)\= \(md5\|atime\|...\) +syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\|exclude\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier +"tip: remember to include new items in specFilesArea above +syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|license\|verify\|ghost\|exclude\)\>' + +"valid options for certain section headers +syn match specDescriptionOpts contained '\s-[ln]\s*\a'ms=s+1,me=e-1 +syn match specPackageOpts contained '\s-n\s*\w'ms=s+1,me=e-1 +syn match specFilesOpts contained '\s-f\s*\w'ms=s+1,me=e-1 + + +syn case ignore + + +"%% PreAmble Section %% +"Copyright and Serial were deprecated by License and Epoch +syn region specPreAmbleDeprecated oneline matchgroup=specError start='^\(Copyright\|Serial\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier +syn region specPreAmble oneline matchgroup=specCommand start='^\(Prereq\|Summary\|Name\|Version\|Packager\|Requires\|Recommends\|Suggests\|Supplements\|Enhances\|Icon\|URL\|Source\d*\|Patch\d*\|Prefix\|Packager\|Group\|License\|Release\|BuildRoot\|Distribution\|Vendor\|Provides\|ExclusiveArch\|ExcludeArch\|ExclusiveOS\|Obsoletes\|BuildArch\|BuildArchitectures\|BuildRequires\|BuildConflicts\|BuildPreReq\|Conflicts\|AutoRequires\|AutoReq\|AutoReqProv\|AutoProv\|Epoch\)' end='$' contains=specEmail,specURL,specURLMacro,specLicense,specColon,specVariables,specSpecialChar,specMacroIdentifier + +"%% Description Section %% +syn region specDescriptionArea matchgroup=specSection start='^%description' end='^%'me=e-1 contains=specDescriptionOpts,specEmail,specURL,specNumber,specMacroIdentifier,specComment + +"%% Package Section %% +syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment + +"%% Scripts Section %% +syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|check\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 + +"%% Changelog Section %% +syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense + + + +"------------------------------------------------------------------------------ +"here's the shell syntax for all the Script Sections + + +syn case match + + +"sh-like comment stile, only valid in script part +syn match shComment contained '#.*$' + +syn region dnlComment matchgroup=specComment start=+%dnl+ end=+$+ + +syn region shQuote1 contained matchgroup=shQuoteDelim start=+'+ skip=+\\'+ end=+'+ contains=specMacroIdentifier +syn region shQuote2 contained matchgroup=shQuoteDelim start=+"+ skip=+\\"+ end=+"+ contains=specVariables,specMacroIdentifier + +syn match shOperator contained '[><|!&;]\|[!=]=' +syn region shDo transparent matchgroup=specBlock start="\" end="\" contains=ALLBUT,shFunction,shDoError,shCase,specPreAmble,@specListedFiles + +syn region specIf matchgroup=specBlock start="%ifosf\|%ifos\|%ifnos\|%ifarch\|%ifnarch\|%else" end='%endif' contains=ALLBUT, specIfError, shCase + +syn region shIf transparent matchgroup=specBlock start="\" end="\" contains=ALLBUT,shFunction,shIfError,shCase,@specListedFiles + +syn region shFor matchgroup=specBlock start="\" end="\" contains=ALLBUT,shFunction,shInError,shCase,@specListedFiles + +syn region shCaseEsac transparent matchgroup=specBlock start="\" matchgroup=NONE end="\"me=s-1 contains=ALLBUT,shFunction,shCaseError,@specListedFiles nextgroup=shCaseEsac +syn region shCaseEsac matchgroup=specBlock start="\" end="\" contains=ALLBUT,shFunction,shCaseError,@specListedFilesBin +syn region shCase matchgroup=specBlock contained start=")" end=";;" contains=ALLBUT,shFunction,shCaseError,shCase,@specListedFiles + +syn sync match shDoSync grouphere shDo "\" +syn sync match shDoSync groupthere shDo "\" +syn sync match shIfSync grouphere shIf "\" +syn sync match shIfSync groupthere shIf "\" +syn sync match specIfSync grouphere specIf "%ifarch\|%ifos\|%ifnos" +syn sync match specIfSync groupthere specIf "%endIf" +syn sync match shForSync grouphere shFor "\" +syn sync match shForSync groupthere shFor "\" +syn sync match shCaseEsacSync grouphere shCaseEsac "\" +syn sync match shCaseEsacSync groupthere shCaseEsac "\" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +"main types color definitions +hi def link specSection Structure +hi def link specSectionMacro Macro +hi def link specWWWlink PreProc +hi def link specOpts Operator + +"yes, it's ugly, but white is sooo cool +if &background == "dark" +hi def specGlobalMacro ctermfg=white +else +hi def link specGlobalMacro Identifier +endif + +"sh colors +hi def link shComment Comment +hi def link dnlComment Comment +hi def link shIf Statement +hi def link shOperator Special +hi def link shQuote1 String +hi def link shQuote2 String +hi def link shQuoteDelim Statement + +"spec colors +hi def link specBlock Function +hi def link specColon Special +hi def link specCommand Statement +hi def link specCommandOpts specOpts +hi def link specCommandSpecial Special +hi def link specComment Comment +hi def link specConfigure specCommand +hi def link specDate String +hi def link specDescriptionOpts specOpts +hi def link specEmail specWWWlink +hi def link specError Error +hi def link specFilesDirective specSectionMacro +hi def link specFilesOpts specOpts +hi def link specLicense String +hi def link specMacroNameLocal specGlobalMacro +hi def link specMacroNameOther specGlobalMacro +hi def link specManpageFile NONE +hi def link specMonth specDate +hi def link specNoNumberHilite NONE +hi def link specNumber Number +hi def link specPackageOpts specOpts +hi def link specPercent Special +hi def link specSpecialChar Special +hi def link specSpecialVariables specGlobalMacro +hi def link specSpecialVariablesNames specGlobalMacro +hi def link specTarCommand specCommand +hi def link specURL specWWWlink +hi def link specURLMacro specWWWlink +hi def link specVariables Identifier +hi def link specWeekday specDate +hi def link specListedFilesBin Statement +hi def link specListedFilesDoc Statement +hi def link specListedFilesEtc Statement +hi def link specListedFilesLib Statement +hi def link specListedFilesPrefix Statement +hi def link specListedFilesShare Statement + + +let b:current_syntax = "spec" + +" vim: ts=8 diff --git a/runtime/syntax/specman.vim b/runtime/syntax/specman.vim new file mode 100644 index 0000000..79c94b7 --- /dev/null +++ b/runtime/syntax/specman.vim @@ -0,0 +1,169 @@ +" Vim syntax file +" Language: SPECMAN E-LANGUAGE +" Maintainer: Or Freund +" Last Update: Wed Oct 24 2001 + +"--------------------------------------------------------- +"| If anyone found an error or fix the parenthesis part | +"| I will be happy to hear about it | +"| Thanks Or. | +"--------------------------------------------------------- + +" Remove any old syntax stuff hanging around +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn keyword specmanTodo contained TODO todo ToDo FIXME XXX + +syn keyword specmanStatement var instance on compute start event expect check that routine +syn keyword specmanStatement specman is also first only with like +syn keyword specmanStatement list of all radix hex dec bin ignore illegal +syn keyword specmanStatement traceable untraceable +syn keyword specmanStatement cover using count_only trace_only at_least transition item ranges +syn keyword specmanStatement cross text call task within + +syn keyword specmanMethod initialize non_terminal testgroup delayed exit finish +syn keyword specmanMethod out append print outf appendf +syn keyword specmanMethod post_generate pre_generate setup_test finalize_test extract_test +syn keyword specmanMethod init run copy as_a set_config dut_error add clear lock quit +syn keyword specmanMethod lock unlock release swap quit to_string value stop_run +syn keyword specmanMethod crc_8 crc_32 crc_32_flip get_config add0 all_indices and_all +syn keyword specmanMethod apply average count delete exists first_index get_indices +syn keyword specmanMethod has insert is_a_permutation is_empty key key_exists key_index +syn keyword specmanMethod last last_index max max_index max_value min min_index +syn keyword specmanMethod min_value or_all pop pop0 push push0 product resize reverse +syn keyword specmanMethod sort split sum top top0 unique clear is_all_iterations +syn keyword specmanMethod get_enclosing_unit hdl_path exec deep_compare deep_compare_physical +syn keyword specmanMethod pack unpack warning error fatal +syn match specmanMethod "size()" +syn keyword specmanPacking packing low high +syn keyword specmanType locker address +syn keyword specmanType body code vec chars +syn keyword specmanType integer real bool int long uint byte bits bit time string +syn keyword specmanType byte_array external_pointer +syn keyword specmanBoolean TRUE FALSE +syn keyword specmanPreCondit #ifdef #ifndef #else + +syn keyword specmanConditional choose matches +syn keyword specmanConditional if then else when try + + + +syn keyword specmanLabel case casex casez default + +syn keyword specmanLogical and or not xor + +syn keyword specmanRepeat until repeat while for from to step each do break continue +syn keyword specmanRepeat before next sequence always -kind network +syn keyword specmanRepeat index it me in new return result select + +syn keyword specmanTemporal cycle sample events forever +syn keyword specmanTemporal wait change negedge rise fall delay sync sim true detach eventually emit + +syn keyword specmanConstant MAX_INT MIN_INT NULL UNDEF + +syn keyword specmanDefine define as computed type extend +syn keyword specmanDefine verilog vhdl variable global sys +syn keyword specmanStructure struct unit +syn keyword specmanInclude import +syn keyword specmanConstraint gen keep keeping soft before + +syn keyword specmanSpecial untyped symtab ECHO DOECHO +syn keyword specmanFile files load module ntv source_ref script read write +syn keyword specmanFSM initial idle others posedge clock cycles + + +syn match specmanOperator "[&|~>"hs=s+2 end="^<'"he=e-2 + +syn match specmanHDL "'[`.a-zA-Z0-9_@\[\]]\+\>'" + + +syn match specmanCompare "==" +syn match specmanCompare "!===" +syn match specmanCompare "===" +syn match specmanCompare "!=" +syn match specmanCompare ">=" +syn match specmanCompare "<=" +syn match specmanNumber "[0-9]:[0-9]" +syn match specmanNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>" +syn match specmanNumber "0[bB]\s*[0-1_xXzZ?]\+\>" +syn match specmanNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>" +syn match specmanNumber "0[oO]\s*[0-9a-fA-F_xXzZ?]\+\>" +syn match specmanNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>" +syn match specmanNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>" +syn match specmanNumber "0[xX]\s*[0-9a-fA-F_xXzZ?]\+\>" +syn match specmanNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>" + +syn region specmanString start=+"+ end=+"+ + + + +"********************************************************************** +" I took this section from c.vim but I didnt succeded to make it work +" ANY one who dare jumping to this deep watter is more than welocome! +"********************************************************************** +""catch errors caused by wrong parenthesis and brackets + +"syn cluster specmanParenGroup contains=specmanParenError +"" ,specmanNumbera,specmanComment +"if exists("specman_no_bracket_error") +"syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup +"syn match specmanParenError ")" +"syn match specmanErrInParen contained "[{}]" +"else +"syn region specmanParen transparent start='(' end=')' contains=ALLBUT,@specmanParenGroup,specmanErrInBracket +"syn match specmanParenError "[\])]" +"syn match specmanErrInParen contained "[\]{}]" +"syn region specmanBracket transparent start='\[' end=']' contains=ALLBUT,@specmanParenGroup,specmanErrInParen +"syn match specmanErrInBracket contained "[);{}]" +"endif +" + +"Modify the following as needed. The trade-off is performance versus +"functionality. + +syn sync lines=50 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet +" The default methods for highlighting. Can be overridden later +hi def link specmanConditional Conditional +hi def link specmanConstraint Conditional +hi def link specmanRepeat Repeat +hi def link specmanString String +hi def link specmanComment Comment +hi def link specmanConstant Macro +hi def link specmanNumber Number +hi def link specmanCompare Operator +hi def link specmanOperator Operator +hi def link specmanLogical Operator +hi def link specmanStatement Statement +hi def link specmanHDL SpecialChar +hi def link specmanMethod Function +hi def link specmanInclude Include +hi def link specmanStructure Structure +hi def link specmanBoolean Boolean +hi def link specmanFSM Label +hi def link specmanSpecial Special +hi def link specmanType Type +hi def link specmanTemporal Type +hi def link specmanFile Include +hi def link specmanPreCondit Include +hi def link specmanDefine Typedef +hi def link specmanLabel Label +hi def link specmanPacking keyword +hi def link specmanTodo Todo +hi def link specmanParenError Error +hi def link specmanErrInParen Error +hi def link specmanErrInBracket Error + +let b:current_syntax = "specman" diff --git a/runtime/syntax/spice.vim b/runtime/syntax/spice.vim new file mode 100644 index 0000000..306039b --- /dev/null +++ b/runtime/syntax/spice.vim @@ -0,0 +1,75 @@ +" Vim syntax file +" Language: Spice circuit simulator input netlist +" Maintainer: Noam Halevy +" Last Change: 2012 Jun 01 +" (Dominique Pelle added @Spell) +" +" This is based on sh.vim by Lennart Schultz +" but greatly simplified + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" spice syntax is case INsensitive +syn case ignore + +syn keyword spiceTodo contained TODO + +syn match spiceComment "^ \=\*.*$" contains=@Spell +syn match spiceComment "\$.*$" contains=@Spell + +" Numbers, all with engineering suffixes and optional units +"========================================================== +"floating point number, with dot, optional exponent +syn match spiceNumber "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" +"floating point number, starting with a dot, optional exponent +syn match spiceNumber "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" +"integer number with optional exponent +syn match spiceNumber "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" + +" Misc +"===== +syn match spiceWrapLineOperator "\\$" +syn match spiceWrapLineOperator "^+" + +syn match spiceStatement "^ \=\.\I\+" + +" Matching pairs of parentheses +"========================================== +syn region spiceParen transparent matchgroup=spiceOperator start="(" end=")" contains=ALLBUT,spiceParenError +syn region spiceSinglequote matchgroup=spiceOperator start=+'+ end=+'+ + +" Errors +"======= +syn match spiceParenError ")" + +" Syncs +" ===== +syn sync minlines=50 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link spiceTodo Todo +hi def link spiceWrapLineOperator spiceOperator +hi def link spiceSinglequote spiceExpr +hi def link spiceExpr Function +hi def link spiceParenError Error +hi def link spiceStatement Statement +hi def link spiceNumber Number +hi def link spiceComment Comment +hi def link spiceOperator Operator + + +let b:current_syntax = "spice" + +" insert the following to $VIM/syntax/scripts.vim +" to autodetect HSpice netlists and text listing output: +" +" " Spice netlists and text listings +" elseif getline(1) =~ 'spice\>' || getline("$") =~ '^\.end' +" so :p:h/spice.vim + +" vim: ts=8 diff --git a/runtime/syntax/splint.vim b/runtime/syntax/splint.vim new file mode 100644 index 0000000..8eba57d --- /dev/null +++ b/runtime/syntax/splint.vim @@ -0,0 +1,243 @@ +" Vim syntax file +" Language: splint (C with lclint/splint Annotations) +" Maintainer: Ralf Wildenhues +" Splint Home: http://www.splint.org/ +" Last Change: $Date: 2004/06/13 20:08:47 $ +" $Revision: 1.1 $ + +" Note: Splint annotated files are not detected by default. +" If you want to use this file for highlighting C code, +" please make sure splint.vim is sourced instead of c.vim, +" for example by putting +" /* vim: set filetype=splint : */ +" at the end of your code or something like +" au! BufRead,BufNewFile *.c setfiletype splint +" in your vimrc file or filetype.vim + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the C syntax to start with +runtime! syntax/c.vim + + +" FIXME: uses and changes several clusters defined in c.vim +" so watch for changes there + +" TODO: make a little more grammar explicit +" match flags with hyphen and underscore notation +" match flag expanded forms +" accept other comment char than @ + +syn case match +" splint annotations (taken from 'splint -help annotations') +syn match splintStateAnnot contained "\(pre\|post\):\(only\|shared\|owned\|dependent\|observer\|exposed\|isnull\|notnull\)" +syn keyword splintSpecialAnnot contained special +syn keyword splintSpecTag contained uses sets defines allocated releases +syn keyword splintModifies contained modifies +syn keyword splintRequires contained requires ensures +syn keyword splintGlobals contained globals +syn keyword splintGlobitem contained internalState fileSystem +syn keyword splintGlobannot contained undef killed +syn keyword splintWarning contained warn + +syn keyword splintModitem contained internalState fileSystem nothing +syn keyword splintReqitem contained MaxSet MaxRead result +syn keyword splintIter contained iter yield +syn keyword splintConst contained constant +syn keyword splintAlt contained alt + +syn keyword splintType contained abstract concrete mutable immutable refcounted numabstract +syn keyword splintGlobalType contained unchecked checkmod checked checkedstrict +syn keyword splintMemMgm contained dependent keep killref only owned shared temp +syn keyword splintAlias contained unique returned +syn keyword splintExposure contained observer exposed +syn keyword splintDefState contained out in partial reldef +syn keyword splintGlobState contained undef killed +syn keyword splintNullState contained null notnull relnull +syn keyword splintNullPred contained truenull falsenull nullwhentrue falsewhennull +syn keyword splintExit contained exits mayexit trueexit falseexit neverexit +syn keyword splintExec contained noreturn maynotreturn noreturnwhentrue noreturnwhenfalse alwaysreturns +syn keyword splintSef contained sef +syn keyword splintDecl contained unused external +syn keyword splintCase contained fallthrough +syn keyword splintBreak contained innerbreak loopbreak switchbreak innercontinue +syn keyword splintUnreach contained notreached +syn keyword splintSpecFunc contained printflike scanflike messagelike + +" TODO: make these region or match +syn keyword splintErrSupp contained i ignore end t +syn match splintErrSupp contained "[it]\d\+\>" +syn keyword splintTypeAcc contained access noaccess + +syn keyword splintMacro contained notfunction +syn match splintSpecType contained "\(\|unsigned\|signed\)integraltype" + +" Flags taken from 'splint -help flags full' divided in local and global flags +" Local Flags: +syn keyword splintFlag contained abstract abstractcompare accessall accessczech accessczechoslovak +syn keyword splintFlag contained accessfile accessmodule accessslovak aliasunique allblock +syn keyword splintFlag contained allempty allglobs allimponly allmacros alwaysexits +syn keyword splintFlag contained annotationerror ansi89limits assignexpose badflag bitwisesigned +syn keyword splintFlag contained boolcompare boolfalse boolint boolops booltrue +syn keyword splintFlag contained booltype bounds boundscompacterrormessages boundsread boundswrite +syn keyword splintFlag contained branchstate bufferoverflow bufferoverflowhigh bugslimit casebreak +syn keyword splintFlag contained caseinsensitivefilenames castexpose castfcnptr charindex charint +syn keyword splintFlag contained charintliteral charunsignedchar checkedglobalias checkmodglobalias checkpost +syn keyword splintFlag contained checkstrictglobalias checkstrictglobs codeimponly commentchar commenterror +syn keyword splintFlag contained compdef compdestroy compmempass constmacros constprefix +syn keyword splintFlag contained constprefixexclude constuse continuecomment controlnestdepth cppnames +syn keyword splintFlag contained csvoverwrite czech czechconsts czechfcns czechmacros +syn keyword splintFlag contained czechoslovak czechoslovakconsts czechoslovakfcns czechoslovakmacros czechoslovaktypes +syn keyword splintFlag contained czechoslovakvars czechtypes czechvars debugfcnconstraint declundef +syn keyword splintFlag contained deepbreak deparrays dependenttrans distinctexternalnames distinctinternalnames +syn keyword splintFlag contained duplicatecases duplicatequals elseifcomplete emptyret enumindex +syn keyword splintFlag contained enumint enummembers enummemuse enumprefix enumprefixexclude +syn keyword splintFlag contained evalorder evalorderuncon exitarg exportany exportconst +syn keyword splintFlag contained exportfcn exportheader exportheadervar exportiter exportlocal +syn keyword splintFlag contained exportmacro exporttype exportvar exposetrans externalnamecaseinsensitive +syn keyword splintFlag contained externalnamelen externalprefix externalprefixexclude fcnderef fcnmacros +syn keyword splintFlag contained fcnpost fcnuse fielduse fileextensions filestaticprefix +syn keyword splintFlag contained filestaticprefixexclude firstcase fixedformalarray floatdouble forblock +syn keyword splintFlag contained forcehints forempty forloopexec formalarray formatcode +syn keyword splintFlag contained formatconst formattype forwarddecl freshtrans fullinitblock +syn keyword splintFlag contained globalias globalprefix globalprefixexclude globimponly globnoglobs +syn keyword splintFlag contained globs globsimpmodsnothing globstate globuse gnuextensions +syn keyword splintFlag contained grammar hasyield hints htmlfileformat ifblock +syn keyword splintFlag contained ifempty ignorequals ignoresigns immediatetrans impabstract +syn keyword splintFlag contained impcheckedglobs impcheckedspecglobs impcheckedstatics impcheckedstrictglobs impcheckedstrictspecglobs +syn keyword splintFlag contained impcheckedstrictstatics impcheckmodglobs impcheckmodinternals impcheckmodspecglobs impcheckmodstatics +syn keyword splintFlag contained impconj implementationoptional implictconstraint impouts imptype +syn keyword splintFlag contained includenest incompletetype incondefs incondefslib indentspaces +syn keyword splintFlag contained infloops infloopsuncon initallelements initsize internalglobs +syn keyword splintFlag contained internalglobsnoglobs internalnamecaseinsensitive internalnamelen internalnamelookalike iso99limits +syn keyword splintFlag contained isoreserved isoreservedinternal iterbalance iterloopexec iterprefix +syn keyword splintFlag contained iterprefixexclude iteryield its4low its4moderate its4mostrisky +syn keyword splintFlag contained its4risky its4veryrisky keep keeptrans kepttrans +syn keyword splintFlag contained legacy libmacros likelyboundsread likelyboundswrite likelybool +syn keyword splintFlag contained likelybounds limit linelen lintcomments localprefix +syn keyword splintFlag contained localprefixexclude locindentspaces longint longintegral longsignedintegral +syn keyword splintFlag contained longunsignedintegral longunsignedunsignedintegral loopexec looploopbreak looploopcontinue +syn keyword splintFlag contained loopswitchbreak macroassign macroconstdecl macrodecl macroempty +syn keyword splintFlag contained macrofcndecl macromatchname macroparams macroparens macroredef +syn keyword splintFlag contained macroreturn macrostmt macrounrecog macrovarprefix macrovarprefixexclude +syn keyword splintFlag contained maintype matchanyintegral matchfields mayaliasunique memchecks +syn keyword splintFlag contained memimp memtrans misplacedsharequal misscase modfilesys +syn keyword splintFlag contained modglobs modglobsnomods modglobsunchecked modinternalstrict modnomods +syn keyword splintFlag contained modobserver modobserveruncon mods modsimpnoglobs modstrictglobsnomods +syn keyword splintFlag contained moduncon modunconnomods modunspec multithreaded mustdefine +syn keyword splintFlag contained mustfree mustfreefresh mustfreeonly mustmod mustnotalias +syn keyword splintFlag contained mutrep namechecks needspec nestcomment nestedextern +syn keyword splintFlag contained newdecl newreftrans nextlinemacros noaccess nocomments +syn keyword splintFlag contained noeffect noeffectuncon noparams nopp noret +syn keyword splintFlag contained null nullassign nullderef nullinit nullpass +syn keyword splintFlag contained nullptrarith nullret nullstate nullterminated +syn keyword splintFlag contained numabstract numabstractcast numabstractindex numabstractlit numabstractprint +syn keyword splintFlag contained numenummembers numliteral numstructfields observertrans obviousloopexec +syn keyword splintFlag contained oldstyle onlytrans onlyunqglobaltrans orconstraint overload +syn keyword splintFlag contained ownedtrans paramimptemp paramuse parenfileformat partial +syn keyword splintFlag contained passunknown portability predassign predbool predboolint +syn keyword splintFlag contained predboolothers predboolptr preproc protoparammatch protoparamname +syn keyword splintFlag contained protoparamprefix protoparamprefixexclude ptrarith ptrcompare ptrnegate +syn keyword splintFlag contained quiet readonlystrings readonlytrans realcompare redecl +syn keyword splintFlag contained redef redundantconstraints redundantsharequal refcounttrans relaxquals +syn keyword splintFlag contained relaxtypes repeatunrecog repexpose retalias retexpose +syn keyword splintFlag contained retimponly retval retvalbool retvalint retvalother +syn keyword splintFlag contained sefparams sefuncon shadow sharedtrans shiftimplementation +syn keyword splintFlag contained shiftnegative shortint showallconjs showcolumn showconstraintlocation +syn keyword splintFlag contained showconstraintparens showdeephistory showfunc showloadloc showscan +syn keyword splintFlag contained showsourceloc showsummary sizeofformalarray sizeoftype skipisoheaders +syn keyword splintFlag contained skipposixheaders slashslashcomment slovak slovakconsts slovakfcns +syn keyword splintFlag contained slovakmacros slovaktypes slovakvars specglobimponly specimponly +syn keyword splintFlag contained specmacros specretimponly specstructimponly specundecl specundef +syn keyword splintFlag contained stackref statemerge statetransfer staticinittrans statictrans +syn keyword splintFlag contained strictbranchstate strictdestroy strictops strictusereleased stringliterallen +syn keyword splintFlag contained stringliteralnoroom stringliteralnoroomfinalnull stringliteralsmaller stringliteraltoolong structimponly +syn keyword splintFlag contained superuser switchloopbreak switchswitchbreak syntax sysdirerrors +syn keyword splintFlag contained sysdirexpandmacros sysunrecog tagprefix tagprefixexclude temptrans +syn keyword splintFlag contained tmpcomments toctou topuse trytorecover type +syn keyword splintFlag contained typeprefix typeprefixexclude typeuse uncheckedglobalias uncheckedmacroprefix +syn keyword splintFlag contained uncheckedmacroprefixexclude uniondef unixstandard unqualifiedinittrans unqualifiedtrans +syn keyword splintFlag contained unreachable unrecog unrecogcomments unrecogdirective unrecogflagcomments +syn keyword splintFlag contained unsignedcompare unusedspecial usedef usereleased usevarargs +syn keyword splintFlag contained varuse voidabstract warnflags warnlintcomments warnmissingglobs +syn keyword splintFlag contained warnmissingglobsnoglobs warnposixheaders warnrc warnsysfiles warnunixlib +syn keyword splintFlag contained warnuse whileblock whileempty whileloopexec zerobool +syn keyword splintFlag contained zeroptr +" Global Flags: +syn keyword splintGlobalFlag contained csv dump errorstream errorstreamstderr errorstreamstdout +syn keyword splintGlobalFlag contained expect f help i isolib +syn keyword splintGlobalFlag contained larchpath lclexpect lclimportdir lcs lh +syn keyword splintGlobalFlag contained load messagestream messagestreamstderr messagestreamstdout mts +syn keyword splintGlobalFlag contained neverinclude nof nolib posixlib posixstrictlib +syn keyword splintGlobalFlag contained showalluses singleinclude skipsysheaders stats streamoverwrite +syn keyword splintGlobalFlag contained strictlib supcounts sysdirs timedist tmpdir +syn keyword splintGlobalFlag contained unixlib unixstrictlib warningstream warningstreamstderr warningstreamstdout +syn keyword splintGlobalFlag contained whichlib +syn match splintFlagExpr contained "[\+\-\=]" nextgroup=splintFlag,splintGlobalFlag + +" detect missing /*@ and wrong */ +syn match splintAnnError "@\*/" +syn cluster cCommentGroup add=splintAnnError +syn match splintAnnError2 "[^@]\*/"hs=s+1 contained +syn region splintAnnotation start="/\*@" end="@\*/" contains=@splintAnnotElem,cType keepend +syn match splintShortAnn "/\*@\*/" +syn cluster splintAnnotElem contains=splintStateAnnot,splintSpecialAnnot,splintSpecTag,splintModifies,splintRequires,splintGlobals,splintGlobitem,splintGlobannot,splintWarning,splintModitem,splintIter,splintConst,splintAlt,splintType,splintGlobalType,splintMemMgm,splintAlias,splintExposure,splintDefState,splintGlobState,splintNullState,splintNullPred,splintExit,splintExec,splintSef,splintDecl,splintCase,splintBreak,splintUnreach,splintSpecFunc,splintErrSupp,splintTypeAcc,splintMacro,splintSpecType,splintAnnError2,splintFlagExpr +syn cluster splintAllStuff contains=@splintAnnotElem,splintFlag,splintGlobalFlag +syn cluster cParenGroup add=@splintAllStuff +syn cluster cPreProcGroup add=@splintAllStuff +syn cluster cMultiGroup add=@splintAllStuff + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link splintShortAnn splintAnnotation +hi def link splintAnnotation Comment +hi def link splintAnnError splintError +hi def link splintAnnError2 splintError +hi def link splintFlag SpecialComment +hi def link splintGlobalFlag splintError +hi def link splintSpecialAnnot splintAnnKey +hi def link splintStateAnnot splintAnnKey +hi def link splintSpecTag splintAnnKey +hi def link splintModifies splintAnnKey +hi def link splintRequires splintAnnKey +hi def link splintGlobals splintAnnKey +hi def link splintGlobitem Constant +hi def link splintGlobannot splintAnnKey +hi def link splintWarning splintAnnKey +hi def link splintModitem Constant +hi def link splintIter splintAnnKey +hi def link splintConst splintAnnKey +hi def link splintAlt splintAnnKey +hi def link splintType splintAnnKey +hi def link splintGlobalType splintAnnKey +hi def link splintMemMgm splintAnnKey +hi def link splintAlias splintAnnKey +hi def link splintExposure splintAnnKey +hi def link splintDefState splintAnnKey +hi def link splintGlobState splintAnnKey +hi def link splintNullState splintAnnKey +hi def link splintNullPred splintAnnKey +hi def link splintExit splintAnnKey +hi def link splintExec splintAnnKey +hi def link splintSef splintAnnKey +hi def link splintDecl splintAnnKey +hi def link splintCase splintAnnKey +hi def link splintBreak splintAnnKey +hi def link splintUnreach splintAnnKey +hi def link splintSpecFunc splintAnnKey +hi def link splintErrSupp splintAnnKey +hi def link splintTypeAcc splintAnnKey +hi def link splintMacro splintAnnKey +hi def link splintSpecType splintAnnKey +hi def link splintAnnKey Type +hi def link splintError Error + + +let b:current_syntax = "splint" + +" vim: ts=8 diff --git a/runtime/syntax/spup.vim b/runtime/syntax/spup.vim new file mode 100644 index 0000000..222caa7 --- /dev/null +++ b/runtime/syntax/spup.vim @@ -0,0 +1,269 @@ +" Vim syntax file +" Language: Speedup, plant simulator from AspenTech +" Maintainer: Stefan.Schwarzer +" URL: http://www.ndh.net/home/sschwarzer/download/spup.vim +" Last Change: 2012 Feb 03 by Thilo Six +" Filename: spup.vim + +" Bugs +" - in the appropriate sections keywords are always highlighted +" even if they are not used with the appropriate meaning; +" example: in +" MODEL demonstration +" TYPE +" *area AS area +" both "area" are highlighted as spupType. +" +" If you encounter problems or have questions or suggestions, mail me + +" Remove old syntax stuff +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" don't highlight several keywords like subsections +"let strict_subsections = 1 + +" highlight types usually found in DECLARE section +if !exists("highlight_types") + let highlight_types = 1 +endif + +" one line comment syntax (# comments) +" 1. allow appended code after comment, do not complain +" 2. show code beginning with the second # as an error +" 3. show whole lines with more than one # as an error +if !exists("oneline_comments") + let oneline_comments = 2 +endif + +" Speedup SECTION regions +syn case ignore +syn region spupCdi matchgroup=spupSection start="^CDI" end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary +syn region spupConditions matchgroup=spupSection start="^CONDITIONS" end="^\*\*\*\*" contains=spupConditionsSubs,@spupOrdinary,spupConditional,spupOperator,spupCode +syn region spupDeclare matchgroup=spupSection start="^DECLARE" end="^\*\*\*\*" contains=spupDeclareSubs,@spupOrdinary,spupTypes,spupCode +syn region spupEstimation matchgroup=spupSection start="^ESTIMATION" end="^\*\*\*\*" contains=spupEstimationSubs,@spupOrdinary +syn region spupExternal matchgroup=spupSection start="^EXTERNAL" end="^\*\*\*\*" contains=spupExternalSubs,@spupOrdinary +syn region spupFlowsheet matchgroup=spupSection start="^FLOWSHEET" end="^\*\*\*\*" contains=spupFlowsheetSubs,@spupOrdinary,spupStreams,@spupTextproc +syn region spupFunction matchgroup=spupSection start="^FUNCTION" end="^\*\*\*\*" contains=spupFunctionSubs,@spupOrdinary,spupHelp,spupCode,spupTypes +syn region spupGlobal matchgroup=spupSection start="^GLOBAL" end="^\*\*\*\*" contains=spupGlobalSubs,@spupOrdinary +syn region spupHomotopy matchgroup=spupSection start="^HOMOTOPY" end="^\*\*\*\*" contains=spupHomotopySubs,@spupOrdinary +syn region spupMacro matchgroup=spupSection start="^MACRO" end="^\*\*\*\*" contains=spupMacroSubs,@spupOrdinary,@spupTextproc,spupTypes,spupStreams,spupOperator +syn region spupModel matchgroup=spupSection start="^MODEL" end="^\*\*\*\*" contains=spupModelSubs,@spupOrdinary,spupConditional,spupOperator,spupTypes,spupStreams,@spupTextproc,spupHelp +syn region spupOperation matchgroup=spupSection start="^OPERATION" end="^\*\*\*\*" contains=spupOperationSubs,@spupOrdinary,@spupTextproc +syn region spupOptions matchgroup=spupSection start="^OPTIONS" end="^\*\*\*\*" contains=spupOptionsSubs,@spupOrdinary +syn region spupProcedure matchgroup=spupSection start="^PROCEDURE" end="^\*\*\*\*" contains=spupProcedureSubs,@spupOrdinary,spupHelp,spupCode,spupTypes +syn region spupProfiles matchgroup=spupSection start="^PROFILES" end="^\*\*\*\*" contains=@spupOrdinary,@spupTextproc +syn region spupReport matchgroup=spupSection start="^REPORT" end="^\*\*\*\*" contains=spupReportSubs,@spupOrdinary,spupHelp,@spupTextproc +syn region spupTitle matchgroup=spupSection start="^TITLE" end="^\*\*\*\*" contains=spupTitleSubs,spupComment,spupConstant,spupError +syn region spupUnit matchgroup=spupSection start="^UNIT" end="^\*\*\*\*" contains=spupUnitSubs,@spupOrdinary + +" Subsections +syn keyword spupCdiSubs INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained +syn keyword spupDeclareSubs TYPE STREAM contained +syn keyword spupEstimationSubs ESTIMATE SSEXP DYNEXP RESULT contained +syn keyword spupExternalSubs TRANSMIT RECEIVE contained +syn keyword spupFlowsheetSubs STREAM contained +syn keyword spupFunctionSubs INPUT OUTPUT contained +syn keyword spupGlobalSubs VARIABLES MAXIMIZE MINIMIZE CONSTRAINT contained +syn keyword spupHomotopySubs VARY OPTIONS contained +syn keyword spupMacroSubs MODEL FLOWSHEET contained +syn keyword spupModelSubs CATEGORY SET TYPE STREAM EQUATION PROCEDURE contained +syn keyword spupOperationSubs SET PRESET INITIAL SSTATE FREE contained +syn keyword spupOptionsSubs ROUTINES TRANSLATE EXECUTION contained +syn keyword spupProcedureSubs INPUT OUTPUT SPACE PRECALL POSTCALL DERIVATIVE STREAM contained +" no subsections for Profiles +syn keyword spupReportSubs SET INITIAL FIELDS FIELDMARK DISPLAY WITHIN contained +syn keyword spupUnitSubs ROUTINES SET contained + +" additional keywords for subsections +if !exists( "strict_subsections" ) + syn keyword spupConditionsSubs STOP PRINT contained + syn keyword spupDeclareSubs UNIT SET COMPONENTS THERMO OPTIONS contained + syn keyword spupEstimationSubs VARY MEASURE INITIAL contained + syn keyword spupFlowsheetSubs TYPE FEED PRODUCT INPUT OUTPUT CONNECTION OF IS contained + syn keyword spupMacroSubs CONNECTION STREAM SET INPUT OUTPUT OF IS FEED PRODUCT TYPE contained + syn keyword spupModelSubs AS ARRAY OF INPUT OUTPUT CONNECTION contained + syn keyword spupOperationSubs WITHIN contained + syn keyword spupReportSubs LEFT RIGHT CENTER CENTRE UOM TIME DATE VERSION RELDATE contained + syn keyword spupUnitSubs IS A contained +endif + +" Speedup data types +if exists( "highlight_types" ) + syn keyword spupTypes act_coeff_liq area coefficient concentration contained + syn keyword spupTypes control_signal cond_liq cond_vap cp_mass_liq contained + syn keyword spupTypes cp_mol_liq cp_mol_vap cv_mol_liq cv_mol_vap contained + syn keyword spupTypes diffus_liq diffus_vap delta_p dens_mass contained + syn keyword spupTypes dens_mass_sol dens_mass_liq dens_mass_vap dens_mol contained + syn keyword spupTypes dens_mol_sol dens_mol_liq dens_mol_vap enthflow contained + syn keyword spupTypes enth_mass enth_mass_liq enth_mass_vap enth_mol contained + syn keyword spupTypes enth_mol_sol enth_mol_liq enth_mol_vap entr_mol contained + syn keyword spupTypes entr_mol_sol entr_mol_liq entr_mol_vap fraction contained + syn keyword spupTypes flow_mass flow_mass_liq flow_mass_vap flow_mol contained + syn keyword spupTypes flow_mol_vap flow_mol_liq flow_vol flow_vol_vap contained + syn keyword spupTypes flow_vol_liq fuga_vap fuga_liq fuga_sol contained + syn keyword spupTypes gibb_mol_sol heat_react heat_trans_coeff contained + syn keyword spupTypes holdup_heat holdup_heat_liq holdup_heat_vap contained + syn keyword spupTypes holdup_mass holdup_mass_liq holdup_mass_vap contained + syn keyword spupTypes holdup_mol holdup_mol_liq holdup_mol_vap k_value contained + syn keyword spupTypes length length_delta length_short liqfraction contained + syn keyword spupTypes liqmassfraction mass massfraction molefraction contained + syn keyword spupTypes molweight moment_inertia negative notype percent contained + syn keyword spupTypes positive pressure press_diff press_drop press_rise contained + syn keyword spupTypes ratio reaction reaction_mass rotation surf_tens contained + syn keyword spupTypes temperature temperature_abs temp_diff temp_drop contained + syn keyword spupTypes temp_rise time vapfraction vapmassfraction contained + syn keyword spupTypes velocity visc_liq visc_vap volume zmom_rate contained + syn keyword spupTypes seg_rate smom_rate tmom_rate zmom_mass seg_mass contained + syn keyword spupTypes smom_mass tmom_mass zmom_holdup seg_holdup contained + syn keyword spupTypes smom_holdup tmom_holdup contained +endif + +" stream types +syn keyword spupStreams mainstream vapour liquid contained + +" "conditional" keywords +syn keyword spupConditional IF THEN ELSE ENDIF contained +" Operators, symbols etc. +syn keyword spupOperator AND OR NOT contained +syn match spupSymbol "[,\-+=:;*/\"<>@%()]" contained +syn match spupSpecial "[&\$?]" contained +" Surprisingly, Speedup allows no unary + instead of the - +syn match spupError "[(=+\-*/]\s*+\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained +syn match spupError "[(=+\-*/]\s*+\d\+\.\([ed][+-]\=\d\+\)\=\>"lc=1 contained +syn match spupError "[(=+\-*/]\s*+\d*\.\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained +" String +syn region spupString start=+"+ end=+"+ oneline contained +syn region spupString start=+'+ end=+'+ oneline contained +" Identifier +syn match spupIdentifier "\<[a-z][a-z0-9_]*\>" contained +" Textprocessor directives +syn match spupTextprocGeneric "?[a-z][a-z0-9_]*\>" contained +syn region spupTextprocError matchgroup=spupTextprocGeneric start="?ERROR" end="?END"he=s-1 contained +" Number, without decimal point +syn match spupNumber "-\=\d\+\([ed][+-]\=\d\+\)\=" contained +" Number, allows 1. before exponent +syn match spupNumber "-\=\d\+\.\([ed][+-]\=\d\+\)\=" contained +" Number allows .1 before exponent +syn match spupNumber "-\=\d*\.\d\+\([ed][+-]\=\d\+\)\=" contained +" Help subsections +syn region spupHelp start="^HELP"hs=e+1 end="^\$ENDHELP"he=s-1 contained +" Fortran code +syn region spupCode start="^CODE"hs=e+1 end="^\$ENDCODE"he=s-1 contained +" oneline comments +if oneline_comments > 3 + oneline_comments = 2 " default +endif +if oneline_comments == 1 + syn match spupComment "#[^#]*#\=" +elseif oneline_comments == 2 + syn match spupError "#.*$" + syn match spupComment "#[^#]*" nextgroup=spupError +elseif oneline_comments == 3 + syn match spupComment "#[^#]*" + syn match spupError "#[^#]*#.*" +endif +" multiline comments +syn match spupOpenBrace "{" contained +syn match spupError "}" +syn region spupComment matchgroup=spupComment2 start="{" end="}" keepend contains=spupOpenBrace + +syn cluster spupOrdinary contains=spupNumber,spupIdentifier,spupSymbol +syn cluster spupOrdinary add=spupError,spupString,spupComment +syn cluster spupTextproc contains=spupTextprocGeneric,spupTextprocError + +" define synchronizing; especially OPERATION sections can become very large +syn sync clear +syn sync minlines=100 +syn sync maxlines=500 + +syn sync match spupSyncOperation grouphere spupOperation "^OPERATION" +syn sync match spupSyncCdi grouphere spupCdi "^CDI" +syn sync match spupSyncConditions grouphere spupConditions "^CONDITIONS" +syn sync match spupSyncDeclare grouphere spupDeclare "^DECLARE" +syn sync match spupSyncEstimation grouphere spupEstimation "^ESTIMATION" +syn sync match spupSyncExternal grouphere spupExternal "^EXTERNAL" +syn sync match spupSyncFlowsheet grouphere spupFlowsheet "^FLOWSHEET" +syn sync match spupSyncFunction grouphere spupFunction "^FUNCTION" +syn sync match spupSyncGlobal grouphere spupGlobal "^GLOBAL" +syn sync match spupSyncHomotopy grouphere spupHomotopy "^HOMOTOPY" +syn sync match spupSyncMacro grouphere spupMacro "^MACRO" +syn sync match spupSyncModel grouphere spupModel "^MODEL" +syn sync match spupSyncOperation grouphere spupOperation "^OPERATION" +syn sync match spupSyncOptions grouphere spupOptions "^OPTIONS" +syn sync match spupSyncProcedure grouphere spupProcedure "^PROCEDURE" +syn sync match spupSyncProfiles grouphere spupProfiles "^PROFILES" +syn sync match spupSyncReport grouphere spupReport "^REPORT" +syn sync match spupSyncTitle grouphere spupTitle "^TITLE" +syn sync match spupSyncUnit grouphere spupUnit "^UNIT" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link spupCdi spupSection +hi def link spupConditions spupSection +hi def link spupDeclare spupSection +hi def link spupEstimation spupSection +hi def link spupExternal spupSection +hi def link spupFlowsheet spupSection +hi def link spupFunction spupSection +hi def link spupGlobal spupSection +hi def link spupHomotopy spupSection +hi def link spupMacro spupSection +hi def link spupModel spupSection +hi def link spupOperation spupSection +hi def link spupOptions spupSection +hi def link spupProcedure spupSection +hi def link spupProfiles spupSection +hi def link spupReport spupSection +hi def link spupTitle spupConstant " this is correct, truly ;) +hi def link spupUnit spupSection + +hi def link spupCdiSubs spupSubs +hi def link spupConditionsSubs spupSubs +hi def link spupDeclareSubs spupSubs +hi def link spupEstimationSubs spupSubs +hi def link spupExternalSubs spupSubs +hi def link spupFlowsheetSubs spupSubs +hi def link spupFunctionSubs spupSubs +hi def link spupHomotopySubs spupSubs +hi def link spupMacroSubs spupSubs +hi def link spupModelSubs spupSubs +hi def link spupOperationSubs spupSubs +hi def link spupOptionsSubs spupSubs +hi def link spupProcedureSubs spupSubs +hi def link spupReportSubs spupSubs +hi def link spupUnitSubs spupSubs + +hi def link spupCode Normal +hi def link spupComment Comment +hi def link spupComment2 spupComment +hi def link spupConditional Statement +hi def link spupConstant Constant +hi def link spupError Error +hi def link spupHelp Normal +hi def link spupIdentifier Identifier +hi def link spupNumber Constant +hi def link spupOperator Special +hi def link spupOpenBrace spupError +hi def link spupSection Statement +hi def link spupSpecial spupTextprocGeneric +hi def link spupStreams Type +hi def link spupString Constant +hi def link spupSubs Statement +hi def link spupSymbol Special +hi def link spupTextprocError Normal +hi def link spupTextprocGeneric PreProc +hi def link spupTypes Type + + +let b:current_syntax = "spup" + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim:ts=8 diff --git a/runtime/syntax/spyce.vim b/runtime/syntax/spyce.vim new file mode 100644 index 0000000..169de19 --- /dev/null +++ b/runtime/syntax/spyce.vim @@ -0,0 +1,104 @@ +" Vim syntax file +" Language: SPYCE +" Maintainer: Rimon Barr +" URL: http://spyce.sourceforge.net +" Last Change: 2009 Nov 11 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" we define it here so that included files can test for it +if !exists("main_syntax") + let main_syntax='spyce' +endif + +" Read the HTML syntax to start with +let b:did_indent = 1 " don't perform HTML indentation! +let html_no_rendering = 1 " do not render ,, etc... +runtime! syntax/html.vim +unlet b:current_syntax +syntax spell default " added by Bram + +" include python +syn include @Python :p:h/python.vim +syn include @Html :p:h/html.vim + +" spyce definitions +syn keyword spyceDirectiveKeyword include compact module import contained +syn keyword spyceDirectiveArg name names file contained +syn region spyceDirectiveString start=+"+ end=+"+ contained +syn match spyceDirectiveValue "=[\t ]*[^'", \t>][^, \t>]*"hs=s+1 contained + +syn match spyceBeginErrorS ,\[\[, +syn match spyceBeginErrorA ,<%, +syn cluster spyceBeginError contains=spyceBeginErrorS,spyceBeginErrorA +syn match spyceEndErrorS ,\]\], +syn match spyceEndErrorA ,%>, +syn cluster spyceEndError contains=spyceEndErrorS,spyceEndErrorA + +syn match spyceEscBeginS ,\\\[\[, +syn match spyceEscBeginA ,\\<%, +syn cluster spyceEscBegin contains=spyceEscBeginS,spyceEscBeginA +syn match spyceEscEndS ,\\\]\], +syn match spyceEscEndA ,\\%>, +syn cluster spyceEscEnd contains=spyceEscEndS,spyceEscEndA +syn match spyceEscEndCommentS ,--\\\]\], +syn match spyceEscEndCommentA ,--\\%>, +syn cluster spyceEscEndComment contains=spyceEscEndCommentS,spyceEscEndCommentA + +syn region spyceStmtS matchgroup=spyceStmtDelim start=,\[\[, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend +syn region spyceStmtA matchgroup=spyceStmtDelim start=,<%, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend +syn region spyceChunkS matchgroup=spyceChunkDelim start=,\[\[\\, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend +syn region spyceChunkA matchgroup=spyceChunkDelim start=,<%\\, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend +syn region spyceEvalS matchgroup=spyceEvalDelim start=,\[\[=, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend +syn region spyceEvalA matchgroup=spyceEvalDelim start=,<%=, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend +syn region spyceDirectiveS matchgroup=spyceDelim start=,\[\[\., end=,\]\], contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend +syn region spyceDirectiveA matchgroup=spyceDelim start=,<%@, end=,%>, contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend +syn region spyceCommentS matchgroup=spyceCommentDelim start=,\[\[--, end=,--\]\], +syn region spyceCommentA matchgroup=spyceCommentDelim start=,<%--, end=,--%>, +syn region spyceLambdaS matchgroup=spyceLambdaDelim start=,\[\[spy!\?, end=,\]\], contains=@Html,@spyce extend +syn region spyceLambdaA matchgroup=spyceLambdaDelim start=,<%spy!\?, end=,%>, contains=@Html,@spyce extend + +syn cluster spyce contains=spyceStmtS,spyceStmtA,spyceChunkS,spyceChunkA,spyceEvalS,spyceEvalA,spyceCommentS,spyceCommentA,spyceDirectiveS,spyceDirectiveA + +syn cluster htmlPreproc contains=@spyce + +hi link spyceDirectiveKeyword Special +hi link spyceDirectiveArg Type +hi link spyceDirectiveString String +hi link spyceDirectiveValue String + +hi link spyceDelim Special +hi link spyceStmtDelim spyceDelim +hi link spyceChunkDelim spyceDelim +hi link spyceEvalDelim spyceDelim +hi link spyceLambdaDelim spyceDelim +hi link spyceCommentDelim Comment + +hi link spyceBeginErrorS Error +hi link spyceBeginErrorA Error +hi link spyceEndErrorS Error +hi link spyceEndErrorA Error + +hi link spyceStmtS spyce +hi link spyceStmtA spyce +hi link spyceChunkS spyce +hi link spyceChunkA spyce +hi link spyceEvalS spyce +hi link spyceEvalA spyce +hi link spyceDirectiveS spyce +hi link spyceDirectiveA spyce +hi link spyceCommentS Comment +hi link spyceCommentA Comment +hi link spyceLambdaS Normal +hi link spyceLambdaA Normal + +hi link spyce Statement + +let b:current_syntax = "spyce" +if main_syntax == 'spyce' + unlet main_syntax +endif + diff --git a/runtime/syntax/sql.vim b/runtime/syntax/sql.vim new file mode 100644 index 0000000..6de3f4a --- /dev/null +++ b/runtime/syntax/sql.vim @@ -0,0 +1,36 @@ +" Vim syntax file loader +" Language: SQL +" Maintainer: David Fishburn +" Last Change: Thu Sep 15 2005 10:30:02 AM +" Version: 1.0 + +" Description: Checks for a: +" buffer local variable, +" global variable, +" If the above exist, it will source the type specified. +" If none exist, it will source the default sql.vim file. +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Default to the standard Vim distribution file +let filename = 'sqloracle' + +" Check for overrides. Buffer variables have the highest priority. +if exists("b:sql_type_override") + " Check the runtimepath to see if the file exists + if globpath(&runtimepath, 'syntax/'.b:sql_type_override.'.vim') != '' + let filename = b:sql_type_override + endif +elseif exists("g:sql_type_default") + if globpath(&runtimepath, 'syntax/'.g:sql_type_default.'.vim') != '' + let filename = g:sql_type_default + endif +endif + +" Source the appropriate file +exec 'runtime syntax/'.filename.'.vim' + +" vim:sw=4: diff --git a/runtime/syntax/sqlanywhere.vim b/runtime/syntax/sqlanywhere.vim new file mode 100644 index 0000000..e91a99d --- /dev/null +++ b/runtime/syntax/sqlanywhere.vim @@ -0,0 +1,905 @@ +" Vim syntax file +" Language: SQL, Adaptive Server Anywhere +" Maintainer: David Fishburn +" Last Change: 2013 May 13 +" Version: 16.0.0 + +" Description: Updated to Adaptive Server Anywhere 16.0.0 +" Updated to Adaptive Server Anywhere 12.0.1 (including spatial data) +" Updated to Adaptive Server Anywhere 11.0.1 +" Updated to Adaptive Server Anywhere 10.0.1 +" Updated to Adaptive Server Anywhere 9.0.2 +" Updated to Adaptive Server Anywhere 9.0.1 +" Updated to Adaptive Server Anywhere 9.0.0 +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" The SQL reserved words, defined as keywords. + +syn keyword sqlSpecial false null true + +" common functions +syn keyword sqlFunction abs argn avg bintohex bintostr +syn keyword sqlFunction byte_length byte_substr char_length +syn keyword sqlFunction compare count count_big datalength date +syn keyword sqlFunction date_format dateadd datediff datename +syn keyword sqlFunction datepart day dayname days debug_eng +syn keyword sqlFunction dense_rank density dialect difference +syn keyword sqlFunction dow estimate estimate_source evaluate +syn keyword sqlFunction experience_estimate explanation +syn keyword sqlFunction get_identity graphical_plan +syn keyword sqlFunction graphical_ulplan greater grouping +syn keyword sqlFunction hextobin hextoint hour hours identity +syn keyword sqlFunction ifnull index_estimate inttohex isdate +syn keyword sqlFunction isencrypted isnull isnumeric +syn keyword sqlFunction lang_message length lesser like_end +syn keyword sqlFunction like_start list long_ulplan lookup max +syn keyword sqlFunction min minute minutes month monthname +syn keyword sqlFunction months newid now nullif number +syn keyword sqlFunction percent_rank plan quarter rand rank +syn keyword sqlFunction regexp_compile regexp_compile_patindex +syn keyword sqlFunction remainder rewrite rowid second seconds +syn keyword sqlFunction short_ulplan similar sortkey soundex +syn keyword sqlFunction stddev stack_trace str string strtobin strtouuid stuff +syn keyword sqlFunction subpartition substr substring sum switchoffset sysdatetimeoffset +syn keyword sqlFunction textptr todate todatetimeoffset today totimestamp traceback transactsql +syn keyword sqlFunction ts_index_statistics ts_table_statistics +syn keyword sqlFunction tsequal ulplan user_id user_name utc_now +syn keyword sqlFunction uuidtostr varexists variance watcomsql +syn keyword sqlFunction weeks wsql_state year years ymd + +" 9.0.1 functions +syn keyword sqlFunction acos asin atan atn2 cast ceiling convert cos cot +syn keyword sqlFunction char_length coalesce dateformat datetime degrees exp +syn keyword sqlFunction floor getdate insertstr +syn keyword sqlFunction log log10 lower mod pi power +syn keyword sqlFunction property radians replicate round sign sin +syn keyword sqlFunction sqldialect tan truncate truncnum +syn keyword sqlFunction base64_encode base64_decode +syn keyword sqlFunction hash compress decompress encrypt decrypt + +" 11.0.1 functions +syn keyword sqlFunction connection_extended_property text_handle_vector_match +syn keyword sqlFunction read_client_file write_client_file + +" 12.0.1 functions +syn keyword sqlFunction http_response_header + +" string functions +syn keyword sqlFunction ascii char left ltrim repeat +syn keyword sqlFunction space right rtrim trim lcase ucase +syn keyword sqlFunction locate charindex patindex replace +syn keyword sqlFunction errormsg csconvert + +" property functions +syn keyword sqlFunction db_id db_name property_name +syn keyword sqlFunction property_description property_number +syn keyword sqlFunction next_connection next_database property +syn keyword sqlFunction connection_property db_property db_extended_property +syn keyword sqlFunction event_parmeter event_condition event_condition_name + +" sa_ procedures +syn keyword sqlFunction sa_add_index_consultant_analysis +syn keyword sqlFunction sa_add_workload_query +syn keyword sqlFunction sa_app_deregister +syn keyword sqlFunction sa_app_get_infoStr +syn keyword sqlFunction sa_app_get_status +syn keyword sqlFunction sa_app_register +syn keyword sqlFunction sa_app_registration_unlock +syn keyword sqlFunction sa_app_set_infoStr +syn keyword sqlFunction sa_audit_string +syn keyword sqlFunction sa_check_commit +syn keyword sqlFunction sa_checkpoint_execute +syn keyword sqlFunction sa_conn_activity +syn keyword sqlFunction sa_conn_compression_info +syn keyword sqlFunction sa_conn_deregister +syn keyword sqlFunction sa_conn_info +syn keyword sqlFunction sa_conn_properties +syn keyword sqlFunction sa_conn_properties_by_conn +syn keyword sqlFunction sa_conn_properties_by_name +syn keyword sqlFunction sa_conn_register +syn keyword sqlFunction sa_conn_set_status +syn keyword sqlFunction sa_create_analysis_from_query +syn keyword sqlFunction sa_db_info +syn keyword sqlFunction sa_db_properties +syn keyword sqlFunction sa_disable_auditing_type +syn keyword sqlFunction sa_disable_index +syn keyword sqlFunction sa_disk_free_space +syn keyword sqlFunction sa_enable_auditing_type +syn keyword sqlFunction sa_enable_index +syn keyword sqlFunction sa_end_forward_to +syn keyword sqlFunction sa_eng_properties +syn keyword sqlFunction sa_event_schedules +syn keyword sqlFunction sa_exec_script +syn keyword sqlFunction sa_flush_cache +syn keyword sqlFunction sa_flush_statistics +syn keyword sqlFunction sa_forward_to +syn keyword sqlFunction sa_get_dtt +syn keyword sqlFunction sa_get_histogram +syn keyword sqlFunction sa_get_request_profile +syn keyword sqlFunction sa_get_request_profile_sub +syn keyword sqlFunction sa_get_request_times +syn keyword sqlFunction sa_get_server_messages +syn keyword sqlFunction sa_get_simulated_scale_factors +syn keyword sqlFunction sa_get_workload_capture_status +syn keyword sqlFunction sa_index_density +syn keyword sqlFunction sa_index_levels +syn keyword sqlFunction sa_index_statistics +syn keyword sqlFunction sa_internal_alter_index_ability +syn keyword sqlFunction sa_internal_create_analysis_from_query +syn keyword sqlFunction sa_internal_disk_free_space +syn keyword sqlFunction sa_internal_get_dtt +syn keyword sqlFunction sa_internal_get_histogram +syn keyword sqlFunction sa_internal_get_request_times +syn keyword sqlFunction sa_internal_get_simulated_scale_factors +syn keyword sqlFunction sa_internal_get_workload_capture_status +syn keyword sqlFunction sa_internal_index_density +syn keyword sqlFunction sa_internal_index_levels +syn keyword sqlFunction sa_internal_index_statistics +syn keyword sqlFunction sa_internal_java_loaded_classes +syn keyword sqlFunction sa_internal_locks +syn keyword sqlFunction sa_internal_pause_workload_capture +syn keyword sqlFunction sa_internal_procedure_profile +syn keyword sqlFunction sa_internal_procedure_profile_summary +syn keyword sqlFunction sa_internal_read_backup_history +syn keyword sqlFunction sa_internal_recommend_indexes +syn keyword sqlFunction sa_internal_reset_identity +syn keyword sqlFunction sa_internal_resume_workload_capture +syn keyword sqlFunction sa_internal_start_workload_capture +syn keyword sqlFunction sa_internal_stop_index_consultant +syn keyword sqlFunction sa_internal_stop_workload_capture +syn keyword sqlFunction sa_internal_table_fragmentation +syn keyword sqlFunction sa_internal_table_page_usage +syn keyword sqlFunction sa_internal_table_stats +syn keyword sqlFunction sa_internal_virtual_sysindex +syn keyword sqlFunction sa_internal_virtual_sysixcol +syn keyword sqlFunction sa_java_loaded_classes +syn keyword sqlFunction sa_jdk_version +syn keyword sqlFunction sa_locks +syn keyword sqlFunction sa_make_object +syn keyword sqlFunction sa_pause_workload_capture +syn keyword sqlFunction sa_proc_debug_attach_to_connection +syn keyword sqlFunction sa_proc_debug_connect +syn keyword sqlFunction sa_proc_debug_detach_from_connection +syn keyword sqlFunction sa_proc_debug_disconnect +syn keyword sqlFunction sa_proc_debug_get_connection_name +syn keyword sqlFunction sa_proc_debug_release_connection +syn keyword sqlFunction sa_proc_debug_request +syn keyword sqlFunction sa_proc_debug_version +syn keyword sqlFunction sa_proc_debug_wait_for_connection +syn keyword sqlFunction sa_procedure_profile +syn keyword sqlFunction sa_procedure_profile_summary +syn keyword sqlFunction sa_read_backup_history +syn keyword sqlFunction sa_recommend_indexes +syn keyword sqlFunction sa_recompile_views +syn keyword sqlFunction sa_remove_index_consultant_analysis +syn keyword sqlFunction sa_remove_index_consultant_workload +syn keyword sqlFunction sa_reset_identity +syn keyword sqlFunction sa_resume_workload_capture +syn keyword sqlFunction sa_server_option +syn keyword sqlFunction sa_set_simulated_scale_factor +syn keyword sqlFunction sa_setremoteuser +syn keyword sqlFunction sa_setsubscription +syn keyword sqlFunction sa_start_recording_commits +syn keyword sqlFunction sa_start_workload_capture +syn keyword sqlFunction sa_statement_text +syn keyword sqlFunction sa_stop_index_consultant +syn keyword sqlFunction sa_stop_recording_commits +syn keyword sqlFunction sa_stop_workload_capture +syn keyword sqlFunction sa_sync +syn keyword sqlFunction sa_sync_sub +syn keyword sqlFunction sa_table_fragmentation +syn keyword sqlFunction sa_table_page_usage +syn keyword sqlFunction sa_table_stats +syn keyword sqlFunction sa_update_index_consultant_workload +syn keyword sqlFunction sa_validate +syn keyword sqlFunction sa_virtual_sysindex +syn keyword sqlFunction sa_virtual_sysixcol + +" sp_ procedures +syn keyword sqlFunction sp_addalias +syn keyword sqlFunction sp_addauditrecord +syn keyword sqlFunction sp_adddumpdevice +syn keyword sqlFunction sp_addgroup +syn keyword sqlFunction sp_addlanguage +syn keyword sqlFunction sp_addlogin +syn keyword sqlFunction sp_addmessage +syn keyword sqlFunction sp_addremotelogin +syn keyword sqlFunction sp_addsegment +syn keyword sqlFunction sp_addserver +syn keyword sqlFunction sp_addthreshold +syn keyword sqlFunction sp_addtype +syn keyword sqlFunction sp_adduser +syn keyword sqlFunction sp_auditdatabase +syn keyword sqlFunction sp_auditlogin +syn keyword sqlFunction sp_auditobject +syn keyword sqlFunction sp_auditoption +syn keyword sqlFunction sp_auditsproc +syn keyword sqlFunction sp_bindefault +syn keyword sqlFunction sp_bindmsg +syn keyword sqlFunction sp_bindrule +syn keyword sqlFunction sp_changedbowner +syn keyword sqlFunction sp_changegroup +syn keyword sqlFunction sp_checknames +syn keyword sqlFunction sp_checkperms +syn keyword sqlFunction sp_checkreswords +syn keyword sqlFunction sp_clearstats +syn keyword sqlFunction sp_column_privileges +syn keyword sqlFunction sp_columns +syn keyword sqlFunction sp_commonkey +syn keyword sqlFunction sp_configure +syn keyword sqlFunction sp_cursorinfo +syn keyword sqlFunction sp_databases +syn keyword sqlFunction sp_datatype_info +syn keyword sqlFunction sp_dboption +syn keyword sqlFunction sp_dbremap +syn keyword sqlFunction sp_depends +syn keyword sqlFunction sp_diskdefault +syn keyword sqlFunction sp_displaylogin +syn keyword sqlFunction sp_dropalias +syn keyword sqlFunction sp_dropdevice +syn keyword sqlFunction sp_dropgroup +syn keyword sqlFunction sp_dropkey +syn keyword sqlFunction sp_droplanguage +syn keyword sqlFunction sp_droplogin +syn keyword sqlFunction sp_dropmessage +syn keyword sqlFunction sp_dropremotelogin +syn keyword sqlFunction sp_dropsegment +syn keyword sqlFunction sp_dropserver +syn keyword sqlFunction sp_dropthreshold +syn keyword sqlFunction sp_droptype +syn keyword sqlFunction sp_dropuser +syn keyword sqlFunction sp_estspace +syn keyword sqlFunction sp_extendsegment +syn keyword sqlFunction sp_fkeys +syn keyword sqlFunction sp_foreignkey +syn keyword sqlFunction sp_getmessage +syn keyword sqlFunction sp_help +syn keyword sqlFunction sp_helpconstraint +syn keyword sqlFunction sp_helpdb +syn keyword sqlFunction sp_helpdevice +syn keyword sqlFunction sp_helpgroup +syn keyword sqlFunction sp_helpindex +syn keyword sqlFunction sp_helpjoins +syn keyword sqlFunction sp_helpkey +syn keyword sqlFunction sp_helplanguage +syn keyword sqlFunction sp_helplog +syn keyword sqlFunction sp_helpprotect +syn keyword sqlFunction sp_helpremotelogin +syn keyword sqlFunction sp_helpsegment +syn keyword sqlFunction sp_helpserver +syn keyword sqlFunction sp_helpsort +syn keyword sqlFunction sp_helptext +syn keyword sqlFunction sp_helpthreshold +syn keyword sqlFunction sp_helpuser +syn keyword sqlFunction sp_indsuspect +syn keyword sqlFunction sp_lock +syn keyword sqlFunction sp_locklogin +syn keyword sqlFunction sp_logdevice +syn keyword sqlFunction sp_login_environment +syn keyword sqlFunction sp_modifylogin +syn keyword sqlFunction sp_modifythreshold +syn keyword sqlFunction sp_monitor +syn keyword sqlFunction sp_password +syn keyword sqlFunction sp_pkeys +syn keyword sqlFunction sp_placeobject +syn keyword sqlFunction sp_primarykey +syn keyword sqlFunction sp_procxmode +syn keyword sqlFunction sp_recompile +syn keyword sqlFunction sp_remap +syn keyword sqlFunction sp_remote_columns +syn keyword sqlFunction sp_remote_exported_keys +syn keyword sqlFunction sp_remote_imported_keys +syn keyword sqlFunction sp_remote_pcols +syn keyword sqlFunction sp_remote_primary_keys +syn keyword sqlFunction sp_remote_procedures +syn keyword sqlFunction sp_remote_tables +syn keyword sqlFunction sp_remoteoption +syn keyword sqlFunction sp_rename +syn keyword sqlFunction sp_renamedb +syn keyword sqlFunction sp_reportstats +syn keyword sqlFunction sp_reset_tsql_environment +syn keyword sqlFunction sp_role +syn keyword sqlFunction sp_server_info +syn keyword sqlFunction sp_servercaps +syn keyword sqlFunction sp_serverinfo +syn keyword sqlFunction sp_serveroption +syn keyword sqlFunction sp_setlangalias +syn keyword sqlFunction sp_setreplicate +syn keyword sqlFunction sp_setrepproc +syn keyword sqlFunction sp_setreptable +syn keyword sqlFunction sp_spaceused +syn keyword sqlFunction sp_special_columns +syn keyword sqlFunction sp_sproc_columns +syn keyword sqlFunction sp_statistics +syn keyword sqlFunction sp_stored_procedures +syn keyword sqlFunction sp_syntax +syn keyword sqlFunction sp_table_privileges +syn keyword sqlFunction sp_tables +syn keyword sqlFunction sp_tsql_environment +syn keyword sqlFunction sp_tsql_feature_not_supported +syn keyword sqlFunction sp_unbindefault +syn keyword sqlFunction sp_unbindmsg +syn keyword sqlFunction sp_unbindrule +syn keyword sqlFunction sp_volchanged +syn keyword sqlFunction sp_who +syn keyword sqlFunction xp_scanf +syn keyword sqlFunction xp_sprintf + +" server functions +syn keyword sqlFunction col_length +syn keyword sqlFunction col_name +syn keyword sqlFunction index_col +syn keyword sqlFunction object_id +syn keyword sqlFunction object_name +syn keyword sqlFunction proc_role +syn keyword sqlFunction show_role +syn keyword sqlFunction xp_cmdshell +syn keyword sqlFunction xp_msver +syn keyword sqlFunction xp_read_file +syn keyword sqlFunction xp_real_cmdshell +syn keyword sqlFunction xp_real_read_file +syn keyword sqlFunction xp_real_sendmail +syn keyword sqlFunction xp_real_startmail +syn keyword sqlFunction xp_real_startsmtp +syn keyword sqlFunction xp_real_stopmail +syn keyword sqlFunction xp_real_stopsmtp +syn keyword sqlFunction xp_real_write_file +syn keyword sqlFunction xp_scanf +syn keyword sqlFunction xp_sendmail +syn keyword sqlFunction xp_sprintf +syn keyword sqlFunction xp_startmail +syn keyword sqlFunction xp_startsmtp +syn keyword sqlFunction xp_stopmail +syn keyword sqlFunction xp_stopsmtp +syn keyword sqlFunction xp_write_file + +" http functions +syn keyword sqlFunction http_header http_variable +syn keyword sqlFunction next_http_header next_http_response_header next_http_variable +syn keyword sqlFunction sa_set_http_header sa_set_http_option +syn keyword sqlFunction sa_http_variable_info sa_http_header_info + +" http functions 9.0.1 +syn keyword sqlFunction http_encode http_decode +syn keyword sqlFunction html_encode html_decode + +" XML function support +syn keyword sqlFunction openxml xmlelement xmlforest xmlgen xmlconcat xmlagg +syn keyword sqlFunction xmlattributes + +" Spatial Compatibility Functions +syn keyword sqlFunction ST_BdMPolyFromText +syn keyword sqlFunction ST_BdMPolyFromWKB +syn keyword sqlFunction ST_BdPolyFromText +syn keyword sqlFunction ST_BdPolyFromWKB +syn keyword sqlFunction ST_CPolyFromText +syn keyword sqlFunction ST_CPolyFromWKB +syn keyword sqlFunction ST_CircularFromTxt +syn keyword sqlFunction ST_CircularFromWKB +syn keyword sqlFunction ST_CompoundFromTxt +syn keyword sqlFunction ST_CompoundFromWKB +syn keyword sqlFunction ST_GeomCollFromTxt +syn keyword sqlFunction ST_GeomCollFromWKB +syn keyword sqlFunction ST_GeomFromText +syn keyword sqlFunction ST_GeomFromWKB +syn keyword sqlFunction ST_LineFromText +syn keyword sqlFunction ST_LineFromWKB +syn keyword sqlFunction ST_MCurveFromText +syn keyword sqlFunction ST_MCurveFromWKB +syn keyword sqlFunction ST_MLineFromText +syn keyword sqlFunction ST_MLineFromWKB +syn keyword sqlFunction ST_MPointFromText +syn keyword sqlFunction ST_MPointFromWKB +syn keyword sqlFunction ST_MPolyFromText +syn keyword sqlFunction ST_MPolyFromWKB +syn keyword sqlFunction ST_MSurfaceFromTxt +syn keyword sqlFunction ST_MSurfaceFromWKB +syn keyword sqlFunction ST_OrderingEquals +syn keyword sqlFunction ST_PointFromText +syn keyword sqlFunction ST_PointFromWKB +syn keyword sqlFunction ST_PolyFromText +syn keyword sqlFunction ST_PolyFromWKB +" Spatial Structural Methods +syn keyword sqlFunction ST_CoordDim +syn keyword sqlFunction ST_CurveN +syn keyword sqlFunction ST_Dimension +syn keyword sqlFunction ST_EndPoint +syn keyword sqlFunction ST_ExteriorRing +syn keyword sqlFunction ST_GeometryN +syn keyword sqlFunction ST_GeometryType +syn keyword sqlFunction ST_InteriorRingN +syn keyword sqlFunction ST_Is3D +syn keyword sqlFunction ST_IsClosed +syn keyword sqlFunction ST_IsEmpty +syn keyword sqlFunction ST_IsMeasured +syn keyword sqlFunction ST_IsRing +syn keyword sqlFunction ST_IsSimple +syn keyword sqlFunction ST_IsValid +syn keyword sqlFunction ST_NumCurves +syn keyword sqlFunction ST_NumGeometries +syn keyword sqlFunction ST_NumInteriorRing +syn keyword sqlFunction ST_NumPoints +syn keyword sqlFunction ST_PointN +syn keyword sqlFunction ST_StartPoint +"Spatial Computation +syn keyword sqlFunction ST_Length +syn keyword sqlFunction ST_Area +syn keyword sqlFunction ST_Centroid +syn keyword sqlFunction ST_Area +syn keyword sqlFunction ST_Centroid +syn keyword sqlFunction ST_IsWorld +syn keyword sqlFunction ST_Perimeter +syn keyword sqlFunction ST_PointOnSurface +syn keyword sqlFunction ST_Distance +" Spatial Input/Output +syn keyword sqlFunction ST_AsBinary +syn keyword sqlFunction ST_AsGML +syn keyword sqlFunction ST_AsGeoJSON +syn keyword sqlFunction ST_AsSVG +syn keyword sqlFunction ST_AsSVGAggr +syn keyword sqlFunction ST_AsText +syn keyword sqlFunction ST_AsWKB +syn keyword sqlFunction ST_AsWKT +syn keyword sqlFunction ST_AsXML +syn keyword sqlFunction ST_GeomFromBinary +syn keyword sqlFunction ST_GeomFromShape +syn keyword sqlFunction ST_GeomFromText +syn keyword sqlFunction ST_GeomFromWKB +syn keyword sqlFunction ST_GeomFromWKT +syn keyword sqlFunction ST_GeomFromXML +" Spatial Cast Methods +syn keyword sqlFunction ST_CurvePolyToPoly +syn keyword sqlFunction ST_CurveToLine +syn keyword sqlFunction ST_ToCircular +syn keyword sqlFunction ST_ToCompound +syn keyword sqlFunction ST_ToCurve +syn keyword sqlFunction ST_ToCurvePoly +syn keyword sqlFunction ST_ToGeomColl +syn keyword sqlFunction ST_ToLineString +syn keyword sqlFunction ST_ToMultiCurve +syn keyword sqlFunction ST_ToMultiLine +syn keyword sqlFunction ST_ToMultiPoint +syn keyword sqlFunction ST_ToMultiPolygon +syn keyword sqlFunction ST_ToMultiSurface +syn keyword sqlFunction ST_ToPoint +syn keyword sqlFunction ST_ToPolygon +syn keyword sqlFunction ST_ToSurface + +" Array functions 16.x +syn keyword sqlFunction array array_agg array_max_cardinality trim_array +syn keyword sqlFunction error_line error_message error_procedure +syn keyword sqlFunction error_sqlcode error_sqlstate error_stack_trace + + +" keywords +syn keyword sqlKeyword absolute accent access account action active activate add address admin +syn keyword sqlKeyword aes_decrypt after aggregate algorithm allow_dup_row allow allowed alter +syn keyword sqlKeyword always and angular ansi_substring any as append apply +syn keyword sqlKeyword arbiter array asc ascii ase +syn keyword sqlKeyword assign at atan2 atomic attended +syn keyword sqlKeyword audit auditing authentication authorization axis +syn keyword sqlKeyword autoincrement autostop batch bcp before +syn keyword sqlKeyword between bit_and bit_length bit_or bit_substr bit_xor +syn keyword sqlKeyword blank blanks block +syn keyword sqlKeyword both bottom unbounded breaker bufferpool +syn keyword sqlKeyword build bulk by byte bytes cache calibrate calibration +syn keyword sqlKeyword cancel capability cardinality cascade cast +syn keyword sqlKeyword catalog catch ceil change changes char char_convert +syn keyword sqlKeyword check checkpointlog checksum class classes client cmp +syn keyword sqlKeyword cluster clustered collation +syn keyword sqlKeyword column columns +syn keyword sqlKeyword command comments committed commitid comparisons +syn keyword sqlKeyword compatible component compressed compute computes +syn keyword sqlKeyword concat configuration confirm conflict connection +syn keyword sqlKeyword console consolidate consolidated +syn keyword sqlKeyword constraint constraints content +syn keyword sqlKeyword convert coordinate coordinator copy count count_set_bits +syn keyword sqlKeyword crc createtime critical cross cube cume_dist +syn keyword sqlKeyword current cursor data data database +syn keyword sqlKeyword current_timestamp current_user cycle +syn keyword sqlKeyword databases datatype dba dbfile +syn keyword sqlKeyword dbspace dbspaces dbspacename debug decoupled +syn keyword sqlKeyword decrypted default defaults default_dbspace deferred +syn keyword sqlKeyword definer definition +syn keyword sqlKeyword delay deleting delimited dependencies desc +syn keyword sqlKeyword description deterministic directory +syn keyword sqlKeyword disable disabled disallow distinct disksandbox disk_sandbox +syn keyword sqlKeyword dn do domain download duplicate +syn keyword sqlKeyword dsetpass dttm dynamic each earth editproc effective ejb +syn keyword sqlKeyword elimination ellipsoid else elseif +syn keyword sqlKeyword email empty enable encapsulated encrypted encryption end +syn keyword sqlKeyword encoding endif engine environment erase error errors escape escapes event +syn keyword sqlKeyword event_parameter every exception exclude excluded exclusive exec +syn keyword sqlKeyword existing exists expanded expiry express exprtype extended_property +syn keyword sqlKeyword external externlogin factor failover false +syn keyword sqlKeyword fastfirstrow feature fieldproc file files filler +syn keyword sqlKeyword fillfactor final finish first first_keyword first_value +syn keyword sqlKeyword flattening +syn keyword sqlKeyword following force foreign format forjson forxml forxml_sep fp frame +syn keyword sqlKeyword free freepage french fresh full function +syn keyword sqlKeyword gb generic get_bit go global grid +syn keyword sqlKeyword group handler hash having header hexadecimal +syn keyword sqlKeyword hidden high history hg hng hold holdlock host +syn keyword sqlKeyword hours http_body http_session_timeout id identified identity ignore +syn keyword sqlKeyword ignore_dup_key ignore_dup_row immediate +syn keyword sqlKeyword in inactiv inactive inactivity included increment incremental +syn keyword sqlKeyword index index_enabled index_lparen indexonly info information +syn keyword sqlKeyword inheritance inline inner inout insensitive inserting +syn keyword sqlKeyword instead +syn keyword sqlKeyword internal intersection into introduced inverse invoker +syn keyword sqlKeyword iq is isolation +syn keyword sqlKeyword jar java java_location java_main_userid java_vm_options +syn keyword sqlKeyword jconnect jdk join json kb key keys keep language last +syn keyword sqlKeyword last_keyword last_value lateral latitude +syn keyword sqlKeyword ld ldap left len linear lf ln level like +syn keyword sqlKeyword limit local location log +syn keyword sqlKeyword logging logical login logscan long longitude low lru ls +syn keyword sqlKeyword main major manage manual mark master +syn keyword sqlKeyword match matched materialized max maxvalue maximum mb measure median membership +syn keyword sqlKeyword merge metadata methods migrate minimum minor minutes minvalue mirror +syn keyword sqlKeyword mode modify monitor move mru multiplex +syn keyword sqlKeyword name named namespaces national native natural new next nextval +syn keyword sqlKeyword ngram no noholdlock nolock nonclustered none normal not +syn keyword sqlKeyword notify null nullable_constant nulls +syn keyword sqlKeyword object objects oem_string of off offline offset olap +syn keyword sqlKeyword old on online only openstring operator +syn keyword sqlKeyword optimization optimizer option +syn keyword sqlKeyword or order ordinality organization others out outer over owner +syn keyword sqlKeyword package packetsize padding page pages +syn keyword sqlKeyword paglock parallel parameter parent part partial +syn keyword sqlKeyword partition partitions partner password path pctfree +syn keyword sqlKeyword permissions perms plan planar policy polygon populate port postfilter preceding +syn keyword sqlKeyword precisionprefetch prefilter prefix preserve preview previous +syn keyword sqlKeyword primary prior priority priqty private privilege privileges procedure profile profiling +syn keyword sqlKeyword property_is_cumulative property_is_numeric public publication publish publisher +syn keyword sqlKeyword quiesce quote quotes range readclientfile readcommitted reader readfile readonly +syn keyword sqlKeyword readpast readuncommitted readwrite rebuild +syn keyword sqlKeyword received recompile recover recursive references +syn keyword sqlKeyword referencing regex regexp regexp_substr relative relocate +syn keyword sqlKeyword rename repeatable repeatableread replicate replication +syn keyword sqlKeyword requests request_timeout required rereceive resend reserve reset +syn keyword sqlKeyword resizing resolve resource respect restart +syn keyword sqlKeyword restrict result retain retries +syn keyword sqlKeyword returns reverse right role roles +syn keyword sqlKeyword rollup root row row_number rowlock rows rowtype +syn keyword sqlKeyword sa_index_hash sa_internal_fk_verify sa_internal_termbreak +syn keyword sqlKeyword sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix +syn keyword sqlKeyword sa_file_free_pages sa_internal_type_from_catalog sa_internal_valid_hash +syn keyword sqlKeyword sa_internal_validate_value sa_json_element +syn keyword sqlKeyword scale schedule schema scope script scripted scroll search seconds secqty security +syn keyword sqlKeyword semi send sensitive sent sequence serializable +syn keyword sqlKeyword server severity session set_bit set_bits sets +syn keyword sqlKeyword shapefile share side simple since site size skip +syn keyword sqlKeyword snap snapshot soapheader soap_header +syn keyword sqlKeyword spatial split some sorted_data +syn keyword sqlKeyword sql sqlcode sqlid sqlflagger sqlstate sqrt square +syn keyword sqlKeyword stacker stale state statement statistics status stddev_pop stddev_samp +syn keyword sqlKeyword stemmer stogroup stoplist storage store +syn keyword sqlKeyword strip stripesizekb striping subpages subscribe subscription +syn keyword sqlKeyword subtransaction suser_id suser_name suspend synchronization +syn keyword sqlKeyword syntax_error table tables tablock +syn keyword sqlKeyword tablockx target tb temp template temporary term then ties +syn keyword sqlKeyword timezone timeout tls to to_char to_nchar tolerance top +syn keyword sqlKeyword trace traced_plan tracing +syn keyword sqlKeyword transfer transform transaction transactional treat tries +syn keyword sqlKeyword true try tsequal type tune uncommitted unconditionally +syn keyword sqlKeyword unenforced unicode unique unistr unit unknown unlimited unload +syn keyword sqlKeyword unpartition unquiesce updatetime updating updlock upgrade upload +syn keyword sqlKeyword upper usage use user +syn keyword sqlKeyword using utc utilities validproc +syn keyword sqlKeyword value values varchar variable +syn keyword sqlKeyword varying var_pop var_samp vcat verbosity +syn keyword sqlKeyword verify versions view virtual wait +syn keyword sqlKeyword warning wd web when where with with_auto +syn keyword sqlKeyword with_auto with_cube with_rollup without +syn keyword sqlKeyword with_lparen within word work workload write writefile +syn keyword sqlKeyword writeclientfile writer writers writeserver xlock +syn keyword sqlKeyword war xml zeros zone +" XML +syn keyword sqlKeyword raw auto elements explicit +" HTTP support +syn keyword sqlKeyword authorization secure url service next_soap_header +" HTTP 9.0.2 new procedure keywords +syn keyword sqlKeyword namespace certificate certificates clientport proxy trusted_certificates_file +" OLAP support 9.0.0 +syn keyword sqlKeyword covar_pop covar_samp corr regr_slope regr_intercept +syn keyword sqlKeyword regr_count regr_r2 regr_avgx regr_avgy +syn keyword sqlKeyword regr_sxx regr_syy regr_sxy + +" Alternate keywords +syn keyword sqlKeyword character dec options proc reference +syn keyword sqlKeyword subtrans tran syn keyword + +" Login Mode Options +syn keyword sqlKeywordLogin standard integrated kerberos LDAPUA +syn keyword sqlKeywordLogin cloudadmin mixed + +" Spatial Predicates +syn keyword sqlKeyword ST_Contains +syn keyword sqlKeyword ST_ContainsFilter +syn keyword sqlKeyword ST_CoveredBy +syn keyword sqlKeyword ST_CoveredByFilter +syn keyword sqlKeyword ST_Covers +syn keyword sqlKeyword ST_CoversFilter +syn keyword sqlKeyword ST_Crosses +syn keyword sqlKeyword ST_Disjoint +syn keyword sqlKeyword ST_Equals +syn keyword sqlKeyword ST_EqualsFilter +syn keyword sqlKeyword ST_Intersects +syn keyword sqlKeyword ST_IntersectsFilter +syn keyword sqlKeyword ST_IntersectsRect +syn keyword sqlKeyword ST_OrderingEquals +syn keyword sqlKeyword ST_Overlaps +syn keyword sqlKeyword ST_Relate +syn keyword sqlKeyword ST_Touches +syn keyword sqlKeyword ST_Within +syn keyword sqlKeyword ST_WithinFilter +" Spatial Set operations +syn keyword sqlKeyword ST_Affine +syn keyword sqlKeyword ST_Boundary +syn keyword sqlKeyword ST_Buffer +syn keyword sqlKeyword ST_ConvexHull +syn keyword sqlKeyword ST_ConvexHullAggr +syn keyword sqlKeyword ST_Difference +syn keyword sqlKeyword ST_Intersection +syn keyword sqlKeyword ST_IntersectionAggr +syn keyword sqlKeyword ST_SymDifference +syn keyword sqlKeyword ST_Union +syn keyword sqlKeyword ST_UnionAggr +" Spatial Bounds +syn keyword sqlKeyword ST_Envelope +syn keyword sqlKeyword ST_EnvelopeAggr +syn keyword sqlKeyword ST_Lat +syn keyword sqlKeyword ST_LatMax +syn keyword sqlKeyword ST_LatMin +syn keyword sqlKeyword ST_Long +syn keyword sqlKeyword ST_LongMax +syn keyword sqlKeyword ST_LongMin +syn keyword sqlKeyword ST_M +syn keyword sqlKeyword ST_MMax +syn keyword sqlKeyword ST_MMin +syn keyword sqlKeyword ST_Point +syn keyword sqlKeyword ST_X +syn keyword sqlKeyword ST_XMax +syn keyword sqlKeyword ST_XMin +syn keyword sqlKeyword ST_Y +syn keyword sqlKeyword ST_YMax +syn keyword sqlKeyword ST_YMin +syn keyword sqlKeyword ST_Z +syn keyword sqlKeyword ST_ZMax +syn keyword sqlKeyword ST_ZMin +" Spatial Collection Aggregates +syn keyword sqlKeyword ST_GeomCollectionAggr +syn keyword sqlKeyword ST_LineStringAggr +syn keyword sqlKeyword ST_MultiCurveAggr +syn keyword sqlKeyword ST_MultiLineStringAggr +syn keyword sqlKeyword ST_MultiPointAggr +syn keyword sqlKeyword ST_MultiPolygonAggr +syn keyword sqlKeyword ST_MultiSurfaceAggr +syn keyword sqlKeyword ST_Perimeter +syn keyword sqlKeyword ST_PointOnSurface +" Spatial SRS +syn keyword sqlKeyword ST_CompareWKT +syn keyword sqlKeyword ST_FormatWKT +syn keyword sqlKeyword ST_ParseWKT +syn keyword sqlKeyword ST_TransformGeom +syn keyword sqlKeyword ST_GeometryTypeFromBaseType +syn keyword sqlKeyword ST_SnapToGrid +syn keyword sqlKeyword ST_Transform +syn keyword sqlKeyword ST_SRID +syn keyword sqlKeyword ST_SRIDFromBaseType +syn keyword sqlKeyword ST_LoadConfigurationData +" Spatial Indexes +syn keyword sqlKeyword ST_LinearHash +syn keyword sqlKeyword ST_LinearUnHash + +syn keyword sqlOperator in any some all between exists +syn keyword sqlOperator like escape not is and or +syn keyword sqlOperator minus +syn keyword sqlOperator prior distinct unnest + +syn keyword sqlStatement allocate alter attach backup begin break call case catch +syn keyword sqlStatement checkpoint clear close comment commit configure connect +syn keyword sqlStatement continue create deallocate declare delete describe +syn keyword sqlStatement detach disconnect drop except execute exit explain fetch +syn keyword sqlStatement for forward from get goto grant help if include +syn keyword sqlStatement input insert install intersect leave load lock loop +syn keyword sqlStatement message open output parameters passthrough +syn keyword sqlStatement prepare print put raiserror read readtext refresh release +syn keyword sqlStatement remote remove reorganize resignal restore resume +syn keyword sqlStatement return revoke rollback save savepoint select +syn keyword sqlStatement set setuser signal start stop synchronize +syn keyword sqlStatement system trigger truncate try union unload update +syn keyword sqlStatement validate waitfor whenever while window writetext + + +syn keyword sqlType char nchar long varchar nvarchar text ntext uniqueidentifierstr xml +syn keyword sqlType bigint bit decimal double varbit +syn keyword sqlType float int integer numeric +syn keyword sqlType smallint tinyint real +syn keyword sqlType money smallmoney +syn keyword sqlType date datetime datetimeoffset smalldatetime time timestamp +syn keyword sqlType binary image varray varbinary uniqueidentifier +syn keyword sqlType unsigned +" Spatial types +syn keyword sqlType st_geometry st_point st_curve st_surface st_geomcollection +syn keyword sqlType st_linestring st_circularstring st_compoundcurve +syn keyword sqlType st_curvepolygon st_polygon +syn keyword sqlType st_multipoint st_multicurve st_multisurface +syn keyword sqlType st_multilinestring st_multipolygon + +syn keyword sqlOption Allow_nulls_by_default +syn keyword sqlOption Allow_read_client_file +syn keyword sqlOption Allow_snapshot_isolation +syn keyword sqlOption Allow_write_client_file +syn keyword sqlOption Ansi_blanks +syn keyword sqlOption Ansi_close_cursors_on_rollback +syn keyword sqlOption Ansi_permissions +syn keyword sqlOption Ansi_substring +syn keyword sqlOption Ansi_update_constraints +syn keyword sqlOption Ansinull +syn keyword sqlOption Auditing +syn keyword sqlOption Auditing_options +syn keyword sqlOption Auto_commit_on_create_local_temp_index +syn keyword sqlOption Background_priority +syn keyword sqlOption Blocking +syn keyword sqlOption Blocking_others_timeout +syn keyword sqlOption Blocking_timeout +syn keyword sqlOption Chained +syn keyword sqlOption Checkpoint_time +syn keyword sqlOption Cis_option +syn keyword sqlOption Cis_rowset_size +syn keyword sqlOption Close_on_endtrans +syn keyword sqlOption Collect_statistics_on_dml_updates +syn keyword sqlOption Conn_auditing +syn keyword sqlOption Connection_authentication +syn keyword sqlOption Continue_after_raiserror +syn keyword sqlOption Conversion_error +syn keyword sqlOption Cooperative_commit_timeout +syn keyword sqlOption Cooperative_commits +syn keyword sqlOption Database_authentication +syn keyword sqlOption Date_format +syn keyword sqlOption Date_order +syn keyword sqlOption db_publisher +syn keyword sqlOption Debug_messages +syn keyword sqlOption Dedicated_task +syn keyword sqlOption Default_dbspace +syn keyword sqlOption Default_timestamp_increment +syn keyword sqlOption Delayed_commit_timeout +syn keyword sqlOption Delayed_commits +syn keyword sqlOption Divide_by_zero_error +syn keyword sqlOption Escape_character +syn keyword sqlOption Exclude_operators +syn keyword sqlOption Extended_join_syntax +syn keyword sqlOption Extern_login_credentials +syn keyword sqlOption Fire_triggers +syn keyword sqlOption First_day_of_week +syn keyword sqlOption For_xml_null_treatment +syn keyword sqlOption Force_view_creation +syn keyword sqlOption Global_database_id +syn keyword sqlOption Http_session_timeout +syn keyword sqlOption Http_connection_pool_basesize +syn keyword sqlOption Http_connection_pool_timeout +syn keyword sqlOption Integrated_server_name +syn keyword sqlOption Isolation_level +syn keyword sqlOption Java_class_path +syn keyword sqlOption Java_location +syn keyword sqlOption Java_main_userid +syn keyword sqlOption Java_vm_options +syn keyword sqlOption Lock_rejected_rows +syn keyword sqlOption Log_deadlocks +syn keyword sqlOption Login_mode +syn keyword sqlOption Login_procedure +syn keyword sqlOption Materialized_view_optimization +syn keyword sqlOption Max_client_statements_cached +syn keyword sqlOption Max_cursor_count +syn keyword sqlOption Max_hash_size +syn keyword sqlOption Max_plans_cached +syn keyword sqlOption Max_priority +syn keyword sqlOption Max_query_tasks +syn keyword sqlOption Max_recursive_iterations +syn keyword sqlOption Max_statement_count +syn keyword sqlOption Max_temp_space +syn keyword sqlOption Min_password_length +syn keyword sqlOption Min_role_admins +syn keyword sqlOption Nearest_century +syn keyword sqlOption Non_keywords +syn keyword sqlOption Odbc_describe_binary_as_varbinary +syn keyword sqlOption Odbc_distinguish_char_and_varchar +syn keyword sqlOption Oem_string +syn keyword sqlOption On_charset_conversion_failure +syn keyword sqlOption On_tsql_error +syn keyword sqlOption Optimization_goal +syn keyword sqlOption Optimization_level +syn keyword sqlOption Optimization_workload +syn keyword sqlOption Pinned_cursor_percent_of_cache +syn keyword sqlOption Post_login_procedure +syn keyword sqlOption Precision +syn keyword sqlOption Prefetch +syn keyword sqlOption Preserve_source_format +syn keyword sqlOption Prevent_article_pkey_update +syn keyword sqlOption Priority +syn keyword sqlOption Progress_messages +syn keyword sqlOption Query_mem_timeout +syn keyword sqlOption Quoted_identifier +syn keyword sqlOption Read_past_deleted +syn keyword sqlOption Recovery_time +syn keyword sqlOption Remote_idle_timeout +syn keyword sqlOption Replicate_all +syn keyword sqlOption Request_timeout +syn keyword sqlOption Reserved_keywords +syn keyword sqlOption Return_date_time_as_string +syn keyword sqlOption Rollback_on_deadlock +syn keyword sqlOption Row_counts +syn keyword sqlOption Scale +syn keyword sqlOption Secure_feature_key +syn keyword sqlOption Sort_collation +syn keyword sqlOption Sql_flagger_error_level +syn keyword sqlOption Sql_flagger_warning_level +syn keyword sqlOption String_rtruncation +syn keyword sqlOption st_geometry_asbinary_format +syn keyword sqlOption st_geometry_astext_format +syn keyword sqlOption st_geometry_asxml_format +syn keyword sqlOption st_geometry_describe_type +syn keyword sqlOption st_geometry_interpolation +syn keyword sqlOption st_geometry_on_invalid +syn keyword sqlOption Subsume_row_locks +syn keyword sqlOption Suppress_tds_debugging +syn keyword sqlOption Synchronize_mirror_on_commit +syn keyword sqlOption Tds_empty_string_is_null +syn keyword sqlOption Temp_space_limit_check +syn keyword sqlOption Time_format +syn keyword sqlOption Time_zone_adjustment +syn keyword sqlOption Timestamp_format +syn keyword sqlOption Timestamp_with_time_zone_format +syn keyword sqlOption Truncate_timestamp_values +syn keyword sqlOption Tsql_outer_joins +syn keyword sqlOption Tsql_variables +syn keyword sqlOption Updatable_statement_isolation +syn keyword sqlOption Update_statistics +syn keyword sqlOption Upgrade_database_capability +syn keyword sqlOption User_estimates +syn keyword sqlOption Uuid_has_hyphens +syn keyword sqlOption Verify_password_function +syn keyword sqlOption Wait_for_commit +syn keyword sqlOption Webservice_namespace_host +syn keyword sqlOption Webservice_sessionid_name + +" Strings and characters: +syn region sqlString start=+"+ end=+"+ contains=@Spell +syn region sqlString start=+'+ end=+'+ contains=@Spell + +" Numbers: +syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" + +" Comments: +syn region sqlDashComment start=/--/ end=/$/ contains=@Spell +syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell +syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell +syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell +syn sync ccomment sqlComment +syn sync ccomment sqlDashComment +syn sync ccomment sqlSlashComment + +hi def link sqlDashComment Comment +hi def link sqlSlashComment Comment +hi def link sqlMultiComment Comment +hi def link sqlNumber Number +hi def link sqlOperator Operator +hi def link sqlSpecial Special +hi def link sqlKeyword Keyword +hi def link sqlStatement Statement +hi def link sqlString String +hi def link sqlType Type +hi def link sqlFunction Function +hi def link sqlOption PreProc + +let b:current_syntax = "sqlanywhere" + +" vim:sw=4: diff --git a/runtime/syntax/sqlforms.vim b/runtime/syntax/sqlforms.vim new file mode 100644 index 0000000..6077dd1 --- /dev/null +++ b/runtime/syntax/sqlforms.vim @@ -0,0 +1,152 @@ +" Vim syntax file +" Language: SQL*Forms (Oracle 7), based on sql.vim (vim5.0) +" Maintainer: Austin Ziegler (austin@halostatue.ca) +" Last Change: 2003 May 11 +" Prev Change: 19980710 +" URL: http://www.halostatue.ca/vim/syntax/proc.vim +" +" TODO Find a new maintainer who knows SQL*Forms. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case ignore + +setlocal iskeyword=a-z,A-Z,48-57,_,.,-,> + + + " The SQL reserved words, defined as keywords. +syntax match sqlTriggers /on-.*$/ +syntax match sqlTriggers /key-.*$/ +syntax match sqlTriggers /post-.*$/ +syntax match sqlTriggers /pre-.*$/ +syntax match sqlTriggers /user-.*$/ + +syntax keyword sqlSpecial null false true + +syntax keyword sqlProcedure abort_query anchor_view bell block_menu break call +syntax keyword sqlProcedure call_input call_query clear_block clear_eol +syntax keyword sqlProcedure clear_field clear_form clear_record commit_form +syntax keyword sqlProcedure copy count_query create_record default_value +syntax keyword sqlProcedure delete_record display_error display_field down +syntax keyword sqlProcedure duplicate_field duplicate_record edit_field +syntax keyword sqlProcedure enter enter_query erase execute_query +syntax keyword sqlProcedure execute_trigger exit_form first_Record go_block +syntax keyword sqlProcedure go_field go_record help hide_menu hide_page host +syntax keyword sqlProcedure last_record list_values lock_record message +syntax keyword sqlProcedure move_view new_form next_block next_field next_key +syntax keyword sqlProcedure next_record next_set pause post previous_block +syntax keyword sqlProcedure previous_field previous_record print redisplay +syntax keyword sqlProcedure replace_menu resize_view scroll_down scroll_up +syntax keyword sqlProcedure set_field show_keys show_menu show_page +syntax keyword sqlProcedure synchronize up user_exit + +syntax keyword sqlFunction block_characteristic error_code error_text +syntax keyword sqlFunction error_type field_characteristic form_failure +syntax keyword sqlFunction form_fatal form_success name_in + +syntax keyword sqlParameters hide no_hide replace no_replace ask_commit +syntax keyword sqlParameters do_commit no_commit no_validate all_records +syntax keyword sqlParameters for_update no_restrict restrict no_screen +syntax keyword sqlParameters bar full_screen pull_down auto_help auto_skip +syntax keyword sqlParameters fixed_length enterable required echo queryable +syntax keyword sqlParameters updateable update_null upper_case attr_on +syntax keyword sqlParameters attr_off base_table first_field last_field +syntax keyword sqlParameters datatype displayed display_length field_length +syntax keyword sqlParameters list page primary_key query_length x_pos y_pos + +syntax match sqlSystem /system\.block_status/ +syntax match sqlSystem /system\.current_block/ +syntax match sqlSystem /system\.current_field/ +syntax match sqlSystem /system\.current_form/ +syntax match sqlSystem /system\.current_value/ +syntax match sqlSystem /system\.cursor_block/ +syntax match sqlSystem /system\.cursor_field/ +syntax match sqlSystem /system\.cursor_record/ +syntax match sqlSystem /system\.cursor_value/ +syntax match sqlSystem /system\.form_status/ +syntax match sqlSystem /system\.last_query/ +syntax match sqlSystem /system\.last_record/ +syntax match sqlSystem /system\.message_level/ +syntax match sqlSystem /system\.record_status/ +syntax match sqlSystem /system\.trigger_block/ +syntax match sqlSystem /system\.trigger_field/ +syntax match sqlSystem /system\.trigger_record/ +syntax match sqlSystem /\$\$date\$\$/ +syntax match sqlSystem /\$\$time\$\$/ + +syntax keyword sqlKeyword accept access add as asc by check cluster column +syntax keyword sqlKeyword compress connect current decimal default +syntax keyword sqlKeyword desc exclusive file for from group +syntax keyword sqlKeyword having identified immediate increment index +syntax keyword sqlKeyword initial into is level maxextents mode modify +syntax keyword sqlKeyword nocompress nowait of offline on online start +syntax keyword sqlKeyword successful synonym table to trigger uid +syntax keyword sqlKeyword unique user validate values view whenever +syntax keyword sqlKeyword where with option order pctfree privileges +syntax keyword sqlKeyword public resource row rowlabel rownum rows +syntax keyword sqlKeyword session share size smallint sql\*forms_version +syntax keyword sqlKeyword terse define form name title procedure begin +syntax keyword sqlKeyword default_menu_application trigger block field +syntax keyword sqlKeyword enddefine declare exception raise when cursor +syntax keyword sqlKeyword definition base_table pragma +syntax keyword sqlKeyword column_name global trigger_type text description +syntax match sqlKeyword "<<<" +syntax match sqlKeyword ">>>" + +syntax keyword sqlOperator not and or out to_number to_date message erase +syntax keyword sqlOperator in any some all between exists substr nvl +syntax keyword sqlOperator exception_init +syntax keyword sqlOperator like escape trunc lpad rpad sum +syntax keyword sqlOperator union intersect minus to_char greatest +syntax keyword sqlOperator prior distinct decode least avg +syntax keyword sqlOperator sysdate true false field_characteristic +syntax keyword sqlOperator display_field call host + +syntax keyword sqlStatement alter analyze audit comment commit create +syntax keyword sqlStatement delete drop explain grant insert lock noaudit +syntax keyword sqlStatement rename revoke rollback savepoint select set +syntax keyword sqlStatement truncate update if elsif loop then +syntax keyword sqlStatement open fetch close else end + +syntax keyword sqlType char character date long raw mlslabel number rowid +syntax keyword sqlType varchar varchar2 float integer boolean global + +syntax keyword sqlCodes sqlcode no_data_found too_many_rows others +syntax keyword sqlCodes form_trigger_failure notfound found +syntax keyword sqlCodes validate no_commit + + " Comments: +syntax region sqlComment start="/\*" end="\*/" +syntax match sqlComment "--.*" + + " Strings and characters: +syntax region sqlString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syntax region sqlString start=+'+ skip=+\\\\\|\\"+ end=+'+ + + " Numbers: +syntax match sqlNumber "-\=\<[0-9]*\.\=[0-9_]\>" + +syntax sync ccomment sqlComment + + +hi def link sqlComment Comment +hi def link sqlKeyword Statement +hi def link sqlNumber Number +hi def link sqlOperator Statement +hi def link sqlProcedure Statement +hi def link sqlFunction Statement +hi def link sqlSystem Identifier +hi def link sqlSpecial Special +hi def link sqlStatement Statement +hi def link sqlString String +hi def link sqlType Type +hi def link sqlCodes Identifier +hi def link sqlTriggers PreProc + + +let b:current_syntax = "sqlforms" + +" vim: ts=8 sw=4 diff --git a/runtime/syntax/sqlhana.vim b/runtime/syntax/sqlhana.vim new file mode 100644 index 0000000..2e334bb --- /dev/null +++ b/runtime/syntax/sqlhana.vim @@ -0,0 +1,290 @@ +" Vim syntax file +" Language: SQL, SAP HANA In Memory Database +" Maintainer: David Fishburn +" Last Change: 2012 Oct 23 +" Version: SP4 b (Q2 2012) +" Homepage: http://www.vim.org/scripts/script.php?script_id=4275 + +" Description: Updated to SAP HANA SP4 +" +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" The SQL reserved words, defined as keywords. +" These were pulled from the following SQL reference: +" http://help.sap.com/hana/hana_sql_en.pdf +" An easy approach is to copy all text from the PDF +" into a Vim buffer. The keywords are in UPPER case, +" so you can run the following commands to be left with +" mainly the UPPER case words: +" 1. Delete all words that do not begin with a Capital +" %s/\(\<[^A-Z]\w*\>\)//g +" 2. Remove all words where the 2nd letter is not a Capital +" %s/\(\<[A-Z][^A-Z]\w*\>\)//g +" 3. Remove all non-word (or space) characters +" %s/[^0-9A-Za-z_ ]*//g +" 4. Remove some known words +" %s/\<\(SAP\|HANA\|OK\|AG\|IBM\|DB2\|AIX\|POWER\d\+\|UNIX\)\>//g +" 5. Remove blank lines and trailing spaces +" %s/\s\+$//g +" %s/^\s\+//g +" %s/^$\n//g +" 6. Convert spaces to newlines remove single character +" %s/[ ]\+/\r/g +" %g/^\w$/d +" 7. Sort and remove duplicates +" :sort +" :Uniq +" 8. Use the WhatsMissing plugin against the sqlhana.vim file. +" 9. Generated a file of all UPPER cased words which should not +" be in the syntax file. These items should be removed +" from the list in step 7. You can use WhatsNotMissing +" between step 7 and this new file to weed out the words +" we know are not syntax related. +" 10. Use the WhatsMissingRemoveMatches to remove the words +" from step 9. + +syn keyword sqlSpecial false null true + +" Supported Functions for Date/Time types +syn keyword sqlFunction ADD_DAYS ADD_MONTHS ADD_SECONDS ADD_YEARS COALESCE +syn keyword sqlFunction CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_UTCDATE +syn keyword sqlFunction CURRENT_UTCTIME CURRENT_UTCTIMESTAMP +syn keyword sqlFunction DAYNAME DAYOFMONTH DAYOFYEAR DAYS_BETWEEN EXTRACT +syn keyword sqlFunction GREATEST HOUR IFNULL ISOWEEK LAST_DAY LEAST LOCALTOUTC +syn keyword sqlFunction MINUTE MONTH MONTHNAME NEXT_DAY NOW QUARTER SECOND +syn keyword sqlFunction SECONDS_BETWEEN UTCTOLOCAL WEEK WEEKDAY YEAR + +syn keyword sqlFunction TO_CHAR TO_DATE TO_DATS TO_NCHAR TO_TIME TO_TIMESTAMP UTCTOLOCAL + +" Aggregate +syn keyword sqlFunction COUNT MIN MAX SUM AVG STDDEV VAR + +" Datatype conversion +syn keyword sqlFunction CAST TO_ALPHANUM TO_BIGINT TO_BINARY TO_BLOB TO_CHAR TO_CLOB +syn keyword sqlFunction TO_DATE TO_DATS TO_DECIMAL TO_DOUBLE TO_INT TO_INTEGER TO_NCHAR +syn keyword sqlFunction TO_NCLOB TO_NVARCHAR TO_REAL TO_SECONDDATE TO_SMALLDECIMAL +syn keyword sqlFunction TO_SMALLINT TO_TIME TO_TIMESTAMP TO_TINYINT TO_VARCHAR TO_VARBINARY + +" Number functions +syn keyword sqlFunction ABS ACOS ASIN ATAN ATAN2 BINTOHEX BITAND CEIL COS COSH COT +syn keyword sqlFunction EXP FLOOR GREATEST HEXTOBIN LEAST LN LOG MOD POWER ROUND +syn keyword sqlFunction SIGN SIN SINH SQRT TAN TANH UMINUS + +" String functions +syn keyword sqlFunction ASCII CHAR CONCAT LCASE LENGTH LOCATE LOWER LPAD LTRIM +syn keyword sqlFunction NCHAR REPLACE RPAD RTRIM SUBSTR_AFTER SUBSTR_BEFORE +syn keyword sqlFunction SUBSTRING TRIM UCASE UNICODE UPPER + +" Miscellaneous functions +syn keyword sqlFunction COALESCE CURRENT_CONNECTION CURRENT_SCHEMA CURRENT_USER +syn keyword sqlFunction GROUPING_ID IFNULL MAP NULLIF SESSION_CONTEXT SESSION_USER SYSUUIDSQL +syn keyword sqlFunction GET_NUM_SERVERS + + +" sp_ procedures +" syn keyword sqlFunction sp_addalias + + +" Reserved keywords +syn keyword sqlkeyword ALL AS AT BEFORE +syn keyword sqlkeyword BEGIN BOTH BY +syn keyword sqlkeyword CONDITION +syn keyword sqlkeyword CURRVAL CURSOR DECLARE +syn keyword sqlkeyword DISTINCT DO ELSE ELSEIF ELSIF +syn keyword sqlkeyword END EXCEPTION EXEC +syn keyword sqlkeyword FOR FROM GROUP +syn keyword sqlkeyword HAVING IN +syn keyword sqlkeyword INOUT INTO IS +syn keyword sqlkeyword LEADING +syn keyword sqlkeyword LOOP MINUS NATURAL NEXTVAL +syn keyword sqlkeyword OF ON ORDER OUT +syn keyword sqlkeyword PRIOR RETURN RETURNS REVERSE +syn keyword sqlkeyword ROWID SELECT +syn keyword sqlkeyword SQL START STOP SYSDATE +syn keyword sqlkeyword SYSTIME SYSTIMESTAMP SYSUUID +syn keyword sqlkeyword TRAILING USING UTCDATE +syn keyword sqlkeyword UTCTIME UTCTIMESTAMP VALUES +syn keyword sqlkeyword WHILE +syn keyword sqlkeyword ANY SOME EXISTS ESCAPE + +" IF keywords +syn keyword sqlkeyword IF + +" CASE keywords +syn keyword sqlKeyword WHEN THEN + +" Syntax rules common to TEXT and SHORTTEXT keywords +syn keyword sqlKeyword LANGUAGE DETECTION LINGUISTIC +syn keyword sqlkeyword MIME TYPE +syn keyword sqlkeyword EXACT WEIGHT FUZZY FUZZINESSTHRESHOLD SEARCH +syn keyword sqlkeyword PHRASE INDEX RATIO REBUILD +syn keyword sqlkeyword CONFIGURATION +syn keyword sqlkeyword SEARCH ONLY +syn keyword sqlkeyword FAST PREPROCESS +syn keyword sqlkeyword SYNC SYNCHRONOUS ASYNC ASYNCHRONOUS FLUSH QUEUE +syn keyword sqlkeyword EVERY AFTER MINUTES DOCUMENTS SUSPEND + +" Statement keywords (i.e. after ALTER or CREATE) +syn keyword sqlkeyword AUDIT POLICY +syn keyword sqlkeyword FULLTEXT +syn keyword sqlkeyword SEQUENCE RESTART +syn keyword sqlkeyword TABLE +syn keyword sqlkeyword PROCEDURE STATISTICS +syn keyword sqlkeyword SCHEMA +syn keyword sqlkeyword SYNONYM +syn keyword sqlkeyword VIEW +syn keyword sqlkeyword COLUMN +syn keyword sqlkeyword SYSTEM LICENSE +syn keyword sqlkeyword SESSION +syn keyword sqlkeyword CANCEL WORK +syn keyword sqlkeyword PLAN CACHE +syn keyword sqlkeyword LOGGING NOLOGGING RETENTION +syn keyword sqlkeyword RECONFIGURE SERVICE +syn keyword sqlkeyword RESET MONITORING +syn keyword sqlkeyword SAVE DURATION PERFTRACE FUNCTION_PROFILER +syn keyword sqlkeyword SAVEPOINT +syn keyword sqlkeyword USER +syn keyword sqlkeyword ROLE +syn keyword sqlkeyword ASC DESC +syn keyword sqlkeyword OWNED +syn keyword sqlkeyword DEPENDENCIES SCRAMBLE + +" Create sequence +syn keyword sqlkeyword INCREMENT MAXVALUE MINVALUE CYCLE + +" Create table +syn keyword sqlkeyword HISTORY GLOBAL LOCAL TEMPORARY + +" Create trigger +syn keyword sqlkeyword TRIGGER REFERENCING EACH DEFAULT +syn keyword sqlkeyword SIGNAL RESIGNAL MESSAGE_TEXT OLD NEW +syn keyword sqlkeyword EXIT HANDLER SQL_ERROR_CODE +syn keyword sqlkeyword TARGET CONDITION SIGNAL + +" Alter table +syn keyword sqlkeyword ADD DROP MODIFY GENERATED ALWAYS +syn keyword sqlkeyword UNIQUE BTREE CPBTREE PRIMARY KEY +syn keyword sqlkeyword CONSTRAINT PRELOAD NONE +syn keyword sqlkeyword ROW THREADS BATCH +syn keyword sqlkeyword MOVE PARTITION TO LOCATION PHYSICAL OTHERS +syn keyword sqlkeyword ROUNDROBIN PARTITIONS HASH RANGE VALUE +syn keyword sqlkeyword PERSISTENT DELTA AUTO AUTOMERGE + +" Create audit policy +syn keyword sqlkeyword AUDITING SUCCESSFUL UNSUCCESSFUL +syn keyword sqlkeyword PRIVILEGE STRUCTURED CHANGE LEVEL +syn keyword sqlkeyword EMERGENCY ALERT CRITICAL WARNING INFO + +" Privileges +syn keyword sqlkeyword DEBUG EXECUTE + +" Schema +syn keyword sqlkeyword CASCADE RESTRICT PARAMETERS SCAN + +" Traces +syn keyword sqlkeyword CLIENT CRASHDUMP EMERGENCYDUMP +syn keyword sqlkeyword INDEXSERVER NAMESERVER DAEMON +syn keyword sqlkeyword CLEAR REMOVE TRACES + +" Reclaim +syn keyword sqlkeyword RECLAIM DATA VOLUME VERSION SPACE DEFRAGMENT SPARSIFY + +" Join +syn keyword sqlkeyword INNER OUTER LEFT RIGHT FULL CROSS JOIN +syn keyword sqlkeyword GROUPING SETS ROLLUP CUBE +syn keyword sqlkeyword BEST LIMIT OFFSET +syn keyword sqlkeyword WITH SUBTOTAL BALANCE TOTAL +syn keyword sqlkeyword TEXT_FILTER FILL UP SORT MATCHES TOP +syn keyword sqlkeyword RESULT OVERVIEW PREFIX MULTIPLE RESULTSETS + +" Lock +syn keyword sqlkeyword EXCLUSIVE MODE NOWAIT + +" Transaction +syn keyword sqlkeyword TRANSACTION ISOLATION READ COMMITTED +syn keyword sqlkeyword REPEATABLE SERIALIZABLE WRITE + +" Saml +syn keyword sqlkeyword SAML ASSERTION PROVIDER SUBJECT ISSUER + +" User +syn keyword sqlkeyword PASSWORD IDENTIFIED EXTERNALLY ATTEMPTS ATTEMPTS +syn keyword sqlkeyword ENABLE DISABLE OFF LIFETIME FORCE DEACTIVATE +syn keyword sqlkeyword ACTIVATE IDENTITY KERBEROS + +" Grant +syn keyword sqlkeyword ADMIN BACKUP CATALOG SCENARIO INIFILE MONITOR +syn keyword sqlkeyword OPTIMIZER OPTION +syn keyword sqlkeyword RESOURCE STRUCTUREDPRIVILEGE TRACE + +" Import +syn keyword sqlkeyword CSV FILE CONTROL NO CHECK SKIP FIRST LIST +syn keyword sqlkeyword RECORD DELIMITED FIELD OPTIONALLY ENCLOSED FORMAT + +" Roles +syn keyword sqlkeyword PUBLIC CONTENT_ADMIN MODELING MONITORING + +" Miscellaneous +syn keyword sqlkeyword APPLICATION BINARY IMMEDIATE COREFILE SECURITY DEFINER +syn keyword sqlkeyword DUMMY INVOKER MATERIALIZED MESSEGE_TEXT PARAMETER PARAMETERS +syn keyword sqlkeyword PART +syn keyword sqlkeyword CONSTANT SQLEXCEPTION SQLWARNING + +syn keyword sqlOperator WHERE BETWEEN LIKE NULL CONTAINS +syn keyword sqlOperator AND OR NOT CASE +syn keyword sqlOperator UNION INTERSECT EXCEPT + +syn keyword sqlStatement ALTER CALL CALLS CREATE DROP RENAME TRUNCATE +syn keyword sqlStatement DELETE INSERT UPDATE EXPLAIN +syn keyword sqlStatement MERGE REPLACE UPSERT SELECT +syn keyword sqlStatement SET UNSET LOAD UNLOAD +syn keyword sqlStatement CONNECT DISCONNECT COMMIT LOCK ROLLBACK +syn keyword sqlStatement GRANT REVOKE +syn keyword sqlStatement EXPORT IMPORT + + +syn keyword sqlType DATE TIME SECONDDATE TIMESTAMP TINYINT SMALLINT +syn keyword sqlType INT INTEGER BIGINT SMALLDECIMAL DECIMAL +syn keyword sqlType REAL DOUBLE FLOAT +syn keyword sqlType VARCHAR NVARCHAR ALPHANUM SHORTTEXT VARBINARY +syn keyword sqlType BLOB CLOB NCLOB TEXT DAYDATE + +syn keyword sqlOption Webservice_namespace_host + +" Strings and characters: +syn region sqlString start=+"+ end=+"+ contains=@Spell +syn region sqlString start=+'+ end=+'+ contains=@Spell + +" Numbers: +syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" + +" Comments: +syn region sqlDashComment start=/--/ end=/$/ contains=@Spell +syn region sqlSlashComment start=/\/\// end=/$/ contains=@Spell +syn region sqlMultiComment start="/\*" end="\*/" contains=sqlMultiComment,@Spell +syn cluster sqlComment contains=sqlDashComment,sqlSlashComment,sqlMultiComment,@Spell +syn sync ccomment sqlComment +syn sync ccomment sqlDashComment +syn sync ccomment sqlSlashComment + +hi def link sqlDashComment Comment +hi def link sqlSlashComment Comment +hi def link sqlMultiComment Comment +hi def link sqlNumber Number +hi def link sqlOperator Operator +hi def link sqlSpecial Special +hi def link sqlKeyword Keyword +hi def link sqlStatement Statement +hi def link sqlString String +hi def link sqlType Type +hi def link sqlFunction Function +hi def link sqlOption PreProc + +let b:current_syntax = "sqlhana" + +" vim:sw=4: diff --git a/runtime/syntax/sqlinformix.vim b/runtime/syntax/sqlinformix.vim new file mode 100644 index 0000000..71418c5 --- /dev/null +++ b/runtime/syntax/sqlinformix.vim @@ -0,0 +1,183 @@ +" Vim syntax file +" Informix Structured Query Language (SQL) and Stored Procedure Language (SPL) +" Language: SQL, SPL (Informix Dynamic Server 2000 v9.2) +" Maintainer: Dean Hill +" Last Change: 2004 Aug 30 + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case ignore + + + +" === Comment syntax group === +syn region sqlComment start="{" end="}" contains=sqlTodo +syn match sqlComment "--.*$" contains=sqlTodo +syn sync ccomment sqlComment + + + +" === Constant syntax group === +" = Boolean subgroup = +syn keyword sqlBoolean true false +syn keyword sqlBoolean null +syn keyword sqlBoolean public user +syn keyword sqlBoolean current today +syn keyword sqlBoolean year month day hour minute second fraction + +" = String subgroup = +syn region sqlString start=+"+ end=+"+ +syn region sqlString start=+'+ end=+'+ + +" = Numbers subgroup = +syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" + + + +" === Statement syntax group === +" SQL +syn keyword sqlStatement allocate alter +syn keyword sqlStatement begin +syn keyword sqlStatement close commit connect create +syn keyword sqlStatement database deallocate declare delete describe disconnect drop +syn keyword sqlStatement execute fetch flush free get grant info insert +syn keyword sqlStatement load lock open output +syn keyword sqlStatement prepare put +syn keyword sqlStatement rename revoke rollback select set start stop +syn keyword sqlStatement truncate unload unlock update +syn keyword sqlStatement whenever +" SPL +syn keyword sqlStatement call continue define +syn keyword sqlStatement exit +syn keyword sqlStatement let +syn keyword sqlStatement return system trace + +" = Conditional subgroup = +" SPL +syn keyword sqlConditional elif else if then +syn keyword sqlConditional case +" Highlight "end if" with one or more separating spaces +syn match sqlConditional "end \+if" + +" = Repeat subgroup = +" SQL/SPL +" Handle SQL triggers' "for each row" clause and SPL "for" loop +syn match sqlRepeat "for\( \+each \+row\)\=" +" SPL +syn keyword sqlRepeat foreach while +" Highlight "end for", etc. with one or more separating spaces +syn match sqlRepeat "end \+for" +syn match sqlRepeat "end \+foreach" +syn match sqlRepeat "end \+while" + +" = Exception subgroup = +" SPL +syn match sqlException "on \+exception" +syn match sqlException "end \+exception" +syn match sqlException "end \+exception \+with \+resume" +syn match sqlException "raise \+exception" + +" = Keyword subgroup = +" SQL +syn keyword sqlKeyword aggregate add as authorization autofree by +syn keyword sqlKeyword cache cascade check cluster collation +syn keyword sqlKeyword column connection constraint cross +syn keyword sqlKeyword dataskip debug default deferred_prepare +syn keyword sqlKeyword descriptor diagnostics +syn keyword sqlKeyword each escape explain external +syn keyword sqlKeyword file foreign fragment from function +syn keyword sqlKeyword group having +syn keyword sqlKeyword immediate index inner into isolation +syn keyword sqlKeyword join key +syn keyword sqlKeyword left level log +syn keyword sqlKeyword mode modify mounting new no +syn keyword sqlKeyword object of old optical option +syn keyword sqlKeyword optimization order outer +syn keyword sqlKeyword pdqpriority pload primary procedure +syn keyword sqlKeyword references referencing release reserve +syn keyword sqlKeyword residency right role routine row +syn keyword sqlKeyword schedule schema scratch session set +syn keyword sqlKeyword statement statistics synonym +syn keyword sqlKeyword table temp temporary timeout to transaction trigger +syn keyword sqlKeyword using values view violations +syn keyword sqlKeyword where with work +" Highlight "on" (if it's not followed by some words we've already handled) +syn match sqlKeyword "on \+\(exception\)\@!" +" SPL +" Highlight "end" (if it's not followed by some words we've already handled) +syn match sqlKeyword "end \+\(if\|for\|foreach\|while\|exception\)\@!" +syn keyword sqlKeyword resume returning + +" = Operator subgroup = +" SQL +syn keyword sqlOperator not and or +syn keyword sqlOperator in is any some all between exists +syn keyword sqlOperator like matches +syn keyword sqlOperator union intersect +syn keyword sqlOperator distinct unique + + + +" === Identifier syntax group === +" = Function subgroup = +" SQL +syn keyword sqlFunction abs acos asin atan atan2 avg +syn keyword sqlFunction cardinality cast char_length character_length cos count +syn keyword sqlFunction exp filetoblob filetoclob hex +syn keyword sqlFunction initcap length logn log10 lower lpad +syn keyword sqlFunction min max mod octet_length pow range replace root round rpad +syn keyword sqlFunction sin sqrt stdev substr substring sum +syn keyword sqlFunction to_char tan to_date trim trunc upper variance + + + +" === Type syntax group === +" SQL +syn keyword sqlType blob boolean byte char character clob +syn keyword sqlType date datetime dec decimal double +syn keyword sqlType float int int8 integer interval list lvarchar +syn keyword sqlType money multiset nchar numeric nvarchar +syn keyword sqlType real serial serial8 smallfloat smallint +syn keyword sqlType text varchar varying + + + +" === Todo syntax group === +syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE + + + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + + +" === Comment syntax group === +hi def link sqlComment Comment + +" === Constant syntax group === +hi def link sqlNumber Number +hi def link sqlBoolean Boolean +hi def link sqlString String + +" === Statement syntax group === +hi def link sqlStatement Statement +hi def link sqlConditional Conditional +hi def link sqlRepeat Repeat +hi def link sqlKeyword Keyword +hi def link sqlOperator Operator +hi def link sqlException Exception + +" === Identifier syntax group === +hi def link sqlFunction Function + +" === Type syntax group === +hi def link sqlType Type + +" === Todo syntax group === +hi def link sqlTodo Todo + + +let b:current_syntax = "sqlinformix" diff --git a/runtime/syntax/sqlj.vim b/runtime/syntax/sqlj.vim new file mode 100644 index 0000000..fd0f8f3 --- /dev/null +++ b/runtime/syntax/sqlj.vim @@ -0,0 +1,91 @@ +" Vim syntax file +" Language: sqlj +" Maintainer: Andreas Fischbach +" This file is based on sql.vim && java.vim (thanx) +" with a handful of additional sql words and still +" a subset of whatever standard +" Last change: 31th Dec 2001 + +" au BufNewFile,BufRead *.sqlj so $VIM/syntax/sqlj.vim + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read the Java syntax to start with +source :p:h/java.vim + +" SQLJ extensions +" The SQL reserved words, defined as keywords. + +syn case ignore +syn keyword sqljSpecial null + +syn keyword sqljKeyword access add as asc by check cluster column +syn keyword sqljKeyword compress connect current decimal default +syn keyword sqljKeyword desc else exclusive file for from group +syn keyword sqljKeyword having identified immediate increment index +syn keyword sqljKeyword initial into is level maxextents mode modify +syn keyword sqljKeyword nocompress nowait of offline on online start +syn keyword sqljKeyword successful synonym table then to trigger uid +syn keyword sqljKeyword unique user validate values view whenever +syn keyword sqljKeyword where with option order pctfree privileges +syn keyword sqljKeyword public resource row rowlabel rownum rows +syn keyword sqljKeyword session share size smallint + +syn keyword sqljKeyword fetch database context iterator field join +syn keyword sqljKeyword foreign outer inner isolation left right +syn keyword sqljKeyword match primary key + +syn keyword sqljOperator not and or +syn keyword sqljOperator in any some all between exists +syn keyword sqljOperator like escape +syn keyword sqljOperator union intersect minus +syn keyword sqljOperator prior distinct +syn keyword sqljOperator sysdate + +syn keyword sqljOperator max min avg sum count hex + +syn keyword sqljStatement alter analyze audit comment commit create +syn keyword sqljStatement delete drop explain grant insert lock noaudit +syn keyword sqljStatement rename revoke rollback savepoint select set +syn keyword sqljStatement truncate update begin work + +syn keyword sqljType char character date long raw mlslabel number +syn keyword sqljType rowid varchar varchar2 float integer + +syn keyword sqljType byte text serial + + +" Strings and characters: +syn region sqljString start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn region sqljString start=+'+ skip=+\\\\\|\\"+ end=+'+ + +" Numbers: +syn match sqljNumber "-\=\<\d*\.\=[0-9_]\>" + +" PreProc +syn match sqljPre "#sql" + +" Comments: +syn region sqljComment start="/\*" end="\*/" +syn match sqlComment "--.*" + +syn sync ccomment sqljComment + + +" The default methods for highlighting. Can be overridden later. +hi def link sqljComment Comment +hi def link sqljKeyword sqljSpecial +hi def link sqljNumber Number +hi def link sqljOperator sqljStatement +hi def link sqljSpecial Special +hi def link sqljStatement Statement +hi def link sqljString String +hi def link sqljType Type +hi def link sqljPre PreProc + + +let b:current_syntax = "sqlj" + diff --git a/runtime/syntax/sqloracle.vim b/runtime/syntax/sqloracle.vim new file mode 100644 index 0000000..0907b48 --- /dev/null +++ b/runtime/syntax/sqloracle.vim @@ -0,0 +1,150 @@ +" Vim syntax file +" Language: SQL, PL/SQL (Oracle 11g) +" Maintainer: Christian Brabandt +" Repository: https://github.com/chrisbra/vim-sqloracle-syntax +" License: Vim +" Previous Maintainer: Paul Moore +" Last Change: 2018 June 24 + +" Changes: +" 02.04.2016: Support for when keyword +" 03.04.2016: Support for join related keywords +" 22.07.2016: Support Oracle Q-Quote-Syntax +" 25.07.2016: Support for Oracle N'-Quote syntax +" 22.06.2018: Remove skip part for sqlString (do not escape strings) +" (https://web.archive.org/web/20150922065035/https://mariadb.com/kb/en/sql-99/character-string-literals/) + +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" The SQL reserved words, defined as keywords. + +syn keyword sqlSpecial false null true + +syn keyword sqlKeyword access add as asc begin by case check cluster column +syn keyword sqlKeyword cache compress connect current cursor decimal default desc +syn keyword sqlKeyword else elsif end exception exclusive file for from +syn keyword sqlKeyword function group having identified if immediate increment +syn keyword sqlKeyword index initial initrans into is level link logging loop +syn keyword sqlKeyword maxextents maxtrans mode modify monitoring +syn keyword sqlKeyword nocache nocompress nologging noparallel nowait of offline on online start +syn keyword sqlKeyword parallel successful synonym table tablespace then to trigger uid +syn keyword sqlKeyword unique user validate values view when whenever +syn keyword sqlKeyword where with option order pctfree pctused privileges procedure +syn keyword sqlKeyword public resource return row rowlabel rownum rows +syn keyword sqlKeyword session share size smallint type using +syn keyword sqlKeyword join cross inner outer left right + +syn keyword sqlOperator not and or +syn keyword sqlOperator in any some all between exists +syn keyword sqlOperator like escape +syn keyword sqlOperator union intersect minus +syn keyword sqlOperator prior distinct +syn keyword sqlOperator sysdate out + +syn keyword sqlStatement analyze audit comment commit +syn keyword sqlStatement delete drop execute explain grant lock noaudit +syn keyword sqlStatement rename revoke rollback savepoint set +syn keyword sqlStatement truncate +" next ones are contained, so folding works. +syn keyword sqlStatement create update alter select insert contained + +syn keyword sqlType bfile blob boolean char character clob date datetime +syn keyword sqlType dec decimal float int integer long mlslabel nchar +syn keyword sqlType nclob number numeric nvarchar2 precision raw rowid +syn keyword sqlType smallint real timestamp urowid varchar varchar2 varray + +" Strings: +syn region sqlString matchgroup=Quote start=+n\?"+ end=+"+ +syn region sqlString matchgroup=Quote start=+n\?'+ end=+'+ +syn region sqlString matchgroup=Quote start=+n\?q'\z([^[(<{]\)+ end=+\z1'+ +syn region sqlString matchgroup=Quote start=+n\?q'<+ end=+>'+ +syn region sqlString matchgroup=Quote start=+n\?q'{+ end=+}'+ +syn region sqlString matchgroup=Quote start=+n\?q'(+ end=+)'+ +syn region sqlString matchgroup=Quote start=+n\?q'\[+ end=+]'+ + +" Numbers: +syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>" + +" Comments: +syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell fold +syn match sqlComment "--.*$" contains=sqlTodo,@Spell +syn match sqlComment "^rem.*$" contains=sqlTodo,@Spell + +" Setup Folding: +" this is a hack, to get certain statements folded. +" the keywords create/update/alter/select/insert need to +" have contained option. +syn region sqlFold start='^\s*\zs\c\(Create\|Update\|Alter\|Select\|Insert\)' end=';$\|^$' transparent fold contains=ALL + +syn sync ccomment sqlComment + +" Functions: +" (Oracle 11g) +" Aggregate Functions +syn keyword sqlFunction avg collect corr corr_s corr_k count covar_pop covar_samp cume_dist dense_rank first +syn keyword sqlFunction group_id grouping grouping_id last max median min percentile_cont percentile_disc percent_rank rank +syn keyword sqlFunction regr_slope regr_intercept regr_count regr_r2 regr_avgx regr_avgy regr_sxx regr_syy regr_sxy +syn keyword sqlFunction stats_binomial_test stats_crosstab stats_f_test stats_ks_test stats_mode stats_mw_test +syn keyword sqlFunction stats_one_way_anova stats_t_test_one stats_t_test_paired stats_t_test_indep stats_t_test_indepu +syn keyword sqlFunction stats_wsr_test stddev stddev_pop stddev_samp sum +syn keyword sqlFunction sys_xmlagg var_pop var_samp variance xmlagg +" Char Functions +syn keyword sqlFunction ascii chr concat initcap instr length lower lpad ltrim +syn keyword sqlFunction nls_initcap nls_lower nlssort nls_upper regexp_instr regexp_replace +syn keyword sqlFunction regexp_substr replace rpad rtrim soundex substr translate treat trim upper +" Comparison Functions +syn keyword sqlFunction greatest least +" Conversion Functions +syn keyword sqlFunction asciistr bin_to_num cast chartorowid compose convert +syn keyword sqlFunction decompose hextoraw numtodsinterval numtoyminterval rawtohex rawtonhex rowidtochar +syn keyword sqlFunction rowidtonchar scn_to_timestamp timestamp_to_scn to_binary_double to_binary_float +syn keyword sqlFunction to_char to_char to_char to_clob to_date to_dsinterval to_lob to_multi_byte +syn keyword sqlFunction to_nchar to_nchar to_nchar to_nclob to_number to_dsinterval to_single_byte +syn keyword sqlFunction to_timestamp to_timestamp_tz to_yminterval to_yminterval translate unistr +" DataMining Functions +syn keyword sqlFunction cluster_id cluster_probability cluster_set feature_id feature_set +syn keyword sqlFunction feature_value prediction prediction_bounds prediction_cost +syn keyword sqlFunction prediction_details prediction_probability prediction_set +" Datetime Functions +syn keyword sqlFunction add_months current_date current_timestamp dbtimezone extract +syn keyword sqlFunction from_tz last_day localtimestamp months_between new_time +syn keyword sqlFunction next_day numtodsinterval numtoyminterval round sessiontimezone +syn keyword sqlFunction sys_extract_utc sysdate systimestamp to_char to_timestamp +syn keyword sqlFunction to_timestamp_tz to_dsinterval to_yminterval trunc tz_offset +" Numeric Functions +syn keyword sqlFunction abs acos asin atan atan2 bitand ceil cos cosh exp +syn keyword sqlFunction floor ln log mod nanvl power remainder round sign +syn keyword sqlFunction sin sinh sqrt tan tanh trunc width_bucket +" NLS Functions +syn keyword sqlFunction ls_charset_decl_len nls_charset_id nls_charset_name +" Various Functions +syn keyword sqlFunction bfilename cardin coalesce collect decode dump empty_blob empty_clob +syn keyword sqlFunction lnnvl nullif nvl nvl2 ora_hash powermultiset powermultiset_by_cardinality +syn keyword sqlFunction sys_connect_by_path sys_context sys_guid sys_typeid uid user userenv vsizeality +" XML Functions +syn keyword sqlFunction appendchildxml deletexml depth extract existsnode extractvalue insertchildxml +syn keyword sqlFunction insertxmlbefore path sys_dburigen sys_xmlagg sys_xmlgen updatexml xmlagg xmlcast +syn keyword sqlFunction xmlcdata xmlcolattval xmlcomment xmlconcat xmldiff xmlelement xmlexists xmlforest +syn keyword sqlFunction xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xmlserialize xmltable xmltransform +" Todo: +syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained + +" Define the default highlighting. +hi def link Quote Special +hi def link sqlComment Comment +hi def link sqlFunction Function +hi def link sqlKeyword sqlSpecial +hi def link sqlNumber Number +hi def link sqlOperator sqlStatement +hi def link sqlSpecial Special +hi def link sqlStatement Statement +hi def link sqlString String +hi def link sqlType Type +hi def link sqlTodo Todo + +let b:current_syntax = "sql" +" vim: ts=8 diff --git a/runtime/syntax/sqr.vim b/runtime/syntax/sqr.vim new file mode 100644 index 0000000..40b4835 --- /dev/null +++ b/runtime/syntax/sqr.vim @@ -0,0 +1,262 @@ +" Vim syntax file +" Language: Structured Query Report Writer (SQR) +" Maintainer: Nathan Stratton Treadway (nathanst at ontko dot com) +" URL: http://www.ontko.com/sqr/#editor_config_files +" +" Modification History: +" 2002-Apr-12: Updated for SQR v6.x +" 2002-Jul-30: Added { and } to iskeyword definition +" 2003-Oct-15: Allow "." in variable names +" highlight entire open '... literal when it contains +" "''" inside it (e.g. "'I can''t say" is treated +" as one open string, not one terminated and one open) +" {} variables can occur inside of '...' literals +" +" Thanks to the previous maintainer of this file, Jeff Lanzarotta: +" http://lanzarotta.tripod.com/vim.html +" jefflanzarotta at yahoo dot com + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=@,48-57,_,-,#,$,{,} + +syn case ignore + +" BEGIN GENERATED SECTION ============================================ + +" Generated by generate_vim_syntax.sqr at 2002/04/11 13:04 +" (based on the UltraEdit syntax file for SQR 6.1.4 +" found at http://www.ontko.com/sqr/#editor_config_files ) + +syn keyword sqrSection begin-footing begin-heading begin-procedure +syn keyword sqrSection begin-program begin-report begin-setup +syn keyword sqrSection end-footing end-heading end-procedure +syn keyword sqrSection end-program end-report end-setup + +syn keyword sqrParagraph alter-color-map alter-connection +syn keyword sqrParagraph alter-locale alter-printer alter-report +syn keyword sqrParagraph begin-document begin-execute begin-select +syn keyword sqrParagraph begin-sql declare-chart declare-image +syn keyword sqrParagraph declare-color-map declare-connection +syn keyword sqrParagraph declare-layout declare-printer +syn keyword sqrParagraph declare-report declare-procedure +syn keyword sqrParagraph declare-toc declare-variable end-declare +syn keyword sqrParagraph end-document end-select exit-select end-sql +syn keyword sqrParagraph load-lookup + +syn keyword sqrReserved #current-column #current-date #current-line +syn keyword sqrReserved #end-file #page-count #return-status +syn keyword sqrReserved #sql-count #sql-status #sqr-max-columns +syn keyword sqrReserved #sqr-max-lines #sqr-pid #sqr-toc-level +syn keyword sqrReserved #sqr-toc-page $sqr-database {sqr-database} +syn keyword sqrReserved $sqr-dbcs {sqr-dbcs} $sqr-encoding +syn keyword sqrReserved {sqr-encoding} $sqr-encoding-console +syn keyword sqrReserved {sqr-encoding-console} +syn keyword sqrReserved $sqr-encoding-database +syn keyword sqrReserved {sqr-encoding-database} +syn keyword sqrReserved $sqr-encoding-file-input +syn keyword sqrReserved {sqr-encoding-file-input} +syn keyword sqrReserved $sqr-encoding-file-output +syn keyword sqrReserved {sqr-encoding-file-output} +syn keyword sqrReserved $sqr-encoding-report-input +syn keyword sqrReserved {sqr-encoding-report-input} +syn keyword sqrReserved $sqr-encoding-report-output +syn keyword sqrReserved {sqr-encoding-report-output} +syn keyword sqrReserved $sqr-encoding-source {sqr-encoding-source} +syn keyword sqrReserved $sql-error $sqr-hostname {sqr-hostname} +syn keyword sqrReserved $sqr-locale $sqr-platform {sqr-platform} +syn keyword sqrReserved $sqr-program $sqr-report $sqr-toc-text +syn keyword sqrReserved $sqr-ver $username + +syn keyword sqrPreProc #define #else #end-if #endif #if #ifdef +syn keyword sqrPreProc #ifndef #include + +syn keyword sqrCommand add array-add array-divide array-multiply +syn keyword sqrCommand array-subtract ask break call clear-array +syn keyword sqrCommand close columns commit concat connect +syn keyword sqrCommand create-array create-color-palette date-time +syn keyword sqrCommand display divide do dollar-symbol else encode +syn keyword sqrCommand end-evaluate end-if end-while evaluate +syn keyword sqrCommand execute extract find get get-color goto +syn keyword sqrCommand graphic if input last-page let lookup +syn keyword sqrCommand lowercase mbtosbs money-symbol move +syn keyword sqrCommand multiply new-page new-report next-column +syn keyword sqrCommand next-listing no-formfeed open page-number +syn keyword sqrCommand page-size position print print-bar-code +syn keyword sqrCommand print-chart print-direct print-image +syn keyword sqrCommand printer-deinit printer-init put read +syn keyword sqrCommand rollback security set-color set-delay-print +syn keyword sqrCommand set-generations set-levels set-members +syn keyword sqrCommand sbtombs show stop string subtract toc-entry +syn keyword sqrCommand unstring uppercase use use-column +syn keyword sqrCommand use-printer-type use-procedure use-report +syn keyword sqrCommand while write + +syn keyword sqrParam 3d-effects after after-bold after-page +syn keyword sqrParam after-report after-toc and as at-end before +syn keyword sqrParam background batch-mode beep before-bold +syn keyword sqrParam before-page before-report before-toc blink +syn keyword sqrParam bold border bottom-margin box break by +syn keyword sqrParam caption center char char-size char-width +syn keyword sqrParam chars-inch chart-size checksum cl +syn keyword sqrParam clear-line clear-screen color color-palette +syn keyword sqrParam cs color_ data-array +syn keyword sqrParam data-array-column-count +syn keyword sqrParam data-array-column-labels +syn keyword sqrParam data-array-row-count data-labels date +syn keyword sqrParam date-edit-mask date-seperator +syn keyword sqrParam day-of-week-case day-of-week-full +syn keyword sqrParam day-of-week-short decimal decimal-seperator +syn keyword sqrParam default-numeric delay distinct dot-leader +syn keyword sqrParam edit-option-ad edit-option-am +syn keyword sqrParam edit-option-bc edit-option-na +syn keyword sqrParam edit-option-pm encoding entry erase-page +syn keyword sqrParam extent field fill fixed fixed_nolf float +syn keyword sqrParam font font-style font-type footing +syn keyword sqrParam footing-size foreground for-append +syn keyword sqrParam for-reading for-reports for-tocs +syn keyword sqrParam for-writing format formfeed from goto-top +syn keyword sqrParam group having heading heading-size height +syn keyword sqrParam horz-line image-size in indentation +syn keyword sqrParam init-string input-date-edit-mask insert +syn keyword sqrParam integer into item-color item-size key +syn keyword sqrParam layout left-margin legend legend-placement +syn keyword sqrParam legend-presentation legend-title level +syn keyword sqrParam line-height line-size line-width lines-inch +syn keyword sqrParam local locale loops max-columns max-lines +syn keyword sqrParam maxlen money money-edit-mask money-sign +syn keyword sqrParam money-sign-location months-case months-full +syn keyword sqrParam months-short name need newline newpage +syn keyword sqrParam no-advance nolf noline noprompt normal not +syn keyword sqrParam nowait number number-edit-mask on-break +syn keyword sqrParam on-error or order orientation page-depth +syn keyword sqrParam paper-size pie-segment-explode +syn keyword sqrParam pie-segment-percent-display +syn keyword sqrParam pie-segment-quantity-display pitch +syn keyword sqrParam point-markers point-size printer +syn keyword sqrParam printer-type quiet record reset-string +syn keyword sqrParam return_value reverse right-margin rows save +syn keyword sqrParam select size skip skiplines sort source +syn keyword sqrParam sqr-database sqr-platform startup-file +syn keyword sqrParam status stop sub-title symbol-set system +syn keyword sqrParam table text thousand-seperator +syn keyword sqrParam time-seperator times title to toc +syn keyword sqrParam top-margin type underline update using +syn keyword sqrParam value vary vert-line wait warn when +syn keyword sqrParam when-other where with x-axis-grid +syn keyword sqrParam x-axis-label x-axis-major-increment +syn keyword sqrParam x-axis-major-tick-marks x-axis-max-value +syn keyword sqrParam x-axis-min-value x-axis-minor-increment +syn keyword sqrParam x-axis-minor-tick-marks x-axis-rotate +syn keyword sqrParam x-axis-scale x-axis-tick-mark-placement xor +syn keyword sqrParam y-axis-grid y-axis-label +syn keyword sqrParam y-axis-major-increment +syn keyword sqrParam y-axis-major-tick-marks y-axis-max-value +syn keyword sqrParam y-axis-min-value y-axis-minor-increment +syn keyword sqrParam y-axis-minor-tick-marks y-axis-scale +syn keyword sqrParam y-axis-tick-mark-placement y2-type +syn keyword sqrParam y2-data-array y2-data-array-row-count +syn keyword sqrParam y2-data-array-column-count +syn keyword sqrParam y2-data-array-column-labels +syn keyword sqrParam y2-axis-color-palette y2-axis-label +syn keyword sqrParam y2-axis-major-increment +syn keyword sqrParam y2-axis-major-tick-marks y2-axis-max-value +syn keyword sqrParam y2-axis-min-value y2-axis-minor-increment +syn keyword sqrParam y2-axis-minor-tick-marks y2-axis-scale + +syn keyword sqrFunction abs acos asin atan array ascii asciic ceil +syn keyword sqrFunction cos cosh chr cond deg delete dateadd +syn keyword sqrFunction datediff datenow datetostr e10 exp edit +syn keyword sqrFunction exists floor getenv instr instrb isblank +syn keyword sqrFunction isnull log log10 length lengthb lengthp +syn keyword sqrFunction lengtht lower lpad ltrim mod nvl power rad +syn keyword sqrFunction round range replace roman rpad rtrim rename +syn keyword sqrFunction sign sin sinh sqrt substr substrb substrp +syn keyword sqrFunction substrt strtodate tan tanh trunc to_char +syn keyword sqrFunction to_multi_byte to_number to_single_byte +syn keyword sqrFunction transform translate unicode upper wrapdepth + +" END GENERATED SECTION ============================================== + +" Variables +syn match sqrVariable /\(\$\|#\|&\)\(\k\|\.\)*/ + + +" Debug compiler directives +syn match sqrPreProc /\s*#debug\a\=\(\s\|$\)/ +syn match sqrSubstVar /{\k*}/ + + +" Strings +" Note: if an undoubled ! is found, this is not a valid string +" (SQR will treat the end of the line as a comment) +syn match sqrString /'\(!!\|[^!']\)*'/ contains=sqrSubstVar +syn match sqrStrOpen /'\(!!\|''\|[^!']\)*$/ +" If we find a ' followed by an unmatched ! before a matching ', +" flag the error. +syn match sqrError /'\(!!\|[^'!]\)*![^!]/me=e-1 +syn match sqrError /'\(!!\|[^'!]\)*!$/ + +" Numbers: +syn match sqrNumber /-\=\<\d*\.\=[0-9_]\>/ + + + +" Comments: +" Handle comments that start with "!=" specially; they are only valid +" in the first column of the source line. Also, "!!" is only treated +" as a start-comment if there is only whitespace ahead of it on the line. + +syn keyword sqrTodo TODO FIXME XXX DEBUG NOTE ### +syn match sqrTodo /???/ + +" See also the sqrString section above for handling of ! characters +" inside of strings. (Those patterns override the ones below.) +syn match sqrComment /!\@ +" Last Change: 2005 Jun 12 +" URL: http://www.hampft.de/vim/syntax/squid.vim +" ThanksTo: Ilya Sher , +" Michael Dotzler + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" squid.conf syntax seems to be case insensitive +syn case ignore + +syn keyword squidTodo contained TODO +syn match squidComment "#.*$" contains=squidTodo,squidTag +syn match squidTag contained "TAG: .*$" + +" Lots & lots of Keywords! +syn keyword squidConf acl always_direct announce_host announce_period +syn keyword squidConf announce_port announce_to anonymize_headers +syn keyword squidConf append_domain as_whois_server auth_param_basic +syn keyword squidConf authenticate_children authenticate_program +syn keyword squidConf authenticate_ttl broken_posts buffered_logs +syn keyword squidConf cache_access_log cache_announce cache_dir +syn keyword squidConf cache_dns_program cache_effective_group +syn keyword squidConf cache_effective_user cache_host cache_host_acl +syn keyword squidConf cache_host_domain cache_log cache_mem +syn keyword squidConf cache_mem_high cache_mem_low cache_mgr +syn keyword squidConf cachemgr_passwd cache_peer cache_peer_access +syn keyword squidConf cache_replacement_policy cache_stoplist +syn keyword squidConf cache_stoplist_pattern cache_store_log cache_swap +syn keyword squidConf cache_swap_high cache_swap_log cache_swap_low +syn keyword squidConf client_db client_lifetime client_netmask +syn keyword squidConf connect_timeout coredump_dir dead_peer_timeout +syn keyword squidConf debug_options delay_access delay_class +syn keyword squidConf delay_initial_bucket_level delay_parameters +syn keyword squidConf delay_pools deny_info dns_children dns_defnames +syn keyword squidConf dns_nameservers dns_testnames emulate_httpd_log +syn keyword squidConf err_html_text fake_user_agent firewall_ip +syn keyword squidConf forwarded_for forward_snmpd_port fqdncache_size +syn keyword squidConf ftpget_options ftpget_program ftp_list_width +syn keyword squidConf ftp_passive ftp_user half_closed_clients +syn keyword squidConf header_access header_replace hierarchy_stoplist +syn keyword squidConf high_response_time_warning high_page_fault_warning +syn keyword squidConf htcp_port http_access http_anonymizer httpd_accel +syn keyword squidConf httpd_accel_host httpd_accel_port +syn keyword squidConf httpd_accel_uses_host_header +syn keyword squidConf httpd_accel_with_proxy http_port http_reply_access +syn keyword squidConf icp_access icp_hit_stale icp_port +syn keyword squidConf icp_query_timeout ident_lookup ident_lookup_access +syn keyword squidConf ident_timeout incoming_http_average +syn keyword squidConf incoming_icp_average inside_firewall ipcache_high +syn keyword squidConf ipcache_low ipcache_size local_domain local_ip +syn keyword squidConf logfile_rotate log_fqdn log_icp_queries +syn keyword squidConf log_mime_hdrs maximum_object_size +syn keyword squidConf maximum_single_addr_tries mcast_groups +syn keyword squidConf mcast_icp_query_timeout mcast_miss_addr +syn keyword squidConf mcast_miss_encode_key mcast_miss_port memory_pools +syn keyword squidConf memory_pools_limit memory_replacement_policy +syn keyword squidConf mime_table min_http_poll_cnt min_icp_poll_cnt +syn keyword squidConf minimum_direct_hops minimum_object_size +syn keyword squidConf minimum_retry_timeout miss_access negative_dns_ttl +syn keyword squidConf negative_ttl neighbor_timeout neighbor_type_domain +syn keyword squidConf netdb_high netdb_low netdb_ping_period +syn keyword squidConf netdb_ping_rate never_direct no_cache +syn keyword squidConf passthrough_proxy pconn_timeout pid_filename +syn keyword squidConf pinger_program positive_dns_ttl prefer_direct +syn keyword squidConf proxy_auth proxy_auth_realm query_icmp quick_abort +syn keyword squidConf quick_abort quick_abort_max quick_abort_min +syn keyword squidConf quick_abort_pct range_offset_limit read_timeout +syn keyword squidConf redirect_children redirect_program +syn keyword squidConf redirect_rewrites_host_header reference_age +syn keyword squidConf reference_age refresh_pattern reload_into_ims +syn keyword squidConf request_body_max_size request_size request_timeout +syn keyword squidConf shutdown_lifetime single_parent_bypass +syn keyword squidConf siteselect_timeout snmp_access +syn keyword squidConf snmp_incoming_address snmp_port source_ping +syn keyword squidConf ssl_proxy store_avg_object_size +syn keyword squidConf store_objects_per_bucket strip_query_terms +syn keyword squidConf swap_level1_dirs swap_level2_dirs +syn keyword squidConf tcp_incoming_address tcp_outgoing_address +syn keyword squidConf tcp_recv_bufsize test_reachability udp_hit_obj +syn keyword squidConf udp_hit_obj_size udp_incoming_address +syn keyword squidConf udp_outgoing_address unique_hostname +syn keyword squidConf unlinkd_program uri_whitespace useragent_log +syn keyword squidConf visible_hostname wais_relay wais_relay_host +syn keyword squidConf wais_relay_port + +syn keyword squidOpt proxy-only weight ttl no-query default +syn keyword squidOpt round-robin multicast-responder +syn keyword squidOpt on off all deny allow +syn keyword squidopt via parent no-digest heap lru realm +syn keyword squidopt children credentialsttl none disable +syn keyword squidopt offline_toggle diskd q1 q2 + +" Security Actions for cachemgr_passwd +syn keyword squidAction shutdown info parameter server_list +syn keyword squidAction client_list +syn match squidAction "stats/\(objects\|vm_objects\|utilization\|ipcache\|fqdncache\|dns\|redirector\|io\|reply_headers\|filedescriptors\|netdb\)" +syn match squidAction "log\(/\(status\|enable\|disable\|clear\)\)\=" +syn match squidAction "squid\.conf" + +" Keywords for the acl-config +syn keyword squidAcl url_regex urlpath_regex referer_regex port proto +syn keyword squidAcl req_mime_type rep_mime_type +syn keyword squidAcl method browser user src dst +syn keyword squidAcl time dstdomain ident snmp_community + +syn match squidNumber "\<\d\+\>" +syn match squidIP "\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>" +syn match squidStr "\(^\s*acl\s\+\S\+\s\+\(\S*_regex\|re[pq]_mime_type\|browser\|_domain\|user\)\+\s\+\)\@<=.*" contains=squidRegexOpt +syn match squidRegexOpt contained "\(^\s*acl\s\+\S\+\s\+\S\+\(_regex\|_mime_type\)\s\+\)\@<=[-+]i\s\+" + +" All config is in one line, so this has to be sufficient +" Make it fast like hell :) +syn sync minlines=3 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link squidTodo Todo +hi def link squidComment Comment +hi def link squidTag Special +hi def link squidConf Keyword +hi def link squidOpt Constant +hi def link squidAction String +hi def link squidNumber Number +hi def link squidIP Number +hi def link squidAcl Keyword +hi def link squidStr String +hi def link squidRegexOpt Special + + +let b:current_syntax = "squid" + +" vim: ts=8 diff --git a/runtime/syntax/squirrel.vim b/runtime/syntax/squirrel.vim new file mode 100644 index 0000000..85bdd87 --- /dev/null +++ b/runtime/syntax/squirrel.vim @@ -0,0 +1,51 @@ +" Vim syntax file +" Language: squirrel +" Current Maintainer: Matt Dunford (zenmatic@gmail.com) +" URL: https://github.com/zenmatic/vim-syntax-squirrel +" Last Change: 2023 Dec 08 + +" http://squirrel-lang.org/ + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" inform C syntax that the file was included from cpp.vim +let b:filetype_in_cpp_family = 1 + +" Read the C syntax to start with +runtime! syntax/c.vim +unlet b:current_syntax +unlet b:filetype_in_cpp_family + +" squirrel extensions +syn keyword squirrelStatement delete this in yield resume base clone +syn keyword squirrelAccess local +syn keyword cConstant null +syn keyword squirrelModifier static +syn keyword squirrelType bool instanceof typeof +syn keyword squirrelExceptions throw try catch +syn keyword squirrelStructure class function extends constructor +syn keyword squirrelBoolean true false +syn keyword squirrelRepeat foreach + +syn region squirrelMultiString start='@"' end='"$' end='";$'me=e-1 + +syn match squirrelShComment "^\s*#.*$" + +" Default highlighting +hi def link squirrelAccess squirrelStatement +hi def link squirrelExceptions Exception +hi def link squirrelStatement Statement +hi def link squirrelModifier Type +hi def link squirrelType Type +hi def link squirrelStructure Structure +hi def link squirrelBoolean Boolean +hi def link squirrelMultiString String +hi def link squirrelRepeat cRepeat +hi def link squirrelShComment Comment + +let b:current_syntax = "squirrel" + +" vim: ts=8 diff --git a/runtime/syntax/srec.vim b/runtime/syntax/srec.vim new file mode 100644 index 0000000..6ac22d9 --- /dev/null +++ b/runtime/syntax/srec.vim @@ -0,0 +1,83 @@ +" Vim syntax file +" Language: Motorola S-Record +" Maintainer: Markus Heidelberg +" Last Change: 2015 Feb 24 + +" Each record (line) is built as follows: +" +" field digits states +" +" +----------+ +" | start | 1 ('S') srecRecStart +" +----------+ +" | type | 1 srecRecType, (srecRecTypeUnknown) +" +----------+ +" | count | 2 srecByteCount +" +----------+ +" | address | 4/6/8 srecNoAddress, srecDataAddress, srecRecCount, srecStartAddress, (srecAddressFieldUnknown) +" +----------+ +" | data | 0..504/502/500 srecDataOdd, srecDataEven, (srecDataUnexpected) +" +----------+ +" | checksum | 2 srecChecksum +" +----------+ +" +" States in parentheses in the upper format description indicate that they +" should not appear in a valid file. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match srecRecStart "^S" + +syn match srecRecTypeUnknown "^S." contains=srecRecStart +syn match srecRecType "^S[0-35-9]" contains=srecRecStart + +syn match srecByteCount "^S.[0-9a-fA-F]\{2}" contains=srecRecTypeUnknown nextgroup=srecAddressFieldUnknown,srecChecksum +syn match srecByteCount "^S[0-35-9][0-9a-fA-F]\{2}" contains=srecRecType + +syn match srecAddressFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=srecAddressFieldUnknown,srecChecksum + +syn match srecNoAddress "^S0[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum +syn match srecDataAddress "^S1[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum +syn match srecDataAddress "^S2[0-9a-fA-F]\{8}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum +syn match srecDataAddress "^S3[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum +syn match srecRecCount "^S5[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum +syn match srecRecCount "^S6[0-9a-fA-F]\{8}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum +syn match srecStartAddress "^S7[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum +syn match srecStartAddress "^S8[0-9a-fA-F]\{8}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum +syn match srecStartAddress "^S9[0-9a-fA-F]\{6}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum + +" alternating highlight per byte for easier reading +syn match srecDataOdd "[0-9a-fA-F]\{2}" contained nextgroup=srecDataEven,srecChecksum +syn match srecDataEven "[0-9a-fA-F]\{2}" contained nextgroup=srecDataOdd,srecChecksum +" data bytes which should not exist +syn match srecDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=srecDataUnexpected,srecChecksum +" Data digit pair regex usage also results in only highlighting the checksum +" if the number of data characters is even. + +syn match srecChecksum "[0-9a-fA-F]\{2}$" contained + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link srecRecStart srecRecType +hi def link srecRecTypeUnknown srecRecType +hi def link srecRecType WarningMsg +hi def link srecByteCount Constant +hi def srecAddressFieldUnknown term=italic cterm=italic gui=italic +hi def link srecNoAddress DiffAdd +hi def link srecDataAddress Comment +hi def link srecRecCount srecNoAddress +hi def link srecStartAddress srecDataAddress +hi def srecDataOdd term=bold cterm=bold gui=bold +hi def srecDataEven term=NONE cterm=NONE gui=NONE +hi def link srecDataUnexpected Error +hi def link srecChecksum DiffChange + + +let b:current_syntax = "srec" + +" vim: ts=8 diff --git a/runtime/syntax/srt.vim b/runtime/syntax/srt.vim new file mode 100644 index 0000000..12fb264 --- /dev/null +++ b/runtime/syntax/srt.vim @@ -0,0 +1,62 @@ +" Vim syntax file +" Language: SubRip +" Maintainer: ObserverOfTime +" Filenames: *.srt +" Last Change: 2022 Sep 12 + +if exists('b:current_syntax') + finish +endif + +syn spell toplevel + +syn cluster srtSpecial contains=srtBold,srtItalics,srtStrikethrough,srtUnderline,srtFont,srtTag,srtEscape + +" Number +syn match srtNumber /^\d\+$/ contains=@NoSpell + +" Range +syn match srtRange /\d\d:\d\d:\d\d[,.]\d\d\d --> \d\d:\d\d:\d\d[,.]\d\d\d/ skipwhite contains=srtArrow,srtTime nextgroup=srtCoordinates +syn match srtArrow /-->/ contained contains=@NoSpell +syn match srtTime /\d\d:\d\d:\d\d[,.]\d\d\d/ contained contains=@NoSpell +syn match srtCoordinates /X1:\d\+ X2:\d\+ Y1:\d\+ Y2:\d\+/ contained contains=@NoSpell + +" Bold +syn region srtBold matchgroup=srtFormat start=++ end=++ contains=@srtSpecial +syn region srtBold matchgroup=srtFormat start=+{b}+ end=+{/b}+ contains=@srtSpecial + +" Italics +syn region srtItalics matchgroup=srtFormat start=++ end=++ contains=@srtSpecial +syn region srtItalics matchgroup=srtFormat start=+{i}+ end=+{/i}+ contains=@srtSpecial + +" Strikethrough +syn region srtStrikethrough matchgroup=srtFormat start=++ end=++ contains=@srtSpecial +syn region srtStrikethrough matchgroup=srtFormat start=+{s}+ end=+{/s}+ contains=@srtSpecial + +" Underline +syn region srtUnderline matchgroup=srtFormat start=++ end=++ contains=@srtSpecial +syn region srtUnderline matchgroup=srtFormat start=+{u}+ end=+{/u}+ contains=@srtSpecial + +" Font +syn region srtFont matchgroup=srtFormat start=+]\{-}>+ end=+
+ contains=@srtSpecial + +" ASS tags +syn match srtTag /{\\[^}]\{1,}}/ contains=@NoSpell + +" Special characters +syn match srtEscape /\\[nNh]/ contains=@NoSpell + +hi def link srtArrow Delimiter +hi def link srtCoordinates Label +hi def link srtEscape SpecialChar +hi def link srtFormat Special +hi def link srtNumber Number +hi def link srtTag PreProc +hi def link srtTime String + +hi srtBold cterm=bold gui=bold +hi srtItalics cterm=italic gui=italic +hi srtStrikethrough cterm=strikethrough gui=strikethrough +hi srtUnderline cterm=underline gui=underline + +let b:current_syntax = 'srt' diff --git a/runtime/syntax/ssa.vim b/runtime/syntax/ssa.vim new file mode 100644 index 0000000..a5dbf37 --- /dev/null +++ b/runtime/syntax/ssa.vim @@ -0,0 +1,63 @@ +" Vim syntax file +" Language: SubStation Alpha +" Maintainer: ObserverOfTime +" Filenames: *.ass,*.ssa +" Last Change: 2022 Oct 10 + +if exists('b:current_syntax') + finish +endif + +" Comments +syn keyword ssaTodo TODO FIXME NOTE XXX contained +syn match ssaComment /^\(;\|!:\).*$/ contains=ssaTodo,@Spell +syn match ssaTextComment /{[^}]*}/ contained contains=@Spell + +" Sections +syn match ssaSection /^\[[a-zA-Z0-9+ ]\+\]$/ + +" Headers +syn match ssaHeader /^[^;!:]\+:/ skipwhite nextgroup=ssaField + +" Fields +syn match ssaField /[^,]*/ contained skipwhite nextgroup=ssaDelimiter + +" Time +syn match ssaTime /\d:\d\d:\d\d\.\d\d/ contained skipwhite nextgroup=ssaDelimiter + +" Delimiter +syn match ssaDelimiter /,/ contained skipwhite nextgroup=ssaField,ssaTime,ssaText + +" Text +syn match ssaText /\(^Dialogue:\(.*,\)\{9}\)\@<=.*$/ contained contains=@ssaTags,@Spell +syn cluster ssaTags contains=ssaOverrideTag,ssaEscapeChar,ssaTextComment,ssaItalics,ssaBold,ssaUnderline,ssaStrikeout + +" Override tags +syn match ssaOverrideTag /{\\[^}]\+}/ contained contains=@NoSpell + +" Special characters +syn match ssaEscapeChar /\\[nNh{}]/ contained contains=@NoSpell + +" Markup +syn region ssaItalics start=/{\\i1}/ end=/{\\i0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell +syn region ssaBold start=/{\\b1}/ end=/{\\b0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell +syn region ssaUnderline start=/{\\u1}/ end=/{\\u0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell +syn region ssaStrikeout start=/{\\s1}/ end=/{\\s0}/ matchgroup=ssaOverrideTag keepend oneline contained contains=@ssaTags,@Spell + +hi def link ssaDelimiter Delimiter +hi def link ssaComment Comment +hi def link ssaEscapeChar SpecialChar +hi def link ssaField String +hi def link ssaHeader Label +hi def link ssaSection StorageClass +hi def link ssaOverrideTag Special +hi def link ssaTextComment Comment +hi def link ssaTime Number +hi def link ssaTodo Todo + +hi ssaBold cterm=bold gui=bold +hi ssaItalics cterm=italic gui=italic +hi ssaStrikeout cterm=strikethrough gui=strikethrough +hi ssaUnderline cterm=underline gui=underline + +let b:current_syntax = 'srt' diff --git a/runtime/syntax/sshconfig.vim b/runtime/syntax/sshconfig.vim new file mode 100644 index 0000000..750289d --- /dev/null +++ b/runtime/syntax/sshconfig.vim @@ -0,0 +1,296 @@ +" Vim syntax file +" Language: OpenSSH client configuration file (ssh_config) +" Author: David Necas (Yeti) +" Maintainer: Jakub Jelen +" Previous Maintainer: Dominik Fischer +" Contributor: Leonard Ehrenfried +" Contributor: Karsten Hopp +" Contributor: Dean, Adam Kenneth +" Last Change: 2022 Nov 10 +" Added RemoteCommand from pull request #4809 +" Included additional keywords from Martin. +" Included PR #5753 +" SSH Version: 8.5p1 +" + +" Setup +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=_,-,a-z,A-Z,48-57 + + +" case on +syn case match + + +" Comments +syn match sshconfigComment "^#.*$" contains=sshconfigTodo +syn match sshconfigComment "\s#.*$" contains=sshconfigTodo + +syn keyword sshconfigTodo TODO FIXME NOTE contained + + +" Constants +syn keyword sshconfigYesNo yes no ask confirm +syn keyword sshconfigYesNo any auto +syn keyword sshconfigYesNo force autoask none + +syn keyword sshconfigCipher 3des blowfish + +syn keyword sshconfigCiphers 3des-cbc +syn keyword sshconfigCiphers blowfish-cbc +syn keyword sshconfigCiphers cast128-cbc +syn keyword sshconfigCiphers arcfour +syn keyword sshconfigCiphers arcfour128 +syn keyword sshconfigCiphers arcfour256 +syn keyword sshconfigCiphers aes128-cbc +syn keyword sshconfigCiphers aes192-cbc +syn keyword sshconfigCiphers aes256-cbc +syn match sshconfigCiphers "\" +syn keyword sshconfigCiphers aes128-ctr +syn keyword sshconfigCiphers aes192-ctr +syn keyword sshconfigCiphers aes256-ctr +syn match sshconfigCiphers "\" +syn match sshconfigCiphers "\" +syn match sshconfigCiphers "\" + +syn keyword sshconfigMAC hmac-sha1 +syn keyword sshconfigMAC hmac-sha1-96 +syn keyword sshconfigMAC hmac-sha2-256 +syn keyword sshconfigMAC hmac-sha2-512 +syn keyword sshconfigMAC hmac-md5 +syn keyword sshconfigMAC hmac-md5-96 +syn keyword sshconfigMAC hmac-ripemd160 +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" +syn match sshconfigMAC "\" + +syn keyword sshconfigHostKeyAlgo ssh-ed25519 +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn keyword sshconfigHostKeyAlgo ssh-rsa +syn keyword sshconfigHostKeyAlgo rsa-sha2-256 +syn keyword sshconfigHostKeyAlgo rsa-sha2-512 +syn keyword sshconfigHostKeyAlgo ssh-dss +syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp256 +syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp384 +syn keyword sshconfigHostKeyAlgo ecdsa-sha2-nistp521 +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" +syn match sshconfigHostKeyAlgo "\" + +syn keyword sshconfigPreferredAuth hostbased publickey password gssapi-with-mic +syn keyword sshconfigPreferredAuth keyboard-interactive + +syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE +syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3 +syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1 +syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7 +syn keyword sshconfigAddressFamily inet inet6 + +syn match sshconfigIPQoS "af1[123]" +syn match sshconfigIPQoS "af2[123]" +syn match sshconfigIPQoS "af3[123]" +syn match sshconfigIPQoS "af4[123]" +syn match sshconfigIPQoS "cs[0-7]" +syn keyword sshconfigIPQoS ef lowdelay throughput reliability +syn keyword sshconfigKbdInteractive bsdauth pam skey + +syn keyword sshconfigKexAlgo diffie-hellman-group1-sha1 +syn keyword sshconfigKexAlgo diffie-hellman-group14-sha1 +syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha1 +syn keyword sshconfigKexAlgo diffie-hellman-group-exchange-sha256 +syn keyword sshconfigKexAlgo ecdh-sha2-nistp256 +syn keyword sshconfigKexAlgo ecdh-sha2-nistp384 +syn keyword sshconfigKexAlgo ecdh-sha2-nistp521 +syn match sshconfigKexAlgo "\" + +syn keyword sshconfigTunnel point-to-point ethernet + +syn match sshconfigVar "%[rhplLdun]\>" +syn match sshconfigSpecial "[*?]" +syn match sshconfigNumber "\d\+" +syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>" +syn match sshconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>" +syn match sshconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}[:/]\d\+\>" +syn match sshconfigHostPort "\(Host \)\@<=.\+" +syn match sshconfigHostPort "\(HostName \)\@<=.\+" + +" case off +syn case ignore + + +" Keywords +syn keyword sshconfigHostSect Host + +syn keyword sshconfigMatch canonical final exec host originalhost user localuser all + +syn keyword sshconfigKeyword AddressFamily +syn keyword sshconfigKeyword AddKeysToAgent +syn keyword sshconfigKeyword BatchMode +syn keyword sshconfigKeyword BindAddress +syn keyword sshconfigKeyword BindInterface +syn keyword sshconfigKeyword CanonicalDomains +syn keyword sshconfigKeyword CanonicalizeFallbackLocal +syn keyword sshconfigKeyword CanonicalizeHostname +syn keyword sshconfigKeyword CanonicalizeMaxDots +syn keyword sshconfigKeyword CanonicalizePermittedCNAMEs +syn keyword sshconfigKeyword CASignatureAlgorithms +syn keyword sshconfigKeyword CertificateFile +syn keyword sshconfigKeyword ChallengeResponseAuthentication +syn keyword sshconfigKeyword CheckHostIP +syn keyword sshconfigKeyword Ciphers +syn keyword sshconfigKeyword ClearAllForwardings +syn keyword sshconfigKeyword Compression +syn keyword sshconfigKeyword ConnectTimeout +syn keyword sshconfigKeyword ConnectionAttempts +syn keyword sshconfigKeyword ControlMaster +syn keyword sshconfigKeyword ControlPath +syn keyword sshconfigKeyword ControlPersist +syn keyword sshconfigKeyword DynamicForward +syn keyword sshconfigKeyword EnableSSHKeysign +syn keyword sshconfigKeyword EscapeChar +syn keyword sshconfigKeyword ExitOnForwardFailure +syn keyword sshconfigKeyword FingerprintHash +syn keyword sshconfigKeyword ForkAfterAuthentication +syn keyword sshconfigKeyword ForwardAgent +syn keyword sshconfigKeyword ForwardX11 +syn keyword sshconfigKeyword ForwardX11Timeout +syn keyword sshconfigKeyword ForwardX11Trusted +syn keyword sshconfigKeyword GSSAPIAuthentication +syn keyword sshconfigKeyword GSSAPIDelegateCredentials +syn keyword sshconfigKeyword GatewayPorts +syn keyword sshconfigKeyword GlobalKnownHostsFile +syn keyword sshconfigKeyword HashKnownHosts +syn keyword sshconfigKeyword HostKeyAlgorithms +syn keyword sshconfigKeyword HostKeyAlias +syn keyword sshconfigKeyword HostName +syn keyword sshconfigKeyword HostbasedAuthentication +syn keyword sshconfigKeyword HostbasedAcceptedAlgorithms +syn keyword sshconfigKeyword HostbasedKeyTypes +syn keyword sshconfigKeyword IPQoS +syn keyword sshconfigKeyword IdentitiesOnly +syn keyword sshconfigKeyword IdentityAgent +syn keyword sshconfigKeyword IdentityFile +syn keyword sshconfigKeyword IgnoreUnknown +syn keyword sshconfigKeyword Include +syn keyword sshconfigKeyword IPQoS +syn keyword sshconfigKeyword KbdInteractiveAuthentication +syn keyword sshconfigKeyword KbdInteractiveDevices +syn keyword sshconfigKeyword KexAlgorithms +syn keyword sshconfigKeyword KnownHostsCommand +syn keyword sshconfigKeyword LocalCommand +syn keyword sshconfigKeyword LocalForward +syn keyword sshconfigKeyword LogLevel +syn keyword sshconfigKeyword LogVerbose +syn keyword sshconfigKeyword MACs +syn keyword sshconfigKeyword Match +syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost +syn keyword sshconfigKeyword NumberOfPasswordPrompts +syn keyword sshconfigKeyword PKCS11Provider +syn keyword sshconfigKeyword PasswordAuthentication +syn keyword sshconfigKeyword PermitLocalCommand +syn keyword sshconfigKeyword PermitRemoteOpen +syn keyword sshconfigKeyword Port +syn keyword sshconfigKeyword PreferredAuthentications +syn keyword sshconfigKeyword ProxyCommand +syn keyword sshconfigKeyword ProxyJump +syn keyword sshconfigKeyword ProxyUseFDPass +syn keyword sshconfigKeyword PubkeyAcceptedAlgorithms +syn keyword sshconfigKeyword PubkeyAcceptedKeyTypes +syn keyword sshconfigKeyword PubkeyAuthentication +syn keyword sshconfigKeyword RekeyLimit +syn keyword sshconfigKeyword RemoteCommand +syn keyword sshconfigKeyword RemoteForward +syn keyword sshconfigKeyword RequestTTY +syn keyword sshconfigKeyword RequiredRSASize +syn keyword sshconfigKeyword RevokedHostKeys +syn keyword sshconfigKeyword SecurityKeyProvider +syn keyword sshconfigKeyword SendEnv +syn keyword sshconfigKeyword ServerAliveCountMax +syn keyword sshconfigKeyword ServerAliveInterval +syn keyword sshconfigKeyword SessionType +syn keyword sshconfigKeyword SmartcardDevice +syn keyword sshconfigKeyword SetEnv +syn keyword sshconfigKeyword StdinNull +syn keyword sshconfigKeyword StreamLocalBindMask +syn keyword sshconfigKeyword StreamLocalBindUnlink +syn keyword sshconfigKeyword StrictHostKeyChecking +syn keyword sshconfigKeyword SyslogFacility +syn keyword sshconfigKeyword TCPKeepAlive +syn keyword sshconfigKeyword Tunnel +syn keyword sshconfigKeyword TunnelDevice +syn keyword sshconfigKeyword UseBlacklistedKeys +syn keyword sshconfigKeyword UpdateHostKeys +syn keyword sshconfigKeyword User +syn keyword sshconfigKeyword UserKnownHostsFile +syn keyword sshconfigKeyword VerifyHostKeyDNS +syn keyword sshconfigKeyword VisualHostKey +syn keyword sshconfigKeyword XAuthLocation + +" Deprecated/ignored/remove/unsupported keywords + +syn keyword sshConfigDeprecated Cipher +syn keyword sshconfigDeprecated GSSAPIClientIdentity +syn keyword sshconfigDeprecated GSSAPIKeyExchange +syn keyword sshconfigDeprecated GSSAPIRenewalForcesRekey +syn keyword sshconfigDeprecated GSSAPIServerIdentity +syn keyword sshconfigDeprecated GSSAPITrustDNS +syn keyword sshconfigDeprecated GSSAPITrustDns +syn keyword sshconfigDeprecated Protocol +syn keyword sshconfigDeprecated RSAAuthentication +syn keyword sshconfigDeprecated RhostsRSAAuthentication +syn keyword sshconfigDeprecated CompressionLevel +syn keyword sshconfigDeprecated UseRoaming +syn keyword sshconfigDeprecated UsePrivilegedPort + +" Define the default highlighting + +hi def link sshconfigComment Comment +hi def link sshconfigTodo Todo +hi def link sshconfigHostPort sshconfigConstant +hi def link sshconfigNumber sshconfigConstant +hi def link sshconfigConstant Constant +hi def link sshconfigYesNo sshconfigEnum +hi def link sshconfigCipher sshconfigDeprecated +hi def link sshconfigCiphers sshconfigEnum +hi def link sshconfigMAC sshconfigEnum +hi def link sshconfigHostKeyAlgo sshconfigEnum +hi def link sshconfigLogLevel sshconfigEnum +hi def link sshconfigSysLogFacility sshconfigEnum +hi def link sshconfigAddressFamily sshconfigEnum +hi def link sshconfigIPQoS sshconfigEnum +hi def link sshconfigKbdInteractive sshconfigEnum +hi def link sshconfigKexAlgo sshconfigEnum +hi def link sshconfigTunnel sshconfigEnum +hi def link sshconfigPreferredAuth sshconfigEnum +hi def link sshconfigVar sshconfigEnum +hi def link sshconfigEnum Identifier +hi def link sshconfigSpecial Special +hi def link sshconfigKeyword Keyword +hi def link sshconfigHostSect Type +hi def link sshconfigMatch Type +hi def link sshconfigDeprecated Error + +let b:current_syntax = "sshconfig" + +" vim:set ts=8 sw=2 sts=2: diff --git a/runtime/syntax/sshdconfig.vim b/runtime/syntax/sshdconfig.vim new file mode 100644 index 0000000..c0d9c3f --- /dev/null +++ b/runtime/syntax/sshdconfig.vim @@ -0,0 +1,308 @@ +" Vim syntax file +" Language: OpenSSH server configuration file (sshd_config) +" Author: David Necas (Yeti) +" Maintainer: Jakub Jelen +" Previous Maintainer: Dominik Fischer +" Contributor: Thilo Six +" Contributor: Leonard Ehrenfried +" Contributor: Karsten Hopp +" Originally: 2009-07-09 +" Last Change: 2022 Nov 10 +" SSH Version: 8.5p1 +" + +" Setup +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +setlocal iskeyword=_,-,a-z,A-Z,48-57 + + +" case on +syn case match + + +" Comments +syn match sshdconfigComment "^#.*$" contains=sshdconfigTodo +syn match sshdconfigComment "\s#.*$" contains=sshdconfigTodo + +syn keyword sshdconfigTodo TODO FIXME NOTE contained + +" Constants +syn keyword sshdconfigYesNo yes no none + +syn keyword sshdconfigAddressFamily any inet inet6 + +syn keyword sshdconfigPrivilegeSeparation sandbox + +syn keyword sshdconfigTcpForwarding local remote + +syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only + +syn keyword sshdconfigCiphers 3des-cbc +syn keyword sshdconfigCiphers blowfish-cbc +syn keyword sshdconfigCiphers cast128-cbc +syn keyword sshdconfigCiphers arcfour +syn keyword sshdconfigCiphers arcfour128 +syn keyword sshdconfigCiphers arcfour256 +syn keyword sshdconfigCiphers aes128-cbc +syn keyword sshdconfigCiphers aes192-cbc +syn keyword sshdconfigCiphers aes256-cbc +syn match sshdconfigCiphers "\" +syn keyword sshdconfigCiphers aes128-ctr +syn keyword sshdconfigCiphers aes192-ctr +syn keyword sshdconfigCiphers aes256-ctr +syn match sshdconfigCiphers "\" +syn match sshdconfigCiphers "\" +syn match sshdconfigCiphers "\" + +syn keyword sshdconfigMAC hmac-sha1 +syn keyword sshdconfigMAC hmac-sha1-96 +syn keyword sshdconfigMAC hmac-sha2-256 +syn keyword sshdconfigMAC hmac-sha2-512 +syn keyword sshdconfigMAC hmac-md5 +syn keyword sshdconfigMAC hmac-md5-96 +syn keyword sshdconfigMAC hmac-ripemd160 +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" +syn match sshdconfigMAC "\" + +syn keyword sshdconfigHostKeyAlgo ssh-ed25519 +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn keyword sshdconfigHostKeyAlgo ssh-rsa +syn keyword sshdconfigHostKeyAlgo rsa-sha2-256 +syn keyword sshdconfigHostKeyAlgo rsa-sha2-512 +syn keyword sshdconfigHostKeyAlgo ssh-dss +syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp256 +syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp384 +syn keyword sshdconfigHostKeyAlgo ecdsa-sha2-nistp521 +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" +syn match sshdconfigHostKeyAlgo "\" + +syn keyword sshdconfigRootLogin prohibit-password without-password forced-commands-only + +syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE +syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3 +syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1 +syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7 + +syn keyword sshdconfigCompression delayed + +syn match sshdconfigIPQoS "af1[123]" +syn match sshdconfigIPQoS "af2[123]" +syn match sshdconfigIPQoS "af3[123]" +syn match sshdconfigIPQoS "af4[123]" +syn match sshdconfigIPQoS "cs[0-7]" +syn keyword sshdconfigIPQoS ef lowdelay throughput reliability + +syn keyword sshdconfigKexAlgo diffie-hellman-group1-sha1 +syn keyword sshdconfigKexAlgo diffie-hellman-group14-sha1 +syn keyword sshdconfigKexAlgo diffie-hellman-group14-sha256 +syn keyword sshdconfigKexAlgo diffie-hellman-group16-sha512 +syn keyword sshdconfigKexAlgo diffie-hellman-group18-sha512 +syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha1 +syn keyword sshdconfigKexAlgo diffie-hellman-group-exchange-sha256 +syn keyword sshdconfigKexAlgo ecdh-sha2-nistp256 +syn keyword sshdconfigKexAlgo ecdh-sha2-nistp384 +syn keyword sshdconfigKexAlgo ecdh-sha2-nistp521 +syn keyword sshdconfigKexAlgo curve25519-sha256 +syn match sshdconfigKexAlgo "\" +syn match sshdconfigKexAlgo "\" + +syn keyword sshdconfigTunnel point-to-point ethernet + +syn keyword sshdconfigSubsystem internal-sftp + +syn match sshdconfigVar "%[hu]\>" +syn match sshdconfigVar "%%" + +syn match sshdconfigSpecial "[*?]" + +syn match sshdconfigNumber "\d\+" +syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>" +syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>" +" FIXME: this matches quite a few things which are NOT valid IPv6 addresses +syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>" +syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>" + + +" case off +syn case ignore + + +" Keywords +" Also includes RDomain, but that is a keyword. +syn keyword sshdconfigMatch Host User Group Address LocalAddress LocalPort + +syn keyword sshdconfigKeyword AcceptEnv +syn keyword sshdconfigKeyword AddressFamily +syn keyword sshdconfigKeyword AllowAgentForwarding +syn keyword sshdconfigKeyword AllowGroups +syn keyword sshdconfigKeyword AllowStreamLocalForwarding +syn keyword sshdconfigKeyword AllowTcpForwarding +syn keyword sshdconfigKeyword AllowUsers +syn keyword sshdconfigKeyword AuthenticationMethods +syn keyword sshdconfigKeyword AuthorizedKeysFile +syn keyword sshdconfigKeyword AuthorizedKeysCommand +syn keyword sshdconfigKeyword AuthorizedKeysCommandUser +syn keyword sshdconfigKeyword AuthorizedPrincipalsCommand +syn keyword sshdconfigKeyword AuthorizedPrincipalsCommandUser +syn keyword sshdconfigKeyword AuthorizedPrincipalsFile +syn keyword sshdconfigKeyword Banner +syn keyword sshdconfigKeyword CASignatureAlgorithms +syn keyword sshdconfigKeyword ChallengeResponseAuthentication +syn keyword sshdconfigKeyword ChrootDirectory +syn keyword sshdconfigKeyword Ciphers +syn keyword sshdconfigKeyword ClientAliveCountMax +syn keyword sshdconfigKeyword ClientAliveInterval +syn keyword sshdconfigKeyword Compression +syn keyword sshdconfigKeyword DebianBanner +syn keyword sshdconfigKeyword DenyGroups +syn keyword sshdconfigKeyword DenyUsers +syn keyword sshdconfigKeyword DisableForwarding +syn keyword sshdconfigKeyword ExposeAuthInfo +syn keyword sshdconfigKeyword FingerprintHash +syn keyword sshdconfigKeyword ForceCommand +syn keyword sshdconfigKeyword GatewayPorts +syn keyword sshdconfigKeyword GSSAPIAuthentication +syn keyword sshdconfigKeyword GSSAPICleanupCredentials +syn keyword sshdconfigKeyword GSSAPIEnablek5users +syn keyword sshdconfigKeyword GSSAPIKeyExchange +syn keyword sshdconfigKeyword GSSAPIKexAlgorithms +syn keyword sshdconfigKeyword GSSAPIStoreCredentialsOnRekey +syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck +syn keyword sshdconfigKeyword HostCertificate +syn keyword sshdconfigKeyword HostKey +syn keyword sshdconfigKeyword HostKeyAgent +syn keyword sshdconfigKeyword HostKeyAlgorithms +syn keyword sshdconfigKeyword HostbasedAcceptedAlgorithms +syn keyword sshdconfigKeyword HostbasedAcceptedKeyTypes +syn keyword sshdconfigKeyword HostbasedAuthentication +syn keyword sshdconfigKeyword HostbasedUsesNameFromPacketOnly +syn keyword sshdconfigKeyword IPQoS +syn keyword sshdconfigKeyword IgnoreRhosts +syn keyword sshdconfigKeyword IgnoreUserKnownHosts +syn keyword sshdconfigKeyword Include +syn keyword sshdconfigKeyword KbdInteractiveAuthentication +syn keyword sshdconfigKeyword KerberosAuthentication +syn keyword sshdconfigKeyword KerberosGetAFSToken +syn keyword sshdconfigKeyword KerberosOrLocalPasswd +syn keyword sshdconfigKeyword KerberosTicketCleanup +syn keyword sshdconfigKeyword KerberosUniqueCCache +syn keyword sshdconfigKeyword KerberosUseKuserok +syn keyword sshdconfigKeyword KexAlgorithms +syn keyword sshdconfigKeyword KeyRegenerationInterval +syn keyword sshdconfigKeyword ListenAddress +syn keyword sshdconfigKeyword LogLevel +syn keyword sshdconfigKeyword LogVerbose +syn keyword sshdconfigKeyword LoginGraceTime +syn keyword sshdconfigKeyword MACs +syn keyword sshdconfigKeyword Match +syn keyword sshdconfigKeyword MaxAuthTries +syn keyword sshdconfigKeyword MaxSessions +syn keyword sshdconfigKeyword MaxStartups +syn keyword sshdconfigKeyword ModuliFile +syn keyword sshdconfigKeyword PasswordAuthentication +syn keyword sshdconfigKeyword PerSourceMaxStartups +syn keyword sshdconfigKeyword PerSourceNetBlockSize +syn keyword sshdconfigKeyword PermitBlacklistedKeys +syn keyword sshdconfigKeyword PermitEmptyPasswords +syn keyword sshdconfigKeyword PermitListen +syn keyword sshdconfigKeyword PermitOpen +syn keyword sshdconfigKeyword PermitRootLogin +syn keyword sshdconfigKeyword PermitTTY +syn keyword sshdconfigKeyword PermitTunnel +syn keyword sshdconfigKeyword PermitUserEnvironment +syn keyword sshdconfigKeyword PermitUserRC +syn keyword sshdconfigKeyword PidFile +syn keyword sshdconfigKeyword Port +syn keyword sshdconfigKeyword PrintLastLog +syn keyword sshdconfigKeyword PrintMotd +syn keyword sshdconfigKeyword Protocol +syn keyword sshdconfigKeyword PubkeyAcceptedAlgorithms +syn keyword sshdconfigKeyword PubkeyAcceptedKeyTypes +syn keyword sshdconfigKeyword PubkeyAuthentication +syn keyword sshdconfigKeyword PubkeyAuthOptions +syn keyword sshdconfigKeyword RSAAuthentication +syn keyword sshdconfigKeyword RekeyLimit +syn keyword sshdconfigKeyword RequiredRSASize +syn keyword sshdconfigKeyword RevokedKeys +syn keyword sshdconfigKeyword RDomain +syn keyword sshdconfigKeyword RhostsRSAAuthentication +syn keyword sshdconfigKeyword SecurityKeyProvider +syn keyword sshdconfigKeyword ServerKeyBits +syn keyword sshdconfigKeyword SetEnv +syn keyword sshdconfigKeyword ShowPatchLevel +syn keyword sshdconfigKeyword StrictModes +syn keyword sshdconfigKeyword StreamLocalBindMask +syn keyword sshdconfigKeyword StreamLocalBindUnlink +syn keyword sshdconfigKeyword Subsystem +syn keyword sshdconfigKeyword SyslogFacility +syn keyword sshdconfigKeyword TCPKeepAlive +syn keyword sshdconfigKeyword TrustedUserCAKeys +syn keyword sshdconfigKeyword UseBlacklist +syn keyword sshdconfigKeyword UseBlocklist +syn keyword sshdconfigKeyword UseDNS +syn keyword sshdconfigKeyword UseLogin +syn keyword sshdconfigKeyword UsePAM +syn keyword sshdconfigKeyword VersionAddendum +syn keyword sshdconfigKeyword X11DisplayOffset +syn keyword sshdconfigKeyword X11Forwarding +syn keyword sshdconfigKeyword X11MaxDisplays +syn keyword sshdconfigKeyword X11UseLocalhost +syn keyword sshdconfigKeyword XAuthLocation + + +" Define the default highlighting + +hi def link sshdconfigComment Comment +hi def link sshdconfigTodo Todo +hi def link sshdconfigHostPort sshdconfigConstant +hi def link sshdconfigTime sshdconfigConstant +hi def link sshdconfigNumber sshdconfigConstant +hi def link sshdconfigConstant Constant +hi def link sshdconfigYesNo sshdconfigEnum +hi def link sshdconfigAddressFamily sshdconfigEnum +hi def link sshdconfigPrivilegeSeparation sshdconfigEnum +hi def link sshdconfigTcpForwarding sshdconfigEnum +hi def link sshdconfigRootLogin sshdconfigEnum +hi def link sshdconfigCiphers sshdconfigEnum +hi def link sshdconfigMAC sshdconfigEnum +hi def link sshdconfigHostKeyAlgo sshdconfigEnum +hi def link sshdconfigRootLogin sshdconfigEnum +hi def link sshdconfigLogLevel sshdconfigEnum +hi def link sshdconfigSysLogFacility sshdconfigEnum +hi def link sshdconfigVar sshdconfigEnum +hi def link sshdconfigCompression sshdconfigEnum +hi def link sshdconfigIPQoS sshdconfigEnum +hi def link sshdconfigKexAlgo sshdconfigEnum +hi def link sshdconfigTunnel sshdconfigEnum +hi def link sshdconfigSubsystem sshdconfigEnum +hi def link sshdconfigEnum Function +hi def link sshdconfigSpecial Special +hi def link sshdconfigKeyword Keyword +hi def link sshdconfigMatch Type + +let b:current_syntax = "sshdconfig" + +" vim:set ts=8 sw=2 sts=2: diff --git a/runtime/syntax/st.vim b/runtime/syntax/st.vim new file mode 100644 index 0000000..ffa7820 --- /dev/null +++ b/runtime/syntax/st.vim @@ -0,0 +1,95 @@ +" Vim syntax file +" Language: Smalltalk +" Maintainer: Arndt Hesse +" Last Change: 2012 Feb 12 by Thilo Six + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" some Smalltalk keywords and standard methods +syn keyword stKeyword super self class true false new not +syn keyword stKeyword notNil isNil inspect out nil +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" +syn match stMethod "\:" + +" the block of local variables of a method +syn region stLocalVariables start="^[ \t]*|" end="|" + +" the Smalltalk comment +syn region stComment start="\"" end="\"" + +" the Smalltalk strings and single characters +syn region stString start='\'' skip="''" end='\'' +syn match stCharacter "$." + +syn case ignore + +" the symbols prefixed by a '#' +syn match stSymbol "\(#\<[a-z_][a-z0-9_]*\>\)" +syn match stSymbol "\(#'[^']*'\)" + +" the variables in a statement block for loops +syn match stBlockVariable "\(:[ \t]*\<[a-z_][a-z0-9_]*\>[ \t]*\)\+|" contained + +" some representations of numbers +syn match stNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" +syn match stFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" +syn match stFloat "\<\d\+e[-+]\=\d\+[fl]\=\>" + +syn case match + +" a try to highlight paren mismatches +syn region stParen transparent start='(' end=')' contains=ALLBUT,stParenError +syn match stParenError ")" +syn region stBlock transparent start='\[' end='\]' contains=ALLBUT,stBlockError +syn match stBlockError "\]" +syn region stSet transparent start='{' end='}' contains=ALLBUT,stSetError +syn match stSetError "}" + +hi link stParenError stError +hi link stSetError stError +hi link stBlockError stError + +" synchronization for syntax analysis +syn sync minlines=50 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link stKeyword Statement +hi def link stMethod Statement +hi def link stComment Comment +hi def link stCharacter Constant +hi def link stString Constant +hi def link stSymbol Special +hi def link stNumber Type +hi def link stFloat Type +hi def link stError Error +hi def link stLocalVariables Identifier +hi def link stBlockVariable Identifier + + +let b:current_syntax = "st" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/stata.vim b/runtime/syntax/stata.vim new file mode 100644 index 0000000..29f5052 --- /dev/null +++ b/runtime/syntax/stata.vim @@ -0,0 +1,450 @@ +" stata.vim -- Vim syntax file for Stata do, ado, and class files. +" Language: Stata and/or Mata +" Maintainer: Jeff Pitblado +" Last Change: 26apr2006 +" Version: 1.1.4 + +" Log: +" 14apr2006 renamed syntax groups st* to stata* +" 'syntax clear' only under version control +" check for 'b:current_syntax', removed 'did_stata_syntax_inits' +" 17apr2006 fixed start expression for stataFunc +" 26apr2006 fixed brace confusion in stataErrInParen and stataErrInBracket +" fixed paren/bracket confusion in stataFuncGroup + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syntax case match + +" comments - single line +" note that the triple slash continuing line comment comes free +syn region stataStarComment start=/^\s*\*/ end=/$/ contains=stataComment oneline +syn region stataSlashComment start="\s//" end=/$/ contains=stataComment oneline +syn region stataSlashComment start="^//" end=/$/ contains=stataComment oneline +" comments - multiple line +syn region stataComment start="/\*" end="\*/" contains=stataComment + +" global macros - simple case +syn match stataGlobal /\$\a\w*/ +" global macros - general case +syn region stataGlobal start=/\${/ end=/}/ oneline contains=@stataMacroGroup +" local macros - general case +syn region stataLocal start=/`/ end=/'/ oneline contains=@stataMacroGroup + +" numeric formats +syn match stataFormat /%-\=\d\+\.\d\+[efg]c\=/ +" numeric hex format +syn match stataFormat /%-\=21x/ +" string format +syn match stataFormat /%\(\|-\|\~\)\d\+s/ + +" Statements +syn keyword stataConditional else if +syn keyword stataRepeat foreach +syn keyword stataRepeat forv[alues] +syn keyword stataRepeat while + +" Common programming commands +syn keyword stataCommand about +syn keyword stataCommand adopath +syn keyword stataCommand adoupdate +syn keyword stataCommand assert +syn keyword stataCommand break +syn keyword stataCommand by +syn keyword stataCommand cap[ture] +syn keyword stataCommand cd +syn keyword stataCommand chdir +syn keyword stataCommand checksum +syn keyword stataCommand class +syn keyword stataCommand classutil +syn keyword stataCommand compress +syn keyword stataCommand conf[irm] +syn keyword stataCommand conren +syn keyword stataCommand continue +syn keyword stataCommand cou[nt] +syn keyword stataCommand cscript +syn keyword stataCommand cscript_log +syn keyword stataCommand #delimit +syn keyword stataCommand d[escribe] +syn keyword stataCommand dir +syn keyword stataCommand discard +syn keyword stataCommand di[splay] +syn keyword stataCommand do +syn keyword stataCommand doedit +syn keyword stataCommand drop +syn keyword stataCommand edit +syn keyword stataCommand end +syn keyword stataCommand erase +syn keyword stataCommand eret[urn] +syn keyword stataCommand err[or] +syn keyword stataCommand e[xit] +syn keyword stataCommand expand +syn keyword stataCommand expandcl +syn keyword stataCommand file +syn keyword stataCommand findfile +syn keyword stataCommand format +syn keyword stataCommand g[enerate] +syn keyword stataCommand gettoken +syn keyword stataCommand gl[obal] +syn keyword stataCommand help +syn keyword stataCommand hexdump +syn keyword stataCommand include +syn keyword stataCommand infile +syn keyword stataCommand infix +syn keyword stataCommand input +syn keyword stataCommand insheet +syn keyword stataCommand joinby +syn keyword stataCommand la[bel] +syn keyword stataCommand levelsof +syn keyword stataCommand list +syn keyword stataCommand loc[al] +syn keyword stataCommand log +syn keyword stataCommand ma[cro] +syn keyword stataCommand mark +syn keyword stataCommand markout +syn keyword stataCommand marksample +syn keyword stataCommand mata +syn keyword stataCommand matrix +syn keyword stataCommand memory +syn keyword stataCommand merge +syn keyword stataCommand mkdir +syn keyword stataCommand more +syn keyword stataCommand net +syn keyword stataCommand nobreak +syn keyword stataCommand n[oisily] +syn keyword stataCommand note[s] +syn keyword stataCommand numlist +syn keyword stataCommand outfile +syn keyword stataCommand outsheet +syn keyword stataCommand _parse +syn keyword stataCommand pause +syn keyword stataCommand plugin +syn keyword stataCommand post +syn keyword stataCommand postclose +syn keyword stataCommand postfile +syn keyword stataCommand preserve +syn keyword stataCommand print +syn keyword stataCommand printer +syn keyword stataCommand profiler +syn keyword stataCommand pr[ogram] +syn keyword stataCommand q[uery] +syn keyword stataCommand qui[etly] +syn keyword stataCommand rcof +syn keyword stataCommand reg[ress] +syn keyword stataCommand rename +syn keyword stataCommand repeat +syn keyword stataCommand replace +syn keyword stataCommand reshape +syn keyword stataCommand ret[urn] +syn keyword stataCommand _rmcoll +syn keyword stataCommand _rmcoll +syn keyword stataCommand _rmcollright +syn keyword stataCommand rmdir +syn keyword stataCommand _robust +syn keyword stataCommand save +syn keyword stataCommand sca[lar] +syn keyword stataCommand search +syn keyword stataCommand serset +syn keyword stataCommand set +syn keyword stataCommand shell +syn keyword stataCommand sleep +syn keyword stataCommand sort +syn keyword stataCommand split +syn keyword stataCommand sret[urn] +syn keyword stataCommand ssc +syn keyword stataCommand su[mmarize] +syn keyword stataCommand syntax +syn keyword stataCommand sysdescribe +syn keyword stataCommand sysdir +syn keyword stataCommand sysuse +syn keyword stataCommand token[ize] +syn keyword stataCommand translate +syn keyword stataCommand type +syn keyword stataCommand unab +syn keyword stataCommand unabcmd +syn keyword stataCommand update +syn keyword stataCommand use +syn keyword stataCommand vers[ion] +syn keyword stataCommand view +syn keyword stataCommand viewsource +syn keyword stataCommand webdescribe +syn keyword stataCommand webseek +syn keyword stataCommand webuse +syn keyword stataCommand which +syn keyword stataCommand who +syn keyword stataCommand window + +" Literals +syn match stataQuote /"/ +syn region stataEString matchgroup=Nothing start=/`"/ end=/"'/ oneline contains=@stataMacroGroup,stataQuote,stataString,stataEString +syn region stataString matchgroup=Nothing start=/"/ end=/"/ oneline contains=@stataMacroGroup + +" define clusters +syn cluster stataFuncGroup contains=@stataMacroGroup,stataFunc,stataString,stataEstring,stataParen,stataBracket +syn cluster stataMacroGroup contains=stataGlobal,stataLocal +syn cluster stataParenGroup contains=stataParenError,stataBracketError,stataBraceError,stataSpecial,stataFormat + +" Stata functions +" Math +syn region stataFunc matchgroup=Function start=/\" + +" Conditional. +syn keyword stpConditional if else elseif then +syn match stpConditional "\" + +" Repeats. +syn keyword stpRepeat for while loop +syn match stpRepeat "\" + +" Operators. +syn keyword stpOperator asc not and or desc group having in is any some all +syn keyword stpOperator between exists like escape with union intersect minus +syn keyword stpOperator out prior distinct sysdate + +" Statements. +syn keyword stpStatement alter analyze as audit avg by close clustered comment +syn keyword stpStatement commit continue count create cursor declare delete +syn keyword stpStatement drop exec execute explain fetch from index insert +syn keyword stpStatement into lock max min next noaudit nonclustered open +syn keyword stpStatement order output print raiserror recompile rename revoke +syn keyword stpStatement rollback savepoint select set sum transaction +syn keyword stpStatement truncate unique update values where + +" Functions. +syn keyword stpFunction abs acos ascii asin atan atn2 avg ceiling charindex +syn keyword stpFunction charlength convert col_name col_length cos cot count +syn keyword stpFunction curunreservedpgs datapgs datalength dateadd datediff +syn keyword stpFunction datename datepart db_id db_name degree difference +syn keyword stpFunction exp floor getdate hextoint host_id host_name index_col +syn keyword stpFunction inttohex isnull lct_admin log log10 lower ltrim max +syn keyword stpFunction min now object_id object_name patindex pi pos power +syn keyword stpFunction proc_role radians rand replace replicate reserved_pgs +syn keyword stpFunction reverse right rtrim rowcnt round show_role sign sin +syn keyword stpFunction soundex space sqrt str stuff substr substring sum +syn keyword stpFunction suser_id suser_name tan tsequal upper used_pgs user +syn keyword stpFunction user_id user_name valid_name valid_user message + +" Types. +syn keyword stpType binary bit char datetime decimal double float image +syn keyword stpType int integer long money nchar numeric precision real +syn keyword stpType smalldatetime smallint smallmoney text time tinyint +syn keyword stpType timestamp varbinary varchar + +" Globals. +syn match stpGlobals '@@char_convert' +syn match stpGlobals '@@cient_csname' +syn match stpGlobals '@@client_csid' +syn match stpGlobals '@@connections' +syn match stpGlobals '@@cpu_busy' +syn match stpGlobals '@@error' +syn match stpGlobals '@@identity' +syn match stpGlobals '@@idle' +syn match stpGlobals '@@io_busy' +syn match stpGlobals '@@isolation' +syn match stpGlobals '@@langid' +syn match stpGlobals '@@language' +syn match stpGlobals '@@max_connections' +syn match stpGlobals '@@maxcharlen' +syn match stpGlobals '@@ncharsize' +syn match stpGlobals '@@nestlevel' +syn match stpGlobals '@@pack_received' +syn match stpGlobals '@@pack_sent' +syn match stpGlobals '@@packet_errors' +syn match stpGlobals '@@procid' +syn match stpGlobals '@@rowcount' +syn match stpGlobals '@@servername' +syn match stpGlobals '@@spid' +syn match stpGlobals '@@sqlstatus' +syn match stpGlobals '@@testts' +syn match stpGlobals '@@textcolid' +syn match stpGlobals '@@textdbid' +syn match stpGlobals '@@textobjid' +syn match stpGlobals '@@textptr' +syn match stpGlobals '@@textsize' +syn match stpGlobals '@@thresh_hysteresis' +syn match stpGlobals '@@timeticks' +syn match stpGlobals '@@total_error' +syn match stpGlobals '@@total_read' +syn match stpGlobals '@@total_write' +syn match stpGlobals '@@tranchained' +syn match stpGlobals '@@trancount' +syn match stpGlobals '@@transtate' +syn match stpGlobals '@@version' + +" Todos. +syn keyword stpTodo TODO FIXME XXX DEBUG NOTE + +" Strings and characters. +syn match stpStringError "'.*$" +syn match stpString "'\([^']\|''\)*'" + +" Numbers. +syn match stpNumber "-\=\<\d*\.\=[0-9_]\>" + +" Comments. +syn region stpComment start="/\*" end="\*/" contains=stpTodo +syn match stpComment "--.*" contains=stpTodo +syn sync ccomment stpComment + +" Parens. +syn region stpParen transparent start='(' end=')' contains=ALLBUT,stpParenError +syn match stpParenError ")" + +" Syntax Synchronizing. +syn sync minlines=10 maxlines=100 + +" Define the default highlighting. +" Only when and item doesn't have highlighting yet. + +hi def link stpConditional Conditional +hi def link stpComment Comment +hi def link stpKeyword Keyword +hi def link stpNumber Number +hi def link stpOperator Operator +hi def link stpSpecial Special +hi def link stpStatement Statement +hi def link stpString String +hi def link stpStringError Error +hi def link stpType Type +hi def link stpTodo Todo +hi def link stpFunction Function +hi def link stpGlobals Macro +hi def link stpParen Normal +hi def link stpParenError Error +hi def link stpSQLKeyword Function +hi def link stpRepeat Repeat + + +let b:current_syntax = "stp" + +" vim ts=8 sw=2 diff --git a/runtime/syntax/strace.vim b/runtime/syntax/strace.vim new file mode 100644 index 0000000..20516a1 --- /dev/null +++ b/runtime/syntax/strace.vim @@ -0,0 +1,52 @@ +" Vim syntax file +" Language: strace output +" Maintainer: David Necas (Yeti) +" Last Change: 2022 Jan 29 + +" Setup +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn case match + +" Parse the line +syn match straceSpecialChar "\\\o\{1,3}\|\\." contained +syn region straceString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=straceSpecialChar oneline +syn match straceNumber "\W[+-]\=\(\d\+\)\=\.\=\d\+\([eE][+-]\=\d\+\)\="lc=1 +syn match straceNumber "\W0x\x\+"lc=1 +syn match straceNumberRHS "\W\(0x\x\+\|-\=\d\+\)"lc=1 contained +syn match straceOtherRHS "?" contained +syn match straceConstant "[A-Z_]\{2,}" +syn region straceVerbosed start="(" end=")" matchgroup=Normal contained oneline +syn region straceReturned start="\s=\s" end="$" contains=StraceEquals,straceNumberRHS,straceOtherRHS,straceConstant,straceVerbosed oneline transparent +syn match straceEquals "\s=\s"ms=s+1,me=e-1 +syn match straceParenthesis "[][(){}]" +syn match straceSysCall "^\w\+" +syn match straceOtherPID "^\[[^]]*\]" contains=stracePID,straceNumber nextgroup=straceSysCallEmbed skipwhite +syn match straceSysCallEmbed "\w\+" contained +syn keyword stracePID pid contained +syn match straceOperator "[-+=*/!%&|:,]" +syn region straceComment start="/\*" end="\*/" oneline + +" Define the default highlighting + +hi def link straceComment Comment +hi def link straceVerbosed Comment +hi def link stracePID PreProc +hi def link straceNumber Number +hi def link straceNumberRHS Type +hi def link straceOtherRHS Type +hi def link straceString String +hi def link straceConstant Function +hi def link straceEquals Type +hi def link straceSysCallEmbed straceSysCall +hi def link straceSysCall Statement +hi def link straceParenthesis Statement +hi def link straceOperator Normal +hi def link straceSpecialChar Special +hi def link straceOtherPID PreProc + + +let b:current_syntax = "strace" diff --git a/runtime/syntax/structurizr.vim b/runtime/syntax/structurizr.vim new file mode 100644 index 0000000..363ee70 --- /dev/null +++ b/runtime/syntax/structurizr.vim @@ -0,0 +1,84 @@ +" Vim syntax file +" Language: Structurizr DSL +" Maintainer: Bastian Venthur +" Last Change: 2022-05-22 +" Remark: For a language reference, see +" https://github.com/structurizr/dsl + + +if exists("b:current_syntax") + finish +endif + +syn case ignore + +" comments +syn match scomment "#.*$" +syn match scomment "//.*$" +syn region scomment start="/\*" end="\*/" + +" keywords +syn keyword skeyword animation +syn keyword skeyword autoLayout +syn keyword skeyword branding +syn keyword skeyword component +syn keyword skeyword configuration +syn keyword skeyword container +syn keyword skeyword containerinstance +syn keyword skeyword custom +syn keyword skeyword default +syn keyword skeyword deployment +syn keyword skeyword deploymentenvironment +syn keyword skeyword deploymentgroup +syn keyword skeyword deploymentnode +syn keyword skeyword description +syn keyword skeyword dynamic +syn keyword skeyword element +syn keyword skeyword enterprise +syn keyword skeyword exclude +syn keyword skeyword filtered +syn keyword skeyword group +syn keyword skeyword healthcheck +syn keyword skeyword include +syn keyword skeyword infrastructurenode +syn keyword skeyword instances +syn keyword skeyword model +syn keyword skeyword person +syn keyword skeyword perspectives +syn keyword skeyword properties +syn keyword skeyword relationship +syn keyword skeyword softwaresystem +syn keyword skeyword softwaresysteminstance +syn keyword skeyword styles +syn keyword skeyword systemcontext +syn keyword skeyword systemlandscape +syn keyword skeyword tags +syn keyword skeyword technology +syn keyword skeyword terminology +syn keyword skeyword theme +syn keyword skeyword themes +syn keyword skeyword title +syn keyword skeyword url +syn keyword skeyword users +syn keyword skeyword views +syn keyword skeyword workspace + +syn match skeyword "\!adrs\s\+" +syn match skeyword "\!constant\s\+" +syn match skeyword "\!docs\s\+" +syn match skeyword "\!identifiers\s\+" +syn match skeyword "\!impliedrelationships\s\+" +syn match skeyword "\!include\s\+" +syn match skeyword "\!plugin\s\+" +syn match skeyword "\!ref\s\+" +syn match skeyword "\!script\s\+" + +syn region sstring oneline start='"' end='"' + +syn region sblock start='{' end='}' fold transparent + +hi def link sstring string +hi def link scomment comment +hi def link skeyword keyword + +let b:current_syntax = "structurizr" diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim new file mode 100644 index 0000000..bf2d337 --- /dev/null +++ b/runtime/syntax/sudoers.vim @@ -0,0 +1,390 @@ +" Vim syntax file +" Language: sudoers(5) configuration files +" Maintainer: Eisuke Kawashima ( e.kawaschima+vim AT gmail.com ) +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2021 Mar 15 +" Recent Changes: Support for #include and #includedir. +" Added many new options (Samuel D. Leslie) + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" TODO: instead of 'skipnl', we would like to match a specific group that would +" match \\$ and then continue with the nextgroup, actually, the skipnl doesn't +" work... +" TODO: treat 'ALL' like a special (yay, a bundle of new rules!!!) + +syn match sudoersUserSpec '^' nextgroup=@sudoersUserInSpec skipwhite + +syn match sudoersSpecEquals contained '=' nextgroup=@sudoersCmndSpecList skipwhite + +syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersPASSWD,@sudoersCmndInSpec + +syn keyword sudoersTodo contained TODO FIXME XXX NOTE + +syn region sudoersComment display oneline start='#' end='$' contains=sudoersTodo +syn region sudoersInclude display oneline start='[#@]\%(include\|includedir\)\>' end='$' + +syn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl +syn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl +syn keyword sudoersAlias Cmnd_Alias nextgroup=sudoersCmndAlias skipwhite skipnl + +syn match sudoersUserAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersUserAliasEquals skipwhite skipnl +syn match sudoersUserNameInList contained '\<\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl +syn match sudoersUIDInList contained '#\d\+\>' nextgroup=@sudoersUserList skipwhite skipnl +syn match sudoersGroupInList contained '%\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl +syn match sudoersUserNetgroupInList contained '+\l\+\>' nextgroup=@sudoersUserList skipwhite skipnl +syn match sudoersUserAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserList skipwhite skipnl + +syn match sudoersUserName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersUID contained '#\d\+\>' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersGroup contained '%\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersUserNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersUserAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl + +syn match sudoersUserNameInSpec contained '\<\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl +syn match sudoersUIDInSpec contained '#\d\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl +syn match sudoersGroupInSpec contained '%\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl +syn match sudoersUserNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersUserSpec skipwhite skipnl +syn match sudoersUserAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserSpec skipwhite skipnl + +syn match sudoersUserNameInRunas contained '\<\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl +syn match sudoersUIDInRunas contained '#\d\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl +syn match sudoersGroupInRunas contained '%\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl +syn match sudoersUserNetgroupInRunas contained '+\l\+\>' nextgroup=@sudoersUserRunas skipwhite skipnl +syn match sudoersUserAliasInRunas contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersUserRunas skipwhite skipnl + +syn match sudoersHostAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersHostAliasEquals skipwhite skipnl +syn match sudoersHostNameInList contained '\<\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl +syn match sudoersIPAddrInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostList skipwhite skipnl +syn match sudoersNetworkInList contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostList skipwhite skipnl +syn match sudoersHostNetgroupInList contained '+\l\+\>' nextgroup=@sudoersHostList skipwhite skipnl +syn match sudoersHostAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostList skipwhite skipnl + +syn match sudoersHostName contained '\<\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersIPAddr contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersNetwork contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersHostNetgroup contained '+\l\+\>' nextgroup=@sudoersParameter skipwhite skipnl +syn match sudoersHostAliasRef contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersParameter skipwhite skipnl + +syn match sudoersHostNameInSpec contained '\<\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl +syn match sudoersIPAddrInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}' nextgroup=@sudoersHostSpec skipwhite skipnl +syn match sudoersNetworkInSpec contained '\%(\d\{1,3}\.\)\{3}\d\{1,3}\%(/\%(\%(\d\{1,3}\.\)\{3}\d\{1,3}\|\d\+\)\)\=' nextgroup=@sudoersHostSpec skipwhite skipnl +syn match sudoersHostNetgroupInSpec contained '+\l\+\>' nextgroup=@sudoersHostSpec skipwhite skipnl +syn match sudoersHostAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersHostSpec skipwhite skipnl + +syn match sudoersCmndAlias contained '\<\u[A-Z0-9_]*\>' nextgroup=sudoersCmndAliasEquals skipwhite skipnl +syn match sudoersCmndNameInList contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndList,sudoersCommandEmpty,sudoersCommandArgs skipwhite +syn match sudoersCmndAliasInList contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndList skipwhite skipnl + +syn match sudoersCmndNameInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=@sudoersCmndSpec,sudoersCommandEmptyInSpec,sudoersCommandArgsInSpec skipwhite +syn match sudoersCmndAliasInSpec contained '\<\u[A-Z0-9_]*\>' nextgroup=@sudoersCmndSpec skipwhite skipnl + +syn match sudoersUserAliasEquals contained '=' nextgroup=@sudoersUserInList skipwhite skipnl +syn match sudoersUserListComma contained ',' nextgroup=@sudoersUserInList skipwhite skipnl +syn match sudoersUserListColon contained ':' nextgroup=sudoersUserAlias skipwhite skipnl +syn cluster sudoersUserList contains=sudoersUserListComma,sudoersUserListColon + +syn match sudoersUserSpecComma contained ',' nextgroup=@sudoersUserInSpec skipwhite skipnl +syn cluster sudoersUserSpec contains=sudoersUserSpecComma,@sudoersHostInSpec + +syn match sudoersUserRunasBegin contained '(' nextgroup=@sudoersUserInRunas skipwhite skipnl +syn match sudoersUserRunasComma contained ',' nextgroup=@sudoersUserInRunas skipwhite skipnl +syn match sudoersUserRunasEnd contained ')' nextgroup=sudoersPASSWD,@sudoersCmndInSpec skipwhite skipnl +syn cluster sudoersUserRunas contains=sudoersUserRunasComma,@sudoersUserInRunas,sudoersUserRunasEnd + + +syn match sudoersHostAliasEquals contained '=' nextgroup=@sudoersHostInList skipwhite skipnl +syn match sudoersHostListComma contained ',' nextgroup=@sudoersHostInList skipwhite skipnl +syn match sudoersHostListColon contained ':' nextgroup=sudoersHostAlias skipwhite skipnl +syn cluster sudoersHostList contains=sudoersHostListComma,sudoersHostListColon + +syn match sudoersHostSpecComma contained ',' nextgroup=@sudoersHostInSpec skipwhite skipnl +syn cluster sudoersHostSpec contains=sudoersHostSpecComma,sudoersSpecEquals + + +syn match sudoersCmndAliasEquals contained '=' nextgroup=@sudoersCmndInList skipwhite skipnl +syn match sudoersCmndListComma contained ',' nextgroup=@sudoersCmndInList skipwhite skipnl +syn match sudoersCmndListColon contained ':' nextgroup=sudoersCmndAlias skipwhite skipnl +syn cluster sudoersCmndList contains=sudoersCmndListComma,sudoersCmndListColon + +syn match sudoersCmndSpecComma contained ',' nextgroup=@sudoersCmndSpecList skipwhite skipnl +syn match sudoersCmndSpecColon contained ':' nextgroup=@sudoersUserInSpec skipwhite skipnl +syn cluster sudoersCmndSpec contains=sudoersCmndSpecComma,sudoersCmndSpecColon + +syn cluster sudoersUserInList contains=sudoersUserNegationInList,sudoersUserNameInList,sudoersUIDInList,sudoersGroupInList,sudoersUserNetgroupInList,sudoersUserAliasInList +syn cluster sudoersHostInList contains=sudoersHostNegationInList,sudoersHostNameInList,sudoersIPAddrInList,sudoersNetworkInList,sudoersHostNetgroupInList,sudoersHostAliasInList +syn cluster sudoersCmndInList contains=sudoersCmndNegationInList,sudoersCmndNameInList,sudoersCmndAliasInList + +syn cluster sudoersUser contains=sudoersUserNegation,sudoersUserName,sudoersUID,sudoersGroup,sudoersUserNetgroup,sudoersUserAliasRef +syn cluster sudoersHost contains=sudoersHostNegation,sudoersHostName,sudoersIPAddr,sudoersNetwork,sudoersHostNetgroup,sudoersHostAliasRef + +syn cluster sudoersUserInSpec contains=sudoersUserNegationInSpec,sudoersUserNameInSpec,sudoersUIDInSpec,sudoersGroupInSpec,sudoersUserNetgroupInSpec,sudoersUserAliasInSpec +syn cluster sudoersHostInSpec contains=sudoersHostNegationInSpec,sudoersHostNameInSpec,sudoersIPAddrInSpec,sudoersNetworkInSpec,sudoersHostNetgroupInSpec,sudoersHostAliasInSpec +syn cluster sudoersUserInRunas contains=sudoersUserNegationInRunas,sudoersUserNameInRunas,sudoersUIDInRunas,sudoersGroupInRunas,sudoersUserNetgroupInRunas,sudoersUserAliasInRunas +syn cluster sudoersCmndInSpec contains=sudoersCmndNegationInSpec,sudoersCmndNameInSpec,sudoersCmndAliasInSpec + +syn match sudoersUserNegationInList contained '!\+' nextgroup=@sudoersUserInList skipwhite skipnl +syn match sudoersHostNegationInList contained '!\+' nextgroup=@sudoersHostInList skipwhite skipnl +syn match sudoersCmndNegationInList contained '!\+' nextgroup=@sudoersCmndInList skipwhite skipnl + +syn match sudoersUserNegation contained '!\+' nextgroup=@sudoersUser skipwhite skipnl +syn match sudoersHostNegation contained '!\+' nextgroup=@sudoersHost skipwhite skipnl + +syn match sudoersUserNegationInSpec contained '!\+' nextgroup=@sudoersUserInSpec skipwhite skipnl +syn match sudoersHostNegationInSpec contained '!\+' nextgroup=@sudoersHostInSpec skipwhite skipnl +syn match sudoersUserNegationInRunas contained '!\+' nextgroup=@sudoersUserInRunas skipwhite skipnl +syn match sudoersCmndNegationInSpec contained '!\+' nextgroup=@sudoersCmndInSpec skipwhite skipnl + +syn match sudoersCommandArgs contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgs,@sudoersCmndList skipwhite +syn match sudoersCommandEmpty contained '""' nextgroup=@sudoersCmndList skipwhite skipnl + +syn match sudoersCommandArgsInSpec contained '[^[:space:],:=\\]\+\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersCommandArgsInSpec,@sudoersCmndSpec skipwhite +syn match sudoersCommandEmptyInSpec contained '""' nextgroup=@sudoersCmndSpec skipwhite skipnl + +syn keyword sudoersDefaultEntry Defaults nextgroup=sudoersDefaultTypeAt,sudoersDefaultTypeColon,sudoersDefaultTypeGreaterThan,@sudoersParameter skipwhite skipnl +syn match sudoersDefaultTypeAt contained '@' nextgroup=@sudoersHost skipwhite skipnl +syn match sudoersDefaultTypeColon contained ':' nextgroup=@sudoersUser skipwhite skipnl +syn match sudoersDefaultTypeGreaterThan contained '>' nextgroup=@sudoersUser skipwhite skipnl + +" TODO: could also deal with special characters here +syn match sudoersBooleanParameter contained '!' nextgroup=sudoersBooleanParameter skipwhite skipnl +syn keyword sudoersBooleanParameter contained skipwhite skipnl + \ always_query_group_plugin + \ always_set_home + \ authenticate + \ closefrom_override + \ compress_io + \ env_editor + \ env_reset + \ exec_background + \ fast_glob + \ fqdn + \ ignore_audit_errors + \ ignore_dot + \ ignore_iolog_errors + \ ignore_local_sudoers + \ ignore_logfile_errors + \ ignore_unknown_defaults + \ insults + \ log_host + \ log_input + \ log_output + \ log_year + \ long_otp_prompt + \ mail_all_cmnds + \ mail_always + \ mail_badpass + \ mail_no_host + \ mail_no_perms + \ mail_no_user + \ match_group_by_gid + \ netgroup_tuple + \ noexec + \ pam_session + \ pam_setcred + \ passprompt_override + \ path_info + \ preserve_groups + \ pwfeedback + \ requiretty + \ root_sudo + \ rootpw + \ runaspw + \ set_home + \ set_logname + \ set_utmp + \ setenv + \ shell_noargs + \ stay_setuid + \ sudoedit_checkdir + \ sudoedit_follow + \ syslog_pid + \ targetpw + \ tty_tickets + \ umask_override + \ use_netgroups + \ use_pty + \ user_command_timeouts + \ utmp_runas + \ visiblepw + +syn keyword sudoersIntegerParameter contained + \ nextgroup=sudoersIntegerParameterEquals + \ skipwhite skipnl + \ closefrom + \ command_timeout + \ loglinelen + \ maxseq + \ passwd_timeout + \ passwd_tries + \ syslog_maxlen + \ timestamp_timeout + \ umask + +syn keyword sudoersStringParameter contained + \ nextgroup=sudoersStringParameterEquals + \ skipwhite skipnl + \ askpass + \ badpass_message + \ editor + \ env_file + \ exempt_group + \ fdexec + \ group_plugin + \ iolog_dir + \ iolog_file + \ iolog_flush + \ iolog_group + \ iolog_mode + \ iolog_user + \ lecture + \ lecture_file + \ lecture_status_dir + \ listpw + \ logfile + \ mailerflags + \ mailerpath + \ mailfrom + \ mailsub + \ mailto + \ noexec_file + \ pam_login_service + \ pam_service + \ passprompt + \ restricted_env_file + \ role + \ runas_default + \ secure_path + \ sudoers_locale + \ syslog + \ syslog_badpri + \ syslog_goodpri + \ timestamp_type + \ timestampdir + \ timestampowner + \ type + \ verifypw + +syn keyword sudoersListParameter contained + \ nextgroup=sudoersListParameterEquals + \ skipwhite skipnl + \ env_check + \ env_delete + \ env_keep + +syn match sudoersParameterListComma contained ',' nextgroup=@sudoersParameter skipwhite skipnl + +syn cluster sudoersParameter contains=sudoersBooleanParameter,sudoersIntegerParameter,sudoersStringParameter,sudoersListParameter + +syn match sudoersIntegerParameterEquals contained '[+-]\==' nextgroup=sudoersIntegerValue skipwhite skipnl +syn match sudoersStringParameterEquals contained '[+-]\==' nextgroup=sudoersStringValue skipwhite skipnl +syn match sudoersListParameterEquals contained '[+-]\==' nextgroup=sudoersListValue skipwhite skipnl + +syn match sudoersIntegerValue contained '\d\+' nextgroup=sudoersParameterListComma skipwhite skipnl +syn match sudoersStringValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl +syn region sudoersStringValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl +syn match sudoersListValue contained '[^[:space:],:=\\]*\%(\\[[:space:],:=\\][^[:space:],:=\\]*\)*' nextgroup=sudoersParameterListComma skipwhite skipnl +syn region sudoersListValue contained start=+"+ skip=+\\"+ end=+"+ nextgroup=sudoersParameterListComma skipwhite skipnl + +syn match sudoersPASSWD contained '\%(NO\)\=PASSWD:' nextgroup=@sudoersCmndInSpec skipwhite + +hi def link sudoersSpecEquals Operator +hi def link sudoersTodo Todo +hi def link sudoersComment Comment +hi def link sudoersAlias Keyword +hi def link sudoersUserAlias Identifier +hi def link sudoersUserNameInList String +hi def link sudoersUIDInList Number +hi def link sudoersGroupInList PreProc +hi def link sudoersUserNetgroupInList PreProc +hi def link sudoersUserAliasInList PreProc +hi def link sudoersUserName String +hi def link sudoersUID Number +hi def link sudoersGroup PreProc +hi def link sudoersUserNetgroup PreProc +hi def link sudoersUserAliasRef PreProc +hi def link sudoersUserNameInSpec String +hi def link sudoersUIDInSpec Number +hi def link sudoersGroupInSpec PreProc +hi def link sudoersUserNetgroupInSpec PreProc +hi def link sudoersUserAliasInSpec PreProc +hi def link sudoersUserNameInRunas String +hi def link sudoersUIDInRunas Number +hi def link sudoersGroupInRunas PreProc +hi def link sudoersUserNetgroupInRunas PreProc +hi def link sudoersUserAliasInRunas PreProc +hi def link sudoersHostAlias Identifier +hi def link sudoersHostNameInList String +hi def link sudoersIPAddrInList Number +hi def link sudoersNetworkInList Number +hi def link sudoersHostNetgroupInList PreProc +hi def link sudoersHostAliasInList PreProc +hi def link sudoersHostName String +hi def link sudoersIPAddr Number +hi def link sudoersNetwork Number +hi def link sudoersHostNetgroup PreProc +hi def link sudoersHostAliasRef PreProc +hi def link sudoersHostNameInSpec String +hi def link sudoersIPAddrInSpec Number +hi def link sudoersNetworkInSpec Number +hi def link sudoersHostNetgroupInSpec PreProc +hi def link sudoersHostAliasInSpec PreProc +hi def link sudoersCmndAlias Identifier +hi def link sudoersCmndNameInList String +hi def link sudoersCmndAliasInList PreProc +hi def link sudoersCmndNameInSpec String +hi def link sudoersCmndAliasInSpec PreProc +hi def link sudoersUserAliasEquals Operator +hi def link sudoersUserListComma Delimiter +hi def link sudoersUserListColon Delimiter +hi def link sudoersUserSpecComma Delimiter +hi def link sudoersUserRunasBegin Delimiter +hi def link sudoersUserRunasComma Delimiter +hi def link sudoersUserRunasEnd Delimiter +hi def link sudoersHostAliasEquals Operator +hi def link sudoersHostListComma Delimiter +hi def link sudoersHostListColon Delimiter +hi def link sudoersHostSpecComma Delimiter +hi def link sudoersCmndAliasEquals Operator +hi def link sudoersCmndListComma Delimiter +hi def link sudoersCmndListColon Delimiter +hi def link sudoersCmndSpecComma Delimiter +hi def link sudoersCmndSpecColon Delimiter +hi def link sudoersUserNegationInList Operator +hi def link sudoersHostNegationInList Operator +hi def link sudoersCmndNegationInList Operator +hi def link sudoersUserNegation Operator +hi def link sudoersHostNegation Operator +hi def link sudoersUserNegationInSpec Operator +hi def link sudoersHostNegationInSpec Operator +hi def link sudoersUserNegationInRunas Operator +hi def link sudoersCmndNegationInSpec Operator +hi def link sudoersCommandArgs String +hi def link sudoersCommandEmpty Special +hi def link sudoersDefaultEntry Keyword +hi def link sudoersDefaultTypeAt Special +hi def link sudoersDefaultTypeColon Special +hi def link sudoersDefaultTypeGreaterThan Special +hi def link sudoersBooleanParameter Identifier +hi def link sudoersIntegerParameter Identifier +hi def link sudoersStringParameter Identifier +hi def link sudoersListParameter Identifier +hi def link sudoersParameterListComma Delimiter +hi def link sudoersIntegerParameterEquals Operator +hi def link sudoersStringParameterEquals Operator +hi def link sudoersListParameterEquals Operator +hi def link sudoersIntegerValue Number +hi def link sudoersStringValue String +hi def link sudoersListValue String +hi def link sudoersPASSWD Special +hi def link sudoersInclude Statement + +let b:current_syntax = "sudoers" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/svg.vim b/runtime/syntax/svg.vim new file mode 100644 index 0000000..819b5ec --- /dev/null +++ b/runtime/syntax/svg.vim @@ -0,0 +1,15 @@ +" Vim syntax file +" Language: SVG (Scalable Vector Graphics) +" Maintainer: Vincent Berthoux +" File Types: .svg (used in Web and vector programs) +" +" Directly call the xml syntax, because SVG is an XML +" dialect. But as some plugins base their effect on filetype, +" providing a distinct filetype from xml is better. + +if exists("b:current_syntax") + finish +endif + +runtime! syntax/xml.vim +let b:current_syntax = "svg" diff --git a/runtime/syntax/svn.vim b/runtime/syntax/svn.vim new file mode 100644 index 0000000..6239790 --- /dev/null +++ b/runtime/syntax/svn.vim @@ -0,0 +1,56 @@ +" Vim syntax file +" Language: Subversion (svn) commit file +" Maintainer: Dmitry Vasiliev +" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/svn.vim +" Last Change: 2013-11-08 +" Filenames: svn-commit*.tmp +" Version: 1.10 + +" Contributors: +" +" List of the contributors in alphabetical order: +" +" A. S. Budden +" Ingo Karkat +" Myk Taylor +" Stefano Zacchiroli + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif + +syn spell toplevel + +syn match svnFirstLine "\%^.*" nextgroup=svnRegion,svnBlank skipnl +syn match svnSummary "^.\{0,50\}" contained containedin=svnFirstLine nextgroup=svnOverflow contains=@Spell +syn match svnOverflow ".*" contained contains=@Spell +syn match svnBlank "^.*" contained contains=@Spell + +syn region svnRegion end="\%$" matchgroup=svnDelimiter start="^--.*--$" contains=svnRemoved,svnRenamed,svnAdded,svnModified,svnProperty,@NoSpell +syn match svnRemoved "^D .*$" contained contains=@NoSpell +syn match svnRenamed "^R[ M][ U][ +] .*$" contained contains=@NoSpell +syn match svnAdded "^A[ M][ U][ +] .*$" contained contains=@NoSpell +syn match svnModified "^M[ M][ U] .*$" contained contains=@NoSpell +syn match svnProperty "^_M[ U] .*$" contained contains=@NoSpell + +" Synchronization. +syn sync clear +syn sync match svnSync grouphere svnRegion "^--.*--$"me=s-1 + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet. + +hi def link svnSummary Keyword +hi def link svnBlank Error + +hi def link svnRegion Comment +hi def link svnDelimiter NonText +hi def link svnRemoved Constant +hi def link svnAdded Identifier +hi def link svnModified Special +hi def link svnProperty Special +hi def link svnRenamed Special + + +let b:current_syntax = "svn" diff --git a/runtime/syntax/swayconfig.vim b/runtime/syntax/swayconfig.vim new file mode 100644 index 0000000..7b1c889 --- /dev/null +++ b/runtime/syntax/swayconfig.vim @@ -0,0 +1,150 @@ +" Vim syntax file +" Language: sway config file +" Original Author: Josef Litos (JosefLitos/i3config.vim) +" Maintainer: James Eapen +" Version: 1.0.0 +" Last Change: 2023-09-14 + +" References: +" http://i3wm.org/docs/userguide.html#configuring +" https://github.com/swaywm/sway/blob/b69d637f7a34e239e48a4267ae94a5e7087b5834/sway/sway.5.scd +" http://vimdoc.sourceforge.net/htmldoc/syntax.html +" +" +" Quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +runtime! syntax/i3config.vim + +" i3 extensions +syn keyword i3ConfigActionKeyword opacity urgent shortcuts_inhibitor splitv splith splitt contained +syn keyword i3ConfigOption set plus minus allow deny csd v h t contained + +syn keyword i3ConfigConditionProp app_id pid shell contained + +syn keyword i3ConfigWorkspaceDir prev_on_output next_on_output contained + +syn keyword swayConfigBindKeyword bindswitch bindgesture contained +syn match i3ConfigBindArgument /--\(locked\|to-code\|no-repeat\|input-device=[:0-9a-zA-Z_/-]\+\|no-warn\)/ contained +syn region i3ConfigBind start=/^\s*bind\(switch\|gesture\) / skip=/\\$/ end=/$/ contains=swayConfigBindKeyword,swayConfigBindswitch,swayConfigBindswitchArgument,swayConfigBindgesture,swayConfigBindgestureArgument,i3ConfigCriteria,i3ConfigAction,i3ConfigSeparator,i3ConfigActionKeyword,i3ConfigOption,i3ConfigString,i3ConfigNumber,i3ConfigVariable,i3ConfigBoolean keepend + +syn match swayConfigBindBlockHeader /^\s*bind\(sym\|code\) .*{$/ contained contains=i3ConfigBindKeyword,i3ConfigBindArgument,i3ConfigParen +syn match swayConfigBindBlockCombo /^\s\+\(--[a-z-]\+ \)*[$a-zA-Z0-9_+]\+ [a-z[]\@=/ contained contains=i3ConfigBindArgument,i3ConfigBindCombo +syn region i3ConfigBind start=/^\s*bind\(sym\|code\) .*{$/ end=/^\s*}$/ contains=swayConfigBindBlockHeader,swayConfigBindBlockCombo,i3ConfigCriteria,i3ConfigAction,i3ConfigSeparator,i3ConfigActionKeyword,i3ConfigOption,i3ConfigString,i3ConfigNumber,i3ConfigVariable,i3ConfigBoolean,i3ConfigComment,i3ConfigParen fold keepend extend +" fix for extra long bindsym blocks that would be parsed incorrectly when scrolling up +syn region i3ConfigBlockOrphan start=/^\s\+\S/ skip=/^\s\|^$/ end=/^}\?/ contains=swayConfigBindBlockCombo,i3ConfigCriteria,i3ConfigAction,i3ConfigSeparator,i3ConfigActionKeyword,i3ConfigOption,i3ConfigString,i3ConfigNumber,i3ConfigVariable,i3ConfigBoolean,i3ConfigComment,i3ConfigParen keepend extend + +syn keyword i3ConfigClientOpts focused_tab_title contained + +syn region swayConfigExecBlock start=/exec\(_always\)\? {/ end=/^}$/ contains=i3ConfigExecKeyword,i3ConfigExecAlwaysKeyword,i3ConfigShCommand,i3ConfigShDelim,i3ConfigShOper,i3ConfigShParam,i3ConfigNumber,i3ConfigString,i3ConfigVariable,i3ConfigComment fold keepend extend + +syn keyword swayConfigFloatingModifierOpts normal inverse contained +syn match i3ConfigKeyword /^floating_modifier [$a-zA-Z0-9+]\+ \(normal\|inverse\)$/ contains=i3ConfigVariable,i3ConfigBindModkey,swayConfigFloatingModifierOpts + +syn match i3ConfigKeyword /^hide_edge_borders --i3 \w*$/ contains=i3ConfigEdgeKeyword,i3ConfigShParam + +syn keyword i3ConfigBarOpts swaybar_command gaps height pango_markup status_edge_padding status_padding wrap_scroll tray_bindcode tray_bindsym icon_theme contained +syn keyword i3ConfigBarOptVals overlay contained + +syn keyword i3ConfigExecActionKeyword swaymsg contained + +" Sway-only options +" Xwayland +syn keyword swayConfigXOpt enable disable force contained +syn match i3ConfigKeyword /^xwayland \w*$/ contains=swayConfigXOpt + +" Inhibit idle +syn keyword swayConfigInhibitKeyword inhibit_idle contained +syn keyword swayConfigInhibitOpts focus fullscreen open none visible contained +syn match i3ConfigAction /inhibit_idle \w*/ contained contains=swayConfigInhibitKeyword,swayConfigInhibitOpts + +" Bindswitch +syn match swayConfigBindswitchArgument /--\(locked\|no-warn\|reload\)/ contained +syn keyword swayConfigBindswitchType lid tablet contained +syn keyword swayConfigBindswitchState toggle contained +syn match swayConfigBindswitch /\(lid\|tablet\):\(on\|off\|toggle\) / contained contains=swayConfigBindswitchType,i3ConfigColonOperator,swayConfigBindswitchState,i3ConfigBoolean +syn region i3ConfigBind start=/^\s*bindswitch\s\+.*{$/ end=/^\s*}$/ contains=swayConfigBindKeyword,swayConfigBindswitch,swayConfigBindswitchArgument,i3ConfigNumber,i3ConfigVariable,i3ConfigAction,i3ConfigActionKeyword,i3ConfigOption,i3ConfigSeparator,i3ConfigString,i3ConfigCriteria,swayConfigOutputCommand,i3ConfigBoolean,i3ConfigComment,i3ConfigParen fold keepend extend + +" Bindgesture +syn match swayConfigBindgestureArgument /--\(exact\|input-device=[:0-9a-zA-Z_/-]\+\|no-warn\)/ contained +syn keyword swayConfigBindgestureType hold swipe pinch contained +syn keyword swayConfigBindgestureDir up down left right inward outward clockwise counterclockwise contained +syn match swayConfigBindgesture /\(hold\(:[1-5]\)\?\|swipe\(:[3-5]\)\?\(:up\|:down\|:left\|:right\)\?\|pinch\(:[2-5]\)\?:\(+\?\(inward\|outward\|clockwise\|counterclockwise\|up\|down\|left\|right\)\)\+\) / contained contains=i3ConfigNumber,swayConfigBindgestureType,i3ConfigColonOperator,swayConfigBindgestureDir,i3ConfigBindModifier +syn region i3ConfigBind start=/^\s*bindgesture\s\+.*{$/ end=/^\s*}$/ contains=swayConfigBindKeyword,swayConfigBindgesture,swayConfigBindgestureArgument,i3ConfigCriteria,i3ConfigAction,i3ConfigSeparator,i3ConfigActionKeyword,i3ConfigOption,i3ConfigString,i3ConfigNumber,i3ConfigVariable,i3ConfigBoolean,i3ConfigParen fold keepend extend + +" Tiling drag threshold +syn match i3ConfigKeyword /^tiling_drag_threshold \d\+$/ contains=i3ConfigNumber + +" Titlebar commands +syn match i3ConfigKeyword /^titlebar_border_thickness \(\d\+\|\$\S\+\)$/ contains=i3ConfigNumber,i3ConfigVariable +syn match i3ConfigKeyword /^titlebar_padding \(\d\+\|\$\S\+\)\( \d\+\)\?$/ contains=i3ConfigNumber,i3ConfigVariable + +syn match swayConfigDeviceOps /[*,:;]/ contained + +" Input devices +syn keyword swayConfigInputKeyword input contained +syn keyword swayConfigInputType touchpad pointer keyboard touch tablet_tool tablet_pad switch contained +syn match swayConfigInputTypePair /\/ contained contains=i3ConfigColonOperator,swayConfigInputType +syn region swayConfigInputStart start=/^input / end=/\s/ contained contains=swayConfigInputKeyword,swayConfigInputTypePair,i3ConfigString keepend extend +syn keyword swayConfigInputOpts xkb_layout xkb_variant xkb_rules xkb_switch_layout xkb_numlock xkb_file xkb_capslock xkb_model repeat_delay repeat_rate map_to_output map_to_region map_from_region tool_mode accel_profile dwt dwtp drag_lock drag click_method middle_emulation tap events calibration_matrix natural_scroll left_handed pointer_accel scroll_button scroll_factor scroll_method tap_button_map contained +syn keyword swayConfigInputOptVals absolute relative adaptive flat none button_areas clickfinger toggle two_finger edge on_button_down lrm lmr next prev pen eraser brush pencil airbrush disabled_on_external_mouse disable contained +syn match swayConfigXkbOptsPairVal /:[0-9a-z_-]\+/ contained contains=i3ConfigColonOperator +syn match swayConfigXkbOptsPair /[a-z]\+:[0-9a-z_-]\+/ contained contains=swayConfigXkbOptsPairVal +syn match swayConfigInputXkbOpts /xkb_options \([a-z]\+:[0-9a-z_-]\+,\?\)\+/ contained contains=swayConfigXkbOptsPair,swayConfigDeviceOps +syn region i3ConfigAction start=/input/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=swayConfigInputStart,swayConfigInputXkbOpts,swayConfigInputOpts,swayConfigInputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigBoolean,swayConfigDeviceOps keepend transparent +syn region i3ConfigInput start=/^input/ skip=/\\$/ end=/$/ contains=swayConfigInputStart,swayConfigInputXkbOpts,swayConfigInputOpts,swayConfigInputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigBoolean,swayConfigDeviceOps keepend +syn region i3ConfigInput start=/^input .* {/ end=/}$/ contains=swayConfigInputStart,swayConfigInputXkbOpts,swayConfigInputOpts,swayConfigInputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigBoolean,swayConfigDeviceOps,i3ConfigParen keepend extend + +" Seat +syn keyword swayConfigSeatKeyword seat contained +syn keyword swayConfigSeatOpts attach cursor fallback hide_cursor idle_inhibit idle_wake keyboard_grouping shortcuts_inhibitor pointer_constraint xcursor_theme contained +syn match swayConfigSeatOptVals /when-typing/ contained +syn keyword swayConfigSeatOptVals move set press release none smart activate deactivate toggle escape enable disable contained +syn region i3ConfigAction start=/seat/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=swayConfigSeatKeyword,i3ConfigString,i3ConfigNumber,i3ConfigBoolean,swayConfigSeatOptVals,swayConfigSeatOpts,swayConfigDeviceOps,swayConfigInputType keepend transparent +syn region swayConfigSeat start=/seat/ skip=/\\$/ end=/$/ contains=swayConfigSeatKeyword,i3ConfigString,i3ConfigNumber,i3ConfigBoolean,swayConfigSeatOptVals,swayConfigSeatOpts,swayConfigDeviceOps,swayConfigInputType keepend +syn region swayConfigSeat start=/seat .* {$/ end=/}$/ contains=swayConfigSeatKeyword,i3ConfigString,i3ConfigNumber,i3ConfigBoolean,swayConfigSeatOptVals,swayConfigSeatOpts,swayConfigDeviceOps,i3ConfigParen,swayConfigInputType keepend extend + +" Output monitors +syn keyword swayConfigOutputKeyword output contained +syn keyword swayConfigOutputOpts mode resolution res modeline position pos scale scale_filter subpixel background bg transform disable enable power dpms max_render_time adaptive_sync render_bit_depth contained +syn keyword swayConfigOutputOptVals linear nearest smart rgb bgr vrgb vbgr none normal flipped fill stretch fit center tile solid_color clockwise anticlockwise toggle contained +syn match swayConfigOutputOptVals /--custom\|flipped-\(90\|180\|270\)/ contained +syn match swayConfigOutputFPS /@[0-9.]\+Hz/ contained +syn match swayConfigOutputMode / [0-9]\+x[0-9]\+\(@[0-9.]\+Hz\)\?/ contained contains=swayConfigOutputFPS +syn region i3ConfigAction start=/output/ skip=/\\$/ end=/\([,;]\|$\)/ contained contains=swayConfigOutputKeyword,swayConfigOutputMode,swayConfigOutputOpts,swayConfigOutputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigString,i3ConfigColor,i3ConfigBoolean,swayConfigDeviceOps keepend transparent +syn region swayConfigOutput start=/^output/ skip=/\\$/ end=/$/ contains=swayConfigOutputKeyword,swayConfigOutputMode,swayConfigOutputOpts,swayConfigOutputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigString,i3ConfigColor,i3ConfigBoolean,swayConfigDeviceOps keepend +syn region swayConfigOutput start=/^output .* {$/ end=/}$/ contains=swayConfigOutputKeyword,swayConfigOutputMode,swayConfigOutputOpts,swayConfigOutputOptVals,i3ConfigVariable,i3ConfigNumber,i3ConfigString,i3ConfigColor,i3ConfigBoolean,swayConfigDeviceOps,i3ConfigParen keepend extend + +" Define the highlighting. +hi def link swayConfigFloatingModifierOpts i3ConfigOption +hi def link swayConfigBindKeyword i3ConfigBindKeyword +hi def link swayConfigXOpt i3ConfigOption +hi def link swayConfigInhibitKeyword i3ConfigCommand +hi def link swayConfigInhibitOpts i3ConfigOption +hi def link swayConfigBindswitchArgument i3ConfigBindArgument +hi def link swayConfigBindswitchType i3ConfigMoveType +hi def link swayConfigBindswitchState i3ConfigMoveDir +hi def link swayConfigBindgestureArgument i3ConfigBindArgument +hi def link swayConfigBindgestureType i3ConfigMoveType +hi def link swayConfigBindgestureDir i3ConfigMoveDir +hi def link swayConfigDeviceOps i3ConfigOperator +hi def link swayConfigInputKeyword i3ConfigCommand +hi def link swayConfigInputType i3ConfigMoveType +hi def link swayConfigInputTypePair i3ConfigMoveDir +hi def link swayConfigInputOptVals i3ConfigShParam +hi def link swayConfigInputOpts i3ConfigOption +hi def link swayConfigXkbOptsPairVal i3ConfigString +hi def link swayConfigXkbOptsPair i3ConfigShParam +hi def link swayConfigInputXkbOpts i3ConfigOption +hi def link swayConfigSeatKeyword i3ConfigCommand +hi def link swayConfigSeatOptVals swayConfigInputOptVals +hi def link swayConfigSeatOpts swayConfigInputOpts +hi def link swayConfigOutputKeyword i3ConfigCommand +hi def link swayConfigOutputOptVals swayConfigInputOptVals +hi def link swayConfigOutputOpts swayConfigInputOpts +hi def link swayConfigOutputFPS Constant +hi def link swayConfigOutputMode i3ConfigNumber + +let b:current_syntax = "swayconfig" diff --git a/runtime/syntax/swift.vim b/runtime/syntax/swift.vim new file mode 100644 index 0000000..ff07be2 --- /dev/null +++ b/runtime/syntax/swift.vim @@ -0,0 +1,286 @@ +" This source file is part of the Swift.org open source project +" +" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors +" Licensed under Apache License v2.0 with Runtime Library Exception +" +" See https://swift.org/LICENSE.txt for license information +" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +" +" Vim syntax file +" Language: swift +" Maintainer: Joe Groff +" Last Change: 2018 Jan 21 +" +" Vim maintainer: Emir SARI + +if exists("b:current_syntax") + finish +endif + +let s:keepcpo = &cpo +set cpo&vim + +syn keyword swiftKeyword + \ break + \ case + \ catch + \ continue + \ default + \ defer + \ do + \ else + \ fallthrough + \ for + \ guard + \ if + \ in + \ repeat + \ return + \ switch + \ throw + \ try + \ where + \ while +syn match swiftMultiwordKeyword + \ "indirect case" + +syn keyword swiftCoreTypes + \ Any + \ AnyObject + +syn keyword swiftImport skipwhite skipempty nextgroup=swiftImportModule + \ import + +syn keyword swiftDefinitionModifier + \ convenience + \ dynamic + \ fileprivate + \ final + \ internal + \ lazy + \ nonmutating + \ open + \ override + \ prefix + \ private + \ public + \ required + \ rethrows + \ static + \ throws + \ weak + +syn keyword swiftInOutKeyword skipwhite skipempty nextgroup=swiftTypeName + \ inout + +syn keyword swiftIdentifierKeyword + \ Self + \ metatype + \ self + \ super + +syn keyword swiftFuncKeywordGeneral skipwhite skipempty nextgroup=swiftTypeParameters + \ init + +syn keyword swiftFuncKeyword + \ deinit + \ subscript + +syn keyword swiftScope + \ autoreleasepool + +syn keyword swiftMutating skipwhite skipempty nextgroup=swiftFuncDefinition + \ mutating +syn keyword swiftFuncDefinition skipwhite skipempty nextgroup=swiftTypeName,swiftOperator + \ func + +syn keyword swiftTypeDefinition skipwhite skipempty nextgroup=swiftTypeName + \ class + \ enum + \ extension + \ operator + \ precedencegroup + \ protocol + \ struct + +syn keyword swiftTypeAliasDefinition skipwhite skipempty nextgroup=swiftTypeAliasName + \ associatedtype + \ typealias + +syn match swiftMultiwordTypeDefinition skipwhite skipempty nextgroup=swiftTypeName + \ "indirect enum" + +syn keyword swiftVarDefinition skipwhite skipempty nextgroup=swiftVarName + \ let + \ var + +syn keyword swiftLabel + \ get + \ set + \ didSet + \ willSet + +syn keyword swiftBoolean + \ false + \ true + +syn keyword swiftNil + \ nil + +syn match swiftImportModule contained nextgroup=swiftImportComponent + \ /\<[A-Za-z_][A-Za-z_0-9]*\>/ +syn match swiftImportComponent contained nextgroup=swiftImportComponent + \ /\.\<[A-Za-z_][A-Za-z_0-9]*\>/ + +syn match swiftTypeAliasName contained skipwhite skipempty nextgroup=swiftTypeAliasValue + \ /\<[A-Za-z_][A-Za-z_0-9]*\>/ +syn match swiftTypeName contained skipwhite skipempty nextgroup=swiftTypeParameters + \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>/ +syn match swiftVarName contained skipwhite skipempty nextgroup=swiftTypeDeclaration + \ /\<[A-Za-z_][A-Za-z_0-9]*\>/ +syn match swiftImplicitVarName + \ /\$\<[A-Za-z_0-9]\+\>/ + +" TypeName[Optionality]? +syn match swiftType contained skipwhite skipempty nextgroup=swiftTypeParameters + \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/ +" [Type:Type] (dictionary) or [Type] (array) +syn region swiftType contained contains=swiftTypePair,swiftType + \ matchgroup=Delimiter start=/\[/ end=/\]/ +syn match swiftTypePair contained skipwhite skipempty nextgroup=swiftTypeParameters,swiftTypeDeclaration + \ /\<[A-Za-z_][A-Za-z_0-9\.]*\>[!?]\?/ +" (Type[, Type]) (tuple) +" FIXME: we should be able to use skip="," and drop swiftParamDelim +syn region swiftType contained contains=swiftType,swiftParamDelim + \ matchgroup=Delimiter start="[^@]\?(" end=")" matchgroup=NONE skip="," +syn match swiftParamDelim contained + \ /,/ +" (generics) +syn region swiftTypeParameters contained contains=swiftVarName,swiftConstraint + \ matchgroup=Delimiter start="<" end=">" matchgroup=NONE skip="," +syn keyword swiftConstraint contained + \ where + +syn match swiftTypeAliasValue skipwhite skipempty nextgroup=swiftType + \ /=/ +syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType,swiftInOutKeyword + \ /:/ +syn match swiftTypeDeclaration skipwhite skipempty nextgroup=swiftType + \ /->/ + +syn match swiftKeyword + \ /\/ +syn region swiftCaseLabelRegion + \ matchgroup=swiftKeyword start=/\/ matchgroup=Delimiter end=/:/ oneline contains=TOP +syn region swiftDefaultLabelRegion + \ matchgroup=swiftKeyword start=/\/ matchgroup=Delimiter end=/:/ oneline + +syn region swiftParenthesisRegion contains=TOP + \ matchgroup=NONE start=/(/ end=/)/ + +syn region swiftString contains=swiftInterpolationRegion + \ start=/"/ skip=/\\\\\|\\"/ end=/"/ +syn region swiftInterpolationRegion contained contains=TOP + \ matchgroup=swiftInterpolation start=/\\(/ end=/)/ +syn region swiftComment contains=swiftComment,swiftLineComment,swiftTodo + \ start="/\*" end="\*/" +syn region swiftLineComment contains=swiftComment,swiftTodo + \ start="//" end="$" + +syn match swiftDecimal + \ /[+\-]\?\<\([0-9][0-9_]*\)\([.][0-9_]*\)\?\([eE][+\-]\?[0-9][0-9_]*\)\?\>/ +syn match swiftHex + \ /[+\-]\?\<0x[0-9A-Fa-f][0-9A-Fa-f_]*\(\([.][0-9A-Fa-f_]*\)\?[pP][+\-]\?[0-9][0-9_]*\)\?\>/ +syn match swiftOct + \ /[+\-]\?\<0o[0-7][0-7_]*\>/ +syn match swiftBin + \ /[+\-]\?\<0b[01][01_]*\>/ + +syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters + \ "\.\@!&|^~]\@!&|^~]*\|*/\@![/=\-+*%<>!&|^~]*\|->\@![/=\-+*%<>!&|^~]*\|[=+%<>!&|^~][/=\-+*%<>!&|^~]*\)" +syn match swiftOperator skipwhite skipempty nextgroup=swiftTypeParameters + \ "\.\.[<.]" + +syn match swiftChar + \ /'\([^'\\]\|\\\(["'tnr0\\]\|x[0-9a-fA-F]\{2}\|u[0-9a-fA-F]\{4}\|U[0-9a-fA-F]\{8}\)\)'/ + +syn match swiftTupleIndexNumber contains=swiftDecimal + \ /\.[0-9]\+/ +syn match swiftDecimal contained + \ /[0-9]\+/ + +syn match swiftPreproc + \ /#\(\\|\\|\\|\\|\\)/ +syn match swiftPreproc + \ /^\s*#\(\\|\\|\\|\\|\\|\\)/ +syn region swiftPreprocFalse + \ start="^\s*#\\s\+\" end="^\s*#\(\\|\\|\\)" + +syn match swiftAttribute + \ /@\<\w\+\>/ skipwhite skipempty nextgroup=swiftType,swiftTypeDefinition + +syn keyword swiftTodo MARK TODO FIXME contained + +syn match swiftCastOp skipwhite skipempty nextgroup=swiftType,swiftCoreTypes + \ "\" +syn match swiftCastOp skipwhite skipempty nextgroup=swiftType,swiftCoreTypes + \ "\[!?]\?" + +syn match swiftNilOps + \ "??" + +syn region swiftReservedIdentifier oneline + \ start=/`/ end=/`/ + +hi def link swiftImport Include +hi def link swiftImportModule Title +hi def link swiftImportComponent Identifier +hi def link swiftKeyword Statement +hi def link swiftCoreTypes Type +hi def link swiftMultiwordKeyword Statement +hi def link swiftTypeDefinition Define +hi def link swiftMultiwordTypeDefinition Define +hi def link swiftType Type +hi def link swiftTypePair Type +hi def link swiftTypeAliasName Identifier +hi def link swiftTypeName Function +hi def link swiftConstraint Special +hi def link swiftFuncDefinition Define +hi def link swiftDefinitionModifier Operator +hi def link swiftInOutKeyword Define +hi def link swiftFuncKeyword Function +hi def link swiftFuncKeywordGeneral Function +hi def link swiftTypeAliasDefinition Define +hi def link swiftVarDefinition Define +hi def link swiftVarName Identifier +hi def link swiftImplicitVarName Identifier +hi def link swiftIdentifierKeyword Identifier +hi def link swiftTypeAliasValue Delimiter +hi def link swiftTypeDeclaration Delimiter +hi def link swiftTypeParameters Delimiter +hi def link swiftBoolean Boolean +hi def link swiftString String +hi def link swiftInterpolation Special +hi def link swiftComment Comment +hi def link swiftLineComment Comment +hi def link swiftDecimal Number +hi def link swiftHex Number +hi def link swiftOct Number +hi def link swiftBin Number +hi def link swiftOperator Function +hi def link swiftChar Character +hi def link swiftLabel Operator +hi def link swiftMutating Statement +hi def link swiftPreproc PreCondit +hi def link swiftPreprocFalse Comment +hi def link swiftAttribute Type +hi def link swiftTodo Todo +hi def link swiftNil Constant +hi def link swiftCastOp Operator +hi def link swiftNilOps Operator +hi def link swiftScope PreProc + +let b:current_syntax = "swift" + +let &cpo = s:keepcpo +unlet s:keepcpo diff --git a/runtime/syntax/swiftgyb.vim b/runtime/syntax/swiftgyb.vim new file mode 100644 index 0000000..566b75b --- /dev/null +++ b/runtime/syntax/swiftgyb.vim @@ -0,0 +1,24 @@ +" This source file is part of the Swift.org open source project +" +" Copyright (c) 2014 - 2020 Apple Inc. and the Swift project authors +" Licensed under Apache License v2.0 with Runtime Library Exception +" +" See https://swift.org/LICENSE.txt for license information +" See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors +" +" Vim syntax file +" Language: gyb on swift +" +" Vim maintainer: Emir SARI + +runtime! syntax/swift.vim +unlet b:current_syntax + +syn include @Python syntax/python.vim +syn region pythonCode matchgroup=gybPythonCode start=+^ *%+ end=+$+ contains=@Python keepend +syn region pythonCode matchgroup=gybPythonCode start=+%{+ end=+}%+ contains=@Python keepend +syn match gybPythonCode /\${[^}]*}/ +hi def link gybPythonCode CursorLineNr + +let b:current_syntax = "swiftgyb" + diff --git a/runtime/syntax/swig.vim b/runtime/syntax/swig.vim new file mode 100644 index 0000000..b626212 --- /dev/null +++ b/runtime/syntax/swig.vim @@ -0,0 +1,99 @@ +" Vim syntax file +" Language: SWIG +" Maintainer: Julien Marrec +" Last Change: 2023 November 23 + +if exists("b:current_syntax") + finish +endif + +" Read the C++ syntax to start with +runtime! syntax/cpp.vim +unlet b:current_syntax + +" SWIG extentions +syn keyword swigInclude %include %import %importfile %includefile %module + +syn keyword swigMostCommonDirective %alias %apply %beginfile %clear %constant %define %echo %enddef %endoffile +syn keyword swigMostCommonDirective %extend %feature %director %fragment %ignore %inline +syn keyword swigMostCommonDirective %keyword %name %namewarn %native %newobject %parms %pragma +syn keyword swigMostCommonDirective %rename %template %typedef %typemap %types %varargs + +" SWIG: Language specific macros +syn keyword swigOtherLanguageSpecific %luacode %go_import + +syn keyword swigCSharp %csattributes %csconst %csconstvalue %csmethodmodifiers %csnothrowexception +syn keyword swigCSharp %dconstvalue %dmanifestconst %dmethodmodifiers + +syn keyword swigJava %javaconstvalue %javaexception %javamethodmodifiers %javaconst %nojavaexception + +syn keyword swigGuile %multiple_values %values_as_list %values_as_vector + +syn keyword swigPHP %rinit %rshutdown %minit %mshutdown + +syn keyword swigPython %pybinoperator %pybuffer_binary %pybuffer_mutable_binary %pybuffer_mutable_string %pybuffer_string +syn keyword swigPython %pythonappend %pythonbegin %pythoncode %pythondynamic %pythonnondynamic %pythonprepend + +syn keyword swigRuby %markfunc %trackobjects %bang +syn keyword swigScilab %scilabconst + +" SWIG: Insertion +syn keyword swigInsertSection %insert %begin %runtime %header %wrapper %init + +" SWIG: Other directives +syn keyword swigCstring %cstring_bounded_mutable %cstring_bounded_output %cstring_chunk_output %cstring_input_binary %cstring_mutable +syn keyword swigCstring %cstring_output_allocate %cstring_output_allocate_size %cstring_output_maxsize %cstring_output_withsize +syn keyword swigCWstring %cwstring_bounded_mutable %cwstring_bounded_output %cwstring_chunk_output %cwstring_input_binary %cwstring_mutable +syn keyword swigCWstring %cwstring_output_allocate %cwstring_output_allocate_size %cwstring_output_maxsize %cwstring_output_withsize +syn keyword swigCMalloc %malloc %calloc %realloc %free %sizeof %allocators + +syn keyword swigExceptionHandling %catches %raise %allowexception %exceptionclass %warn %warnfilter %exception +syn keyword swigContract %contract %aggregate_check + +syn keyword swigDirective %addmethods %array_class %array_functions %attribute %attribute2 %attribute2ref +syn keyword swigDirective %attribute_ref %attributeref %attributestring %attributeval %auto_ptr %callback +syn keyword swigDirective %delete_array %delobject %extend_smart_pointer %factory %fastdispatch %freefunc %immutable +syn keyword swigDirective %implicit %implicitconv %interface %interface_custom %interface_impl %intrusive_ptr %intrusive_ptr_no_wrap +syn keyword swigDirective %mutable %naturalvar %nocallback %nocopyctor %nodefaultctor %nodefaultdtor %nonaturalvar %nonspace +syn keyword swigDirective %nspace %pointer_cast %pointer_class %pointer_functions %predicate %proxycode +syn keyword swigDirective %refobject %set_output %shared_ptr %std_comp_methods +syn keyword swigDirective %std_nodefconst_type %typecheck %typemaps_string %unique_ptr %unrefobject %valuewrapper + +syn match swigVerbatimStartEnd "%[{}]" + +syn match swigUserDef "%\w\+" +syn match swigVerbatimMacro "^\s*%#\w\+\%( .*\)\?$" + +" SWIG: typemap var and typemap macros (eg: $1, $*1_type, $&n_ltype, $self) +syn match swigTypeMapVars "\$[*&_a-zA-Z0-9]\+" + +" Default highlighting +hi def link swigInclude Include +hi def link swigMostCommonDirective Structure +hi def link swigDirective Macro +hi def link swigContract swigExceptionHandling +hi def link swigExceptionHandling Exception +hi def link swigUserDef Function + +hi def link swigCMalloc Statement +hi def link swigCstring Type +hi def link swigCWstring Type + +hi def link swigCSharp swigOtherLanguageSpecific +hi def link swigJava swigOtherLanguageSpecific +hi def link swigGuile swigOtherLanguageSpecific +hi def link swigPHP swigOtherLanguageSpecific +hi def link swigPython swigOtherLanguageSpecific +hi def link swigRuby swigOtherLanguageSpecific +hi def link swigScilab swigOtherLanguageSpecific +hi def link swigOtherLanguageSpecific Special + +hi def link swigInsertSection PreProc + +hi def link swigVerbatimStartEnd Statement +hi def link swigVerbatimMacro Macro + +hi def link swigTypeMapVars SpecialChar + +let b:current_syntax = "swig" +" vim: ts=8 diff --git a/runtime/syntax/syncolor.vim b/runtime/syntax/syncolor.vim new file mode 100644 index 0000000..52b3a0b --- /dev/null +++ b/runtime/syntax/syncolor.vim @@ -0,0 +1,94 @@ +" Vim syntax support file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" This file sets up the default methods for highlighting. +" It is loaded from "synload.vim" and from Vim for ":syntax reset". +" Also used from init_highlight(). + +if !exists("syntax_cmd") || syntax_cmd == "on" + " ":syntax on" works like in Vim 5.7: set colors but keep links + command -nargs=* SynColor hi + command -nargs=* SynLink hi link +else + if syntax_cmd == "enable" + " ":syntax enable" keeps any existing colors + command -nargs=* SynColor hi def + command -nargs=* SynLink hi def link + elseif syntax_cmd == "reset" + " ":syntax reset" resets all colors to the default + command -nargs=* SynColor hi + command -nargs=* SynLink hi! link + else + " User defined syncolor file has already set the colors. + finish + endif +endif + +" Many terminals can only use six different colors (plus black and white). +" Therefore the number of colors used is kept low. It doesn't look nice with +" too many colors anyway. +" Careful with "cterm=bold", it changes the color to bright for some terminals. +" There are two sets of defaults: for a dark and a light background. +if &background == "dark" + SynColor Comment term=bold cterm=NONE ctermfg=Cyan ctermbg=NONE gui=NONE guifg=#80a0ff guibg=NONE + SynColor Constant term=underline cterm=NONE ctermfg=Magenta ctermbg=NONE gui=NONE guifg=#ffa0a0 guibg=NONE + SynColor Special term=bold cterm=NONE ctermfg=LightRed ctermbg=NONE gui=NONE guifg=Orange guibg=NONE + SynColor Identifier term=underline cterm=bold ctermfg=Cyan ctermbg=NONE gui=NONE guifg=#40ffff guibg=NONE + SynColor Statement term=bold cterm=NONE ctermfg=Yellow ctermbg=NONE gui=bold guifg=#ffff60 guibg=NONE + SynColor PreProc term=underline cterm=NONE ctermfg=LightBlue ctermbg=NONE gui=NONE guifg=#ff80ff guibg=NONE + SynColor Type term=underline cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE + SynColor Underlined term=underline cterm=underline ctermfg=LightBlue gui=underline guifg=#80a0ff + SynColor Ignore term=NONE cterm=NONE ctermfg=black ctermbg=NONE gui=NONE guifg=bg guibg=NONE + SynColor Added term=NONE cterm=NONE ctermfg=Green ctermbg=NONE gui=NONE guifg=LimeGreen guibg=NONE + SynColor Changed term=NONE cterm=NONE ctermfg=Blue ctermbg=NONE gui=NONE guifg=DodgerBlue guibg=NONE + SynColor Removed term=NONE cterm=NONE ctermfg=Red ctermbg=NONE gui=NONE guifg=Red guibg=NONE +else + SynColor Comment term=bold cterm=NONE ctermfg=DarkBlue ctermbg=NONE gui=NONE guifg=Blue guibg=NONE + SynColor Constant term=underline cterm=NONE ctermfg=DarkRed ctermbg=NONE gui=NONE guifg=Magenta guibg=NONE + " #6a5acd is SlateBlue + SynColor Special term=bold cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=#6a5acd guibg=NONE + SynColor Identifier term=underline cterm=NONE ctermfg=DarkCyan ctermbg=NONE gui=NONE guifg=DarkCyan guibg=NONE + SynColor Statement term=bold cterm=NONE ctermfg=Brown ctermbg=NONE gui=bold guifg=Brown guibg=NONE + " #6a0dad is Purple + SynColor PreProc term=underline cterm=NONE ctermfg=DarkMagenta ctermbg=NONE gui=NONE guifg=#6a0dad guibg=NONE + SynColor Type term=underline cterm=NONE ctermfg=DarkGreen ctermbg=NONE gui=bold guifg=SeaGreen guibg=NONE + SynColor Underlined term=underline cterm=underline ctermfg=DarkMagenta gui=underline guifg=SlateBlue + SynColor Ignore term=NONE cterm=NONE ctermfg=white ctermbg=NONE gui=NONE guifg=bg guibg=NONE + SynColor Added term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=NONE gui=NONE guifg=SeaGreen guibg=NONE + SynColor Changed term=NONE cterm=NONE ctermfg=Blue ctermbg=NONE gui=NONE guifg=DodgerBlue guibg=NONE + SynColor Removed term=NONE cterm=NONE ctermfg=Red ctermbg=NONE gui=NONE guifg=Red guibg=NONE +endif +SynColor Error term=reverse cterm=NONE ctermfg=White ctermbg=Red gui=NONE guifg=White guibg=Red +SynColor Todo term=standout cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=Blue guibg=Yellow + +" Common groups that link to default highlighting. +" You can specify other highlighting easily. +SynLink String Constant +SynLink Character Constant +SynLink Number Constant +SynLink Boolean Constant +SynLink Float Number +SynLink Function Identifier +SynLink Conditional Statement +SynLink Repeat Statement +SynLink Label Statement +SynLink Operator Statement +SynLink Keyword Statement +SynLink Exception Statement +SynLink Include PreProc +SynLink Define PreProc +SynLink Macro PreProc +SynLink PreCondit PreProc +SynLink StorageClass Type +SynLink Structure Type +SynLink Typedef Type +SynLink Tag Special +SynLink SpecialChar Special +SynLink Delimiter Special +SynLink SpecialComment Special +SynLink Debug Special + +delcommand SynColor +delcommand SynLink diff --git a/runtime/syntax/synload.vim b/runtime/syntax/synload.vim new file mode 100644 index 0000000..553e8b2 --- /dev/null +++ b/runtime/syntax/synload.vim @@ -0,0 +1,84 @@ +" Vim syntax support file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" This file sets up for syntax highlighting. +" It is loaded from "syntax.vim" and "manual.vim". +" 1. Set the default highlight groups. +" 2. Install Syntax autocommands for all the available syntax files. + +if !has("syntax") + finish +endif + +" let others know that syntax has been switched on +let syntax_on = 1 + +" Set the default highlighting colors. Use a color scheme if specified. +if exists("colors_name") + exe "colors " . colors_name +else + runtime! syntax/syncolor.vim +endif + +" Line continuation is used here, remove 'C' from 'cpoptions' +let s:cpo_save = &cpo +set cpo&vim + +" First remove all old syntax autocommands. +au! Syntax + +au Syntax * call s:SynSet() + +fun! s:SynSet() + " clear syntax for :set syntax=OFF and any syntax name that doesn't exist + syn clear + if exists("b:current_syntax") + unlet b:current_syntax + endif + + 0verbose let s = expand("") + if s == "ON" + " :set syntax=ON + if &filetype == "" + echohl ErrorMsg + echo "filetype unknown" + echohl None + endif + let s = &filetype + elseif s == "OFF" + let s = "" + endif + + if s != "" + " Load the syntax file(s). When there are several, separated by dots, + " load each in sequence. Skip empty entries. + for name in split(s, '\.') + if !empty(name) + exe "runtime! syntax/" . name . ".vim syntax/" . name . "/*.vim" + endif + endfor + endif +endfun + + +" Handle adding doxygen to other languages (C, C++, C#, IDL, java, php, DataScript) +au Syntax c,cpp,cs,idl,java,php,datascript + \ if (exists('b:load_doxygen_syntax') && b:load_doxygen_syntax) + \ || (exists('g:load_doxygen_syntax') && g:load_doxygen_syntax) + \ | runtime! syntax/doxygen.vim + \ | endif + + +" Source the user-specified syntax highlighting file +if exists("mysyntaxfile") + let s:fname = expand(mysyntaxfile) + if filereadable(s:fname) + execute "source " . fnameescape(s:fname) + endif +endif + +" Restore 'cpoptions' +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/syntax.vim b/runtime/syntax/syntax.vim new file mode 100644 index 0000000..06b8d8f --- /dev/null +++ b/runtime/syntax/syntax.vim @@ -0,0 +1,45 @@ +" Vim syntax support file +" Maintainer: The Vim Project +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" This file is used for ":syntax on". +" It installs the autocommands and starts highlighting for all buffers. + +if !has("syntax") + finish +endif + +" If Syntax highlighting appears to be on already, turn it off first, so that +" any leftovers are cleared. +if exists("syntax_on") || exists("syntax_manual") + so :p:h/nosyntax.vim +endif + +" Load the Syntax autocommands and set the default methods for highlighting. +runtime syntax/synload.vim + +" Load the FileType autocommands if not done yet. +if exists("did_load_filetypes") + let s:did_ft = 1 +else + filetype on + let s:did_ft = 0 +endif + +" Set up the connection between FileType and Syntax autocommands. +" This makes the syntax automatically set when the file type is detected. +" Avoid an error when 'verbose' is set and expansion fails. +augroup syntaxset + au! FileType * 0verbose exe "set syntax=" . expand("") +augroup END + + +" Execute the syntax autocommands for the each buffer. +" If the filetype wasn't detected yet, do that now. +" Always do the syntaxset autocommands, for buffers where the 'filetype' +" already was set manually (e.g., help buffers). +doautoall syntaxset FileType +if !s:did_ft + doautoall filetypedetect BufRead +endif diff --git a/runtime/syntax/sysctl.vim b/runtime/syntax/sysctl.vim new file mode 100644 index 0000000..d99ac01 --- /dev/null +++ b/runtime/syntax/sysctl.vim @@ -0,0 +1,39 @@ +" Vim syntax file +" Language: sysctl.conf(5) configuration file +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2011-05-02 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match sysctlBegin display '^' + \ nextgroup=sysctlToken,sysctlComment skipwhite + +syn match sysctlToken contained display '[^=]\+' + \ nextgroup=sysctlTokenEq skipwhite + +syn match sysctlTokenEq contained display '=' nextgroup=sysctlValue skipwhite + +syn region sysctlValue contained display oneline + \ matchgroup=sysctlValue start='\S' + \ matchgroup=Normal end='\s*$' + +syn keyword sysctlTodo contained TODO FIXME XXX NOTE + +syn region sysctlComment display oneline start='^\s*[#;]' end='$' + \ contains=sysctlTodo,@Spell + +hi def link sysctlTodo Todo +hi def link sysctlComment Comment +hi def link sysctlToken Identifier +hi def link sysctlTokenEq Operator +hi def link sysctlValue String + +let b:current_syntax = "sysctl" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/systemd.vim b/runtime/syntax/systemd.vim new file mode 100644 index 0000000..5dfba74 --- /dev/null +++ b/runtime/syntax/systemd.vim @@ -0,0 +1,8 @@ +" Vim syntax file +" Language: systemd.unit(5) + +if !exists('b:current_syntax') + " Looks a lot like dosini files. + runtime! syntax/dosini.vim + let b:current_syntax = 'systemd' +endif diff --git a/runtime/syntax/systemverilog.vim b/runtime/syntax/systemverilog.vim new file mode 100644 index 0000000..f99ea8d --- /dev/null +++ b/runtime/syntax/systemverilog.vim @@ -0,0 +1,85 @@ +" Vim syntax file +" Language: SystemVerilog +" Maintainer: kocha +" Last Change: 12-Aug-2013. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Read in Verilog syntax files +runtime! syntax/verilog.vim +unlet b:current_syntax + +" IEEE1800-2005 +syn keyword systemverilogStatement always_comb always_ff always_latch +syn keyword systemverilogStatement class endclass new +syn keyword systemverilogStatement virtual local const protected +syn keyword systemverilogStatement package endpackage +syn keyword systemverilogStatement rand randc constraint randomize +syn keyword systemverilogStatement with inside dist +syn keyword systemverilogStatement sequence endsequence randsequence +syn keyword systemverilogStatement srandom +syn keyword systemverilogStatement logic bit byte +syn keyword systemverilogStatement int longint shortint +syn keyword systemverilogStatement struct packed +syn keyword systemverilogStatement final +syn keyword systemverilogStatement import export +syn keyword systemverilogStatement context pure +syn keyword systemverilogStatement void shortreal chandle string +syn keyword systemverilogStatement clocking endclocking iff +syn keyword systemverilogStatement interface endinterface modport +syn keyword systemverilogStatement cover covergroup coverpoint endgroup +syn keyword systemverilogStatement property endproperty +syn keyword systemverilogStatement program endprogram +syn keyword systemverilogStatement bins binsof illegal_bins ignore_bins +syn keyword systemverilogStatement alias matches solve static assert +syn keyword systemverilogStatement assume super before expect bind +syn keyword systemverilogStatement extends null tagged extern this +syn keyword systemverilogStatement first_match throughout timeprecision +syn keyword systemverilogStatement timeunit type union +syn keyword systemverilogStatement uwire var cross ref wait_order intersect +syn keyword systemverilogStatement wildcard within + +syn keyword systemverilogTypeDef typedef enum + +syn keyword systemverilogConditional randcase +syn keyword systemverilogConditional unique priority + +syn keyword systemverilogRepeat return break continue +syn keyword systemverilogRepeat do foreach + +syn keyword systemverilogLabel join_any join_none forkjoin + +" IEEE1800-2009 add +syn keyword systemverilogStatement checker endchecker +syn keyword systemverilogStatement accept_on reject_on +syn keyword systemverilogStatement sync_accept_on sync_reject_on +syn keyword systemverilogStatement eventually nexttime until until_with +syn keyword systemverilogStatement s_always s_eventually s_nexttime s_until s_until_with +syn keyword systemverilogStatement let untyped +syn keyword systemverilogStatement strong weak +syn keyword systemverilogStatement restrict global implies + +syn keyword systemverilogConditional unique0 + +" IEEE1800-2012 add +syn keyword systemverilogStatement implements +syn keyword systemverilogStatement interconnect soft nettype + +" Define the default highlighting. + +" The default highlighting. +hi def link systemverilogStatement Statement +hi def link systemverilogTypeDef TypeDef +hi def link systemverilogConditional Conditional +hi def link systemverilogRepeat Repeat +hi def link systemverilogLabel Label +hi def link systemverilogGlobal Define +hi def link systemverilogNumber Number + + +let b:current_syntax = "systemverilog" + +" vim: ts=8 diff --git a/runtime/syntax/tads.vim b/runtime/syntax/tads.vim new file mode 100644 index 0000000..23a65b9 --- /dev/null +++ b/runtime/syntax/tads.vim @@ -0,0 +1,171 @@ +" Vim syntax file +" Language: TADS +" Maintainer: Amir Karger +" $Date: 2004/06/13 19:28:45 $ +" $Revision: 1.1 $ +" Stolen from: Bram Moolenaar's C language file +" Newest version at: http://www.hec.utah.edu/~karger/vim/syntax/tads.vim +" History info at the bottom of the file + +" TODO lots more keywords +" global, self, etc. are special *objects*, not functions. They should +" probably be a different color than the special functions +" Actually, should cvtstr etc. be functions?! (change tadsFunction) +" Make global etc. into Identifiers, since we don't have regular variables? + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" A bunch of useful keywords +syn keyword tadsStatement goto break return continue pass +syn keyword tadsLabel case default +syn keyword tadsConditional if else switch +syn keyword tadsRepeat while for do +syn keyword tadsStorageClass local compoundWord formatstring specialWords +syn keyword tadsBoolean nil true + +" TADS keywords +syn keyword tadsKeyword replace modify +syn keyword tadsKeyword global self inherited +" builtin functions +syn keyword tadsKeyword cvtstr cvtnum caps lower upper substr +syn keyword tadsKeyword say length +syn keyword tadsKeyword setit setscore +syn keyword tadsKeyword datatype proptype +syn keyword tadsKeyword car cdr +syn keyword tadsKeyword defined isclass +syn keyword tadsKeyword find firstobj nextobj +syn keyword tadsKeyword getarg argcount +syn keyword tadsKeyword input yorn askfile +syn keyword tadsKeyword rand randomize +syn keyword tadsKeyword restart restore quit save undo +syn keyword tadsException abort exit exitobj + +syn keyword tadsTodo contained TODO FIXME XXX + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match tadsSpecial contained "\\." +syn region tadsDoubleString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=tadsSpecial,tadsEmbedded +syn region tadsSingleString start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=tadsSpecial +" Embedded expressions in strings +syn region tadsEmbedded contained start="<<" end=">>" contains=tadsKeyword + +" TADS doesn't have \xxx, right? +"syn match cSpecial contained "\\[0-7][0-7][0-7]\=\|\\." +"syn match cSpecialCharacter "'\\[0-7][0-7]'" +"syn match cSpecialCharacter "'\\[0-7][0-7][0-7]'" + +"catch errors caused by wrong parenthesis +"syn region cParen transparent start='(' end=')' contains=ALLBUT,cParenError,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel +"syn match cParenError ")" +"syn match cInParen contained "[{}]" +syn region tadsBrace transparent start='{' end='}' contains=ALLBUT,tadsBraceError,tadsIncluded,tadsSpecial,tadsTodo +syn match tadsBraceError "}" + +"integer number (TADS has no floating point numbers) +syn case ignore +syn match tadsNumber "\<[0-9]\+\>" +"hex number +syn match tadsNumber "\<0x[0-9a-f]\+\>" +syn match tadsIdentifier "\<[a-z][a-z0-9_$]*\>" +syn case match +" flag an octal number with wrong digits +syn match tadsOctalError "\<0[0-7]*[89]" + +" Removed complicated c_comment_strings +syn region tadsComment start="/\*" end="\*/" contains=tadsTodo +syn match tadsComment "//.*" contains=tadsTodo +syntax match tadsCommentError "\*/" + +syn region tadsPreCondit start="^\s*#\s*\(if\>\|ifdef\>\|ifndef\>\|elif\>\|else\>\|endif\>\)" skip="\\$" end="$" contains=tadsComment,tadsString,tadsNumber,tadsCommentError +syn region tadsIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match tadsIncluded contained "<[^>]*>" +syn match tadsInclude "^\s*#\s*include\>\s*["<]" contains=tadsIncluded +syn region tadsDefine start="^\s*#\s*\(define\>\|undef\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInBrace,tadsIdentifier + +syn region tadsPreProc start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" contains=ALLBUT,tadsPreCondit,tadsIncluded,tadsInclude,tadsDefine,tadsInParen,tadsIdentifier + +" Highlight User Labels +" TODO labels for gotos? +"syn region cMulti transparent start='?' end=':' contains=ALLBUT,cIncluded,cSpecial,cTodo,cUserCont,cUserLabel,cBitField +" Avoid matching foo::bar() in C++ by requiring that the next char is not ':' +"syn match cUserCont "^\s*\I\i*\s*:$" contains=cUserLabel +"syn match cUserCont ";\s*\I\i*\s*:$" contains=cUserLabel +"syn match cUserCont "^\s*\I\i*\s*:[^:]" contains=cUserLabel +"syn match cUserCont ";\s*\I\i*\s*:[^:]" contains=cUserLabel + +"syn match cUserLabel "\I\i*" contained + +" identifier: class-name [, class-name [...]] [property-list] ; +" Don't highlight comment in class def +syn match tadsClassDef "\[^/]*" contains=tadsObjectDef,tadsClass +syn match tadsClass contained "\" +syn match tadsObjectDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*[a-zA-Z0-9_$]\+\(\s*,\s*[a-zA-Z][a-zA-Z0-9_$]*\)*\(\s*;\)\=" +syn keyword tadsFunction contained function +syn match tadsFunctionDef "\<[a-zA-Z][a-zA-Z0-9_$]*\s*:\s*function[^{]*" contains=tadsFunction +"syn region tadsObject transparent start = '[a-zA-Z][\i$]\s*:\s*' end=";" contains=tadsBrace,tadsObjectDef + +" How far back do we go to find matching groups +if !exists("tads_minlines") + let tads_minlines = 15 +endif +exec "syn sync ccomment tadsComment minlines=" . tads_minlines +if !exists("tads_sync_dist") + let tads_sync_dist = 100 +endif +execute "syn sync maxlines=" . tads_sync_dist + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +" The default methods for highlighting. Can be overridden later +hi def link tadsFunctionDef Function +hi def link tadsFunction Structure +hi def link tadsClass Structure +hi def link tadsClassDef Identifier +hi def link tadsObjectDef Identifier +" no highlight for tadsEmbedded, so it prints as normal text w/in the string + +hi def link tadsOperator Operator +hi def link tadsStructure Structure +hi def link tadsTodo Todo +hi def link tadsLabel Label +hi def link tadsConditional Conditional +hi def link tadsRepeat Repeat +hi def link tadsException Exception +hi def link tadsStatement Statement +hi def link tadsStorageClass StorageClass +hi def link tadsKeyWord Keyword +hi def link tadsSpecial SpecialChar +hi def link tadsNumber Number +hi def link tadsBoolean Boolean +hi def link tadsDoubleString tadsString +hi def link tadsSingleString tadsString + +hi def link tadsOctalError tadsError +hi def link tadsCommentError tadsError +hi def link tadsBraceError tadsError +hi def link tadsInBrace tadsError +hi def link tadsError Error + +hi def link tadsInclude Include +hi def link tadsPreProc PreProc +hi def link tadsDefine Macro +hi def link tadsIncluded tadsString +hi def link tadsPreCondit PreCondit + +hi def link tadsString String +hi def link tadsComment Comment + + + +let b:current_syntax = "tads" + +" Changes: +" 11/18/99 Added a bunch of TADS functions, tadsException +" 10/22/99 Misspelled Moolenaar (sorry!), c_minlines to tads_minlines +" +" vim: ts=8 diff --git a/runtime/syntax/tags.vim b/runtime/syntax/tags.vim new file mode 100644 index 0000000..4c06dc1 --- /dev/null +++ b/runtime/syntax/tags.vim @@ -0,0 +1,31 @@ +" Language: tags +" Maintainer: Charles E. Campbell +" Last Change: Oct 26, 2016 +" Version: 8 +" URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +syn match tagName "^[^\t]\+" skipwhite nextgroup=tagPath +syn match tagPath "[^\t]\+" contained skipwhite nextgroup=tagAddr contains=tagBaseFile +syn match tagBaseFile "[a-zA-Z_]\+[\.a-zA-Z_0-9]*\t"me=e-1 contained +syn match tagAddr "\d*" contained skipwhite nextgroup=tagComment +syn region tagAddr matchgroup=tagDelim start="/" skip="\(\\\\\)*\\/" matchgroup=tagDelim end="$\|/" oneline contained skipwhite nextgroup=tagComment +syn match tagComment ";.*$" contained contains=tagField +syn match tagComment "^!_TAG_.*$" +syn match tagField contained "[a-z]*:" + +" Define the default highlighting. +if !exists("skip_drchip_tags_inits") + hi def link tagBaseFile PreProc + hi def link tagComment Comment + hi def link tagDelim Delimiter + hi def link tagField Number + hi def link tagName Identifier + hi def link tagPath PreProc +endif + +let b:current_syntax = "tags" diff --git a/runtime/syntax/tak.vim b/runtime/syntax/tak.vim new file mode 100644 index 0000000..7a8fceb --- /dev/null +++ b/runtime/syntax/tak.vim @@ -0,0 +1,119 @@ +" Vim syntax file +" Language: TAK2, TAK3, TAK2000 thermal modeling input file +" Maintainer: Adrian Nagle, anagle@ball.com +" Last Change: 2003 May 11 +" Filenames: *.tak +" URL: http://www.naglenet.org/vim/syntax/tak.vim +" MAIN URL: http://www.naglenet.org/vim/ + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Ignore case +syn case ignore + + + +" +" +" Begin syntax definitions for tak input file. +" + +" Force free-form fortran format +let fortran_free_source=1 + +" Load FORTRAN syntax file +runtime! syntax/fortran.vim +unlet b:current_syntax + + + +" Define keywords for TAK and TAKOUT +syn keyword takOptions AUTODAMP CPRINT CSGDUMP GPRINT HPRINT LODTMP +syn keyword takOptions LOGIC LPRINT NCVPRINT PLOTQ QPRINT QDUMP +syn keyword takOptions SUMMARY SOLRTN UID DICTIONARIES + +syn keyword takRoutine SSITER FWDWRD FWDBCK BCKWRD + +syn keyword takControl ABSZRO BACKUP DAMP DTIMEI DTIMEL DTIMEH IFC +syn keyword takControl MAXTEMP NLOOPS NLOOPT NODELIST OUTPUT PLOT +syn keyword takControl SCALE SIGMA SSCRIT TIMEND TIMEN TIMEO TRCRIT +syn keyword takControl PLOT + +syn keyword takSolids PLATE CYL +syn keyword takSolidsArg ID MATNAM NTYPE TEMP XL YL ZL ISTRN ISTRG NNX +syn keyword takSolidsArg NNY NNZ INCX INCY INCZ IAK IAC DIFF ARITH BOUN +syn keyword takSolidsArg RMIN RMAX AXMAX NNR NNTHETA INCR INCTHETA END + +syn case ignore + +syn keyword takMacro fac pstart pstop +syn keyword takMacro takcommon fstart fstop + +syn keyword takIdentifier flq flx gen ncv per sim siv stf stv tvd tvs +syn keyword takIdentifier tvt pro thm + + + +" Define matches for TAK +syn match takFortran "^F[0-9 ]"me=e-1 +syn match takMotran "^M[0-9 ]"me=e-1 + +syn match takComment "^C.*$" +syn match takComment "^R.*$" +syn match takComment "\$.*$" + +syn match takHeader "^header[^,]*" + +syn match takIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude + +syn match takInteger "-\=\<[0-9]*\>" +syn match takFloat "-\=\<[0-9]*\.[0-9]*" +syn match takScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>" + +syn match takEndData "END OF DATA" + +if exists("thermal_todo") + execute 'syn match takTodo ' . '"^'.thermal_todo.'.*$"' +else + syn match takTodo "^?.*$" +endif + + + +" Define the default highlighting +" Only when an item doesn't have highlighting yet + +hi def link takMacro Macro +hi def link takOptions Special +hi def link takRoutine Type +hi def link takControl Special +hi def link takSolids Special +hi def link takSolidsArg Statement +hi def link takIdentifier Identifier + +hi def link takFortran PreProc +hi def link takMotran PreProc + +hi def link takComment Comment +hi def link takHeader Typedef +hi def link takIncludeFile Type +hi def link takInteger Number +hi def link takFloat Float +hi def link takScientific Float + +hi def link takEndData Macro + +hi def link takTodo Todo + + + +let b:current_syntax = "tak" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/takcmp.vim b/runtime/syntax/takcmp.vim new file mode 100644 index 0000000..9426e02 --- /dev/null +++ b/runtime/syntax/takcmp.vim @@ -0,0 +1,69 @@ +" Vim syntax file +" Language: TAK2, TAK3, TAK2000 thermal modeling compare file +" Maintainer: Adrian Nagle, anagle@ball.com +" Last Change: 2003 May 11 +" Filenames: *.cmp +" URL: http://www.naglenet.org/vim/syntax/takcmp.vim +" MAIN URL: http://www.naglenet.org/vim/ + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Ignore case +syn case ignore + + + +" +" +" Begin syntax definitions for compare files. +" +" Define keywords for TAK compare + syn keyword takcmpUnit celsius fahrenheit + + + +" Define matches for TAK compare + syn match takcmpTitle "Steady State Temperature Comparison" + + syn match takcmpLabel "Run Date:" + syn match takcmpLabel "Run Time:" + syn match takcmpLabel "Temp. File \d Units:" + syn match takcmpLabel "Filename:" + syn match takcmpLabel "Output Units:" + + syn match takcmpHeader "^ *Node\( *File \d\)* *Node Description" + + syn match takcmpDate "\d\d\/\d\d\/\d\d" + syn match takcmpTime "\d\d:\d\d:\d\d" + syn match takcmpInteger "^ *-\=\<[0-9]*\>" + syn match takcmpFloat "-\=\<[0-9]*\.[0-9]*" + + + +" Define the default highlighting +" Only when an item doesn't have highlighting yet + +hi def link takcmpTitle Type +hi def link takcmpUnit PreProc + +hi def link takcmpLabel Statement + +hi def link takcmpHeader takHeader + +hi def link takcmpDate Identifier +hi def link takcmpTime Identifier +hi def link takcmpInteger Number +hi def link takcmpFloat Special + + + +let b:current_syntax = "takcmp" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/takout.vim b/runtime/syntax/takout.vim new file mode 100644 index 0000000..5e5d360 --- /dev/null +++ b/runtime/syntax/takout.vim @@ -0,0 +1,85 @@ +" Vim syntax file +" Language: TAK2, TAK3, TAK2000 thermal modeling output file +" Maintainer: Adrian Nagle, anagle@ball.com +" Last Change: 2003 May 11 +" Filenames: *.out +" URL: http://www.naglenet.org/vim/syntax/takout.vim +" MAIN URL: http://www.naglenet.org/vim/ + + + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + + + +" Ignore case +syn case match + + + +" Load TAK syntax file +runtime! syntax/tak.vim +unlet b:current_syntax + + + +" +" +" Begin syntax definitions for tak output files. +" + +" Define keywords for TAK output +syn case match + +syn keyword takoutPos ON SI +syn keyword takoutNeg OFF ENG + + + +" Define matches for TAK output +syn match takoutTitle "TAK III" +syn match takoutTitle "Release \d.\d\d" +syn match takoutTitle " K & K Associates *Thermal Analysis Kit III *Serial Number \d\d-\d\d\d" + +syn match takoutFile ": \w*\.TAK"hs=s+2 + +syn match takoutInteger "T\=[0-9]*\>"ms=s+1 + +syn match takoutSectionDelim "[-<>]\{4,}" contains=takoutSectionTitle +syn match takoutSectionDelim ":\=\.\{4,}:\=" contains=takoutSectionTitle +syn match takoutSectionTitle "[-<:] \w[0-9A-Za-z_() ]\+ [->:]"hs=s+1,me=e-1 + +syn match takoutHeaderDelim "=\{5,}" +syn match takoutHeaderDelim "|\{5,}" +syn match takoutHeaderDelim "+\{5,}" + +syn match takoutLabel "Input File:" contains=takoutFile +syn match takoutLabel "Begin Solution: Routine" + +syn match takoutError "<<< Error >>>" + + +" Define the default highlighting +" Only when an item doesn't have highlighting yet + +hi def link takoutPos Statement +hi def link takoutNeg PreProc +hi def link takoutTitle Type +hi def link takoutFile takIncludeFile +hi def link takoutInteger takInteger + +hi def link takoutSectionDelim Delimiter +hi def link takoutSectionTitle Exception +hi def link takoutHeaderDelim SpecialComment +hi def link takoutLabel Identifier + +hi def link takoutError Error + + + +let b:current_syntax = "takout" + +" vim: ts=8 sw=2 diff --git a/runtime/syntax/tap.vim b/runtime/syntax/tap.vim new file mode 100644 index 0000000..6b00b1d --- /dev/null +++ b/runtime/syntax/tap.vim @@ -0,0 +1,86 @@ +" Vim syntax file +" Language: Verbose TAP Output +" Maintainer: Rufus Cable +" Remark: Simple syntax highlighting for TAP output +" License: Vim License (see :help license) +" Copyright: (c) 2008-2013 Rufus Cable +" Last Change: 2020 Mar 15 + +if exists("b:current_syntax") + finish +endif + +syn match tapTestDiag /^ *#.*/ contains=tapTestTodo +syn match tapTestTime /^ *\[\d\d:\d\d:\d\d\].*/ contains=tapTestFile +syn match tapTestFile /\w\+\/[^. ]*/ contained +syn match tapTestFileWithDot /\w\+\/[^ ]*/ contained + +syn match tapTestPlan /^ *\d\+\.\.\d\+$/ + +" tapTest is a line like 'ok 1', 'not ok 2', 'ok 3 - xxxx' +syn match tapTest /^ *\(not \)\?ok \d\+.*/ contains=tapTestStatusOK,tapTestStatusNotOK,tapTestLine + +" tapTestLine is the line without the ok/not ok status - i.e. number and +" optional message +syn match tapTestLine /\d\+\( .*\|$\)/ contains=tapTestNumber,tapTestLoadMessage,tapTestTodo,tapTestSkip contained + +" turn ok/not ok messages green/red respectively +syn match tapTestStatusOK /ok/ contained +syn match tapTestStatusNotOK /not ok/ contained + +" highlight todo tests +syn match tapTestTodo /\c\(# TODO\|Failed (TODO)\) .*$/ contained contains=tapTestTodoRev +syn match tapTestTodoRev /\c\/ contained + +" highlight skipped tests +syn match tapTestSkip /\c# skip .*$/ contained contains=tapTestSkipTag +syn match tapTestSkipTag /\c\(# \)\@<=skip\>/ contained + +" look behind so "ok 123" and "not ok 124" match test number +syn match tapTestNumber /\(ok \)\@<=\d\d*/ contained +syn match tapTestLoadMessage /\*\*\*.*\*\*\*/ contained contains=tapTestThreeStars,tapTestFileWithDot +syn match tapTestThreeStars /\*\*\*/ contained + +syn region tapTestRegion start=/^ *\(not \)\?ok.*$/me=e+1 end=/^\(\(not \)\?ok\|# Looks like you planned \|All tests successful\|Bailout called\)/me=s-1 fold transparent excludenl +syn region tapTestResultsOKRegion start=/^\(All tests successful\|Result: PASS\)/ end=/$/ +syn region tapTestResultsNotOKRegion start=/^\(# Looks like you planned \|Bailout called\|# Looks like you failed \|Result: FAIL\)/ end=/$/ +syn region tapTestResultsSummaryRegion start=/^Test Summary Report/ end=/^Files=.*$/ contains=tapTestResultsSummaryHeading,tapTestResultsSummaryNotOK + +syn region tapTestResultsSummaryHeading start=/^Test Summary Report/ end=/^-\+$/ contained +syn region tapTestResultsSummaryNotOK start=/TODO passed:/ end=/$/ contained + +syn region tapTestInstructionsRegion start=/\%1l/ end=/^$/ + +syn sync fromstart + +if !exists("did_tapverboseoutput_syntax_inits") + let did_tapverboseoutput_syntax_inits = 1 + + hi tapTestStatusOK term=bold ctermfg=green guifg=Green + hi tapTestStatusNotOK term=reverse ctermfg=black ctermbg=red guifg=Black guibg=Red + hi tapTestTodo term=bold ctermfg=yellow ctermbg=black guifg=Yellow guibg=Black + hi tapTestTodoRev term=reverse ctermfg=black ctermbg=yellow guifg=Black guibg=Yellow + hi tapTestSkip term=bold ctermfg=lightblue guifg=LightBlue + hi tapTestSkipTag term=reverse ctermfg=black ctermbg=lightblue guifg=Black guibg=LightBlue + hi tapTestTime term=bold ctermfg=blue guifg=Blue + hi tapTestFile term=reverse ctermfg=black ctermbg=yellow guibg=Black guifg=Yellow + hi tapTestLoadedFile term=bold ctermfg=black ctermbg=cyan guibg=Cyan guifg=Black + hi tapTestThreeStars term=reverse ctermfg=blue guifg=Blue + hi tapTestPlan term=bold ctermfg=yellow guifg=Yellow + + hi link tapTestFileWithDot tapTestLoadedFile + hi link tapTestNumber Number + hi link tapTestDiag Comment + + hi tapTestRegion ctermbg=green + + hi tapTestResultsOKRegion ctermbg=green ctermfg=black + hi tapTestResultsNotOKRegion ctermbg=red ctermfg=black + + hi tapTestResultsSummaryHeading ctermbg=blue ctermfg=white + hi tapTestResultsSummaryNotOK ctermbg=red ctermfg=black + + hi tapTestInstructionsRegion ctermbg=lightmagenta ctermfg=black +endif + +let b:current_syntax="tapVerboseOutput" diff --git a/runtime/syntax/tar.vim b/runtime/syntax/tar.vim new file mode 100644 index 0000000..815c221 --- /dev/null +++ b/runtime/syntax/tar.vim @@ -0,0 +1,19 @@ +" Language : Tar Listing Syntax +" Maintainer : Bram Moolenaar +" Last change: Sep 08, 2004 + +if exists("b:current_syntax") + finish +endif + +syn match tarComment '^".*' contains=tarFilename +syn match tarFilename 'tarfile \zs.*' contained +syn match tarDirectory '.*/$' + +hi def link tarComment Comment +hi def link tarFilename Constant +hi def link tarDirectory Type + +let b:current_syntax = 'tar' + +" vim: ts=8 diff --git a/runtime/syntax/taskdata.vim b/runtime/syntax/taskdata.vim new file mode 100644 index 0000000..63a8284 --- /dev/null +++ b/runtime/syntax/taskdata.vim @@ -0,0 +1,45 @@ +" Vim syntax file +" Language: task data +" Maintainer: John Florian +" Updated: Wed Jul 8 19:46:20 EDT 2009 + + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +" Key Names for values. +syn keyword taskdataKey description due end entry imask mask parent +syn keyword taskdataKey priority project recur start status tags uuid +syn match taskdataKey "annotation_\d\+" +syn match taskdataUndo "^time.*$" +syn match taskdataUndo "^\(old \|new \|---\)" + +" Values associated with key names. +" +" Strings +syn region taskdataString matchgroup=Normal start=+"+ end=+"+ + \ contains=taskdataEncoded,taskdataUUID,@Spell +" +" Special Embedded Characters (e.g., ",") +syn match taskdataEncoded "&\a\+;" contained +" UUIDs +syn match taskdataUUID "\x\{8}-\(\x\{4}-\)\{3}\x\{12}" contained + + +" The default methods for highlighting. Can be overridden later. +hi def link taskdataEncoded Function +hi def link taskdataKey Statement +hi def link taskdataString String +hi def link taskdataUUID Special +hi def link taskdataUndo Type + +let b:current_syntax = "taskdata" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim:noexpandtab diff --git a/runtime/syntax/taskedit.vim b/runtime/syntax/taskedit.vim new file mode 100644 index 0000000..d33ca78 --- /dev/null +++ b/runtime/syntax/taskedit.vim @@ -0,0 +1,37 @@ +" Vim syntax file +" Language: support for 'task 42 edit' +" Maintainer: John Florian +" Updated: Wed Jul 8 19:46:32 EDT 2009 + + +" quit when a syntax file was already loaded. +if exists("b:current_syntax") + finish +endif +let s:keepcpo= &cpo +set cpo&vim + +syn match taskeditHeading "^\s*#\s*Name\s\+Editable details\s*$" contained +syn match taskeditHeading "^\s*#\s*-\+\s\+-\+\s*$" contained +syn match taskeditReadOnly "^\s*#\s*\(UU\)\?ID:.*$" contained +syn match taskeditReadOnly "^\s*#\s*Status:.*$" contained +syn match taskeditReadOnly "^\s*#\s*i\?Mask:.*$" contained +syn match taskeditKey "^ *.\{-}:" nextgroup=taskeditString +syn match taskeditComment "^\s*#.*$" + \ contains=taskeditReadOnly,taskeditHeading +syn match taskeditString ".*$" contained contains=@Spell + + +" The default methods for highlighting. Can be overridden later. +hi def link taskeditComment Comment +hi def link taskeditHeading Function +hi def link taskeditKey Statement +hi def link taskeditReadOnly Special +hi def link taskeditString String + +let b:current_syntax = "taskedit" + +let &cpo = s:keepcpo +unlet s:keepcpo + +" vim:noexpandtab diff --git a/runtime/syntax/tasm.vim b/runtime/syntax/tasm.vim new file mode 100644 index 0000000..b8b5e69 --- /dev/null +++ b/runtime/syntax/tasm.vim @@ -0,0 +1,115 @@ +" Vim syntax file +" Language: TASM: turbo assembler by Borland +" Maintainer: FooLman of United Force +" Last Change: 2012 Feb 03 by Thilo Six, and 2018 Nov 27. + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn case ignore +syn match tasmLabel "^[\ \t]*[@a-z_$][a-z0-9_$@]*\ *:" +syn keyword tasmDirective ALIAS ALIGN ARG ASSUME %BIN CATSRT CODESEG +syn match tasmDirective "\<\(byte\|word\|dword\|qword\)\ ptr\>" +" CALL extended syntax +syn keyword tasmDirective COMM %CONDS CONST %CREF %CREFALL %CREFREF +syn keyword tasmDirective %CREFUREF %CTLS DATASEG DB DD %DEPTH DF DISPLAY +syn keyword tasmDirective DOSSEG DP DQ DT DW ELSE EMUL END ENDIF +" IF XXXX +syn keyword tasmDirective ENDM ENDP ENDS ENUM EQU ERR EVEN EVENDATA EXITCODE +syn keyword tasmDirective EXITM EXTRN FARDATA FASTIMUL FLIPFLAG GETFIELD GLOBAL +syn keyword tasmDirective GOTO GROUP IDEAL %INCL INCLUDE INCLUDELIB INSTR IRP +"JMP +syn keyword tasmDirective IRPC JUMPS LABEL LARGESTACK %LINUM %LIST LOCAL +syn keyword tasmDirective LOCALS MACRO %MACS MASKFLAG MASM MASM51 MODEL +syn keyword tasmDirective MULTERRS NAME %NEWPAGE %NOCONDS %NOCREF %NOCTLS +syn keyword tasmDirective NOEMUL %NOINCL NOJUMPS %NOLIST NOLOCALS %NOMACS +syn keyword tasmDirective NOMASM51 NOMULTERRS NOSMART %NOSYMS %NOTRUNC NOWARN +syn keyword tasmDirective %PAGESIZE %PCNT PNO87 %POPLCTL POPSTATE PROC PROCDESC +syn keyword tasmDirective PROCTYPE PUBLIC PUBLICDLL PURGE %PUSHCTL PUSHSTATE +"rept, ret +syn keyword tasmDirective QUIRKS RADIX RECORD RETCODE SEGMENT SETFIELD +syn keyword tasmDirective SETFLAG SIZESTR SMALLSTACK SMART STACK STARTUPCODE +syn keyword tasmDirective STRUC SUBSTR %SUBTTL %SYMS TABLE %TABSIZE TBLINIT +syn keyword tasmDirective TBLINST TBLPTR TESTFLAG %TEXT %TITLE %TRUNC TYPEDEF +syn keyword tasmDirective UDATASEG UFARDATA UNION USES VERSION WAR WHILE ?DEBUG + +syn keyword tasmInstruction AAA AAD AAM AAS ADC ADD AND ARPL BOUND BSF BSR +syn keyword tasmInstruction BSWAP BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS +syn keyword tasmInstruction CMC CMP CMPXCHG CMPXCHG8B CPUID CWD CDQ CWDE +syn keyword tasmInstruction DAA DAS DEC DIV ENTER RETN RETF F2XM1 +syn keyword tasmCoprocInstr FABS FADD FADDP FBLD FBSTP FCHG FCOM FCOM2 FCOMI +syn keyword tasmCoprocInstr FCOMIP FCOMP FCOMP3 FCOMP5 FCOMPP FCOS FDECSTP +syn keyword tasmCoprocInstr FDISI FDIV FDIVP FDIVR FENI FFREE FFREEP FIADD +syn keyword tasmCoprocInstr FICOM FICOMP FIDIV FIDIVR FILD FIMUL FINIT FINCSTP +syn keyword tasmCoprocInstr FIST FISTP FISUB FISUBR FLD FLD1 FLDCW FLDENV +syn keyword tasmCoprocInstr FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP +syn keyword tasmCoprocInstr FNCLEX FNINIT FNOP FNSAVE FNSTCW FNSTENV FNSTSW +syn keyword tasmCoprocInstr FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FSCALE +syn keyword tasmCoprocInstr FSETPM FSIN FSINCOM FSQRT FST FSTP FSTP1 FSTP8 +syn keyword tasmCoprocInstr FSTP9 FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMI +syn keyword tasmCoprocInstr FUCOMPP FWAIT FXAM FXCH FXCH4 FXCH7 FXTRACT FYL2X +syn keyword tasmCoprocInstr FYL2XP1 FSTCW FCHS FSINCOS +syn keyword tasmInstruction IDIV IMUL IN INC INT INTO INVD INVLPG IRET JMP +syn keyword tasmInstruction LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT +syn keyword tasmInstruction LMSW LOCK LODSB LSL LSS LTR MOV MOVSX MOVZX MUL +syn keyword tasmInstruction NEG NOP NOT OR OUT POP POPA POPAD POPF POPFD PUSH +syn keyword tasmInstruction PUSHA PUSHAD PUSHF PUSHFD RCL RCR RDMSR RDPMC RDTSC +syn keyword tasmInstruction REP RET ROL ROR RSM SAHF SAR SBB SGDT SHL SAL SHLD +syn keyword tasmInstruction SHR SHRD SIDT SMSW STC STD STI STR SUB TEST VERR +syn keyword tasmInstruction VERW WBINVD WRMSR XADD XCHG XLAT XOR +syn keyword tasmMMXinst EMMS MOVD MOVQ PACKSSDW PACKSSWB PACKUSWB PADDB +syn keyword tasmMMXinst PADDD PADDSB PADDSB PADDSW PADDUSB PADDUSW PADDW +syn keyword tasmMMXinst PAND PANDN PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD +syn keyword tasmMMXinst PCMPGTW PMADDWD PMULHW PMULLW POR PSLLD PSLLQ +syn keyword tasmMMXinst PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW PSUBB PSUBD +syn keyword tasmMMXinst PSUBSB PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW +syn keyword tasmMMXinst PUNPCKHBQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD +syn keyword tasmMMXinst PXOR +"FCMOV +syn match tasmInstruction "\<\(CMPS\|MOVS\|OUTS\|SCAS\|STOS\|LODS\|INS\)[BWD]" +syn match tasmInstruction "\<\(CMOV\|SET\|J\)N\=[ABCGLESXZ]\>" +syn match tasmInstruction "\<\(CMOV\|SET\|J\)N\=[ABGL]E\>" +syn match tasmInstruction "\<\(LOOP\|REP\)N\=[EZ]\=\>" +syn match tasmRegister "\<[A-D][LH]\>" +syn match tasmRegister "\" +syn match tasmRegister "\<[C-GS]S\>" +syn region tasmComment start=";" end="$" +"HACK! comment ? ... selection +syn region tasmComment start="comment \+\$" end="\$" +syn region tasmComment start="comment \+\~" end="\~" +syn region tasmComment start="comment \+#" end="#" +syn region tasmString start="'" end="'" +syn region tasmString start='"' end='"' + +syn match tasmDec "\<-\=[0-9]\+\.\=[0-9]*\>" +syn match tasmHex "\<[0-9][0-9A-F]*H\>" +syn match tasmOct "\<[0-7]\+O\>" +syn match tasmBin "\<[01]\+B\>" + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link tasmString String +hi def link tasmDec Number +hi def link tasmHex Number +hi def link tasmOct Number +hi def link tasmBin Number +hi def link tasmInstruction Keyword +hi def link tasmCoprocInstr Keyword +hi def link tasmMMXInst Keyword +hi def link tasmDirective PreProc +hi def link tasmRegister Identifier +hi def link tasmProctype PreProc +hi def link tasmComment Comment +hi def link tasmLabel Label + + +let b:current_syntax = "tasm" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/tcl.vim b/runtime/syntax/tcl.vim new file mode 100644 index 0000000..59cb04f --- /dev/null +++ b/runtime/syntax/tcl.vim @@ -0,0 +1,274 @@ +" Vim syntax file +" Language: Tcl/Tk +" Maintainer: Taylor Venable +" (previously Brett Cannon ) +" (previously Dean Copsey ) +" (previously Matt Neumann ) +" (previously Allan Kelly ) +" Original: Robin Becker +" Last Change: 2021 Nov 16 +" Version: 1.14 plus improvements from PR #8948 +" URL: (removed, no longer worked) + +" quit when a syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Basic Tcl commands: http://www.tcl.tk/man/tcl8.6/TclCmd/contents.htm +syn keyword tclCommand after append array bgerror binary cd chan clock close concat +syn keyword tclCommand dde dict encoding eof error eval exec exit expr fblocked +syn keyword tclCommand fconfigure fcopy file fileevent flush format gets glob +syn keyword tclCommand global history http incr info interp join lappend lassign +syn keyword tclCommand lindex linsert list llength lmap load lrange lrepeat +syn keyword tclCommand lreplace lreverse lsearch lset lsort memory my namespace +syn keyword tclCommand next nextto open package pid puts pwd read refchan regexp +syn keyword tclCommand registry regsub rename scan seek self set socket source +syn keyword tclCommand split string subst tell time trace unknown unload unset +syn keyword tclCommand update uplevel upvar variable vwait + +" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.6/TclCmd/library.htm +syn keyword tclCommand auto_execok auto_import auto_load auto_mkindex auto_reset +syn keyword tclCommand auto_qualify tcl_findLibrary parray tcl_endOfWord +syn keyword tclCommand tcl_startOfNextWord tcl_startOfPreviousWord +syn keyword tclCommand tcl_wordBreakAfter tcl_wordBreakBefore + +" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.6/TclCmd/tclvars.htm +syn keyword tclVars auto_path env errorCode errorInfo tcl_library tcl_patchLevel +syn keyword tclVars tcl_pkgPath tcl_platform tcl_precision tcl_rcFileName +syn keyword tclVars tcl_traceCompile tcl_traceExec tcl_wordchars +syn keyword tclVars tcl_nonwordchars tcl_version argc argv argv0 tcl_interactive + +" Strings which expr accepts as boolean values, aside from zero / non-zero. +syn keyword tclBoolean true false on off yes no + +syn keyword tclProcCommand apply coroutine proc return tailcall yield yieldto +syn keyword tclConditional if then else elseif switch +syn keyword tclConditional catch try throw finally +syn keyword tclLabel default +syn keyword tclRepeat while for foreach break continue + +syn keyword tcltkSwitch contained insert create polygon fill outline tag + +" WIDGETS +" commands associated with widgets +syn keyword tcltkWidgetSwitch contained background highlightbackground insertontime cget +syn keyword tcltkWidgetSwitch contained selectborderwidth borderwidth highlightcolor insertwidth +syn keyword tcltkWidgetSwitch contained selectforeground cursor highlightthickness padx setgrid +syn keyword tcltkWidgetSwitch contained exportselection insertbackground pady takefocus +syn keyword tcltkWidgetSwitch contained font insertborderwidth relief xscrollcommand +syn keyword tcltkWidgetSwitch contained foreground insertofftime selectbackground yscrollcommand +syn keyword tcltkWidgetSwitch contained height spacing1 spacing2 spacing3 +syn keyword tcltkWidgetSwitch contained state tabs width wrap +" button +syn keyword tcltkWidgetSwitch contained command default +" canvas +syn keyword tcltkWidgetSwitch contained closeenough confine scrollregion xscrollincrement yscrollincrement orient +" checkbutton, radiobutton +syn keyword tcltkWidgetSwitch contained indicatoron offvalue onvalue selectcolor selectimage state variable +" entry, frame +syn keyword tcltkWidgetSwitch contained show class colormap container visual +" listbox, menu +syn keyword tcltkWidgetSwitch contained selectmode postcommand selectcolor tearoff tearoffcommand title type +" menubutton, message +syn keyword tcltkWidgetSwitch contained direction aspect justify +" scale +syn keyword tcltkWidgetSwitch contained bigincrement digits from length resolution showvalue sliderlength sliderrelief tickinterval to +" scrollbar +syn keyword tcltkWidgetSwitch contained activerelief elementborderwidth +" image +syn keyword tcltkWidgetSwitch contained delete names types create +" variable reference + " ::optional::namespaces +syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*" + " ${...} may contain any character except '}' +syn match tclVarRef "${[^}]*}" + +" Used to facilitate hack to utilize string background for certain color +" schemes, e.g. inkpot and lettuce. +syn cluster tclVarRefC add=tclVarRef +syn cluster tclSpecialC add=tclSpecial + +" The syntactic unquote-splicing replacement for [expand]. +syn match tclExpand '\s{\*}' +syn match tclExpand '^{\*}' + +" menu, mane add +syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator +syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak +syn keyword tcltkWidgetSwitch contained font foreground hidemargin image indicatoron label menu offvalue onvalue +syn keyword tcltkWidgetSwitch contained selectcolor selectimage state underline value variable +syn keyword tcltkWidgetSwitch contained add clone configure delete entrycget entryconfigure index insert invoke +syn keyword tcltkWidgetSwitch contained post postcascade type unpost yposition activate +"syn keyword tcltkWidgetSwitch contained +"syn match tcltkWidgetSwitch contained +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef + +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +" These words are dual purpose. +" match switches +"syn match tcltkWidgetSwitch contained "-text"hs=s+1 +syn match tcltkWidgetSwitch contained "-text\(var\)\?"hs=s+1 +syn match tcltkWidgetSwitch contained "-menu"hs=s+1 +syn match tcltkWidgetSwitch contained "-label"hs=s+1 +" match commands - 2 lines for pretty match. +"variable +" Special case - If a number follows a variable region, it must be at the end of +" the pattern, by definition. Therefore, (1) either include a number as the region +" end and exclude tclNumber from the contains list, or (2) make variable +" keepend. As (1) would put variable out of step with everything else, use (2). +syn region tcltkCommand matchgroup=tcltkCommandColor start="^\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand +syn region tcltkCommand matchgroup=tcltkCommandColor start="\s\\|\[\"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tclString,tclNumber,tclVarRef,tcltkCommand +" menu +syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\\|\[\"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +" label +syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\\|\[\"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef +" text +syn region tcltkWidget matchgroup=tcltkWidgetColor start="^\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tcltkSwitch,tclNumber,tclVarRef,tclString +syn region tcltkWidget matchgroup=tcltkWidgetColor start="\s\\|\[\"hs=s+1 matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidget,tcltkWidgetSwitch,tclString,tcltkSwitch,tclNumber,tclVarRef + +" This isn't contained (I don't think) so it's OK to just associate with the Color group. +" TODO: This could be wrong. +syn keyword tcltkWidgetColor toplevel + + +syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef keepend +syn region tcltkPackConf matchgroup=tcltkPackConfColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkWidgetSwitch,tclString,tcltkSwitch,tcltkPackConfSwitch,tclNumber,tclVarRef + + +" NAMESPACE +" commands associated with namespace +syn keyword tcltkNamespaceSwitch contained children code current delete eval +syn keyword tcltkNamespaceSwitch contained export forget import inscope origin +syn keyword tcltkNamespaceSwitch contained parent qualifiers tail which command variable +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="{\|}\|]\|\"\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkNamespaceSwitch + +" EXPR +" commands associated with expr +syn keyword tcltkMaths contained abs acos asin atan atan2 bool ceil cos cosh double entier +syn keyword tcltkMaths contained exp floor fmod hypot int isqrt log log10 max min pow rand +syn keyword tcltkMaths contained round sin sinh sqrt srand tan tanh wide + +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf + +" format +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1 contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf + +" PACK +" commands associated with pack +syn keyword tcltkPackSwitch contained forget info propagate slaves +syn keyword tcltkPackConfSwitch contained after anchor before expand fill in ipadx ipady padx pady side +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkPackSwitch,tcltkPackConf,tcltkPackConfSwitch,tclNumber,tclVarRef,tclString,tcltkCommand keepend + +" STRING +" commands associated with string +syn keyword tcltkStringSwitch contained compare first index last length match range tolower toupper trim trimleft trimright wordstart wordend +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkStringSwitch,tclNumber,tclVarRef,tclString,tcltkCommand + +" ARRAY +" commands associated with array +syn keyword tcltkArraySwitch contained anymore donesearch exists get names nextelement size startsearch set +" match from command name to ] or EOL +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkArraySwitch,tclNumber,tclVarRef,tclString,tcltkCommand + +" LSORT +" switches for lsort +syn keyword tcltkLsortSwitch contained ascii dictionary integer real command increasing decreasing index +" match from command name to ] or EOL +syn region tcltkCommand matchgroup=tcltkCommandColor start="\" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"he=e-1 contains=tclLineContinue,tcltkLsortSwitch,tclNumber,tclVarRef,tclString,tcltkCommand + +syn keyword tclTodo contained TODO + +" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16 +" Octal, hexadecimal, Unicode codepoints, and the classics. +" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'. +syn match tclSpecial contained '\\\(\o\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)' +syn match tclSpecial contained '\\[\[\]\{\}\"\$]' + +" Command appearing inside another command or inside a string. +syn region tclEmbeddedStatement start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement +" A string needs the skip argument as it may legitimately contain \". +" Match at start of line +syn region tclString start=+^"+ end=+"+ contains=@tclSpecialC,@Spell skip=+\\\\\|\\"+ +"Match all other legal strings. +syn region tclString start=+[^\\]"+ms=s+1 end=+"+ contains=@tclSpecialC,@tclVarRefC,tclEmbeddedStatement,@Spell skip=+\\\\\|\\"+ + +" Line continuation is backslash immediately followed by newline. +syn match tclLineContinue '\\$' + +if exists('g:tcl_warn_continuation') + syn match tclNotLineContinue '\\\s\+$' +endif + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match tclNumber "\<\d\+\(u\=l\=\|lu\|f\)\>" +"floating point number, with dot, optional exponent +syn match tclNumber "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, starting with a dot, optional exponent +syn match tclNumber "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match tclNumber "\<\d\+e[-+]\=\d\+[fl]\=\>" +"hex number +syn match tclNumber "0x\x\+\(u\=l\=\|lu\)\>" +"syn match tclIdentifier "\<\h\w*\>" +syn case match + +syn region tclComment start="^\s*\#" skip="\\$" end="$" contains=tclTodo,@Spell +syn region tclComment start=/;\s*\#/hs=s+1 skip="\\$" end="$" contains=tclTodo,@Spell + +"syn match tclComment /^\s*\#.*$/ +"syn match tclComment /;\s*\#.*$/hs=s+1 + +"syn sync ccomment tclComment + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link tcltkSwitch Special +hi def link tclExpand Special +hi def link tclLabel Label +hi def link tclConditional Conditional +hi def link tclRepeat Repeat +hi def link tclNumber Number +hi def link tclError Error +hi def link tclCommand Statement +hi def link tclProcCommand Type +hi def link tclString String +hi def link tclComment Comment +hi def link tclSpecial Special +hi def link tclTodo Todo +" Below here are the commands and their options. +hi def link tcltkCommandColor Statement +hi def link tcltkWidgetColor Structure +hi def link tclLineContinue WarningMsg +if exists('g:tcl_warn_continuation') +hi def link tclNotLineContinue ErrorMsg +endif +hi def link tcltkStringSwitch Special +hi def link tcltkArraySwitch Special +hi def link tcltkLsortSwitch Special +hi def link tcltkPackSwitch Special +hi def link tcltkPackConfSwitch Special +hi def link tcltkMaths Special +hi def link tcltkNamespaceSwitch Special +hi def link tcltkWidgetSwitch Special +hi def link tcltkPackConfColor Identifier +hi def link tclVarRef Identifier + + +let b:current_syntax = "tcl" + +" vim: ts=8 noet nolist diff --git a/runtime/syntax/tcsh.vim b/runtime/syntax/tcsh.vim new file mode 100644 index 0000000..6837125 --- /dev/null +++ b/runtime/syntax/tcsh.vim @@ -0,0 +1,255 @@ +" Vim syntax file +" Language: tcsh scripts +" Maintainer: Doug Kearns +" Previous Maintainer: Gautam Iyer where NoSpam=gmail (Original Author) +" Last Change: 2021 Oct 15 + +" Description: We break up each statement into a "command" and an "end" part. +" All groups are either a "command" or part of the "end" of a statement (ie +" everything after the "command"). This is because blindly highlighting tcsh +" statements as keywords caused way too many false positives. Eg: +" +" set history=200 +" +" causes history to come up as a keyword, which we want to avoid. + +" Quit when a syntax file was already loaded +if exists('b:current_syntax') + finish +endif + +let s:oldcpo = &cpo +set cpo&vim " Line continuation is used + +syn iskeyword @,48-57,_,192-255,- + +syn case match + +" ----- Clusters ----- {{{1 +syn cluster tcshModifiers contains=tcshModifier,tcshModifierError +syn cluster tcshQuoteList contains=tcshDQuote,tcshSQuote,tcshBQuote +syn cluster tcshStatementEnds contains=@tcshQuoteList,tcshComment,@tcshVarList,tcshRedir,tcshMeta,tcshHereDoc,tcshSpecial,tcshArgument +syn cluster tcshStatements contains=tcshBuiltin,tcshCommands,tcshIf,tcshWhile +syn cluster tcshVarList contains=tcshUsrVar,tcshArgv,tcshSubst +syn cluster tcshConditions contains=tcshCmdSubst,tcshParenExpr,tcshOperator,tcshNumber,@tcshVarList + +" ----- Errors ----- {{{1 +" Define first, so can be easily overridden. +syn match tcshError contained '\v\S.+' + +" ----- Statements ----- {{{1 +" Tcsh commands: Any filename / modifiable variable (must be first!) +syn match tcshCommands '\v[a-zA-Z0-9\\./_$:-]+' contains=tcshSpecial,tcshUsrVar,tcshArgv,tcshVarError nextgroup=tcshStatementEnd + +" Builtin commands except those treated specially. Currently (un)set(env), +" (un)alias, if, while, else, bindkey +syn keyword tcshBuiltin nextgroup=tcshStatementEnd alloc bg break breaksw builtins bye case cd chdir complete continue default dirs echo echotc end endif endsw eval exec exit fg filetest foreach getspath getxvers glob goto hashstat history hup inlib jobs kill limit log login logout ls ls-F migrate newgrp nice nohup notify onintr popd printenv pushd rehash repeat rootnode sched setpath setspath settc setty setxvers shift source stop suspend switch telltc termname time umask uncomplete unhash universe unlimit ver wait warp watchlog where which + +" StatementEnd is anything after a built-in / command till the lexical end of a +" statement (;, |, ||, |&, && or end of line) +syn region tcshStatementEnd transparent contained matchgroup=tcshBuiltin start='' end='\v\\@|$' contains=@tcshConditions,tcshSpecial,@tcshStatementEnds +syn region tcshIfEnd contained matchgroup=tcshBuiltin contains=@tcshConditions,tcshSpecial start='(' end='\v\)%(\s+then>)?' skipwhite nextgroup=@tcshStatementEnds +syn region tcshIfEnd contained matchgroup=tcshBuiltin contains=tcshCommands,tcshSpecial start='\v\{\s+' end='\v\s+\}%(\s+then>)?' skipwhite nextgroup=@tcshStatementEnds keepend + +" else statements +syn keyword tcshBuiltin nextgroup=tcshIf skipwhite else + +" while statements (contains expressions / operators) +syn keyword tcshBuiltin nextgroup=@tcshConditions,tcshSpecial skipwhite while + +" Conditions (for if and while) +syn region tcshParenExpr contained contains=@tcshConditions,tcshSpecial matchgroup=tcshBuiltin start='(' end=')' +syn region tcshCmdSubst contained contains=tcshCommands matchgroup=tcshBuiltin start='\v\{\s+' end='\v\s+\}' keepend + +" Bindkey. Internal editor functions +syn keyword tcshBindkeyFuncs contained backward-char backward-delete-char + \ backward-delete-word backward-kill-line backward-word + \ beginning-of-line capitalize-word change-case + \ change-till-end-of-line clear-screen complete-word + \ complete-word-fwd complete-word-back complete-word-raw + \ copy-prev-word copy-region-as-kill dabbrev-expand delete-char + \ delete-char-or-eof delete-char-or-list + \ delete-char-or-list-or-eof delete-word digit digit-argument + \ down-history downcase-word end-of-file end-of-line + \ exchange-point-and-mark expand-glob expand-history expand-line + \ expand-variables forward-char forward-word + \ gosmacs-transpose-chars history-search-backward + \ history-search-forward insert-last-word i-search-fwd + \ i-search-back keyboard-quit kill-line kill-region + \ kill-whole-line list-choices list-choices-raw list-glob + \ list-or-eof load-average magic-space newline newline-and-hold + \ newline-and-down-history normalize-path normalize-command + \ overwrite-mode prefix-meta quoted-insert redisplay + \ run-fg-editor run-help self-insert-command sequence-lead-in + \ set-mark-command spell-word spell-line stuff-char + \ toggle-literal-history transpose-chars transpose-gosling + \ tty-dsusp tty-flush-output tty-sigintr tty-sigquit tty-sigtsusp + \ tty-start-output tty-stop-output undefined-key + \ universal-argument up-history upcase-word + \ vi-beginning-of-next-word vi-add vi-add-at-eol vi-chg-case + \ vi-chg-meta vi-chg-to-eol vi-cmd-mode vi-cmd-mode-complete + \ vi-delprev vi-delmeta vi-endword vi-eword vi-char-back + \ vi-char-fwd vi-charto-back vi-charto-fwd vi-insert + \ vi-insert-at-bol vi-repeat-char-fwd vi-repeat-char-back + \ vi-repeat-search-fwd vi-repeat-search-back vi-replace-char + \ vi-replace-mode vi-search-back vi-search-fwd vi-substitute-char + \ vi-substitute-line vi-word-back vi-word-fwd vi-undo vi-zero + \ which-command yank yank-pop e_copy_to_clipboard + \ e_paste_from_clipboard e_dosify_next e_dosify_prev e_page_up + \ e_page_down +syn keyword tcshBuiltin nextgroup=tcshBindkeyEnd bindkey +syn region tcshBindkeyEnd contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$' contains=@tcshQuoteList,tcshComment,@tcshVarList,tcshMeta,tcshSpecial,tcshArgument,tcshBindkeyFuncs + +" Expressions start with @. +syn match tcshExprStart '\v\@\s+' nextgroup=tcshExprVar +syn match tcshExprVar contained '\v\h\w*%(\[\d+\])?' contains=tcshShellVar,tcshEnvVar nextgroup=tcshExprOp +syn match tcshExprOp contained '++\|--' +syn match tcshExprOp contained '\v\s*\=' nextgroup=tcshExprEnd +syn match tcshExprEnd contained '\v.*$'hs=e+1 contains=@tcshConditions +syn match tcshExprEnd contained '\v.{-};'hs=e contains=@tcshConditions + +" ----- Comments: ----- {{{1 +syn match tcshComment '#\s.*' contains=tcshTodo,tcshCommentTi,@Spell +syn match tcshComment '\v#($|\S.*)' contains=tcshTodo,tcshCommentTi +syn match tcshSharpBang '^#! .*$' +syn match tcshCommentTi contained '\v#\s*\u\w*(\s+\u\w*)*:'hs=s+1 contains=tcshTodo +syn match tcshTodo contained '\v\c' + +" ----- Strings ----- {{{1 +" Tcsh does not allow \" in strings unless the "backslash_quote" shell +" variable is set. Set the vim variable "tcsh_backslash_quote" to 0 if you +" want VIM to assume that no backslash quote constructs exist. + +" Backquotes are treated as commands, and are not contained in anything +if exists('tcsh_backslash_quote') && tcsh_backslash_quote == 0 + syn region tcshSQuote keepend contained start="\v\\@, >>, >>&, >>!, >>&!] +syn match tcshRedir contained '\v\<|\>\>?\&?!?' + +" Meta-chars +syn match tcshMeta contained '\v[]{}*?[]' + +" Here documents (<<) +syn region tcshHereDoc contained matchgroup=tcshShellVar start='\v\<\<\s*\z(\h\w*)' end='^\z1$' contains=@tcshVarList,tcshSpecial +syn region tcshHereDoc contained matchgroup=tcshShellVar start="\v\<\<\s*'\z(\h\w*)'" start='\v\<\<\s*"\z(\h\w*)"$' start='\v\<\<\s*\\\z(\h\w*)$' end='^\z1$' + +" Operators +syn match tcshOperator contained '&&\|!\~\|!=\|<<\|<=\|==\|=\~\|>=\|>>\|\*\|\^\|\~\|||\|!\|%\|&\|+\|-\|/\|<\|>\||' +"syn match tcshOperator contained '[(){}]' + +" Numbers +syn match tcshNumber contained '\v<-?\d+>' + +" Arguments +syn match tcshArgument contained '\v\s@<=-(\w|-)*' + +" Special characters. \xxx, or backslashed characters. +"syn match tcshSpecial contained '\v\\@ +" Last Change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar + +" Quit when a (custom) syntax file was already loaded +if exists("b:current_syntax") + finish +endif + +" Known template types are very similar to HTML, E.g. golang and "Xfire User +" Interface Template" +" If you know how to recognize a more specific type for *.tmpl suggest a +" change to runtime/scripts.vim. +runtime! syntax/html.vim diff --git a/runtime/syntax/teraterm.vim b/runtime/syntax/teraterm.vim new file mode 100644 index 0000000..9115320 --- /dev/null +++ b/runtime/syntax/teraterm.vim @@ -0,0 +1,140 @@ +" Vim syntax file +" Language: Tera Term Language (TTL) +" Based on Tera Term Version 4.100 +" Maintainer: Ken Takata +" URL: https://github.com/k-takata/vim-teraterm +" Last Change: 2018-08-31 +" Filenames: *.ttl +" License: VIM License + +if exists("b:current_syntax") + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +syn case ignore + +syn region ttlComment start=";" end="$" contains=@Spell +syn region ttlComment start="/\*" end="\*/" contains=@Spell +syn region ttlFirstComment start="/\*" end="\*/" contained contains=@Spell + \ nextgroup=ttlStatement,ttlFirstComment + +syn match ttlCharacter "#\%(\d\+\|\$\x\+\)\>" +syn match ttlNumber "\%(\<\d\+\|\$\x\+\)\>" +syn match ttlString "'[^']*'" contains=@Spell +syn match ttlString '"[^"]*"' contains=@Spell +syn cluster ttlConstant contains=ttlCharacter,ttlNumber,ttlString + +syn match ttlLabel ":\s*\w\{1,32}\>" + +syn keyword ttlOperator and or xor not + +syn match ttlVar "\" +syn match ttlVar "\" +syn keyword ttlVar inputstr matchstr paramcnt params result timeout mtimeout + + +syn match ttlLine nextgroup=ttlStatement "^" +syn match ttlStatement contained "\s*" + \ nextgroup=ttlIf,ttlElseIf,ttlConditional,ttlRepeat, + \ ttlFirstComment,ttlComment,ttlLabel,@ttlCommand + +syn cluster ttlCommand contains=ttlControlCommand,ttlCommunicationCommand, + \ ttlStringCommand,ttlFileCommand,ttlPasswordCommand, + \ ttlMiscCommand + + +syn keyword ttlIf contained nextgroup=ttlIfExpression if +syn keyword ttlElseIf contained nextgroup=ttlElseIfExpression elseif + +syn match ttlIfExpression contained "\s.*" + \ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen, + \ @ttlCommand +syn match ttlElseIfExpression contained "\s.*" + \ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen + +syn keyword ttlThen contained then +syn keyword ttlConditional contained else endif + +syn keyword ttlRepeat contained for next until enduntil while endwhile +syn match ttlRepeat contained + \ "\<\%(do\|loop\)\%(\s\+\%(while\|until\)\)\?\>" +syn keyword ttlControlCommand contained + \ break call continue end execcmnd exit goto include + \ mpause pause return + + +syn keyword ttlCommunicationCommand contained + \ bplusrecv bplussend callmenu changedir clearscreen + \ closett connect cygconnect disconnect dispstr + \ enablekeyb flushrecv gethostname getmodemstatus + \ gettitle kmtfinish kmtget kmtrecv kmtsend loadkeymap + \ logautoclosemode logclose loginfo logopen logpause + \ logrotate logstart logwrite quickvanrecv + \ quickvansend recvln restoresetup scprecv scpsend + \ send sendbreak sendbroadcast sendfile sendkcode + \ sendln sendlnbroadcast sendlnmulticast sendmulticast + \ setbaud setdebug setdtr setecho setflowctrl + \ setmulticastname setrts setspeed setsync settitle + \ showtt testlink unlink wait wait4all waitevent + \ waitln waitn waitrecv waitregex xmodemrecv + \ xmodemsend ymodemrecv ymodemsend zmodemrecv + \ zmodemsend +syn keyword ttlStringCommand contained + \ code2str expandenv int2str regexoption sprintf + \ sprintf2 str2code str2int strcompare strconcat + \ strcopy strinsert strjoin strlen strmatch strremove + \ strreplace strscan strspecial strsplit strtrim + \ tolower toupper +syn keyword ttlFileCommand contained + \ basename dirname fileclose fileconcat filecopy + \ filecreate filedelete filelock filemarkptr fileopen + \ filereadln fileread filerename filesearch fileseek + \ fileseekback filestat filestrseek filestrseek2 + \ filetruncate fileunlock filewrite filewriteln + \ findfirst findnext findclose foldercreate + \ folderdelete foldersearch getdir getfileattr makepath + \ setdir setfileattr +syn keyword ttlPasswordCommand contained + \ delpassword getpassword ispassword passwordbox + \ setpassword +syn keyword ttlMiscCommand contained + \ beep bringupbox checksum8 checksum8file checksum16 + \ checksum16file checksum32 checksum32file closesbox + \ clipb2var crc16 crc16file crc32 crc32file exec + \ dirnamebox filenamebox getdate getenv getipv4addr + \ getipv6addr getspecialfolder gettime getttdir getver + \ ifdefined inputbox intdim listbox messagebox random + \ rotateleft rotateright setdate setdlgpos setenv + \ setexitcode settime show statusbox strdim uptime + \ var2clipb yesnobox + + +hi def link ttlCharacter Character +hi def link ttlNumber Number +hi def link ttlComment Comment +hi def link ttlFirstComment Comment +hi def link ttlString String +hi def link ttlLabel Label +hi def link ttlIf Conditional +hi def link ttlElseIf Conditional +hi def link ttlThen Conditional +hi def link ttlConditional Conditional +hi def link ttlRepeat Repeat +hi def link ttlControlCommand Keyword +hi def link ttlVar Identifier +hi def link ttlOperator Operator +hi def link ttlCommunicationCommand Keyword +hi def link ttlStringCommand Keyword +hi def link ttlFileCommand Keyword +hi def link ttlPasswordCommand Keyword +hi def link ttlMiscCommand Keyword + +let b:current_syntax = "teraterm" + +let &cpo = s:save_cpo +unlet s:save_cpo + +" vim: ts=8 sw=2 sts=2 diff --git a/runtime/syntax/terminfo.vim b/runtime/syntax/terminfo.vim new file mode 100644 index 0000000..2b0ab08 --- /dev/null +++ b/runtime/syntax/terminfo.vim @@ -0,0 +1,93 @@ +" Vim syntax file +" Language: terminfo(5) definition +" Previous Maintainer: Nikolai Weibull +" Latest Revision: 2006-04-19 + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn match terminfoKeywords '[,=#|]' + +syn keyword terminfoTodo contained TODO FIXME XXX NOTE + +syn region terminfoComment display oneline start='^#' end='$' + \ contains=terminfoTodo,@Spell + +syn match terminfoNumbers '\<[0-9]\+\>' + +syn match terminfoSpecialChar '\\\(\o\{3}\|[Eenlrtbfs^\,:0]\)' +syn match terminfoSpecialChar '\^\a' + +syn match terminfoDelay '$<[0-9]\+>' + +syn keyword terminfoBooleans bw am bce ccc xhp xhpa cpix crxw xt xenl eo gn + \ hc chts km daisy hs hls in lpix da db mir + \ msgr nxon xsb npc ndscr nrrmc os mc5i xcpa + \ sam eslok hz ul xon + +syn keyword terminfoNumerics cols it lh lw lines lm xmc ma colors pairs wnum + \ ncv nlab pb vt wsl bitwin bitype bufsz btns + \ spinh spinv maddr mjump mcs npins orc orhi + \ orl orvi cps widcs + +syn keyword terminfoStrings acsc cbt bel cr cpi lpi chr cvr csr rmp tbc mgc + \ clear el1 el ed hpa cmdch cwin cup cud1 home + \ civis cub1 mrcup cnorm cuf1 ll cuu1 cvvis + \ defc dch1 dl1 dial dsl dclk hd enacs smacs + \ smam blink bold smcup smdc dim swidm sdrfq + \ smir sitm slm smicm snlq snrmq prot rev + \ invis sshm smso ssubm ssupm smul sum smxon + \ ech rmacs rmam sgr0 rmcup rmdc rwidm rmir + \ ritm rlm rmicm rshm rmso rsubm rsupm rmul + \ rum rmxon pause hook flash ff fsl wingo hup + \ is1 is2 is3 if iprog initc initp ich1 il1 ip + \ ka1 ka3 kb2 kbs kbeg kcbt kc1 kc3 kcan ktbc + \ kclr kclo kcmd kcpy kcrt kctab kdch1 kdl1 + \ kcud1 krmir kend kent kel ked kext kfnd khlp + \ khome kich1 kil1 kcub1 kll kmrk kmsg kmov + \ knxt knp kopn kopt kpp kprv kprt krdo kref + \ krfr krpl krst kres kcuf1 ksav kBEG kCAN + \ kCMD kCPY kCRT kDC kDL kslt kEND kEOL kEXT + \ kind kFND kHLP kHOM kIC kLFT kMSG kMOV kNXT + \ kOPT kPRV kPRT kri kRDO kRPL kRIT kRES kSAV + \ kSPD khts kUND kspd kund kcuu1 rmkx smkx + \ lf0 lf1 lf10 lf2 lf3 lf4 lf5 lf6 lf7 lf8 lf9 + \ fln rmln smln rmm smm mhpa mcud1 mcub1 mcuf1 + \ mvpa mcuu1 nel porder oc op pad dch dl cud + \ mcud ich indn il cub mcub cuf mcuf rin cuu + \ mccu pfkey pfloc pfx pln mc0 mc5p mc4 mc5 + \ pulse qdial rmclk rep rfi rs1 rs2 rs3 rf rc + \ vpa sc ind ri scs sgr setbsmgb smgbp sclk + \ scp setb setf smgl smglp smgr smgrp hts smgt + \ smgtp wind sbim scsd rbim rcsd subcs supcs + \ ht docr tsl tone uc hu u0 u1 u2 u3 u4 u5 u6 + \ u7 u8 u9 wait xoffc xonc zerom scesa bicr + \ binel birep csnm csin colornm defbi devt + \ dispc endbi smpch smsc rmpch rmsc getm kmous + \ minfo pctrm pfxl reqmp scesc s0ds s1ds s2ds + \ s3ds setab setaf setcolor smglr slines smgtb + \ ehhlm elhlm erhlm ethlm evhlm sgr1 slengthsL +syn match terminfoStrings display '\' + +syn match terminfoParameters '%[%dcspl+*/mAO&|^=<>!~i?te;-]' +syn match terminfoParameters "%\('[A-Z]'\|{[0-9]\{1,2}}\|p[1-9]\|P[a-z]\|g[A-Z]\)" + +hi def link terminfoComment Comment +hi def link terminfoTodo Todo +hi def link terminfoNumbers Number +hi def link terminfoSpecialChar SpecialChar +hi def link terminfoDelay Special +hi def link terminfoBooleans Type +hi def link terminfoNumerics Type +hi def link terminfoStrings Type +hi def link terminfoParameters Keyword +hi def link terminfoKeywords Keyword + +let b:current_syntax = "terminfo" + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/runtime/syntax/testdir/README.txt b/runtime/syntax/testdir/README.txt new file mode 100644 index 0000000..22b6084 --- /dev/null +++ b/runtime/syntax/testdir/README.txt @@ -0,0 +1,97 @@ +Tests for syntax highlighting plugins +===================================== + +Summary: Files in the "input" directory are edited by Vim with syntax +highlighting enabled. Screendumps are generated and compared with the +expected screendumps in the "dumps" directory. This will uncover any +character attributes that differ. + +Without any further setup a screendump is made at the top of the file (using +_00.dump) and another one at the end of the file (using _99.dump). The dumps +are normally 20 screen lines tall. + +When the screendumps are OK an empty "done/{name}" file is created. This +avoids running the test again until "make clean" is used. Thus you can run +"make test", see one test fail, try to fix the problem, then run "make test" +again to only repeat the failing test. + +When a screendump differs it is stored in the "failed" directory. This allows +for comparing it with the expected screendump, using a command like: + + let fname = '{name}_99.dump' + call term_dumpdiff('failed/' .. fname, 'dumps/' .. fname) + + +Creating a syntax plugin test +----------------------------- + +Create a source file in the language you want to test in the "input" +directory. Make sure to include some interesting constructs with complicated +highlighting. + +Use the filetype name as the base and a file name extension matching the +filetype. Let's use Java as an example. The file would then be +"input/java.java". + +If there is no further setup required, you can now run the tests: + make test + +The first time this will fail with an error for a missing screendump. The +newly created screendumps will be "failed/java_00.dump", +"failed/java_01.dump", etc. You can inspect each with: + + call term_dumpload('failed/java_00.dump') + call term_dumpload('failed/java_01.dump') + ... + call term_dumpload('failed/java_99.dump') + +If they look OK, move them to the "dumps" directory: + + :!mv failed/java_00.dump dumps + :!mv failed/java_01.dump dumps + ... + :!mv failed/java_99.dump dumps + +If you now run the test again, it will succeed. + + +Adjusting a syntax plugin test +------------------------------ + +If you make changes to the syntax plugin, you should add code to the input +file to see the effect of these changes. So that the effect of the changes +are covered by the test. You can follow these steps: + +1. Edit the syntax plugin somewhere in your personal setup. Use a file + somewhere to try out the changes. +2. Go to the directory where you have the Vim code checked out and replace the + syntax plugin. Run the tests: "make test". Usually the tests will still + pass, but if you fixed syntax highlighting that was already visible in the + input file, carefully check that the changes in the screendump are + intentional: + let fname = '{name}_99.dump' + call term_dumpdiff('failed/' .. fname, 'dumps/' .. fname) + Fix the syntax plugin until the result is good. +2. Edit the input file for your language to add the items you have improved. + (TODO: how to add another screendump?). + Run the tests and you should get failures. Like with the previous step, + carefully check that the new screendumps in the "failed" directory are + good. Update the syntax plugin and the input file until the highlighting + is good and you can see the effect of the syntax plugin improvements. Then + move the screendumps from the "failed" to the "dumps" directory. Now "make + test" should succeed. +3. Prepare a pull request with the modified files: + - syntax plugin: syntax/{name}.vim + - test input file: syntax/testdir/input/{name}.{ext} + - test dump files: syntax/testdir/dumps/{name}_99.dump + +As an extra check you can temporarily put back the old syntax plugin and +verify that the tests fail. Then you know your changes are covered by the +test. + + + +TODO: run test for one specific filetype + +TODO: testing with various option values +TODO: test syncing by jumping around diff --git a/runtime/syntax/testdir/dumps/c_00.dump b/runtime/syntax/testdir/dumps/c_00.dump new file mode 100644 index 0000000..d32cbd2 --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_00.dump @@ -0,0 +1,20 @@ +>/+0#0000e05#ffffff0|*| |v|i|:|s|e|t| |t|s|=|8+0#e000002&| +0#0000e05&|s|t|s|=|4+0#e000002&| +0#0000e05&|s|w|=|4+0#e000002&| +0#0000e05&|n|o|e|t|:| +0#0000000&@43 +| +0#0000e05&|*| +0#0000000&@72 +| +0#0000e05&|*| |V|I|M| |-| |V|i| |I|M|p|r|o|v|e|d| @3|b|y| |B|r|a|m| |M|o@1|l|e|n|a@1|r| +0#0000000&@33 +| +0#0000e05&|*| +0#0000000&@72 +| +0#0000e05&|*| |D|o| |"+0#e000002&|:|h|e|l|p| |u|g|a|n|d|a|"| +0#0000e05&@1|i|n| |V|i|m| |t|o| |r|e|a|d| |c|o|p|y|i|n|g| |a|n|d| |u|s|a|g|e| |c|o|n|d|i|t|i|o|n|s|.| +0#0000000&@8 +| +0#0000e05&|*| |D|o| |"+0#e000002&|:|h|e|l|p| |c|r|e|d|i|t|s|"| +0#0000e05&|i|n| |V|i|m| |t|o| |s|e@1| |a| |l|i|s|t| |o|f| |p|e|o|p|l|e| |w|h|o| |c|o|n|t|r|i|b|u|t|e|d|.| +0#0000000&@5 +| +0#0000e05&|*| |S|e@1| |R|E|A|D|M|E|.|t|x|t| |f|o|r| |a|n| |o|v|e|r|v|i|e|w| |o|f| |t|h|e| |V|i|m| |s|o|u|r|c|e| |c|o|d|e|.| +0#0000000&@17 +| +0#0000e05&|*|/| +0#0000000&@71 +@75 +|#+0#e000e06&|d|e|f|i|n|e| |E|X|T|E|R|N| +0#0000000&@60 +|#+0#e000e06&|i|n|c|l|u|d|e| |"+0#e000002&|v|i|m|.|h|"| +0#0000000&@58 +@75 +|#+0#e000e06&|i|f|d|e|f| |_@1|C|Y|G|W|I|N|_@1| +0#0000000&@57 +|#+0#e000e06&| |i|n|c|l|u|d|e| |<+0#e000002&|c|y|g|w|i|n|/|v|e|r|s|i|o|n|.|h|>| +0#0000000&@46 +|#+0#e000e06&| |i|n|c|l|u|d|e| |<+0#e000002&|s|y|s|/|c|y|g|w|i|n|.|h|>| +0#0000000&@7|/+0#0000e05&@1| |f|o|r| |c|y|g|w|i|n|_|c|o|n|v|_|t|o|_|p|o|s|i|x|_|p|a|t|h|(|)| |a|n|d|/|o|r| +0#0000000&@1 +@32|/+0#0000e05&@1| |c|y|g|w|i|n|_|c|o|n|v|_|p|a|t|h|(|)| +0#0000000&@21 +|#+0#e000e06&| |i|n|c|l|u|d|e| |<+0#e000002&|l|i|m|i|t|s|.|h|>| +0#0000000&@54 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +@75 +|"|i|n|p|u|t|/|c|.|c|"| |1|2@1|L|,| |3|1|7|4|B| @33|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/c_01.dump b/runtime/syntax/testdir/dumps/c_01.dump new file mode 100644 index 0000000..cd6ae05 --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_01.dump @@ -0,0 +1,20 @@ +|#+0#e000e06#ffffff0| |i|n|c|l|u|d|e| |<+0#e000002&|c|y|g|w|i|n|/|v|e|r|s|i|o|n|.|h|>| +0#0000000&@46 +|#+0#e000e06&| |i|n|c|l|u|d|e| |<+0#e000002&|s|y|s|/|c|y|g|w|i|n|.|h|>| +0#0000000&@7|/+0#0000e05&@1| |f|o|r| |c|y|g|w|i|n|_|c|o|n|v|_|t|o|_|p|o|s|i|x|_|p|a|t|h|(|)| |a|n|d|/|o|r| +0#0000000&@1 +@32|/+0#0000e05&@1| |c|y|g|w|i|n|_|c|o|n|v|_|p|a|t|h|(|)| +0#0000000&@21 +|#+0#e000e06&| |i|n|c|l|u|d|e| |<+0#e000002&|l|i|m|i|t|s|.|h|>| +0#0000000&@54 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +> @74 +|#+0#e000e06&|i|f| |d|e|f|i|n|e|d|(|M|S|W|I|N|)| |&@1| |(|!|d|e|f|i|n|e|d|(|F|E|A|T|_|G|U|I|_|M|S|W|I|N|)| ||@1| |d|e|f|i|n|e|d|(|V|I|M|D|L@1|)@1| +0#0000000&@7 +|#+0#e000e06&| |i|n|c|l|u|d|e| |"+0#e000002&|i|s|c|y|g|p|t|y|.|h|"| +0#0000000&@52 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +@75 +|/+0#0000e05&@1| |V|a|l|u|e|s| |f|o|r| |e|d|i|t|_|t|y|p|e|.| +0#0000000&@50 +|#+0#e000e06&|d|e|f|i|n|e| |E|D|I|T|_|N|O|N|E| @2|0+0#e000002&| +0#e000e06&@6|/+0#0000e05&@1| |n|o| |e|d|i|t| |t|y|p|e| |y|e|t| +0#0000000&@27 +|#+0#e000e06&|d|e|f|i|n|e| |E|D|I|T|_|F|I|L|E| @2|1+0#e000002&| +0#e000e06&@6|/+0#0000e05&@1| |f|i|l|e| |n|a|m|e| |a|r|g|u|m|e|n|t|[|s|]| |g|i|v|e|n|,| |u|s|e| |a|r|g|u|m|e|n|t| |l|i +|s|t| +0#0000000&@72 +|#+0#e000e06&|d|e|f|i|n|e| |E|D|I|T|_|S|T|D|I|N| @1|2+0#e000002&| +0#e000e06&@6|/+0#0000e05&@1| |r|e|a|d| |f|i|l|e| |f|r|o|m| |s|t|d|i|n| +0#0000000&@23 +|#+0#e000e06&|d|e|f|i|n|e| |E|D|I|T|_|T|A|G| @3|3+0#e000002&| +0#e000e06&@6|/+0#0000e05&@1| |t|a|g| |n|a|m|e| |a|r|g|u|m|e|n|t| |g|i|v|e|n|,| |u|s|e| |t|a|g|n|a|m|e| +0#0000000&@7 +|#+0#e000e06&|d|e|f|i|n|e| |E|D|I|T|_|Q|F| @4|4+0#e000002&| +0#e000e06&@6|/+0#0000e05&@1| |s|t|a|r|t| |i|n| |q|u|i|c|k|f|i|x| |m|o|d|e| +0#0000000&@21 +@75 +|#+0#e000e06&|i|f| |(|d|e|f|i|n|e|d|(|U|N|I|X|)| ||@1| |d|e|f|i|n|e|d|(|V|M|S|)@1| |&@1| |!|d|e|f|i|n|e|d|(|N|O|_|V|I|M|_|M|A|I|N|)| +0#0000000&@14 +@57|1|9|,|0|-|1| @7|1|2|%| diff --git a/runtime/syntax/testdir/dumps/c_02.dump b/runtime/syntax/testdir/dumps/c_02.dump new file mode 100644 index 0000000..82820ff --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_02.dump @@ -0,0 +1,20 @@ +|s+0#00e0003#ffffff0|t|a|t|i|c| +0#0000000&|i+0#00e0003&|n|t| +0#0000000&|f|i|l|e|_|o|w|n|e|d|(|c+0#00e0003&|h|a|r| +0#0000000&|*|f|n|a|m|e|)|;| @39 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|m|a|i|n|e|r@1|(|i+0#00e0003&|n|t|,+0#0000000&| |c|h|a|r|_|u| |*|)|;| @39 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|e|a|r|l|y|_|a|r|g|_|s|c|a|n|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @31 +|#+0#e000e06&|i|f|n|d|e|f| |N|O|_|V|I|M|_|M|A|I|N| +0#0000000&@55 +>s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|u|s|a|g|e|(|v+0#00e0003&|o|i|d|)+0#0000000&|;| @50 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|p|a|r|s|e|_|c|o|m@1|a|n|d|_|n|a|m|e|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @27 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|c|o|m@1|a|n|d|_|l|i|n|e|_|s|c|a|n|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @28 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|c|h|e|c|k|_|t@1|y|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @36 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|r|e|a|d|_|s|t|d|i|n|(|v+0#00e0003&|o|i|d|)+0#0000000&|;| @45 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|c|r|e|a|t|e|_|w|i|n|d|o|w|s|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @31 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|e|d|i|t|_|b|u|f@1|e|r|s|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|,| |c|h|a|r|_|u| |*|c|w|d|)|;| @20 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|e|x|e|_|p|r|e|_|c|o|m@1|a|n|d|s|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @29 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|e|x|e|_|c|o|m@1|a|n|d|s|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @33 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|s|o|u|r|c|e|_|s|t|a|r|t|u|p|_|s|c|r|i|p|t|s|(|m|p|a|r|m|_|T| |*|p|a|r|m|p|)|;| @23 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|m|a|i|n|_|s|t|a|r|t|_|g|u|i|(|v+0#00e0003&|o|i|d|)+0#0000000&|;| @41 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|c|h|e|c|k|_|s|w|a|p|_|e|x|i|s|t|s|_|a|c|t|i|o|n|(|v+0#00e0003&|o|i|d|)+0#0000000&|;| @31 +|#+0#e000e06&| |i|f|d|e|f| |F|E|A|T|_|E|V|A|L| +0#0000000&@57 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|s|e|t|_|p|r|o|g|p|a|t|h|(|c|h|a|r|_|u| |*|a|r|g|v|0|)|;| @34 +@57|3|7|,|1| @9|3|0|%| diff --git a/runtime/syntax/testdir/dumps/c_03.dump b/runtime/syntax/testdir/dumps/c_03.dump new file mode 100644 index 0000000..5f0e8d8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_03.dump @@ -0,0 +1,20 @@ +|s+0#00e0003#ffffff0|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|s|e|t|_|p|r|o|g|p|a|t|h|(|c|h|a|r|_|u| |*|a|r|g|v|0|)|;| @34 +|#+0#e000e06&| |e|n|d|i|f| +0#0000000&@67 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +@75 +@75 +>/+0#0000e05&|*| +0#0000000&@72 +| +0#0000e05&|*| |D|i|f@1|e|r|e|n|t| |t|y|p|e|s| |o|f| |e|r@1|o|r| |m|e|s@1|a|g|e|s|.| +0#0000000&@37 +| +0#0000e05&|*|/| +0#0000000&@71 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|c+0#00e0003&|h|a|r| +0#0000000&|*|(|m|a|i|n|_|e|r@1|o|r|s|[|]|)| |=| @44 +|{| @73 +@4|N|_|(|"+0#e000002&|U|n|k|n|o|w|n| |o|p|t|i|o|n| |a|r|g|u|m|e|n|t|"|)+0#0000000&|,| @40 +|#+0#e000e06&|d|e|f|i|n|e| |M|E|_|U|N|K|N|O|W|N|_|O|P|T|I|O|N| @6|0+0#e000002&| +0#0000000&@41 +@4|N|_|(|"+0#e000002&|T|o@1| |m|a|n|y| |e|d|i|t| |a|r|g|u|m|e|n|t|s|"|)+0#0000000&|,| @40 +|#+0#e000e06&|d|e|f|i|n|e| |M|E|_|T|O@1|_|M|A|N|Y|_|A|R|G|S| @7|1+0#e000002&| +0#0000000&@41 +@4|N|_|(|"+0#e000002&|A|r|g|u|m|e|n|t| |m|i|s@1|i|n|g| |a|f|t|e|r|"|)+0#0000000&|,| @41 +|#+0#e000e06&|d|e|f|i|n|e| |M|E|_|A|R|G|_|M|I|S@1|I|N|G| @9|2+0#e000002&| +0#0000000&@41 +@4|N|_|(|"+0#e000002&|G|a|r|b|a|g|e| |a|f|t|e|r| |o|p|t|i|o|n| |a|r|g|u|m|e|n|t|"|)+0#0000000&|,| @34 +|#+0#e000e06&|d|e|f|i|n|e| |M|E|_|G|A|R|B|A|G|E| @13|3+0#e000002&| +0#0000000&@41 +|@+0#4040ff13&@2| @71 +| +0#0000000&@56|5@1|,|1| @9|4|7|%| diff --git a/runtime/syntax/testdir/dumps/c_04.dump b/runtime/syntax/testdir/dumps/c_04.dump new file mode 100644 index 0000000..9864b88 --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_04.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|N|_|(|"+0#e000002&|T|o@1| |m|a|n|y| |\+0#e000e06&|"|++0#e000002&|c|o|m@1|a|n|d|\+0#e000e06&|"|,+0#e000002&| |\+0#e000e06&|"|-+0#e000002&|c| |c|o|m@1|a|n|d|\+0#e000e06&|"| +0#e000002&|o|r| |\+0#e000e06&|"|-+0#e000002&@1|c|m|d| |c|o|m@1|a|n|d|\+0#e000e06&|"| +0#e000002&|a|r|g|u|m|e|n|t +|s|"|)+0#0000000&|,| @70 +|#+0#e000e06&|d|e|f|i|n|e| |M|E|_|E|X|T|R|A|_|C|M|D| @11|4+0#e000002&| +0#0000000&@41 +@4|N|_|(|"+0#e000002&|I|n|v|a|l|i|d| |a|r|g|u|m|e|n|t| |f|o|r|"|)+0#0000000&|,| @43 +|#+0#e000e06&|d|e|f|i|n|e| |M|E|_|I|N|V|A|L|I|D|_|A|R|G| @9|5+0#e000002&| +0#0000000&@41 +|}|;| @72 +> @74 +|#+0#e000e06&|i|f|n|d|e|f| |P|R|O|T|O| @10|/+0#0000e05&@1| |d|o|n|'|t| |w|a|n|t| |a| |p|r|o|t|o|t|y|p|e| |f|o|r| |m|a|i|n|(|)| +0#0000000&@14 +@75 +|/+0#0000e05&@1| |V|a|r|i|o|u|s| |p|a|r|a|m|e|t|e|r|s| |p|a|s@1|e|d| |b|e|t|w|e@1|n| |m|a|i|n|(|)| |a|n|d| |o|t|h|e|r| |f|u|n|c|t|i|o|n|s|.| +0#0000000&@10 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|m|p|a|r|m|_|T| @1|p|a|r|a|m|s|;| @51 +@75 +|#+0#e000e06&|i|f|d|e|f| |_|I|O|L|B|F| +0#0000000&@61 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|*|s|_|v|b|u|f| |=| |N+0#e000002&|U|L@1|;+0#0000000&| @12|/+0#0000e05&@1| |b|u|f@1|e|r| |f|o|r| |s|e|t|v|b|u|f|(|)| +0#0000000&@11 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +@75 +|#+0#e000e06&|i|f|n|d|e|f| |N|O|_|V|I|M|_|M|A|I|N| @4|/+0#0000e05&@1| |s|k|i|p| |t|h|i|s| |f|o|r| |u|n|i|t@1|e|s|t|s| +0#0000000&@24 +@75 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|c|h|a|r|_|u| |*|s|t|a|r|t|_|d|i|r| |=| |N+0#e000002&|U|L@1|;+0#0000000&| @7|/+0#0000e05&@1| |c|u|r@1|e|n|t| |w|o|r|k|i|n|g| |d|i|r| |o|n| |s|t|a|r|t|u|p| +0#0000000&@1 +@57|7|3|,|0|-|1| @7|6|4|%| diff --git a/runtime/syntax/testdir/dumps/c_05.dump b/runtime/syntax/testdir/dumps/c_05.dump new file mode 100644 index 0000000..5b977ea --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_05.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|s+0#00e0003&|t|a|t|i|c| +0#0000000&|i+0#00e0003&|n|t| +0#0000000&|h|a|s|_|d|a|s|h|_|c|_|a|r|g| |=| |F|A|L|S|E|;| @40 +@75 +|#+0#e000e06&| |i|f|d|e|f| |V|I|M|D|L@1| +0#0000000&@60 +|_@1|d|e|c|l|s|p|e|c|(|d|l@1|e|x|p|o|r|t|)| @53 +>#+0#e000e06&| |e|n|d|i|f| +0#0000000&@67 +@4|i+0#00e0003&|n|t| +0#0000000&@67 +|#+0#e000e06&| |i|f|d|e|f| |M|S|W|I|N| +0#0000000&@61 +|V|i|m|M|a|i|n| @67 +|#+0#e000e06&| |e|l|s|e| +0#0000000&@68 +|m|a|i|n| @70 +|#+0#e000e06&| |e|n|d|i|f| +0#0000000&@67 +|(|i+0#00e0003&|n|t| +0#0000000&|a|r|g|c|,| |c+0#00e0003&|h|a|r| +0#0000000&|*@1|a|r|g|v|)| @51 +|{| @73 +|#+0#e000e06&|i|f| |d|e|f|i|n|e|d|(|S|T|A|R|T|U|P|T|I|M|E|)| ||@1| |d|e|f|i|n|e|d|(|C|L|E|A|N|_|R|U|N|T|I|M|E|P|A|T|H|)| +0#0000000&@20 +@4|i+0#00e0003&|n|t| +0#0000000&@8|i|;| @56 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +@75 +@4|/+0#0000e05&|*| +0#0000000&@68 +@57|9|1|,|1| @9|8|2|%| diff --git a/runtime/syntax/testdir/dumps/c_06.dump b/runtime/syntax/testdir/dumps/c_06.dump new file mode 100644 index 0000000..fd7fe90 --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_06.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|/+0#0000e05&|*| +0#0000000&@68 +| +0#0000e05&@4|*| |D|o| |a|n|y| |s|y|s|t|e|m|-|s|p|e|c|i|f|i|c| |i|n|i|t|i|a|l|i|s|a|t|i|o|n|s|.| @1|T|h|e|s|e| |c|a|n| |N|O|T| |u|s|e| |I|O|b|u|f@1| |o|r +| @4|*| |N|a|m|e|B|u|f@1|.| @1|T|h|u|s| |e|m|s|g|2|(|)| |c|a|n@1|o|t| |b|e| |c|a|l@1|e|d|!| +0#0000000&@26 +| +0#0000e05&@4|*|/| +0#0000000&@67 +@4|m|c|h|_|e|a|r|l|y|_|i|n|i|t|(|)|;| @53 +> @74 +@4|/+0#0000e05&@1| |S|o|u|r|c|e| |s|t|a|r|t|u|p| |s|c|r|i|p|t|s|.| +0#0000000&@44 +@4|s|o|u|r|c|e|_|s|t|a|r|t|u|p|_|s|c|r|i|p|t|s|(|&|p|a|r|a|m|s|)|;| @38 +@75 +|#+0#e000e06&|i|f| |0| +0#0000000&@69 +| +0#0000e05&@3|/|*| +0#0000000&@68 +| +0#0000e05&@4|*| |N|e|w|e|r| |v|e|r|s|i|o|n| |o|f| |M|z|S|c|h|e|m|e| |(|R|a|c|k|e|t|)| |r|e|q|u|i|r|e| |e|a|r|l|i|e|r| |(|t|r|a|m|p|o|l|i|n|e|d|)| +0#0000000&@3 +| +0#0000e05&@4|*| |i|n|i|t|i|a|l|i|s|a|t|i|o|n| |v|i|a| |s|c|h|e|m|e|_|m|a|i|n|_|s|e|t|u|p|.| +0#0000000&@30 +| +0#0000e05&@4|*|/| +0#0000000&@67 +| +0#0000e05&@3|r|e|t|u|r|n| |m|z|s|c|h|e|m|e|_|m|a|i|n|(|)|;| +0#0000000&@47 +|#+0#e000e06&|e|l|s|e| +0#0000000&@69 +@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|v|i|m|_|m|a|i|n|2|(|)|;| @51 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +|}| @73 +@57|1|0|9|,|0|-|1| @6|B|o|t| diff --git a/runtime/syntax/testdir/dumps/c_99.dump b/runtime/syntax/testdir/dumps/c_99.dump new file mode 100644 index 0000000..14b51cd --- /dev/null +++ b/runtime/syntax/testdir/dumps/c_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|/+0#0000e05&|*| +0#0000000&@68 +| +0#0000e05&@4|*| |D|o| |a|n|y| |s|y|s|t|e|m|-|s|p|e|c|i|f|i|c| |i|n|i|t|i|a|l|i|s|a|t|i|o|n|s|.| @1|T|h|e|s|e| |c|a|n| |N|O|T| |u|s|e| |I|O|b|u|f@1| |o|r +| @4|*| |N|a|m|e|B|u|f@1|.| @1|T|h|u|s| |e|m|s|g|2|(|)| |c|a|n@1|o|t| |b|e| |c|a|l@1|e|d|!| +0#0000000&@26 +| +0#0000e05&@4|*|/| +0#0000000&@67 +@4|m|c|h|_|e|a|r|l|y|_|i|n|i|t|(|)|;| @53 +@75 +@4|/+0#0000e05&@1| |S|o|u|r|c|e| |s|t|a|r|t|u|p| |s|c|r|i|p|t|s|.| +0#0000000&@44 +@4|s|o|u|r|c|e|_|s|t|a|r|t|u|p|_|s|c|r|i|p|t|s|(|&|p|a|r|a|m|s|)|;| @38 +@75 +|#+0#e000e06&|i|f| |0| +0#0000000&@69 +| +0#0000e05&@3|/|*| +0#0000000&@68 +| +0#0000e05&@4|*| |N|e|w|e|r| |v|e|r|s|i|o|n| |o|f| |M|z|S|c|h|e|m|e| |(|R|a|c|k|e|t|)| |r|e|q|u|i|r|e| |e|a|r|l|i|e|r| |(|t|r|a|m|p|o|l|i|n|e|d|)| +0#0000000&@3 +| +0#0000e05&@4|*| |i|n|i|t|i|a|l|i|s|a|t|i|o|n| |v|i|a| |s|c|h|e|m|e|_|m|a|i|n|_|s|e|t|u|p|.| +0#0000000&@30 +| +0#0000e05&@4|*|/| +0#0000000&@67 +| +0#0000e05&@3|r|e|t|u|r|n| |m|z|s|c|h|e|m|e|_|m|a|i|n|(|)|;| +0#0000000&@47 +|#+0#e000e06&|e|l|s|e| +0#0000000&@69 +@4|r+0#af5f00255&|e|t|u|r|n| +0#0000000&|v|i|m|_|m|a|i|n|2|(|)|;| @51 +|#+0#e000e06&|e|n|d|i|f| +0#0000000&@68 +>}| @73 +@57|1|2@1|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/html_00.dump b/runtime/syntax/testdir/dumps/html_00.dump new file mode 100644 index 0000000..d1b2b91 --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_00.dump @@ -0,0 +1,20 @@ +><+0#0000e05#ffffff0|!|-@1| +0#0000000&@70 +| +0#0000e05&@1|H|T|M|L| |S|y|n|t|a|x| |T|e|s|t| |F|i|l|e| +0#0000000&@51 +| +0#0000e05&@1|M|a|i|n|t|a|i|n|e|r|:| |D|o|u|g| |K|e|a|r|n|s| |<|d|o|u|g|k|e|a|r|n|s|@|g|m|a|i|l|.|c|o|m|>| +0#0000000&@26 +| +0#0000e05&@1|L|a|s|t| |C|h|a|n|g|e|:| |2|0|2|3| |N|o|v| |2|8| +0#0000000&@48 +|-+0#0000e05&@1|>| +0#0000000&@71 +@75 +|<+0#0000e05&|!|-@1| |H|T|M|L| |E|l|e|m|e|n|t|s| |-@1|>| +0#0000000&@52 +|<+0#00e0e07&|a+0#af5f00255&|>+0#00e0e07&| +0#0000000&@71 +|<+0#00e0e07&|a+0#af5f00255&|b@1|r|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|a+0#af5f00255&|d@1|r|e|s@1|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|a+0#af5f00255&|r|e|a|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|a+0#af5f00255&|r|t|i|c|l|e|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|a+0#af5f00255&|s|i|d|e|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|a+0#af5f00255&|u|d|i|o|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|b+0#af5f00255&|>+0#00e0e07&|.+2#0000000&@2|<+0#00e0e07&|/|b+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|b+0#af5f00255&|a|s|e|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|b+0#af5f00255&|d|i|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|b+0#af5f00255&|d|o|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|b+0#af5f00255&|l|o|c|k|q|u|o|t|e|>+0#00e0e07&| +0#0000000&@62 +|"|i|n|p|u|t|/|h|t|m|l|.|h|t|m|l|"| |1|4|6|L|,| |1|4|1|7|B| @27|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/html_01.dump b/runtime/syntax/testdir/dumps/html_01.dump new file mode 100644 index 0000000..c855f7b --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_01.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|a+0#af5f00255&|u|d|i|o|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|b+0#af5f00255&|>+0#00e0e07&|.+2#0000000&@2|<+0#00e0e07&|/|b+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|b+0#af5f00255&|a|s|e|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|b+0#af5f00255&|d|i|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|b+0#af5f00255&|d|o|>+0#00e0e07&| +0#0000000&@69 +><+0#00e0e07&|b+0#af5f00255&|l|o|c|k|q|u|o|t|e|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|b+0#af5f00255&|o|d|y|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|b+0#af5f00255&|r|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|b+0#af5f00255&|u|t@1|o|n|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|c+0#af5f00255&|a|n|v|a|s|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|c+0#af5f00255&|a|p|t|i|o|n|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|c+0#af5f00255&|i|t|e|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|c+0#af5f00255&|o|d|e|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|c+0#af5f00255&|o|l|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|c+0#af5f00255&|o|l|g|r|o|u|p|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|d+0#af5f00255&|a|t|a|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|d+0#af5f00255&|a|t|a|l|i|s|t|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|d+0#af5f00255&@1|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|d+0#af5f00255&|e|l|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|d+0#af5f00255&|e|l|>+0#00e0e07&| +0#0000000&@60 +@57|1|9|,|1| @9|1|0|%| diff --git a/runtime/syntax/testdir/dumps/html_02.dump b/runtime/syntax/testdir/dumps/html_02.dump new file mode 100644 index 0000000..9499f2e --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_02.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|d+0#af5f00255&|e|l|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|d+0#af5f00255&|e|l|>+0#00e0e07&| +0#0000000&@60 +|<+0#00e0e07&|d+0#af5f00255&|e|t|a|i|l|s|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|d+0#af5f00255&|f|n|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|d+0#af5f00255&|i|a|l|o|g|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|d+0#af5f00255&|i|v|>+0#00e0e07&| +0#0000000&@69 +><+0#00e0e07&|d+0#af5f00255&|l|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|d+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|e+0#af5f00255&|m|>+0#00e0e07&|.+4#0000000&@2|<+0#00e0e07&|/|e+0#af5f00255&|m|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|e+0#af5f00255&|m|b|e|d|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|f+0#af5f00255&|i|e|l|d|s|e|t|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|f+0#af5f00255&|i|g|c|a|p|t|i|o|n|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|f+0#af5f00255&|i|g|u|r|e|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|f+0#af5f00255&|o@1|t|e|r|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|f+0#af5f00255&|o|r|m|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|h+0#af5f00255&|1|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|1|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|h+0#af5f00255&|2|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|2|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|h+0#af5f00255&|3|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|3|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|h+0#af5f00255&|4|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|4|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|h+0#af5f00255&|5|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|5|>+0#00e0e07&| +0#0000000&@62 +@57|3|7|,|1| @9|2|4|%| diff --git a/runtime/syntax/testdir/dumps/html_03.dump b/runtime/syntax/testdir/dumps/html_03.dump new file mode 100644 index 0000000..088da73 --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_03.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|h+0#af5f00255&|5|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|5|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|h+0#af5f00255&|6|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|6|>+0#00e0e07&| +0#0000000&@62 +|<+0#00e0e07&|h+0#af5f00255&|e|a|d|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|h+0#af5f00255&|e|a|d|>+0#00e0e07&| +0#0000000&@58 +|<+0#00e0e07&|h+0#af5f00255&|e|a|d|e|r|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|h+0#af5f00255&|g|r|o|u|p|>+0#00e0e07&| +0#0000000&@66 +><+0#00e0e07&|h+0#af5f00255&|r|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|h+0#af5f00255&|t|m|l|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|i+0#af5f00255&|>+0#00e0e07&|.+4#0000000&@2|<+0#00e0e07&|/|i+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|i+0#af5f00255&|f|r|a|m|e|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|i+0#af5f00255&|m|g|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|i+0#af5f00255&|n|p|u|t|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|i+0#af5f00255&|n|s|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|k+0#af5f00255&|b|d|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|l+0#af5f00255&|a|b|e|l|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|l+0#af5f00255&|e|g|e|n|d|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|l+0#af5f00255&|i|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|l+0#af5f00255&|i|n|k|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|m+0#af5f00255&|a|i|n|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|m+0#af5f00255&|a|p|>+0#00e0e07&| +0#0000000&@69 +@57|5@1|,|1| @9|3|8|%| diff --git a/runtime/syntax/testdir/dumps/html_04.dump b/runtime/syntax/testdir/dumps/html_04.dump new file mode 100644 index 0000000..ef3acf7 --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_04.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|m+0#af5f00255&|a|p|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|m+0#af5f00255&|a|r|k|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|m+0#af5f00255&|e|n|u|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|m+0#af5f00255&|e|t|a|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|m+0#af5f00255&|e|t|e|r|>+0#00e0e07&| +0#0000000&@67 +><+0#00e0e07&|n+0#af5f00255&|a|v|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|n+0#af5f00255&|o|s|c|r|i|p|t|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|o+0#af5f00255&|b|j|e|c|t|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|o+0#af5f00255&|l|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|o+0#af5f00255&|p|t|g|r|o|u|p|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|o+0#af5f00255&|p|t|i|o|n|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|o+0#af5f00255&|u|t|p|u|t|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|p+0#af5f00255&|>+0#00e0e07&| +0#0000000&@71 +|<+0#00e0e07&|p+0#af5f00255&|i|c|t|u|r|e|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|p+0#af5f00255&|r|e|>+0#00e0e07&|.+0#0000000&@2|<+0#00e0e07&|/|p+0#af5f00255&|r|e|>+0#00e0e07&| +0#0000000&@60 +|<+0#00e0e07&|p+0#af5f00255&|r|o|g|r|e|s@1|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|q+0#af5f00255&|>+0#00e0e07&| +0#0000000&@71 +|<+0#00e0e07&|r+0#af5f00255&|p|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|r+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@70 +@57|7|3|,|1| @9|5|2|%| diff --git a/runtime/syntax/testdir/dumps/html_05.dump b/runtime/syntax/testdir/dumps/html_05.dump new file mode 100644 index 0000000..411a4f5 --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_05.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|r+0#af5f00255&|t|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|r+0#af5f00255&|u|b|y|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|s+0#af5f00255&|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|s+0#af5f00255&|a|m|p|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|s+0#af5f00255&|c|r|i|p|t|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|s+0#af5f00255&|c|r|i|p|t|>+0#00e0e07&| +0#0000000&@54 +><+0#00e0e07&|s+0#af5f00255&|e|a|r|c|h|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|s+0#af5f00255&|e|c|t|i|o|n|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|s+0#af5f00255&|e|l|e|c|t|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|s+0#af5f00255&|l|o|t|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|s+0#af5f00255&|m|a|l@1|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|s+0#af5f00255&|o|u|r|c|e|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|s+0#af5f00255&|p|a|n|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|s+0#af5f00255&|t|r|o|n|g|>+0#00e0e07&|.+2#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|r|o|n|g|>+0#00e0e07&| +0#0000000&@54 +|<+0#00e0e07&|s+0#af5f00255&|t|y|l|e|>+0#00e0e07&|.+0#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|y|l|e|>+0#00e0e07&| +0#0000000&@56 +|<+0#00e0e07&|s+0#af5f00255&|u|b|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|s+0#af5f00255&|u|m@1|a|r|y|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|s+0#af5f00255&|u|p|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|t+0#af5f00255&|a|b|l|e|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|t+0#af5f00255&|b|o|d|y|>+0#00e0e07&| +0#0000000&@67 +@57|9|1|,|1| @9|6@1|%| diff --git a/runtime/syntax/testdir/dumps/html_06.dump b/runtime/syntax/testdir/dumps/html_06.dump new file mode 100644 index 0000000..7482dce --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_06.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|t+0#af5f00255&|b|o|d|y|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|t+0#af5f00255&|d|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|t+0#af5f00255&|e|m|p|l|a|t|e|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|t+0#af5f00255&|e|x|t|a|r|e|a|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|t+0#af5f00255&|f|o@1|t|>+0#00e0e07&| +0#0000000&@67 +><+0#00e0e07&|t+0#af5f00255&|h|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|t+0#af5f00255&|h|e|a|d|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|t+0#af5f00255&|i|m|e|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|t+0#af5f00255&|i|t|l|e|>+0#00e0e07&|.+0#e000e06&@2|<+0#00e0e07&|/|t+0#af5f00255&|i|t|l|e|>+0#00e0e07&| +0#0000000&@56 +|<+0#00e0e07&|t+0#af5f00255&|r|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|t+0#af5f00255&|r|a|c|k|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|u+0#af5f00255&|>+0#00e0e07&|.+8#0000000&@2|<+0#00e0e07&|/|u+0#af5f00255&|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|u+0#af5f00255&|l|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|v+0#af5f00255&|a|r|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|v+0#af5f00255&|i|d|e|o|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|w+0#af5f00255&|b|r|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|x+0#af5f00255&|m|p|>+0#00e0e07&| +0#0000000&@69 +@75 +|<+0#0000e05&|!|-@1| |D|e|p|r|e|c|a|t|e|d| |E|l|e|m|e|n|t|s| |-@1|>| +0#0000000&@46 +@57|1|0|9|,|1| @8|8|1|%| diff --git a/runtime/syntax/testdir/dumps/html_07.dump b/runtime/syntax/testdir/dumps/html_07.dump new file mode 100644 index 0000000..9c5deaa --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_07.dump @@ -0,0 +1,20 @@ +|<+0#0000e05#ffffff0|!|-@1| |D|e|p|r|e|c|a|t|e|d| |E|l|e|m|e|n|t|s| |-@1|>| +0#0000000&@46 +|<+0#00e0e07&|a+0#af5f00255&|c|r|o|n|y|m|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|b+0#af5f00255&|i|g|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|c+0#af5f00255&|e|n|t|e|r|>+0#00e0e07&| +0#0000000&@66 +|<+0#00e0e07&|d+0#af5f00255&|i|r|>+0#00e0e07&| +0#0000000&@69 +><+0#00e0e07&|f+0#af5f00255&|o|n|t|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|f+0#af5f00255&|r|a|m|e|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|f+0#af5f00255&|r|a|m|e|s|e|t|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|m+0#af5f00255&|a|r|q|u|e@1|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|m+0#af5f00255&|e|n|u|i|t|e|m|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|n+0#af5f00255&|o|b|r|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|n+0#af5f00255&|o|f|r|a|m|e|s|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|p+0#af5f00255&|a|r|a|m|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|r+0#af5f00255&|b|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|r+0#af5f00255&|t|c|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&| +0#0000000&@54 +|<+0#00e0e07&|t+0#af5f00255&@1|>+0#00e0e07&| +0#0000000&@70 +@75 +|<+0#0000e05&|!|-@1| |N|o|t|e|:| |t|h|e|s|e| |d|e|p|r|e|c|a|t|e|d| |e|l|e|m|e|n|t|s| |h|a|v|e| |n|e|v|e|r| |b|e@1|n| |m|a|t|c|h|e|d| |-@1|>| +0#0000000&@10 +@57|1|2|7|,|1| @8|9|5|%| diff --git a/runtime/syntax/testdir/dumps/html_99.dump b/runtime/syntax/testdir/dumps/html_99.dump new file mode 100644 index 0000000..080a0c6 --- /dev/null +++ b/runtime/syntax/testdir/dumps/html_99.dump @@ -0,0 +1,20 @@ +|<+0#00e0e07#ffffff0|f+0#af5f00255&|r|a|m|e|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|f+0#af5f00255&|r|a|m|e|s|e|t|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|m+0#af5f00255&|a|r|q|u|e@1|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|m+0#af5f00255&|e|n|u|i|t|e|m|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|n+0#af5f00255&|o|b|r|>+0#00e0e07&| +0#0000000&@68 +|<+0#00e0e07&|n+0#af5f00255&|o|f|r|a|m|e|s|>+0#00e0e07&| +0#0000000&@64 +|<+0#00e0e07&|p+0#af5f00255&|a|r|a|m|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|r+0#af5f00255&|b|>+0#00e0e07&| +0#0000000&@70 +|<+0#00e0e07&|r+0#af5f00255&|t|c|>+0#00e0e07&| +0#0000000&@69 +|<+0#00e0e07&|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&|.+1024#0000000&@2|<+0#00e0e07&|/|s+0#af5f00255&|t|r|i|k|e|>+0#00e0e07&| +0#0000000&@54 +|<+0#00e0e07&|t+0#af5f00255&@1|>+0#00e0e07&| +0#0000000&@70 +@75 +|<+0#0000e05&|!|-@1| |N|o|t|e|:| |t|h|e|s|e| |d|e|p|r|e|c|a|t|e|d| |e|l|e|m|e|n|t|s| |h|a|v|e| |n|e|v|e|r| |b|e@1|n| |m|a|t|c|h|e|d| |-@1|>| +0#0000000&@10 +|<+0#00e0e07&|i+0#0000000&|m|a|g|e|>+0#00e0e07&| +0#0000000&@67 +|<+0#00e0e07&|n+0#0000000&|o|e|m|b|e|d|>+0#00e0e07&| +0#0000000&@65 +|<+0#00e0e07&|p+0#0000000&|l|a|i|n|t|e|x|t|>+0#00e0e07&| +0#0000000&@63 +@75 +|<+0#0000e05&|!|-@1| |E|x|p|e|r|i|m|e|n|t|a|l| |-@1|>| +0#0000000&@53 +><+0#00e0e07&|p+0#0000000&|o|r|t|a|l|>+0#00e0e07&| +0#0000000&@66 +@57|1|4|6|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_00.dump b/runtime/syntax/testdir/dumps/modula2_iso_00.dump new file mode 100644 index 0000000..797376f --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_00.dump @@ -0,0 +1,20 @@ +>(+0#0000e05#ffffff0|*| |M|o|d|u|l|a|-|2| |I|S|O| |T|e|s|t| |F|i|l|e| |f|o|r| |V|i|m| |S|y|n|t|a|x| |C|o|l|o|u|r|i|n|g| |*|)| +0#0000000&@21 +@75 +|(+0#0000e05&|*| |-@49| +0#0000000&@21 +| +0#0000e05&|*| |T|H|I|S| |F|I|L|E| |I|S| |L|I|C|E|N|S|E|D| |U|N|D|E|R| |T|H|E| |V|I|M| |L|I|C|E|N|S|E| +0#0000000&@28 +| +0#0000e05&|*| |s|e@1| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|b|l|o|b|/|m|a|s|t|e|r|/|L|I|C|E|N|S|E| +0#0000000&@21 +| +0#0000e05&|*| |-@49| |*|)| +0#0000000&@18 +@75 +@75 +|D+0#af5f00255&|E|F|I|N|I|T|I|O|N| +0#0000000&|M+0#af5f00255&|O|D|U|L|E| +0#0000000&|F+0#00e0e07&|o@1|b|a|r|;+0#e000e06&| +0#0000000&|(+0#e000e06&|*|!|m|2|i|s|o|*|)| +0#0000000&@38 +@75 +|F+0#af5f00255&|R|O|M| +0#0000000&|S+0#00e0003&|Y|S|T|E|M| +0#0000000&|I+0#af5f00255&|M|P|O|R|T| +0#0000000&|L+0#00e0003&|O|C|,+0#e000e06&| +0#0000000&|W+0#00e0003&|O|R|D|,+0#e000e06&| +0#0000000&|A+0#00e0003&|D@1|R|E|S@1|;+0#e000e06&| +0#0000000&@36 +@75 +|C+0#af5f00255&|O|N|S|T| +0#0000000&|M|a|x|F|o@1| |=+0#e000e06&| +0#0000000&|1+0#e000002&|.|0|;+0#e000e06&| +0#0000000&|L|F| |=+0#e000e06&| +0#0000000&|C+0#00e0e07&|H|R|(+0#e000e06&|1+0#e000002&|0|)+0#e000e06&|;| +0#0000000&@41 +@75 +|T+0#af5f00255&|Y|P|E| +0#0000000&|F|o@1| |=+0#e000e06&| +0#0000000&|P+0#af5f00255&|O|I|N|T|E|R| +0#0000000&|T+0#af5f00255&|O| +0#0000000&|B|a|r|;+0#e000e06&| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |c|o|n|s|t|a|n|t|s| |*|)| +0#0000000&@48 +|F+0#e000002&|A|L|S|E| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#e000002&|R|U|E| +0#0000000&|I+0#e000002&|N|T|E|R@1|U|P|T|I|B|L|E| +0#0000000&|U+0#e000002&|N|I|N|T|E|R@1|U|P|T|I|B|L|E| +0#0000000&@30 +@75 +|"|i|n|p|u|t|/|m|o|d|u|l|a|2|_|i|s|o|.|d|e|f|"| |1@1|4|L|,| |2|3|1|8|B| @21|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_01.dump b/runtime/syntax/testdir/dumps/modula2_iso_01.dump new file mode 100644 index 0000000..8b7d2f2 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_01.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|T+0#af5f00255&|Y|P|E| +0#0000000&|F|o@1| |=+0#e000e06&| +0#0000000&|P+0#af5f00255&|O|I|N|T|E|R| +0#0000000&|T+0#af5f00255&|O| +0#0000000&|B|a|r|;+0#e000e06&| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |c|o|n|s|t|a|n|t|s| |*|)| +0#0000000&@48 +|F+0#e000002&|A|L|S|E| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#e000002&|R|U|E| +0#0000000&|I+0#e000002&|N|T|E|R@1|U|P|T|I|B|L|E| +0#0000000&|U+0#e000002&|N|I|N|T|E|R@1|U|P|T|I|B|L|E| +0#0000000&@30 +> @74 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |t|y|p|e|s| |*|)| +0#0000000&@52 +|B+0#00e0003&|I|T|S|E|T| +0#0000000&|B+0#00e0003&|O@1|L|E|A|N| +0#0000000&|C+0#00e0003&|H|A|R| +0#0000000&|P+0#00e0003&|R|O|C| +0#0000000&|C+0#00e0003&|A|R|D|I|N|A|L| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|L+0#00e0003&|O|N|G|I|N|T| +0#0000000&|R+0#00e0003&|E|A|L| +0#0000000&|L+0#00e0003&|O|N|G|R|E|A|L| +0#0000000&@11 +|C+0#00e0003&|O|M|P|L|E|X| +0#0000000&|L+0#00e0003&|O|N|G|C|O|M|P|L|E|X| +0#0000000&|P+0#00e0003&|R|O|T|E|C|T|I|O|N| +0#0000000&@44 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@47 +|C+0#00e0e07&|A|P| +0#0000000&|D+0#00e0e07&|E|C| +0#0000000&|E+0#00e0e07&|X|C|L| +0#0000000&|H+0#00e0e07&|A|L|T| +0#0000000&|I+0#00e0e07&|N|C| +0#0000000&|I+0#00e0e07&|N|C|L| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@48 +|A+0#00e0e07&|B|S| +0#0000000&|C+0#00e0e07&|H|R| +0#0000000&|C+0#00e0e07&|M|P|L|X| +0#0000000&|F+0#00e0e07&|L|O|A|T| +0#0000000&|H+0#00e0e07&|I|G|H| +0#0000000&|I+0#00e0e07&|M| +0#0000000&|I+0#00e0e07&|N|T| +0#0000000&|L+0#00e0e07&|E|N|G|T|H| +0#0000000&|L+0#00e0e07&|F|L|O|A|T| +0#0000000&|M+0#00e0e07&|A|X| +0#0000000&|M+0#00e0e07&|I|N| +0#0000000&|O+0#00e0e07&|D@1| +0#0000000&|O+0#00e0e07&|R|D| +0#0000000&|R+0#00e0e07&|E| +0#0000000&|S+0#00e0e07&|I|Z|E| +0#0000000&|T+0#00e0e07&|R|U|N|C +| +0#0000000&|V+0#00e0e07&|A|L| +0#0000000&@70 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |m|a|c|r|o|s| |*|)| +0#0000000&@51 +|N+0#00e0e07&|E|W| +0#0000000&|D+0#00e0e07&|I|S|P|O|S|E| +0#0000000&@63 +@57|1|9|,|0|-|1| @7|1|3|%| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_02.dump b/runtime/syntax/testdir/dumps/modula2_iso_02.dump new file mode 100644 index 0000000..6d60233 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_02.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|(+0#0000e05&|*| |u|n|s|a|f|e| |b|u|i|l|t|i|n|s| |*|)| +0#0000000&@53 +|A+0#00e0003&|D@1|R|E|S@1| +0#0000000&|B+0#00e0003&|Y|T|E| +0#0000000&|L+0#00e0003&|O|C| +0#0000000&|W+0#00e0003&|O|R|D| +0#0000000&|A+0#00e0003&|D|R| +0#0000000&|C+0#00e0003&|A|S|T| +0#0000000&|T+0#00e0003&|S|I|Z|E| +0#0000000&|S+0#00e0003&|Y|S|T|E|M| +0#0000000&@31 +|M+0#00e0003&|A|K|E|A|D|R| +0#0000000&|A+0#00e0003&|D@1|A|D|R| +0#0000000&|S+0#00e0003&|U|B|A|D|R| +0#0000000&|D+0#00e0003&|I|F|A|D|R| +0#0000000&|R+0#00e0003&|O|T|A|T|E| +0#0000000&|S+0#00e0003&|H|I|F|T| +0#0000000&@33 +@75 +>(+0#0000e05&|*| |n|o|n|-|s|t|a|n|d|a|r|d| |l|a|n|g|u|a|g|e| |e|x|t|e|n|s|i|o|n|s| |*|)| +0#0000000&@36 +|L+0#00e0003&|O|N|G|C|A|R|D| +0#0000000&|L+0#00e0003&|O|N|G|B|I|T|S|E|T| +0#0000000&@55 +@75 +|(+0#0000e05&|*| |u|s|e|r| |d|e|f|i|n|e|d| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@44 +|f|o@1|b|a|r| |F|o@1|b|a|r| |F|o@1|B|a|r| |f|o@1|1|2|3| |f|o@1|_|b|a|r| @39 +@75 +|(+0#0000e05&|*| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@53 +|s|t|r| |:+0#e000e06&|=| +0#0000000&|"+0#e000002&|f|o@1| |'|b|a|r|'| |b|a|z|"|;+0#e000e06&| +0#0000000&@51 +|s|t|r| |:+0#e000e06&|=| +0#0000000&|'+0#e000002&|f|o@1| |"|b|a|r|"| |b|a|z|'|;+0#e000e06&| +0#0000000&@51 +@75 +|(+0#0000e05&|*| |n|u|m|e|r|i|c| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@52 +|0+0#e000002&|F@2|H|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|e|-|4|5|,+0#e000e06&| +0#0000000&|1+0#e000002&|0@2| +0#0000000&@47 +@75 +|(+0#0000e05&|*| |o|c|t|a|l| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@54 +@57|3|7|,|1| @9|3|2|%| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_03.dump b/runtime/syntax/testdir/dumps/modula2_iso_03.dump new file mode 100644 index 0000000..b9406da --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_03.dump @@ -0,0 +1,20 @@ +|(+0#0000e05#ffffff0|*| |o|c|t|a|l| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@54 +|n| |:+0#e000e06&|=| +0#0000000&|0+0#e000002&|3|7@1|B|;+0#e000e06&| +0#0000000&|c|h| |:+0#e000e06&|=| +0#0000000&|0+0#e000002&|3|7@1|C|;+0#e000e06&| +0#0000000&@50 +@75 +|(+0#0000e05&|*| |p|r|a|g|m|a|s| |*|)| +0#0000000&@61 +|<+0#e000e06&|*|$|f|o@1|*|>| +0#0000000&@66 +> @74 +|(+0#0000e05&|*| |b|l|o|c|k| |c|o|m@1|e|n|t|s| |w|i|t|h| |e|m|p|h|a|s|i|s| |*|)| +0#0000000&@40 +|(+0#0000e05&|*| |c+0#e000e06&|o|p|y|r|i|g|h|t| +0#0000e05&|(|c|)| |J|u|r@1|a|s|i|c| |I|n|c|.| +0#0000000&@44 +| +0#0000e05&@2|a+0#e000e06&|u|t|h|o|r| +0#0000e05&|F|r|e|d| |F|l|i|n|t|s|t|o|n|e| |S|r|.| +0#0000000&@45 +| +0#0000e05&@2|l+0#e000e06&|i|c|e|n|s|e| +0#0000e05&|s|e@1| |L|I|C|E|N|S|E| |f|i|l|e|.| |*|)| +0#0000000&@43 +@75 +|(+0#0000e05&|*| |p+0#e000e06&|r|e|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|f|o@1| |b|a|r| |b|a|z| |b|a|m| |b|o@1| |d|o@1|d|l|e| |w|a|h|.| +0#0000000&@24 +| +0#0000e05&@2|p+0#e000e06&|o|s|t|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|f|o@1|d|l|e| |b|a|b@1|l|e| |b|o|z|o| |b|i|m| |b|a|m| |d|a|n|g|.| +0#0000000&@22 +| +0#0000e05&@2|e+0#e000e06&|r@1|o|r|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|d|a|d|a| |j|i|n|g|l|e| |j|u|n|g|l|e| |b|o|g@1|l|e| |d|e@1| |b|o@1|.| |*|)| +0#0000000&@16 +@75 +|(+0#0000e05&|*| |t|e|c|h|n|i|c|a|l| |d|e|b|t| |m|a|r|k|e|r|s| |*|)| +0#0000000&@46 +|(+0#0000e05&|*| |T+0#e000e06&|O|D|O|:| +0#0000e05&|.@2| |*|)| +0#0000000&@59 +|(+0#0000e05&|*| |F+0#e000e06&|I|X|M|E| +0#0000e05&|*|)| +0#0000000&@63 +|(+0#0000e05&|*| |D+0#e000e06&|E|P|R|E|C|A|T|E|D| +0#0000e05&|*|)| +0#0000000&@58 +@57|5@1|,|0|-|1| @7|5|1|%| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_04.dump b/runtime/syntax/testdir/dumps/modula2_iso_04.dump new file mode 100644 index 0000000..98fdc23 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_04.dump @@ -0,0 +1,20 @@ +|(+0#0000e05#ffffff0|*| |D+0#e000e06&|E|P|R|E|C|A|T|E|D| +0#0000e05&|*|)| +0#0000000&@58 +@75 +|(+0#0000e05&|*| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@58 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|N+0#00e0e07&|e|w|F|o@1|W|i|t|h|B|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|V+0#af5f00255&|A|R| +0#0000000&|f|o@1|:+0#e000e06&| +0#0000000&|F|o@1|;+0#e000e06&| +0#0000000&|b|a|r| |:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|)+0#e000e06&|;| +0#0000000&@18 +|B+0#af5f00255&|E|G|I|N| +0#0000000&@69 +@2>N+0#00e0e07&|E|W|(+0#e000e06&|f+0#0000000&|o@1|)+0#e000e06&|;| +0#0000000&@63 +@2|f|o@1|^+0#e000e06&|.|b+0#0000000&|a|r| |:+0#e000e06&|=| +0#0000000&|b|a|r|;+0#e000e06&| +0#0000000&@56 +@2|R+0#af5f00255&|E|T|U|R|N| +0#0000000&@66 +|E+0#af5f00255&|N|D| +0#0000000&|S+0#00e0e07&|e|t|B|a|r|;+0#e000e06&| +0#0000000&@63 +@75 +|(+0#0000e05&|*| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@59 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|f|o@1| |:+0#e000e06&| +0#0000000&|F|o@1| |)+0#e000e06&| +0#0000000&|:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R|;+0#e000e06&| +0#0000000&@36 +|B+0#af5f00255&|E|G|I|N| +0#0000000&@69 +@2|I+0#af5f00255&|F| +0#0000000&|f|o@1| |=+0#e000e06&| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#af5f00255&|H|E|N| +0#0000000&@55 +@4|H+0#00e0e07&|A|L|T| +0#0000000&@66 +@2|E+0#af5f00255&|L|S|E| +0#0000000&@68 +@4|R+0#af5f00255&|E|T|U|R|N| +0#0000000&|f|o@1|^+0#e000e06&|.|b+0#0000000&|a|r| @55 +@2|E+0#af5f00255&|N|D| +0#0000000&|(+0#0000e05&|*| |I|F| |*|)| +0#0000000&@60 +|E+0#af5f00255&|N|D| +0#0000000&|b+0#00e0e07&|a|r|;+0#e000e06&| +0#0000000&@66 +@57|7|3|,|3| @9|7|0|%| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_05.dump b/runtime/syntax/testdir/dumps/modula2_iso_05.dump new file mode 100644 index 0000000..eca4631 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_05.dump @@ -0,0 +1,20 @@ +|E+0#af5f00255#ffffff0|N|D| +0#0000000&|b+0#00e0e07&|a|r|;+0#e000e06&| +0#0000000&@66 +@75 +|(+0#0000e05&|*| |d|i|s|a|b|l|e|d| |c|o|d|e| |*|)| +0#0000000&@55 +|?+0#4040ff13&|<| +0#0000000&@72 +|W+0#4040ff13&|H|I|L|E| |f|o@1| |=| |b|a|r| |D|O| +0#0000000&@56 +| +0#4040ff13&@1>b|a|z|(|b|a|m|,| |b|o@1|)| +0#0000000&@59 +|E+0#4040ff13&|N|D| |(|*| |W|H|I|L|E| |*|)|;| +0#0000000&@58 +|>+0#4040ff13&|?| +0#0000000&@72 +@75 +|(+0#0000e05&|*| |s|y|n|o|n|y|m|s| |*|)| +0#0000000&@60 +|@+0#e000e06&| +0#0000000&@1|&+0#e000e06&| +0#0000000&@1|~+0#e000e06&| +0#0000000&@67 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |c|h|a|r|a|c|t|e|r|s| |*|)| +0#0000000&@50 +|`+0#ffffff16#ff404010| +0#0000000#ffffff0@1|!+0#ffffff16#ff404010| +0#0000000#ffffff0@1|$+0#ffffff16#ff404010| +0#0000000#ffffff0@1|%+0#ffffff16#ff404010| +0#0000000#ffffff0@1|\+0#ffffff16#ff404010| +0#0000000#ffffff0@1|?+0#ffffff16#ff404010| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010| +0#0000000#ffffff0@55 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@49 +@75 +|_+0#ffffff16#ff404010|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@26 +@75 +@57|9|1|,|3| @9|8|9|%| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_06.dump b/runtime/syntax/testdir/dumps/modula2_iso_06.dump new file mode 100644 index 0000000..4074a01 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_06.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|b+0#ffffff16#ff404010|a|r|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_| +0#0000000#ffffff0@26 +@75 +|_+0#ffffff16#ff404010@1|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@22 +@75 +>b+0#ffffff16#ff404010|a|r|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_@1|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1| +0#0000000#ffffff0@35 +@75 +@75 +|E+0#af5f00255&|N|D| +0#0000000&|F+0#00e0e07&|o@1|b|a|r|.+0#e000e06&| +0#0000000&@63 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|0|9|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/modula2_iso_99.dump b/runtime/syntax/testdir/dumps/modula2_iso_99.dump new file mode 100644 index 0000000..e23fb29 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_iso_99.dump @@ -0,0 +1,20 @@ +|@+0#e000e06#ffffff0| +0#0000000&@1|&+0#e000e06&| +0#0000000&@1|~+0#e000e06&| +0#0000000&@67 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |c|h|a|r|a|c|t|e|r|s| |*|)| +0#0000000&@50 +|`+0#ffffff16#ff404010| +0#0000000#ffffff0@1|!+0#ffffff16#ff404010| +0#0000000#ffffff0@1|$+0#ffffff16#ff404010| +0#0000000#ffffff0@1|%+0#ffffff16#ff404010| +0#0000000#ffffff0@1|\+0#ffffff16#ff404010| +0#0000000#ffffff0@1|?+0#ffffff16#ff404010| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010| +0#0000000#ffffff0@55 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@49 +@75 +|_+0#ffffff16#ff404010|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@26 +@75 +|b+0#ffffff16#ff404010|a|r|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_| +0#0000000#ffffff0@26 +@75 +|_+0#ffffff16#ff404010@1|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_@1|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1| +0#0000000#ffffff0@35 +@75 +@75 +>E+0#af5f00255&|N|D| +0#0000000&|F+0#00e0e07&|o@1|b|a|r|.+0#e000e06&| +0#0000000&@63 +@57|1@1|4|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_00.dump b/runtime/syntax/testdir/dumps/modula2_pim_00.dump new file mode 100644 index 0000000..5e85b7a --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_00.dump @@ -0,0 +1,20 @@ +>(+0#0000e05#ffffff0|*| |M|o|d|u|l|a|-|2| |P|I|M| |T|e|s|t| |F|i|l|e| |f|o|r| |V|i|m| |S|y|n|t|a|x| |C|o|l|o|u|r|i|n|g| |*|)| +0#0000000&@21 +@75 +|(+0#0000e05&|*| |-@49| +0#0000000&@21 +| +0#0000e05&|*| |T|H|I|S| |F|I|L|E| |I|S| |L|I|C|E|N|S|E|D| |U|N|D|E|R| |T|H|E| |V|I|M| |L|I|C|E|N|S|E| +0#0000000&@28 +| +0#0000e05&|*| |s|e@1| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|b|l|o|b|/|m|a|s|t|e|r|/|L|I|C|E|N|S|E| +0#0000000&@21 +| +0#0000e05&|*| |-@49| |*|)| +0#0000000&@18 +@75 +|D+0#af5f00255&|E|F|I|N|I|T|I|O|N| +0#0000000&|M+0#af5f00255&|O|D|U|L|E| +0#0000000&|F+0#00e0e07&|o@1|b|a|r|;+0#e000e06&| +0#0000000&|(+0#e000e06&|*|!|m|2|p|i|m|*|)| +0#0000000&@38 +@75 +|F+0#af5f00255&|R|O|M| +0#0000000&|S+0#00e0003&|Y|S|T|E|M| +0#0000000&|I+0#af5f00255&|M|P|O|R|T| +0#0000000&|W+0#00e0003&|O|R|D|,+0#e000e06&| +0#0000000&|A+0#00e0003&|D@1|R|E|S@1|;+0#e000e06&| +0#0000000&@41 +@75 +|C+0#af5f00255&|O|N|S|T| +0#0000000&|M|a|x|F|o@1| |=+0#e000e06&| +0#0000000&|1+0#e000002&|.|0|;+0#e000e06&| +0#0000000&|L|F| |=+0#e000e06&| +0#0000000&|C+0#00e0e07&|H|R|(+0#e000e06&|1+0#e000002&|0|)+0#e000e06&|;| +0#0000000&@41 +@75 +|T+0#af5f00255&|Y|P|E| +0#0000000&|F|o@1| |=+0#e000e06&| +0#0000000&|P+0#af5f00255&|O|I|N|T|E|R| +0#0000000&|T+0#af5f00255&|O| +0#0000000&|B|a|r|;+0#e000e06&| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |c|o|n|s|t|a|n|t|s| |*|)| +0#0000000&@48 +|F+0#e000002&|A|L|S|E| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#e000002&|R|U|E| +0#0000000&@60 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |t|y|p|e|s| |*|)| +0#0000000&@52 +|"|i|n|p|u|t|/|m|o|d|u|l|a|2|_|p|i|m|.|d|e|f|"| |1@2|L|,| |2|1|9|7|B| @21|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_01.dump b/runtime/syntax/testdir/dumps/modula2_pim_01.dump new file mode 100644 index 0000000..8b93e0f --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_01.dump @@ -0,0 +1,20 @@ +|T+0#af5f00255#ffffff0|Y|P|E| +0#0000000&|F|o@1| |=+0#e000e06&| +0#0000000&|P+0#af5f00255&|O|I|N|T|E|R| +0#0000000&|T+0#af5f00255&|O| +0#0000000&|B|a|r|;+0#e000e06&| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |c|o|n|s|t|a|n|t|s| |*|)| +0#0000000&@48 +|F+0#e000002&|A|L|S|E| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#e000002&|R|U|E| +0#0000000&@60 +@75 +>(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |t|y|p|e|s| |*|)| +0#0000000&@52 +|B+0#00e0003&|I|T|S|E|T| +0#0000000&|B+0#00e0003&|O@1|L|E|A|N| +0#0000000&|C+0#00e0003&|H|A|R| +0#0000000&|P+0#00e0003&|R|O|C| +0#0000000&|C+0#00e0003&|A|R|D|I|N|A|L| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|L+0#00e0003&|O|N|G|I|N|T| +0#0000000&|R+0#00e0003&|E|A|L| +0#0000000&|L+0#00e0003&|O|N|G|R|E|A|L| +0#0000000&@11 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@47 +|C+0#00e0e07&|A|P| +0#0000000&|D+0#00e0e07&|E|C| +0#0000000&|E+0#00e0e07&|X|C|L| +0#0000000&|H+0#00e0e07&|A|L|T| +0#0000000&|I+0#00e0e07&|N|C| +0#0000000&|I+0#00e0e07&|N|C|L| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@48 +|A+0#00e0e07&|B|S| +0#0000000&|C+0#00e0e07&|H|R| +0#0000000&|F+0#00e0e07&|L|O|A|T| +0#0000000&|H+0#00e0e07&|I|G|H| +0#0000000&|M+0#00e0e07&|A|X| +0#0000000&|M+0#00e0e07&|I|N| +0#0000000&|O+0#00e0e07&|D@1| +0#0000000&|O+0#00e0e07&|R|D| +0#0000000&|S+0#00e0e07&|I|Z|E| +0#0000000&|T+0#00e0e07&|R|U|N|C| +0#0000000&|V+0#00e0e07&|A|L| +0#0000000&@25 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |m|a|c|r|o|s| |*|)| +0#0000000&@51 +|N+0#00e0e07&|E|W| +0#0000000&|D+0#00e0e07&|I|S|P|O|S|E| +0#0000000&@63 +@75 +|(+0#0000e05&|*| |u|n|s|a|f|e| |b|u|i|l|t|i|n|s| |*|)| +0#0000000&@53 +|A+0#00e0003&|D@1|R|E|S@1| +0#0000000&|P+0#00e0003&|R|O|C|E|S@1| +0#0000000&|W+0#00e0003&|O|R|D| +0#0000000&|A+0#00e0003&|D|R| +0#0000000&|T+0#00e0003&|S|I|Z|E| +0#0000000&|N+0#00e0003&|E|W|P|R|O|C|E|S@1| +0#0000000&|T+0#00e0003&|R|A|N|S|F|E|R| +0#0000000&|S+0#00e0003&|Y|S|T|E|M| +0#0000000&@17 +@57|1|9|,|1| @9|1|4|%| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_02.dump b/runtime/syntax/testdir/dumps/modula2_pim_02.dump new file mode 100644 index 0000000..c417f84 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_02.dump @@ -0,0 +1,20 @@ +|A+0#00e0003#ffffff0|D@1|R|E|S@1| +0#0000000&|P+0#00e0003&|R|O|C|E|S@1| +0#0000000&|W+0#00e0003&|O|R|D| +0#0000000&|A+0#00e0003&|D|R| +0#0000000&|T+0#00e0003&|S|I|Z|E| +0#0000000&|N+0#00e0003&|E|W|P|R|O|C|E|S@1| +0#0000000&|T+0#00e0003&|R|A|N|S|F|E|R| +0#0000000&|S+0#00e0003&|Y|S|T|E|M| +0#0000000&@17 +@75 +|(+0#0000e05&|*| |n|o|n|-|s|t|a|n|d|a|r|d| |l|a|n|g|u|a|g|e| |e|x|t|e|n|s|i|o|n|s| |*|)| +0#0000000&@36 +|B+0#00e0003&|Y|T|E| +0#0000000&|L+0#00e0003&|O|N|G|C|A|R|D| +0#0000000&|L+0#00e0003&|O|N|G|B|I|T|S|E|T| +0#0000000&@50 +@75 +>(+0#0000e05&|*| |u|s|e|r| |d|e|f|i|n|e|d| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@44 +|f|o@1|b|a|r| |F|o@1|b|a|r| |F|o@1|B|a|r| |f|o@1|1|2|3| |f+0#ffffff16#ff404010|o@1|_|b|a|r| +0#0000000#ffffff0@39 +@75 +|(+0#0000e05&|*| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@53 +|s|t|r| |:+0#e000e06&|=| +0#0000000&|"+0#e000002&|f|o@1| |'|b|a|r|'| |b|a|z|"|;+0#e000e06&| +0#0000000&@51 +|s|t|r| |:+0#e000e06&|=| +0#0000000&|'+0#e000002&|f|o@1| |"|b|a|r|"| |b|a|z|'|;+0#e000e06&| +0#0000000&@51 +@75 +|(+0#0000e05&|*| |n|u|m|e|r|i|c| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@52 +|0+0#e000002&|F@2|H|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|e|-|4|5|,+0#e000e06&| +0#0000000&|1+0#e000002&|0@2| +0#0000000&@47 +@75 +|(+0#0000e05&|*| |o|c|t|a|l| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@54 +|n| |:+0#e000e06&|=| +0#0000000&|0+0#e000002&|3|7@1|B|;+0#e000e06&| +0#0000000&|c|h| |:+0#e000e06&|=| +0#0000000&|0+0#e000002&|3|7@1|C|;+0#e000e06&| +0#0000000&@50 +@75 +|(+0#0000e05&|*| |p|r|a|g|m|a|s| |*|)| +0#0000000&@61 +@57|3|7|,|1| @9|3@1|%| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_03.dump b/runtime/syntax/testdir/dumps/modula2_pim_03.dump new file mode 100644 index 0000000..d811245 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_03.dump @@ -0,0 +1,20 @@ +|(+0#0000e05#ffffff0|*| |p|r|a|g|m|a|s| |*|)| +0#0000000&@61 +|(+0#e000e06&|*|$|f|o@1|*|)| +0#0000000&@66 +@75 +|(+0#0000e05&|*| |b|l|o|c|k| |c|o|m@1|e|n|t|s| |w|i|t|h| |e|m|p|h|a|s|i|s| |*|)| +0#0000000&@40 +|(+0#0000e05&|*| |c+0#e000e06&|o|p|y|r|i|g|h|t| +0#0000e05&|(|c|)| |J|u|r@1|a|s|i|c| |I|n|c|.| +0#0000000&@44 +| +0#0000e05&@2>a+0#e000e06&|u|t|h|o|r| +0#0000e05&|F|r|e|d| |F|l|i|n|t|s|t|o|n|e| |S|r|.| +0#0000000&@45 +| +0#0000e05&@2|l+0#e000e06&|i|c|e|n|s|e| +0#0000e05&|s|e@1| |L|I|C|E|N|S|E| |f|i|l|e|.| |*|)| +0#0000000&@43 +@75 +|(+0#0000e05&|*| |p+0#e000e06&|r|e|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|f|o@1| |b|a|r| |b|a|z| |b|a|m| |b|o@1| |d|o@1|d|l|e| |w|a|h|.| +0#0000000&@24 +| +0#0000e05&@2|p+0#e000e06&|o|s|t|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|f|o@1|d|l|e| |b|a|b@1|l|e| |b|o|z|o| |b|i|m| |b|a|m| |d|a|n|g|.| +0#0000000&@22 +| +0#0000e05&@2|e+0#e000e06&|r@1|o|r|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|d|a|d|a| |j|i|n|g|l|e| |j|u|n|g|l|e| |b|o|g@1|l|e| |d|e@1| |b|o@1|.| |*|)| +0#0000000&@16 +@75 +|(+0#0000e05&|*| |t|e|c|h|n|i|c|a|l| |d|e|b|t| |m|a|r|k|e|r|s| |*|)| +0#0000000&@46 +|(+0#0000e05&|*| |T+0#e000e06&|O|D|O|:| +0#0000e05&|.@2| |*|)| +0#0000000&@59 +|(+0#0000e05&|*| |F+0#e000e06&|I|X|M|E| +0#0000e05&|*|)| +0#0000000&@63 +|(+0#0000e05&|*| |D+0#e000e06&|E|P|R|E|C|A|T|E|D| +0#0000e05&|*|)| +0#0000000&@58 +@75 +|(+0#0000e05&|*| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@58 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|N+0#00e0e07&|e|w|F|o@1|W|i|t|h|B|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|V+0#af5f00255&|A|R| +0#0000000&|f|o@1|:+0#e000e06&| +0#0000000&|F|o@1|;+0#e000e06&| +0#0000000&|b|a|r| |:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|)+0#e000e06&|;| +0#0000000&@18 +@57|5@1|,|4| @9|5|3|%| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_04.dump b/runtime/syntax/testdir/dumps/modula2_pim_04.dump new file mode 100644 index 0000000..7dc8514 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_04.dump @@ -0,0 +1,20 @@ +|P+0#af5f00255#ffffff0|R|O|C|E|D|U|R|E| +0#0000000&|N+0#00e0e07&|e|w|F|o@1|W|i|t|h|B|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|V+0#af5f00255&|A|R| +0#0000000&|f|o@1|:+0#e000e06&| +0#0000000&|F|o@1|;+0#e000e06&| +0#0000000&|b|a|r| |:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|)+0#e000e06&|;| +0#0000000&@18 +|B+0#af5f00255&|E|G|I|N| +0#0000000&@69 +@2|N+0#00e0e07&|E|W|(+0#e000e06&|f+0#0000000&|o@1|)+0#e000e06&|;| +0#0000000&@63 +@2|f|o@1|^+0#e000e06&|.|b+0#0000000&|a|r| |:+0#e000e06&|=| +0#0000000&|b|a|r|;+0#e000e06&| +0#0000000&@56 +@2|R+0#af5f00255&|E|T|U|R|N| +0#0000000&@66 +>E+0#af5f00255&|N|D| +0#0000000&|S+0#00e0e07&|e|t|B|a|r|;+0#e000e06&| +0#0000000&@63 +@75 +|(+0#0000e05&|*| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@59 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|f|o@1| |:+0#e000e06&| +0#0000000&|F|o@1| |)+0#e000e06&| +0#0000000&|:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R|;+0#e000e06&| +0#0000000&@36 +|B+0#af5f00255&|E|G|I|N| +0#0000000&@69 +@2|I+0#af5f00255&|F| +0#0000000&|f|o@1| |=+0#e000e06&| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#af5f00255&|H|E|N| +0#0000000&@55 +@4|H+0#00e0e07&|A|L|T| +0#0000000&@66 +@2|E+0#af5f00255&|L|S|E| +0#0000000&@68 +@4|R+0#af5f00255&|E|T|U|R|N| +0#0000000&|f|o@1|^+0#e000e06&|.|b+0#0000000&|a|r| @55 +@2|E+0#af5f00255&|N|D| +0#0000000&|(+0#0000e05&|*| |I|F| |*|)| +0#0000000&@60 +|E+0#af5f00255&|N|D| +0#0000000&|b+0#00e0e07&|a|r|;+0#e000e06&| +0#0000000&@66 +@75 +|(+0#0000e05&|*| |d|i|s|a|b|l|e|d| |c|o|d|e| |*|)| +0#0000000&@55 +|?+0#4040ff13&|<| +0#0000000&@72 +@57|7|3|,|1| @9|7|2|%| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_05.dump b/runtime/syntax/testdir/dumps/modula2_pim_05.dump new file mode 100644 index 0000000..fd5adb4 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_05.dump @@ -0,0 +1,20 @@ +|?+0#4040ff13#ffffff0|<| +0#0000000&@72 +|W+0#4040ff13&|H|I|L|E| |f|o@1| |=| |b|a|r| |D|O| +0#0000000&@56 +| +0#4040ff13&@1|b|a|z|(|b|a|m|,| |b|o@1|)| +0#0000000&@59 +|E+0#4040ff13&|N|D| |(|*| |W|H|I|L|E| |*|)|;| +0#0000000&@58 +|>+0#4040ff13&|?| +0#0000000&@72 +> @74 +|(+0#0000e05&|*| |s|y|n|o|n|y|m|s| |*|)| +0#0000000&@60 +|&+0#e000e06&| +0#0000000&@1|~+0#e000e06&| +0#0000000&@70 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |c|h|a|r|a|c|t|e|r|s| |*|)| +0#0000000&@50 +|`+0#ffffff16#ff404010| +0#0000000#ffffff0@1|!+0#ffffff16#ff404010| +0#0000000#ffffff0@1|@+0#ffffff16#ff404010| +0#0000000#ffffff0@1|$+0#ffffff16#ff404010| +0#0000000#ffffff0@1|%+0#ffffff16#ff404010| +0#0000000#ffffff0@1|\+0#ffffff16#ff404010| +0#0000000#ffffff0@1|?+0#ffffff16#ff404010| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010| +0#0000000#ffffff0@52 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@49 +@75 +|_+0#ffffff16#ff404010|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@26 +@75 +|b+0#ffffff16#ff404010|a|r|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_| +0#0000000#ffffff0@26 +@75 +|_+0#ffffff16#ff404010@1|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@22 +@57|9|1|,|0|-|1| @7|9|2|%| diff --git a/runtime/syntax/testdir/dumps/modula2_pim_99.dump b/runtime/syntax/testdir/dumps/modula2_pim_99.dump new file mode 100644 index 0000000..7e096a2 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_pim_99.dump @@ -0,0 +1,20 @@ +|&+0#e000e06#ffffff0| +0#0000000&@1|~+0#e000e06&| +0#0000000&@70 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |c|h|a|r|a|c|t|e|r|s| |*|)| +0#0000000&@50 +|`+0#ffffff16#ff404010| +0#0000000#ffffff0@1|!+0#ffffff16#ff404010| +0#0000000#ffffff0@1|@+0#ffffff16#ff404010| +0#0000000#ffffff0@1|$+0#ffffff16#ff404010| +0#0000000#ffffff0@1|%+0#ffffff16#ff404010| +0#0000000#ffffff0@1|\+0#ffffff16#ff404010| +0#0000000#ffffff0@1|?+0#ffffff16#ff404010| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010| +0#0000000#ffffff0@52 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@49 +@75 +|_+0#ffffff16#ff404010|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@26 +@75 +|b+0#ffffff16#ff404010|a|r|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_| +0#0000000#ffffff0@26 +@75 +|_+0#ffffff16#ff404010@1|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_@1|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1| +0#0000000#ffffff0@35 +@75 +@75 +>E+0#af5f00255&|N|D| +0#0000000&|F+0#00e0e07&|o@1|b|a|r|.+0#e000e06&| +0#0000000&@63 +@57|1@2|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_00.dump b/runtime/syntax/testdir/dumps/modula2_r10_00.dump new file mode 100644 index 0000000..ab4167a --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_00.dump @@ -0,0 +1,20 @@ +>(+0#0000e05#ffffff0|*| |M|o|d|u|l|a|-|2| |R|1|0| |T|e|s|t| |F|i|l|e| |f|o|r| |V|i|m| |S|y|n|t|a|x| |C|o|l|o|u|r|i|n|g| |*|)| +0#0000000&@21 +@75 +|(+0#0000e05&|*| |-@49| +0#0000000&@21 +| +0#0000e05&|*| |T|H|I|S| |F|I|L|E| |I|S| |L|I|C|E|N|S|E|D| |U|N|D|E|R| |T|H|E| |V|I|M| |L|I|C|E|N|S|E| +0#0000000&@28 +| +0#0000e05&|*| |s|e@1| |h|t@1|p|s|:|/@1|g|i|t|h|u|b|.|c|o|m|/|v|i|m|/|v|i|m|/|b|l|o|b|/|m|a|s|t|e|r|/|L|I|C|E|N|S|E| +0#0000000&@21 +| +0#0000e05&|*| |-@49| |*|)| +0#0000000&@18 +@75 +|D+0#af5f00255&|E|F|I|N|I|T|I|O|N| +0#0000000&|M+0#af5f00255&|O|D|U|L|E| +0#00e0e07&|F|o@1|b|a|r|;+0#e000e06&| +0#0000000&|(+0#e000e06&|*|!|m|2|r|1|0|*|)| +0#0000000&@38 +@75 +|I+0#af5f00255&|M|P|O|R|T| +0#0000000&|U+0#00e0003&|N|S|A|F|E| +0#0000000&|A+0#af5f00255&|L|I|A|S| +0#0000000&|B+0#00e0003&|Y|T|E|,+0#e000e06&| +0#0000000&|W+0#00e0003&|O|R|D|,+0#e000e06&| +0#0000000&|A|D@1|R|E|S@1|;+0#e000e06&| +0#0000000&@34 +@75 +|C+0#af5f00255&|O|N|S|T| +0#0000000&|M|a|x|F|o@1| |=+0#e000e06&| +0#0000000&|1+0#e000002&|.|0|;+0#e000e06&| +0#0000000&@55 +@75 +|T+0#af5f00255&|Y|P|E| +0#0000000&|F|o@1| |=+0#e000e06&| +0#0000000&|A+0#af5f00255&|L|I|A|S| +0#0000000&|O+0#af5f00255&|F| +0#0000000&|B|a|r|;+0#e000e06&| +0#0000000&@50 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |c|o|n|s|t|a|n|t|s| |*|)| +0#0000000&@48 +|N+0#e000002&|I|L| +0#0000000&|F+0#e000002&|A|L|S|E| +0#0000000&|T+0#e000002&|R|U|E| +0#0000000&@60 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |t|y|p|e|s| |*|)| +0#0000000&@52 +|"|i|n|p|u|t|/|m|o|d|u|l|a|2|_|r|1|0|.|d|e|f|"| |1|4|6|L|,| |2|9|8|3|B| @21|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_01.dump b/runtime/syntax/testdir/dumps/modula2_r10_01.dump new file mode 100644 index 0000000..417ad88 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_01.dump @@ -0,0 +1,20 @@ +|T+0#af5f00255#ffffff0|Y|P|E| +0#0000000&|F|o@1| |=+0#e000e06&| +0#0000000&|A+0#af5f00255&|L|I|A|S| +0#0000000&|O+0#af5f00255&|F| +0#0000000&|B|a|r|;+0#e000e06&| +0#0000000&@50 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |c|o|n|s|t|a|n|t|s| |*|)| +0#0000000&@48 +|N+0#e000002&|I|L| +0#0000000&|F+0#e000002&|A|L|S|E| +0#0000000&|T+0#e000002&|R|U|E| +0#0000000&@60 +@75 +>(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |t|y|p|e|s| |*|)| +0#0000000&@52 +|B+0#00e0003&|O@1|L|E|A|N| +0#0000000&|C+0#00e0003&|H|A|R| +0#0000000&|U+0#00e0003&|N|I|C|H|A|R| +0#0000000&|O+0#00e0003&|C|T|E|T| +0#0000000&|C+0#00e0003&|A|R|D|I|N|A|L| +0#0000000&|L+0#00e0003&|O|N|G|C|A|R|D| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|L+0#00e0003&|O|N|G|I|N|T| +0#0000000&|R+0#00e0003&|E|A|L| +0#0000000&|L+0#00e0003&|O|N|G|R|E|A|L| +0#0000000& +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@47 +|A+0#00e0e07&|P@1|E|N|D| +0#0000000&|I+0#00e0e07&|N|S|E|R|T| +0#0000000&|R+0#00e0e07&|E|M|O|V|E| +0#0000000&|S+0#00e0e07&|O|R|T| +0#0000000&|S+0#00e0e07&|O|R|T|N|E|W| +0#0000000&@41 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@48 +|C+0#00e0e07&|H|R| +0#0000000&|O+0#00e0e07&|R|D| +0#0000000&|O+0#00e0e07&|D@1| +0#0000000&|A+0#00e0e07&|B|S| +0#0000000&|S+0#00e0e07&|G|N| +0#0000000&|M+0#00e0e07&|I|N| +0#0000000&|M+0#00e0e07&|A|X| +0#0000000&|L+0#00e0e07&|O|G|2| +0#0000000&|P+0#00e0e07&|O|W|2| +0#0000000&|E+0#00e0e07&|N|T|I|E|R| +0#0000000&|P+0#00e0e07&|R|E|D| +0#0000000&|S+0#00e0e07&|U|C@1| +0#0000000&|P+0#00e0e07&|T|R| +0#0000000&|C+0#af5f00255&|A|P|A|C|I|T|Y| +0#0000000&|C+0#00e0e07&|O|U|N|T| +0#0000000&|L+0#00e0e07& +|E|N|G|T|H| +0#0000000&@69 +@75 +|(+0#0000e05&|*| |p|r|e|d|e|f|i|n|e|d| |m|a|c|r|o|s| |*|)| +0#0000000&@51 +|N+0#00e0e07&|O|P| +0#0000000&|T+0#00e0e07&|M|I|N| +0#0000000&|T+0#00e0e07&|M|A|X| +0#0000000&|T+0#00e0e07&|S|I|Z|E| +0#0000000&|T+0#00e0e07&|L|I|M|I|T| +0#0000000&@48 +@75 +|(+0#0000e05&|*| |u|n|s|a|f|e| |b|u|i|l|t|i|n|s| |*|)| +0#0000000&@53 +@57|1|9|,|1| @9|1|0|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_02.dump b/runtime/syntax/testdir/dumps/modula2_r10_02.dump new file mode 100644 index 0000000..408872a --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_02.dump @@ -0,0 +1,20 @@ +|U+0#00e0003#ffffff0|N|S|A|F|E| +0#0000000&@68 +@75 +|(+0#0000e05&|*| |u|n|s|a|f|e| |b|u|i|l|t|i|n| |t|y|p|e|s| |*|)| +0#0000000&@48 +|B+0#00e0003&|Y|T|E| +0#0000000&|W+0#00e0003&|O|R|D| +0#0000000&|L+0#00e0003&|O|N|G|W|O|R|D| +0#0000000&|A|D@1|R|E|S@1| |O+0#00e0003&|C|T|E|T|S|E|Q| +0#0000000&@39 +@75 +>(+0#0000e05&|*| |u|n|s|a|f|e| |b|u|i|l|t|i|n| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@43 +|A+0#00e0003&|D@1| +0#0000000&|S+0#00e0003&|U|B| +0#0000000&|D+0#00e0003&|E|C| +0#0000000&|I+0#00e0003&|N|C| +0#0000000&|S+0#00e0003&|E|T|B|I|T| +0#0000000&|H+0#00e0003&|A|L|T| +0#0000000&@47 +@75 +|(+0#0000e05&|*| |u|n|s|a|f|e| |b|u|i|l|t|i|n| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@44 +|A+0#00e0003&|D|R| +0#0000000&|C+0#00e0003&|A|S|T| +0#0000000&|B+0#00e0003&|I|T| +0#0000000&|S+0#00e0003&|H|L| +0#0000000&|S+0#00e0003&|H|R| +0#0000000&|B+0#00e0003&|W|N|O|T| +0#0000000&|B+0#00e0003&|W|A|N|D| +0#0000000&|B+0#00e0003&|W|O|R| +0#0000000&@37 +@75 +|(+0#0000e05&|*| |n|o|n|-|p|o|r|t|a|b|l|e| |l|a|n|g|u|a|g|e| |e|x|t|e|n|s|i|o|n|s| |*|)| +0#0000000&@36 +|A+0#00e0003&|S@1|E|M|B|L|E|R| +0#0000000&|A+0#00e0003&|S|M| +0#0000000&|R+0#00e0003&|E|G| +0#0000000&@57 +@75 +|(+0#0000e05&|*| |u|s|e|r| |d|e|f|i|n|e|d| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@44 +|f|o@1|b|a|r| |F|o@1|b|a|r| |F|o@1|B|a|r| |f|o@1|_|b|a|r| |f|o@1|0| @41 +@75 +@75 +|(+0#0000e05&|*| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@53 +@57|3|7|,|1| @9|2|4|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_03.dump b/runtime/syntax/testdir/dumps/modula2_r10_03.dump new file mode 100644 index 0000000..b35c8b0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_03.dump @@ -0,0 +1,20 @@ +|(+0#0000e05#ffffff0|*| |s|t|r|i|n|g| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@53 +|s|t|r| |:+0#e000e06&|=| +0#0000000&|"+0#e000002&|f|o@1| |'|b|a|r|'| |b|a|z|"|;+0#e000e06&| +0#0000000&@51 +|s|t|r| |:+0#e000e06&|=| +0#0000000&|'+0#e000002&|f|o@1| |"|b|a|r|"| |b|a|z|'|;+0#e000e06&| +0#0000000&@51 +@75 +|(+0#0000e05&|*| |n|u|m|e|r|i|c| |l|i|t|e|r|a|l|s| |*|)| +0#0000000&@52 +>0+0#e000002&|b|0|1@1|0|'|0@1|1@1|'|0|1@1|0|'|0@3|,+0#e000e06&| +0#0000000&|0+0#e000002&|u|0|A|,+0#e000e06&| +0#0000000&|0+0#e000002&|x|0|1|2|3|,+0#e000e06&| +0#0000000&|0+0#e000002&|x|C|A|F|E|'|D|0@1|D| +0#0000000&@26 +|1+0#e000002&|'|0@2|'|0@2|.|0@1|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|e|+|1|0|,+0#e000e06&| +0#0000000&|1+0#e000002&|.|2|3|4|'|5|6|7|'|8|9|0|e|-|1|'|0@2| +0#0000000&@24 +@75 +@75 +|(+0#0000e05&|*| |l|a|n|g|u|a|g|e| |d|e|f|i|n|e|d| |p|r|a|g|m|a|s| |*|)| +0#0000000&@44 +|<+0#e000e06&|*|M|S|G|=|I|N|F|O|:|"|f|o@1|b|a|r|"|*|>| +0#0000000&|<+0#e000e06&|*|E|N|C|O|D|I|N|G|=|"|U|T|F|8|"|*|>| +0#0000000&|<+0#e000e06&|*|I|N|L|I|N|E|*|>| +0#0000000&|<+0#e000e06&|*|N|O|I|N|L|I|N|E|*|>| +0#0000000&|<+0#e000e06&|*|F@1|I|=|"|C|" +|*|>| +0#0000000&@72 +@75 +|(+0#0000e05&|*| |i|m|p|l|e|m|e|n|t|a|t|i|o|n| |d|e|f|i|n|e|d| |p|r|a|g|m|a|s| |*|)| +0#0000000&@38 +|<+0#e000e06&|*|G|M|2|.|F|o@1|b|a|r|||W|=|B|a|z|b|a|m|*|>| +0#0000000&@51 +@75 +@75 +|(+0#0000e05&|*| |s|i|n|g|l|e| |l|i|n|e| |c|o|m@1|e|n|t| |*|)| +0#0000000&@49 +|!+0#0000e05&| |f|o@1| |b|a|r| |b|a|z| |b|a|m| |b|o@1| | +0#0000000&@52 +@57|5@1|,|1| @9|3|8|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_04.dump b/runtime/syntax/testdir/dumps/modula2_r10_04.dump new file mode 100644 index 0000000..cd6436c --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_04.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|(+0#0000e05&|*| |b|l|o|c|k| |c|o|m@1|e|n|t|s| |w|i|t|h| |e|m|p|h|a|s|i|s| |*|)| +0#0000000&@40 +|(+0#0000e05&|*| |c+0#e000e06&|o|p|y|r|i|g|h|t| +0#0000e05&|(|c|)| |2|0|1|6| |M|o|d|u|l|a|-|2| |F|o|u|n|d|a|t|i|o|n|.| +0#0000000&@32 +| +0#0000e05&@2|a+0#e000e06&|u|t|h|o|r|s| +0#0000e05&|B|.|K|o|w|a|r|s|c|h| |a|n|d| |R|.|S|u|t|c|l|i|f@1|e| +0#0000000&@37 +| +0#0000e05&@2|l+0#e000e06&|i|c|e|n|s|e| +0#0000e05&|s|e@1| |L|I|C|E|N|S|E| |*|)| +0#0000000&@49 +> @74 +|(+0#0000e05&|*| |p+0#e000e06&|r|e|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|f|o@1| |b|a|r| |b|a|z| |b|a|m| |b|o@1| |d|o@1|d|l|e| |w|a|h|.| +0#0000000&@24 +| +0#0000e05&@2|p+0#e000e06&|o|s|t|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|f|o@1|d|l|e| |b|a|b@1|l|e| |b|o|z|o| |b|i|m| |b|a|m| |d|a|n|g|.| +0#0000000&@22 +| +0#0000e05&@2|e+0#e000e06&|r@1|o|r|-|c|o|n|d|i|t|i|o|n|s|:| +0#0000e05&|d|a|d|a| |j|i|n|g|l|e| |j|u|n|g|l|e| |b|o|g@1|l|e| |d|e@1| |b|o@1|.| |*|)| +0#0000000&@16 +@75 +|(+0#0000e05&|*| |(|*| |*|)| |*|)| +0#0000000&@63 +@75 +|(+0#0000e05&|*| |b|i|n|d|i|n|g|s| |*|)| +0#0000000&@60 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|[+0#e000e06&|+|]| +0#0000000&|s+0#00e0e07&|u|m| +0#0000000&|(+0#e000e06&| +0#0000000&|a|,+0#e000e06&| +0#0000000&|b| |:+0#e000e06&| +0#0000000&|B|C|D| |)+0#e000e06&| +0#0000000&|:+0#e000e06&| +0#0000000&|B|C|D|;+0#e000e06&| +0#0000000&@35 +@75 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|[+0#e000e06&|M+0#af5f00255&|O|D|]+0#e000e06&| +0#0000000&|m+0#00e0e07&|o|d|u|l|u|s| +0#0000000&|(+0#e000e06&| +0#0000000&|n|,+0#e000e06&| +0#0000000&|m| |:+0#e000e06&| +0#0000000&|I|N|T|6|4| |)+0#e000e06&| +0#0000000&|:+0#e000e06&| +0#0000000&|I|N|T|6|4|;+0#e000e06&| +0#0000000&@25 +@75 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|[+0#e000e06&|R+0#af5f00255&|E|T|A|I|N|]+0#e000e06&| +0#0000000&|R+0#00e0e07&|e|t|a|i|n| +0#0000000&|(+0#e000e06&| +0#0000000&|f|o@1| |:+0#e000e06&| +0#0000000&|F|o@1| |)+0#e000e06&|;| +0#0000000&@34 +@75 +@57|7|3|,|0|-|1| @7|5|2|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_05.dump b/runtime/syntax/testdir/dumps/modula2_r10_05.dump new file mode 100644 index 0000000..2a8ae0c --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_05.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|[+0#e000e06&|L+0#00e0e07&|E|N|G|T|H|]+0#e000e06&| +0#0000000&|l+0#00e0e07&|e|n|g|t|h| +0#0000000&|(+0#e000e06&| +0#0000000&|s|t|r| |:+0#e000e06&| +0#0000000&|S|t|r|i|n|g| |)+0#e000e06&| +0#0000000&|:+0#e000e06&| +0#0000000&|L+0#00e0003&|O|N|G|C|A|R|D|;+0#e000e06&| +0#0000000&@20 +@75 +@75 +|(+0#0000e05&|*| |p|r|o|c|e|d|u|r|e|s| |*|)| +0#0000000&@58 +>P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|N+0#00e0e07&|e|w|F|o@1|W|i|t|h|B|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|V+0#af5f00255&|A|R| +0#0000000&|f|o@1|:+0#e000e06&| +0#0000000&|F|o@1|;+0#e000e06&| +0#0000000&|b|a|r| |:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R| +0#0000000&|)+0#e000e06&|;| +0#0000000&@18 +|B+0#af5f00255&|E|G|I|N| +0#0000000&@69 +@2|N+0#af5f00255&|E|W|(+0#e000e06&|f+0#0000000&|o@1|)+0#e000e06&|;| +0#0000000&@63 +@2|f|o@1|^+0#e000e06&|.|b+0#0000000&|a|r| |:+0#e000e06&|=| +0#0000000&|b|a|r|;+0#e000e06&| +0#0000000&@56 +@2|R+0#af5f00255&|E|T|U|R|N| +0#0000000&@66 +|E+0#af5f00255&|N|D| +0#0000000&|N+0#00e0e07&|e|w|F|o@1|W|i|t|h|B|a|r|;+0#e000e06&| +0#0000000&@56 +@75 +|E+0#af5f00255&|N|D| +0#0000000&|E+0#af5f00255&|N|D|;+0#e000e06&| +0#0000000&@66 +@75 +|(+0#0000e05&|*| |f|u|n|c|t|i|o|n|s| |*|)| +0#0000000&@59 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&|(+0#e000e06&| +0#0000000&|f|o@1| |:+0#e000e06&| +0#0000000&|F|o@1| |)+0#e000e06&| +0#0000000&|:+0#e000e06&| +0#0000000&|I+0#00e0003&|N|T|E|G|E|R|;+0#e000e06&| +0#0000000&@36 +|B+0#af5f00255&|E|G|I|N| +0#0000000&@69 +@2|I+0#af5f00255&|F| +0#0000000&|f|o@1| |=+0#e000e06&| +0#0000000&|N+0#e000002&|I|L| +0#0000000&|T+0#af5f00255&|H|E|N| +0#0000000&@55 +@4|U+0#00e0003&|N|S|A|F|E|.+0#e000e06&|H+0#00e0003&|A|L|T| +0#0000000&@59 +@57|9|1|,|1| @9|6@1|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_06.dump b/runtime/syntax/testdir/dumps/modula2_r10_06.dump new file mode 100644 index 0000000..68af55c --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_06.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|U+0#00e0003&|N|S|A|F|E|.+0#e000e06&|H+0#00e0003&|A|L|T| +0#0000000&@59 +@2|E+0#af5f00255&|L|S|E| +0#0000000&@68 +@4|R+0#af5f00255&|E|T|U|R|N| +0#0000000&|f|o@1|^+0#e000e06&|.|b+0#0000000&|a|r| @55 +@2|E+0#af5f00255&|N|D| +0#0000000&|(+0#0000e05&|*| |I|F| |*|)| +0#0000000&@60 +|E+0#af5f00255&|N|D| +0#0000000&|b+0#00e0e07&|a|r|;+0#e000e06&| +0#0000000&@66 +> @74 +@75 +|(+0#0000e05&|*| |t|e|c|h|n|i|c|a|l| |d|e|b|t| |*|)| +0#0000000&@54 +|T+0#af5f00255&|O| +0#0000000&|D+0#af5f00255&|O| +0#0000000&|(+0#e000e06&| +0#0000000&|1+0#e000002&|2|3|4|,+0#e000e06&| +0#0000000&|W|e|i|g|h|t|.+0#e000e06&|M+0#0000000&|a|j|o|r| |)+0#e000e06&| +0#0000000&|(+0#0000e05&|*| |f|o@1| |*|)| +0#0000000&@36 +@2|"+0#e000002&|r|e|d|e|s|i|g|n| |f|o@1|"|,+0#e000e06&| +0#0000000&|2+0#e000002&|d+0#0000000&|;+0#e000e06&| +0#0000000&@53 +@2|"+0#e000002&|r|e|p|l|a|c|e| |f|o@1|"|,+0#e000e06&| +0#0000000&|2+0#e000002&|d+0#0000000&|;+0#e000e06&| +0#0000000&@54 +@2|"+0#e000002&|t|e|s|t| |n|e|w| |f|o@1|"|,+0#e000e06&| +0#0000000&|1+0#e000002&|d+0#0000000&| @54 +|E+0#e000e06&|N|D| +0#0000000&|(+0#0000e05&|*| |T|O| |D|O| |*|)|;+0#e000e06&| +0#0000000&@58 +@75 +|P+0#af5f00255&|R|O|C|E|D|U|R|E| +0#0000000&|S+0#00e0e07&|e|t|B|a|b|a| +0#0000000&|<+0#e000e06&|*|D|E|P|R|E|C|A|T|E|D|*|>| +0#0000000&|(+0#e000e06&| +0#0000000&|n| |:+0#e000e06&| +0#0000000&|C+0#00e0003&|A|R|D|I|N|A|L| +0#0000000&|)+0#e000e06&|;| +0#0000000&@24 +@75 +@75 +|(+0#0000e05&|*| |d|i|s|a|b|l|e|d| |c|o|d|e| |*|)| +0#0000000&@55 +|?+0#4040ff13&|<| +0#0000000&@72 +@57|1|0|9|,|0|-|1| @6|8|1|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_07.dump b/runtime/syntax/testdir/dumps/modula2_r10_07.dump new file mode 100644 index 0000000..8f061fd --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_07.dump @@ -0,0 +1,20 @@ +|?+0#4040ff13#ffffff0|<| +0#0000000&@72 +|W+0#4040ff13&|H|I|L|E| |f|o@1| |=| |b|a|r| |D|O| +0#0000000&@56 +| +0#4040ff13&@1|b|a|z|(|b|a|m|,| |b|o@1|)| +0#0000000&@59 +|E+0#4040ff13&|N|D| |(|*| |W|H|I|L|E| |*|)|;| +0#0000000&@58 +|>+0#4040ff13&|?| +0#0000000&@72 +> @74 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |c|h|a|r|a|c|t|e|r|s| |*|)| +0#0000000&@50 +|`+0#ffffff16#ff404010| +0#0000000#ffffff0@1|~+0#ffffff16#ff404010| +0#0000000#ffffff0@1|$+0#ffffff16#ff404010| +0#0000000#ffffff0@1|%+0#ffffff16#ff404010| +0#0000000#ffffff0@1|?+0#ffffff16#ff404010| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010| +0#0000000#ffffff0@58 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@49 +@75 +|_+0#ffffff16#ff404010|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@26 +@75 +|b+0#ffffff16#ff404010|a|r|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_| +0#0000000#ffffff0@26 +@75 +|_+0#ffffff16#ff404010@1|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_@1| +0#0000000#ffffff0@22 +@57|1|2|7|,|0|-|1| @6|9|5|%| diff --git a/runtime/syntax/testdir/dumps/modula2_r10_99.dump b/runtime/syntax/testdir/dumps/modula2_r10_99.dump new file mode 100644 index 0000000..067fb47 --- /dev/null +++ b/runtime/syntax/testdir/dumps/modula2_r10_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |c|h|a|r|a|c|t|e|r|s| |*|)| +0#0000000&@50 +|`+0#ffffff16#ff404010| +0#0000000#ffffff0@1|~+0#ffffff16#ff404010| +0#0000000#ffffff0@1|$+0#ffffff16#ff404010| +0#0000000#ffffff0@1|%+0#ffffff16#ff404010| +0#0000000#ffffff0@1|?+0#ffffff16#ff404010| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010| +0#0000000#ffffff0@58 +@75 +|(+0#0000e05&|*| |i|l@1|e|g|a|l| |i|d|e|n|t|i|f|i|e|r|s| |*|)| +0#0000000&@49 +@75 +|_+0#ffffff16#ff404010|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@26 +@75 +|b+0#ffffff16#ff404010|a|r|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_| +0#0000000#ffffff0@26 +@75 +|_+0#ffffff16#ff404010@1|b|a|r| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_@1| +0#0000000#ffffff0@1|b+0#ffffff16#ff404010|a|r|_|b|a|z|_@1|b|a|m|_|b|o@1|_@1| +0#0000000#ffffff0@22 +@75 +|b+0#ffffff16#ff404010|a|r|_@1|b|a|z| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1|b|a|r|_@1|b|a|z|_@1| +0#0000000#ffffff0@1|_+0#ffffff16#ff404010@1| +0#0000000#ffffff0@35 +@75 +@75 +|(+0#0000e05&|*| |m|o|d|u|l|e| |e|n|d| |*|)| +0#0000000&@58 +>E+0#af5f00255&|N|D| +0#0000000&|F+0#00e0e07&|o@1|b|a|r|.+0#e000e06&| +0#0000000&@63 +@57|1|4|6|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_01_00.dump b/runtime/syntax/testdir/dumps/sh_01_00.dump new file mode 100644 index 0000000..f38aff0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_01_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!| |/|b|i|n|/|d|a|s|h| +0#0000000&@62 +|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|'+0#af5f00255&|A+0#e000002&|=|B|'+0#af5f00255&|`+0#e000e06&| +0#0000000&@55 +|p+0#af5f00255&|r|i|n|t|e|n|v| +0#0000000&|A| @64 +|e+0#af5f00255&|c|h|o| +0#e000002&|a| |`+0#e000e06&|#+0#0000e05&|f|o@1|`+0#e000e06&| +0#0000000&|b| @59 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|i+0#0000000&|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/sh_01_99.dump b/runtime/syntax/testdir/dumps/sh_01_99.dump new file mode 100644 index 0000000..687677e --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_01_99.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0|!| |/|b|i|n|/|d|a|s|h| +0#0000000&@62 +|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|'+0#af5f00255&|A+0#e000002&|=|B|'+0#af5f00255&|`+0#e000e06&| +0#0000000&@55 +|p+0#af5f00255&|r|i|n|t|e|n|v| +0#0000000&|A| @64 +>e+0#af5f00255&|c|h|o| +0#e000002&|a| |`+0#e000e06&|#+0#0000e05&|f|o@1|`+0#e000e06&| +0#0000000&|b| @59 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|:+0#0000000&|r|e|d|r|a|w| @49|4|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/sh_02_00.dump b/runtime/syntax/testdir/dumps/sh_02_00.dump new file mode 100644 index 0000000..e752cc0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_02_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!| |/|b|i|n|/|k|s|h| +0#0000000&@63 +|#+0#0000e05&| |s|h|2| +0#0000000&@69 +|#+0#0000e05&| @1|J|u|l| |2|8|,| |2|0|1|8|:| |i|n|t|r|o|d|u|c|e|d| |s|h|C|o|m@1|a|n|d|S|u|b|B|Q|,| |w|h|i|c|h| |i|s| |*|n|o|t|*| |i|n|c|l|u|d|e|d| |i|n| |a| |s|h +|S|u|b|C|o|m@1|a|n|d|L|i|s|t| |(|s|o| |i|t|s| |n|o|t| |r|e|c|u|r|s|i|v|e|)| +0#0000000&@37 +|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&|`+0#e000e06&| +0#0000000&@57 +@8|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&|`+0#e000e06&| +0#0000000&@49 +@75 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +|c+0#af5f00255&|a|s|e| +0#0000000&|$+0#e000e06&|V|A|R| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@62 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|x|||y|||z|)+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|x|y|z| |;+0#af5f00255&@1| +0#0000000&@48 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|a|||b|||c|)+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|a|b|c| |;+0#af5f00255&@1| +0#0000000&@48 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +|e+0#af5f00255&|s|a|c| +0#0000000&@70 +@75 +|#+0#0000e05&| |J|u|l| |2|6|,| |2|0|1|8|:| |w|h|y| |i|s|n|'|t| |`|.@1|`| |b|e|i|n|g| |t|e|r|m|i|n|a|t|e|d| |p|r|o|p|e|r|l|y|?| +0#0000000&@17 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|a@2|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@60 +|i|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_02_01.dump b/runtime/syntax/testdir/dumps/sh_02_01.dump new file mode 100644 index 0000000..20930c8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_02_01.dump @@ -0,0 +1,20 @@ +|e+0#af5f00255#ffffff0|s|a|c| +0#0000000&@70 +@75 +|#+0#0000e05&| |J|u|l| |2|6|,| |2|0|1|8|:| |w|h|y| |i|s|n|'|t| |`|.@1|`| |b|e|i|n|g| |t|e|r|m|i|n|a|t|e|d| |p|r|o|p|e|r|l|y|?| +0#0000000&@17 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|a@2|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@60 +>#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|b@2|)+0#af5f00255&| +0#0000000&@1|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|d@2||+0#af5f00255&|c+0#e000e06&|u|t| |-|b|4|-|`| +0#0000000&@36 +@8|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&| +0#0000000&@55 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|;+0#af5f00255&@1| +0#0000000&@64 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|e+0#af5f00255&|s|a|c| +0#0000000&@62 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@75 +|e+0#af5f00255&|c|h|o| +0#e000002&@2|$+0#e000e06&|V|A|R| +0#e000002&|a|b|c| +0#0000000&@59 +|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|$+0#e000e06&|V|A|R| +0#0000000&|a|b|c| @59 +|s+0#af5f00255&|e|t| +0#00e0e07&@3|$+0#e000e06&|V|A|R| +0#00e0e07&|a|b|c| +0#0000000&@59 +|~+0#4040ff13&| @73 +|~| @73 +| +0#0000000&@56|1|9|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_02_99.dump b/runtime/syntax/testdir/dumps/sh_02_99.dump new file mode 100644 index 0000000..a9902dd --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_02_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@7|a|||b|||c|)+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|a|b|c| |;+0#af5f00255&@1| +0#0000000&@48 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +|e+0#af5f00255&|s|a|c| +0#0000000&@70 +@75 +|#+0#0000e05&| |J|u|l| |2|6|,| |2|0|1|8|:| |w|h|y| |i|s|n|'|t| |`|.@1|`| |b|e|i|n|g| |t|e|r|m|i|n|a|t|e|d| |p|r|o|p|e|r|l|y|?| +0#0000000&@17 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +|c+0#af5f00255&|a|s|e| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|a@2|"+0#af5f00255&| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@60 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|b@2|)+0#af5f00255&| +0#0000000&@1|c+0#00e0e07&@2|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|d@2||+0#af5f00255&|c+0#e000e06&|u|t| |-|b|4|-|`| +0#0000000&@36 +@8|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|t+0#e000002&|e|s|t|"+0#af5f00255&| +0#0000000&@55 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|;+0#af5f00255&@1| +0#0000000&@64 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@8|e+0#af5f00255&|s|a|c| +0#0000000&@62 +|#+0#0000e05&| |c|o|m@1|e|n|t| +0#0000000&@65 +@75 +|e+0#af5f00255&|c|h|o| +0#e000002&@2|$+0#e000e06&|V|A|R| +0#e000002&|a|b|c| +0#0000000&@59 +|e+0#af5f00255&|x|p|o|r|t| +0#0000000&|$+0#e000e06&|V|A|R| +0#0000000&|a|b|c| @59 +>s+0#af5f00255&|e|t| +0#00e0e07&@3|$+0#e000e06&|V|A|R| +0#00e0e07&|a|b|c| +0#0000000&@59 +@57|3|0|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_03_00.dump b/runtime/syntax/testdir/dumps/sh_03_00.dump new file mode 100644 index 0000000..59eca09 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_03_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|k|s|h| +0#0000000&@64 +|#+0#0000e05&| @1|T|e|s|t| |v|a|r|i|a|b|l|e| |m|o|d|i|f|i|e|r|s| +0#0000000&@48 +|#+0#0000e05&| |V|a|r|i|a|b|l|e|=|v|a|l|u|e| +0#0000000&@58 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|v+0#e000002&|a|l|u|e|'+0#af5f00255&| +0#0000000&@58 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|v+0#e000002&|a|l|u|e|"+0#af5f00255&| +0#0000000&@58 +|V+0#00e0e07&|a|r|i|a|b|l|e|A|=+0#0000000&|"+0#af5f00255&|p+0#e000002&|a|t|1|x@1|p|a|t|2|"+0#af5f00255&| +0#0000000&@52 +|V+0#00e0e07&|a|r|i|a|b|l|e|B|=+0#0000000&|"+0#af5f00255&|p+0#e000002&|a|t|2|x@1|p|a|t|1|"+0#af5f00255&| +0#0000000&@52 +|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|#|}| +0#0000000&@65 +|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|#|V|a|r|i|a|b|l|e|A|}| +0#0000000&@56 +|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|#+0#af5f00255&|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@52 +|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|#+0#af5f00255&@1|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@51 +|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|%+0#af5f00255&|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@52 +|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|%+0#af5f00255&@1|p+0#0000000&|a|t|1|}+0#e000e06&| +0#0000000&@51 +@75 +|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| +|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@6 +@75 +|i|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_03_01.dump b/runtime/syntax/testdir/dumps/sh_03_01.dump new file mode 100644 index 0000000..1dc4664 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_03_01.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| +|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@6 +@75 +>#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|+|$|{|V|a|r|i|a|b|l|e|C|:|=|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@5|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| +|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@1|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@10 +@75 +|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41 +|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39 +|:+0#0000e05&| +0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@39 +@75 +|#+0#0000e05&| |A|n|o|t|h|e|r| |t|e|s|t| +0#0000000&@60 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|D|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|E|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@3| +0#0000000&@6 +@57|1|9|,|1| @9|8|7|%| diff --git a/runtime/syntax/testdir/dumps/sh_03_99.dump b/runtime/syntax/testdir/dumps/sh_03_99.dump new file mode 100644 index 0000000..3d796c6 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_03_99.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@7|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@6 +@75 +|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|+|$|{|V|a|r|i|a|b|l|e|C|:|=|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@32 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|+|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@5|#+0#0000e05&| |:|+| |s|e@1|m|s| |t|o| |w|o|r|k| |f|o|r| |k|s|h| +|a|s| |w|e|l@1| |a|s| |b|a|s|h| +0#0000000&@59 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@1|#+0#0000e05&| |:|-| |i|s| |k|s|h| |a|n|d| |b|a|s|h| +0#0000000&@10 +@75 +|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41 +|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39 +|:+0#0000e05&| +0#0000000&|'+0#af5f00255&|$+0#e000002&|{|V|a|r|i|a|b|l|e|B|:|-|$|{|V|a|r|i|a|b|l|e|C|:|-|e|n|g|}@1|'+0#af5f00255&| +0#0000000&@39 +@75 +|#+0#0000e05&| |A|n|o|t|h|e|r| |t|e|s|t| +0#0000000&@60 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|D|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|E|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@3| +0#0000000&@6 +@7|:+0#0000e05&| +0#0000000&@7|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|D|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|E|:+0#af5f00255&|=|e+0#0000000&|n|g|}+0#e000e06&@3 +> +0#0000000&@74 +|~+0#4040ff13&| @73 +| +0#0000000&@56|3@1|,|0|-|1| @7|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_04_00.dump b/runtime/syntax/testdir/dumps/sh_04_00.dump new file mode 100644 index 0000000..4828991 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_04_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+0#0000e05&| |s|h|4| +0#0000000&@69 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|{+0#0000000&|V|a|r|i|a|b|l|e|C|}|}+0#e000e06&| +0#0000000&@40 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@26 +@75 +|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |w|h|i|l|e| |i|t|s| |o|k| +0#0000000&@31 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@8 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|$+0#e000e06&|V|a|r|6|}@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@6 +@75 +|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@24 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@15 +@75 +|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |t|o@1| +0#0000000&@40 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@33 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@24 +@75 +|i|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_04_01.dump b/runtime/syntax/testdir/dumps/sh_04_01.dump new file mode 100644 index 0000000..5a0ebe8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_04_01.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@15 +@75 +|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |t|o@1| +0#0000000&@40 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@33 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@24 +> @74 +|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41 +|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39 +@75 +|#+0#0000e05&| |F|i|r|s|t| |l|i|n|e| |i|s| |O|K| |e|x|c|e|p|t| |i|t|s| |m|i|s@1|i|n|g| |a| |c|l|o|s|i|n|g| |"|}|"|,| +0#0000000&@22 +|#+0#0000e05&| |s|o| |s|e|c|o|n|d| |l|i|n|e| |s|h|o|u|l|d| |h|a|v|e| |s|o|m|e| |e|r@1|o|r| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@22 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&| +0#0000000&@18 +|V+0#ffffff16#ff404010|a|r|i|a|b|l|e|=|$+0#e000e06#ffffff0|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&| +0#0000000&@27 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|1|9|,|0|-|1| @7|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_04_99.dump b/runtime/syntax/testdir/dumps/sh_04_99.dump new file mode 100644 index 0000000..54ea81a --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_04_99.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@8 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|5|:+0#af5f00255&|-|$+0#e000e06&|V|a|r|6|}@1|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@6 +@75 +|#+0#0000e05&| |T|h|e|s|e| |a|r|e| |O|K| +0#0000000&@60 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@24 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@15 +@75 +|#+0#0000e05&| |T|h|i|s| |g|e|t|s| |m|a|r|k|e|d| |a|s| |a|n| |e|r@1|o|r| |t|o@1| +0#0000000&@40 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&@1| +0#0000000&@33 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&@1| +0#0000000&@24 +@75 +|#+0#0000e05&| |T|h|i|s| |i|s| |O|K| +0#0000000&@62 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1| +0#0000000&@41 +|:+0#0000e05&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&@1|"+0#af5f00255&| +0#0000000&@39 +@75 +|#+0#0000e05&| |F|i|r|s|t| |l|i|n|e| |i|s| |O|K| |e|x|c|e|p|t| |i|t|s| |m|i|s@1|i|n|g| |a| |c|l|o|s|i|n|g| |"|}|"|,| +0#0000000&@22 +|#+0#0000e05&| |s|o| |s|e|c|o|n|d| |l|i|n|e| |s|h|o|u|l|d| |h|a|v|e| |s|o|m|e| |e|r@1|o|r| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@22 +|V+0#00e0e07&|a|r|i|a|b|l|e|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|=|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|=|{+0#0000000&|V|a|r|3|:|=|$+0#e000e06&|{|V|a|r|4|:+0#af5f00255&|-|e+0#0000000&|n|g|}+0#e000e06&|}+0#0000000&|}+0#e000e06&| +0#0000000&@18 +>V+0#ffffff16#ff404010|a|r|i|a|b|l|e|=|$+0#e000e06#ffffff0|{|V|a|r|i|a|b|l|e|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|i|a|b|l|e|C|:+0#af5f00255&|-|{+0#0000000&|V|a|r|3|:|=|e|n|g|}|}+0#e000e06&| +0#0000000&@27 +@57|2|7|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_05_00.dump b/runtime/syntax/testdir/dumps/sh_05_00.dump new file mode 100644 index 0000000..73164f0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| |-|x| +0#0000000&@60 +|#+0#0000e05&| |s|h|5| +0#0000000&@69 +|#+0#0000e05&| |N|o|t|e| |t|h|a|t| |t|h|i|s| |i|s| |s|p|e|c|i|a|l| |f|o|r| |s|h|.| |k|s|h| |w|i|l@1| |b|e| |a|n| |e|x|t|r|a| |f|i|l|e| |l|a|t|e|r|.| +0#0000000&@6 +|#+0#0000e05&| |N|o|t|e| |t|o@1|,| |t|h|a|t| |s|h| |a|n|d| |k|s|h| |a|l@1|o|w| |$|{|v|a|r|:|-|s|u|b|}| |a|s| |w|e|l@1| |a|s| |$|{|v|a|r|-|s|u|b|}|!| +0#0000000&@6 +|#+0#0000e05&| |T|h|e| |'|:|'| |i|s| |o|p|t|i|o|n|a|l|!| +0#0000000&@52 +@75 +|#+0#0000e05&| |T|h|i|s| |a|l@1| |s|h|o|u|l|d| |b|e| |O|K| +0#0000000&@51 +|#+0#0000e05&| |C|a|s|e| |0|a| +0#0000000&@65 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |d|a|t|e| @58 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|v|a|l|u|e|1| @58 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|'+0#af5f00255&|v+0#e000002&|a|l|u|e|2|'+0#af5f00255&| +0#0000000&@56 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|"+0#af5f00255&|v+0#e000002&|a|l|u|e|3|"+0#af5f00255&| +0#0000000&@56 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |0|b| +0#0000000&@65 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|H|O|M|E| +0#0000000&@59 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|H|O|M|E|'+0#af5f00255&| +0#0000000&@57 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|H|O|M|E|"+0#af5f00255&| +0#0000000&@57 +|i|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_05_01.dump b/runtime/syntax/testdir/dumps/sh_05_01.dump new file mode 100644 index 0000000..8350053 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_01.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&| |C|a|s|e| |0|b| +0#0000000&@65 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|H|O|M|E| +0#0000000&@59 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|'+0#af5f00255&|$+0#e000002&|H|O|M|E|'+0#af5f00255&| +0#0000000&@57 +>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|H|O|M|E|"+0#af5f00255&| +0#0000000&@57 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |0|c| +0#0000000&@65 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|H|O|M|E|$|S|H|E|L@1| +0#0000000&@53 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|H|O|M|E|.+0#0000000&|$+0#e000e06&|S|H|E|L@1| +0#0000000&@52 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|H|O|M|E|.+0#0000000&|$+0#e000e06&|S|H|E|L@1|++0#0000000&|$+0#e000e06&|H|O|M|E|-+0#0000000&|$+0#e000e06&|S|H|E|L@1|/+0#0000000&|$+0#e000e06&|H|O|M|E| +0#0000000&@33 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |0|d| +0#0000000&@65 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|`+0#e000e06&|d|a|t|e|`| +0#0000000&@58 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|`+0#e000e06&|i|d| |-|n|g|`| +0#0000000&@56 +@57|1|9|,|1| @10|3|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_02.dump b/runtime/syntax/testdir/dumps/sh_05_02.dump new file mode 100644 index 0000000..d4e7f9a --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_02.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|`+0#e000e06&|i|d| |-|n|g| ||+0#af5f00255&| +0#e000e06&|w|c| |-|c|`| +0#0000000&@48 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +>#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&| +0#0000000&@46 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&| +0#0000000&@46 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@46 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@46 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +@57|3|7|,|1| @10|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_03.dump b/runtime/syntax/testdir/dumps/sh_05_03.dump new file mode 100644 index 0000000..2e369d8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_03.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33 +>[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@44 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|d|:| |c|o|n|s|t|a|n|t|s| |b|u|t| |m|i|s@1|i|n|g| |c|o|l|o|n|s| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|=+0#af5f00255&|e+0#0000000&|n|g|1|}+0#e000e06&| +0#0000000&@47 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|e+0#0000000&|n|g|2|}+0#e000e06&| +0#0000000&@47 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|?+0#af5f00255&|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@47 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|++0#af5f00255&|e+0#0000000&|n|g|3|}+0#e000e06&| +0#0000000&@47 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|=+0#af5f00255&|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +@57|5@1|,|1| @9|1|3|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_04.dump b/runtime/syntax/testdir/dumps/sh_05_04.dump new file mode 100644 index 0000000..27c821a --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_04.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|?+0#af5f00255&|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|++0#af5f00255&|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|=+0#af5f00255&|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|?+0#af5f00255&|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|++0#af5f00255&|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@45 +@75 +|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}| +0#0000000&@45 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +@57|7|3|,|1| @9|1|8|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_05.dump b/runtime/syntax/testdir/dumps/sh_05_05.dump new file mode 100644 index 0000000..1eb0229 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_05.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +> @74 +|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@43 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +@57|9|1|,|0|-|1| @7|2|4|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_06.dump b/runtime/syntax/testdir/dumps/sh_05_06.dump new file mode 100644 index 0000000..46c4de0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_06.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28 +>[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&| +0#0000000&@42 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&| +0#0000000&@34 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@57|1|0|9|,|1| @8|2|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_07.dump b/runtime/syntax/testdir/dumps/sh_05_07.dump new file mode 100644 index 0000000..e1dc4ed --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_07.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |T|h|e| |s|a|m|e| |w|i|t|h| |o|n|e| |n|e|s|t|e|t| |$|{|}| |l|e|v|e|l| +0#0000000&@38 +>#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&@1| +0#0000000&@37 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&@1| +0#0000000&@37 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&@1| +0#0000000&@37 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&@1| +0#0000000&@37 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +@57|1|2|7|,|1| @8|3|4|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_08.dump b/runtime/syntax/testdir/dumps/sh_05_08.dump new file mode 100644 index 0000000..dc77a9f --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_08.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@35 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}@1| +0#0000000&@36 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +@57|1|4|5|,|1| @8|3|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_09.dump b/runtime/syntax/testdir/dumps/sh_05_09.dump new file mode 100644 index 0000000..944d7e3 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_09.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@1| +0#0000000&@34 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +@57|1|6|3|,|1| @8|4@1|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_10.dump b/runtime/syntax/testdir/dumps/sh_05_10.dump new file mode 100644 index 0000000..43639c8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_10.dump @@ -0,0 +1,20 @@ +|[+0#af5f00255#ffffff0| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@1| +0#0000000&@35 +>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@1| +0#0000000&@33 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25 +@57|1|8|1|,|1| @8|4|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_11.dump b/runtime/syntax/testdir/dumps/sh_05_11.dump new file mode 100644 index 0000000..2ba00e3 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_11.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@1| +0#0000000&@25 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +>#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |T|h|e| |s|a|m|e| |w|i|t|h| |t|w|o| |n|e|s|t|e|t| |$|{|}| |l|e|v|e|l| +0#0000000&@38 +|#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&@2| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&@2| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&@2| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&@2| +0#0000000&@28 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +@57|1|9@1|,|1| @8|5|4|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_12.dump b/runtime/syntax/testdir/dumps/sh_05_12.dump new file mode 100644 index 0000000..2300b7d --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_12.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +> @74 +|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@26 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27 +@57|2|1|7|,|0|-|1| @6|5|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_13.dump b/runtime/syntax/testdir/dumps/sh_05_13.dump new file mode 100644 index 0000000..71e0e78 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_13.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}@2| +0#0000000&@27 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32 +>[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +@57|2|3|5|,|1| @8|6|4|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_14.dump b/runtime/syntax/testdir/dumps/sh_05_14.dump new file mode 100644 index 0000000..d16e2e0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_14.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@2| +0#0000000&@25 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@2| +0#0000000&@26 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@2| +0#0000000&@24 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +@57|2|5|3|,|1| @8|6|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_15.dump b/runtime/syntax/testdir/dumps/sh_05_15.dump new file mode 100644 index 0000000..c9abc7c --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_15.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16 +>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@2| +0#0000000&@16 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |T|h|e| |s|a|m|e| |w|i|t|h| |t|h|r|e@1| |n|e|s|t|e|t| |$|{|}| |l|e|v|e|l| +0#0000000&@36 +|#+0#0000e05&| |C|a|s|e| |1|a| |w|i|t|h| |c|o|n|s|t|a|n|t|s| +0#0000000&@50 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|e+0#0000000&|n|g|1|}+0#e000e06&@3| +0#0000000&@19 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|e+0#0000000&|n|g|2|}+0#e000e06&@3| +0#0000000&@19 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|e+0#0000000&|n|g|3|}+0#e000e06&@3| +0#0000000&@19 +@57|2|7|1|,|1| @8|7|4|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_16.dump b/runtime/syntax/testdir/dumps/sh_05_16.dump new file mode 100644 index 0000000..198e0b7 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_16.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|e+0#0000000&|n|g|3|}+0#e000e06&@3| +0#0000000&@19 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|b| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|'|e+0#e000002&|n|g|1|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|'|e+0#e000002&|n|g|2|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|'|e+0#e000002&|n|g|3|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |1|c| |w|i|t|h| |c|o|n|s|t|a|n|t|s| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@33 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|"|e+0#e000002&|n|g|1|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|"|e+0#e000002&|n|g|2|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|"|e+0#e000002&|n|g|3|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@17 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +@57|2|8|9|,|1| @8|7|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_17.dump b/runtime/syntax/testdir/dumps/sh_05_17.dump new file mode 100644 index 0000000..b282e4d --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_17.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&| |C|a|s|e| |2|a| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| +0#0000000&@49 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18 +>V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|$+0#e000e06&|H|O|M|E|}@3| +0#0000000&@18 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|b| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |s|i|n|g|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|'|$+0#e000002&|H|O|M|E|'+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |2|c| |w|i|t|h| |a| |v|a|r|i|a|b|l|e| |i|n| |d|o|u|b|l|e| |q|u|o|t|e|s| +0#0000000&@32 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +@57|3|0|7|,|1| @8|8|5|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_18.dump b/runtime/syntax/testdir/dumps/sh_05_18.dump new file mode 100644 index 0000000..ef1e618 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_18.dump @@ -0,0 +1,20 @@ +|[+0#af5f00255#ffffff0| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|"|$+0#e000e06&|H|O|M|E|"+0#af5f00255&|}+0#e000e06&@3| +0#0000000&@16 +>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|a| |w|i|t|h| |a| |c|o|m@1|a|n|d| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@37 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|`+0#0000000&|d|a|t|e|`|}+0#e000e06&@3| +0#0000000&@17 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +|#+0#0000e05&| |C|a|s|e| |3|b| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |o|p|t|i|o|n| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@28 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15 +@57|3|2|5|,|1| @8|9|0|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_19.dump b/runtime/syntax/testdir/dumps/sh_05_19.dump new file mode 100644 index 0000000..05b9e3d --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_19.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g|`|}+0#e000e06&@3| +0#0000000&@15 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +>#+0#0000e05&| |C|a|s|e| |3|c| |w|i|t|h| |a| |c|o|m@1|a|n|d| |+| |p|i|p|e| |s|u|b|s|t|i|t|u|t|i|o|n| +0#0000000&@30 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|d+0#e000002&|a|t|e|"+0#af5f00255&| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|=|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|-|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|?|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|B|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|C|:+0#af5f00255&|-|$+0#e000e06&|{|V|a|r|D|:+0#af5f00255&|+|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@7 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@31 +@75 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |T|h|i|s| |i|s| |a|l|s|o| |a|l@1|o|w|e|d|:| +0#0000000&@51 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|$+0#e000e06&|{|V|a|r|B|-+0#af5f00255&|$+0#e000e06&|{|V|a|r|C|-+0#af5f00255&|$+0#e000e06&|{|V|a|r|D|=+0#af5f00255&|`+0#0000000&|i|d| |-|n|g| ||| |w|c| |-|c|`|}+0#e000e06&@3| +0#0000000&@11 +@57|3|4|3|,|1| @8|9|4|%| diff --git a/runtime/syntax/testdir/dumps/sh_05_20.dump b/runtime/syntax/testdir/dumps/sh_05_20.dump new file mode 100644 index 0000000..5316887 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_20.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |f|o|r| |t|h|e| |s|h|:| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|}+0#e000e06&| +0#0000000&@50 +>V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|O+0#0000000&|K|}+0#e000e06&| +0#0000000&@48 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|'|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|"|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|$|S|H|E|L@1|}| +0#0000000&@39 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|:+0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@38 +@75 +|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |a|l|s|o| |f|o|r| |k|s|h|:| +0#0000000&@23 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|}+0#e000e06&| +0#0000000&@40 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|,| |t|o@1|:| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@27 +@75 +|#+0#0000e05&| |W|h|a|t| |h|a|p@1|e|n|s| |w|i|t|h| |$|{|#|i|d|e|n|t|i|f|i|e|r|[|*|]|}|:| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|5|=+0#0000000&|$+0#e000e06&|{|#|i|d|e|n|t|i|f|i|e|r|[|*+0#0000000&|]+0#e000e06&|}| +0#0000000&@47 +|~+0#4040ff13&| @73 +| +0#0000000&@56|3|6|1|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_05_99.dump b/runtime/syntax/testdir/dumps/sh_05_99.dump new file mode 100644 index 0000000..c3d20b5 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_05_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |f|o|r| |t|h|e| |s|h|:| +0#0000000&@25 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|}+0#e000e06&| +0#0000000&@50 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|O+0#0000000&|K|}+0#e000e06&| +0#0000000&@48 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|`+0#0000000&|d|a|t|e|`|}+0#e000e06&| +0#0000000&@44 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|'|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|'+0#af5f00255&|}+0#e000e06&| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|"|a+0#e000002&|n| |O|K| |s|t|r|i|n|g|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|$|S|H|E|L@1|}| +0#0000000&@39 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E|:+0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@38 +@75 +|#+0#0000e05&| |A|l@1| |c|a|s|e|s| |w|i|t|h| |$|{|V|a|r|:|?|}| |w|h|i|c|h| |w|o|r|k|s| |a|l|s|o| |f|o|r| |k|s|h|:| +0#0000000&@23 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|}+0#e000e06&| +0#0000000&@40 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |O|K|,| |t|o@1|:| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@27 +@75 +|#+0#0000e05&| |W|h|a|t| |h|a|p@1|e|n|s| |w|i|t|h| |$|{|#|i|d|e|n|t|i|f|i|e|r|[|*|]|}|:| +0#0000000&@36 +>V+0#00e0e07&|a|r|i|a|b|l|e|5|=+0#0000000&|$+0#e000e06&|{|#|i|d|e|n|t|i|f|i|e|r|[|*+0#0000000&|]+0#e000e06&|}| +0#0000000&@47 +@57|3|7|3|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_06_00.dump b/runtime/syntax/testdir/dumps/sh_06_00.dump new file mode 100644 index 0000000..c037b75 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_06_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|k|s|h| +0#0000000&@64 +|#+0#0000e05&| |S|h|a|l@1| |w|e| |d|e|b|u|g| |t|h|i|s| |s|c|r|i|p|t|?| |I|f| |s|o|,| |r|e|m|o|v|e| |t|h|e| |'|#|'| |b|e|f|o|r|e| |'|#|D|e|b|u|g|S|c|r|i|p|t|=|s|e +|t|'| +0#0000000&@72 +|D+0#00e0e07&|e|b|u|g|S|c|r|i|p|t|=+0#0000000&|s|e|t| @59 +@75 +|#+0#0000e05&| |S|h|o|w| |t|h|a|t| |w|e| |a|r|e| |b|u|s|y|.| +0#0000000&@50 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|P+0#e000002&|l|e|a|s|e| |w|a|i|t| |.@2| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&|>+0#af5f00255&|`+0#e000e06&|t@1|y|`| +0#0000000&@30 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |D|i|s|p|l|a|y| |s|o|m|e| |H|e|l|p| +0#0000000&@55 +|#+0#0000e05&| +0#0000000&@73 +|U+0#00e0e07&|s|a|g|e| |(|)| |{| +0#0000000&@64 +@75 +|#+0#0000e05&| |d|o|e|s| |t|h|i|s| |c|o|m@1|e|n|t| |w|o|r|k|?| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|N|a|m|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|B|a|s|i|c|C|o|n|f|i|g|N|a|m|e|}|_+0#e000002&|*|"+0#af5f00255&| +0#0000000&@39 +@75 +|#+0#0000e05&| |E|c|h|o| |s|o|m|e| |k|s|h| |s|p|e|c|i|a|l| |v|a|r|i|a|b|l|e|s| +0#0000000&@41 +|i|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_06_01.dump b/runtime/syntax/testdir/dumps/sh_06_01.dump new file mode 100644 index 0000000..e71380e --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_06_01.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0| |d|o|e|s| |t|h|i|s| |c|o|m@1|e|n|t| |w|o|r|k|?| +0#0000000&@49 +|V+0#00e0e07&|a|r|i|a|b|l|e|N|a|m|e|=+0#0000000&|"+0#af5f00255&|$+0#e000e06&|{|B|a|s|i|c|C|o|n|f|i|g|N|a|m|e|}|_+0#e000002&|*|"+0#af5f00255&| +0#0000000&@39 +@75 +|#+0#0000e05&| |E|c|h|o| |s|o|m|e| |k|s|h| |s|p|e|c|i|a|l| |v|a|r|i|a|b|l|e|s| +0#0000000&@41 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|C+0#e000002&|D|P|A|T|H|=|"+0#af5f00255&|$+0#e000e06&|{|C|D|P|A|T|H|}| +0#0000000&@51 +> @74 +|#+0#0000e05&| |G|e|t| |a|l|s|o| |a| |s|h|o|r|t| |d|e|s|c|r|i|p|t|i|o|n| |o|f| |t|h|e| |b|a|c|k|u|p|t|y|p|e|/|m|e|t|h|o|d| +0#0000000&@19 +|e+0#af5f00255&|v|a|l| +0#0000000&|B+0#00e0e07&|a|c|k|u|p|M|e|t|h|o|d|=+0#0000000&|\+0#e000e06&|$|m+0#0000000&|e|s@1|0|9|$+0#e000e06&|{|B|a|c|k|u|p|T|y|p|e|}|B+0#0000000&| @34 +@75 +|c+0#af5f00255&|a|s|e| +0#0000000&|$+0#e000e06&|B|a|c|k|u|p|T|y|p|e| +0#0000000&|i+0#af5f00255&|n| +0#0000000&@55 +@2|3|)+0#af5f00255&| +0#0000000&@2|D+0#00e0e07&|e|f|a|u|l|t|D|e|v|i|c|e|=+0#0000000&|$+0#e000e06&|M|o|u|n|t|D|e|v|i|c|e| +0#0000000&@3|;+0#af5f00255&@1| +0#0000000&@35 +@2|1|||2|)+0#af5f00255&| +0#0000000&|D+0#00e0e07&|e|f|a|u|l|t|D|e|v|i|c|e|=+0#0000000&|$+0#e000e06&|T|a|p|e|D|r|i|v|e| +0#0000000&@5|;+0#af5f00255&@1| +0#0000000&@35 +|e+0#af5f00255&|s|a|c| +0#0000000&@70 +@75 +|#+0#0000e05&| |I|f| |w|e| |h|a|v|e| |m|o|r|e| |t|h|e| |5|3| |c|h|a|r|a|c|t|e|r|s| |i|n| |t|h|e| |v|a|r|i|a|b|l|e|s| |b|e|l|o|w| |s|p|l|i|t| |t|h|e|m| |u|p| +0#0000000&@2 +|#+0#0000e05&| |i|n|t|o| |s|e|v|e|r|a|l| |l|i|n|e|s| |a|n|d| |a|d@1| |3| |t|a|b|s| |b|e|f|o|r|e| |t|h|e|m| +0#0000000&@27 +|f+0#af5f00255&|o|r| +0#0000000&|V|a|r|i|a|b|l|e| |i+0#af5f00255&|n| +0#0000000&|D|e|f|a|u|l|t|E|x|c|l|u|d|e| |D|e|f|a|u|l|t|F|i|n|d|O|p|t|i|o|n| |D|o|N|o|t|B|a|c|k|u|p|L|i|s|t| @10 +|d+0#af5f00255&|o| +0#0000000&@72 +@4|e+0#af5f00255&|v|a|l| +0#0000000&|V+0#00e0e07&|a|r|V|a|l|u|e|=+0#0000000&|\+0#e000e06&|$@1|V|a|r|i|a|b|l|e| +0#0000000&@45 +@57|1|9|,|0|-|1| @7|2|5|%| diff --git a/runtime/syntax/testdir/dumps/sh_06_02.dump b/runtime/syntax/testdir/dumps/sh_06_02.dump new file mode 100644 index 0000000..029ba13 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_06_02.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|e+0#af5f00255&|v|a|l| +0#0000000&|V+0#00e0e07&|a|r|V|a|l|u|e|=+0#0000000&|\+0#e000e06&|$@1|V|a|r|i|a|b|l|e| +0#0000000&@45 +@4|V+0#00e0e07&|a|r|V|a|l|u|e|=+0#0000000&|`+0#e000e06&|e+0#af5f00255&|c|h|o| +0#e000002&|$+0#e000e06&|V|a|r|V|a|l|u|e| +0#e000002&||+0#af5f00255&| +0#e000e06&|F|o|l|d|S| |5+0#e000002&|3| +0#e000e06&||+0#af5f00255&| +0#e000e06&|s+0#af5f00255&|e|d| +0#e000e06&|"+0#af5f00255&|2+0#e000002&|,|\+0#e000e06&@1|$|s|/+0#e000002&|^|/|$+0#e000e06&|T|a|b|$|T|a|b|$|T|a|b|/+0#e000002&|"+0#af5f00255&|`+0#e000e06&| +0#0000000&@3 +@4|e+0#af5f00255&|v|a|l| +0#0000000&|$+0#e000e06&|V|a|r|i|a|b|l|e|=+0#af5f00255&|\+0#e000e06&|$|V+0#0000000&|a|r|V|a|l|u|e| @45 +|d+0#af5f00255&|o|n|e| +0#0000000&@70 +@75 +>e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&| +0#0000000&@68 +|U+0#e000002&|s|a|g|e|:| @1|$+0#e000e06&|S|c|r|i|p|t|N|a|m|e| +0#e000002&|[|-|O|p|t|i|o|n|s|]| +0#0000000&@44 +@75 +|O+0#e000002&|p|t|i|o|n|s| |L|i|s|t|:| +0#0000000&@61 +| +0#e000002&@7|-|v| @13|T|h|e| |c|u|r@1|e|n|t| |v|e|r|s|i|o|n| |o|f| |'|$+0#e000e06&|S|c|r|i|p|t|N|a|m|e|'+0#e000002&| +0#0000000&@14 +| +0#e000002&@7|-|h| @1||| |-|H| ||| |?| @3|D|i|s|p|l|a|y| |t|h|i|s| |l|i|s|t| +0#0000000&@33 +@75 +|"+0#af5f00255&| +0#0000000&@73 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |U|s|a|g|e| +0#0000000&@58 +@75 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +@57|3|7|,|1| @9|5|8|%| diff --git a/runtime/syntax/testdir/dumps/sh_06_03.dump b/runtime/syntax/testdir/dumps/sh_06_03.dump new file mode 100644 index 0000000..2f22cde --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_06_03.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0| +0#0000000&@73 +|#+0#0000e05&| |C|r|e|a|t|e| |a| |b|a|c|k|u|p| |u|s|i|n|g| |f|b|a|c|k|u|p|/|f|r|e|c|o|v|e|r| +0#0000000&@34 +|#+0#0000e05&| +0#0000000&@73 +|E+0#00e0e07&|x|e|c|u|t|e|F|b|a|c|k|u|p| |(|)| |{| +0#0000000&|#+0#0000e05&| |T|E|S|T|I|N|G| +0#0000000&@45 +@75 +>[+0#af5f00255&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|D|e|b|u|g|S|c|r|i|p|t|"+0#af5f00255&| +0#0000000&|]+0#af5f00255&| +0#0000000&@3|&+0#af5f00255&@1| +0#0000000&|s+0#af5f00255&|e|t| +0#00e0e07&|-+0#e000e06&|x| +0#00e0e07&||+0#af5f00255&@1| +0#0000000&|s+0#af5f00255&|e|t| +0#00e0e07&|++0#e000e06&|x| +0#0000000&@33 +@75 +|c+0#af5f00255&|d| +0#0000000&|$+0#e000e06&|c|w|d| +0#0000000&@67 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |E|x|e|c|u|t|e|F|b|a|c|k|u|p| +0#0000000&@49 +@75 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m +|a|i|n| |#| +0#0000000&@69 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +@57|5@1|,|1| @9|8|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_06_99.dump b/runtime/syntax/testdir/dumps/sh_06_99.dump new file mode 100644 index 0000000..b347aad --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_06_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|c+0#af5f00255&|d| +0#0000000&|$+0#e000e06&|c|w|d| +0#0000000&@67 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |E|x|e|c|u|t|e|F|b|a|c|k|u|p| +0#0000000&@49 +@75 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m +|a|i|n| |#| +0#0000000&@69 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |H|e|r|e| |i|s| |t|h|e| |h|e|a|r|t| |o|f| |t|h|i|s| |s|c|r|i|p|t|:| +0#0000000&@39 +|#+0#0000e05&| +0#0000000&@73 +|U|s|a|g|e| @69 +@75 +|#+0#0000e05&| |A|n|d| |e|x|i|t| +0#0000000&@64 +>E|x|i|t| |$+0#e000e06&|R|e|s|u|l|t| +0#0000000&@62 +@57|7|1|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_07_00.dump b/runtime/syntax/testdir/dumps/sh_07_00.dump new file mode 100644 index 0000000..bf02a60 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+0#0000e05&| |T|e|s|t| |f|i|l|e| |t|o| |t|e|s|t| |'|f|o|r| |d|o| |d|o|n|e|'| |l|o@1|p|s|.| +0#0000000&@34 +|#+0#0000e05&| |Y|o|u| |c|a|n| |s|t|a|r|t| |t|h|i|s| |s|c|r|i|p|t| |l|i|k|e|:| |$|0| |{|-|n|e| |-|g|t| |-|l|e| |.@2|}| |(|a|l@1| |n|u|m|e|r|i|c| |o|p|e|r|a|t|o +|r|s| | +0#0000000&@71 +|#+0#0000e05&| |a|r|e| |a|l@1|o|w|e|d|!| +0#0000000&@60 +@75 +|#+0#0000e05&| |A|l@1| |t|h|i|s| |w|o|r|k|s| |a|n|d| |s|h|o|u|l|d| |b|e| |O|K| +0#0000000&@41 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h|o|u|t| |'|i|n| |l|i|s|t|'|.| |U|s|e|s| |$|1| |$|2| |.@2| |T|h|i|s| |i|s| |a| |s|p|e|c|i|a|l| |c|a|s|e|!| +0#0000000&@6 +|#+0#0000e05&| |T|h|i|s| |'|f|o|r| |V|a|r|,| |d|o|,| |d|o|n|e|'| |i|s| |a| |v|e|r|y| |h|a|n|d|y| |s|o|l|u|t|i|o|n| |A|N|D| |n|o| |r|e|a|l| |r|e|p|l|a|c|e|m|e|n|t +| | +0#0000000&@73 +|#+0#0000e05&| |a|v|a|i|l|a|b|l|e|!| +0#0000000&@62 +|#+0#0000e05&| +0#0000000&@73 +|F+0#00e0e07&|u|n|c|t|i|o|n|1| |(|)| |{| +0#0000000&@60 +@75 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|1|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25 +|i|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_07_01.dump b/runtime/syntax/testdir/dumps/sh_07_01.dump new file mode 100644 index 0000000..07b0693 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_01.dump @@ -0,0 +1,20 @@ +|F+0#00e0e07#ffffff0|u|n|c|t|i|o|n|1| |(|)| |{| +0#0000000&@60 +@75 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|1|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25 +|[+0#af5f00255&| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|*|"+0#af5f00255&| +0#0000000&|]+0#af5f00255&| +0#0000000&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o|n|e|\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@49 +@75 +>f+0#af5f00255&|o|r| +0#0000000&|V|a|r| @67 +|d+0#af5f00255&|o| +0#0000000&@72 +@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26 +|d+0#af5f00255&|o|n|e| +0#0000000&@70 +|e+0#af5f00255&|c|h|o| +0#0000000&@70 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|1| +0#0000000&@54 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h| |'|i|n| |l|i|s|t|'| |$|*| +0#0000000&@46 +|#+0#0000e05&| +0#0000000&@73 +|F+0#00e0e07&|u|n|c|t|i|o|n|2| |(|)| |{| +0#0000000&@60 +@57|1|9|,|1| @9|1|7|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_02.dump b/runtime/syntax/testdir/dumps/sh_07_02.dump new file mode 100644 index 0000000..8e36dde --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_02.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|2|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25 +|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| |i+0#af5f00255&|n| +0#0000000&|$+0#e000e06&|*| +0#0000000&@61 +|d+0#af5f00255&|o| +0#0000000&@72 +@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26 +>d+0#af5f00255&|o|n|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&@63 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|2| +0#0000000&@54 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h| |'|i|n| |l|i|s|t|'| |$|@|.| |W|o|r|k|s| |t|h|e| |s|a|m|e| |w|a|y| |a|s| |$|*| +0#0000000&@20 +|#+0#0000e05&| +0#0000000&@73 +|F+0#00e0e07&|u|n|c|t|i|o|n|3| |(|)| |{| +0#0000000&@60 +@75 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|3|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25 +|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| |i+0#af5f00255&|n| +0#0000000&|$+0#e000e06&|@| +0#0000000&@61 +|d+0#af5f00255&|o| +0#0000000&@72 +@57|3|7|,|1| @9|4|1|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_03.dump b/runtime/syntax/testdir/dumps/sh_07_03.dump new file mode 100644 index 0000000..4c8ba62 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_03.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26 +|d+0#af5f00255&|o|n|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&@63 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|3| +0#0000000&@54 +@75 +>#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |F|o|r| |l|o@1|p| |w|i|t|h| |'|i|n| |l|i|s|t|'| |"|$|@|"|.| |S|p|e|c|i|a|l| |c|a|s|e|.| |W|o|r|k|s| |l|i|k|e| |"|$|1|"| |"|$|2|"| |.@2| +0#0000000&@4 +|#+0#0000e05&| +0#0000000&@73 +|F+0#00e0e07&|u|n|c|t|i|o|n|4| |(|)| |{| +0#0000000&@60 +@75 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|F+0#e000002&|u|n|c|t|i|o|n|4|:| |f|o|r| |l|o@1|p| |i|n|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@25 +|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| |i+0#af5f00255&|n| +0#0000000&|"+0#af5f00255&|$+0#e000e06&|@|"+0#af5f00255&| +0#0000000&@59 +|d+0#af5f00255&|o| +0#0000000&@72 +@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26 +|d+0#af5f00255&|o|n|e| +0#0000000&|;+0#af5f00255&| +0#0000000&|e+0#af5f00255&|c|h|o| +0#0000000&@63 +@75 +|}+0#00e0e07&| +0#0000000&|#+0#0000e05&| |E|n|d| |o|f| |F|u|n|c|t|i|o|n|4| +0#0000000&@54 +@57|5@1|,|1| @9|6|5|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_04.dump b/runtime/syntax/testdir/dumps/sh_07_04.dump new file mode 100644 index 0000000..4aabca2 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_04.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0@74 +@5| +0#0000000&@69 +|#+0#0000e05&| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m|a|i|n| |#@2| |m +|a|i|n| |#| +0#0000000&@69 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +>#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |H|e|r|e| |i|s| |t|h|e| |h|e|a|r|t| |o|f| |t|h|i|s| |s|c|r|i|p|t|:| +0#0000000&@39 +|#+0#0000e05&| +0#0000000&@73 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|P+0#e000002&|r|o|c|e|s@1|i|n|g| |t|h|e| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |l|i|n|e| |a|r|g|u|m|e|n|t|s|:| |$+0#e000e06&|{|*|:+0#af5f00255&|-|n+0#0000000&|o|n|e|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@8 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|S+0#e000002&|c|r|i|p|t|:| @3|f|o|r| |l|o@1|p| |o|u|t|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@24 +|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| @67 +|d+0#af5f00255&|o| +0#0000000&@72 +@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26 +|d+0#af5f00255&|o|n|e| +0#0000000&|;| |e+0#af5f00255&|c|h|o| +0#0000000&@63 +@75 +|#+0#0000e05&| |S|a|m|e| |a|s| |f|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@50 +|F|u|n|c|t|i|o|n|1| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41 +|F|u|n|c|t|i|o|n|2| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41 +@57|7|3|,|1| @9|8|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_07_99.dump b/runtime/syntax/testdir/dumps/sh_07_99.dump new file mode 100644 index 0000000..3a4d61d --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_07_99.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0| +0#0000000&@73 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|P+0#e000002&|r|o|c|e|s@1|i|n|g| |t|h|e| |f|o|l@1|o|w|i|n|g| |c|o|m@1|a|n|d| |l|i|n|e| |a|r|g|u|m|e|n|t|s|:| |$+0#e000e06&|{|*|:+0#af5f00255&|-|n+0#0000000&|o|n|e|}+0#e000e06&|"+0#af5f00255&| +0#0000000&@8 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|S+0#e000002&|c|r|i|p|t|:| @3|f|o|r| |l|o@1|p| |o|u|t|s|i|d|e| |a| |f|u|n|c|t|i|o|n|:|\+0#e000e06&|t|\|c|"+0#af5f00255&| +0#0000000&@24 +|f+0#af5f00255&|o|r| +0#0000000&|V|a|r| @67 +|d+0#af5f00255&|o| +0#0000000&@72 +@4|[+0#af5f00255&| +0#0000000&|1+0#e000002&| +0#0000000&|$+0#e000e06&|V|a|r| +0#0000000&|2+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|O+0#e000002&|K| |\+0#e000e06&|c|"+0#af5f00255&| +0#e000002&||+0#af5f00255&@1| +0#0000000&|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|n+0#e000002&|o| |\+0#e000e06&|c|"+0#af5f00255&| +0#0000000&@26 +|d+0#af5f00255&|o|n|e| +0#0000000&|;| |e+0#af5f00255&|c|h|o| +0#0000000&@63 +@75 +|#+0#0000e05&| |S|a|m|e| |a|s| |f|u|n|c|t|i|o|n| |c|a|l@1|s| +0#0000000&@50 +|F|u|n|c|t|i|o|n|1| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41 +|F|u|n|c|t|i|o|n|2| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41 +|F|u|n|c|t|i|o|n|3| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&@41 +|F|u|n|c|t|i|o|n|4| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&|'+0#af5f00255&|-+0#e000002&|g|e| |1| |-|a| |2| |-|g|e|'+0#af5f00255&| +0#0000000&@24 +@75 +|#+0#0000e05&| |N|o|w| |t|h|e| |s|a|m|e| |c|a|l@1| |l|i|k|e| |F|u|n|c|t|i|o|n|4| |b|u|t| |w|i|t|h| |F|u|n|c|t|i|o|n|1| +0#0000000&@21 +|F|u|n|c|t|i|o|n|1| |-+0#e000e06&|e|q| +0#0000000&|-+0#e000e06&|n|e| +0#0000000&|-+0#e000e06&|g|t| +0#0000000&|-+0#e000e06&|g|e| +0#0000000&|-+0#e000e06&|l|e| +0#0000000&|-+0#e000e06&|l|t| +0#0000000&|'+0#af5f00255&|-+0#e000002&|g|e| |1| |-|a| |2| |-|g|e|'+0#af5f00255&| +0#0000000&@24 +|F|u|n|c|t|i|o|n|1| @65 +@75 +>e+0#af5f00255&|x|i|t| +0#0000000&|$+0#e000e06&|?| +0#0000000&@67 +@57|9|3|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_08_00.dump b/runtime/syntax/testdir/dumps/sh_08_00.dump new file mode 100644 index 0000000..9be018a --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_08_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|k|s|h| |-|p| +0#0000000&@61 +@75 +|#+0#0000e05&| |N|o|t|e| |t|h|a|t| |t|h|i|s| |i|s| |s|p|e|c|i|a|l| |t|e|s|t| |f|i|l|e| |f|o|r| |k|s|h|.| |s|h| |i|s| |a|n| |e|x|t|r|a| |f|i|l|e|.| +0#0000000&@7 +|#+0#0000e05&| |N|o|t|e| |t|o@1|,| |t|h|a|t| |t|h|i|s| |f|i|l|e| |c|o|n|t|a|i|n|s| |O|N|L|Y| |t|h|i|n|g|s| |w|h|i|c|h| |w|o|r|k|s| |f|o|r| |k|s|h| |B|U|T| |N|O|T +|#| |f|o|r| |s|h| +0#0000000&@66 +@75 +|#+0#0000e05&| |T|h|i|s| |a|l@1| |s|h|o|u|l|d| |b|e| |O|K| +0#0000000&@51 +@75 +|#+0#0000e05&| |S|e|v|e|r|a|l| |k|e|y|w|o|r|d|s| |w|i|t|h|o|u|t| |a|n|y| |q|u|o|t|e|s|!| +0#0000000&@36 +|#+0#0000e05&| |C|a|s|e| |1|a|.| |S|e|v|e|r|a|l| |C|o|n|s|t|a|n|t|s| | +0#0000000&@45 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |d|a|t|e| @58 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17 +@75 +|#+0#0000e05&| |C|a|s|e| |1|b|.| |V|a|r|i|a|b|l|e| |a|n|d| |C|o|n|s|t|a|n|t| +0#0000000&@42 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30 +|i|s|_|k|o|r|n|s|h|e|l@1|:| |1|,| @40|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/sh_08_01.dump b/runtime/syntax/testdir/dumps/sh_08_01.dump new file mode 100644 index 0000000..45758cc --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_08_01.dump @@ -0,0 +1,20 @@ +|V+0#00e0e07#ffffff0|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@36 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17 +@75 +|#+0#0000e05&| |C|a|s|e| |1|b|.| |V|a|r|i|a|b|l|e| |a|n|d| |C|o|n|s|t|a|n|t| +0#0000000&@42 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|?|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@30 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17 +@75 +|#+0#0000e05&| |C|a|s|e| |1|c|.| |C|o|n|s|t|a|n|t| |a|n|d| |V|a|r|i|a|b|l|e| +0#0000000&@42 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@27 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@27 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@6|#+0#0000e05&|!| |:|+| |i|s| |b|a|s|h|-|o|n|l|y|,| |e +|r@1|o|r| |h|e|r|e| |e|x|p|e|c|t|e|d| +0#0000000&@56 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|t|o@1|}+0#e000e06&| +0#0000000&@23 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|t|o@1|}+0#e000e06&| +0#0000000&@23 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|t|o@1|}+0#e000e06&| +0#0000000&@23 +@57|1|9|,|1| @9|2|0|%| diff --git a/runtime/syntax/testdir/dumps/sh_08_02.dump b/runtime/syntax/testdir/dumps/sh_08_02.dump new file mode 100644 index 0000000..b3289ec --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_08_02.dump @@ -0,0 +1,20 @@ +|e+0#af5f00255#ffffff0|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17 +@75 +|#+0#0000e05&| |C|a|s|e| |1|d|.| |M|o|r|e| |V|a|r|i|a|b|l|e|s| |a|n|d| |C|o|n|s|t|a|n|t|s|.| |S|t|a|r|t|i|n|g| |w|i|t|h| |a| |V|a|r|i|a|b|l|e|.| +0#0000000&@8 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@44 +>V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@20 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@20 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@20 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17 +@75 +|#+0#0000e05&| |C|a|s|e| |1|e|.| |M|o|r|e| |C|o|n|s|t|a|n|t|s| |a|n|d| |V|a|r|i|a|b|l|e|s|.| |S|t|a|r|t|i|n|g| |w|i|t|h| |a| |C|o|n|s|t|a|n|t|.| +0#0000000&@8 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|"|T+0#e000002&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#e000002&|$+0#e000e06&|S|H|E|L@1|"+0#af5f00255&|}+0#e000e06&| +0#0000000&@18 +|V+0#00e0e07&|a|r|i|a|b|l|e|1|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@20 +|V+0#00e0e07&|a|r|i|a|b|l|e|2|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|=|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@20 +|V+0#00e0e07&|a|r|i|a|b|l|e|3|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|+|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@20 +|e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|1|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|2|"+0#af5f00255&| +0#e000002&|;+0#0000000&| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|$+0#e000e06&|V|a|r|i|a|b|l|e|3|"+0#af5f00255&| +0#0000000&@17 +@75 +|#+0#0000e05&| |C|a|s|e| |1|x|.| |T|h|e| |s|a|m|e| |w|i|t|h| |'|:|'| +0#0000000&@46 +@57|3|7|,|1| @9|4|9|%| diff --git a/runtime/syntax/testdir/dumps/sh_08_03.dump b/runtime/syntax/testdir/dumps/sh_08_03.dump new file mode 100644 index 0000000..08ebadf --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_08_03.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0| |C|a|s|e| |1|x|.| |T|h|e| |s|a|m|e| |w|i|t|h| |'|:|'| +0#0000000&@46 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@44 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@38 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@35 +>:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@28 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|:+0#af5f00255&|-|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@28 +@75 +|#+0#0000e05&| |C|a|s|e| |1|y|.| |T|h|e| |s|a|m|e| |w|i|t|h| |'|:|'| |a|n|d| |w|i|t|h|o|u|t| |t|h|e| |'|:|'| |i|n| |t|h|e| |p|a|r|a|m|e|t|e|r| |s|u|b|s|t|i|t|u|t +|i|o|n| +0#0000000&@71 +|[+0#af5f00255&| +0#0000000&|-+0#af5f00255&|t| +0#0000000&|0+0#e000002&| +0#0000000&|]+0#af5f00255&| +0#0000000&|&@1| |e+0#af5f00255&|c|h|o| +0#e000002&|"+0#af5f00255&|\+0#e000e06&|n|`|d|a|t|e|`|"+0#af5f00255&| +0#e000002&|&+0#0000000&@1| |u+0#af5f00255&|n|s|e|t| +0#00e0e07&|V|a|r|i|a|b|l|e|A| +0#0000000&@28 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@45 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|$+0#e000e06&|H|O|M|E| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t|}+0#e000e06&| +0#0000000&@39 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@36 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|$+0#e000e06&|S|H|E|L@1| +0#0000000&|T|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E|}| +0#0000000&@29 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|A|-+0#af5f00255&|T+0#0000000&|h|i|s| |i|s| |a| |T|e|x|t| |i|n| |$+0#e000e06&|H|O|M|E| +0#0000000&|$+0#e000e06&|S|H|E|L@1|}| +0#0000000&@29 +@75 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +@57|5@1|,|1| @9|7|5|%| diff --git a/runtime/syntax/testdir/dumps/sh_08_04.dump b/runtime/syntax/testdir/dumps/sh_08_04.dump new file mode 100644 index 0000000..6f77aaf --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_08_04.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0| |T|h|i|s| |a|r|e| |v|a|l|i|d| |u|s|a|g|e|s| |f|o|r| |$|{|V|a|r|:|?|}| |i|n| |k|s|h|!| +0#0000000&@30 +|#+0#0000e05&| +0#0000000&@73 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@14 +@75 +>:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@34 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@22 +@75 +|e+0#af5f00255&|x|i|t| +0#0000000&|$+0#e000e06&|?| +0#0000000&@67 +@75 +|#+0#0000e05&| |M|i|c|h|a|e|l| |S|o|u|l|i|e|r| +0#0000000&@57 +|i+0#af5f00255&|f| |[| +0#0000000&|$+0#e000e06&|#| +0#0000000&|-+0#af5f00255&|n|e| +0#0000000&|1+0#e000002&| +0#0000000&|]+0#af5f00255&|;| +0#0000000&|t+0#af5f00255&|h|e|n| +0#0000000&@53 +@8|e+0#af5f00255&|c|h|o| +0#e000002&|w|h|a|t|e|v|e|r| +0#0000000&@53 +@8|e+0#af5f00255&|x|i|t| +0#0000000&|1+0#e000002&| +0#0000000&@60 +|f+0#af5f00255&|i| +0#0000000&@72 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|7|3|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_08_99.dump b/runtime/syntax/testdir/dumps/sh_08_99.dump new file mode 100644 index 0000000..26007b1 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_08_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|#+0#0000e05&@74 +@5| +0#0000000&@69 +|#+0#0000e05&| +0#0000000&@73 +|#+0#0000e05&| |T|h|i|s| |a|r|e| |v|a|l|i|d| |u|s|a|g|e|s| |f|o|r| |$|{|V|a|r|:|?|}| |i|n| |k|s|h|!| +0#0000000&@30 +|#+0#0000e05&| +0#0000000&@73 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@26 +|V+0#00e0e07&|a|r|i|a|b|l|e|4|=+0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@14 +@75 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e|}+0#e000e06&| +0#0000000&@34 +|:+0#0000e05&| +0#0000000&|$+0#e000e06&|{|V|a|r|i|a|b|l|e|4|:+0#af5f00255&|?|T+0#0000000&|h|i|s| |i|s| |a|n| |E|r@1|o|r| |M|e|s@1|a|g|e| |f|r|o|m| |`|d|a|t|e|`|}+0#e000e06&| +0#0000000&@22 +@75 +|e+0#af5f00255&|x|i|t| +0#0000000&|$+0#e000e06&|?| +0#0000000&@67 +@75 +|#+0#0000e05&| |M|i|c|h|a|e|l| |S|o|u|l|i|e|r| +0#0000000&@57 +|i+0#af5f00255&|f| |[| +0#0000000&|$+0#e000e06&|#| +0#0000000&|-+0#af5f00255&|n|e| +0#0000000&|1+0#e000002&| +0#0000000&|]+0#af5f00255&|;| +0#0000000&|t+0#af5f00255&|h|e|n| +0#0000000&@53 +@8|e+0#af5f00255&|c|h|o| +0#e000002&|w|h|a|t|e|v|e|r| +0#0000000&@53 +@8|e+0#af5f00255&|x|i|t| +0#0000000&|1+0#e000002&| +0#0000000&@60 +>f+0#af5f00255&|i| +0#0000000&@72 +@57|8|2|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/sh_09_00.dump b/runtime/syntax/testdir/dumps/sh_09_00.dump new file mode 100644 index 0000000..8a51f39 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_09_00.dump @@ -0,0 +1,20 @@ +>#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+0#0000e05&| |T|e|s|t| |f|i|l|e| |f|o|r| |v|i|m| |t|h|e| |c|h|e|c|k| |(|)| |s|u|b|s|h|e|l@1|s| +0#0000000&@32 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|1| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@50 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@48 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|-|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |s+0#af5f00255&|e|d| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|$|!|/|!|'+0#af5f00255&| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|/@1|*|$|!|/|!|'+0#af5f00255&| +0#0000000&@20 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|+|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|=|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|?|}+0#e000e06&| @1|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|H|O|M|E| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@47 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@52 +|(|(+0#e000e06&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|+|2|)+0#e000e06&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@65 +|l+0#af5f00255&|e|t| +0#0000000&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|++0#0000000&|2+0#e000002&| +0#0000000&@65 +|i|s|_|d|a|s|h|:| |1|,| |i|s|_|p|o|s|i|x|:| |1|,| |i|s|_|s|h|:| |1|,| @22|1|,|1| @10|A|l@1| diff --git a/runtime/syntax/testdir/dumps/sh_09_99.dump b/runtime/syntax/testdir/dumps/sh_09_99.dump new file mode 100644 index 0000000..b97cfa3 --- /dev/null +++ b/runtime/syntax/testdir/dumps/sh_09_99.dump @@ -0,0 +1,20 @@ +|#+0#0000e05#ffffff0|!|/|b|i|n|/|d|a|s|h| +0#0000000&@63 +|#+0#0000e05&| |T|e|s|t| |f|i|l|e| |f|o|r| |v|i|m| |t|h|e| |c|h|e|c|k| |(|)| |s|u|b|s|h|e|l@1|s| +0#0000000&@32 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|1| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@50 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@48 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|-|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |s+0#af5f00255&|e|d| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|$|!|/|!|'+0#af5f00255&| +0#0000000&|-+0#e000e06&|e| +0#0000000&|'+0#af5f00255&|s+0#e000002&|!|/@1|*|$|!|/|!|'+0#af5f00255&| +0#0000000&@20 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|+|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|=|.+0#0000000&|}+0#e000e06&| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|1|:+0#af5f00255&|?|}+0#e000e06&| @1|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@53 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|H|O|M|E| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@47 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |;+0#af5f00255&| +0#e000e06&|$|p|w|d| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@45 +|(+0#e000e06&| |c+0#af5f00255&|d| +0#e000e06&|$|{|H|O|M|E|}| |)| +0#0000000&||| |w|c| |-+0#e000e06&|c| +0#0000000&@52 +|(|(+0#e000e06&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|+|2|)+0#e000e06&|)+0#ffffff16#ff404010| +0#0000000#ffffff0@65 +>l+0#af5f00255&|e|t| +0#0000000&|n+0#00e0e07&|=+0#0000000&|1+0#e000002&|++0#0000000&|2+0#e000002&| +0#0000000&@65 +|:|r|e|d|r|a|w| @49|1|9|,|1| @9|A|l@1| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_00.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_00.dump new file mode 100644 index 0000000..bb68b0c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_00.dump @@ -0,0 +1,20 @@ +>"+0#0000e05#ffffff0| |E|x| |c|o|m@1|a|n|d|s| +0#0000000&@61 +@75 +|"+0#0000e05&| |S|T|A|R|T| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@55 +|:|@| @72 +|:|@+0#e000e06&@1| +0#0000000&@71 +|:|N|e|x|t| @69 +|:|P|r|i|n|t| @68 +|:|X| @72 +|"+0#0000e05&| |E|N|D| |N|O|T| |M|A|T|C|H|E|D| +0#0000000&@57 +@75 +|:|h+0#af5f00255&|e|l|p| +0#0000000&@69 +@1|:|h+0#af5f00255&|e|l|p| +0#0000000&@68 +|:| |h+0#af5f00255&|e|l|p| +0#0000000&@68 +@1|:| |h+0#af5f00255&|e|l|p| +0#0000000&@67 +@75 +|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67 +| +0#e000002&@3|t|e|x|t| +0#0000000&@66 +|.+0#af5f00255&| +0#0000000&@73 +|:|a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@63 +|"|i|n|p|u|t|/|v|i|m|_|e|x|_|c|o|m@1|a|n|d|s|.|v|i|m|"| |1@1|9|1|L|,| |1|7|2|4|5|B| @15|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_01.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_01.dump new file mode 100644 index 0000000..25a889c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_01.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0|:| |h+0#af5f00255&|e|l|p| +0#0000000&@67 +@75 +|:+0#af5f00255&|a|p@1|e|n|d| +0#0000000&@67 +| +0#e000002&@3|t|e|x|t| +0#0000000&@66 +|.+0#af5f00255&| +0#0000000&@73 +>:|a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@63 +|:|a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@66 +|:|a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@64 +|:|a+0#af5f00255&|l@1| +0#0000000&@70 +|:|a+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +|:|a+0#af5f00255&|r|g|s| +0#0000000&@69 +|:|a+0#af5f00255&|r|g|a|d@1| +0#0000000&@67 +|:|a+0#af5f00255&|r|g|d|e|d|u|p|e| +0#0000000&@64 +|:|a+0#af5f00255&|r|g|d|e|l|e|t|e| +0#0000000&@64 +|:|a+0#af5f00255&|r|g|e|d|i|t| +0#0000000&@66 +|:|a+0#af5f00255&|r|g|d|o| +0#0000000&@68 +|:|a+0#af5f00255&|r|g@1|l|o|b|a|l| +0#0000000&@64 +|:|a+0#af5f00255&|r|g|l|o|c|a|l| +0#0000000&@65 +@57|1|9|,|1| @10|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_02.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_02.dump new file mode 100644 index 0000000..2fb09df --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_02.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|a+0#af5f00255&|r|g|l|o|c|a|l| +0#0000000&@65 +|:|a+0#af5f00255&|r|g|u|m|e|n|t| +0#0000000&@65 +|:|a+0#af5f00255&|s|c|i@1| +0#0000000&@68 +|:|a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&@66 +|:|a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|F|o@1| @62 +>:|a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @62 +|:|a+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|b+0#af5f00255&|u|f@1|e|r| +0#0000000&@67 +|:|b+0#af5f00255&|N|e|x|t| +0#0000000&@68 +|:|b+0#af5f00255&|a|l@1| +0#0000000&@69 +|:|b+0#af5f00255&|a|d@1| +0#0000000&@69 +|:|b+0#af5f00255&|a|l|t| +0#0000000&@69 +|:|b+0#af5f00255&|d|e|l|e|t|e| +0#0000000&@66 +|:|b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@61 +|:|b+0#af5f00255&|e|h|a|v|e| +0#0000000&|x+0#af5f00255&|t|e|r|m| +0#0000000&@61 +|:|b+0#af5f00255&|e|l|o|w|r|i|g|h|t| +0#0000000&@63 +|:|b+0#af5f00255&|f|i|r|s|t| +0#0000000&@67 +|:|b+0#af5f00255&|l|a|s|t| +0#0000000&@68 +|:|b+0#af5f00255&|m|o|d|i|f|i|e|d| +0#0000000&@64 +@57|3|7|,|1| @10|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_03.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_03.dump new file mode 100644 index 0000000..1cb1136 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_03.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|b+0#af5f00255&|m|o|d|i|f|i|e|d| +0#0000000&@64 +|:|b+0#af5f00255&|n|e|x|t| +0#0000000&@68 +|:|b+0#af5f00255&|o|t|r|i|g|h|t| +0#0000000&@65 +|:|b+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64 +|:|b+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66 +>:|b+0#af5f00255&|r|e|a|k| +0#0000000&@68 +|:|b+0#af5f00255&|r|e|a|k|a|d@1| +0#0000000&@65 +|:|b+0#af5f00255&|r|e|a|k|d|e|l| +0#0000000&@65 +|:|b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@64 +|:|b+0#af5f00255&|r|o|w|s|e| +0#0000000&@67 +|:|b+0#af5f00255&|u|f|d|o| +0#0000000&@68 +|:|b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@66 +|:|b+0#af5f00255&|u|n|l|o|a|d| +0#0000000&@66 +|:|b+0#af5f00255&|w|i|p|e|o|u|t| +0#0000000&@65 +|:+0#af5f00255&|c|h|a|n|g|e| +0#0000000&@67 +| +0#e000002&@3|t|e|x|t| +0#0000000&@66 +|.+0#af5f00255&| +0#0000000&@73 +|:|c+0#af5f00255&|N|e|x|t| +0#0000000&@68 +|:|c+0#af5f00255&|N|f|i|l|e| +0#0000000&@67 +@57|5@1|,|1| @10|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_04.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_04.dump new file mode 100644 index 0000000..4d514b0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_04.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|c+0#af5f00255&|N|f|i|l|e| +0#0000000&@67 +|:|c+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@66 +|:|c+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@65 +|:|c+0#af5f00255&|a|b|o|v|e| +0#0000000&@67 +|:|c+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@63 +>:|c+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@65 +|:|c+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@65 +|:|c+0#af5f00255&|a|f|t|e|r| +0#0000000&@67 +|:|c+0#af5f00255&|a|l@1| +0#0000000&@69 +|:|c+0#af5f00255&|a|t|c|h| +0#0000000&@68 +|:|c+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@66 +|:|c+0#af5f00255&|b|e|l|o|w| +0#0000000&@67 +|:|c+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@66 +|:|c+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66 +|:|c+0#af5f00255&@1| +0#0000000&@71 +|:|c+0#af5f00255&@1|l|o|s|e| +0#0000000&@67 +|:|c+0#af5f00255&|d| +0#0000000&@71 +|:|c+0#af5f00255&|d|o| +0#0000000&@70 +|:|c+0#af5f00255&|f|d|o| +0#0000000&@69 +@57|7|3|,|1| @10|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_05.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_05.dump new file mode 100644 index 0000000..15c72f8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_05.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|c+0#af5f00255&|f|d|o| +0#0000000&@69 +|:|c+0#af5f00255&|e|n|t|e|r| +0#0000000&@67 +|:|c+0#af5f00255&|e|x|p|r| +0#0000000&@68 +|:|c+0#af5f00255&|f|i|l|e| +0#0000000&@68 +|:|c+0#af5f00255&|f|i|r|s|t| +0#0000000&@67 +>:|c+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@63 +|:|c+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@65 +|:|c+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@65 +|:|c+0#af5f00255&|h|a|n|g|e|s| +0#0000000&@66 +|:|c+0#af5f00255&|h|d|i|r| +0#0000000&@68 +|:|c+0#af5f00255&|h|e|c|k|p|a|t|h| +0#0000000&@64 +|:|c+0#af5f00255&|h|e|c|k|t|i|m|e| +0#0000000&@64 +|:|c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@65 +|:|c+0#af5f00255&|l|a|s@1| +0#0000000&@68 +|:|c+0#af5f00255&|l|a|s|t| +0#0000000&@68 +|:|c+0#af5f00255&|l|e|a|r|j|u|m|p|s| +0#0000000&@63 +|:|c+0#af5f00255&|l|i|s|t| +0#0000000&@68 +|:|c+0#af5f00255&|l|o|s|e| +0#0000000&@68 +|:|c+0#af5f00255&|m|a|p| +0#0000000&@69 +@57|9|1|,|1| @10|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_06.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_06.dump new file mode 100644 index 0000000..368df37 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_06.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|c+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|c+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|c+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|c+0#af5f00255&|n|e|x|t| +0#0000000&@68 +|:|c+0#af5f00255&|n|e|w|e|r| +0#0000000&@67 +>:|c+0#af5f00255&|n|f|i|l|e| +0#0000000&@67 +|:|c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@62 +|:|c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +|:|c+0#af5f00255&|o|p|y| +0#0000000&@69 +|:|c+0#af5f00255&|o|l|d|e|r| +0#0000000&@67 +|:|c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@62 +|:|c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@66 +|:|c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@65 +|:|c+0#af5f00255&|o|m|p|i|l|e|r| +0#0000000&@65 +|:|c+0#af5f00255&|o|n|t|i|n|u|e| +0#0000000&@65 +|:|c+0#af5f00255&|o|n|f|i|r|m| +0#0000000&@66 +|:|c+0#af5f00255&|o|n|s|t| +0#0000000&@68 +|:|c+0#af5f00255&|o|p|e|n| +0#0000000&@68 +@57|1|0|9|,|1| @9|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_07.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_07.dump new file mode 100644 index 0000000..7507a13 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_07.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|c+0#af5f00255&|o|p|e|n| +0#0000000&@68 +|:|c+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64 +|:|c+0#af5f00255&|p|f|i|l|e| +0#0000000&@67 +|:|c+0#af5f00255&|q|u|i|t| +0#0000000&@68 +|:|c+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66 +>:|c+0#af5f00255&|s|c|o|p|e| +0#0000000&@67 +|:|c+0#af5f00255&|s|t|a|g| +0#0000000&@68 +|:|c+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@64 +|:|c+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|c+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@66 +|:|d+0#af5f00255&|e|l|e|t|e| +0#0000000&@67 +|:|d+0#af5f00255&|e|b|u|g| +0#0000000&@68 +|:|d+0#af5f00255&|e|b|u|g@1|r|e@1|d|y| +0#0000000&@62 +|:|d+0#af5f00255&|e|f| +0#0000000&@70 +|:|d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@63 +|:|d+0#af5f00255&|e|f|e|r| +0#0000000&@68 +|:|d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&@63 +|:|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@62 +@57|1|2|7|,|1| @8|1|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_08.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_08.dump new file mode 100644 index 0000000..970062e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_08.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@62 +|:|d+0#af5f00255&|e|l|m|a|r|k|s| +0#0000000&@65 +|:|d+0#af5f00255&|i|f@1|u|p|d|a|t|e| +0#0000000&@63 +|:|d+0#af5f00255&|i|f@1|g|e|t| +0#0000000&@66 +|:|d+0#af5f00255&|i|f@1|o|f@1| +0#0000000&@66 +>:|d+0#af5f00255&|i|f@1|p|a|t|c|h| +0#0000000&@64 +|:|d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@66 +|:|d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@64 +|:|d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@65 +|:|d+0#af5f00255&|i|g|r|a|p|h|s| +0#0000000&@65 +|:|d+0#af5f00255&|i|s|p|l|a|y| +0#0000000&@66 +|:|d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@62 +|:|d+0#af5f00255&|j|u|m|p| +0#0000000&@68 +|:|d+0#af5f00255&|l| +0#0000000&@71 +|:|d+0#af5f00255&|l|i|s|t| +0#0000000&@68 +|:|d+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@64 +|:|d+0#af5f00255&|o|a|u|t|o|a|l@1| +0#0000000&@64 +|:|d+0#af5f00255&|p| +0#0000000&@71 +|:|d+0#af5f00255&|r|o|p| +0#0000000&@69 +@57|1|4|5|,|1| @8|1@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_09.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_09.dump new file mode 100644 index 0000000..686a6e5 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_09.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|d+0#af5f00255&|r|o|p| +0#0000000&@69 +|:|d+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@66 +|:|d+0#af5f00255&|s|p|l|i|t| +0#0000000&@67 +|:|e+0#af5f00255&|d|i|t| +0#0000000&@69 +|:|e+0#af5f00255&|a|r|l|i|e|r| +0#0000000&@66 +>:|e+0#af5f00255&|c|h|o| +0#0000000&@69 +|:|e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@62 +|:|e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@66 +|:|e+0#af5f00255&|c|h|o|h|l| +0#0000000&@67 +|:|e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@66 +|:|e+0#af5f00255&|c|h|o|n| +0#0000000&@68 +|:|e+0#af5f00255&|c|h|o|w|i|n|d|o|w| +0#0000000&@63 +|:|e+0#af5f00255&|l|s|e| +0#0000000&@69 +|:|e+0#af5f00255&|l|s|e|i|f| +0#0000000&@67 +|:|e+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@65 +|:|e+0#af5f00255&|n|d@1|e|f| +0#0000000&@67 +|:|e+0#af5f00255&|n|d|i|f| +0#0000000&@68 +|:|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@67 +@57|1|6|3|,|1| @8|1|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_10.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_10.dump new file mode 100644 index 0000000..0229d84 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_10.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@67 +|:|e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@62 +|:|e+0#af5f00255&|n|d|t|r|y| +0#0000000&@67 +|:|e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@65 +|:|e+0#af5f00255&|n|e|w| +0#0000000&@69 +>:|e+0#af5f00255&|v|a|l| +0#0000000&@69 +|:|e+0#af5f00255&|x| +0#0000000&@71 +|:|e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@66 +|:|e+0#af5f00255&|x|i|t| +0#0000000&@69 +|:|e+0#af5f00255&|x|p|o|r|t| +0#0000000&@67 +|:|e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@66 +|:|f+0#af5f00255&|i|l|e| +0#0000000&@69 +|:|f+0#af5f00255&|i|l|e|s| +0#0000000&@68 +|:|f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@65 +|:|f+0#af5f00255&|i|l|t|e|r| +0#0000000&@67 +|:|f+0#af5f00255&|i|n|d| +0#0000000&@69 +|:|f+0#af5f00255&|i|n|a|l| +0#0000000&@68 +|:|f+0#af5f00255&|i|n|a|l@1|y| +0#0000000&@66 +|:|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@67 +@57|1|8|1|,|1| @8|1|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_11.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_11.dump new file mode 100644 index 0000000..44856a1 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_11.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|f+0#af5f00255&|i|n|i|s|h| +0#0000000&@67 +|:|f+0#af5f00255&|i|r|s|t| +0#0000000&@68 +|:|f+0#af5f00255&|i|x|d|e|l| +0#0000000&@67 +|:|f+0#af5f00255&|o|l|d| +0#0000000&@69 +|:|f+0#af5f00255&|o|l|d|c|l|o|s|e| +0#0000000&@64 +>:|f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&@63 +|:|f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@61 +|:|f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@65 +|:|f+0#af5f00255&|o|r| +0#0000000&@70 +|:|f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@65 +|:|g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@62 +|:|g+0#af5f00255&|o|t|o| +0#0000000&@69 +|:|g+0#af5f00255&|r|e|p| +0#0000000&@69 +|:|g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@66 +|:|g+0#af5f00255&|u|i| +0#0000000&@70 +|:|g+0#af5f00255&|v|i|m| +0#0000000&@69 +|:|h+0#af5f00255&|a|r|d|c|o|p|y| +0#0000000&@65 +|:|h+0#af5f00255&|e|l|p| +0#0000000&@69 +|:|h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@64 +@57|1|9@1|,|1| @8|1|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_12.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_12.dump new file mode 100644 index 0000000..2c0567a --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_12.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@64 +|:|h+0#af5f00255&|e|l|p|f|i|n|d| +0#0000000&@65 +|:|h+0#af5f00255&|e|l|p|g|r|e|p| +0#0000000&@65 +|:|h+0#af5f00255&|e|l|p|t|a|g|s| +0#0000000&@65 +|:|h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&@64 +>:|h+0#af5f00255&|i|d|e| +0#0000000&@69 +|:|h+0#af5f00255&|i|s|t|o|r|y| +0#0000000&@66 +|:|h+0#af5f00255&|o|r|i|z|o|n|t|a|l| +0#0000000&@63 +|:+0#af5f00255&|i|n|s|e|r|t| +0#0000000&@67 +| +0#e000002&@3|t|e|x|t| +0#0000000&@66 +|.+0#af5f00255&| +0#0000000&@73 +|:|i+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@66 +|:|i+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@65 +|:|i+0#af5f00255&|f| +0#0000000&@71 +|:|i+0#af5f00255&|j|u|m|p| +0#0000000&@68 +|:|i+0#af5f00255&|l|i|s|t| +0#0000000&@68 +|:|i+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|i+0#af5f00255&|m|e|n|u| +0#0000000&@68 +@57|2|1|7|,|1| @8|1|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_13.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_13.dump new file mode 100644 index 0000000..07aba0a --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_13.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|i+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|i+0#af5f00255&|m|p|o|r|t| +0#0000000&@67 +|:|i+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|i+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@62 +|:|i+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +>:|i+0#af5f00255&|n|t|r|o| +0#0000000&@68 +|:|i+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@66 +|:|i+0#af5f00255&|s|p|l|i|t| +0#0000000&@67 +|:|i+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@64 +|:|i+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|j+0#af5f00255&|o|i|n| +0#0000000&@69 +|:|j+0#af5f00255&|u|m|p|s| +0#0000000&@68 +|:|k+0#af5f00255&| +0#0000000&@72 +|:|k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@66 +|:|k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@64 +|:|k+0#af5f00255&|e@1|p|j|u|m|p|s| +0#0000000&@64 +|:|k+0#af5f00255&|e@1|p@1|a|t@1|e|r|n|s| +0#0000000&@61 +|:|l+0#af5f00255&|N|e|x|t| +0#0000000&@68 +@57|2|3|5|,|1| @8|1|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_14.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_14.dump new file mode 100644 index 0000000..155ecc0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_14.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|l+0#af5f00255&|N|e|x|t| +0#0000000&@68 +|:|l+0#af5f00255&|N|f|i|l|e| +0#0000000&@67 +|:|l+0#af5f00255&|i|s|t| +0#0000000&@69 +|:|l+0#af5f00255&|a|b|o|v|e| +0#0000000&@67 +|:|l+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@65 +>:|l+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@63 +|:|l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@65 +|:|l+0#af5f00255&|a|f|t|e|r| +0#0000000&@67 +|:|l+0#af5f00255&|a|s|t| +0#0000000&@69 +|:|l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@65 +|:|l+0#af5f00255&|a|t|e|r| +0#0000000&@68 +|:|l+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@66 +|:|l+0#af5f00255&|b|e|l|o|w| +0#0000000&@67 +|:|l+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@66 +|:|l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66 +|:|l+0#af5f00255&|c|d| +0#0000000&@70 +|:|l+0#af5f00255&|c|h|d|i|r| +0#0000000&@67 +|:|l+0#af5f00255&|c|l|o|s|e| +0#0000000&@67 +|:|l+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@66 +@57|2|5|3|,|1| @8|2|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_15.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_15.dump new file mode 100644 index 0000000..6fad409 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_15.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|l+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@66 +|:|l+0#af5f00255&|d|o| +0#0000000&@70 +|:|l+0#af5f00255&|f|d|o| +0#0000000&@69 +|:|l+0#af5f00255&|e|f|t| +0#0000000&@69 +|:|l+0#af5f00255&|e|f|t|a|b|o|v|e| +0#0000000&@64 +>:|l+0#af5f00255&|e|g|a|c|y| +0#0000000&@67 +|:|l+0#af5f00255&|e|t| +0#0000000&@70 +|:|l+0#af5f00255&|e|x|p|r| +0#0000000&@68 +|:|l+0#af5f00255&|f|i|l|e| +0#0000000&@68 +|:|l+0#af5f00255&|f|i|r|s|t| +0#0000000&@67 +|:|l+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@63 +|:|l+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@65 +|:|l+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@65 +|:|l+0#af5f00255&|g|r|e|p| +0#0000000&@68 +|:|l+0#af5f00255&|g|r|e|p|a|d@1| +0#0000000&@65 +|:|l+0#af5f00255&|h|e|l|p|g|r|e|p| +0#0000000&@64 +|:|l+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@65 +|:|l+0#af5f00255&@1| +0#0000000&@71 +|:|l+0#af5f00255&@1|a|s|t| +0#0000000&@68 +@57|2|7|1|,|1| @8|2@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_16.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_16.dump new file mode 100644 index 0000000..1c63c08 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_16.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|l+0#af5f00255&@1|a|s|t| +0#0000000&@68 +|:|l+0#af5f00255&@1|i|s|t| +0#0000000&@68 +|:|l+0#af5f00255&|m|a|k|e| +0#0000000&@68 +|:|l+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|l+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +>:|l+0#af5f00255&|n|e|x|t| +0#0000000&@68 +|:|l+0#af5f00255&|n|e|w|e|r| +0#0000000&@67 +|:|l+0#af5f00255&|n|f|i|l|e| +0#0000000&@67 +|:|l+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|l+0#af5f00255&|o|a|d|k|e|y|m|a|p| +0#0000000&@63 +|:|l+0#af5f00255&|o|a|d|v|i|e|w| +0#0000000&@65 +|:|l+0#af5f00255&|o|c|k|m|a|r|k|s| +0#0000000&@64 +|:|l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@66 +|:|l+0#af5f00255&|o|l|d|e|r| +0#0000000&@67 +|:|l+0#af5f00255&|o|p|e|n| +0#0000000&@68 +|:|l+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64 +|:|l+0#af5f00255&|p|f|i|l|e| +0#0000000&@67 +|:|l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66 +|:|l+0#af5f00255&|s| +0#0000000&@71 +@57|2|8|9|,|1| @8|2|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_17.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_17.dump new file mode 100644 index 0000000..4988382 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_17.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|l+0#af5f00255&|s| +0#0000000&@71 +|:|l+0#af5f00255&|t|a|g| +0#0000000&@69 +|:|l+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|l+0#af5f00255&|u|a| +0#0000000&@70 +|:|l+0#af5f00255&|u|a|d|o| +0#0000000&@68 +>:|l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@66 +|:|l+0#af5f00255&|v|i|m|g|r|e|p| +0#0000000&@65 +|:|l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@62 +|:|l+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@66 +|:|m+0#af5f00255&|o|v|e| +0#0000000&@69 +|:|m+0#af5f00255&|a|r|k| +0#0000000&@69 +|:|m+0#af5f00255&|a|k|e| +0#0000000&@69 +|"+0#0000e05&| |r|e|q|u|i|r|e|s| |t|r|a|i|l|i|n|g| |w|h|i|t|e|s|p|a|c|e| |t|o| |d|i|s|t|i|n|g|u|i|s|h| |f|r|o|m| |m|a|p|(|)| +0#0000000&@18 +|:|m+0#af5f00255&|a|p| +0#0000000&@70 +|:|m+0#af5f00255&|a|p|c|l|e|a|r| +0#0000000&@65 +|:|m+0#af5f00255&|a|r|k|s| +0#0000000&@68 +|:|m+0#af5f00255&|a|t|c|h| +0#0000000&@68 +|:|m+0#af5f00255&|e|n|u| +0#0000000&@69 +|:|m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@60 +@57|3|0|7|,|1| @8|2|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_18.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_18.dump new file mode 100644 index 0000000..5015a82 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_18.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@60 +|:|m+0#af5f00255&|e|s@1|a|g|e|s| +0#0000000&@65 +|:|m+0#af5f00255&|k|e|x|r|c| +0#0000000&@67 +|:|m+0#af5f00255&|k|s|e|s@1|i|o|n| +0#0000000&@64 +|:|m+0#af5f00255&|k|s|p|e|l@1| +0#0000000&@66 +>:|m+0#af5f00255&|k|v|i|m|r|c| +0#0000000&@66 +|:|m+0#af5f00255&|k|v|i|e|w| +0#0000000&@67 +|:|m+0#af5f00255&|o|d|e| +0#0000000&@69 +|:|m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@65 +|:|m+0#af5f00255&|z|f|i|l|e| +0#0000000&@67 +|:|n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@66 +|:|n+0#af5f00255&|b|k|e|y| +0#0000000&@68 +|:|n+0#af5f00255&|b|s|t|a|r|t| +0#0000000&@66 +|:|n+0#af5f00255&|e|x|t| +0#0000000&@69 +|:|n+0#af5f00255&|e|w| +0#0000000&@70 +|:|n+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|n+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|n+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@65 +@57|3|2|5|,|1| @8|2|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_19.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_19.dump new file mode 100644 index 0000000..31b87c1 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_19.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@65 +|:|n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@64 +|:|n+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@64 +|:|n+0#af5f00255&|o|r|e|m|a|p| +0#0000000&@66 +|:|n+0#af5f00255&|o|h|l|s|e|a|r|c|h| +0#0000000&@63 +>:|n+0#af5f00255&|o|r|e|a|b@1|r|e|v| +0#0000000&@63 +|:|n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@65 +|:|n+0#af5f00255&|o|r|m|a|l| +0#0000000&@67 +|:|n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@63 +|:|n+0#af5f00255&|u|m|b|e|r| +0#0000000&@67 +|:|n+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|n+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|o+0#af5f00255&|l|d|f|i|l|e|s| +0#0000000&@65 +|:|o+0#af5f00255&|p|e|n| +0#0000000&@69 +|:|o+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|o+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|o+0#af5f00255&|n|l|y| +0#0000000&@69 +|:|o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +@57|3|4|3|,|1| @8|2|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_20.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_20.dump new file mode 100644 index 0000000..de2714a --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_20.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|o+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +|:|o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@66 +|:|o+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|o+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +>:|o+0#af5f00255&|w|n|s|y|n|t|a|x| +0#0000000&@64 +|:|p+0#af5f00255&|a|c|k|a|d@1| +0#0000000&@66 +|:|p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@62 +|:|p+0#af5f00255&|c|l|o|s|e| +0#0000000&@67 +|:|p+0#af5f00255&|e|d|i|t| +0#0000000&@68 +|:|p+0#af5f00255&|e|r|l| +0#0000000&@69 +|:|p+0#af5f00255&|r|i|n|t| +0#0000000&@68 +|:|p+0#af5f00255&|r|o|f|d|e|l| +0#0000000&@66 +|:|p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@66 +|:|p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@63 +|:|p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&@63 +|:|p+0#af5f00255&|e|r|l|d|o| +0#0000000&@67 +|:|p+0#af5f00255&|o|p| +0#0000000&@70 +|:|p+0#af5f00255&|o|p|u|p| +0#0000000&@68 +@57|3|6|1|,|1| @8|3|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump new file mode 100644 index 0000000..edfad45 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_21.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|p+0#af5f00255&|o|p|u|p| +0#0000000&@68 +|:|p+0#af5f00255&@1|o|p| +0#0000000&@69 +|:|p+0#af5f00255&|r|e|s|e|r|v|e| +0#0000000&@65 +|:|p+0#af5f00255&|r|e|v|i|o|u|s| +0#0000000&@65 +|:|p+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@66 +>:|p+0#af5f00255&|t|a|g| +0#0000000&@69 +|:|p+0#af5f00255&|t|N|e|x|t| +0#0000000&@67 +|:|p+0#af5f00255&|t|f|i|r|s|t| +0#0000000&@66 +|:|p+0#af5f00255&|t|j|u|m|p| +0#0000000&@67 +|:|p+0#af5f00255&|t|l|a|s|t| +0#0000000&@67 +|:|p+0#af5f00255&|t|n|e|x|t| +0#0000000&@67 +|:|p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@63 +|:|p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@65 +|:|p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65 +|:|p+0#af5f00255&|u|b|l|i|c| +0#0000000&@67 +|:|p+0#af5f00255&|u|t| +0#0000000&@70 +|:|p+0#af5f00255&|w|d| +0#0000000&@70 +|:|p+0#af5f00255&|y|3| +0#0000000&@70 +|:|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@66 +@57|3|7|9|,|1| @8|3|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump new file mode 100644 index 0000000..3cc8e92 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_22.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@66 +|:|p+0#af5f00255&|y|3|d|o| +0#0000000&@68 +|:|p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@66 +|:|p+0#af5f00255&|y|t|h|o|n| +0#0000000&@67 +|:|p+0#af5f00255&|y|d|o| +0#0000000&@69 +>:|p+0#af5f00255&|y|f|i|l|e| +0#0000000&@67 +|:|p+0#af5f00255&|y|x| +0#0000000&@70 +|:|p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@66 +|:|p+0#af5f00255&|y|x|d|o| +0#0000000&@68 +|:|p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@66 +|:|q+0#af5f00255&|u|i|t| +0#0000000&@69 +|:|q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@66 +|:|q+0#af5f00255&|a|l@1| +0#0000000&@69 +|:|r+0#af5f00255&|e|a|d| +0#0000000&@69 +|:|r+0#af5f00255&|e|c|o|v|e|r| +0#0000000&@66 +|:|r+0#af5f00255&|e|d|o| +0#0000000&@69 +|:|r+0#af5f00255&|e|d|i|r| +0#0000000&@68 +|:|r+0#af5f00255&|e|d|r|a|w| +0#0000000&@67 +|:|r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@61 +@57|3|9|7|,|1| @8|3@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump new file mode 100644 index 0000000..d71dfa7 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_23.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@61 +|:|r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@60 +|:|r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@64 +|:|r+0#af5f00255&|e|s|i|z|e| +0#0000000&@67 +|:|r+0#af5f00255&|e|t|a|b| +0#0000000&@68 +>:|r+0#af5f00255&|e|t|u|r|n| +0#0000000&@67 +|:|r+0#af5f00255&|e|w|i|n|d| +0#0000000&@67 +|:|r+0#af5f00255&|i|g|h|t| +0#0000000&@68 +|:|r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@63 +|:|r+0#af5f00255&|u|b|y| +0#0000000&@69 +|:|r+0#af5f00255&|u|b|y|d|o| +0#0000000&@67 +|:|r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@65 +|:|r+0#af5f00255&|u|n|d|o| +0#0000000&@68 +|:|r+0#af5f00255&|u|n|t|i|m|e| +0#0000000&@66 +|:|r+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@65 +|:+0#af5f00255&|s|u|b|s|t|i|t|u|t|e| +0#0000000&@63 +|:|s+0#af5f00255&|N|e|x|t| +0#0000000&@68 +|:|s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@66 +|:|s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@64 +@57|4|1|5|,|1| @8|3|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump new file mode 100644 index 0000000..fd97b1e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_24.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@64 +|:|s+0#af5f00255&|a|l@1| +0#0000000&@69 +|:|s+0#af5f00255&|a|v|e|a|s| +0#0000000&@67 +|:|s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@66 +|:|s+0#af5f00255&|b|N|e|x|t| +0#0000000&@67 +>:|s+0#af5f00255&|b|a|l@1| +0#0000000&@68 +|:|s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@66 +|:|s+0#af5f00255&|b|l|a|s|t| +0#0000000&@67 +|:|s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@63 +|:|s+0#af5f00255&|b|n|e|x|t| +0#0000000&@67 +|:|s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@63 +|:|s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@65 +|:|s+0#af5f00255&|c|r|i|p|t|n|a|m|e|s| +0#0000000&@62 +|:|s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@59 +|:|s+0#af5f00255&|c|r|i|p|t|v|e|r|s|i|o|n| +0#0000000&@60 +|:|s+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@66 +|:|s+0#af5f00255&|e|t| +0#0000000&@70 +|:|s+0#af5f00255&|e|t|f|i|l|e|t|y|p|e| +0#0000000&@62 +|:|s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@64 +@57|4|3@1|,|1| @8|3|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump new file mode 100644 index 0000000..d073ef7 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_25.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@64 +|:|s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@65 +|:|s+0#af5f00255&|f|i|n|d| +0#0000000&@68 +|:|s+0#af5f00255&|f|i|r|s|t| +0#0000000&@67 +|:|s+0#af5f00255&|h|e|l@1| +0#0000000&@68 +>:|s+0#af5f00255&|i|m|a|l|t| +0#0000000&@67 +|:|s+0#af5f00255&|i|g|n| +0#0000000&@69 +|:|s+0#af5f00255&|i|l|e|n|t| +0#0000000&@67 +|:|s+0#af5f00255&|l|e@1|p| +0#0000000&@68 +|:|s+0#af5f00255&|l|e@1|p|!| +0#0000000&@67 +|:|s+0#af5f00255&|l|a|s|t| +0#0000000&@68 +|:+0#af5f00255&|s|m|a|g|i|c| +0#0000000&@67 +|:|s+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|s+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|s+0#af5f00255&|m|i|l|e| +0#0000000&@68 +|:|s+0#af5f00255&|n|e|x|t| +0#0000000&@68 +|:+0#af5f00255&|s|n|o|m|a|g|i|c| +0#0000000&@65 +|:|s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +@57|4|5|1|,|1| @8|3|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump new file mode 100644 index 0000000..20610ed --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_26.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +|:|s+0#af5f00255&|o|r|t| +0#0000000&@69 +|:|s+0#af5f00255&|o|u|r|c|e| +0#0000000&@67 +|:|s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@64 +>:|s+0#af5f00255&|p|e|l@1|g|o@1|d| +0#0000000&@64 +|:|s+0#af5f00255&|p|e|l@1|i|n|f|o| +0#0000000&@64 +|:|s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@64 +|:|s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@62 +|:|s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@64 +|:|s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@63 +|:|s+0#af5f00255&|p|l|i|t| +0#0000000&@68 +|:|s+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64 +|:|s+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66 +|:|s+0#af5f00255&|t|o|p| +0#0000000&@69 +|:|s+0#af5f00255&|t|a|g| +0#0000000&@69 +|:|s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@62 +|:|s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@60 +|:|s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@61 +@57|4|6|9|,|1| @8|3|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump new file mode 100644 index 0000000..99b374e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_27.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@61 +|:|s+0#af5f00255&|t|a|t|i|c| +0#0000000&@67 +|:|s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@63 +|:|s+0#af5f00255&|t|j|u|m|p| +0#0000000&@67 +|:|s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@65 +>:|s+0#af5f00255&|u|n|h|i|d|e| +0#0000000&@66 +|:|s+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@66 +|:|s+0#af5f00255&|v|i|e|w| +0#0000000&@68 +|:|s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@65 +|:|s+0#af5f00255&|y|n|t|a|x| +0#0000000&@67 +|:|s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@66 +|:|s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@65 +|:|t+0#af5f00255&| +0#0000000&@72 +|:|t+0#af5f00255&|N|e|x|t| +0#0000000&@68 +|:|t+0#af5f00255&|a|b|N|e|x|t| +0#0000000&@66 +|:|t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@65 +|:|t+0#af5f00255&|a|b|d|o| +0#0000000&@68 +@57|4|8|7|,|1| @8|4|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump new file mode 100644 index 0000000..e7bcfa9 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_28.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|t+0#af5f00255&|a|b|d|o| +0#0000000&@68 +|:|t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@66 +|:|t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@66 +|:|t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@65 +|:|t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@66 +>:|t+0#af5f00255&|a|b|m|o|v|e| +0#0000000&@66 +|:|t+0#af5f00255&|a|b|n|e|w| +0#0000000&@67 +|:|t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@66 +|:|t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@66 +|:|t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@62 +|:|t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@64 +|:|t+0#af5f00255&|a|b|s| +0#0000000&@69 +|:|t+0#af5f00255&|a|b| +0#0000000&@70 +|:|t+0#af5f00255&|a|g| +0#0000000&@70 +|:|t+0#af5f00255&|a|g|s| +0#0000000&@69 +|:|t+0#af5f00255&|c|d| +0#0000000&@70 +|:|t+0#af5f00255&|c|h|d|i|r| +0#0000000&@67 +|:|t+0#af5f00255&|c|l| +0#0000000&@70 +|:|t+0#af5f00255&|c|l|d|o| +0#0000000&@68 +@57|5|0|5|,|1| @8|4|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump new file mode 100644 index 0000000..52f113e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_29.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|t+0#af5f00255&|c|l|d|o| +0#0000000&@68 +|:|t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@66 +|:|t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@66 +|:|t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@65 +|:|t+0#af5f00255&|f|i|r|s|t| +0#0000000&@67 +>:|t+0#af5f00255&|h|r|o|w| +0#0000000&@68 +|:|t+0#af5f00255&|j|u|m|p| +0#0000000&@68 +|:|t+0#af5f00255&|l|a|s|t| +0#0000000&@68 +|:|t+0#af5f00255&|l|m|e|n|u| +0#0000000&@67 +|:|t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@63 +|:|t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@65 +|:|t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|t+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|t+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|t+0#af5f00255&|n|e|x|t| +0#0000000&@68 +|:|t+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|t+0#af5f00255&|o|p|l|e|f|t| +0#0000000&@66 +|:|t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64 +|:|t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66 +@57|5|2|3|,|1| @8|4@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump new file mode 100644 index 0000000..ae4b19d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_30.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@66 +|:|t+0#af5f00255&|r|y| +0#0000000&@70 +|:|t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@66 +|:|t+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +>:|u+0#af5f00255&|n|d|o| +0#0000000&@69 +|:|u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@65 +|:|u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@65 +|:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61 +|:|u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@61 +|:|u+0#af5f00255&|n|h|i|d|e| +0#0000000&@67 +|:|u+0#af5f00255&|n|l|e|t| +0#0000000&@68 +|:|u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@64 +|:|u+0#af5f00255&|n|m|a|p| +0#0000000&@68 +|:|u+0#af5f00255&|n|m|e|n|u| +0#0000000&@67 +|:|u+0#af5f00255&|n|s|i|l|e|n|t| +0#0000000&@65 +|:|u+0#af5f00255&|p|d|a|t|e| +0#0000000&@67 +|:|v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@61 +|:|v+0#af5f00255&|a|r| +0#0000000&@70 +@57|5|4|1|,|1| @8|4|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump new file mode 100644 index 0000000..575a94f --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_31.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|v+0#af5f00255&|a|r| +0#0000000&@70 +|:|v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@66 +|:|v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@66 +|:|v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@65 +|:|v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@66 +>:|v+0#af5f00255&|i|m|9|s|c|r|i|p|t| +0#0000000&@63 +|:|v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@66 +|:|v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@63 +|:|v+0#af5f00255&|i|s|u|a|l| +0#0000000&@67 +|:|v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@66 +|:|v+0#af5f00255&|i|e|w| +0#0000000&@69 +|:|v+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|v+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|v+0#af5f00255&|n|e|w| +0#0000000&@69 +|:|v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +|:|v+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +|:|v+0#af5f00255&|s|p|l|i|t| +0#0000000&@67 +|:|v+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +@57|5@1|9|,|1| @8|4|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump new file mode 100644 index 0000000..2a225b8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_32.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|v+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|w+0#af5f00255&|i|n|d|o| +0#0000000&@68 +|:|w+0#af5f00255&|r|i|t|e| +0#0000000&@68 +|:|w+0#af5f00255&|N|e|x|t| +0#0000000&@68 +>:|w+0#af5f00255&|a|l@1| +0#0000000&@69 +|:|w+0#af5f00255&|h|i|l|e| +0#0000000&@68 +|:|w+0#af5f00255&|i|n|s|i|z|e| +0#0000000&@66 +|:|w+0#af5f00255&|i|n|c|m|d| +0#0000000&@67 +|:|w+0#af5f00255&|i|n|p|o|s| +0#0000000&@67 +|:|w+0#af5f00255&|n|e|x|t| +0#0000000&@68 +|:|w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@64 +|:|w+0#af5f00255&|q| +0#0000000&@71 +|:|w+0#af5f00255&|q|a|l@1| +0#0000000&@68 +|:|w+0#af5f00255&|u|n|d|o| +0#0000000&@68 +|:|w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@65 +|:|x+0#af5f00255&|i|t| +0#0000000&@70 +|:|x+0#af5f00255&|a|l@1| +0#0000000&@69 +|:|x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +@57|5|7@1|,|1| @8|4|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump new file mode 100644 index 0000000..4168e67 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_33.dump @@ -0,0 +1,20 @@ +|:+0&#ffffff0|x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@64 +|:|x+0#af5f00255&|m|a|p| +0#0000000&@69 +|:|x+0#af5f00255&|m|e|n|u| +0#0000000&@68 +|:|x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@65 +|:|x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@65 +>:|x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@64 +|:|x+0#af5f00255&|u|n|m|a|p| +0#0000000&@67 +|:|x+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@66 +|:|y+0#af5f00255&|a|n|k| +0#0000000&@69 +|:|z+0#af5f00255&| +0#0000000&@72 +@75 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)||+0#0000000&|h+0#af5f00255&|e|l|p| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&|||h+0#af5f00255&|e|l|p| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)||+0#0000000&| |h+0#af5f00255&|e|l|p| +0#0000000&@58 +@75 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a|p@1|e|n|d| @55 +@4|t|e|x|t| @66 +@57|5|9|5|,|1| @8|5|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump new file mode 100644 index 0000000..bf88d4f --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_34.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@3|t|e|x|t| @66 +|.+0#af5f00255&| +0#0000000&@73 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b@1|r|e|v|i|a|t|e| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|c|l|e|a|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|b|o|v|e|l|e|f|t| +0#0000000&@52 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|l@1| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|s| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|a|d@1| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|e|d|u|p|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|e|l|e|t|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|e|d|i|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g@1|l|o|b|a|l| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|l|o|c|a|l| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|r|g|u|m|e|n|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|s|c|i@1| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&@54 +@57|6|1|3|,|1| @8|5|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump new file mode 100644 index 0000000..01cefde --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_35.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|t|o|c|m|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|F|o@1| ||| |a+0#af5f00255&|u|g|r|o|u|p| +0#0000000&|E|N|D| @36 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |a+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|N|e|x|t| +0#0000000&@56 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|d@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|a|l|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|d|e|l|e|t|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|m+0#af5f00255&|s|w|i|n| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|h|a|v|e| +0#0000000&|x+0#af5f00255&|t|e|r|m| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|e|l|o|w|r|i|g|h|t| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|f|i|r|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|l|a|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|m|o|d|i|f|i|e|d| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|o|t|r|i|g|h|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54 +@57|6|3|1|,|1| @8|5|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump new file mode 100644 index 0000000..3658621 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_36.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|a|d@1| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|d|e|l| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|e|a|k|l|i|s|t| +0#0000000&@52 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|r|o|w|s|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|f@1|e|r|s| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|u|n|l|o|a|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |b+0#af5f00255&|w|i|p|e|o|u|t| +0#0000000&@53 +|"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e| +0#0000000&@55 +@4|t|e|x|t| @66 +|.+0#af5f00255&| +0#0000000&@73 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|N|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|N|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|o|v|e| +0#0000000&@55 +@57|6|4|9|,|1| @8|5|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump new file mode 100644 index 0000000..3da296c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_37.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|b|o|v|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|f|t|e|r| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|a|t|c|h| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|e|l|o|w| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&@1|l|o|s|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|d| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|d|o| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|d|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|e|n|t|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|e|x|p|r| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|l|e| +0#0000000&@56 +@57|6@1|7|,|1| @8|5|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump new file mode 100644 index 0000000..33e2088 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_38.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|l|e| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|f|i|r|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|a|n|g|e|s| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|d|i|r| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|p|a|t|h| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|e|c|k|t|i|m|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s@1| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|a|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|e|a|r|j|u|m|p|s| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|i|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|l|o|s|e| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|x|t| +0#0000000&@56 +@57|6|8|5|,|1| @8|5|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump new file mode 100644 index 0000000..ef99508 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_39.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|e|w|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@50 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|p|y| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|d|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|l|o|r|s|c|h|e|m|e| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m@1|a|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|c|l|e|a|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|m|p|i|l|e|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|t|i|n|u|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|f|i|r|m| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|n|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|o|p|e|n| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|p|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|q|u|i|t| +0#0000000&@56 +@57|7|0|3|,|1| @8|5|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump new file mode 100644 index 0000000..29d35c5 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_40.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|q|u|i|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|c|o|p|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|s|t|a|g| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |c+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|e|t|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|b|u|g@1|r|e@1|d|y| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|c|o|m|p|i|l|e| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|f|e|r| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|c|o|m@1|a|n|d| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|f|u|n|c|t|i|o|n| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|e|l|m|a|r|k|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|u|p|d|a|t|e| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|g|e|t| +0#0000000&@54 +@57|7|2|1|,|1| @8|6|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump new file mode 100644 index 0000000..426028d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_41.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|g|e|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|o|f@1| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|a|t|c|h| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|p|u|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|s|p|l|i|t| +0#0000000&@52 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|f@1|t|h|i|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|g|r|a|p|h|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|p|l|a|y| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|i|s|a|s@1|e|m|b|l|e| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|j|u|m|p| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|l|i|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|o|a|u|t|o|a|l@1| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|p| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|r|o|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |d+0#af5f00255&|s|p|l|i|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|d|i|t| +0#0000000&@57 +@57|7|3|9|,|1| @8|6|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump new file mode 100644 index 0000000..97e291f --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_42.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|d|i|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|a|r|l|i|e|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|c|o|n|s|o|l|e| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|e|r@1| +0#0000000&@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|h|l| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|m|s|g| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|n| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|c|h|o|w|i|n|d|o|w| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|l|s|e|i|f| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|c|l|a|s@1| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d@1|e|f| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|i|f| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|f|o|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|f|u|n|c|t|i|o|n| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|t|r|y| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@53 +@57|7|5|7|,|1| @8|6|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump new file mode 100644 index 0000000..6764cea --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_43.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|d|w|h|i|l|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|n|e|w| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|v|a|l| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|e|c|u|t|e| +0#0000000&@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|i|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|p|o|r|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |e+0#af5f00255&|x|u|s|a|g|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|s| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|e|t|y|p|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|l|t|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|d| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|a|l@1|y| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|n|i|s|h| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|r|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|i|x|d|e|l| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d| +0#0000000&@57 +@57|7@1|5|,|1| @8|6|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump new file mode 100644 index 0000000..7456c8d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_44.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|c|l|o|s|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o@1|p|e|n| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d@1|o|c|l|o|s|e|d| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|l|d|o|p|e|n| +0#0000000&@53 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|o|r| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |f+0#af5f00255&|u|n|c|t|i|o|n| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|o|t|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|r|e|p|a|d@1| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|u|i| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |g+0#af5f00255&|v|i|m| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|a|r|d|c|o|p|y| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|c|l|o|s|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|f|i|n|d| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|g|r|e|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|t|a|g|s| +0#0000000&@53 +@57|7|9|3|,|1| @8|6|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump new file mode 100644 index 0000000..df10b4b --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_45.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|e|l|p|t|a|g|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|g|h|l|i|g|h|t| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|d|e| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|i|s|t|o|r|y| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |h+0#af5f00255&|o|r|i|z|o|n|t|a|l| +0#0000000&@51 +>"+0#0000e05&| |F+0#0000001#ffff4012|I|X|M|E| +0#0000000#ffffff0@67 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i|n|s|e|r|t| @55 +@4|t|e|x|t| @66 +|.+0#af5f00255&| +0#0000000&@73 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b@1|r|e|v| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|a|b|c|l|e|a|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|f| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|j|u|m|p| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|l|i|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|m|p|o|r|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +@57|8|1@1|,|1| @8|6|8|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump new file mode 100644 index 0000000..af1fcde --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_46.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|a|b@1|r|e|v| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|n|t|r|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|s|p|l|i|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|a|b@1|r|e|v| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |i+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|o|i|n| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |j+0#af5f00255&|u|m|p|s| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&| +0#0000000&@60 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|a|l|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|m|a|r|k|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p|j|u|m|p|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |k+0#af5f00255&|e@1|p@1|a|t@1|e|r|n|s| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|N|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|N|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|i|s|t| +0#0000000&@57 +@57|8|2|9|,|1| @8|7|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump new file mode 100644 index 0000000..bf31154 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_47.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|i|s|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|b|o|v|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|e|x|p|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|b|u|f@1|e|r| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|d@1|f|i|l|e| +0#0000000&@53 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|f|t|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|s|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|n|g|u|a|g|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|a|t|e|r| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|f|o|r|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|e|l|o|w| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|o|t@1|o|m| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|d| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|h|d|i|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|l|o|s|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|d|o| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|d|o| +0#0000000&@57 +@57|8|4|7|,|1| @8|7|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump new file mode 100644 index 0000000..0ef0613 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_48.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|d|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|f|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|f|t|a|b|o|v|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|g|a|c|y| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|t| +0#0000000&@58 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|e|x|p|r| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|l|e| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|f|i|r|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|b|u|f@1|e|r| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|e|x|p|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|e|t|f|i|l|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|g|r|e|p|a|d@1| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|e|l|p|g|r|e|p| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|h|i|s|t|o|r|y| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1|a|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&@1|i|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|k|e| +0#0000000&@56 +@57|8|6|5|,|1| @8|7|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump new file mode 100644 index 0000000..f451055 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_49.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|k|e| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|e|w|e|r| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|a|d|k|e|y|m|a|p| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|a|d|v|i|e|w| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|m|a|r|k|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|c|k|v|a|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|l|d|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|o|p|e|n| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|p|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|s| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|t|a|g| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +@57|8@1|3|,|1| @8|7|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump new file mode 100644 index 0000000..1cd5033 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_50.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|u|a|f|i|l|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p| +0#0000000&@53 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|v|i|m|g|r|e|p|a|d@1| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |l+0#af5f00255&|w|i|n|d|o|w| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|v|e| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|k|e| +0#0000000&@57 +|"+0#0000e05&| |r|e|q|u|i|r|e|s| |t|r|a|i|l|i|n|g| |w|h|i|t|e|s|p|a|c|e| |t|o| |d|i|s|t|i|n|g|u|i|s|h| |f|r|o|m| |m|a|p|(|)| +0#0000000&@18 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|p|c|l|e|a|r| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|r|k|s| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|a|t|c|h| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|n|u|t|r|a|n|s|l|a|t|e| +0#0000000&@48 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|e|s@1|a|g|e|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|e|x|r|c| +0#0000000&@55 +@57|9|0|1|,|1| @8|7|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump new file mode 100644 index 0000000..b9d0601 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_51.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|e|x|r|c| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|s|e|s@1|i|o|n| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|s|p|e|l@1| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|m|r|c| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|k|v|i|e|w| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|o|d|e| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|s|c|h|e|m|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |m+0#af5f00255&|z|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|c|l|o|s|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|k|e|y| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|b|s|t|a|r|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|x|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|e|w| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&@1|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&@1|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@52 +@57|9|1|9|,|1| @8|7@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump new file mode 100644 index 0000000..7ebe287 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_52.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|a|u|t|o|c|m|d| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|m|a|p| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|h|l|s|e|a|r|c|h| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|a|b@1|r|e|v| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|e|m|e|n|u| +0#0000000&@53 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|r|m|a|l| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|o|s|w|a|p|f|i|l|e| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|m|b|e|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |n+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|l|d|f|i|l|e|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|e|n| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|l|y| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@54 +@57|9|3|7|,|1| @8|7|9|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump new file mode 100644 index 0000000..420001c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_53.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|p|t|i|o|n|s| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |o+0#af5f00255&|w|n|s|y|n|t|a|x| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|a|d@1| +0#0000000&@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|a|c|k|l|o|a|d|a|l@1| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|c|l|o|s|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|d|i|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|i|n|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|d|e|l| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|f|i|l|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|f|i|n|d| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|o|m|p|t|r|e|p|l| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|e|r|l|d|o| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|o|p|u|p| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&@1|o|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|s|e|r|v|e| +0#0000000&@53 +@57|9|5@1|,|1| @8|8|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump new file mode 100644 index 0000000..2d16427 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_54.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|s|e|r|v|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|r|e|v|i|o|u|s| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|s|e|a|r|c|h| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|a|g| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|N|e|x|t| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|f|i|r|s|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|j|u|m|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|l|a|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|n|e|x|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|p|r|e|v|i|o|u|s| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|r|e|w|i|n|d| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|b|l|i|c| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|u|t| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|w|d| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|3| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@54 +@57|9|7|3|,|1| @8|8|2|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump new file mode 100644 index 0000000..d172d88 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_55.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|3|f|i|l|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|d|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|f|i|l|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x| +0#0000000&@58 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|t|h|o|n|x| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |p+0#af5f00255&|y|x|f|i|l|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|u|i|t|a|l@1| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |q+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|a|d| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|c|o|v|e|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|i|r| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w|s|t|a|t|u|s| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|d|r|a|w|t|a|b|l|i|n|e| +0#0000000&@48 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@52 +@57|9@1|1|,|1| @8|8|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump new file mode 100644 index 0000000..847d6db --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_56.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|g|i|s|t|e|r|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|s|i|z|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|t|a|b| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|t|u|r|n| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|e|w|i|n|d| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|i|g|h|t|b|e|l|o|w| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|d|o| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|b|y|f|i|l|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|u|n|t|i|m|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |r+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||+0#af5f00255&| |s|u|b|s|t|i|t|u|t|e| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|N|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|n|d|b|o|x| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|r|g|u|m|e|n|t| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|v|e|a|s| +0#0000000&@55 +@57|1|0@1|9|,|1| @7|8|5|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump new file mode 100644 index 0000000..38ade08 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_57.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|a|v|e|a|s| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|u|f@1|e|r| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|N|e|x|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|a|l@1| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|f|i|r|s|t| +0#0000000&@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|l|a|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|m|o|d|i|f|i|e|d| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|n|e|x|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|p|r|e|v|i|o|u|s| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|b|r|e|w|i|n|d| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|n|a|m|e|s| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&@47 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|r|i|p|t|v|e|r|s|i|o|n| +0#0000000&@48 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|c|s|c|o|p|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|f|i|l|e|t|y|p|e| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|g|l|o|b|a|l| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|e|t|l|o|c|a|l| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|f|i|n|d| +0#0000000&@56 +@57|1|0|2|7|,|1| @7|8|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump new file mode 100644 index 0000000..a35547c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_58.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|f|i|n|d| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|f|i|r|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|h|e|l@1| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|m|a|l|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|g|n| +0#0000000&@57 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|i|l|e|n|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|e@1|p|!| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|l|a|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||+0#af5f00255&| |s|m|a|g|i|c| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|m|i|l|e| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||+0#af5f00255&| |s|n|o|m|a|g|i|c| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|o|r|t| +0#0000000&@57 +@57|1|0|4|5|,|1| @7|8@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump new file mode 100644 index 0000000..85800e5 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_59.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|o|r|t| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|o|u|r|c|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|d|u|m|p| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|g|o@1|d| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|i|n|f|o| +0#0000000&@52 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|a|r|e| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|r|e|p|a|l@1| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|u|n|d|o| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|e|l@1|w|r|o|n|g| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|l|i|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|g| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|i|n|s|e|r|t| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|g|r|e|p|l|a|c|e| +0#0000000&@48 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|r|t|r|e|p|l|a|c|e| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|a|t|i|c| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@51 +@57|1|0|6|3|,|1| @7|9|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump new file mode 100644 index 0000000..79f5e1e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_60.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|o|p|i|n|s|e|r|t| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|j|u|m|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|t|s|e|l|e|c|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|h|i|d|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|u|s|p|e|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|v|i|e|w| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|w|a|p|n|a|m|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|a|x| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|t|i|m|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |s+0#af5f00255&|y|n|c|b|i|n|d| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&| +0#0000000&@60 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|N|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|N|e|x|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|c|l|o|s|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|e|d|i|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@54 +@57|1|0|8|1|,|1| @7|9|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump new file mode 100644 index 0000000..efb27e8 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_61.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|f|i|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|f|i|r|s|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|l|a|s|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|m|o|v|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|w| +0#0000000&@55 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|n|e|x|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|o|n|l|y| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|p|r|e|v|i|o|u|s| +0#0000000&@50 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|r|e|w|i|n|d| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b|s| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|b| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|a|g|s| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|d| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|h|d|i|r| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|c|l|f|i|l|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@54 +@57|1|0|9@1|,|1| @7|9|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump new file mode 100644 index 0000000..8b85dd9 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_62.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|e|a|r|o|f@1| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|e|r|m|i|n|a|l| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|f|i|r|s|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|h|r|o|w| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|j|u|m|p| +0#0000000&@56 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|a|s|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|m|e|n|u| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|n|o|r|e|m|e|n|u| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|l|u|n|m|e|n|u| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|o|p|l|e|f|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|e|w|i|n|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|r|y| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@54 +@57|1@2|7|,|1| @7|9|4|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump new file mode 100644 index 0000000..cf5d08b --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_63.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|s|e|l|e|c|t| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |t+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|j|o|i|n| +0#0000000&@53 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|d|o|l|i|s|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|a|b@1|r|e|v|i|a|t|e| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|h|i|d|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|e|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|l|o|c|k|v|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|a|p| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|m|e|n|u| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|n|s|i|l|e|n|t| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |u+0#af5f00255&|p|d|a|t|e| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|g|l|o|b|a|l|/|.+0#0000000&@2|/+0#af5f00255&| +0#0000000&@49 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|a|r| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|s|i|o|n| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@54 +@57|1@1|3|5|,|1| @7|9|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump new file mode 100644 index 0000000..bcffc89 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_64.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|b|o|s|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|e|r|t|i|c|a|l| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|9|c|m|d| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|9|s|c|r|i|p|t| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p| +0#0000000&@54 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|m|g|r|e|p|a|d@1| +0#0000000&@51 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|s|u|a|l| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|u|s|a|g|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|i|e|w| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|e|w| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|s|p|l|i|t| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |v+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|d|o| +0#0000000&@56 +@57|1@1|5|3|,|1| @7|9|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump new file mode 100644 index 0000000..8041747 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_65.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|r|i|t|e| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|N|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|h|i|l|e| +0#0000000&@56 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|s|i|z|e| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|c|m|d| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|p|o|s| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q|a|l@1| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|i|t| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|e|n|u| +0#0000000&@56 +@57|1@1|7|1|,|1| @7|9@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_ex_commands_99.dump b/runtime/syntax/testdir/dumps/vim_ex_commands_99.dump new file mode 100644 index 0000000..869c6d3 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_ex_commands_99.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|i|n|p|o|s| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|n|e|x|t| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|p|r|e|v|i|o|u|s| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q| +0#0000000&@59 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|q|a|l@1| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|u|n|d|o| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |w+0#af5f00255&|v|i|m|i|n|f|o| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|i|t| +0#0000000&@58 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|a|l@1| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p|c|l|e|a|r| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|a|p| +0#0000000&@57 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|m|e|n|u| +0#0000000&@56 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|r|e|s|t|o|r|e| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|n|o|r|e|m|a|p| +0#0000000&@53 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|n|o|r|e|m|e|n|u| +0#0000000&@52 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|u|n|m|a|p| +0#0000000&@55 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |x+0#af5f00255&|u|n|m|e|n|u| +0#0000000&@54 +|c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |y+0#af5f00255&|a|n|k| +0#0000000&@57 +>c+0#af5f00255&|a|l@1| +0#0000000&|F|o@1|(+0#e000e06&|)| +0#0000000&||| |z+0#af5f00255&| +0#0000000&@60 +@57|1@1|9|1|,|1| @7|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_keymap_00.dump b/runtime/syntax/testdir/dumps/vim_keymap_00.dump new file mode 100644 index 0000000..974c5ad --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_keymap_00.dump @@ -0,0 +1,20 @@ +>"+0#0000e05#ffffff0| |V|i|m| |K|e|y|m|a|p| |f|i|l|e| |f|o|r| |s|y|n|t|a|x| |t|e|s|t|i|n|g| @38 +@75 +@75 +@46| +0#0000000&@28 +@75 +@75 +|"+0#0000e05&| +0#0000000&|M+0#e000e06&|a|i|n|t|a|i|n|e|r|:| +0#0000e05&@2|D|o|u|g| |K|e|a|r|n|s| |<|d|o|u|g|k|e|a|r|n|s|@|g|m|a|i|l|.|c|o|m|>| @24 +@60| +0#0000000&@14 +|"+0#0000e05&| +0#0000000&|L+0#e000e06&|a|s|t| |C|h|a|n|g|e|d|:| +0#0000e05&|2|0|2|3| |N|o|v| |2|1| @47 +@75 +@75 +@46| +0#0000000&@28 +@75 +@75 +@75 +@75 +|s+0#af5f00255&|c|r|i|p|t|e|n|c|o|d|i|n|g| +0#0000000&|u|t|f|-+0#af5f00255&|8+0#e000002&| +0#0000000&@54 +@75 +|@+0#4040ff13&@2| @71 +|"+0#0000000&|i|n|p|u|t|/|v|i|m|_|k|e|y|m|a|p|.|v|i|m|"| |2|6|L|,| |3|9@1|2|B| @23|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_keymap_01.dump b/runtime/syntax/testdir/dumps/vim_keymap_01.dump new file mode 100644 index 0000000..9a7a833 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_keymap_01.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +@75 +|a| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| @38| +0#0000000&@15 +|'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| @10| +0#0000000&@22 +@75 +>"+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| @56 +@60| +0#0000000&@14 +|<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| @2 +@75 +@75 +@46| +0#0000000&@28 +|c| @13|<+0#e000e06&|c|h|a|r|-|0|1|0|3|>| +0#0000000&@4|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |R|H|S| |-| |o|c|t|a|l| @4 +@60| +0#0000000&@14 +|<+0#e000e06&|c|h|a|r|-|0|x|0@1|6|4|>| +0#0000000&@1|<+0#e000e06&|c|h|a|r|-|0|x|0@1|4@1|>| +0#0000000&@2|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |a|n|d| |R|H|S| |-| |h|e +|x|a|d|e|c|i|m|a|l| @50| +0#0000000&@14 +@75 +|"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12 +|#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e +|n|t| +0#0000000&@72 +@57|1|9|,|1| @9|9|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_keymap_99.dump b/runtime/syntax/testdir/dumps/vim_keymap_99.dump new file mode 100644 index 0000000..ad6b5a5 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_keymap_99.dump @@ -0,0 +1,20 @@ +|a+0&#ffffff0| |A| @3|B+0#0000e05&|a|s|i|c| |m|a|p@1|i|n|g| @38| +0#0000000&@15 +|'|a| |á| @2|M+0#0000e05&|o|r|e| |t|h|a|n| |o|n|e| |c|h|a|r| |i|n| |f|i|r|s|t| |c|o|l|u|m|n| @10| +0#0000000&@22 +@75 +|"+0#0000e05&| |S|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| @56 +@60| +0#0000000&@14 +|<+0#e000e06&|c|h|a|r|-|6|2|>| +0#0000000&@5|B| @14|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |-| |d|e|c|i|m|a|l| @2 +@75 +@75 +@46| +0#0000000&@28 +|c| @13|<+0#e000e06&|c|h|a|r|-|0|1|0|3|>| +0#0000000&@4|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |R|H|S| |-| |o|c|t|a|l| @4 +@60| +0#0000000&@14 +|<+0#e000e06&|c|h|a|r|-|0|x|0@1|6|4|>| +0#0000000&@1|<+0#e000e06&|c|h|a|r|-|0|x|0@1|4@1|>| +0#0000000&@2|S+0#0000e05&|p|e|c|i|a|l| |n|o|t|a|t|i|o|n| |a|l@1|o|w|e|d| |i|n| |L|H|S| |a|n|d| |R|H|S| |-| |h|e +|x|a|d|e|c|i|m|a|l| @50| +0#0000000&@14 +@75 +|"+0#0000e05&| |V|i|m|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| |c|h|a|r|a|c|t|e|r|s| @30| +0#0000000&@12 +|#| |<+0#e000e06&|c|h|a|r|-|0|x|0@1|a|3|>| +0#0000000&@15|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |V|i|m|9|-|s|c|r|i|p|t| |c|o|m@1|e +|n|t| +0#0000000&@72 +>\|"| |“| @18|L+0#0000e05&|i|n|e| |s|h|o|u|l|d| |n|o|t| |m|a|t|c|h| |a|s| |a| |l|e|g|a|c|y|-|s|c|r|i|p|t| |c|o|m@1|e|n|t| | +0#0000000&@2 +|~+0#4040ff13&| @73 +| +0#0000000&@56|2|6|,|1| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_syntax_00.dump b/runtime/syntax/testdir/dumps/vim_syntax_00.dump new file mode 100644 index 0000000..db52967 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_syntax_00.dump @@ -0,0 +1,20 @@ +>"+0#0000e05#ffffff0| |V|i|m| |:|s|y|n|t|a|x| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@48 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t+0#00e0003&|e|s|t|K|e|y|w|o|r|d| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&@1|h|a|r|=|&+0#e000002&| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|r| @41 +@6|\+0#e000e06&| +0#0000000&|n+0#e000e06&|e|x|t|g|r|o|u|p|=|t+0#0000000&|e|s|t|N|e|x|t|,|@|t|e|s|t|C|l|u|s|t|e|r| @35 +@6|\+0#e000e06&| +0#0000000&|t+0#e000e06&|r|a|n|s|p|a|r|e|n|t| +0#0000000&@55 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|e|m|p|t|y| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|n|l| +0#0000000&@60 +@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|1| @58 +@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|2| @58 +@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|3| @58 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t+0#00e0003&|e|s|t|M|a|t|c|h| +0#0000000&@55 +@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59 +|"|i|n|p|u|t|/|v|i|m|_|s|y|n|t|a|x|.|v|i|m|"| |7|5|L|,| |1|5|0|2|B| @23|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_syntax_01.dump b/runtime/syntax/testdir/dumps/vim_syntax_01.dump new file mode 100644 index 0000000..e09801d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_syntax_01.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|2| @58 +@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|3| @58 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|m+0#00e0003&|a|t|c|h| +0#0000000&|t+0#00e0003&|e|s|t|M|a|t|c|h| +0#0000000&@55 +@6|\+0#e000e06&| +0#0000000&|"+0#e000002&|p|a|t@1|e|r|n|"| +0#0000000&@57 +@6>\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&@1|h|a|r|=|&+0#e000002&| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|r| @41 +@6|\+0#e000e06&| +0#0000000&|n+0#e000e06&|e|x|t|g|r|o|u|p|=|t+0#0000000&|e|s|t|N|e|x|t|,|@|t|e|s|t|C|l|u|s|t|e|r| @35 +@6|\+0#e000e06&| +0#0000000&|t+0#e000e06&|r|a|n|s|p|a|r|e|n|t| +0#0000000&@55 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|e|m|p|t|y| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|n|l| +0#0000000&@60 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| @28 +@6|\+0#e000e06&| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@62 +@6|\+0#e000e06&| +0#0000000&|d+0#e000e06&|i|s|p|l|a|y| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|t|e|n|d| +0#0000000&@60 +@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57 +@57|1|9|,|7| @9|2|3|%| diff --git a/runtime/syntax/testdir/dumps/vim_syntax_02.dump b/runtime/syntax/testdir/dumps/vim_syntax_02.dump new file mode 100644 index 0000000..063a33b --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_syntax_02.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|k+0#e000e06&|e@1|p|e|n|d| +0#0000000&@59 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|r+0#00e0003&|e|g|i|o|n| +0#0000000&|t+0#00e0003&|e|s|t|R|e|g|i|o|n| +0#0000000&@53 +@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|t|a|r|t|=+0#0000000&|"+0#e000002&|s|t|a|r|t|-|p|a|t@1|e|r|n|"| +0#0000000&@45 +@6>\+0#e000e06&| +0#0000000&|e+0#00e0003&|n|d|=+0#0000000&|"+0#e000002&|e|n|d|-|p|a|t@1|e|r|n|"| +0#0000000&@49 +@6|\+0#e000e06&| +0#0000000&|s+0#00e0003&|k|i|p|=+0#0000000&|"+0#e000002&|s|k|i|p|-|p|a|t@1|e|r|n|"| +0#0000000&@47 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&@1|h|a|r|=|&+0#e000002&| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|e|d|i|n|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|r| @41 +@6|\+0#e000e06&| +0#0000000&|n+0#e000e06&|e|x|t|g|r|o|u|p|=|t+0#0000000&|e|s|t|N|e|x|t|,|@|t|e|s|t|C|l|u|s|t|e|r| @35 +@6|\+0#e000e06&| +0#0000000&|t+0#e000e06&|r|a|n|s|p|a|r|e|n|t| +0#0000000&@55 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|e|m|p|t|y| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|n|l| +0#0000000&@60 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2| @28 +@6|\+0#e000e06&| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&@59 +@57|3|7|,|7| @9|5@1|%| diff --git a/runtime/syntax/testdir/dumps/vim_syntax_03.dump b/runtime/syntax/testdir/dumps/vim_syntax_03.dump new file mode 100644 index 0000000..b3a23dd --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_syntax_03.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@5|\+0#e000e06&| +0#0000000&|o+0#e000e06&|n|e|l|i|n|e| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|f+0#e000e06&|o|l|d| +0#0000000&@62 +@6|\+0#e000e06&| +0#0000000&|d+0#e000e06&|i|s|p|l|a|y| +0#0000000&@59 +@6|\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|t|e|n|d| +0#0000000&@60 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|c|e|a|l|e|n|d|s| +0#0000000&@55 +@6>\+0#e000e06&| +0#0000000&|e+0#e000e06&|x|c|l|u|d|e|n|l| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|k+0#e000e06&|e@1|p|e|n|d| +0#0000000&@59 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t+0#00e0003&|e|s|t|C|l|u|s|t|e|r| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2|,|t|e|s|t|C|o|n|t|a|i|n|e|d|3| @13 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t+0#00e0003&|e|s|t|C|l|u|s|t|e|r| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|a+0#e000e06&|d@1|=|t+0#0000000&|e|s|t|A|d@1| @55 +@6|\+0#e000e06&| +0#0000000&|r+0#e000e06&|e|m|o|v|e|=|t+0#0000000&|e|s|t|R|e|m|o|v|e| @49 +@75 +@75 +|"+0#0000e05&| |c|h|e|c|k| |m|u|l|t|i|l|i|n|e| |g|r|o|u|p| |l|i|s|t| +0#0000000&@46 +|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t+0#00e0003&|e|s|t|K|e|y|w|o|r|d| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|n+0#e000e06&|e|x|t|g|r|o|u|p|=| +0#0000000&@56 +@57|5@1|,|7| @9|8|7|%| diff --git a/runtime/syntax/testdir/dumps/vim_syntax_99.dump b/runtime/syntax/testdir/dumps/vim_syntax_99.dump new file mode 100644 index 0000000..c50589d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_syntax_99.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t+0#00e0003&|e|s|t|C|l|u|s|t|e|r| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|c+0#e000e06&|o|n|t|a|i|n|s|=|t+0#0000000&|e|s|t|C|o|n|t|a|i|n|e|d|1|,|t|e|s|t|C|o|n|t|a|i|n|e|d|2|,|t|e|s|t|C|o|n|t|a|i|n|e|d|3| @13 +@75 +|s+0#af5f00255&|y|n| +0#0000000&|c+0#00e0003&|l|u|s|t|e|r| +0#0000000&|t+0#00e0003&|e|s|t|C|l|u|s|t|e|r| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|a+0#e000e06&|d@1|=|t+0#0000000&|e|s|t|A|d@1| @55 +@6|\+0#e000e06&| +0#0000000&|r+0#e000e06&|e|m|o|v|e|=|t+0#0000000&|e|s|t|R|e|m|o|v|e| @49 +@75 +@75 +|"+0#0000e05&| |c|h|e|c|k| |m|u|l|t|i|l|i|n|e| |g|r|o|u|p| |l|i|s|t| +0#0000000&@46 +|s+0#af5f00255&|y|n| +0#0000000&|k+0#00e0003&|e|y|w|o|r|d| +0#0000000&|t+0#00e0003&|e|s|t|K|e|y|w|o|r|d| +0#0000000&@51 +@6|\+0#e000e06&| +0#0000000&|n+0#e000e06&|e|x|t|g|r|o|u|p|=| +0#0000000&@56 +@6|\+0#e000e06&| +0#0000000&|t|e|s|t|N|e|x|t| |,| @56 +@6|\+0#e000e06&| +0#0000000&|t|e|s|t|N|e|x|t|2| |,| @55 +@6|\+0#e000e06&| +0#0000000&|@|t|e|s|t|C|l|u|s|t|e|r| @54 +@6|\+0#e000e06&| +0#0000000&|s+0#e000e06&|k|i|p|w|h|i|t|e| +0#0000000&@57 +@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|4| @58 +@6|\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|5| @58 +@6>\+0#e000e06&| +0#0000000&|k|e|y|w|o|r|d|6| @58 +@57|7|5|,|7| @9|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_variables_00.dump b/runtime/syntax/testdir/dumps/vim_variables_00.dump new file mode 100644 index 0000000..9794113 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_00.dump @@ -0,0 +1,20 @@ +>"+0#0000e05#ffffff0| |V|i|m| |v|a|r|i|a|b|l|e| |h|i|g|h|l|i|g|h|t|i|n|g| +0#0000000&@47 +@75 +|"+0#0000e05&| |:|l|e|t| +0#0000000&@68 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @60 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|0+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|1+0#e000002&|:+0#0000000&|2+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @55 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|:|2+0#e000002&|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|1+0#e000002&|:+0#0000000&|]| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1|[+0#0000000&|:|]| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|"|i|n|p|u|t|/|v|i|m|_|v|a|r|i|a|b|l|e|s|.|v|i|m|"| |1|3|8|L|,| |1|5@1|4|B| @19|1|,|1| @10|T|o|p| diff --git a/runtime/syntax/testdir/dumps/vim_variables_01.dump b/runtime/syntax/testdir/dumps/vim_variables_01.dump new file mode 100644 index 0000000..f1ce29d --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_01.dump @@ -0,0 +1,20 @@ +|l+0#af5f00255#ffffff0|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|*+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|/+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|%+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +>l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|.+0#af5f00255&@1|=| +0#0000000&|e|x|p|r| @58 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @59 +|l+0#af5f00255&|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|@+0#e000e06&|f| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @61 +|l+0#af5f00255&|e|t| +0#0000000&|@+0#e000e06&|f| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @60 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @59 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|t|_|k|1| +0#0000000&|=+0#af5f00255&| +0#0000000&|"+0#e000002&|\+0#e000e06&|<|E+0#e000002&|s|c|>|[|2|3|4|;|"| +0#0000000&@49 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@57|1|9|,|1| @9|1|0|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_02.dump b/runtime/syntax/testdir/dumps/vim_variables_02.dump new file mode 100644 index 0000000..8f31c47 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_02.dump @@ -0,0 +1,20 @@ +|l+0#af5f00255#ffffff0|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @58 +@75 +>l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|l|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @57 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|++0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +|l+0#af5f00255&|e|t| +0#0000000&|&+0#00e0e07&|g|:|f|o@1| +0#0000000&|-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @56 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @53 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @65 +@57|3|7|,|1| @9|2|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_03.dump b/runtime/syntax/testdir/dumps/vim_variables_03.dump new file mode 100644 index 0000000..3e8d21c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_03.dump @@ -0,0 +1,20 @@ +|l+0#af5f00255#ffffff0|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @65 +@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @55 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @52 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |++0#af5f00255&|=| +0#0000000&|e|x|p|r| @52 +>l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @52 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @48 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| @65 +@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r|;+0#0000000&| @62 +@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @55 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |.+0#af5f00255&|=| +0#0000000&|e|x|p|r| @47 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |++0#af5f00255&|=| +0#0000000&|e|x|p|r| @47 +|l+0#af5f00255&|e|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |-+0#af5f00255&|=| +0#0000000&|e|x|p|r| @47 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |E|N|D| +0#0000000&@59 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +@57|5@1|,|1| @9|4|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_04.dump b/runtime/syntax/testdir/dumps/vim_variables_04.dump new file mode 100644 index 0000000..97d240c --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_04.dump @@ -0,0 +1,20 @@ +|E+0#e000e06#ffffff0|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |E|N|D| +0#0000000&@54 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |E|N|D| +0#0000000&@54 +>.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@49 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@49 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +@75 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@67 +|l+0#af5f00255&|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| @63 +@75 +|"+0#0000e05&| |:|u|n|l|e|t| +0#0000000&@66 +@75 +@57|7|3|,|1| @9|5|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_05.dump b/runtime/syntax/testdir/dumps/vim_variables_05.dump new file mode 100644 index 0000000..8254fbe --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_05.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@61 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63 +> @74 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@60 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@64 +@6|\+0#e000e06&| +0#0000000&|b+0#00e0e07&|a|r| +0#0000000&@63 +@75 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@64 +|u+0#af5f00255&|n|l|e|t|!| +0#0000000&|$+0#e000e06&|F|O@1| +0#0000000&@63 +@75 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|l+0#00e0e07&|i|s|t|[+0#0000000&|3+0#e000002&|]+0#0000000&| @61 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|l+0#00e0e07&|i|s|t|[+0#0000000&|3+0#e000002&|:+0#0000000&|]| @60 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|d+0#00e0e07&|i|c|t|[+0#0000000&|'+0#e000002&|t|w|o|'|]+0#0000000&| @57 +|u+0#af5f00255&|n|l|e|t| +0#0000000&|d+0#00e0e07&|i|c|t|.+0#0000000&|t+0#00e0e07&|w|o| +0#0000000&@60 +@75 +@57|9|1|,|0|-|1| @7|7|1|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_06.dump b/runtime/syntax/testdir/dumps/vim_variables_06.dump new file mode 100644 index 0000000..89b3d41 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_06.dump @@ -0,0 +1,20 @@ +| +0&#ffffff0@74 +|"+0#0000e05&| |:|c|o|n|s|t| +0#0000000&@66 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#af5f00255&| +0#0000000&|e|x|p|r| @58 +@75 +>c+0#af5f00255&|o|n|s|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @51 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|;+0#0000000&| |b+0#00e0e07&|a|z|]+0#0000000&| |=+0#af5f00255&| +0#0000000&|e|x|p|r| @46 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |E|N|D| +0#0000000&@57 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |E|N|D| +0#0000000&@52 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |E|N|D| +0#0000000&@52 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47 +@57|1|0|9|,|1| @8|8|6|%| diff --git a/runtime/syntax/testdir/dumps/vim_variables_07.dump b/runtime/syntax/testdir/dumps/vim_variables_07.dump new file mode 100644 index 0000000..f0288f0 --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_07.dump @@ -0,0 +1,20 @@ +|c+0#af5f00255#ffffff0|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +>E+0#e000e06&|N|D| +0#0000000&@71 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| @61 +@75 +|"+0#0000e05&| |:|f|o|r| +0#0000000&@68 +@75 +|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 +|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +@75 +|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 +|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +|~+0#4040ff13&| @73 +|~| @73 +| +0#0000000&@56|1|2|7|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/dumps/vim_variables_99.dump b/runtime/syntax/testdir/dumps/vim_variables_99.dump new file mode 100644 index 0000000..003603e --- /dev/null +++ b/runtime/syntax/testdir/dumps/vim_variables_99.dump @@ -0,0 +1,20 @@ +|.+0#e000002#ffffff0@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |t|r|i|m| |e|v|a|l| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|=+0#e000e06&|<@1| |e|v|a|l| |t|r|i|m| |E|N|D| +0#0000000&@47 +|.+0#e000002&@2| +0#0000000&@71 +|E+0#e000e06&|N|D| +0#0000000&@71 +@75 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&@65 +|c+0#af5f00255&|o|n|s|t| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|b|a|r| @61 +@75 +|"+0#0000e05&| |:|f|o|r| +0#0000000&@68 +@75 +|f+0#af5f00255&|o|r| +0#0000000&|f+0#00e0e07&|o@1| +0#0000000&|i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @59 +|e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +@75 +|f+0#af5f00255&|o|r| +0#0000000&|[|f+0#00e0e07&|o@1|,+0#0000000&| |b+0#00e0e07&|a|r|]+0#0000000&| |i+0#af5f00255&|n| +0#0000000&|e|x|p|r| @52 +>e+0#af5f00255&|n|d|f|o|r| +0#0000000&@68 +@57|1|3|8|,|1| @8|B|o|t| diff --git a/runtime/syntax/testdir/input/c.c b/runtime/syntax/testdir/input/c.c new file mode 100644 index 0000000..c96fb33 --- /dev/null +++ b/runtime/syntax/testdir/input/c.c @@ -0,0 +1,122 @@ +/* vi:set ts=8 sts=4 sw=4 noet: + * + * VIM - Vi IMproved by Bram Moolenaar + * + * Do ":help uganda" in Vim to read copying and usage conditions. + * Do ":help credits" in Vim to see a list of people who contributed. + * See README.txt for an overview of the Vim source code. + */ + +#define EXTERN +#include "vim.h" + +#ifdef __CYGWIN__ +# include +# include // for cygwin_conv_to_posix_path() and/or + // cygwin_conv_path() +# include +#endif + +#if defined(MSWIN) && (!defined(FEAT_GUI_MSWIN) || defined(VIMDLL)) +# include "iscygpty.h" +#endif + +// Values for edit_type. +#define EDIT_NONE 0 // no edit type yet +#define EDIT_FILE 1 // file name argument[s] given, use argument list +#define EDIT_STDIN 2 // read file from stdin +#define EDIT_TAG 3 // tag name argument given, use tagname +#define EDIT_QF 4 // start in quickfix mode + +#if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN) +static int file_owned(char *fname); +#endif +static void mainerr(int, char_u *); +static void early_arg_scan(mparm_T *parmp); +#ifndef NO_VIM_MAIN +static void usage(void); +static void parse_command_name(mparm_T *parmp); +static void command_line_scan(mparm_T *parmp); +static void check_tty(mparm_T *parmp); +static void read_stdin(void); +static void create_windows(mparm_T *parmp); +static void edit_buffers(mparm_T *parmp, char_u *cwd); +static void exe_pre_commands(mparm_T *parmp); +static void exe_commands(mparm_T *parmp); +static void source_startup_scripts(mparm_T *parmp); +static void main_start_gui(void); +static void check_swap_exists_action(void); +# ifdef FEAT_EVAL +static void set_progpath(char_u *argv0); +# endif +#endif + + +/* + * Different types of error messages. + */ +static char *(main_errors[]) = +{ + N_("Unknown option argument"), +#define ME_UNKNOWN_OPTION 0 + N_("Too many edit arguments"), +#define ME_TOO_MANY_ARGS 1 + N_("Argument missing after"), +#define ME_ARG_MISSING 2 + N_("Garbage after option argument"), +#define ME_GARBAGE 3 + N_("Too many \"+command\", \"-c command\" or \"--cmd command\" arguments"), +#define ME_EXTRA_CMD 4 + N_("Invalid argument for"), +#define ME_INVALID_ARG 5 +}; + +#ifndef PROTO // don't want a prototype for main() + +// Various parameters passed between main() and other functions. +static mparm_T params; + +#ifdef _IOLBF +static void *s_vbuf = NULL; // buffer for setvbuf() +#endif + +#ifndef NO_VIM_MAIN // skip this for unittests + +static char_u *start_dir = NULL; // current working dir on startup + +static int has_dash_c_arg = FALSE; + +# ifdef VIMDLL +__declspec(dllexport) +# endif + int +# ifdef MSWIN +VimMain +# else +main +# endif +(int argc, char **argv) +{ +#if defined(STARTUPTIME) || defined(CLEAN_RUNTIMEPATH) + int i; +#endif + + /* + * Do any system-specific initialisations. These can NOT use IObuff or + * NameBuff. Thus emsg2() cannot be called! + */ + mch_early_init(); + + // Source startup scripts. + source_startup_scripts(¶ms); + +#if 0 + /* + * Newer version of MzScheme (Racket) require earlier (trampolined) + * initialisation via scheme_main_setup. + */ + return mzscheme_main(); +#else + return vim_main2(); +#endif +} diff --git a/runtime/syntax/testdir/input/html_html b/runtime/syntax/testdir/input/html_html new file mode 100644 index 0000000..bfeca26 --- /dev/null +++ b/runtime/syntax/testdir/input/html_html @@ -0,0 +1,146 @@ + + + + + +
+ +
+